diff --git a/server/pom.xml b/server/pom.xml index e4e67cf5..5077a72f 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -99,7 +99,7 @@ org.apache.commons commons-compress - 1.19 + 1.21 @@ -149,7 +149,7 @@ com.thoughtworks.xstream xstream - 1.4.17 + 1.4.18 com.googlecode.concurrentlinkedhashmap diff --git a/server/src/main/bin/shutdown.sh b/server/src/main/bin/shutdown.sh index fb98e40c..a505923a 100644 --- a/server/src/main/bin/shutdown.sh +++ b/server/src/main/bin/shutdown.sh @@ -1,2 +1,36 @@ #!/bin/bash -kill -15 `ps -ef|grep kkFileView|awk 'NR==1{print $2}'` +# +# +############################# +# Author: sanxi +# Version: 1.0 +# Date: 2021/09/17 +# Description: v1.0:修改kkFileView关闭进程机制 +############################# +# +KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")" || exit 1 ;pwd) +PID_FILE_NAME="kkFileView.pid" +PID_FILE="${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}" +export KKFILEVIEW_BIN_FOLDER=$KKFILEVIEW_BIN_FOLDER +# +## pid文件是否存在 +if [ ! -e "$PID_FILE" ]; then + echo "kkFileView.pid文件不存在!" + exit 1 +else + ## 文件不为空代表程序正在运行,则循环关闭进程。 + if [ -s "$PID_FILE" ]; then + # 读取pid文件内容,开启while循环读取每一行文本赋予给变量PID_FILE。 + cat "${PID_FILE}" | while read PID;do + ## 如已读取完毕,则退出脚本。 + [ -z "$PID" ] && exit 2 + echo "正在停止进程:${PID}..." + ## 正常停止进程 + kill -15 "${PID}" && echo "进程:${PID}停止成功!" + done + # 关闭所有进程后,重置pid。 + cat /dev/null > "$PID_FILE" + else + echo "kkFileView进程尚未运行!" + fi +fi diff --git a/server/src/main/bin/startup.sh b/server/src/main/bin/startup.sh index 99ad8f23..985e9333 100644 --- a/server/src/main/bin/startup.sh +++ b/server/src/main/bin/startup.sh @@ -1,32 +1,61 @@ #!/bin/bash -DIR_HOME=("/opt/openoffice.org3" "/opt/libreoffice" "/opt/libreoffice6.0" "/opt/libreoffice6.1" "/opt/libreoffice6.2" "/opt/libreoffice6.3" "/opt/libreoffice6.4" "/opt/libreoffice7.0" "/opt/libreoffice7.1" "/opt/libreoffice7.2" "/opt/openoffice4" "/usr/lib/openoffice" "/usr/lib/libreoffice" "/usr/lib64/libreoffice") +# +# +############################# +# First_Author: 凯京科技 +# Second_Author: sanxi +# Version: 1.1 +# Date: 2021/09/17 +# Description: v1.1:修改进程启动机制为pid形式。 +############################# +# +DIR_HOME=("/opt/openoffice.org3" "/opt/libreoffice" "/opt/libreoffice6.1" "/opt/libreoffice7.0" "/opt/libreoffice7.1" "/opt/openoffice4" "/usr/lib/openoffice" "/usr/lib/libreoffice") FLAG= OFFICE_HOME= -KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")";pwd) +KKFILEVIEW_BIN_FOLDER=$(cd "$(dirname "$0")" || exit 1 ;pwd) +PID_FILE_NAME="kkFileView.pid" +PID_FILE="${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}" export KKFILEVIEW_BIN_FOLDER=$KKFILEVIEW_BIN_FOLDER -cd $KKFILEVIEW_BIN_FOLDER -echo "Using KKFILEVIEW_BIN_FOLDER $KKFILEVIEW_BIN_FOLDER" -grep 'office\.home' ../config/application.properties | grep '!^#' -if [ $? -eq 0 ]; then - echo "Using customized office.home" -else - for i in ${DIR_HOME[@]} - do - if [ -f $i"/program/soffice.bin" ]; then - FLAG=true - OFFICE_HOME=${i} - break - fi - done - if [ ! -n "${FLAG}" ]; then - echo "Installing OpenOffice" - sh ./install.sh - else - echo "Detected office component has been installed in $OFFICE_HOME" - fi +# +## 如pid文件不存在则自动创建 +if [ ! -f ${PID_FILE_NAME} ]; then + touch "${KKFILEVIEW_BIN_FOLDER}/${PID_FILE_NAME}" +fi +## 判断当前是否有进程处于运行状态 +if [ -s "${PID_FILE}" ]; then + PID=$(cat "${PID_FILE}") + echo "进程已处于运行状态,进程号为:${PID}" + exit 1 +else + cd "$KKFILEVIEW_BIN_FOLDER" || exit 1 + echo "Using KKFILEVIEW_BIN_FOLDER $KKFILEVIEW_BIN_FOLDER" + grep 'office\.home' ../config/application.properties | grep '!^#' + if [ $? -eq 0 ]; then + echo "Using customized office.home" + else + for i in ${DIR_HOME[@]} + do + if [ -f "$i/program/soffice.bin" ]; then + FLAG=true + OFFICE_HOME=${i} + break + fi + done + if [ ! -n "${FLAG}" ]; then + echo "Installing OpenOffice" + sh ./install.sh + else + echo "Detected office component has been installed in $OFFICE_HOME" + fi + fi + + ## 启动kkFileView + echo "Starting kkFileView..." + nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=../config/application.properties -jar kkFileView-4.0.0.jar > ../log/kkFileView.log 2>&1 & + echo "Please execute ./showlog.sh to check log for more information" + echo "You can get help in our official homesite: https://kkFileView.keking.cn" + echo "If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers" + PROCESS=$(ps -ef | grep kkFileView | awk 'NR==1{print $2}') + # 启动成功后将进程号写入pid文件 + echo "$PROCESS" > "$PID_FILE" fi -echo "Starting kkFileView..." -echo "Please execute ./showlog.sh to check log for more information" -echo "You can get help in our official homesite: https://kkFileView.keking.cn" -echo "If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers" -nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=../config/application.properties -jar kkFileView-4.0.0.jar > ../log/kkFileView.log 2>&1 & diff --git a/server/src/main/config/application.properties b/server/src/main/config/application.properties index 6aa403df..d42d6993 100644 --- a/server/src/main/config/application.properties +++ b/server/src/main/config/application.properties @@ -22,9 +22,15 @@ office.plugin.server.ports = 2001,2002 ## office 转换服务 task 超时时间,默认五分钟 office.plugin.task.timeout = 5m -#文件资源路径(默认为打包根路径下的file目录下) +#预览生成资源路径(默认为打包根路径下的file目录下) #file.dir = D:\\kkFileview\\ file.dir = ${KK_FILE_DIR:default} + +#允许预览的本地文件夹 默认不允许任何本地文件被预览 +#file.dir = D:\\kkFileview\\ +local.preview.dir = ${KK_LOCAL_PREVIEW_DIR:default} + + #openoffice home路径 #office.home = C:\\Program Files (x86)\\OpenOffice 4 office.home = ${KK_OFFICE_HOME:default} diff --git a/server/src/main/java/cn/keking/config/ConfigConstants.java b/server/src/main/java/cn/keking/config/ConfigConstants.java index 40d2964a..f4181e40 100644 --- a/server/src/main/java/cn/keking/config/ConfigConstants.java +++ b/server/src/main/java/cn/keking/config/ConfigConstants.java @@ -33,6 +33,7 @@ public class ConfigConstants { private static String ftpControlEncoding; private static String baseUrl; private static String fileDir = ConfigUtils.getHomePath() + File.separator + "file" + File.separator; + private static String localPreviewDir; private static CopyOnWriteArraySet trustHostSet; private static String pdfPresentationModeDisable; private static String pdfOpenFileDisable; @@ -51,6 +52,7 @@ public class ConfigConstants { public static final String DEFAULT_FTP_CONTROL_ENCODING = "UTF-8"; public static final String DEFAULT_BASE_URL = "default"; public static final String DEFAULT_FILE_DIR_VALUE = "default"; + public static final String DEFAULT_LOCAL_PREVIEW_DIR_VALUE = "default"; public static final String DEFAULT_TRUST_HOST = "default"; public static final String DEFAULT_PDF_PRESENTATION_MODE_DISABLE = "true"; public static final String DEFAULT_PDF_OPEN_FILE_DISABLE = "true"; @@ -211,6 +213,24 @@ public class ConfigConstants { } } + public static String getLocalPreviewDir() { + return localPreviewDir; + } + + @Value("${local.preview.dir:default}") + public void setLocalPreviewDir(String localPreviewDir) { + setLocalPreviewDirValue(localPreviewDir); + } + + public static void setLocalPreviewDirValue(String localPreviewDir) { + if (!DEFAULT_LOCAL_PREVIEW_DIR_VALUE.equals(localPreviewDir)) { + if (!localPreviewDir.endsWith(File.separator)) { + localPreviewDir = localPreviewDir + File.separator; + } + } + ConfigConstants.localPreviewDir = localPreviewDir; + } + @Value("${trust.host:default}") public void setTrustHost(String trustHost) { setTrustHostValue(trustHost); diff --git a/server/src/main/java/cn/keking/utils/DownloadUtils.java b/server/src/main/java/cn/keking/utils/DownloadUtils.java index 05377fef..9e8c3d97 100644 --- a/server/src/main/java/cn/keking/utils/DownloadUtils.java +++ b/server/src/main/java/cn/keking/utils/DownloadUtils.java @@ -32,7 +32,7 @@ public class DownloadUtils { * @return 本地文件绝对路径 */ public static ReturnResponse downLoad(FileAttribute fileAttribute, String fileName) { - String urlStr = fileAttribute.getUrl(); + String urlStr = fileAttribute.getUrl().replaceAll("\\+", "%20"); ReturnResponse response = new ReturnResponse<>(0, "下载成功!!!", ""); String realPath = DownloadUtils.getRelFilePath(fileName, fileAttribute); try { diff --git a/server/src/main/java/cn/keking/utils/WebUtils.java b/server/src/main/java/cn/keking/utils/WebUtils.java index c978e59c..58ed678c 100644 --- a/server/src/main/java/cn/keking/utils/WebUtils.java +++ b/server/src/main/java/cn/keking/utils/WebUtils.java @@ -81,6 +81,14 @@ public class WebUtils { * @return 文件名 */ public static String getFileNameFromURL(String url) { + if (url.toLowerCase().startsWith("file:")) { + try { + URL urlObj = new URL(url); + url = urlObj.getPath().substring(1); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } // 因为url的参数中可能会存在/的情况,所以直接url.lastIndexOf("/")会有问题 // 所以先从?处将url截断,然后运用url.lastIndexOf("/")获取文件名 String noQueryUrl = url.substring(0, url.contains("?") ? url.indexOf("?") : url.length()); diff --git a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java index 7309db76..42804746 100644 --- a/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java +++ b/server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java @@ -1,5 +1,6 @@ package cn.keking.web.controller; +import cn.keking.config.ConfigConstants; import cn.keking.model.FileAttribute; import cn.keking.service.FilePreview; import cn.keking.service.FilePreviewFactory; @@ -12,6 +13,7 @@ import fr.opensagres.xdocreport.core.io.IOUtils; import io.mola.galimatias.GalimatiasParseException; import jodd.io.NetUtil; import org.apache.commons.codec.binary.Base64; +import org.artofsolving.jodconverter.util.PlatformUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; @@ -25,9 +27,11 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URL; +import java.net.URLDecoder; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.List; +import java.util.Locale; import static cn.keking.service.FilePreview.PICTURE_FILE_PREVIEW_PAGE; @@ -61,6 +65,9 @@ public class OnlinePreviewController { String errorMsg = String.format(BASE64_DECODE_ERROR_MSG, "url"); return otherFilePreview.notSupportedFile(model, errorMsg); } + if (!allowPreview(fileUrl)) { + return otherFilePreview.notSupportedFile(model, "该文件不允许预览:" + fileUrl); + } FileAttribute fileAttribute = fileHandlerService.getFileAttribute(fileUrl, req); model.addAttribute("file", fileAttribute); FilePreview filePreview = previewFactory.get(fileAttribute); @@ -86,8 +93,14 @@ public class OnlinePreviewController { String currentUrl = req.getParameter("currentUrl"); if (StringUtils.hasText(currentUrl)) { String decodedCurrentUrl = new String(Base64.decodeBase64(currentUrl)); + if (!allowPreview(decodedCurrentUrl)) { + return otherFilePreview.notSupportedFile(model, "该文件不允许预览:" + decodedCurrentUrl); + } model.addAttribute("currentUrl", decodedCurrentUrl); } else { + if (!allowPreview(imgUrls.get(0))) { + return otherFilePreview.notSupportedFile(model, "该文件不允许预览:" + imgUrls.get(0)); + } model.addAttribute("currentUrl", imgUrls.get(0)); } return PICTURE_FILE_PREVIEW_PAGE; @@ -105,6 +118,12 @@ public class OnlinePreviewController { logger.info("下载跨域pdf文件url:{}", urlPath); try { URL url = WebUtils.normalizedURL(urlPath); + if (!allowPreview(urlPath)) { + response.setHeader("content-type", "text/html;charset=utf-8"); + response.getOutputStream().println("forbidden"); + response.setStatus(401); + return; + } byte[] bytes = NetUtil.downloadBytes(url.toString()); IOUtils.write(bytes, response.getOutputStream()); } catch (IOException | GalimatiasParseException e) { @@ -125,4 +144,24 @@ public class OnlinePreviewController { return "success"; } + private boolean allowPreview(String urlPath) { + try { + URL url = WebUtils.normalizedURL(urlPath); + if ("file".equals(url.getProtocol().toLowerCase(Locale.ROOT))) { + String filePath = URLDecoder.decode(url.getPath(), StandardCharsets.UTF_8.name()); + if (PlatformUtils.isWindows()) { + filePath = filePath.replaceAll("/", "\\\\"); + } + filePath = filePath.substring(1); + if (!filePath.startsWith(ConfigConstants.getFileDir()) && !filePath.startsWith(ConfigConstants.getLocalPreviewDir())) { + return false; + } + } + return true; + } catch (IOException | GalimatiasParseException e) { + logger.error("解析URL异常,url:{}", urlPath, e); + return false; + } + } + } diff --git a/server/src/main/resources/static/js/lazyload.js b/server/src/main/resources/static/js/lazyload.js index 5beff487..206459ff 100644 --- a/server/src/main/resources/static/js/lazyload.js +++ b/server/src/main/resources/static/js/lazyload.js @@ -19,8 +19,12 @@ function checkImgs() { } function loadImg(el) { - var source = el.getAttribute("data-src"); - el.src = source; + var loaded = el.getAttribute("loaded"); + if (!Boolean(loaded)) { + var source = el.getAttribute("data-src"); + el.setAttribute("loaded", true); + el.src = source; + } } // var mustRun = 500 // function throttle(fn, mustRun) { diff --git a/server/src/main/resources/static/pdfjs/build/pdf.js b/server/src/main/resources/static/pdfjs/build/pdf.js index 85dec3e2..fde8904f 100644 --- a/server/src/main/resources/static/pdfjs/build/pdf.js +++ b/server/src/main/resources/static/pdfjs/build/pdf.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2020 Mozilla Foundation + * Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,248 +30,570 @@ else root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); })(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __w_pdfjs_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __w_pdfjs_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __w_pdfjs_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __w_pdfjs_require__.d = function(exports, name, getter) { -/******/ if(!__w_pdfjs_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __w_pdfjs_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __w_pdfjs_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __w_pdfjs_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __w_pdfjs_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __w_pdfjs_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __w_pdfjs_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __w_pdfjs_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var pdfjsVersion = '2.4.456'; -var pdfjsBuild = '228a591c'; -var pdfjsSharedUtil = __w_pdfjs_require__(1); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.addLinkAttributes = addLinkAttributes; +exports.deprecated = deprecated; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; +exports.getXfaPageViewport = getXfaPageViewport; +exports.isDataScheme = isDataScheme; +exports.isPdfFile = isPdfFile; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +exports.StatTimer = exports.RenderingCancelledException = exports.PDFDateString = exports.PageViewport = exports.LinkTarget = exports.DOMSVGFactory = exports.DOMStandardFontDataFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = void 0; -var pdfjsDisplayAPI = __w_pdfjs_require__(190); +var _util = __w_pdfjs_require__(2); -var pdfjsDisplayTextLayer = __w_pdfjs_require__(205); +var _base_factory = __w_pdfjs_require__(5); -var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(206); +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; +const SVG_NS = "http://www.w3.org/2000/svg"; -var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(194); +class DOMCanvasFactory extends _base_factory.BaseCanvasFactory { + constructor({ + ownerDocument = globalThis.document + } = {}) { + super(); + this._document = ownerDocument; + } -var pdfjsDisplaySVG = __w_pdfjs_require__(207); + _createCanvas(width, height) { + const canvas = this._document.createElement("canvas"); -var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(199); + canvas.width = width; + canvas.height = height; + return canvas; + } -var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(196); +} -{ - var _require = __w_pdfjs_require__(48), - isNodeJS = _require.isNodeJS; +exports.DOMCanvasFactory = DOMCanvasFactory; - if (isNodeJS) { - var PDFNodeStream = __w_pdfjs_require__(208).PDFNodeStream; +async function fetchData(url, asTypedArray = false) { + if (isValidFetchUrl(url, document.baseURI)) { + const response = await fetch(url); - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - return new PDFNodeStream(params); - }); - } else { - var PDFNetworkStream = __w_pdfjs_require__(211).PDFNetworkStream; - - var PDFFetchStream; - - if (pdfjsDisplayDisplayUtils.isFetchSupported()) { - PDFFetchStream = __w_pdfjs_require__(212).PDFFetchStream; + if (!response.ok) { + throw new Error(response.statusText); } - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) { - return new PDFFetchStream(params); + return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text()); + } + + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + + if (asTypedArray) { + request.responseType = "arraybuffer"; + } + + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; } - return new PDFNetworkStream(params); + if (request.status === 200 || request.status === 0) { + let data; + + if (asTypedArray && request.response) { + data = new Uint8Array(request.response); + } else if (!asTypedArray && request.responseText) { + data = (0, _util.stringToBytes)(request.responseText); + } + + if (data) { + resolve(data); + return; + } + } + + reject(new Error(request.statusText)); + }; + + request.send(null); + }); +} + +class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url, this.isCompressed).then(data => { + return { + cMapData: data, + compressionType + }; }); } + +} + +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; + +class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url, true); + } + +} + +exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory; + +class DOMSVGFactory extends _base_factory.BaseSVGFactory { + _createSVG(type) { + return document.createElementNS(SVG_NS, type); + } + +} + +exports.DOMSVGFactory = DOMSVGFactory; + +class PageViewport { + constructor({ + viewBox, + scale, + rotation, + offsetX = 0, + offsetY = 0, + dontFlip = false + }) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + const centerX = (viewBox[2] + viewBox[0]) / 2; + const centerY = (viewBox[3] + viewBox[1]) / 2; + let rotateA, rotateB, rotateC, rotateD; + rotation %= 360; + + if (rotation < 0) { + rotation += 360; + } + + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + + case 0: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + + default: + throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); + } + + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + + let offsetCanvasX, offsetCanvasY; + let width, height; + + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + + this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; + this.width = width; + this.height = height; + } + + clone({ + scale = this.scale, + rotation = this.rotation, + offsetX = this.offsetX, + offsetY = this.offsetY, + dontFlip = false + } = {}) { + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + + convertToViewportRectangle(rect) { + const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + + const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + + convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } + +} + +exports.PageViewport = PageViewport; + +class RenderingCancelledException extends _util.BaseException { + constructor(msg, type) { + super(msg); + this.type = type; + } + +} + +exports.RenderingCancelledException = RenderingCancelledException; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; + +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.'); + const urlNullRemoved = (0, _util.removeNullCharacters)(url); + + if (enabled) { + link.href = link.title = urlNullRemoved; + } else { + link.href = ""; + link.title = `Disabled: ${urlNullRemoved}`; + + link.onclick = () => { + return false; + }; + } + + let targetStr = ""; + + switch (target) { + case LinkTarget.NONE: + break; + + case LinkTarget.SELF: + targetStr = "_self"; + break; + + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; +} + +function isDataScheme(url) { + const ii = url.length; + let i = 0; + + while (i < ii && url[i].trim() === "") { + i++; + } + + return url.substring(i, i + 5).toLowerCase() === "data:"; +} + +function isPdfFile(filename) { + return typeof filename === "string" && /\.pdf$/i.test(filename); +} + +function getFilenameFromUrl(url) { + const anchor = url.indexOf("#"); + const query = url.indexOf("?"); + const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf("/", end) + 1, end); +} + +function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") { + if (typeof url !== "string") { + return defaultFilename; + } + + if (isDataScheme(url)) { + (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); + return defaultFilename; + } + + const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + const splitURI = reURI.exec(url); + let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + + if (suggestedFilename) { + suggestedFilename = suggestedFilename[0]; + + if (suggestedFilename.includes("%")) { + try { + suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; + } catch (ex) {} + } + } + + return suggestedFilename || defaultFilename; +} + +class StatTimer { + constructor() { + this.started = Object.create(null); + this.times = []; + } + + time(name) { + if (name in this.started) { + (0, _util.warn)(`Timer is already running for ${name}`); + } + + this.started[name] = Date.now(); + } + + timeEnd(name) { + if (!(name in this.started)) { + (0, _util.warn)(`Timer has not been started for ${name}`); + } + + this.times.push({ + name, + start: this.started[name], + end: Date.now() + }); + delete this.started[name]; + } + + toString() { + const outBuf = []; + let longest = 0; + + for (const time of this.times) { + const name = time.name; + + if (name.length > longest) { + longest = name.length; + } + } + + for (const time of this.times) { + const duration = time.end - time.start; + outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`); + } + + return outBuf.join(""); + } + +} + +exports.StatTimer = StatTimer; + +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch (ex) { + return false; + } +} + +function loadScript(src, removeScriptElement = false) { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = src; + + script.onload = function (evt) { + if (removeScriptElement) { + script.remove(); + } + + resolve(evt); + }; + + script.onerror = function () { + reject(new Error(`Cannot load script at: ${script.src}`)); + }; + + (document.head || document.documentElement).appendChild(script); + }); +} + +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} + +let pdfDateStringRegex; + +class PDFDateString { + static toDateObject(input) { + if (!input || !(0, _util.isString)(input)) { + return null; + } + + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); + } + + const matches = pdfDateStringRegex.exec(input); + + if (!matches) { + return null; + } + + const year = parseInt(matches[1], 10); + let month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + let day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + let hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + let minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + let second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + const universalTimeRelation = matches[7] || "Z"; + let offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + let offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + + if (universalTimeRelation === "-") { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === "+") { + hour -= offsetHour; + minute -= offsetMinute; + } + + return new Date(Date.UTC(year, month, day, hour, minute, second)); + } + +} + +exports.PDFDateString = PDFDateString; + +function getXfaPageViewport(xfaPage, { + scale = 1, + rotation = 0 +}) { + const { + width, + height + } = xfaPage.attributes.style; + const viewBox = [0, 0, parseInt(width), parseInt(height)]; + return new PageViewport({ + viewBox, + scale, + rotation + }); } -exports.build = pdfjsDisplayAPI.build; -exports.version = pdfjsDisplayAPI.version; -exports.getDocument = pdfjsDisplayAPI.getDocument; -exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; -exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; -exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; -exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; -exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; -exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; -exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; -exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; -exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; -exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; -exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; -exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; -exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; -exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; -exports.OPS = pdfjsSharedUtil.OPS; -exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; -exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; -exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; -exports.createObjectURL = pdfjsSharedUtil.createObjectURL; -exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; -exports.shadow = pdfjsSharedUtil.shadow; -exports.Util = pdfjsSharedUtil.Util; -exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException; -exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl; -exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget; -exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes; -exports.loadScript = pdfjsDisplayDisplayUtils.loadScript; -exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString; -exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; -exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; /***/ }), -/* 1 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 2 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.arrayByteLength = arrayByteLength; exports.arraysToBytes = arraysToBytes; exports.assert = assert; exports.bytesToString = bytesToString; +exports.createObjectURL = createObjectURL; exports.createPromiseCapability = createPromiseCapability; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.escapeString = escapeString; +exports.getModificationDate = getModificationDate; exports.getVerbosityLevel = getVerbosityLevel; exports.info = info; exports.isArrayBuffer = isArrayBuffer; exports.isArrayEqual = isArrayEqual; +exports.isAscii = isAscii; exports.isBool = isBool; -exports.isEmptyObj = isEmptyObj; exports.isNum = isNum; -exports.isString = isString; exports.isSameOrigin = isSameOrigin; -exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.isString = isString; +exports.objectFromMap = objectFromMap; +exports.objectSize = objectSize; exports.removeNullCharacters = removeNullCharacters; exports.setVerbosityLevel = setVerbosityLevel; exports.shadow = shadow; exports.string32 = string32; exports.stringToBytes = stringToBytes; exports.stringToPDFString = stringToPDFString; +exports.stringToUTF16BEString = stringToUTF16BEString; exports.stringToUTF8String = stringToUTF8String; +exports.unreachable = unreachable; exports.utf8StringToString = utf8StringToString; exports.warn = warn; -exports.unreachable = unreachable; -exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0; +exports.VerbosityLevel = exports.Util = exports.UNSUPPORTED_FEATURES = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; -__w_pdfjs_require__(2); +__w_pdfjs_require__(3); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; -var NativeImageDecoding = { - NONE: "none", - DECODE: "decode", - DISPLAY: "display" -}; -exports.NativeImageDecoding = NativeImageDecoding; -var PermissionFlag = { +const PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, @@ -282,7 +604,7 @@ var PermissionFlag = { PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; -var TextRenderingMode = { +const TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, @@ -295,13 +617,13 @@ var TextRenderingMode = { ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; -var ImageKind = { +const ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; -var AnnotationType = { +const AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, @@ -330,17 +652,17 @@ var AnnotationType = { REDACT: 26 }; exports.AnnotationType = AnnotationType; -var AnnotationStateModelType = { +const AnnotationStateModelType = { MARKED: "Marked", REVIEW: "Review" }; exports.AnnotationStateModelType = AnnotationStateModelType; -var AnnotationMarkedState = { +const AnnotationMarkedState = { MARKED: "Marked", UNMARKED: "Unmarked" }; exports.AnnotationMarkedState = AnnotationMarkedState; -var AnnotationReviewState = { +const AnnotationReviewState = { ACCEPTED: "Accepted", REJECTED: "Rejected", CANCELLED: "Cancelled", @@ -348,12 +670,12 @@ var AnnotationReviewState = { NONE: "None" }; exports.AnnotationReviewState = AnnotationReviewState; -var AnnotationReplyType = { +const AnnotationReplyType = { GROUP: "Group", REPLY: "R" }; exports.AnnotationReplyType = AnnotationReplyType; -var AnnotationFlag = { +const AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, @@ -366,7 +688,7 @@ var AnnotationFlag = { LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; -var AnnotationFieldFlag = { +const AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, @@ -388,7 +710,7 @@ var AnnotationFieldFlag = { COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; -var AnnotationBorderStyleType = { +const AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, @@ -396,7 +718,37 @@ var AnnotationBorderStyleType = { UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; -var StreamType = { +const AnnotationActionEventType = { + E: "Mouse Enter", + X: "Mouse Exit", + D: "Mouse Down", + U: "Mouse Up", + Fo: "Focus", + Bl: "Blur", + PO: "PageOpen", + PC: "PageClose", + PV: "PageVisible", + PI: "PageInvisible", + K: "Keystroke", + F: "Format", + V: "Validate", + C: "Calculate" +}; +exports.AnnotationActionEventType = AnnotationActionEventType; +const DocumentActionEventType = { + WC: "WillClose", + WS: "WillSave", + DS: "DidSave", + WP: "WillPrint", + DP: "DidPrint" +}; +exports.DocumentActionEventType = DocumentActionEventType; +const PageActionEventType = { + O: "PageOpen", + C: "PageClose" +}; +exports.PageActionEventType = PageActionEventType; +const StreamType = { UNKNOWN: "UNKNOWN", FLATE: "FLATE", LZW: "LZW", @@ -409,9 +761,10 @@ var StreamType = { RLX: "RLX" }; exports.StreamType = StreamType; -var FontType = { +const FontType = { UNKNOWN: "UNKNOWN", TYPE1: "TYPE1", + TYPE1STANDARD: "TYPE1STANDARD", TYPE1C: "TYPE1C", CIDFONTTYPE0: "CIDFONTTYPE0", CIDFONTTYPE0C: "CIDFONTTYPE0C", @@ -423,19 +776,19 @@ var FontType = { MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; -var VerbosityLevel = { +const VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; -var CMapCompressionType = { +const CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; exports.CMapCompressionType = CMapCompressionType; -var OPS = { +const OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, @@ -529,21 +882,36 @@ var OPS = { constructPath: 91 }; exports.OPS = OPS; -var UNSUPPORTED_FEATURES = { +const UNSUPPORTED_FEATURES = { unknown: "unknown", forms: "forms", javaScript: "javaScript", + signatures: "signatures", smask: "smask", shadingPattern: "shadingPattern", - font: "font" + font: "font", + errorTilingPattern: "errorTilingPattern", + errorExtGState: "errorExtGState", + errorXObject: "errorXObject", + errorFontLoadType3: "errorFontLoadType3", + errorFontState: "errorFontState", + errorFontMissing: "errorFontMissing", + errorFontTranslate: "errorFontTranslate", + errorColorSpace: "errorColorSpace", + errorOperatorList: "errorOperatorList", + errorFontToUnicode: "errorFontToUnicode", + errorFontLoadNative: "errorFontLoadNative", + errorFontBuildPath: "errorFontBuildPath", + errorFontGetPath: "errorFontGetPath", + errorMarkedContent: "errorMarkedContent" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; -var PasswordResponses = { +const PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; -var verbosity = VerbosityLevel.WARNINGS; +let verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { @@ -557,13 +925,13 @@ function getVerbosityLevel() { function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { - console.log("Info: ".concat(msg)); + console.log(`Info: ${msg}`); } } function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { - console.log("Warning: ".concat(msg)); + console.log(`Warning: ${msg}`); } } @@ -578,7 +946,7 @@ function assert(cond, msg) { } function isSameOrigin(baseUrl, otherUrl) { - var base; + let base; try { base = new URL(baseUrl); @@ -590,7 +958,7 @@ function isSameOrigin(baseUrl, otherUrl) { return false; } - var other = new URL(otherUrl, base); + const other = new URL(otherUrl, base); return base.origin === other.origin; } @@ -618,7 +986,7 @@ function createValidAbsoluteUrl(url, baseUrl) { } try { - var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; @@ -630,7 +998,7 @@ function createValidAbsoluteUrl(url, baseUrl) { function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { - value: value, + value, enumerable: true, configurable: true, writable: false @@ -638,7 +1006,7 @@ function shadow(obj, prop, value) { return value; } -var BaseException = function BaseExceptionClosure() { +const BaseException = function BaseExceptionClosure() { function BaseException(message) { if (this.constructor === BaseException) { unreachable("Cannot initialize BaseException."); @@ -655,116 +1023,52 @@ var BaseException = function BaseExceptionClosure() { exports.BaseException = BaseException; -var PasswordException = /*#__PURE__*/function (_BaseException) { - _inherits(PasswordException, _BaseException); - - function PasswordException(msg, code) { - var _this; - - _classCallCheck(this, PasswordException); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(PasswordException).call(this, msg)); - _this.code = code; - return _this; +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg); + this.code = code; } - return PasswordException; -}(BaseException); +} exports.PasswordException = PasswordException; -var UnknownErrorException = /*#__PURE__*/function (_BaseException2) { - _inherits(UnknownErrorException, _BaseException2); - - function UnknownErrorException(msg, details) { - var _this2; - - _classCallCheck(this, UnknownErrorException); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(UnknownErrorException).call(this, msg)); - _this2.details = details; - return _this2; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg); + this.details = details; } - return UnknownErrorException; -}(BaseException); +} exports.UnknownErrorException = UnknownErrorException; -var InvalidPDFException = /*#__PURE__*/function (_BaseException3) { - _inherits(InvalidPDFException, _BaseException3); - - function InvalidPDFException() { - _classCallCheck(this, InvalidPDFException); - - return _possibleConstructorReturn(this, _getPrototypeOf(InvalidPDFException).apply(this, arguments)); - } - - return InvalidPDFException; -}(BaseException); +class InvalidPDFException extends BaseException {} exports.InvalidPDFException = InvalidPDFException; -var MissingPDFException = /*#__PURE__*/function (_BaseException4) { - _inherits(MissingPDFException, _BaseException4); - - function MissingPDFException() { - _classCallCheck(this, MissingPDFException); - - return _possibleConstructorReturn(this, _getPrototypeOf(MissingPDFException).apply(this, arguments)); - } - - return MissingPDFException; -}(BaseException); +class MissingPDFException extends BaseException {} exports.MissingPDFException = MissingPDFException; -var UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) { - _inherits(UnexpectedResponseException, _BaseException5); - - function UnexpectedResponseException(msg, status) { - var _this3; - - _classCallCheck(this, UnexpectedResponseException); - - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(UnexpectedResponseException).call(this, msg)); - _this3.status = status; - return _this3; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg); + this.status = status; } - return UnexpectedResponseException; -}(BaseException); +} exports.UnexpectedResponseException = UnexpectedResponseException; -var FormatError = /*#__PURE__*/function (_BaseException6) { - _inherits(FormatError, _BaseException6); - - function FormatError() { - _classCallCheck(this, FormatError); - - return _possibleConstructorReturn(this, _getPrototypeOf(FormatError).apply(this, arguments)); - } - - return FormatError; -}(BaseException); +class FormatError extends BaseException {} exports.FormatError = FormatError; -var AbortException = /*#__PURE__*/function (_BaseException7) { - _inherits(AbortException, _BaseException7); - - function AbortException() { - _classCallCheck(this, AbortException); - - return _possibleConstructorReturn(this, _getPrototypeOf(AbortException).apply(this, arguments)); - } - - return AbortException; -}(BaseException); +class AbortException extends BaseException {} exports.AbortException = AbortException; -var NullCharactersRegExp = /\x00/g; +const NullCharactersRegExp = /\x00/g; function removeNullCharacters(str) { if (typeof str !== "string") { @@ -776,19 +1080,19 @@ function removeNullCharacters(str) { } function bytesToString(bytes) { - assert(bytes !== null && _typeof(bytes) === "object" && bytes.length !== undefined, "Invalid argument for bytesToString"); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; + assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for bytesToString"); + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } - var strBuf = []; + const strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } @@ -797,10 +1101,10 @@ function bytesToString(bytes) { function stringToBytes(str) { assert(typeof str === "string", "Invalid argument for stringToBytes"); - var length = str.length; - var bytes = new Uint8Array(length); + const length = str.length; + const bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { + for (let i = 0; i < length; ++i) { bytes[i] = str.charCodeAt(i) & 0xff; } @@ -812,28 +1116,28 @@ function arrayByteLength(arr) { return arr.length; } - assert(arr.byteLength !== undefined); + assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument."); return arr.byteLength; } function arraysToBytes(arr) { - var length = arr.length; + const length = arr.length; if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } - var resultLength = 0; + let resultLength = 0; - for (var i = 0; i < length; i++) { + for (let i = 0; i < length; i++) { resultLength += arrayByteLength(arr[i]); } - var pos = 0; - var data = new Uint8Array(resultLength); + let pos = 0; + const data = new Uint8Array(resultLength); - for (var _i = 0; _i < length; _i++) { - var item = arr[_i]; + for (let i = 0; i < length; i++) { + let item = arr[i]; if (!(item instanceof Uint8Array)) { if (typeof item === "string") { @@ -843,7 +1147,7 @@ function arraysToBytes(arr) { } } - var itemLength = item.byteLength; + const itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } @@ -855,14 +1159,28 @@ function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } +function objectSize(obj) { + return Object.keys(obj).length; +} + +function objectFromMap(map) { + const obj = Object.create(null); + + for (const [key, value] of map) { + obj[key] = value; + } + + return obj; +} + function isLittleEndian() { - var buffer8 = new Uint8Array(4); + const buffer8 = new Uint8Array(4); buffer8[0] = 1; - var view32 = new Uint32Array(buffer8.buffer, 0, 1); + const view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } -var IsLittleEndianCached = { +const IsLittleEndianCached = { get value() { return shadow(this, "value", isLittleEndian()); } @@ -879,158 +1197,165 @@ function isEvalSupported() { } } -var IsEvalSupportedCached = { +const IsEvalSupportedCached = { get value() { return shadow(this, "value", isEvalSupported()); } }; exports.IsEvalSupportedCached = IsEvalSupportedCached; -var rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"]; +const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0")); -var Util = /*#__PURE__*/function () { - function Util() { - _classCallCheck(this, Util); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; } - _createClass(Util, null, [{ - key: "makeCssRgb", - value: function makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(""); - } - }, { - key: "transform", - value: function transform(m1, m2) { - return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; - } - }, { - key: "applyTransform", - value: function applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - } - }, { - key: "applyInverseTransform", - value: function applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - } - }, { - key: "getAxialAlignedBoundingBox", - value: function getAxialAlignedBoundingBox(r, m) { - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); - return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; - } - }, { - key: "inverseTransform", - value: function inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - } - }, { - key: "apply3dTransform", - value: function apply3dTransform(m, v) { - return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; - } - }, { - key: "singularValueDecompose2dScale", - value: function singularValueDecompose2dScale(m) { - var transpose = [m[0], m[2], m[1], m[3]]; - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; - return [Math.sqrt(sx), Math.sqrt(sy)]; - } - }, { - key: "normalizeRect", - value: function normalizeRect(rect) { - var r = rect.slice(0); + static transform(m1, m2) { + return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; + } - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const yt = p[0] * m[1] + p[1] * m[3] + m[5]; + return [xt, yt]; + } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + return [xt, yt]; + } - return r; + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const p4 = Util.applyTransform([r[2], r[1]], m); + return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; + } + + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; + return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; + } + + static apply3dTransform(m, v) { + return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]]; + } + + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; + return [Math.sqrt(sx), Math.sqrt(sy)]; + } + + static normalizeRect(rect) { + const r = rect.slice(0); + + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; } - }, { - key: "intersect", - value: function intersect(rect1, rect2) { - function compare(a, b) { - return a - b; - } - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); - var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); - var result = []; - rect1 = Util.normalizeRect(rect1); - rect2 = Util.normalizeRect(rect2); - - if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { - result[0] = orderedX[1]; - result[2] = orderedX[2]; - } else { - return null; - } - - if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { - result[1] = orderedY[1]; - result[3] = orderedY[2]; - } else { - return null; - } - - return result; + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; } - }]); - return Util; -}(); + return r; + } + + static intersect(rect1, rect2) { + function compare(a, b) { + return a - b; + } + + const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); + const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); + const result = []; + rect1 = Util.normalizeRect(rect1); + rect2 = Util.normalizeRect(rect2); + + if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) { + result[0] = orderedX[1]; + result[2] = orderedX[2]; + } else { + return null; + } + + if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { + result[1] = orderedY[1]; + result[3] = orderedY[2]; + } else { + return null; + } + + return result; + } + +} exports.Util = Util; -var PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C, 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160, 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC]; +const PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac]; function stringToPDFString(str) { - var length = str.length, - strBuf = []; + const length = str.length, + strBuf = []; if (str[0] === "\xFE" && str[1] === "\xFF") { - for (var i = 2; i < length; i += 2) { + for (let i = 2; i < length; i += 2) { strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); } } else if (str[0] === "\xFF" && str[1] === "\xFE") { - for (var _i2 = 2; _i2 < length; _i2 += 2) { - strBuf.push(String.fromCharCode(str.charCodeAt(_i2 + 1) << 8 | str.charCodeAt(_i2))); + for (let i = 2; i < length; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i))); } } else { - for (var _i3 = 0; _i3 < length; ++_i3) { - var code = PDFStringTranslateTable[str.charCodeAt(_i3)]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(_i3)); + for (let i = 0; i < length; ++i) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } } return strBuf.join(""); } +function escapeString(str) { + return str.replace(/([()\\\n\r])/g, match => { + if (match === "\n") { + return "\\n"; + } else if (match === "\r") { + return "\\r"; + } + + return `\\${match}`; + }); +} + +function isAscii(str) { + return /^[\x00-\x7F]*$/.test(str); +} + +function stringToUTF16BEString(str) { + const buf = ["\xFE\xFF"]; + + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); + } + + return buf.join(""); +} + function stringToUTF8String(str) { return decodeURIComponent(escape(str)); } @@ -1039,14 +1364,6 @@ function utf8StringToString(str) { return unescape(encodeURIComponent(str)); } -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - - return true; -} - function isBool(v) { return typeof v === "boolean"; } @@ -1060,7 +1377,7 @@ function isString(v) { } function isArrayBuffer(v) { - return _typeof(v) === "object" && v !== null && v.byteLength !== undefined; + return typeof v === "object" && v !== null && v.byteLength !== undefined; } function isArrayEqual(arr1, arr2) { @@ -1068,18 +1385,28 @@ function isArrayEqual(arr1, arr2) { return false; } - return arr1.every(function (element, index) { - return element === arr2[index]; - }); + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + + return true; +} + +function getModificationDate(date = new Date()) { + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); } function createPromiseCapability() { - var capability = Object.create(null); - var isSettled = false; + const capability = Object.create(null); + let isSettled = false; Object.defineProperty(capability, "settled", { - get: function get() { + get() { return isSettled; } + }); capability.promise = new Promise(function (resolve, reject) { capability.resolve = function (data) { @@ -1095,9329 +1422,287 @@ function createPromiseCapability() { return capability; } -var createObjectURL = function createObjectURLClosure() { - var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - return function createObjectURL(data, contentType) { - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (!forceDataSchema && URL.createObjectURL) { - var blob = new Blob([data], { - type: contentType - }); - return URL.createObjectURL(blob); - } - - var buffer = "data:".concat(contentType, ";base64,"); - - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xff; - var b2 = data[i + 1] & 0xff; - var b3 = data[i + 2] & 0xff; - var d1 = b1 >> 2, - d2 = (b1 & 3) << 4 | b2 >> 4; - var d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; - var d4 = i + 2 < ii ? b3 & 0x3f : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } - - return buffer; - }; -}(); - -exports.createObjectURL = createObjectURL; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -if (typeof globalThis === "undefined" || !globalThis._pdfjsCompatibilityChecked) { - if (typeof globalThis === "undefined" || globalThis.Math !== Math) { - globalThis = __w_pdfjs_require__(3); +function createObjectURL(data, contentType = "", forceDataSchema = false) { + if (URL.createObjectURL && !forceDataSchema) { + return URL.createObjectURL(new Blob([data], { + type: contentType + })); } - globalThis._pdfjsCompatibilityChecked = true; - - var _require = __w_pdfjs_require__(48), - isNodeJS = _require.isNodeJS; - - var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === "object"; - var userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; - var isIE = /Trident/.test(userAgent); - - (function checkNodeBtoa() { - if (globalThis.btoa || !isNodeJS) { - return; - } - - globalThis.btoa = function (chars) { - return Buffer.from(chars, "binary").toString("base64"); - }; - })(); - - (function checkNodeAtob() { - if (globalThis.atob || !isNodeJS) { - return; - } - - globalThis.atob = function (input) { - return Buffer.from(input, "base64").toString("binary"); - }; - })(); - - (function checkChildNodeRemove() { - if (!hasDOM) { - return; - } - - if (typeof Element.prototype.remove !== "undefined") { - return; - } - - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; - })(); - - (function checkDOMTokenListAddRemove() { - if (!hasDOM || isNodeJS) { - return; - } - - var div = document.createElement("div"); - div.classList.add("testOne", "testTwo"); - - if (div.classList.contains("testOne") === true && div.classList.contains("testTwo") === true) { - return; - } - - var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; - var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; - - DOMTokenList.prototype.add = function () { - for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { - tokens[_key] = arguments[_key]; - } - - for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { - var token = _tokens[_i]; - OriginalDOMTokenListAdd.call(this, token); - } - }; - - DOMTokenList.prototype.remove = function () { - for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - tokens[_key2] = arguments[_key2]; - } - - for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { - var token = _tokens2[_i2]; - OriginalDOMTokenListRemove.call(this, token); - } - }; - })(); - - (function checkDOMTokenListToggle() { - if (!hasDOM || isNodeJS) { - return; - } - - var div = document.createElement("div"); - - if (div.classList.toggle("test", 0) === false) { - return; - } - - DOMTokenList.prototype.toggle = function (token) { - var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); - return this[force ? "add" : "remove"](token), force; - }; - })(); - - (function checkWindowHistoryPushStateReplaceState() { - if (!hasDOM || !isIE) { - return; - } - - var OriginalPushState = window.history.pushState; - var OriginalReplaceState = window.history.replaceState; - - window.history.pushState = function (state, title, url) { - var args = url === undefined ? [state, title] : [state, title, url]; - OriginalPushState.apply(this, args); - }; - - window.history.replaceState = function (state, title, url) { - var args = url === undefined ? [state, title] : [state, title, url]; - OriginalReplaceState.apply(this, args); - }; - })(); - - (function checkStringStartsWith() { - if (String.prototype.startsWith) { - return; - } - - __w_pdfjs_require__(49); - })(); - - (function checkStringEndsWith() { - if (String.prototype.endsWith) { - return; - } - - __w_pdfjs_require__(60); - })(); - - (function checkStringIncludes() { - if (String.prototype.includes) { - return; - } - - __w_pdfjs_require__(62); - })(); - - (function checkArrayIncludes() { - if (Array.prototype.includes) { - return; - } - - __w_pdfjs_require__(64); - })(); - - (function checkArrayFrom() { - if (Array.from) { - return; - } - - __w_pdfjs_require__(72); - })(); - - (function checkObjectAssign() { - if (Object.assign) { - return; - } - - __w_pdfjs_require__(94); - })(); - - (function checkMathLog2() { - if (Math.log2) { - return; - } - - Math.log2 = __w_pdfjs_require__(97); - })(); - - (function checkNumberIsNaN() { - if (Number.isNaN) { - return; - } - - Number.isNaN = __w_pdfjs_require__(99); - })(); - - (function checkNumberIsInteger() { - if (Number.isInteger) { - return; - } - - Number.isInteger = __w_pdfjs_require__(101); - })(); - - (function checkPromise() { - if (globalThis.Promise && globalThis.Promise.allSettled) { - return; - } - - globalThis.Promise = __w_pdfjs_require__(104); - })(); - - (function checkURL() { - globalThis.URL = __w_pdfjs_require__(128); - })(); - - (function checkReadableStream() { - var isReadableStreamSupported = false; - - if (typeof ReadableStream !== "undefined") { - try { - new ReadableStream({ - start: function start(controller) { - controller.close(); - } - }); - isReadableStreamSupported = true; - } catch (e) {} - } - - if (isReadableStreamSupported) { - return; - } - - globalThis.ReadableStream = __w_pdfjs_require__(135).ReadableStream; - })(); - - (function checkMapEntries() { - if (globalThis.Map && globalThis.Map.prototype.entries) { - return; - } - - globalThis.Map = __w_pdfjs_require__(136); - })(); - - (function checkSetEntries() { - if (globalThis.Set && globalThis.Set.prototype.entries) { - return; - } - - globalThis.Set = __w_pdfjs_require__(143); - })(); - - (function checkWeakMap() { - if (globalThis.WeakMap) { - return; - } - - globalThis.WeakMap = __w_pdfjs_require__(145); - })(); - - (function checkWeakSet() { - if (globalThis.WeakSet) { - return; - } - - globalThis.WeakSet = __w_pdfjs_require__(151); - })(); - - (function checkStringCodePointAt() { - if (String.prototype.codePointAt) { - return; - } - - __w_pdfjs_require__(153); - })(); - - (function checkStringFromCodePoint() { - if (String.fromCodePoint) { - return; - } - - String.fromCodePoint = __w_pdfjs_require__(155); - })(); - - (function checkSymbol() { - if (globalThis.Symbol) { - return; - } - - __w_pdfjs_require__(157); - })(); - - (function checkStringPadStart() { - if (String.prototype.padStart) { - return; - } - - __w_pdfjs_require__(180); - })(); - - (function checkStringPadEnd() { - if (String.prototype.padEnd) { - return; - } - - __w_pdfjs_require__(185); - })(); - - (function checkObjectValues() { - if (Object.values) { - return; - } - - Object.values = __w_pdfjs_require__(187); - })(); + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let buffer = `data:${contentType};base64,`; + + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, + d2 = (b1 & 3) << 4 | b2 >> 4; + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } + + return buffer; } /***/ }), /* 3 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -__w_pdfjs_require__(4); -module.exports = __w_pdfjs_require__(6); + + +var _is_node = __w_pdfjs_require__(4); + +; /***/ }), /* 4 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/***/ ((__unused_webpack_module, exports) => { -var $ = __w_pdfjs_require__(5); -var global = __w_pdfjs_require__(6); -$({ global: true }, { globalThis: global }); -/***/ }), -/* 5 */ -/***/ (function(module, exports, __w_pdfjs_require__) { -var global = __w_pdfjs_require__(6); -var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f; -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var redefine = __w_pdfjs_require__(24); -var setGlobal = __w_pdfjs_require__(25); -var copyConstructorProperties = __w_pdfjs_require__(35); -var isForced = __w_pdfjs_require__(47); -module.exports = function (options, source) { - var TARGET = options.target; - var GLOBAL = options.global; - var STATIC = options.stat; - var FORCED, target, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global; - } else if (STATIC) { - target = global[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global[TARGET] || {}).prototype; - } - if (target) - for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else - targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); - if (!FORCED && targetProperty !== undefined) { - if (typeof sourceProperty === typeof targetProperty) - continue; - copyConstructorProperties(sourceProperty, targetProperty); - } - if (options.sham || targetProperty && targetProperty.sham) { - createNonEnumerableProperty(sourceProperty, 'sham', true); - } - redefine(target, key, sourceProperty, options); - } -}; - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -var check = function (it) { - return it && it.Math == Math && it; -}; -module.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || Function('return this')(); - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var propertyIsEnumerableModule = __w_pdfjs_require__(10); -var createPropertyDescriptor = __w_pdfjs_require__(11); -var toIndexedObject = __w_pdfjs_require__(12); -var toPrimitive = __w_pdfjs_require__(16); -var has = __w_pdfjs_require__(18); -var IE8_DOM_DEFINE = __w_pdfjs_require__(19); -var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { - O = toIndexedObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) - try { - return nativeGetOwnPropertyDescriptor(O, P); - } catch (error) { - } - if (has(O, P)) - return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); -}; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -module.exports = !fails(function () { - return Object.defineProperty({}, 1, { - get: function () { - return 7; - } - })[1] != 7; -}); - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (error) { - return true; - } -}; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var nativePropertyIsEnumerable = {}.propertyIsEnumerable; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); -exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { - var descriptor = getOwnPropertyDescriptor(this, V); - return !!descriptor && descriptor.enumerable; -} : nativePropertyIsEnumerable; - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var IndexedObject = __w_pdfjs_require__(13); -var requireObjectCoercible = __w_pdfjs_require__(15); -module.exports = function (it) { - return IndexedObject(requireObjectCoercible(it)); -}; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -var classof = __w_pdfjs_require__(14); -var split = ''.split; -module.exports = fails(function () { - return !Object('z').propertyIsEnumerable(0); -}) ? function (it) { - return classof(it) == 'String' ? split.call(it, '') : Object(it); -} : Object; - -/***/ }), -/* 14 */ -/***/ (function(module, exports) { - -var toString = {}.toString; -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (it == undefined) - throw TypeError("Can't call method on " + it); - return it; -}; - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -module.exports = function (input, PREFERRED_STRING) { - if (!isObject(input)) - return input; - var fn, val; - if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) - return val; - if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) - return val; - if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) - return val; - throw TypeError("Can't convert object to primitive value"); -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var fails = __w_pdfjs_require__(9); -var createElement = __w_pdfjs_require__(20); -module.exports = !DESCRIPTORS && !fails(function () { - return Object.defineProperty(createElement('div'), 'a', { - get: function () { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var isObject = __w_pdfjs_require__(17); -var document = global.document; -var EXISTS = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return EXISTS ? document.createElement(it) : {}; -}; - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var definePropertyModule = __w_pdfjs_require__(22); -var createPropertyDescriptor = __w_pdfjs_require__(11); -module.exports = DESCRIPTORS ? function (object, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var IE8_DOM_DEFINE = __w_pdfjs_require__(19); -var anObject = __w_pdfjs_require__(23); -var toPrimitive = __w_pdfjs_require__(16); -var nativeDefineProperty = Object.defineProperty; -exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) - try { - return nativeDefineProperty(O, P, Attributes); - } catch (error) { - } - if ('get' in Attributes || 'set' in Attributes) - throw TypeError('Accessors not supported'); - if ('value' in Attributes) - O[P] = Attributes.value; - return O; -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -module.exports = function (it) { - if (!isObject(it)) { - throw TypeError(String(it) + ' is not an object'); - } - return it; -}; - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var has = __w_pdfjs_require__(18); -var setGlobal = __w_pdfjs_require__(25); -var inspectSource = __w_pdfjs_require__(26); -var InternalStateModule = __w_pdfjs_require__(28); -var getInternalState = InternalStateModule.get; -var enforceInternalState = InternalStateModule.enforce; -var TEMPLATE = String(String).split('String'); -(module.exports = function (O, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == 'function') { - if (typeof key == 'string' && !has(value, 'name')) - createNonEnumerableProperty(value, 'name', key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); - } - if (O === global) { - if (simple) - O[key] = value; - else - setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple = true; - } - if (simple) - O[key] = value; - else - createNonEnumerableProperty(O, key, value); -})(Function.prototype, 'toString', function toString() { - return typeof this == 'function' && getInternalState(this).source || inspectSource(this); -}); - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -module.exports = function (key, value) { - try { - createNonEnumerableProperty(global, key, value); - } catch (error) { - global[key] = value; - } - return value; -}; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var store = __w_pdfjs_require__(27); -var functionToString = Function.toString; -if (typeof store.inspectSource != 'function') { - store.inspectSource = function (it) { - return functionToString.call(it); - }; -} -module.exports = store.inspectSource; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var setGlobal = __w_pdfjs_require__(25); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || setGlobal(SHARED, {}); -module.exports = store; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var NATIVE_WEAK_MAP = __w_pdfjs_require__(29); -var global = __w_pdfjs_require__(6); -var isObject = __w_pdfjs_require__(17); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var objectHas = __w_pdfjs_require__(18); -var sharedKey = __w_pdfjs_require__(30); -var hiddenKeys = __w_pdfjs_require__(34); -var WeakMap = global.WeakMap; -var set, get, has; -var enforce = function (it) { - return has(it) ? get(it) : set(it, {}); -}; -var getterFor = function (TYPE) { - return function (it) { - var state; - if (!isObject(it) || (state = get(it)).type !== TYPE) { - throw TypeError('Incompatible receiver, ' + TYPE + ' required'); - } - return state; - }; -}; -if (NATIVE_WEAK_MAP) { - var store = new WeakMap(); - var wmget = store.get; - var wmhas = store.has; - var wmset = store.set; - set = function (it, metadata) { - wmset.call(store, it, metadata); - return metadata; - }; - get = function (it) { - return wmget.call(store, it) || {}; - }; - has = function (it) { - return wmhas.call(store, it); - }; -} else { - var STATE = sharedKey('state'); - hiddenKeys[STATE] = true; - set = function (it, metadata) { - createNonEnumerableProperty(it, STATE, metadata); - return metadata; - }; - get = function (it) { - return objectHas(it, STATE) ? it[STATE] : {}; - }; - has = function (it) { - return objectHas(it, STATE); - }; -} -module.exports = { - set: set, - get: get, - has: has, - enforce: enforce, - getterFor: getterFor -}; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var inspectSource = __w_pdfjs_require__(26); -var WeakMap = global.WeakMap; -module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var shared = __w_pdfjs_require__(31); -var uid = __w_pdfjs_require__(33); -var keys = shared('keys'); -module.exports = function (key) { - return keys[key] || (keys[key] = uid(key)); -}; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var IS_PURE = __w_pdfjs_require__(32); -var store = __w_pdfjs_require__(27); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: '3.6.4', - mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2020 Denis Pushkarev (zloirock.ru)' -}); - -/***/ }), -/* 32 */ -/***/ (function(module, exports) { - -module.exports = false; - -/***/ }), -/* 33 */ -/***/ (function(module, exports) { - -var id = 0; -var postfix = Math.random(); -module.exports = function (key) { - return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); -}; - -/***/ }), -/* 34 */ -/***/ (function(module, exports) { - -module.exports = {}; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var has = __w_pdfjs_require__(18); -var ownKeys = __w_pdfjs_require__(36); -var getOwnPropertyDescriptorModule = __w_pdfjs_require__(7); -var definePropertyModule = __w_pdfjs_require__(22); -module.exports = function (target, source) { - var keys = ownKeys(source); - var defineProperty = definePropertyModule.f; - var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!has(target, key)) - defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var getBuiltIn = __w_pdfjs_require__(37); -var getOwnPropertyNamesModule = __w_pdfjs_require__(39); -var getOwnPropertySymbolsModule = __w_pdfjs_require__(46); -var anObject = __w_pdfjs_require__(23); -module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { - var keys = getOwnPropertyNamesModule.f(anObject(it)); - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; -}; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var path = __w_pdfjs_require__(38); -var global = __w_pdfjs_require__(6); -var aFunction = function (variable) { - return typeof variable == 'function' ? variable : undefined; -}; -module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; -}; - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -module.exports = global; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var internalObjectKeys = __w_pdfjs_require__(40); -var enumBugKeys = __w_pdfjs_require__(45); -var hiddenKeys = enumBugKeys.concat('length', 'prototype'); -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return internalObjectKeys(O, hiddenKeys); -}; - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var has = __w_pdfjs_require__(18); -var toIndexedObject = __w_pdfjs_require__(12); -var indexOf = __w_pdfjs_require__(41).indexOf; -var hiddenKeys = __w_pdfjs_require__(34); -module.exports = function (object, names) { - var O = toIndexedObject(object); - var i = 0; - var result = []; - var key; - for (key in O) - !has(hiddenKeys, key) && has(O, key) && result.push(key); - while (names.length > i) - if (has(O, key = names[i++])) { - ~indexOf(result, key) || result.push(key); - } - return result; -}; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toIndexedObject = __w_pdfjs_require__(12); -var toLength = __w_pdfjs_require__(42); -var toAbsoluteIndex = __w_pdfjs_require__(44); -var createMethod = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIndexedObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - if (IS_INCLUDES && el != el) - while (length > index) { - value = O[index++]; - if (value != value) - return true; - } - else - for (; length > index; index++) { - if ((IS_INCLUDES || index in O) && O[index] === el) - return IS_INCLUDES || index || 0; - } - return !IS_INCLUDES && -1; - }; -}; -module.exports = { - includes: createMethod(true), - indexOf: createMethod(false) -}; - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toInteger = __w_pdfjs_require__(43); -var min = Math.min; -module.exports = function (argument) { - return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports) { - -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (argument) { - return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); -}; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toInteger = __w_pdfjs_require__(43); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - var integer = toInteger(index); - return integer < 0 ? max(integer + length, 0) : min(integer, length); -}; - -/***/ }), -/* 45 */ -/***/ (function(module, exports) { - -module.exports = [ - 'constructor', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'toLocaleString', - 'toString', - 'valueOf' -]; - -/***/ }), -/* 46 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -var replacement = /#|\.prototype\./; -var isForced = function (feature, detection) { - var value = data[normalize(feature)]; - return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection; -}; -var normalize = isForced.normalize = function (string) { - return String(string).replace(replacement, '.').toLowerCase(); -}; -var data = isForced.data = {}; -var NATIVE = isForced.NATIVE = 'N'; -var POLYFILL = isForced.POLYFILL = 'P'; -module.exports = isForced; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.isNodeJS = void 0; - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var isNodeJS = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && process + "" === "[object process]" && !process.versions["nw"] && !process.versions["electron"]; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); exports.isNodeJS = isNodeJS; /***/ }), -/* 49 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/* 5 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -__w_pdfjs_require__(50); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'startsWith'); -/***/ }), -/* 50 */ -/***/ (function(module, exports, __w_pdfjs_require__) { -"use strict"; - -var $ = __w_pdfjs_require__(5); -var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f; -var toLength = __w_pdfjs_require__(42); -var notARegExp = __w_pdfjs_require__(51); -var requireObjectCoercible = __w_pdfjs_require__(15); -var correctIsRegExpLogic = __w_pdfjs_require__(56); -var IS_PURE = __w_pdfjs_require__(32); -var nativeStartsWith = ''.startsWith; -var min = Math.min; -var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith'); -var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith'); - return descriptor && !descriptor.writable; -}(); -$({ - target: 'String', - proto: true, - forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC -}, { - startsWith: function startsWith(searchString) { - var that = String(requireObjectCoercible(this)); - notARegExp(searchString); - var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search; - } -}); - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isRegExp = __w_pdfjs_require__(52); -module.exports = function (it) { - if (isRegExp(it)) { - throw TypeError("The method doesn't accept regular expressions"); - } - return it; -}; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -var classof = __w_pdfjs_require__(14); -var wellKnownSymbol = __w_pdfjs_require__(53); -var MATCH = wellKnownSymbol('match'); -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); -}; - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var shared = __w_pdfjs_require__(31); -var has = __w_pdfjs_require__(18); -var uid = __w_pdfjs_require__(33); -var NATIVE_SYMBOL = __w_pdfjs_require__(54); -var USE_SYMBOL_AS_UID = __w_pdfjs_require__(55); -var WellKnownSymbolsStore = shared('wks'); -var Symbol = global.Symbol; -var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; -module.exports = function (name) { - if (!has(WellKnownSymbolsStore, name)) { - if (NATIVE_SYMBOL && has(Symbol, name)) - WellKnownSymbolsStore[name] = Symbol[name]; - else - WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); - } - return WellKnownSymbolsStore[name]; -}; - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -module.exports = !!Object.getOwnPropertySymbols && !fails(function () { - return !String(Symbol()); -}); - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var NATIVE_SYMBOL = __w_pdfjs_require__(54); -module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol'; - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -var MATCH = wellKnownSymbol('match'); -module.exports = function (METHOD_NAME) { - var regexp = /./; - try { - '/./'[METHOD_NAME](regexp); - } catch (e) { - try { - regexp[MATCH] = false; - return '/./'[METHOD_NAME](regexp); - } catch (f) { - } - } - return false; -}; - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var bind = __w_pdfjs_require__(58); -var call = Function.call; -module.exports = function (CONSTRUCTOR, METHOD, length) { - return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); -}; - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var aFunction = __w_pdfjs_require__(59); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) - return fn; - switch (length) { - case 0: - return function () { - return fn.call(that); - }; - case 1: - return function (a) { - return fn.call(that, a); - }; - case 2: - return function (a, b) { - return fn.call(that, a, b); - }; - case 3: - return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function () { - return fn.apply(that, arguments); - }; -}; - -/***/ }), -/* 59 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') { - throw TypeError(String(it) + ' is not a function'); - } - return it; -}; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(61); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'endsWith'); - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f; -var toLength = __w_pdfjs_require__(42); -var notARegExp = __w_pdfjs_require__(51); -var requireObjectCoercible = __w_pdfjs_require__(15); -var correctIsRegExpLogic = __w_pdfjs_require__(56); -var IS_PURE = __w_pdfjs_require__(32); -var nativeEndsWith = ''.endsWith; -var min = Math.min; -var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); -var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () { - var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith'); - return descriptor && !descriptor.writable; -}(); -$({ - target: 'String', - proto: true, - forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC -}, { - endsWith: function endsWith(searchString) { - var that = String(requireObjectCoercible(this)); - notARegExp(searchString); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : min(toLength(endPosition), len); - var search = String(searchString); - return nativeEndsWith ? nativeEndsWith.call(that, search, end) : that.slice(end - search.length, end) === search; - } -}); - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(63); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'includes'); - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var notARegExp = __w_pdfjs_require__(51); -var requireObjectCoercible = __w_pdfjs_require__(15); -var correctIsRegExpLogic = __w_pdfjs_require__(56); -$({ - target: 'String', - proto: true, - forced: !correctIsRegExpLogic('includes') -}, { - includes: function includes(searchString) { - return !!~String(requireObjectCoercible(this)).indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(65); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('Array', 'includes'); - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var $includes = __w_pdfjs_require__(41).includes; -var addToUnscopables = __w_pdfjs_require__(66); -var arrayMethodUsesToLength = __w_pdfjs_require__(71); -var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { - ACCESSORS: true, - 1: 0 -}); -$({ - target: 'Array', - proto: true, - forced: !USES_TO_LENGTH -}, { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } -}); -addToUnscopables('includes'); - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -var create = __w_pdfjs_require__(67); -var definePropertyModule = __w_pdfjs_require__(22); -var UNSCOPABLES = wellKnownSymbol('unscopables'); -var ArrayPrototype = Array.prototype; -if (ArrayPrototype[UNSCOPABLES] == undefined) { - definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { - configurable: true, - value: create(null) - }); -} -module.exports = function (key) { - ArrayPrototype[UNSCOPABLES][key] = true; -}; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var defineProperties = __w_pdfjs_require__(68); -var enumBugKeys = __w_pdfjs_require__(45); -var hiddenKeys = __w_pdfjs_require__(34); -var html = __w_pdfjs_require__(70); -var documentCreateElement = __w_pdfjs_require__(20); -var sharedKey = __w_pdfjs_require__(30); -var GT = '>'; -var LT = '<'; -var PROTOTYPE = 'prototype'; -var SCRIPT = 'script'; -var IE_PROTO = sharedKey('IE_PROTO'); -var EmptyConstructor = function () { -}; -var scriptTag = function (content) { - return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; -}; -var NullProtoObjectViaActiveX = function (activeXDocument) { - activeXDocument.write(scriptTag('')); - activeXDocument.close(); - var temp = activeXDocument.parentWindow.Object; - activeXDocument = null; - return temp; -}; -var NullProtoObjectViaIFrame = function () { - var iframe = documentCreateElement('iframe'); - var JS = 'java' + SCRIPT + ':'; - var iframeDocument; - iframe.style.display = 'none'; - html.appendChild(iframe); - iframe.src = String(JS); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(scriptTag('document.F=Object')); - iframeDocument.close(); - return iframeDocument.F; -}; -var activeXDocument; -var NullProtoObject = function () { - try { - activeXDocument = document.domain && new ActiveXObject('htmlfile'); - } catch (error) { - } - NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); - var length = enumBugKeys.length; - while (length--) - delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; - return NullProtoObject(); -}; -hiddenKeys[IE_PROTO] = true; -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - EmptyConstructor[PROTOTYPE] = anObject(O); - result = new EmptyConstructor(); - EmptyConstructor[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else - result = NullProtoObject(); - return Properties === undefined ? result : defineProperties(result, Properties); -}; - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var definePropertyModule = __w_pdfjs_require__(22); -var anObject = __w_pdfjs_require__(23); -var objectKeys = __w_pdfjs_require__(69); -module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = objectKeys(Properties); - var length = keys.length; - var index = 0; - var key; - while (length > index) - definePropertyModule.f(O, key = keys[index++], Properties[key]); - return O; -}; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var internalObjectKeys = __w_pdfjs_require__(40); -var enumBugKeys = __w_pdfjs_require__(45); -module.exports = Object.keys || function keys(O) { - return internalObjectKeys(O, enumBugKeys); -}; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var getBuiltIn = __w_pdfjs_require__(37); -module.exports = getBuiltIn('document', 'documentElement'); - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var fails = __w_pdfjs_require__(9); -var has = __w_pdfjs_require__(18); -var defineProperty = Object.defineProperty; -var cache = {}; -var thrower = function (it) { - throw it; -}; -module.exports = function (METHOD_NAME, options) { - if (has(cache, METHOD_NAME)) - return cache[METHOD_NAME]; - if (!options) - options = {}; - var method = [][METHOD_NAME]; - var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false; - var argument0 = has(options, 0) ? options[0] : thrower; - var argument1 = has(options, 1) ? options[1] : undefined; - return cache[METHOD_NAME] = !!method && !fails(function () { - if (ACCESSORS && !DESCRIPTORS) - return true; - var O = { length: -1 }; - if (ACCESSORS) - defineProperty(O, 1, { - enumerable: true, - get: thrower - }); - else - O[1] = 1; - method.call(O, argument0, argument1); - }); -}; - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(73); -__w_pdfjs_require__(85); -var path = __w_pdfjs_require__(38); -module.exports = path.Array.from; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var charAt = __w_pdfjs_require__(74).charAt; -var InternalStateModule = __w_pdfjs_require__(28); -var defineIterator = __w_pdfjs_require__(75); -var STRING_ITERATOR = 'String Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); -defineIterator(String, 'String', function (iterated) { - setInternalState(this, { - type: STRING_ITERATOR, - string: String(iterated), - index: 0 - }); -}, function next() { - var state = getInternalState(this); - var string = state.string; - var index = state.index; - var point; - if (index >= string.length) - return { - value: undefined, - done: true - }; - point = charAt(string, index); - state.index += point.length; - return { - value: point, - done: false - }; -}); - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toInteger = __w_pdfjs_require__(43); -var requireObjectCoercible = __w_pdfjs_require__(15); -var createMethod = function (CONVERT_TO_STRING) { - return function ($this, pos) { - var S = String(requireObjectCoercible($this)); - var position = toInteger(pos); - var size = S.length; - var first, second; - if (position < 0 || position >= size) - return CONVERT_TO_STRING ? '' : undefined; - first = S.charCodeAt(position); - return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; - }; -}; -module.exports = { - codeAt: createMethod(false), - charAt: createMethod(true) -}; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var createIteratorConstructor = __w_pdfjs_require__(76); -var getPrototypeOf = __w_pdfjs_require__(78); -var setPrototypeOf = __w_pdfjs_require__(83); -var setToStringTag = __w_pdfjs_require__(81); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var redefine = __w_pdfjs_require__(24); -var wellKnownSymbol = __w_pdfjs_require__(53); -var IS_PURE = __w_pdfjs_require__(32); -var Iterators = __w_pdfjs_require__(82); -var IteratorsCore = __w_pdfjs_require__(77); -var IteratorPrototype = IteratorsCore.IteratorPrototype; -var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; -var ITERATOR = wellKnownSymbol('iterator'); -var KEYS = 'keys'; -var VALUES = 'values'; -var ENTRIES = 'entries'; -var returnThis = function () { - return this; -}; -module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { - createIteratorConstructor(IteratorConstructor, NAME, next); - var getIterationMethod = function (KIND) { - if (KIND === DEFAULT && defaultIterator) - return defaultIterator; - if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) - return IterablePrototype[KIND]; - switch (KIND) { - case KEYS: - return function keys() { - return new IteratorConstructor(this, KIND); - }; - case VALUES: - return function values() { - return new IteratorConstructor(this, KIND); - }; - case ENTRIES: - return function entries() { - return new IteratorConstructor(this, KIND); - }; - } - return function () { - return new IteratorConstructor(this); - }; - }; - var TO_STRING_TAG = NAME + ' Iterator'; - var INCORRECT_VALUES_NAME = false; - var IterablePrototype = Iterable.prototype; - var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT]; - var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); - var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; - var CurrentIteratorPrototype, methods, KEY; - if (anyNativeIterator) { - CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); - if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { - if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { - if (setPrototypeOf) { - setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); - } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') { - createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis); - } - } - setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); - if (IS_PURE) - Iterators[TO_STRING_TAG] = returnThis; - } - } - if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { - INCORRECT_VALUES_NAME = true; - defaultIterator = function values() { - return nativeIterator.call(this); - }; - } - if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { - createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator); - } - Iterators[NAME] = defaultIterator; - if (DEFAULT) { - methods = { - values: getIterationMethod(VALUES), - keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), - entries: getIterationMethod(ENTRIES) - }; - if (FORCED) - for (KEY in methods) { - if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { - redefine(IterablePrototype, KEY, methods[KEY]); - } - } - else - $({ - target: NAME, - proto: true, - forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME - }, methods); - } - return methods; -}; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var IteratorPrototype = __w_pdfjs_require__(77).IteratorPrototype; -var create = __w_pdfjs_require__(67); -var createPropertyDescriptor = __w_pdfjs_require__(11); -var setToStringTag = __w_pdfjs_require__(81); -var Iterators = __w_pdfjs_require__(82); -var returnThis = function () { - return this; -}; -module.exports = function (IteratorConstructor, NAME, next) { - var TO_STRING_TAG = NAME + ' Iterator'; - IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); - setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); - Iterators[TO_STRING_TAG] = returnThis; - return IteratorConstructor; -}; - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var getPrototypeOf = __w_pdfjs_require__(78); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var has = __w_pdfjs_require__(18); -var wellKnownSymbol = __w_pdfjs_require__(53); -var IS_PURE = __w_pdfjs_require__(32); -var ITERATOR = wellKnownSymbol('iterator'); -var BUGGY_SAFARI_ITERATORS = false; -var returnThis = function () { - return this; -}; -var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; -if ([].keys) { - arrayIterator = [].keys(); - if (!('next' in arrayIterator)) - BUGGY_SAFARI_ITERATORS = true; - else { - PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); - if (PrototypeOfArrayIteratorPrototype !== Object.prototype) - IteratorPrototype = PrototypeOfArrayIteratorPrototype; - } -} -if (IteratorPrototype == undefined) - IteratorPrototype = {}; -if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) { - createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis); -} -module.exports = { - IteratorPrototype: IteratorPrototype, - BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS -}; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var has = __w_pdfjs_require__(18); -var toObject = __w_pdfjs_require__(79); -var sharedKey = __w_pdfjs_require__(30); -var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(80); -var IE_PROTO = sharedKey('IE_PROTO'); -var ObjectPrototype = Object.prototype; -module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) - return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } - return O instanceof Object ? ObjectPrototype : null; -}; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var requireObjectCoercible = __w_pdfjs_require__(15); -module.exports = function (argument) { - return Object(requireObjectCoercible(argument)); -}; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -module.exports = !fails(function () { - function F() { - } - F.prototype.constructor = null; - return Object.getPrototypeOf(new F()) !== F.prototype; -}); - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineProperty = __w_pdfjs_require__(22).f; -var has = __w_pdfjs_require__(18); -var wellKnownSymbol = __w_pdfjs_require__(53); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -module.exports = function (it, TAG, STATIC) { - if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { - defineProperty(it, TO_STRING_TAG, { - configurable: true, - value: TAG - }); - } -}; - -/***/ }), -/* 82 */ -/***/ (function(module, exports) { - -module.exports = {}; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var aPossiblePrototype = __w_pdfjs_require__(84); -module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () { - var CORRECT_SETTER = false; - var test = {}; - var setter; - try { - setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set; - setter.call(test, []); - CORRECT_SETTER = test instanceof Array; - } catch (error) { - } - return function setPrototypeOf(O, proto) { - anObject(O); - aPossiblePrototype(proto); - if (CORRECT_SETTER) - setter.call(O, proto); - else - O.__proto__ = proto; - return O; - }; -}() : undefined); - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -module.exports = function (it) { - if (!isObject(it) && it !== null) { - throw TypeError("Can't set " + String(it) + ' as a prototype'); - } - return it; -}; - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var from = __w_pdfjs_require__(86); -var checkCorrectnessOfIteration = __w_pdfjs_require__(93); -var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { - Array.from(iterable); -}); -$({ - target: 'Array', - stat: true, - forced: INCORRECT_ITERATION -}, { from: from }); - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var bind = __w_pdfjs_require__(58); -var toObject = __w_pdfjs_require__(79); -var callWithSafeIterationClosing = __w_pdfjs_require__(87); -var isArrayIteratorMethod = __w_pdfjs_require__(88); -var toLength = __w_pdfjs_require__(42); -var createProperty = __w_pdfjs_require__(89); -var getIteratorMethod = __w_pdfjs_require__(90); -module.exports = function from(arrayLike) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var argumentsLength = arguments.length; - var mapfn = argumentsLength > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iteratorMethod = getIteratorMethod(O); - var index = 0; - var length, result, step, iterator, next, value; - if (mapping) - mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2); - if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { - iterator = iteratorMethod.call(O); - next = iterator.next; - result = new C(); - for (; !(step = next.call(iterator)).done; index++) { - value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [ - step.value, - index - ], true) : step.value; - createProperty(result, index, value); - } - } else { - length = toLength(O.length); - result = new C(length); - for (; length > index; index++) { - value = mapping ? mapfn(O[index], index) : O[index]; - createProperty(result, index, value); - } - } - result.length = index; - return result; -}; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -module.exports = function (iterator, fn, value, ENTRIES) { - try { - return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); - } catch (error) { - var returnMethod = iterator['return']; - if (returnMethod !== undefined) - anObject(returnMethod.call(iterator)); - throw error; - } -}; - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -var Iterators = __w_pdfjs_require__(82); -var ITERATOR = wellKnownSymbol('iterator'); -var ArrayPrototype = Array.prototype; -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); -}; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var toPrimitive = __w_pdfjs_require__(16); -var definePropertyModule = __w_pdfjs_require__(22); -var createPropertyDescriptor = __w_pdfjs_require__(11); -module.exports = function (object, key, value) { - var propertyKey = toPrimitive(key); - if (propertyKey in object) - definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); - else - object[propertyKey] = value; -}; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var classof = __w_pdfjs_require__(91); -var Iterators = __w_pdfjs_require__(82); -var wellKnownSymbol = __w_pdfjs_require__(53); -var ITERATOR = wellKnownSymbol('iterator'); -module.exports = function (it) { - if (it != undefined) - return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; -}; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92); -var classofRaw = __w_pdfjs_require__(14); -var wellKnownSymbol = __w_pdfjs_require__(53); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var CORRECT_ARGUMENTS = classofRaw(function () { - return arguments; -}()) == 'Arguments'; -var tryGet = function (it, key) { - try { - return it[key]; - } catch (error) { - } -}; -module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) { - var O, tag, result; - return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result; -}; - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var test = {}; -test[TO_STRING_TAG] = 'z'; -module.exports = String(test) === '[object z]'; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -var ITERATOR = wellKnownSymbol('iterator'); -var SAFE_CLOSING = false; -try { - var called = 0; - var iteratorWithReturn = { - next: function () { - return { done: !!called++ }; - }, - 'return': function () { - SAFE_CLOSING = true; - } - }; - iteratorWithReturn[ITERATOR] = function () { - return this; - }; - Array.from(iteratorWithReturn, function () { - throw 2; - }); -} catch (error) { -} -module.exports = function (exec, SKIP_CLOSING) { - if (!SKIP_CLOSING && !SAFE_CLOSING) - return false; - var ITERATION_SUPPORT = false; - try { - var object = {}; - object[ITERATOR] = function () { - return { - next: function () { - return { done: ITERATION_SUPPORT = true }; - } - }; - }; - exec(object); - } catch (error) { - } - return ITERATION_SUPPORT; -}; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(95); -var path = __w_pdfjs_require__(38); -module.exports = path.Object.assign; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var assign = __w_pdfjs_require__(96); -$({ - target: 'Object', - stat: true, - forced: Object.assign !== assign -}, { assign: assign }); - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var DESCRIPTORS = __w_pdfjs_require__(8); -var fails = __w_pdfjs_require__(9); -var objectKeys = __w_pdfjs_require__(69); -var getOwnPropertySymbolsModule = __w_pdfjs_require__(46); -var propertyIsEnumerableModule = __w_pdfjs_require__(10); -var toObject = __w_pdfjs_require__(79); -var IndexedObject = __w_pdfjs_require__(13); -var nativeAssign = Object.assign; -var defineProperty = Object.defineProperty; -module.exports = !nativeAssign || fails(function () { - if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', { - enumerable: true, - get: function () { - defineProperty(this, 'b', { - value: 3, - enumerable: false - }); - } - }), { b: 2 })).b !== 1) - return true; - var A = {}; - var B = {}; - var symbol = Symbol(); - var alphabet = 'abcdefghijklmnopqrst'; - A[symbol] = 7; - alphabet.split('').forEach(function (chr) { - B[chr] = chr; - }); - return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet; -}) ? function assign(target, source) { - var T = toObject(target); - var argumentsLength = arguments.length; - var index = 1; - var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; - var propertyIsEnumerable = propertyIsEnumerableModule.f; - while (argumentsLength > index) { - var S = IndexedObject(arguments[index++]); - var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) - T[key] = S[key]; - } - } - return T; -} : nativeAssign; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(98); -var path = __w_pdfjs_require__(38); -module.exports = path.Math.log2; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var log = Math.log; -var LN2 = Math.LN2; -$({ - target: 'Math', - stat: true -}, { - log2: function log2(x) { - return log(x) / LN2; - } -}); - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(100); -var path = __w_pdfjs_require__(38); -module.exports = path.Number.isNaN; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -$({ - target: 'Number', - stat: true -}, { - isNaN: function isNaN(number) { - return number != number; - } -}); - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(102); -var path = __w_pdfjs_require__(38); -module.exports = path.Number.isInteger; - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var isInteger = __w_pdfjs_require__(103); -$({ - target: 'Number', - stat: true -}, { isInteger: isInteger }); - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -var floor = Math.floor; -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(105); -__w_pdfjs_require__(73); -__w_pdfjs_require__(107); -__w_pdfjs_require__(110); -__w_pdfjs_require__(126); -__w_pdfjs_require__(127); -var path = __w_pdfjs_require__(38); -module.exports = path.Promise; - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92); -var redefine = __w_pdfjs_require__(24); -var toString = __w_pdfjs_require__(106); -if (!TO_STRING_TAG_SUPPORT) { - redefine(Object.prototype, 'toString', toString, { unsafe: true }); -} - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92); -var classof = __w_pdfjs_require__(91); -module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() { - return '[object ' + classof(this) + ']'; -}; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var DOMIterables = __w_pdfjs_require__(108); -var ArrayIteratorMethods = __w_pdfjs_require__(109); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var wellKnownSymbol = __w_pdfjs_require__(53); -var ITERATOR = wellKnownSymbol('iterator'); -var TO_STRING_TAG = wellKnownSymbol('toStringTag'); -var ArrayValues = ArrayIteratorMethods.values; -for (var COLLECTION_NAME in DOMIterables) { - var Collection = global[COLLECTION_NAME]; - var CollectionPrototype = Collection && Collection.prototype; - if (CollectionPrototype) { - if (CollectionPrototype[ITERATOR] !== ArrayValues) - try { - createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues); - } catch (error) { - CollectionPrototype[ITERATOR] = ArrayValues; - } - if (!CollectionPrototype[TO_STRING_TAG]) { - createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME); - } - if (DOMIterables[COLLECTION_NAME]) - for (var METHOD_NAME in ArrayIteratorMethods) { - if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) - try { - createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]); - } catch (error) { - CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME]; - } - } - } -} - -/***/ }), -/* 108 */ -/***/ (function(module, exports) { - -module.exports = { - CSSRuleList: 0, - CSSStyleDeclaration: 0, - CSSValueList: 0, - ClientRectList: 0, - DOMRectList: 0, - DOMStringList: 0, - DOMTokenList: 1, - DataTransferItemList: 0, - FileList: 0, - HTMLAllCollection: 0, - HTMLCollection: 0, - HTMLFormElement: 0, - HTMLSelectElement: 0, - MediaList: 0, - MimeTypeArray: 0, - NamedNodeMap: 0, - NodeList: 1, - PaintRequestList: 0, - Plugin: 0, - PluginArray: 0, - SVGLengthList: 0, - SVGNumberList: 0, - SVGPathSegList: 0, - SVGPointList: 0, - SVGStringList: 0, - SVGTransformList: 0, - SourceBufferList: 0, - StyleSheetList: 0, - TextTrackCueList: 0, - TextTrackList: 0, - TouchList: 0 -}; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var toIndexedObject = __w_pdfjs_require__(12); -var addToUnscopables = __w_pdfjs_require__(66); -var Iterators = __w_pdfjs_require__(82); -var InternalStateModule = __w_pdfjs_require__(28); -var defineIterator = __w_pdfjs_require__(75); -var ARRAY_ITERATOR = 'Array Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR); -module.exports = defineIterator(Array, 'Array', function (iterated, kind) { - setInternalState(this, { - type: ARRAY_ITERATOR, - target: toIndexedObject(iterated), - index: 0, - kind: kind - }); -}, function () { - var state = getInternalState(this); - var target = state.target; - var kind = state.kind; - var index = state.index++; - if (!target || index >= target.length) { - state.target = undefined; - return { - value: undefined, - done: true - }; - } - if (kind == 'keys') - return { - value: index, - done: false - }; - if (kind == 'values') - return { - value: target[index], - done: false - }; - return { - value: [ - index, - target[index] - ], - done: false - }; -}, 'values'); -Iterators.Arguments = Iterators.Array; -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var IS_PURE = __w_pdfjs_require__(32); -var global = __w_pdfjs_require__(6); -var getBuiltIn = __w_pdfjs_require__(37); -var NativePromise = __w_pdfjs_require__(111); -var redefine = __w_pdfjs_require__(24); -var redefineAll = __w_pdfjs_require__(112); -var setToStringTag = __w_pdfjs_require__(81); -var setSpecies = __w_pdfjs_require__(113); -var isObject = __w_pdfjs_require__(17); -var aFunction = __w_pdfjs_require__(59); -var anInstance = __w_pdfjs_require__(114); -var classof = __w_pdfjs_require__(14); -var inspectSource = __w_pdfjs_require__(26); -var iterate = __w_pdfjs_require__(115); -var checkCorrectnessOfIteration = __w_pdfjs_require__(93); -var speciesConstructor = __w_pdfjs_require__(116); -var task = __w_pdfjs_require__(117).set; -var microtask = __w_pdfjs_require__(120); -var promiseResolve = __w_pdfjs_require__(121); -var hostReportErrors = __w_pdfjs_require__(123); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(124); -var InternalStateModule = __w_pdfjs_require__(28); -var isForced = __w_pdfjs_require__(47); -var wellKnownSymbol = __w_pdfjs_require__(53); -var V8_VERSION = __w_pdfjs_require__(125); -var SPECIES = wellKnownSymbol('species'); -var PROMISE = 'Promise'; -var getInternalState = InternalStateModule.get; -var setInternalState = InternalStateModule.set; -var getInternalPromiseState = InternalStateModule.getterFor(PROMISE); -var PromiseConstructor = NativePromise; -var TypeError = global.TypeError; -var document = global.document; -var process = global.process; -var $fetch = getBuiltIn('fetch'); -var newPromiseCapability = newPromiseCapabilityModule.f; -var newGenericPromiseCapability = newPromiseCapability; -var IS_NODE = classof(process) == 'process'; -var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent); -var UNHANDLED_REJECTION = 'unhandledrejection'; -var REJECTION_HANDLED = 'rejectionhandled'; -var PENDING = 0; -var FULFILLED = 1; -var REJECTED = 2; -var HANDLED = 1; -var UNHANDLED = 2; -var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen; -var FORCED = isForced(PROMISE, function () { - var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor); - if (!GLOBAL_CORE_JS_PROMISE) { - if (V8_VERSION === 66) - return true; - if (!IS_NODE && typeof PromiseRejectionEvent != 'function') - return true; - } - if (IS_PURE && !PromiseConstructor.prototype['finally']) - return true; - if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) - return false; - var promise = PromiseConstructor.resolve(1); - var FakePromise = function (exec) { - exec(function () { - }, function () { - }); - }; - var constructor = promise.constructor = {}; - constructor[SPECIES] = FakePromise; - return !(promise.then(function () { - }) instanceof FakePromise); -}); -var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) { - PromiseConstructor.all(iterable)['catch'](function () { - }); -}); -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function (promise, state, isReject) { - if (state.notified) - return; - state.notified = true; - var chain = state.reactions; - microtask(function () { - var value = state.value; - var ok = state.state == FULFILLED; - var index = 0; - while (chain.length > index) { - var reaction = chain[index++]; - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (state.rejection === UNHANDLED) - onHandleUnhandled(promise, state); - state.rejection = HANDLED; - } - if (handler === true) - result = value; - else { - if (domain) - domain.enter(); - result = handler(value); - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else - resolve(result); - } else - reject(value); - } catch (error) { - if (domain && !exited) - domain.exit(); - reject(error); - } - } - state.reactions = []; - state.notified = false; - if (isReject && !state.rejection) - onUnhandled(promise, state); - }); -}; -var dispatchEvent = function (name, promise, reason) { - var event, handler; - if (DISPATCH_EVENT) { - event = document.createEvent('Event'); - event.promise = promise; - event.reason = reason; - event.initEvent(name, false, true); - global.dispatchEvent(event); - } else - event = { - promise: promise, - reason: reason - }; - if (handler = global['on' + name]) - handler(event); - else if (name === UNHANDLED_REJECTION) - hostReportErrors('Unhandled promise rejection', reason); -}; -var onUnhandled = function (promise, state) { - task.call(global, function () { - var value = state.value; - var IS_UNHANDLED = isUnhandled(state); - var result; - if (IS_UNHANDLED) { - result = perform(function () { - if (IS_NODE) { - process.emit('unhandledRejection', value, promise); - } else - dispatchEvent(UNHANDLED_REJECTION, promise, value); - }); - state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED; - if (result.error) - throw result.value; - } - }); -}; -var isUnhandled = function (state) { - return state.rejection !== HANDLED && !state.parent; -}; -var onHandleUnhandled = function (promise, state) { - task.call(global, function () { - if (IS_NODE) { - process.emit('rejectionHandled', promise); - } else - dispatchEvent(REJECTION_HANDLED, promise, state.value); - }); -}; -var bind = function (fn, promise, state, unwrap) { - return function (value) { - fn(promise, state, value, unwrap); - }; -}; -var internalReject = function (promise, state, value, unwrap) { - if (state.done) - return; - state.done = true; - if (unwrap) - state = unwrap; - state.value = value; - state.state = REJECTED; - notify(promise, state, true); -}; -var internalResolve = function (promise, state, value, unwrap) { - if (state.done) - return; - state.done = true; - if (unwrap) - state = unwrap; - try { - if (promise === value) - throw TypeError("Promise can't be resolved itself"); - var then = isThenable(value); - if (then) { - microtask(function () { - var wrapper = { done: false }; - try { - then.call(value, bind(internalResolve, promise, wrapper, state), bind(internalReject, promise, wrapper, state)); - } catch (error) { - internalReject(promise, wrapper, error, state); - } - }); - } else { - state.value = value; - state.state = FULFILLED; - notify(promise, state, false); - } - } catch (error) { - internalReject(promise, { done: false }, error, state); - } -}; -if (FORCED) { - PromiseConstructor = function Promise(executor) { - anInstance(this, PromiseConstructor, PROMISE); - aFunction(executor); - Internal.call(this); - var state = getInternalState(this); - try { - executor(bind(internalResolve, this, state), bind(internalReject, this, state)); - } catch (error) { - internalReject(this, state, error); - } - }; - Internal = function Promise(executor) { - setInternalState(this, { - type: PROMISE, - done: false, - notified: false, - parent: false, - reactions: [], - rejection: false, - state: PENDING, - value: undefined - }); - }; - Internal.prototype = redefineAll(PromiseConstructor.prototype, { - then: function then(onFulfilled, onRejected) { - var state = getInternalPromiseState(this); - var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = IS_NODE ? process.domain : undefined; - state.parent = true; - state.reactions.push(reaction); - if (state.state != PENDING) - notify(this, state, false); - return reaction.promise; - }, - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - var state = getInternalState(promise); - this.promise = promise; - this.resolve = bind(internalResolve, promise, state); - this.reject = bind(internalReject, promise, state); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; - if (!IS_PURE && typeof NativePromise == 'function') { - nativeThen = NativePromise.prototype.then; - redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) { - var that = this; - return new PromiseConstructor(function (resolve, reject) { - nativeThen.call(that, resolve, reject); - }).then(onFulfilled, onRejected); - }, { unsafe: true }); - if (typeof $fetch == 'function') - $({ - global: true, - enumerable: true, - forced: true - }, { - fetch: function fetch(input) { - return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments)); - } - }); - } -} -$({ - global: true, - wrap: true, - forced: FORCED -}, { Promise: PromiseConstructor }); -setToStringTag(PromiseConstructor, PROMISE, false, true); -setSpecies(PROMISE); -PromiseWrapper = getBuiltIn(PROMISE); -$({ - target: PROMISE, - stat: true, - forced: FORCED -}, { - reject: function reject(r) { - var capability = newPromiseCapability(this); - capability.reject.call(undefined, r); - return capability.promise; - } -}); -$({ - target: PROMISE, - stat: true, - forced: IS_PURE || FORCED -}, { - resolve: function resolve(x) { - return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x); - } -}); -$({ - target: PROMISE, - stat: true, - forced: INCORRECT_ITERATION -}, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - $promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.error) - reject(result.value); - return capability.promise; - }, - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - var $promiseResolve = aFunction(C.resolve); - iterate(iterable, function (promise) { - $promiseResolve.call(C, promise).then(capability.resolve, reject); - }); - }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -module.exports = global.Promise; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var redefine = __w_pdfjs_require__(24); -module.exports = function (target, src, options) { - for (var key in src) - redefine(target, key, src[key], options); - return target; -}; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var getBuiltIn = __w_pdfjs_require__(37); -var definePropertyModule = __w_pdfjs_require__(22); -var wellKnownSymbol = __w_pdfjs_require__(53); -var DESCRIPTORS = __w_pdfjs_require__(8); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (CONSTRUCTOR_NAME) { - var Constructor = getBuiltIn(CONSTRUCTOR_NAME); - var defineProperty = definePropertyModule.f; - if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) { - defineProperty(Constructor, SPECIES, { - configurable: true, - get: function () { - return this; - } - }); - } -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name) { - if (!(it instanceof Constructor)) { - throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation'); - } - return it; -}; - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var isArrayIteratorMethod = __w_pdfjs_require__(88); -var toLength = __w_pdfjs_require__(42); -var bind = __w_pdfjs_require__(58); -var getIteratorMethod = __w_pdfjs_require__(90); -var callWithSafeIterationClosing = __w_pdfjs_require__(87); -var Result = function (stopped, result) { - this.stopped = stopped; - this.result = result; -}; -var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) { - var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1); - var iterator, iterFn, index, length, result, next, step; - if (IS_ITERATOR) { - iterator = iterable; - } else { - iterFn = getIteratorMethod(iterable); - if (typeof iterFn != 'function') - throw TypeError('Target is not iterable'); - if (isArrayIteratorMethod(iterFn)) { - for (index = 0, length = toLength(iterable.length); length > index; index++) { - result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]); - if (result && result instanceof Result) - return result; - } - return new Result(false); - } - iterator = iterFn.call(iterable); - } - next = iterator.next; - while (!(step = next.call(iterator)).done) { - result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES); - if (typeof result == 'object' && result && result instanceof Result) - return result; - } - return new Result(false); -}; -iterate.stop = function (result) { - return new Result(true, result); -}; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var aFunction = __w_pdfjs_require__(59); -var wellKnownSymbol = __w_pdfjs_require__(53); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (O, defaultConstructor) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S); -}; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var fails = __w_pdfjs_require__(9); -var classof = __w_pdfjs_require__(14); -var bind = __w_pdfjs_require__(58); -var html = __w_pdfjs_require__(70); -var createElement = __w_pdfjs_require__(20); -var IS_IOS = __w_pdfjs_require__(118); -var location = global.location; -var set = global.setImmediate; -var clear = global.clearImmediate; -var process = global.process; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; -var run = function (id) { - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var runner = function (id) { - return function () { - run(id); - }; -}; -var listener = function (event) { - run(event.data); -}; -var post = function (id) { - global.postMessage(id + '', location.protocol + '//' + location.host); -}; -if (!set || !clear) { - set = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) - args.push(arguments[i++]); - queue[++counter] = function () { - (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args); - }; - defer(counter); - return counter; - }; - clear = function clearImmediate(id) { - delete queue[id]; - }; - if (classof(process) == 'process') { - defer = function (id) { - process.nextTick(runner(id)); - }; - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(runner(id)); - }; - } else if (MessageChannel && !IS_IOS) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = bind(port.postMessage, port, 1); - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) { - defer = post; - global.addEventListener('message', listener, false); - } else if (ONREADYSTATECHANGE in createElement('script')) { - defer = function (id) { - html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run(id); - }; - }; - } else { - defer = function (id) { - setTimeout(runner(id), 0); - }; - } -} -module.exports = { - set: set, - clear: clear -}; - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var userAgent = __w_pdfjs_require__(119); -module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent); - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var getBuiltIn = __w_pdfjs_require__(37); -module.exports = getBuiltIn('navigator', 'userAgent') || ''; - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f; -var classof = __w_pdfjs_require__(14); -var macrotask = __w_pdfjs_require__(117).set; -var IS_IOS = __w_pdfjs_require__(118); -var MutationObserver = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var IS_NODE = classof(process) == 'process'; -var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask'); -var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value; -var flush, head, last, notify, toggle, node, promise, then; -if (!queueMicrotask) { - flush = function () { - var parent, fn; - if (IS_NODE && (parent = process.domain)) - parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (error) { - if (head) - notify(); - else - last = undefined; - throw error; - } - } - last = undefined; - if (parent) - parent.enter(); - }; - if (IS_NODE) { - notify = function () { - process.nextTick(flush); - }; - } else if (MutationObserver && !IS_IOS) { - toggle = true; - node = document.createTextNode(''); - new MutationObserver(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - } else if (Promise && Promise.resolve) { - promise = Promise.resolve(undefined); - then = promise.then; - notify = function () { - then.call(promise, flush); - }; - } else { - notify = function () { - macrotask.call(global, flush); - }; - } -} -module.exports = queueMicrotask || function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) - last.next = task; - if (!head) { - head = task; - notify(); - } - last = task; -}; - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var isObject = __w_pdfjs_require__(17); -var newPromiseCapability = __w_pdfjs_require__(122); -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) - return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var aFunction = __w_pdfjs_require__(59); -var PromiseCapability = function (C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) - throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -}; -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -module.exports = function (a, b) { - var console = global.console; - if (console && console.error) { - arguments.length === 1 ? console.error(a) : console.error(a, b); - } -}; - -/***/ }), -/* 124 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return { - error: false, - value: exec() - }; - } catch (error) { - return { - error: true, - value: error - }; - } -}; - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var userAgent = __w_pdfjs_require__(119); -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8; -var match, version; -if (v8) { - match = v8.split('.'); - version = match[0] + match[1]; -} else if (userAgent) { - match = userAgent.match(/Edge\/(\d+)/); - if (!match || match[1] >= 74) { - match = userAgent.match(/Chrome\/(\d+)/); - if (match) - version = match[1]; - } -} -module.exports = version && +version; - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var aFunction = __w_pdfjs_require__(59); -var newPromiseCapabilityModule = __w_pdfjs_require__(122); -var perform = __w_pdfjs_require__(124); -var iterate = __w_pdfjs_require__(115); -$({ - target: 'Promise', - stat: true -}, { - allSettled: function allSettled(iterable) { - var C = this; - var capability = newPromiseCapabilityModule.f(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var promiseResolve = aFunction(C.resolve); - var values = []; - var counter = 0; - var remaining = 1; - iterate(iterable, function (promise) { - var index = counter++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - promiseResolve.call(C, promise).then(function (value) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = { - status: 'fulfilled', - value: value - }; - --remaining || resolve(values); - }, function (e) { - if (alreadyCalled) - return; - alreadyCalled = true; - values[index] = { - status: 'rejected', - reason: e - }; - --remaining || resolve(values); - }); - }); - --remaining || resolve(values); - }); - if (result.error) - reject(result.value); - return capability.promise; - } -}); - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var IS_PURE = __w_pdfjs_require__(32); -var NativePromise = __w_pdfjs_require__(111); -var fails = __w_pdfjs_require__(9); -var getBuiltIn = __w_pdfjs_require__(37); -var speciesConstructor = __w_pdfjs_require__(116); -var promiseResolve = __w_pdfjs_require__(121); -var redefine = __w_pdfjs_require__(24); -var NON_GENERIC = !!NativePromise && fails(function () { - NativePromise.prototype['finally'].call({ - then: function () { - } - }, function () { - }); -}); -$({ - target: 'Promise', - proto: true, - real: true, - forced: NON_GENERIC -}, { - 'finally': function (onFinally) { - var C = speciesConstructor(this, getBuiltIn('Promise')); - var isFunction = typeof onFinally == 'function'; - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; - }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; - }); - } : onFinally); - } -}); -if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) { - redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']); -} - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(129); -__w_pdfjs_require__(134); -__w_pdfjs_require__(132); -var path = __w_pdfjs_require__(38); -module.exports = path.URL; - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -__w_pdfjs_require__(73); -var $ = __w_pdfjs_require__(5); -var DESCRIPTORS = __w_pdfjs_require__(8); -var USE_NATIVE_URL = __w_pdfjs_require__(130); -var global = __w_pdfjs_require__(6); -var defineProperties = __w_pdfjs_require__(68); -var redefine = __w_pdfjs_require__(24); -var anInstance = __w_pdfjs_require__(114); -var has = __w_pdfjs_require__(18); -var assign = __w_pdfjs_require__(96); -var arrayFrom = __w_pdfjs_require__(86); -var codeAt = __w_pdfjs_require__(74).codeAt; -var toASCII = __w_pdfjs_require__(131); -var setToStringTag = __w_pdfjs_require__(81); -var URLSearchParamsModule = __w_pdfjs_require__(132); -var InternalStateModule = __w_pdfjs_require__(28); -var NativeURL = global.URL; -var URLSearchParams = URLSearchParamsModule.URLSearchParams; -var getInternalSearchParamsState = URLSearchParamsModule.getState; -var setInternalState = InternalStateModule.set; -var getInternalURLState = InternalStateModule.getterFor('URL'); -var floor = Math.floor; -var pow = Math.pow; -var INVALID_AUTHORITY = 'Invalid authority'; -var INVALID_SCHEME = 'Invalid scheme'; -var INVALID_HOST = 'Invalid host'; -var INVALID_PORT = 'Invalid port'; -var ALPHA = /[A-Za-z]/; -var ALPHANUMERIC = /[\d+\-.A-Za-z]/; -var DIGIT = /\d/; -var HEX_START = /^(0x|0X)/; -var OCT = /^[0-7]+$/; -var DEC = /^\d+$/; -var HEX = /^[\dA-Fa-f]+$/; -var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/; -var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/; -var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g; -var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g; -var EOF; -var parseHost = function (url, input) { - var result, codePoints, index; - if (input.charAt(0) == '[') { - if (input.charAt(input.length - 1) != ']') - return INVALID_HOST; - result = parseIPv6(input.slice(1, -1)); - if (!result) - return INVALID_HOST; - url.host = result; - } else if (!isSpecial(url)) { - if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) - return INVALID_HOST; - result = ''; - codePoints = arrayFrom(input); - for (index = 0; index < codePoints.length; index++) { - result += percentEncode(codePoints[index], C0ControlPercentEncodeSet); - } - url.host = result; - } else { - input = toASCII(input); - if (FORBIDDEN_HOST_CODE_POINT.test(input)) - return INVALID_HOST; - result = parseIPv4(input); - if (result === null) - return INVALID_HOST; - url.host = result; - } -}; -var parseIPv4 = function (input) { - var parts = input.split('.'); - var partsLength, numbers, index, part, radix, number, ipv4; - if (parts.length && parts[parts.length - 1] == '') { - parts.pop(); - } - partsLength = parts.length; - if (partsLength > 4) - return input; - numbers = []; - for (index = 0; index < partsLength; index++) { - part = parts[index]; - if (part == '') - return input; - radix = 10; - if (part.length > 1 && part.charAt(0) == '0') { - radix = HEX_START.test(part) ? 16 : 8; - part = part.slice(radix == 8 ? 1 : 2); - } - if (part === '') { - number = 0; - } else { - if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) - return input; - number = parseInt(part, radix); - } - numbers.push(number); - } - for (index = 0; index < partsLength; index++) { - number = numbers[index]; - if (index == partsLength - 1) { - if (number >= pow(256, 5 - partsLength)) - return null; - } else if (number > 255) - return null; - } - ipv4 = numbers.pop(); - for (index = 0; index < numbers.length; index++) { - ipv4 += numbers[index] * pow(256, 3 - index); - } - return ipv4; -}; -var parseIPv6 = function (input) { - var address = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]; - var pieceIndex = 0; - var compress = null; - var pointer = 0; - var value, length, numbersSeen, ipv4Piece, number, swaps, swap; - var char = function () { - return input.charAt(pointer); - }; - if (char() == ':') { - if (input.charAt(1) != ':') - return; - pointer += 2; - pieceIndex++; - compress = pieceIndex; - } - while (char()) { - if (pieceIndex == 8) - return; - if (char() == ':') { - if (compress !== null) - return; - pointer++; - pieceIndex++; - compress = pieceIndex; - continue; - } - value = length = 0; - while (length < 4 && HEX.test(char())) { - value = value * 16 + parseInt(char(), 16); - pointer++; - length++; - } - if (char() == '.') { - if (length == 0) - return; - pointer -= length; - if (pieceIndex > 6) - return; - numbersSeen = 0; - while (char()) { - ipv4Piece = null; - if (numbersSeen > 0) { - if (char() == '.' && numbersSeen < 4) - pointer++; - else - return; - } - if (!DIGIT.test(char())) - return; - while (DIGIT.test(char())) { - number = parseInt(char(), 10); - if (ipv4Piece === null) - ipv4Piece = number; - else if (ipv4Piece == 0) - return; - else - ipv4Piece = ipv4Piece * 10 + number; - if (ipv4Piece > 255) - return; - pointer++; - } - address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece; - numbersSeen++; - if (numbersSeen == 2 || numbersSeen == 4) - pieceIndex++; - } - if (numbersSeen != 4) - return; - break; - } else if (char() == ':') { - pointer++; - if (!char()) - return; - } else if (char()) - return; - address[pieceIndex++] = value; - } - if (compress !== null) { - swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex != 0 && swaps > 0) { - swap = address[pieceIndex]; - address[pieceIndex--] = address[compress + swaps - 1]; - address[compress + --swaps] = swap; - } - } else if (pieceIndex != 8) - return; - return address; -}; -var findLongestZeroSequence = function (ipv6) { - var maxIndex = null; - var maxLength = 1; - var currStart = null; - var currLength = 0; - var index = 0; - for (; index < 8; index++) { - if (ipv6[index] !== 0) { - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - currStart = null; - currLength = 0; - } else { - if (currStart === null) - currStart = index; - ++currLength; - } - } - if (currLength > maxLength) { - maxIndex = currStart; - maxLength = currLength; - } - return maxIndex; -}; -var serializeHost = function (host) { - var result, index, compress, ignore0; - if (typeof host == 'number') { - result = []; - for (index = 0; index < 4; index++) { - result.unshift(host % 256); - host = floor(host / 256); - } - return result.join('.'); - } else if (typeof host == 'object') { - result = ''; - compress = findLongestZeroSequence(host); - for (index = 0; index < 8; index++) { - if (ignore0 && host[index] === 0) - continue; - if (ignore0) - ignore0 = false; - if (compress === index) { - result += index ? ':' : '::'; - ignore0 = true; - } else { - result += host[index].toString(16); - if (index < 7) - result += ':'; - } - } - return '[' + result + ']'; - } - return host; -}; -var C0ControlPercentEncodeSet = {}; -var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, { - ' ': 1, - '"': 1, - '<': 1, - '>': 1, - '`': 1 -}); -var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, { - '#': 1, - '?': 1, - '{': 1, - '}': 1 -}); -var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, { - '/': 1, - ':': 1, - ';': 1, - '=': 1, - '@': 1, - '[': 1, - '\\': 1, - ']': 1, - '^': 1, - '|': 1 -}); -var percentEncode = function (char, set) { - var code = codeAt(char, 0); - return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char); -}; -var specialSchemes = { - ftp: 21, - file: null, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; -var isSpecial = function (url) { - return has(specialSchemes, url.scheme); -}; -var includesCredentials = function (url) { - return url.username != '' || url.password != ''; -}; -var cannotHaveUsernamePasswordPort = function (url) { - return !url.host || url.cannotBeABaseURL || url.scheme == 'file'; -}; -var isWindowsDriveLetter = function (string, normalized) { - var second; - return string.length == 2 && ALPHA.test(string.charAt(0)) && ((second = string.charAt(1)) == ':' || !normalized && second == '|'); -}; -var startsWithWindowsDriveLetter = function (string) { - var third; - return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (string.length == 2 || ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#')); -}; -var shortenURLsPath = function (url) { - var path = url.path; - var pathSize = path.length; - if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) { - path.pop(); - } -}; -var isSingleDot = function (segment) { - return segment === '.' || segment.toLowerCase() === '%2e'; -}; -var isDoubleDot = function (segment) { - segment = segment.toLowerCase(); - return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e'; -}; -var SCHEME_START = {}; -var SCHEME = {}; -var NO_SCHEME = {}; -var SPECIAL_RELATIVE_OR_AUTHORITY = {}; -var PATH_OR_AUTHORITY = {}; -var RELATIVE = {}; -var RELATIVE_SLASH = {}; -var SPECIAL_AUTHORITY_SLASHES = {}; -var SPECIAL_AUTHORITY_IGNORE_SLASHES = {}; -var AUTHORITY = {}; -var HOST = {}; -var HOSTNAME = {}; -var PORT = {}; -var FILE = {}; -var FILE_SLASH = {}; -var FILE_HOST = {}; -var PATH_START = {}; -var PATH = {}; -var CANNOT_BE_A_BASE_URL_PATH = {}; -var QUERY = {}; -var FRAGMENT = {}; -var parseURL = function (url, input, stateOverride, base) { - var state = stateOverride || SCHEME_START; - var pointer = 0; - var buffer = ''; - var seenAt = false; - var seenBracket = false; - var seenPasswordToken = false; - var codePoints, char, bufferCodePoints, failure; - if (!stateOverride) { - url.scheme = ''; - url.username = ''; - url.password = ''; - url.host = null; - url.port = null; - url.path = []; - url.query = null; - url.fragment = null; - url.cannotBeABaseURL = false; - input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, ''); - } - input = input.replace(TAB_AND_NEW_LINE, ''); - codePoints = arrayFrom(input); - while (pointer <= codePoints.length) { - char = codePoints[pointer]; - switch (state) { - case SCHEME_START: - if (char && ALPHA.test(char)) { - buffer += char.toLowerCase(); - state = SCHEME; - } else if (!stateOverride) { - state = NO_SCHEME; - continue; - } else - return INVALID_SCHEME; - break; - case SCHEME: - if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) { - buffer += char.toLowerCase(); - } else if (char == ':') { - if (stateOverride && (isSpecial(url) != has(specialSchemes, buffer) || buffer == 'file' && (includesCredentials(url) || url.port !== null) || url.scheme == 'file' && !url.host)) - return; - url.scheme = buffer; - if (stateOverride) { - if (isSpecial(url) && specialSchemes[url.scheme] == url.port) - url.port = null; - return; - } - buffer = ''; - if (url.scheme == 'file') { - state = FILE; - } else if (isSpecial(url) && base && base.scheme == url.scheme) { - state = SPECIAL_RELATIVE_OR_AUTHORITY; - } else if (isSpecial(url)) { - state = SPECIAL_AUTHORITY_SLASHES; - } else if (codePoints[pointer + 1] == '/') { - state = PATH_OR_AUTHORITY; - pointer++; - } else { - url.cannotBeABaseURL = true; - url.path.push(''); - state = CANNOT_BE_A_BASE_URL_PATH; - } - } else if (!stateOverride) { - buffer = ''; - state = NO_SCHEME; - pointer = 0; - continue; - } else - return INVALID_SCHEME; - break; - case NO_SCHEME: - if (!base || base.cannotBeABaseURL && char != '#') - return INVALID_SCHEME; - if (base.cannotBeABaseURL && char == '#') { - url.scheme = base.scheme; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - url.cannotBeABaseURL = true; - state = FRAGMENT; - break; - } - state = base.scheme == 'file' ? FILE : RELATIVE; - continue; - case SPECIAL_RELATIVE_OR_AUTHORITY: - if (char == '/' && codePoints[pointer + 1] == '/') { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - pointer++; - } else { - state = RELATIVE; - continue; - } - break; - case PATH_OR_AUTHORITY: - if (char == '/') { - state = AUTHORITY; - break; - } else { - state = PATH; - continue; - } - case RELATIVE: - url.scheme = base.scheme; - if (char == EOF) { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '/' || char == '\\' && isSpecial(url)) { - state = RELATIVE_SLASH; - } else if (char == '?') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - url.path = base.path.slice(); - url.path.pop(); - state = PATH; - continue; - } - break; - case RELATIVE_SLASH: - if (isSpecial(url) && (char == '/' || char == '\\')) { - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - } else if (char == '/') { - state = AUTHORITY; - } else { - url.username = base.username; - url.password = base.password; - url.host = base.host; - url.port = base.port; - state = PATH; - continue; - } - break; - case SPECIAL_AUTHORITY_SLASHES: - state = SPECIAL_AUTHORITY_IGNORE_SLASHES; - if (char != '/' || buffer.charAt(pointer + 1) != '/') - continue; - pointer++; - break; - case SPECIAL_AUTHORITY_IGNORE_SLASHES: - if (char != '/' && char != '\\') { - state = AUTHORITY; - continue; - } - break; - case AUTHORITY: - if (char == '@') { - if (seenAt) - buffer = '%40' + buffer; - seenAt = true; - bufferCodePoints = arrayFrom(buffer); - for (var i = 0; i < bufferCodePoints.length; i++) { - var codePoint = bufferCodePoints[i]; - if (codePoint == ':' && !seenPasswordToken) { - seenPasswordToken = true; - continue; - } - var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet); - if (seenPasswordToken) - url.password += encodedCodePoints; - else - url.username += encodedCodePoints; - } - buffer = ''; - } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) { - if (seenAt && buffer == '') - return INVALID_AUTHORITY; - pointer -= arrayFrom(buffer).length + 1; - buffer = ''; - state = HOST; - } else - buffer += char; - break; - case HOST: - case HOSTNAME: - if (stateOverride && url.scheme == 'file') { - state = FILE_HOST; - continue; - } else if (char == ':' && !seenBracket) { - if (buffer == '') - return INVALID_HOST; - failure = parseHost(url, buffer); - if (failure) - return failure; - buffer = ''; - state = PORT; - if (stateOverride == HOSTNAME) - return; - } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) { - if (isSpecial(url) && buffer == '') - return INVALID_HOST; - if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) - return; - failure = parseHost(url, buffer); - if (failure) - return failure; - buffer = ''; - state = PATH_START; - if (stateOverride) - return; - continue; - } else { - if (char == '[') - seenBracket = true; - else if (char == ']') - seenBracket = false; - buffer += char; - } - break; - case PORT: - if (DIGIT.test(char)) { - buffer += char; - } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url) || stateOverride) { - if (buffer != '') { - var port = parseInt(buffer, 10); - if (port > 0xFFFF) - return INVALID_PORT; - url.port = isSpecial(url) && port === specialSchemes[url.scheme] ? null : port; - buffer = ''; - } - if (stateOverride) - return; - state = PATH_START; - continue; - } else - return INVALID_PORT; - break; - case FILE: - url.scheme = 'file'; - if (char == '/' || char == '\\') - state = FILE_SLASH; - else if (base && base.scheme == 'file') { - if (char == EOF) { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - } else if (char == '?') { - url.host = base.host; - url.path = base.path.slice(); - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.host = base.host; - url.path = base.path.slice(); - url.query = base.query; - url.fragment = ''; - state = FRAGMENT; - } else { - if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - url.host = base.host; - url.path = base.path.slice(); - shortenURLsPath(url); - } - state = PATH; - continue; - } - } else { - state = PATH; - continue; - } - break; - case FILE_SLASH: - if (char == '/' || char == '\\') { - state = FILE_HOST; - break; - } - if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) { - if (isWindowsDriveLetter(base.path[0], true)) - url.path.push(base.path[0]); - else - url.host = base.host; - } - state = PATH; - continue; - case FILE_HOST: - if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') { - if (!stateOverride && isWindowsDriveLetter(buffer)) { - state = PATH; - } else if (buffer == '') { - url.host = ''; - if (stateOverride) - return; - state = PATH_START; - } else { - failure = parseHost(url, buffer); - if (failure) - return failure; - if (url.host == 'localhost') - url.host = ''; - if (stateOverride) - return; - buffer = ''; - state = PATH_START; - } - continue; - } else - buffer += char; - break; - case PATH_START: - if (isSpecial(url)) { - state = PATH; - if (char != '/' && char != '\\') - continue; - } else if (!stateOverride && char == '?') { - url.query = ''; - state = QUERY; - } else if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - state = PATH; - if (char != '/') - continue; - } - break; - case PATH: - if (char == EOF || char == '/' || char == '\\' && isSpecial(url) || !stateOverride && (char == '?' || char == '#')) { - if (isDoubleDot(buffer)) { - shortenURLsPath(url); - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else if (isSingleDot(buffer)) { - if (char != '/' && !(char == '\\' && isSpecial(url))) { - url.path.push(''); - } - } else { - if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) { - if (url.host) - url.host = ''; - buffer = buffer.charAt(0) + ':'; - } - url.path.push(buffer); - } - buffer = ''; - if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) { - while (url.path.length > 1 && url.path[0] === '') { - url.path.shift(); - } - } - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } - } else { - buffer += percentEncode(char, pathPercentEncodeSet); - } - break; - case CANNOT_BE_A_BASE_URL_PATH: - if (char == '?') { - url.query = ''; - state = QUERY; - } else if (char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - url.path[0] += percentEncode(char, C0ControlPercentEncodeSet); - } - break; - case QUERY: - if (!stateOverride && char == '#') { - url.fragment = ''; - state = FRAGMENT; - } else if (char != EOF) { - if (char == "'" && isSpecial(url)) - url.query += '%27'; - else if (char == '#') - url.query += '%23'; - else - url.query += percentEncode(char, C0ControlPercentEncodeSet); - } - break; - case FRAGMENT: - if (char != EOF) - url.fragment += percentEncode(char, fragmentPercentEncodeSet); - break; - } - pointer++; - } -}; -var URLConstructor = function URL(url) { - var that = anInstance(this, URLConstructor, 'URL'); - var base = arguments.length > 1 ? arguments[1] : undefined; - var urlString = String(url); - var state = setInternalState(that, { type: 'URL' }); - var baseState, failure; - if (base !== undefined) { - if (base instanceof URLConstructor) - baseState = getInternalURLState(base); - else { - failure = parseURL(baseState = {}, String(base)); - if (failure) - throw TypeError(failure); - } - } - failure = parseURL(state, urlString, null, baseState); - if (failure) - throw TypeError(failure); - var searchParams = state.searchParams = new URLSearchParams(); - var searchParamsState = getInternalSearchParamsState(searchParams); - searchParamsState.updateSearchParams(state.query); - searchParamsState.updateURL = function () { - state.query = String(searchParams) || null; - }; - if (!DESCRIPTORS) { - that.href = serializeURL.call(that); - that.origin = getOrigin.call(that); - that.protocol = getProtocol.call(that); - that.username = getUsername.call(that); - that.password = getPassword.call(that); - that.host = getHost.call(that); - that.hostname = getHostname.call(that); - that.port = getPort.call(that); - that.pathname = getPathname.call(that); - that.search = getSearch.call(that); - that.searchParams = getSearchParams.call(that); - that.hash = getHash.call(that); - } -}; -var URLPrototype = URLConstructor.prototype; -var serializeURL = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var username = url.username; - var password = url.password; - var host = url.host; - var port = url.port; - var path = url.path; - var query = url.query; - var fragment = url.fragment; - var output = scheme + ':'; - if (host !== null) { - output += '//'; - if (includesCredentials(url)) { - output += username + (password ? ':' + password : '') + '@'; - } - output += serializeHost(host); - if (port !== null) - output += ':' + port; - } else if (scheme == 'file') - output += '//'; - output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; - if (query !== null) - output += '?' + query; - if (fragment !== null) - output += '#' + fragment; - return output; -}; -var getOrigin = function () { - var url = getInternalURLState(this); - var scheme = url.scheme; - var port = url.port; - if (scheme == 'blob') - try { - return new URL(scheme.path[0]).origin; - } catch (error) { - return 'null'; - } - if (scheme == 'file' || !isSpecial(url)) - return 'null'; - return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : ''); -}; -var getProtocol = function () { - return getInternalURLState(this).scheme + ':'; -}; -var getUsername = function () { - return getInternalURLState(this).username; -}; -var getPassword = function () { - return getInternalURLState(this).password; -}; -var getHost = function () { - var url = getInternalURLState(this); - var host = url.host; - var port = url.port; - return host === null ? '' : port === null ? serializeHost(host) : serializeHost(host) + ':' + port; -}; -var getHostname = function () { - var host = getInternalURLState(this).host; - return host === null ? '' : serializeHost(host); -}; -var getPort = function () { - var port = getInternalURLState(this).port; - return port === null ? '' : String(port); -}; -var getPathname = function () { - var url = getInternalURLState(this); - var path = url.path; - return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : ''; -}; -var getSearch = function () { - var query = getInternalURLState(this).query; - return query ? '?' + query : ''; -}; -var getSearchParams = function () { - return getInternalURLState(this).searchParams; -}; -var getHash = function () { - var fragment = getInternalURLState(this).fragment; - return fragment ? '#' + fragment : ''; -}; -var accessorDescriptor = function (getter, setter) { - return { - get: getter, - set: setter, - configurable: true, - enumerable: true - }; -}; -if (DESCRIPTORS) { - defineProperties(URLPrototype, { - href: accessorDescriptor(serializeURL, function (href) { - var url = getInternalURLState(this); - var urlString = String(href); - var failure = parseURL(url, urlString); - if (failure) - throw TypeError(failure); - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - origin: accessorDescriptor(getOrigin), - protocol: accessorDescriptor(getProtocol, function (protocol) { - var url = getInternalURLState(this); - parseURL(url, String(protocol) + ':', SCHEME_START); - }), - username: accessorDescriptor(getUsername, function (username) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(username)); - if (cannotHaveUsernamePasswordPort(url)) - return; - url.username = ''; - for (var i = 0; i < codePoints.length; i++) { - url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - password: accessorDescriptor(getPassword, function (password) { - var url = getInternalURLState(this); - var codePoints = arrayFrom(String(password)); - if (cannotHaveUsernamePasswordPort(url)) - return; - url.password = ''; - for (var i = 0; i < codePoints.length; i++) { - url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet); - } - }), - host: accessorDescriptor(getHost, function (host) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) - return; - parseURL(url, String(host), HOST); - }), - hostname: accessorDescriptor(getHostname, function (hostname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) - return; - parseURL(url, String(hostname), HOSTNAME); - }), - port: accessorDescriptor(getPort, function (port) { - var url = getInternalURLState(this); - if (cannotHaveUsernamePasswordPort(url)) - return; - port = String(port); - if (port == '') - url.port = null; - else - parseURL(url, port, PORT); - }), - pathname: accessorDescriptor(getPathname, function (pathname) { - var url = getInternalURLState(this); - if (url.cannotBeABaseURL) - return; - url.path = []; - parseURL(url, pathname + '', PATH_START); - }), - search: accessorDescriptor(getSearch, function (search) { - var url = getInternalURLState(this); - search = String(search); - if (search == '') { - url.query = null; - } else { - if ('?' == search.charAt(0)) - search = search.slice(1); - url.query = ''; - parseURL(url, search, QUERY); - } - getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query); - }), - searchParams: accessorDescriptor(getSearchParams), - hash: accessorDescriptor(getHash, function (hash) { - var url = getInternalURLState(this); - hash = String(hash); - if (hash == '') { - url.fragment = null; - return; - } - if ('#' == hash.charAt(0)) - hash = hash.slice(1); - url.fragment = ''; - parseURL(url, hash, FRAGMENT); - }) - }); -} -redefine(URLPrototype, 'toJSON', function toJSON() { - return serializeURL.call(this); -}, { enumerable: true }); -redefine(URLPrototype, 'toString', function toString() { - return serializeURL.call(this); -}, { enumerable: true }); -if (NativeURL) { - var nativeCreateObjectURL = NativeURL.createObjectURL; - var nativeRevokeObjectURL = NativeURL.revokeObjectURL; - if (nativeCreateObjectURL) - redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) { - return nativeCreateObjectURL.apply(NativeURL, arguments); - }); - if (nativeRevokeObjectURL) - redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) { - return nativeRevokeObjectURL.apply(NativeURL, arguments); - }); -} -setToStringTag(URLConstructor, 'URL'); -$({ - global: true, - forced: !USE_NATIVE_URL, - sham: !DESCRIPTORS -}, { URL: URLConstructor }); - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -var wellKnownSymbol = __w_pdfjs_require__(53); -var IS_PURE = __w_pdfjs_require__(32); -var ITERATOR = wellKnownSymbol('iterator'); -module.exports = !fails(function () { - var url = new URL('b?a=1&b=2&c=3', 'http://a'); - var searchParams = url.searchParams; - var result = ''; - url.pathname = 'c%20d'; - searchParams.forEach(function (value, key) { - searchParams['delete']('b'); - result += key + value; - }); - return IS_PURE && !url.toJSON || !searchParams.sort || url.href !== 'http://a/c%20d?a=1&c=3' || searchParams.get('c') !== '3' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR] || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' || new URL('http://тест').host !== 'xn--e1aybc' || new URL('http://a#б').hash !== '#%D0%B1' || result !== 'a1c3' || new URL('http://x', undefined).host !== 'x'; -}); - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var maxInt = 2147483647; -var base = 36; -var tMin = 1; -var tMax = 26; -var skew = 38; -var damp = 700; -var initialBias = 72; -var initialN = 128; -var delimiter = '-'; -var regexNonASCII = /[^\0-\u007E]/; -var regexSeparators = /[.\u3002\uFF0E\uFF61]/g; -var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process'; -var baseMinusTMin = base - tMin; -var floor = Math.floor; -var stringFromCharCode = String.fromCharCode; -var ucs2decode = function (string) { - var output = []; - var counter = 0; - var length = string.length; - while (counter < length) { - var value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - var extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; -}; -var digitToBasic = function (digit) { - return digit + 22 + 75 * (digit < 26); -}; -var adapt = function (delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); -}; -var encode = function (input) { - var output = []; - input = ucs2decode(input); - var inputLength = input.length; - var n = initialN; - var delta = 0; - var bias = initialBias; - var i, currentValue; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - var basicLength = output.length; - var handledCPCount = basicLength; - if (basicLength) { - output.push(delimiter); - } - while (handledCPCount < inputLength) { - var m = maxInt; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - var handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - throw RangeError(OVERFLOW_ERROR); - } - delta += (m - n) * handledCPCountPlusOne; - n = m; - for (i = 0; i < input.length; i++) { - currentValue = input[i]; - if (currentValue < n && ++delta > maxInt) { - throw RangeError(OVERFLOW_ERROR); - } - if (currentValue == n) { - var q = delta; - for (var k = base;; k += base) { - var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias; - if (q < t) - break; - var qMinusT = q - t; - var baseMinusT = base - t; - output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT))); - q = floor(qMinusT / baseMinusT); - } - output.push(stringFromCharCode(digitToBasic(q))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - ++delta; - ++n; - } - return output.join(''); -}; -module.exports = function (input) { - var encoded = []; - var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.'); - var i, label; - for (i = 0; i < labels.length; i++) { - label = labels[i]; - encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label); - } - return encoded.join('.'); -}; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -__w_pdfjs_require__(109); -var $ = __w_pdfjs_require__(5); -var getBuiltIn = __w_pdfjs_require__(37); -var USE_NATIVE_URL = __w_pdfjs_require__(130); -var redefine = __w_pdfjs_require__(24); -var redefineAll = __w_pdfjs_require__(112); -var setToStringTag = __w_pdfjs_require__(81); -var createIteratorConstructor = __w_pdfjs_require__(76); -var InternalStateModule = __w_pdfjs_require__(28); -var anInstance = __w_pdfjs_require__(114); -var hasOwn = __w_pdfjs_require__(18); -var bind = __w_pdfjs_require__(58); -var classof = __w_pdfjs_require__(91); -var anObject = __w_pdfjs_require__(23); -var isObject = __w_pdfjs_require__(17); -var create = __w_pdfjs_require__(67); -var createPropertyDescriptor = __w_pdfjs_require__(11); -var getIterator = __w_pdfjs_require__(133); -var getIteratorMethod = __w_pdfjs_require__(90); -var wellKnownSymbol = __w_pdfjs_require__(53); -var $fetch = getBuiltIn('fetch'); -var Headers = getBuiltIn('Headers'); -var ITERATOR = wellKnownSymbol('iterator'); -var URL_SEARCH_PARAMS = 'URLSearchParams'; -var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator'; -var setInternalState = InternalStateModule.set; -var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS); -var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR); -var plus = /\+/g; -var sequences = Array(4); -var percentSequence = function (bytes) { - return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi')); -}; -var percentDecode = function (sequence) { - try { - return decodeURIComponent(sequence); - } catch (error) { - return sequence; - } -}; -var deserialize = function (it) { - var result = it.replace(plus, ' '); - var bytes = 4; - try { - return decodeURIComponent(result); - } catch (error) { - while (bytes) { - result = result.replace(percentSequence(bytes--), percentDecode); - } - return result; - } -}; -var find = /[!'()~]|%20/g; -var replace = { - '!': '%21', - "'": '%27', - '(': '%28', - ')': '%29', - '~': '%7E', - '%20': '+' -}; -var replacer = function (match) { - return replace[match]; -}; -var serialize = function (it) { - return encodeURIComponent(it).replace(find, replacer); -}; -var parseSearchParams = function (result, query) { - if (query) { - var attributes = query.split('&'); - var index = 0; - var attribute, entry; - while (index < attributes.length) { - attribute = attributes[index++]; - if (attribute.length) { - entry = attribute.split('='); - result.push({ - key: deserialize(entry.shift()), - value: deserialize(entry.join('=')) - }); - } - } - } -}; -var updateSearchParams = function (query) { - this.entries.length = 0; - parseSearchParams(this.entries, query); -}; -var validateArgumentsLength = function (passed, required) { - if (passed < required) - throw TypeError('Not enough arguments'); -}; -var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) { - setInternalState(this, { - type: URL_SEARCH_PARAMS_ITERATOR, - iterator: getIterator(getInternalParamsState(params).entries), - kind: kind - }); -}, 'Iterator', function next() { - var state = getInternalIteratorState(this); - var kind = state.kind; - var step = state.iterator.next(); - var entry = step.value; - if (!step.done) { - step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [ - entry.key, - entry.value - ]; - } - return step; -}); -var URLSearchParamsConstructor = function URLSearchParams() { - anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS); - var init = arguments.length > 0 ? arguments[0] : undefined; - var that = this; - var entries = []; - var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key; - setInternalState(that, { - type: URL_SEARCH_PARAMS, - entries: entries, - updateURL: function () { - }, - updateSearchParams: updateSearchParams - }); - if (init !== undefined) { - if (isObject(init)) { - iteratorMethod = getIteratorMethod(init); - if (typeof iteratorMethod === 'function') { - iterator = iteratorMethod.call(init); - next = iterator.next; - while (!(step = next.call(iterator)).done) { - entryIterator = getIterator(anObject(step.value)); - entryNext = entryIterator.next; - if ((first = entryNext.call(entryIterator)).done || (second = entryNext.call(entryIterator)).done || !entryNext.call(entryIterator).done) - throw TypeError('Expected sequence with length 2'); - entries.push({ - key: first.value + '', - value: second.value + '' - }); - } - } else - for (key in init) - if (hasOwn(init, key)) - entries.push({ - key: key, - value: init[key] + '' - }); - } else { - parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + ''); - } - } -}; -var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype; -redefineAll(URLSearchParamsPrototype, { - append: function append(name, value) { - validateArgumentsLength(arguments.length, 2); - var state = getInternalParamsState(this); - state.entries.push({ - key: name + '', - value: value + '' - }); - state.updateURL(); - }, - 'delete': function (name) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index].key === key) - entries.splice(index, 1); - else - index++; - } - state.updateURL(); - }, - get: function get(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) - return entries[index].value; - } - return null; - }, - getAll: function getAll(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var result = []; - var index = 0; - for (; index < entries.length; index++) { - if (entries[index].key === key) - result.push(entries[index].value); - } - return result; - }, - has: function has(name) { - validateArgumentsLength(arguments.length, 1); - var entries = getInternalParamsState(this).entries; - var key = name + ''; - var index = 0; - while (index < entries.length) { - if (entries[index++].key === key) - return true; - } - return false; - }, - set: function set(name, value) { - validateArgumentsLength(arguments.length, 1); - var state = getInternalParamsState(this); - var entries = state.entries; - var found = false; - var key = name + ''; - var val = value + ''; - var index = 0; - var entry; - for (; index < entries.length; index++) { - entry = entries[index]; - if (entry.key === key) { - if (found) - entries.splice(index--, 1); - else { - found = true; - entry.value = val; - } - } - } - if (!found) - entries.push({ - key: key, - value: val - }); - state.updateURL(); - }, - sort: function sort() { - var state = getInternalParamsState(this); - var entries = state.entries; - var slice = entries.slice(); - var entry, entriesIndex, sliceIndex; - entries.length = 0; - for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) { - entry = slice[sliceIndex]; - for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) { - if (entries[entriesIndex].key > entry.key) { - entries.splice(entriesIndex, 0, entry); - break; - } - } - if (entriesIndex === sliceIndex) - entries.push(entry); - } - state.updateURL(); - }, - forEach: function forEach(callback) { - var entries = getInternalParamsState(this).entries; - var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3); - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - boundFunction(entry.value, entry.key, this); - } - }, - keys: function keys() { - return new URLSearchParamsIterator(this, 'keys'); - }, - values: function values() { - return new URLSearchParamsIterator(this, 'values'); - }, - entries: function entries() { - return new URLSearchParamsIterator(this, 'entries'); - } -}, { enumerable: true }); -redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries); -redefine(URLSearchParamsPrototype, 'toString', function toString() { - var entries = getInternalParamsState(this).entries; - var result = []; - var index = 0; - var entry; - while (index < entries.length) { - entry = entries[index++]; - result.push(serialize(entry.key) + '=' + serialize(entry.value)); - } - return result.join('&'); -}, { enumerable: true }); -setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS); -$({ - global: true, - forced: !USE_NATIVE_URL -}, { URLSearchParams: URLSearchParamsConstructor }); -if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') { - $({ - global: true, - enumerable: true, - forced: true - }, { - fetch: function fetch(input) { - var args = [input]; - var init, body, headers; - if (arguments.length > 1) { - init = arguments[1]; - if (isObject(init)) { - body = init.body; - if (classof(body) === URL_SEARCH_PARAMS) { - headers = init.headers ? new Headers(init.headers) : new Headers(); - if (!headers.has('content-type')) { - headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8'); - } - init = create(init, { - body: createPropertyDescriptor(0, String(body)), - headers: createPropertyDescriptor(0, headers) - }); - } - } - args.push(init); - } - return $fetch.apply(this, args); - } - }); -} -module.exports = { - URLSearchParams: URLSearchParamsConstructor, - getState: getInternalParamsState -}; - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var anObject = __w_pdfjs_require__(23); -var getIteratorMethod = __w_pdfjs_require__(90); -module.exports = function (it) { - var iteratorMethod = getIteratorMethod(it); - if (typeof iteratorMethod != 'function') { - throw TypeError(String(it) + ' is not iterable'); - } - return anObject(iteratorMethod.call(it)); -}; - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -$({ - target: 'URL', - proto: true, - enumerable: true -}, { - toJSON: function toJSON() { - return URL.prototype.toString.call(this); - } -}); - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -(function (global, factory) { - true ? factory(exports) : undefined; -}(this, function (exports) { - 'use strict'; - var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol : function (description) { - return "Symbol(" + description + ")"; - }; - function noop() { - } - var NumberIsNaN = Number.isNaN || function (x) { - return x !== x; - }; - var rethrowAssertionErrorRejection = noop; - function typeIsObject(x) { - return typeof x === 'object' && x !== null || typeof x === 'function'; - } - function createArrayFromList(elements) { - return elements.slice(); - } - function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - } - function IsFiniteNonNegativeNumber(v) { - if (IsNonNegativeNumber(v) === false) { - return false; - } - if (v === Infinity) { - return false; - } - return true; - } - function IsNonNegativeNumber(v) { - if (typeof v !== 'number') { - return false; - } - if (NumberIsNaN(v)) { - return false; - } - if (v < 0) { - return false; - } - return true; - } - function Call(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - return Function.prototype.apply.call(F, V, args); - } - function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) { - var method = underlyingObject[methodName]; - if (method !== undefined) { - if (typeof method !== 'function') { - throw new TypeError(method + " is not a method"); - } - switch (algoArgCount) { - case 0: { - return function () { - return PromiseCall(method, underlyingObject, extraArgs); - }; - } - case 1: { - return function (arg) { - var fullArgs = [arg].concat(extraArgs); - return PromiseCall(method, underlyingObject, fullArgs); - }; - } - } - } - return function () { - return promiseResolvedWith(undefined); - }; - } - function InvokeOrNoop(O, P, args) { - var method = O[P]; - if (method === undefined) { - return undefined; - } - return Call(method, O, args); - } - function PromiseCall(F, V, args) { - try { - return promiseResolvedWith(Call(F, V, args)); - } catch (value) { - return promiseRejectedWith(value); - } - } - function TransferArrayBuffer(O) { - return O; - } - function IsDetachedBuffer(O) { - return false; - } - function ValidateAndNormalizeHighWaterMark(highWaterMark) { - highWaterMark = Number(highWaterMark); - if (NumberIsNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); - } - return highWaterMark; - } - function MakeSizeAlgorithmFromSizeFunction(size) { - if (size === undefined) { - return function () { - return 1; - }; - } - if (typeof size !== 'function') { - throw new TypeError('size property of a queuing strategy must be a function'); - } - return function (chunk) { - return size(chunk); - }; - } - var originalPromise = Promise; - var originalPromiseThen = Promise.prototype.then; - var originalPromiseResolve = Promise.resolve.bind(originalPromise); - var originalPromiseReject = Promise.reject.bind(originalPromise); - function newPromise(executor) { - return new originalPromise(executor); - } - function promiseResolvedWith(value) { - return originalPromiseResolve(value); - } - function promiseRejectedWith(reason) { - return originalPromiseReject(reason); - } - function PerformPromiseThen(promise, onFulfilled, onRejected) { - return originalPromiseThen.call(promise, onFulfilled, onRejected); - } - function uponPromise(promise, onFulfilled, onRejected) { - PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection); - } - function uponFulfillment(promise, onFulfilled) { - uponPromise(promise, onFulfilled); - } - function uponRejection(promise, onRejected) { - uponPromise(promise, undefined, onRejected); - } - function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) { - return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler); - } - function setPromiseIsHandledToTrue(promise) { - PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection); - } - var QUEUE_MAX_ARRAY_SIZE = 16384; - var SimpleQueue = function () { - function SimpleQueue() { - this._cursor = 0; - this._size = 0; - this._front = { - _elements: [], - _next: undefined - }; - this._back = this._front; - this._cursor = 0; - this._size = 0; - } - Object.defineProperty(SimpleQueue.prototype, "length", { - get: function () { - return this._size; - }, - enumerable: true, - configurable: true - }); - SimpleQueue.prototype.push = function (element) { - var oldBack = this._back; - var newBack = oldBack; - if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) { - newBack = { - _elements: [], - _next: undefined - }; - } - oldBack._elements.push(element); - if (newBack !== oldBack) { - this._back = newBack; - oldBack._next = newBack; - } - ++this._size; - }; - SimpleQueue.prototype.shift = function () { - var oldFront = this._front; - var newFront = oldFront; - var oldCursor = this._cursor; - var newCursor = oldCursor + 1; - var elements = oldFront._elements; - var element = elements[oldCursor]; - if (newCursor === QUEUE_MAX_ARRAY_SIZE) { - newFront = oldFront._next; - newCursor = 0; - } - --this._size; - this._cursor = newCursor; - if (oldFront !== newFront) { - this._front = newFront; - } - elements[oldCursor] = undefined; - return element; - }; - SimpleQueue.prototype.forEach = function (callback) { - var i = this._cursor; - var node = this._front; - var elements = node._elements; - while (i !== elements.length || node._next !== undefined) { - if (i === elements.length) { - node = node._next; - elements = node._elements; - i = 0; - if (elements.length === 0) { - break; - } - } - callback(elements[i]); - ++i; - } - }; - SimpleQueue.prototype.peek = function () { - var front = this._front; - var cursor = this._cursor; - return front._elements[cursor]; - }; - return SimpleQueue; - }(); - function ReadableStreamCreateReadResult(value, done, forAuthorCode) { - var prototype = null; - if (forAuthorCode === true) { - prototype = Object.prototype; - } - var obj = Object.create(prototype); - obj.value = value; - obj.done = done; - return obj; - } - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._forAuthorCode = true; - reader._ownerReadableStream = stream; - stream._reader = reader; - if (stream._state === 'readable') { - defaultReaderClosedPromiseInitialize(reader); - } else if (stream._state === 'closed') { - defaultReaderClosedPromiseInitializeAsResolved(reader); - } else { - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); - } - } - function ReadableStreamReaderGenericCancel(reader, reason) { - var stream = reader._ownerReadableStream; - return ReadableStreamCancel(stream, reason); - } - function ReadableStreamReaderGenericRelease(reader) { - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = newPromise(function (resolve, reject) { - reader._closedPromise_resolve = resolve; - reader._closedPromise_reject = reject; - }); - } - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - defaultReaderClosedPromiseInitialize(reader); - defaultReaderClosedPromiseReject(reader, reason); - } - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - defaultReaderClosedPromiseInitialize(reader); - defaultReaderClosedPromiseResolve(reader); - } - function defaultReaderClosedPromiseReject(reader, reason) { - setPromiseIsHandledToTrue(reader._closedPromise); - reader._closedPromise_reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - defaultReaderClosedPromiseInitializeAsRejected(reader, reason); - } - function defaultReaderClosedPromiseResolve(reader) { - reader._closedPromise_resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - var CancelSteps = SymbolPolyfill('[[CancelSteps]]'); - var PullSteps = SymbolPolyfill('[[PullSteps]]'); - function AcquireReadableStreamDefaultReader(stream, forAuthorCode) { - if (forAuthorCode === void 0) { - forAuthorCode = false; - } - var reader = new ReadableStreamDefaultReader(stream); - reader._forAuthorCode = forAuthorCode; - return reader; - } - function ReadableStreamAddReadRequest(stream) { - var promise = newPromise(function (resolve, reject) { - var readRequest = { - _resolve: resolve, - _reject: reject - }; - stream._reader._readRequests.push(readRequest); - }); - return promise; - } - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - var reader = stream._reader; - var readRequest = reader._readRequests.shift(); - readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode)); - } - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; - } - function ReadableStreamHasDefaultReader(stream) { - var reader = stream._reader; - if (reader === undefined) { - return false; - } - if (!IsReadableStreamDefaultReader(reader)) { - return false; - } - return true; - } - var ReadableStreamDefaultReader = function () { - function ReadableStreamDefaultReader(stream) { - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); - } - if (IsReadableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - ReadableStreamReaderGenericInitialize(this, stream); - this._readRequests = new SimpleQueue(); - } - Object.defineProperty(ReadableStreamDefaultReader.prototype, "closed", { - get: function () { - if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('closed')); - } - return this._closedPromise; - }, - enumerable: true, - configurable: true - }); - ReadableStreamDefaultReader.prototype.cancel = function (reason) { - if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('cancel')); - } - if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('cancel')); - } - return ReadableStreamReaderGenericCancel(this, reason); - }; - ReadableStreamDefaultReader.prototype.read = function () { - if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('read')); - } - if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('read from')); - } - return ReadableStreamDefaultReaderRead(this); - }; - ReadableStreamDefaultReader.prototype.releaseLock = function () { - if (!IsReadableStreamDefaultReader(this)) { - throw defaultReaderBrandCheckException('releaseLock'); - } - if (this._ownerReadableStream === undefined) { - return; - } - if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - ReadableStreamReaderGenericRelease(this); - }; - return ReadableStreamDefaultReader; - }(); - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { - return false; - } - return true; - } - function ReadableStreamDefaultReaderRead(reader) { - var stream = reader._ownerReadableStream; - stream._disturbed = true; - if (stream._state === 'closed') { - return promiseResolvedWith(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode)); - } - if (stream._state === 'errored') { - return promiseRejectedWith(stream._storedError); - } - return stream._readableStreamController[PullSteps](); - } - function defaultReaderBrandCheckException(name) { - return new TypeError("ReadableStreamDefaultReader.prototype." + name + " can only be used on a ReadableStreamDefaultReader"); - } - var _a; - var AsyncIteratorPrototype; - if (typeof SymbolPolyfill.asyncIterator === 'symbol') { - AsyncIteratorPrototype = (_a = {}, _a[SymbolPolyfill.asyncIterator] = function () { - return this; - }, _a); - Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false }); - } - var ReadableStreamAsyncIteratorPrototype = { - next: function () { - if (IsReadableStreamAsyncIterator(this) === false) { - return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next')); - } - var reader = this._asyncIteratorReader; - if (reader._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('iterate')); - } - return transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) { - var done = result.done; - if (done) { - ReadableStreamReaderGenericRelease(reader); - } - var value = result.value; - return ReadableStreamCreateReadResult(value, done, true); - }); - }, - return: function (value) { - if (IsReadableStreamAsyncIterator(this) === false) { - return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next')); - } - var reader = this._asyncIteratorReader; - if (reader._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('finish iterating')); - } - if (reader._readRequests.length > 0) { - return promiseRejectedWith(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled')); - } - if (this._preventCancel === false) { - var result = ReadableStreamReaderGenericCancel(reader, value); - ReadableStreamReaderGenericRelease(reader); - return transformPromiseWith(result, function () { - return ReadableStreamCreateReadResult(value, true, true); - }); - } - ReadableStreamReaderGenericRelease(reader); - return promiseResolvedWith(ReadableStreamCreateReadResult(value, true, true)); - } - }; - if (AsyncIteratorPrototype !== undefined) { - Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype); - } - Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false }); - Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false }); - function AcquireReadableStreamAsyncIterator(stream, preventCancel) { - if (preventCancel === void 0) { - preventCancel = false; - } - var reader = AcquireReadableStreamDefaultReader(stream); - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype); - iterator._asyncIteratorReader = reader; - iterator._preventCancel = Boolean(preventCancel); - return iterator; - } - function IsReadableStreamAsyncIterator(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) { - return false; - } - return true; - } - function streamAsyncIteratorBrandCheckException(name) { - return new TypeError("ReadableStreamAsyncIterator." + name + " can only be used on a ReadableSteamAsyncIterator"); - } - function DequeueValue(container) { - var pair = container._queue.shift(); - container._queueTotalSize -= pair.size; - if (container._queueTotalSize < 0) { - container._queueTotalSize = 0; - } - return pair.value; - } - function EnqueueValueWithSize(container, value, size) { - size = Number(size); - if (!IsFiniteNonNegativeNumber(size)) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); - } - container._queue.push({ - value: value, - size: size - }); - container._queueTotalSize += size; - } - function PeekQueueValue(container) { - var pair = container._queue.peek(); - return pair.value; - } - function ResetQueue(container) { - container._queue = new SimpleQueue(); - container._queueTotalSize = 0; - } - var AbortSteps = SymbolPolyfill('[[AbortSteps]]'); - var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]'); - var WritableStream = function () { - function WritableStream(underlyingSink, strategy) { - if (underlyingSink === void 0) { - underlyingSink = {}; - } - if (strategy === void 0) { - strategy = {}; - } - InitializeWritableStream(this); - var size = strategy.size; - var highWaterMark = strategy.highWaterMark; - var type = underlyingSink.type; - if (type !== undefined) { - throw new RangeError('Invalid type is specified'); - } - var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size); - if (highWaterMark === undefined) { - highWaterMark = 1; - } - highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark); - SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm); - } - Object.defineProperty(WritableStream.prototype, "locked", { - get: function () { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - return IsWritableStreamLocked(this); - }, - enumerable: true, - configurable: true - }); - WritableStream.prototype.abort = function (reason) { - if (IsWritableStream(this) === false) { - return promiseRejectedWith(streamBrandCheckException('abort')); - } - if (IsWritableStreamLocked(this) === true) { - return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer')); - } - return WritableStreamAbort(this, reason); - }; - WritableStream.prototype.close = function () { - if (IsWritableStream(this) === false) { - return promiseRejectedWith(streamBrandCheckException('close')); - } - if (IsWritableStreamLocked(this) === true) { - return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer')); - } - if (WritableStreamCloseQueuedOrInFlight(this) === true) { - return promiseRejectedWith(new TypeError('Cannot close an already-closing stream')); - } - return WritableStreamClose(this); - }; - WritableStream.prototype.getWriter = function () { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('getWriter'); - } - return AcquireWritableStreamDefaultWriter(this); - }; - return WritableStream; - }(); - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); - } - function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) { - if (highWaterMark === void 0) { - highWaterMark = 1; - } - if (sizeAlgorithm === void 0) { - sizeAlgorithm = function () { - return 1; - }; - } - var stream = Object.create(WritableStream.prototype); - InitializeWritableStream(stream); - var controller = Object.create(WritableStreamDefaultController.prototype); - SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); - return stream; - } - function InitializeWritableStream(stream) { - stream._state = 'writable'; - stream._storedError = undefined; - stream._writer = undefined; - stream._writableStreamController = undefined; - stream._writeRequests = new SimpleQueue(); - stream._inFlightWriteRequest = undefined; - stream._closeRequest = undefined; - stream._inFlightCloseRequest = undefined; - stream._pendingAbortRequest = undefined; - stream._backpressure = false; - } - function IsWritableStream(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { - return false; - } - return true; - } - function IsWritableStreamLocked(stream) { - if (stream._writer === undefined) { - return false; - } - return true; - } - function WritableStreamAbort(stream, reason) { - var state = stream._state; - if (state === 'closed' || state === 'errored') { - return promiseResolvedWith(undefined); - } - if (stream._pendingAbortRequest !== undefined) { - return stream._pendingAbortRequest._promise; - } - var wasAlreadyErroring = false; - if (state === 'erroring') { - wasAlreadyErroring = true; - reason = undefined; - } - var promise = newPromise(function (resolve, reject) { - stream._pendingAbortRequest = { - _promise: undefined, - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring - }; - }); - stream._pendingAbortRequest._promise = promise; - if (wasAlreadyErroring === false) { - WritableStreamStartErroring(stream, reason); - } - return promise; - } - function WritableStreamClose(stream) { - var state = stream._state; - if (state === 'closed' || state === 'errored') { - return promiseRejectedWith(new TypeError("The stream (in " + state + " state) is not in the writable state and cannot be closed")); - } - var promise = newPromise(function (resolve, reject) { - var closeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._closeRequest = closeRequest; - }); - var writer = stream._writer; - if (writer !== undefined && stream._backpressure === true && state === 'writable') { - defaultWriterReadyPromiseResolve(writer); - } - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; - } - function WritableStreamAddWriteRequest(stream) { - var promise = newPromise(function (resolve, reject) { - var writeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._writeRequests.push(writeRequest); - }); - return promise; - } - function WritableStreamDealWithRejection(stream, error) { - var state = stream._state; - if (state === 'writable') { - WritableStreamStartErroring(stream, error); - return; - } - WritableStreamFinishErroring(stream); - } - function WritableStreamStartErroring(stream, reason) { - var controller = stream._writableStreamController; - stream._state = 'erroring'; - stream._storedError = reason; - var writer = stream._writer; - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); - } - if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { - WritableStreamFinishErroring(stream); - } - } - function WritableStreamFinishErroring(stream) { - stream._state = 'errored'; - stream._writableStreamController[ErrorSteps](); - var storedError = stream._storedError; - stream._writeRequests.forEach(function (writeRequest) { - writeRequest._reject(storedError); - }); - stream._writeRequests = new SimpleQueue(); - if (stream._pendingAbortRequest === undefined) { - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - var abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - if (abortRequest._wasAlreadyErroring === true) { - abortRequest._reject(storedError); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - var promise = stream._writableStreamController[AbortSteps](abortRequest._reason); - uponPromise(promise, function () { - abortRequest._resolve(); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, function (reason) { - abortRequest._reject(reason); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }); - } - function WritableStreamFinishInFlightWrite(stream) { - stream._inFlightWriteRequest._resolve(undefined); - stream._inFlightWriteRequest = undefined; - } - function WritableStreamFinishInFlightWriteWithError(stream, error) { - stream._inFlightWriteRequest._reject(error); - stream._inFlightWriteRequest = undefined; - WritableStreamDealWithRejection(stream, error); - } - function WritableStreamFinishInFlightClose(stream) { - stream._inFlightCloseRequest._resolve(undefined); - stream._inFlightCloseRequest = undefined; - var state = stream._state; - if (state === 'erroring') { - stream._storedError = undefined; - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - stream._pendingAbortRequest = undefined; - } - } - stream._state = 'closed'; - var writer = stream._writer; - if (writer !== undefined) { - defaultWriterClosedPromiseResolve(writer); - } - } - function WritableStreamFinishInFlightCloseWithError(stream, error) { - stream._inFlightCloseRequest._reject(error); - stream._inFlightCloseRequest = undefined; - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._reject(error); - stream._pendingAbortRequest = undefined; - } - WritableStreamDealWithRejection(stream, error); - } - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - return true; - } - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - return true; - } - function WritableStreamMarkCloseRequestInFlight(stream) { - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; - } - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - stream._inFlightWriteRequest = stream._writeRequests.shift(); - } - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - if (stream._closeRequest !== undefined) { - stream._closeRequest._reject(stream._storedError); - stream._closeRequest = undefined; - } - var writer = stream._writer; - if (writer !== undefined) { - defaultWriterClosedPromiseReject(writer, stream._storedError); - } - } - function WritableStreamUpdateBackpressure(stream, backpressure) { - var writer = stream._writer; - if (writer !== undefined && backpressure !== stream._backpressure) { - if (backpressure === true) { - defaultWriterReadyPromiseReset(writer); - } else { - defaultWriterReadyPromiseResolve(writer); - } - } - stream._backpressure = backpressure; - } - var WritableStreamDefaultWriter = function () { - function WritableStreamDefaultWriter(stream) { - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); - } - if (IsWritableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); - } - this._ownerWritableStream = stream; - stream._writer = this; - var state = stream._state; - if (state === 'writable') { - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { - defaultWriterReadyPromiseInitialize(this); - } else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'closed') { - defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); - } else { - var storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - } - } - Object.defineProperty(WritableStreamDefaultWriter.prototype, "closed", { - get: function () { - if (IsWritableStreamDefaultWriter(this) === false) { - return promiseRejectedWith(defaultWriterBrandCheckException('closed')); - } - return this._closedPromise; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WritableStreamDefaultWriter.prototype, "desiredSize", { - get: function () { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('desiredSize'); - } - if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); - } - return WritableStreamDefaultWriterGetDesiredSize(this); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WritableStreamDefaultWriter.prototype, "ready", { - get: function () { - if (IsWritableStreamDefaultWriter(this) === false) { - return promiseRejectedWith(defaultWriterBrandCheckException('ready')); - } - return this._readyPromise; - }, - enumerable: true, - configurable: true - }); - WritableStreamDefaultWriter.prototype.abort = function (reason) { - if (IsWritableStreamDefaultWriter(this) === false) { - return promiseRejectedWith(defaultWriterBrandCheckException('abort')); - } - if (this._ownerWritableStream === undefined) { - return promiseRejectedWith(defaultWriterLockException('abort')); - } - return WritableStreamDefaultWriterAbort(this, reason); - }; - WritableStreamDefaultWriter.prototype.close = function () { - if (IsWritableStreamDefaultWriter(this) === false) { - return promiseRejectedWith(defaultWriterBrandCheckException('close')); - } - var stream = this._ownerWritableStream; - if (stream === undefined) { - return promiseRejectedWith(defaultWriterLockException('close')); - } - if (WritableStreamCloseQueuedOrInFlight(stream) === true) { - return promiseRejectedWith(new TypeError('Cannot close an already-closing stream')); - } - return WritableStreamDefaultWriterClose(this); - }; - WritableStreamDefaultWriter.prototype.releaseLock = function () { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('releaseLock'); - } - var stream = this._ownerWritableStream; - if (stream === undefined) { - return; - } - WritableStreamDefaultWriterRelease(this); - }; - WritableStreamDefaultWriter.prototype.write = function (chunk) { - if (IsWritableStreamDefaultWriter(this) === false) { - return promiseRejectedWith(defaultWriterBrandCheckException('write')); - } - if (this._ownerWritableStream === undefined) { - return promiseRejectedWith(defaultWriterLockException('write to')); - } - return WritableStreamDefaultWriterWrite(this, chunk); - }; - return WritableStreamDefaultWriter; - }(); - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { - return false; - } - return true; - } - function WritableStreamDefaultWriterAbort(writer, reason) { - var stream = writer._ownerWritableStream; - return WritableStreamAbort(stream, reason); - } - function WritableStreamDefaultWriterClose(writer) { - var stream = writer._ownerWritableStream; - return WritableStreamClose(stream); - } - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return promiseResolvedWith(undefined); - } - if (state === 'errored') { - return promiseRejectedWith(stream._storedError); - } - return WritableStreamDefaultWriterClose(writer); - } - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { - defaultWriterClosedPromiseReject(writer, error); - } else { - defaultWriterClosedPromiseResetToRejected(writer, error); - } - } - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { - defaultWriterReadyPromiseReject(writer, error); - } else { - defaultWriterReadyPromiseResetToRejected(writer, error); - } - } - function WritableStreamDefaultWriterGetDesiredSize(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - if (state === 'errored' || state === 'erroring') { - return null; - } - if (state === 'closed') { - return 0; - } - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); - } - function WritableStreamDefaultWriterRelease(writer) { - var stream = writer._ownerWritableStream; - var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; - } - function WritableStreamDefaultWriterWrite(writer, chunk) { - var stream = writer._ownerWritableStream; - var controller = stream._writableStreamController; - var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - if (stream !== writer._ownerWritableStream) { - return promiseRejectedWith(defaultWriterLockException('write to')); - } - var state = stream._state; - if (state === 'errored') { - return promiseRejectedWith(stream._storedError); - } - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to')); - } - if (state === 'erroring') { - return promiseRejectedWith(stream._storedError); - } - var promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; - } - var WritableStreamDefaultController = function () { - function WritableStreamDefaultController() { - throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly'); - } - WritableStreamDefaultController.prototype.error = function (e) { - if (IsWritableStreamDefaultController(this) === false) { - throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); - } - var state = this._controlledWritableStream._state; - if (state !== 'writable') { - return; - } - WritableStreamDefaultControllerError(this, e); - }; - WritableStreamDefaultController.prototype[AbortSteps] = function (reason) { - var result = this._abortAlgorithm(reason); - WritableStreamDefaultControllerClearAlgorithms(this); - return result; - }; - WritableStreamDefaultController.prototype[ErrorSteps] = function () { - ResetQueue(this); - }; - return WritableStreamDefaultController; - }(); - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) { - return false; - } - return true; - } - function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) { - controller._controlledWritableStream = stream; - stream._writableStreamController = controller; - controller._queue = undefined; - controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._started = false; - controller._strategySizeAlgorithm = sizeAlgorithm; - controller._strategyHWM = highWaterMark; - controller._writeAlgorithm = writeAlgorithm; - controller._closeAlgorithm = closeAlgorithm; - controller._abortAlgorithm = abortAlgorithm; - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - var startResult = startAlgorithm(); - var startPromise = promiseResolvedWith(startResult); - uponPromise(startPromise, function () { - controller._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (r) { - controller._started = true; - WritableStreamDealWithRejection(stream, r); - }); - } - function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) { - var controller = Object.create(WritableStreamDefaultController.prototype); - function startAlgorithm() { - return InvokeOrNoop(underlyingSink, 'start', [controller]); - } - var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]); - var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []); - var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []); - SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); - } - function WritableStreamDefaultControllerClearAlgorithms(controller) { - controller._writeAlgorithm = undefined; - controller._closeAlgorithm = undefined; - controller._abortAlgorithm = undefined; - controller._strategySizeAlgorithm = undefined; - } - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, 'close', 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - try { - return controller._strategySizeAlgorithm(chunk); - } catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - return 1; - } - } - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - var writeRecord = { chunk: chunk }; - try { - EnqueueValueWithSize(controller, writeRecord, chunkSize); - } catch (enqueueE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - return; - } - var stream = controller._controlledWritableStream; - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - var stream = controller._controlledWritableStream; - if (controller._started === false) { - return; - } - if (stream._inFlightWriteRequest !== undefined) { - return; - } - var state = stream._state; - if (state === 'erroring') { - WritableStreamFinishErroring(stream); - return; - } - if (controller._queue.length === 0) { - return; - } - var writeRecord = PeekQueueValue(controller); - if (writeRecord === 'close') { - WritableStreamDefaultControllerProcessClose(controller); - } else { - WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); - } - } - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { - WritableStreamDefaultControllerError(controller, error); - } - } - function WritableStreamDefaultControllerProcessClose(controller) { - var stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - var sinkClosePromise = controller._closeAlgorithm(); - WritableStreamDefaultControllerClearAlgorithms(controller); - uponPromise(sinkClosePromise, function () { - WritableStreamFinishInFlightClose(stream); - }, function (reason) { - WritableStreamFinishInFlightCloseWithError(stream, reason); - }); - } - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - var stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - var sinkWritePromise = controller._writeAlgorithm(chunk); - uponPromise(sinkWritePromise, function () { - WritableStreamFinishInFlightWrite(stream); - var state = stream._state; - DequeueValue(controller); - if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (reason) { - if (stream._state === 'writable') { - WritableStreamDefaultControllerClearAlgorithms(controller); - } - WritableStreamFinishInFlightWriteWithError(stream, reason); - }); - } - function WritableStreamDefaultControllerGetBackpressure(controller) { - var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - function WritableStreamDefaultControllerError(controller, error) { - var stream = controller._controlledWritableStream; - WritableStreamDefaultControllerClearAlgorithms(controller); - WritableStreamStartErroring(stream, error); - } - function streamBrandCheckException(name) { - return new TypeError("WritableStream.prototype." + name + " can only be used on a WritableStream"); - } - function defaultWriterBrandCheckException(name) { - return new TypeError("WritableStreamDefaultWriter.prototype." + name + " can only be used on a WritableStreamDefaultWriter"); - } - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = newPromise(function (resolve, reject) { - writer._closedPromise_resolve = resolve; - writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - defaultWriterClosedPromiseInitialize(writer); - defaultWriterClosedPromiseReject(writer, reason); - } - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - defaultWriterClosedPromiseInitialize(writer); - defaultWriterClosedPromiseResolve(writer); - } - function defaultWriterClosedPromiseReject(writer, reason) { - setPromiseIsHandledToTrue(writer._closedPromise); - writer._closedPromise_reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - defaultWriterClosedPromiseInitializeAsRejected(writer, reason); - } - function defaultWriterClosedPromiseResolve(writer) { - writer._closedPromise_resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = newPromise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - defaultWriterReadyPromiseInitialize(writer); - defaultWriterReadyPromiseReject(writer, reason); - } - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - defaultWriterReadyPromiseInitialize(writer); - defaultWriterReadyPromiseResolve(writer); - } - function defaultWriterReadyPromiseReject(writer, reason) { - setPromiseIsHandledToTrue(writer._readyPromise); - writer._readyPromise_reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - function defaultWriterReadyPromiseReset(writer) { - defaultWriterReadyPromiseInitialize(writer); - } - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - defaultWriterReadyPromiseInitializeAsRejected(writer, reason); - } - function defaultWriterReadyPromiseResolve(writer) { - writer._readyPromise_resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - function isAbortSignal(value) { - if (typeof value !== 'object' || value === null) { - return false; - } - try { - return typeof value.aborted === 'boolean'; - } catch (_a) { - return false; - } - } - var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined; - function isDOMExceptionConstructor(ctor) { - if (!(typeof ctor === 'function' || typeof ctor === 'object')) { - return false; - } - try { - new ctor(); - return true; - } catch (_a) { - return false; - } - } - function createDOMExceptionPolyfill() { - var ctor = function DOMException(message, name) { - this.message = message || ''; - this.name = name || 'Error'; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - }; - ctor.prototype = Object.create(Error.prototype); - Object.defineProperty(ctor.prototype, 'constructor', { - value: ctor, - writable: true, - configurable: true - }); - return ctor; - } - var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill(); - function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) { - var reader = AcquireReadableStreamDefaultReader(source); - var writer = AcquireWritableStreamDefaultWriter(dest); - source._disturbed = true; - var shuttingDown = false; - var currentWrite = promiseResolvedWith(undefined); - return newPromise(function (resolve, reject) { - var abortAlgorithm; - if (signal !== undefined) { - abortAlgorithm = function () { - var error = new DOMException$1('Aborted', 'AbortError'); - var actions = []; - if (preventAbort === false) { - actions.push(function () { - if (dest._state === 'writable') { - return WritableStreamAbort(dest, error); - } - return promiseResolvedWith(undefined); - }); - } - if (preventCancel === false) { - actions.push(function () { - if (source._state === 'readable') { - return ReadableStreamCancel(source, error); - } - return promiseResolvedWith(undefined); - }); - } - shutdownWithAction(function () { - return Promise.all(actions.map(function (action) { - return action(); - })); - }, true, error); - }; - if (signal.aborted === true) { - abortAlgorithm(); - return; - } - signal.addEventListener('abort', abortAlgorithm); - } - function pipeLoop() { - return newPromise(function (resolveLoop, rejectLoop) { - function next(done) { - if (done) { - resolveLoop(); - } else { - PerformPromiseThen(pipeStep(), next, rejectLoop); - } - } - next(false); - }); - } - function pipeStep() { - if (shuttingDown === true) { - return promiseResolvedWith(true); - } - return PerformPromiseThen(writer._readyPromise, function () { - return PerformPromiseThen(ReadableStreamDefaultReaderRead(reader), function (_a) { - var value = _a.value, done = _a.done; - if (done === true) { - return true; - } - currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, value), undefined, noop); - return false; - }); - }); - } - isOrBecomesErrored(source, reader._closedPromise, function (storedError) { - if (preventAbort === false) { - shutdownWithAction(function () { - return WritableStreamAbort(dest, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(source, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesClosed(source, reader._closedPromise, function () { - if (preventClose === false) { - shutdownWithAction(function () { - return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); - }); - } else { - shutdown(); - } - }); - if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { - var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it'); - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(source, destClosed_1); - }, true, destClosed_1); - } else { - shutdown(true, destClosed_1); - } - } - setPromiseIsHandledToTrue(pipeLoop()); - function waitForWritesToFinish() { - var oldCurrentWrite = currentWrite; - return PerformPromiseThen(currentWrite, function () { - return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; - }); - } - function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } else { - uponRejection(promise, action); - } - } - function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } else { - uponFulfillment(promise, action); - } - } - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown === true) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - uponFulfillment(waitForWritesToFinish(), doTheRest); - } else { - doTheRest(); - } - function doTheRest() { - uponPromise(action(), function () { - return finalize(originalIsError, originalError); - }, function (newError) { - return finalize(true, newError); - }); - } - } - function shutdown(isError, error) { - if (shuttingDown === true) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - uponFulfillment(waitForWritesToFinish(), function () { - return finalize(isError, error); - }); - } else { - finalize(isError, error); - } - } - function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - if (signal !== undefined) { - signal.removeEventListener('abort', abortAlgorithm); - } - if (isError) { - reject(error); - } else { - resolve(undefined); - } - } - }); - } - var ReadableStreamDefaultController = function () { - function ReadableStreamDefaultController() { - throw new TypeError(); - } - Object.defineProperty(ReadableStreamDefaultController.prototype, "desiredSize", { - get: function () { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - return ReadableStreamDefaultControllerGetDesiredSize(this); - }, - enumerable: true, - configurable: true - }); - ReadableStreamDefaultController.prototype.close = function () { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) { - throw new TypeError('The stream is not in a state that permits close'); - } - ReadableStreamDefaultControllerClose(this); - }; - ReadableStreamDefaultController.prototype.enqueue = function (chunk) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) { - throw new TypeError('The stream is not in a state that permits enqueue'); - } - return ReadableStreamDefaultControllerEnqueue(this, chunk); - }; - ReadableStreamDefaultController.prototype.error = function (e) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - ReadableStreamDefaultControllerError(this, e); - }; - ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) { - ResetQueue(this); - var result = this._cancelAlgorithm(reason); - ReadableStreamDefaultControllerClearAlgorithms(this); - return result; - }; - ReadableStreamDefaultController.prototype[PullSteps] = function () { - var stream = this._controlledReadableStream; - if (this._queue.length > 0) { - var chunk = DequeueValue(this); - if (this._closeRequested === true && this._queue.length === 0) { - ReadableStreamDefaultControllerClearAlgorithms(this); - ReadableStreamClose(stream); - } else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - return promiseResolvedWith(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode)); - } - var pendingPromise = ReadableStreamAddReadRequest(stream); - ReadableStreamDefaultControllerCallPullIfNeeded(this); - return pendingPromise; - }; - return ReadableStreamDefaultController; - }(); - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) { - return false; - } - return true; - } - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - if (shouldPull === false) { - return; - } - if (controller._pulling === true) { - controller._pullAgain = true; - return; - } - controller._pulling = true; - var pullPromise = controller._pullAlgorithm(); - uponPromise(pullPromise, function () { - controller._pulling = false; - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - }, function (e) { - ReadableStreamDefaultControllerError(controller, e); - }); - } - function ReadableStreamDefaultControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) { - return false; - } - if (controller._started === false) { - return false; - } - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - if (desiredSize > 0) { - return true; - } - return false; - } - function ReadableStreamDefaultControllerClearAlgorithms(controller) { - controller._pullAlgorithm = undefined; - controller._cancelAlgorithm = undefined; - controller._strategySizeAlgorithm = undefined; - } - function ReadableStreamDefaultControllerClose(controller) { - var stream = controller._controlledReadableStream; - controller._closeRequested = true; - if (controller._queue.length === 0) { - ReadableStreamDefaultControllerClearAlgorithms(controller); - ReadableStreamClose(stream); - } - } - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - ReadableStreamFulfillReadRequest(stream, chunk, false); - } else { - var chunkSize = void 0; - try { - chunkSize = controller._strategySizeAlgorithm(chunk); - } catch (chunkSizeE) { - ReadableStreamDefaultControllerError(controller, chunkSizeE); - throw chunkSizeE; - } - try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } catch (enqueueE) { - ReadableStreamDefaultControllerError(controller, enqueueE); - throw enqueueE; - } - } - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - function ReadableStreamDefaultControllerError(controller, e) { - var stream = controller._controlledReadableStream; - if (stream._state !== 'readable') { - return; - } - ResetQueue(controller); - ReadableStreamDefaultControllerClearAlgorithms(controller); - ReadableStreamError(stream, e); - } - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - if (state === 'errored') { - return null; - } - if (state === 'closed') { - return 0; - } - return controller._strategyHWM - controller._queueTotalSize; - } - function ReadableStreamDefaultControllerHasBackpressure(controller) { - if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) { - return false; - } - return true; - } - function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) { - var state = controller._controlledReadableStream._state; - if (controller._closeRequested === false && state === 'readable') { - return true; - } - return false; - } - function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) { - controller._controlledReadableStream = stream; - controller._queue = undefined; - controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._started = false; - controller._closeRequested = false; - controller._pullAgain = false; - controller._pulling = false; - controller._strategySizeAlgorithm = sizeAlgorithm; - controller._strategyHWM = highWaterMark; - controller._pullAlgorithm = pullAlgorithm; - controller._cancelAlgorithm = cancelAlgorithm; - stream._readableStreamController = controller; - var startResult = startAlgorithm(); - uponPromise(promiseResolvedWith(startResult), function () { - controller._started = true; - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableStreamDefaultControllerError(controller, r); - }); - } - function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) { - var controller = Object.create(ReadableStreamDefaultController.prototype); - function startAlgorithm() { - return InvokeOrNoop(underlyingSource, 'start', [controller]); - } - var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]); - var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []); - SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); - } - function defaultControllerBrandCheckException(name) { - return new TypeError("ReadableStreamDefaultController.prototype." + name + " can only be used on a ReadableStreamDefaultController"); - } - function ReadableStreamTee(stream, cloneForBranch2) { - var reader = AcquireReadableStreamDefaultReader(stream); - var reading = false; - var canceled1 = false; - var canceled2 = false; - var reason1; - var reason2; - var branch1; - var branch2; - var resolveCancelPromise; - var cancelPromise = newPromise(function (resolve) { - resolveCancelPromise = resolve; - }); - function pullAlgorithm() { - if (reading === true) { - return promiseResolvedWith(undefined); - } - reading = true; - var readPromise = transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) { - reading = false; - var done = result.done; - if (done === true) { - if (canceled1 === false) { - ReadableStreamDefaultControllerClose(branch1._readableStreamController); - } - if (canceled2 === false) { - ReadableStreamDefaultControllerClose(branch2._readableStreamController); - } - return; - } - var value = result.value; - var value1 = value; - var value2 = value; - if (canceled1 === false) { - ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1); - } - if (canceled2 === false) { - ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2); - } - }); - setPromiseIsHandledToTrue(readPromise); - return promiseResolvedWith(undefined); - } - function cancel1Algorithm(reason) { - canceled1 = true; - reason1 = reason; - if (canceled2 === true) { - var compositeReason = createArrayFromList([ - reason1, - reason2 - ]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); - } - return cancelPromise; - } - function cancel2Algorithm(reason) { - canceled2 = true; - reason2 = reason; - if (canceled1 === true) { - var compositeReason = createArrayFromList([ - reason1, - reason2 - ]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); - } - return cancelPromise; - } - function startAlgorithm() { - } - branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm); - branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm); - uponRejection(reader._closedPromise, function (r) { - ReadableStreamDefaultControllerError(branch1._readableStreamController, r); - ReadableStreamDefaultControllerError(branch2._readableStreamController, r); - }); - return [ - branch1, - branch2 - ]; - } - var NumberIsInteger = Number.isInteger || function (value) { - return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; - }; - var ReadableStreamBYOBRequest = function () { - function ReadableStreamBYOBRequest() { - throw new TypeError('ReadableStreamBYOBRequest cannot be used directly'); - } - Object.defineProperty(ReadableStreamBYOBRequest.prototype, "view", { - get: function () { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('view'); - } - return this._view; - }, - enumerable: true, - configurable: true - }); - ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - if (IsDetachedBuffer(this._view.buffer) === true); - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - }; - ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); - } - if (IsDetachedBuffer(view.buffer) === true); - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); - }; - return ReadableStreamBYOBRequest; - }(); - var ReadableByteStreamController = function () { - function ReadableByteStreamController() { - throw new TypeError('ReadableByteStreamController constructor cannot be used directly'); - } - Object.defineProperty(ReadableByteStreamController.prototype, "byobRequest", { - get: function () { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('byobRequest'); - } - if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos.peek(); - var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype); - SetUpReadableStreamBYOBRequest(byobRequest, this, view); - this._byobRequest = byobRequest; - } - return this._byobRequest; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ReadableByteStreamController.prototype, "desiredSize", { - get: function () { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('desiredSize'); - } - return ReadableByteStreamControllerGetDesiredSize(this); - }, - enumerable: true, - configurable: true - }); - ReadableByteStreamController.prototype.close = function () { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('close'); - } - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - var state = this._controlledReadableByteStream._state; - if (state !== 'readable') { - throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be closed"); - } - ReadableByteStreamControllerClose(this); - }; - ReadableByteStreamController.prototype.enqueue = function (chunk) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('enqueue'); - } - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - var state = this._controlledReadableByteStream._state; - if (state !== 'readable') { - throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be enqueued to"); - } - if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); - } - if (IsDetachedBuffer(chunk.buffer) === true); - ReadableByteStreamControllerEnqueue(this, chunk); - }; - ReadableByteStreamController.prototype.error = function (e) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('error'); - } - ReadableByteStreamControllerError(this, e); - }; - ReadableByteStreamController.prototype[CancelSteps] = function (reason) { - if (this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos.peek(); - firstDescriptor.bytesFilled = 0; - } - ResetQueue(this); - var result = this._cancelAlgorithm(reason); - ReadableByteStreamControllerClearAlgorithms(this); - return result; - }; - ReadableByteStreamController.prototype[PullSteps] = function () { - var stream = this._controlledReadableByteStream; - if (this._queueTotalSize > 0) { - var entry = this._queue.shift(); - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - var view = void 0; - try { - view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - } catch (viewE) { - return promiseRejectedWith(viewE); - } - return promiseResolvedWith(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode)); - } - var autoAllocateChunkSize = this._autoAllocateChunkSize; - if (autoAllocateChunkSize !== undefined) { - var buffer = void 0; - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } catch (bufferE) { - return promiseRejectedWith(bufferE); - } - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: 'default' - }; - this._pendingPullIntos.push(pullIntoDescriptor); - } - var promise = ReadableStreamAddReadRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(this); - return promise; - }; - return ReadableByteStreamController; - }(); - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) { - return false; - } - return true; - } - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { - return false; - } - return true; - } - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - if (shouldPull === false) { - return; - } - if (controller._pulling === true) { - controller._pullAgain = true; - return; - } - controller._pulling = true; - var pullPromise = controller._pullAlgorithm(); - uponPromise(pullPromise, function () { - controller._pulling = false; - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - }, function (e) { - ReadableByteStreamControllerError(controller, e); - }); - } - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = new SimpleQueue(); - } - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - var done = false; - if (stream._state === 'closed') { - done = true; - } - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - if (pullIntoDescriptor.readerType === 'default') { - ReadableStreamFulfillReadRequest(stream, filledView, done); - } else { - ReadableStreamFulfillReadIntoRequest(stream, filledView, done); - } - } - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - var bytesFilled = pullIntoDescriptor.bytesFilled; - var elementSize = pullIntoDescriptor.elementSize; - return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); - } - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength - }); - controller._queueTotalSize += byteLength; - } - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - var elementSize = pullIntoDescriptor.elementSize; - var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - var totalBytesToCopyRemaining = maxBytesToCopy; - var ready = false; - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; - ready = true; - } - var queue = controller._queue; - while (totalBytesToCopyRemaining > 0) { - var headOfQueue = queue.peek(); - var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); - if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); - } else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; - } - controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); - totalBytesToCopyRemaining -= bytesToCopy; - } - return ready; - } - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - pullIntoDescriptor.bytesFilled += size; - } - function ReadableByteStreamControllerHandleQueueDrain(controller) { - if (controller._queueTotalSize === 0 && controller._closeRequested === true) { - ReadableByteStreamControllerClearAlgorithms(controller); - ReadableStreamClose(controller._controlledReadableByteStream); - } else { - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - } - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === undefined) { - return; - } - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = undefined; - controller._byobRequest = undefined; - } - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - while (controller._pendingPullIntos.length > 0) { - if (controller._queueTotalSize === 0) { - return; - } - var pullIntoDescriptor = controller._pendingPullIntos.peek(); - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); - } - } - } - function ReadableByteStreamControllerPullInto(controller, view) { - var stream = controller._controlledReadableByteStream; - var elementSize = 1; - if (view.constructor !== DataView) { - elementSize = view.constructor.BYTES_PER_ELEMENT; - } - var ctor = view.constructor; - var buffer = TransferArrayBuffer(view.buffer); - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: view.byteOffset, - byteLength: view.byteLength, - bytesFilled: 0, - elementSize: elementSize, - ctor: ctor, - readerType: 'byob' - }; - if (controller._pendingPullIntos.length > 0) { - controller._pendingPullIntos.push(pullIntoDescriptor); - return ReadableStreamAddReadIntoRequest(stream); - } - if (stream._state === 'closed') { - var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); - return promiseResolvedWith(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode)); - } - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - return promiseResolvedWith(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode)); - } - if (controller._closeRequested === true) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - return promiseRejectedWith(e); - } - } - controller._pendingPullIntos.push(pullIntoDescriptor); - var promise = ReadableStreamAddReadIntoRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(controller); - return promise; - } - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - var stream = controller._controlledReadableByteStream; - if (ReadableStreamHasBYOBReader(stream) === true) { - while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); - } - } - } - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); - } - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { - return; - } - ReadableByteStreamControllerShiftPendingPullInto(controller); - var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - if (remainderSize > 0) { - var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); - } - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - var firstDescriptor = controller._pendingPullIntos.peek(); - var stream = controller._controlledReadableByteStream; - if (stream._state === 'closed') { - if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); - } - ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); - } else { - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); - } - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - var descriptor = controller._pendingPullIntos.shift(); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - return descriptor; - } - function ReadableByteStreamControllerShouldCallPull(controller) { - var stream = controller._controlledReadableByteStream; - if (stream._state !== 'readable') { - return false; - } - if (controller._closeRequested === true) { - return false; - } - if (controller._started === false) { - return false; - } - if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { - return true; - } - var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller); - if (desiredSize > 0) { - return true; - } - return false; - } - function ReadableByteStreamControllerClearAlgorithms(controller) { - controller._pullAlgorithm = undefined; - controller._cancelAlgorithm = undefined; - } - function ReadableByteStreamControllerClose(controller) { - var stream = controller._controlledReadableByteStream; - if (controller._queueTotalSize > 0) { - controller._closeRequested = true; - return; - } - if (controller._pendingPullIntos.length > 0) { - var firstPendingPullInto = controller._pendingPullIntos.peek(); - if (firstPendingPullInto.bytesFilled > 0) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; - } - } - ReadableByteStreamControllerClearAlgorithms(controller); - ReadableStreamClose(stream); - } - function ReadableByteStreamControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableByteStream; - var buffer = chunk.buffer; - var byteOffset = chunk.byteOffset; - var byteLength = chunk.byteLength; - var transferredBuffer = TransferArrayBuffer(buffer); - if (ReadableStreamHasDefaultReader(stream) === true) { - if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } else { - var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); - } - } else if (ReadableStreamHasBYOBReader(stream) === true) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } else { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - function ReadableByteStreamControllerError(controller, e) { - var stream = controller._controlledReadableByteStream; - if (stream._state !== 'readable') { - return; - } - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableByteStreamControllerClearAlgorithms(controller); - ReadableStreamError(stream, e); - } - function ReadableByteStreamControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableByteStream; - var state = stream._state; - if (state === 'errored') { - return null; - } - if (state === 'closed') { - return 0; - } - return controller._strategyHWM - controller._queueTotalSize; - } - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - bytesWritten = Number(bytesWritten); - if (IsFiniteNonNegativeNumber(bytesWritten) === false) { - throw new RangeError('bytesWritten must be a finite'); - } - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); - } - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - var firstDescriptor = controller._pendingPullIntos.peek(); - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); - } - if (firstDescriptor.byteLength !== view.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); - } - firstDescriptor.buffer = view.buffer; - ReadableByteStreamControllerRespondInternal(controller, view.byteLength); - } - function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) { - controller._controlledReadableByteStream = stream; - controller._pullAgain = false; - controller._pulling = false; - controller._byobRequest = undefined; - controller._queue = controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._closeRequested = false; - controller._started = false; - controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); - controller._pullAlgorithm = pullAlgorithm; - controller._cancelAlgorithm = cancelAlgorithm; - controller._autoAllocateChunkSize = autoAllocateChunkSize; - controller._pendingPullIntos = new SimpleQueue(); - stream._readableStreamController = controller; - var startResult = startAlgorithm(); - uponPromise(promiseResolvedWith(startResult), function () { - controller._started = true; - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableByteStreamControllerError(controller, r); - }); - } - function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) { - var controller = Object.create(ReadableByteStreamController.prototype); - function startAlgorithm() { - return InvokeOrNoop(underlyingByteSource, 'start', [controller]); - } - var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]); - var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []); - var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - if (autoAllocateChunkSize !== undefined) { - autoAllocateChunkSize = Number(autoAllocateChunkSize); - if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { - throw new RangeError('autoAllocateChunkSize must be a positive integer'); - } - } - SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize); - } - function SetUpReadableStreamBYOBRequest(request, controller, view) { - request._associatedReadableByteStreamController = controller; - request._view = view; - } - function byobRequestBrandCheckException(name) { - return new TypeError("ReadableStreamBYOBRequest.prototype." + name + " can only be used on a ReadableStreamBYOBRequest"); - } - function byteStreamControllerBrandCheckException(name) { - return new TypeError("ReadableByteStreamController.prototype." + name + " can only be used on a ReadableByteStreamController"); - } - function AcquireReadableStreamBYOBReader(stream, forAuthorCode) { - if (forAuthorCode === void 0) { - forAuthorCode = false; - } - var reader = new ReadableStreamBYOBReader(stream); - reader._forAuthorCode = forAuthorCode; - return reader; - } - function ReadableStreamAddReadIntoRequest(stream) { - var promise = newPromise(function (resolve, reject) { - var readIntoRequest = { - _resolve: resolve, - _reject: reject - }; - stream._reader._readIntoRequests.push(readIntoRequest); - }); - return promise; - } - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - var reader = stream._reader; - var readIntoRequest = reader._readIntoRequests.shift(); - readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode)); - } - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; - } - function ReadableStreamHasBYOBReader(stream) { - var reader = stream._reader; - if (reader === undefined) { - return false; - } - if (!IsReadableStreamBYOBReader(reader)) { - return false; - } - return true; - } - var ReadableStreamBYOBReader = function () { - function ReadableStreamBYOBReader(stream) { - if (!IsReadableStream(stream)) { - throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); - } - if (IsReadableByteStreamController(stream._readableStreamController) === false) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); - } - if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - ReadableStreamReaderGenericInitialize(this, stream); - this._readIntoRequests = new SimpleQueue(); - } - Object.defineProperty(ReadableStreamBYOBReader.prototype, "closed", { - get: function () { - if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('closed')); - } - return this._closedPromise; - }, - enumerable: true, - configurable: true - }); - ReadableStreamBYOBReader.prototype.cancel = function (reason) { - if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('cancel')); - } - if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('cancel')); - } - return ReadableStreamReaderGenericCancel(this, reason); - }; - ReadableStreamBYOBReader.prototype.read = function (view) { - if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('read')); - } - if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('read from')); - } - if (!ArrayBuffer.isView(view)) { - return promiseRejectedWith(new TypeError('view must be an array buffer view')); - } - if (IsDetachedBuffer(view.buffer) === true); - if (view.byteLength === 0) { - return promiseRejectedWith(new TypeError('view must have non-zero byteLength')); - } - return ReadableStreamBYOBReaderRead(this, view); - }; - ReadableStreamBYOBReader.prototype.releaseLock = function () { - if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); - } - if (this._ownerReadableStream === undefined) { - return; - } - if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - ReadableStreamReaderGenericRelease(this); - }; - return ReadableStreamBYOBReader; - }(); - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { - return false; - } - return true; - } - function ReadableStreamBYOBReaderRead(reader, view) { - var stream = reader._ownerReadableStream; - stream._disturbed = true; - if (stream._state === 'errored') { - return promiseRejectedWith(stream._storedError); - } - return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); - } - function byobReaderBrandCheckException(name) { - return new TypeError("ReadableStreamBYOBReader.prototype." + name + " can only be used on a ReadableStreamBYOBReader"); - } - var ReadableStream = function () { - function ReadableStream(underlyingSource, strategy) { - if (underlyingSource === void 0) { - underlyingSource = {}; - } - if (strategy === void 0) { - strategy = {}; - } - InitializeReadableStream(this); - var size = strategy.size; - var highWaterMark = strategy.highWaterMark; - var type = underlyingSource.type; - var typeString = String(type); - if (typeString === 'bytes') { - if (size !== undefined) { - throw new RangeError('The strategy for a byte stream cannot have a size function'); - } - if (highWaterMark === undefined) { - highWaterMark = 0; - } - highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark); - SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark); - } else if (type === undefined) { - var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size); - if (highWaterMark === undefined) { - highWaterMark = 1; - } - highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark); - SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm); - } else { - throw new RangeError('Invalid type is specified'); - } - } - Object.defineProperty(ReadableStream.prototype, "locked", { - get: function () { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException$1('locked'); - } - return IsReadableStreamLocked(this); - }, - enumerable: true, - configurable: true - }); - ReadableStream.prototype.cancel = function (reason) { - if (IsReadableStream(this) === false) { - return promiseRejectedWith(streamBrandCheckException$1('cancel')); - } - if (IsReadableStreamLocked(this) === true) { - return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader')); - } - return ReadableStreamCancel(this, reason); - }; - ReadableStream.prototype.getReader = function (_a) { - var mode = (_a === void 0 ? {} : _a).mode; - if (IsReadableStream(this) === false) { - throw streamBrandCheckException$1('getReader'); - } - if (mode === undefined) { - return AcquireReadableStreamDefaultReader(this, true); - } - mode = String(mode); - if (mode === 'byob') { - return AcquireReadableStreamBYOBReader(this, true); - } - throw new RangeError('Invalid mode is specified'); - }; - ReadableStream.prototype.pipeThrough = function (_a, _b) { - var writable = _a.writable, readable = _a.readable; - var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal; - if (IsReadableStream(this) === false) { - throw streamBrandCheckException$1('pipeThrough'); - } - if (IsWritableStream(writable) === false) { - throw new TypeError('writable argument to pipeThrough must be a WritableStream'); - } - if (IsReadableStream(readable) === false) { - throw new TypeError('readable argument to pipeThrough must be a ReadableStream'); - } - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - if (signal !== undefined && !isAbortSignal(signal)) { - throw new TypeError('ReadableStream.prototype.pipeThrough\'s signal option must be an AbortSignal'); - } - if (IsReadableStreamLocked(this) === true) { - throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream'); - } - if (IsWritableStreamLocked(writable) === true) { - throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream'); - } - var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal); - setPromiseIsHandledToTrue(promise); - return readable; - }; - ReadableStream.prototype.pipeTo = function (dest, _a) { - var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal; - if (IsReadableStream(this) === false) { - return promiseRejectedWith(streamBrandCheckException$1('pipeTo')); - } - if (IsWritableStream(dest) === false) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); - } - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - if (signal !== undefined && !isAbortSignal(signal)) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\'s signal option must be an AbortSignal')); - } - if (IsReadableStreamLocked(this) === true) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); - } - if (IsWritableStreamLocked(dest) === true) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); - } - return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal); - }; - ReadableStream.prototype.tee = function () { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException$1('tee'); - } - var branches = ReadableStreamTee(this); - return createArrayFromList(branches); - }; - ReadableStream.prototype.getIterator = function (_a) { - var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b; - if (IsReadableStream(this) === false) { - throw streamBrandCheckException$1('getIterator'); - } - return AcquireReadableStreamAsyncIterator(this, preventCancel); - }; - return ReadableStream; - }(); - if (typeof SymbolPolyfill.asyncIterator === 'symbol') { - Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, { - value: ReadableStream.prototype.getIterator, - enumerable: false, - writable: true, - configurable: true - }); - } - function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) { - if (highWaterMark === void 0) { - highWaterMark = 1; - } - if (sizeAlgorithm === void 0) { - sizeAlgorithm = function () { - return 1; - }; - } - var stream = Object.create(ReadableStream.prototype); - InitializeReadableStream(stream); - var controller = Object.create(ReadableStreamDefaultController.prototype); - SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); - return stream; - } - function InitializeReadableStream(stream) { - stream._state = 'readable'; - stream._reader = undefined; - stream._storedError = undefined; - stream._disturbed = false; - } - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; - } - return true; - } - function IsReadableStreamLocked(stream) { - if (stream._reader === undefined) { - return false; - } - return true; - } - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - if (stream._state === 'closed') { - return promiseResolvedWith(undefined); - } - if (stream._state === 'errored') { - return promiseRejectedWith(stream._storedError); - } - ReadableStreamClose(stream); - var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason); - return transformPromiseWith(sourceCancelPromise, noop); - } - function ReadableStreamClose(stream) { - stream._state = 'closed'; - var reader = stream._reader; - if (reader === undefined) { - return; - } - if (IsReadableStreamDefaultReader(reader)) { - reader._readRequests.forEach(function (readRequest) { - readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode)); - }); - reader._readRequests = new SimpleQueue(); - } - defaultReaderClosedPromiseResolve(reader); - } - function ReadableStreamError(stream, e) { - stream._state = 'errored'; - stream._storedError = e; - var reader = stream._reader; - if (reader === undefined) { - return; - } - if (IsReadableStreamDefaultReader(reader)) { - reader._readRequests.forEach(function (readRequest) { - readRequest._reject(e); - }); - reader._readRequests = new SimpleQueue(); - } else { - reader._readIntoRequests.forEach(function (readIntoRequest) { - readIntoRequest._reject(e); - }); - reader._readIntoRequests = new SimpleQueue(); - } - defaultReaderClosedPromiseReject(reader, e); - } - function streamBrandCheckException$1(name) { - return new TypeError("ReadableStream.prototype." + name + " can only be used on a ReadableStream"); - } - var ByteLengthQueuingStrategy = function () { - function ByteLengthQueuingStrategy(_a) { - var highWaterMark = _a.highWaterMark; - this.highWaterMark = highWaterMark; - } - ByteLengthQueuingStrategy.prototype.size = function (chunk) { - return chunk.byteLength; - }; - return ByteLengthQueuingStrategy; - }(); - var CountQueuingStrategy = function () { - function CountQueuingStrategy(_a) { - var highWaterMark = _a.highWaterMark; - this.highWaterMark = highWaterMark; - } - CountQueuingStrategy.prototype.size = function () { - return 1; - }; - return CountQueuingStrategy; - }(); - var TransformStream = function () { - function TransformStream(transformer, writableStrategy, readableStrategy) { - if (transformer === void 0) { - transformer = {}; - } - if (writableStrategy === void 0) { - writableStrategy = {}; - } - if (readableStrategy === void 0) { - readableStrategy = {}; - } - var writableSizeFunction = writableStrategy.size; - var writableHighWaterMark = writableStrategy.highWaterMark; - var readableSizeFunction = readableStrategy.size; - var readableHighWaterMark = readableStrategy.highWaterMark; - var writableType = transformer.writableType; - if (writableType !== undefined) { - throw new RangeError('Invalid writable type specified'); - } - var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction); - if (writableHighWaterMark === undefined) { - writableHighWaterMark = 1; - } - writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark); - var readableType = transformer.readableType; - if (readableType !== undefined) { - throw new RangeError('Invalid readable type specified'); - } - var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction); - if (readableHighWaterMark === undefined) { - readableHighWaterMark = 0; - } - readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark); - var startPromise_resolve; - var startPromise = newPromise(function (resolve) { - startPromise_resolve = resolve; - }); - InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm); - SetUpTransformStreamDefaultControllerFromTransformer(this, transformer); - var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]); - startPromise_resolve(startResult); - } - Object.defineProperty(TransformStream.prototype, "readable", { - get: function () { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException$2('readable'); - } - return this._readable; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(TransformStream.prototype, "writable", { - get: function () { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException$2('writable'); - } - return this._writable; - }, - enumerable: true, - configurable: true - }); - return TransformStream; - }(); - function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) { - function startAlgorithm() { - return startPromise; - } - function writeAlgorithm(chunk) { - return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk); - } - function abortAlgorithm(reason) { - return TransformStreamDefaultSinkAbortAlgorithm(stream, reason); - } - function closeAlgorithm() { - return TransformStreamDefaultSinkCloseAlgorithm(stream); - } - stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm); - function pullAlgorithm() { - return TransformStreamDefaultSourcePullAlgorithm(stream); - } - function cancelAlgorithm(reason) { - TransformStreamErrorWritableAndUnblockWrite(stream, reason); - return promiseResolvedWith(undefined); - } - stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm); - stream._backpressure = undefined; - stream._backpressureChangePromise = undefined; - stream._backpressureChangePromise_resolve = undefined; - TransformStreamSetBackpressure(stream, true); - stream._transformStreamController = undefined; - } - function IsTransformStream(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { - return false; - } - return true; - } - function TransformStreamError(stream, e) { - ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e); - TransformStreamErrorWritableAndUnblockWrite(stream, e); - } - function TransformStreamErrorWritableAndUnblockWrite(stream, e) { - TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController); - WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e); - if (stream._backpressure === true) { - TransformStreamSetBackpressure(stream, false); - } - } - function TransformStreamSetBackpressure(stream, backpressure) { - if (stream._backpressureChangePromise !== undefined) { - stream._backpressureChangePromise_resolve(); - } - stream._backpressureChangePromise = newPromise(function (resolve) { - stream._backpressureChangePromise_resolve = resolve; - }); - stream._backpressure = backpressure; - } - var TransformStreamDefaultController = function () { - function TransformStreamDefaultController() { - throw new TypeError('TransformStreamDefaultController instances cannot be created directly'); - } - Object.defineProperty(TransformStreamDefaultController.prototype, "desiredSize", { - get: function () { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException$1('desiredSize'); - } - var readableController = this._controlledTransformStream._readable._readableStreamController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - }, - enumerable: true, - configurable: true - }); - TransformStreamDefaultController.prototype.enqueue = function (chunk) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException$1('enqueue'); - } - TransformStreamDefaultControllerEnqueue(this, chunk); - }; - TransformStreamDefaultController.prototype.error = function (reason) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException$1('error'); - } - TransformStreamDefaultControllerError(this, reason); - }; - TransformStreamDefaultController.prototype.terminate = function () { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException$1('terminate'); - } - TransformStreamDefaultControllerTerminate(this); - }; - return TransformStreamDefaultController; - }(); - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { - return false; - } - return true; - } - function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) { - controller._controlledTransformStream = stream; - stream._transformStreamController = controller; - controller._transformAlgorithm = transformAlgorithm; - controller._flushAlgorithm = flushAlgorithm; - } - function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) { - var controller = Object.create(TransformStreamDefaultController.prototype); - var transformAlgorithm = function (chunk) { - try { - TransformStreamDefaultControllerEnqueue(controller, chunk); - return promiseResolvedWith(undefined); - } catch (transformResultE) { - return promiseRejectedWith(transformResultE); - } - }; - var transformMethod = transformer.transform; - if (transformMethod !== undefined) { - if (typeof transformMethod !== 'function') { - throw new TypeError('transform is not a method'); - } - transformAlgorithm = function (chunk) { - return PromiseCall(transformMethod, transformer, [ - chunk, - controller - ]); - }; - } - var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]); - SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm); - } - function TransformStreamDefaultControllerClearAlgorithms(controller) { - controller._transformAlgorithm = undefined; - controller._flushAlgorithm = undefined; - } - function TransformStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledTransformStream; - var readableController = stream._readable._readableStreamController; - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) { - throw new TypeError('Readable side is not in a state that permits enqueue'); - } - try { - ReadableStreamDefaultControllerEnqueue(readableController, chunk); - } catch (e) { - TransformStreamErrorWritableAndUnblockWrite(stream, e); - throw stream._readable._storedError; - } - var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController); - if (backpressure !== stream._backpressure) { - TransformStreamSetBackpressure(stream, true); - } - } - function TransformStreamDefaultControllerError(controller, e) { - TransformStreamError(controller._controlledTransformStream, e); - } - function TransformStreamDefaultControllerPerformTransform(controller, chunk) { - var transformPromise = controller._transformAlgorithm(chunk); - return transformPromiseWith(transformPromise, undefined, function (r) { - TransformStreamError(controller._controlledTransformStream, r); - throw r; - }); - } - function TransformStreamDefaultControllerTerminate(controller) { - var stream = controller._controlledTransformStream; - var readableController = stream._readable._readableStreamController; - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) { - ReadableStreamDefaultControllerClose(readableController); - } - var error = new TypeError('TransformStream terminated'); - TransformStreamErrorWritableAndUnblockWrite(stream, error); - } - function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) { - var controller = stream._transformStreamController; - if (stream._backpressure === true) { - var backpressureChangePromise = stream._backpressureChangePromise; - return transformPromiseWith(backpressureChangePromise, function () { - var writable = stream._writable; - var state = writable._state; - if (state === 'erroring') { - throw writable._storedError; - } - return TransformStreamDefaultControllerPerformTransform(controller, chunk); - }); - } - return TransformStreamDefaultControllerPerformTransform(controller, chunk); - } - function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) { - TransformStreamError(stream, reason); - return promiseResolvedWith(undefined); - } - function TransformStreamDefaultSinkCloseAlgorithm(stream) { - var readable = stream._readable; - var controller = stream._transformStreamController; - var flushPromise = controller._flushAlgorithm(); - TransformStreamDefaultControllerClearAlgorithms(controller); - return transformPromiseWith(flushPromise, function () { - if (readable._state === 'errored') { - throw readable._storedError; - } - var readableController = readable._readableStreamController; - if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) { - ReadableStreamDefaultControllerClose(readableController); - } - }, function (r) { - TransformStreamError(stream, r); - throw readable._storedError; - }); - } - function TransformStreamDefaultSourcePullAlgorithm(stream) { - TransformStreamSetBackpressure(stream, false); - return stream._backpressureChangePromise; - } - function defaultControllerBrandCheckException$1(name) { - return new TypeError("TransformStreamDefaultController.prototype." + name + " can only be used on a TransformStreamDefaultController"); - } - function streamBrandCheckException$2(name) { - return new TypeError("TransformStream.prototype." + name + " can only be used on a TransformStream"); - } - exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy; - exports.CountQueuingStrategy = CountQueuingStrategy; - exports.ReadableStream = ReadableStream; - exports.TransformStream = TransformStream; - exports.WritableStream = WritableStream; - Object.defineProperty(exports, '__esModule', { value: true }); -})); - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(137); -__w_pdfjs_require__(105); -__w_pdfjs_require__(73); -__w_pdfjs_require__(107); -var path = __w_pdfjs_require__(38); -module.exports = path.Map; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var collection = __w_pdfjs_require__(138); -var collectionStrong = __w_pdfjs_require__(142); -module.exports = collection('Map', function (init) { - return function Map() { - return init(this, arguments.length ? arguments[0] : undefined); - }; -}, collectionStrong); - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var global = __w_pdfjs_require__(6); -var isForced = __w_pdfjs_require__(47); -var redefine = __w_pdfjs_require__(24); -var InternalMetadataModule = __w_pdfjs_require__(139); -var iterate = __w_pdfjs_require__(115); -var anInstance = __w_pdfjs_require__(114); -var isObject = __w_pdfjs_require__(17); -var fails = __w_pdfjs_require__(9); -var checkCorrectnessOfIteration = __w_pdfjs_require__(93); -var setToStringTag = __w_pdfjs_require__(81); -var inheritIfRequired = __w_pdfjs_require__(141); -module.exports = function (CONSTRUCTOR_NAME, wrapper, common) { - var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1; - var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1; - var ADDER = IS_MAP ? 'set' : 'add'; - var NativeConstructor = global[CONSTRUCTOR_NAME]; - var NativePrototype = NativeConstructor && NativeConstructor.prototype; - var Constructor = NativeConstructor; - var exported = {}; - var fixMethod = function (KEY) { - var nativeMethod = NativePrototype[KEY]; - redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) { - nativeMethod.call(this, value === 0 ? 0 : value); - return this; - } : KEY == 'delete' ? function (key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'get' ? function get(key) { - return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key); - } : KEY == 'has' ? function has(key) { - return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key); - } : function set(key, value) { - nativeMethod.call(this, key === 0 ? 0 : key, value); - return this; - }); - }; - if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () { - new NativeConstructor().entries().next(); - })))) { - Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER); - InternalMetadataModule.REQUIRED = true; - } else if (isForced(CONSTRUCTOR_NAME, true)) { - var instance = new Constructor(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { - new NativeConstructor(iterable); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new NativeConstructor(); - var index = 5; - while (index--) - $instance[ADDER](index, index); - return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - Constructor = wrapper(function (dummy, iterable) { - anInstance(dummy, Constructor, CONSTRUCTOR_NAME); - var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor); - if (iterable != undefined) - iterate(iterable, that[ADDER], that, IS_MAP); - return that; - }); - Constructor.prototype = NativePrototype; - NativePrototype.constructor = Constructor; - } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - if (BUGGY_ZERO || HASNT_CHAINING) - fixMethod(ADDER); - if (IS_WEAK && NativePrototype.clear) - delete NativePrototype.clear; - } - exported[CONSTRUCTOR_NAME] = Constructor; - $({ - global: true, - forced: Constructor != NativeConstructor - }, exported); - setToStringTag(Constructor, CONSTRUCTOR_NAME); - if (!IS_WEAK) - common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP); - return Constructor; -}; - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var hiddenKeys = __w_pdfjs_require__(34); -var isObject = __w_pdfjs_require__(17); -var has = __w_pdfjs_require__(18); -var defineProperty = __w_pdfjs_require__(22).f; -var uid = __w_pdfjs_require__(33); -var FREEZING = __w_pdfjs_require__(140); -var METADATA = uid('meta'); -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var setMetadata = function (it) { - defineProperty(it, METADATA, { - value: { - objectID: 'O' + ++id, - weakData: {} - } - }); -}; -var fastKey = function (it, create) { - if (!isObject(it)) - return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, METADATA)) { - if (!isExtensible(it)) - return 'F'; - if (!create) - return 'E'; - setMetadata(it); - } - return it[METADATA].objectID; -}; -var getWeakData = function (it, create) { - if (!has(it, METADATA)) { - if (!isExtensible(it)) - return true; - if (!create) - return false; - setMetadata(it); - } - return it[METADATA].weakData; -}; -var onFreeze = function (it) { - if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) - setMetadata(it); - return it; -}; -var meta = module.exports = { - REQUIRED: false, - fastKey: fastKey, - getWeakData: getWeakData, - onFreeze: onFreeze -}; -hiddenKeys[METADATA] = true; - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -module.exports = !fails(function () { - return Object.isExtensible(Object.preventExtensions({})); -}); - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -var setPrototypeOf = __w_pdfjs_require__(83); -module.exports = function ($this, dummy, Wrapper) { - var NewTarget, NewTargetPrototype; - if (setPrototypeOf && typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype) - setPrototypeOf($this, NewTargetPrototype); - return $this; -}; - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var defineProperty = __w_pdfjs_require__(22).f; -var create = __w_pdfjs_require__(67); -var redefineAll = __w_pdfjs_require__(112); -var bind = __w_pdfjs_require__(58); -var anInstance = __w_pdfjs_require__(114); -var iterate = __w_pdfjs_require__(115); -var defineIterator = __w_pdfjs_require__(75); -var setSpecies = __w_pdfjs_require__(113); -var DESCRIPTORS = __w_pdfjs_require__(8); -var fastKey = __w_pdfjs_require__(139).fastKey; -var InternalStateModule = __w_pdfjs_require__(28); -var setInternalState = InternalStateModule.set; -var internalStateGetterFor = InternalStateModule.getterFor; -module.exports = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState(that, { - type: CONSTRUCTOR_NAME, - index: create(null), - first: undefined, - last: undefined, - size: 0 - }); - if (!DESCRIPTORS) - that.size = 0; - if (iterable != undefined) - iterate(iterable, that[ADDER], that, IS_MAP); - }); - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - var define = function (that, key, value) { - var state = getInternalState(that); - var entry = getEntry(that, key); - var previous, index; - if (entry) { - entry.value = value; - } else { - state.last = entry = { - index: index = fastKey(key, true), - key: key, - value: value, - previous: previous = state.last, - next: undefined, - removed: false - }; - if (!state.first) - state.first = entry; - if (previous) - previous.next = entry; - if (DESCRIPTORS) - state.size++; - else - that.size++; - if (index !== 'F') - state.index[index] = entry; - } - return that; - }; - var getEntry = function (that, key) { - var state = getInternalState(that); - var index = fastKey(key); - var entry; - if (index !== 'F') - return state.index[index]; - for (entry = state.first; entry; entry = entry.next) { - if (entry.key == key) - return entry; - } - }; - redefineAll(C.prototype, { - clear: function clear() { - var that = this; - var state = getInternalState(that); - var data = state.index; - var entry = state.first; - while (entry) { - entry.removed = true; - if (entry.previous) - entry.previous = entry.previous.next = undefined; - delete data[entry.index]; - entry = entry.next; - } - state.first = state.last = undefined; - if (DESCRIPTORS) - state.size = 0; - else - that.size = 0; - }, - 'delete': function (key) { - var that = this; - var state = getInternalState(that); - var entry = getEntry(that, key); - if (entry) { - var next = entry.next; - var prev = entry.previous; - delete state.index[entry.index]; - entry.removed = true; - if (prev) - prev.next = next; - if (next) - next.previous = prev; - if (state.first == entry) - state.first = next; - if (state.last == entry) - state.last = prev; - if (DESCRIPTORS) - state.size--; - else - that.size--; - } - return !!entry; - }, - forEach: function forEach(callbackfn) { - var state = getInternalState(this); - var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.next : state.first) { - boundFunction(entry.value, entry.key, this); - while (entry && entry.removed) - entry = entry.previous; - } - }, - has: function has(key) { - return !!getEntry(this, key); - } - }); - redefineAll(C.prototype, IS_MAP ? { - get: function get(key) { - var entry = getEntry(this, key); - return entry && entry.value; - }, - set: function set(key, value) { - return define(this, key === 0 ? 0 : key, value); - } - } : { - add: function add(value) { - return define(this, value = value === 0 ? 0 : value, value); - } - }); - if (DESCRIPTORS) - defineProperty(C.prototype, 'size', { - get: function () { - return getInternalState(this).size; - } - }); - return C; - }, - setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) { - var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator'; - var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME); - var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME); - defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) { - setInternalState(this, { - type: ITERATOR_NAME, - target: iterated, - state: getInternalCollectionState(iterated), - kind: kind, - last: undefined - }); - }, function () { - var state = getInternalIteratorState(this); - var kind = state.kind; - var entry = state.last; - while (entry && entry.removed) - entry = entry.previous; - if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) { - state.target = undefined; - return { - value: undefined, - done: true - }; - } - if (kind == 'keys') - return { - value: entry.key, - done: false - }; - if (kind == 'values') - return { - value: entry.value, - done: false - }; - return { - value: [ - entry.key, - entry.value - ], - done: false - }; - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - setSpecies(CONSTRUCTOR_NAME); - } -}; - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(144); -__w_pdfjs_require__(105); -__w_pdfjs_require__(73); -__w_pdfjs_require__(107); -var path = __w_pdfjs_require__(38); -module.exports = path.Set; - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var collection = __w_pdfjs_require__(138); -var collectionStrong = __w_pdfjs_require__(142); -module.exports = collection('Set', function (init) { - return function Set() { - return init(this, arguments.length ? arguments[0] : undefined); - }; -}, collectionStrong); - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(105); -__w_pdfjs_require__(146); -__w_pdfjs_require__(107); -var path = __w_pdfjs_require__(38); -module.exports = path.WeakMap; - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var global = __w_pdfjs_require__(6); -var redefineAll = __w_pdfjs_require__(112); -var InternalMetadataModule = __w_pdfjs_require__(139); -var collection = __w_pdfjs_require__(138); -var collectionWeak = __w_pdfjs_require__(147); -var isObject = __w_pdfjs_require__(17); -var enforceIternalState = __w_pdfjs_require__(28).enforce; -var NATIVE_WEAK_MAP = __w_pdfjs_require__(29); -var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; -var isExtensible = Object.isExtensible; -var InternalWeakMap; -var wrapper = function (init) { - return function WeakMap() { - return init(this, arguments.length ? arguments[0] : undefined); - }; -}; -var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak); -if (NATIVE_WEAK_MAP && IS_IE11) { - InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true); - InternalMetadataModule.REQUIRED = true; - var WeakMapPrototype = $WeakMap.prototype; - var nativeDelete = WeakMapPrototype['delete']; - var nativeHas = WeakMapPrototype.has; - var nativeGet = WeakMapPrototype.get; - var nativeSet = WeakMapPrototype.set; - redefineAll(WeakMapPrototype, { - 'delete': function (key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) - state.frozen = new InternalWeakMap(); - return nativeDelete.call(this, key) || state.frozen['delete'](key); - } - return nativeDelete.call(this, key); - }, - has: function has(key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) - state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) || state.frozen.has(key); - } - return nativeHas.call(this, key); - }, - get: function get(key) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) - state.frozen = new InternalWeakMap(); - return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key); - } - return nativeGet.call(this, key); - }, - set: function set(key, value) { - if (isObject(key) && !isExtensible(key)) { - var state = enforceIternalState(this); - if (!state.frozen) - state.frozen = new InternalWeakMap(); - nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value); - } else - nativeSet.call(this, key, value); - return this; - } - }); -} - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var redefineAll = __w_pdfjs_require__(112); -var getWeakData = __w_pdfjs_require__(139).getWeakData; -var anObject = __w_pdfjs_require__(23); -var isObject = __w_pdfjs_require__(17); -var anInstance = __w_pdfjs_require__(114); -var iterate = __w_pdfjs_require__(115); -var ArrayIterationModule = __w_pdfjs_require__(148); -var $has = __w_pdfjs_require__(18); -var InternalStateModule = __w_pdfjs_require__(28); -var setInternalState = InternalStateModule.set; -var internalStateGetterFor = InternalStateModule.getterFor; -var find = ArrayIterationModule.find; -var findIndex = ArrayIterationModule.findIndex; -var id = 0; -var uncaughtFrozenStore = function (store) { - return store.frozen || (store.frozen = new UncaughtFrozenStore()); -}; -var UncaughtFrozenStore = function () { - this.entries = []; -}; -var findUncaughtFrozen = function (store, key) { - return find(store.entries, function (it) { - return it[0] === key; - }); -}; -UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) - return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) - entry[1] = value; - else - this.entries.push([ - key, - value - ]); - }, - 'delete': function (key) { - var index = findIndex(this.entries, function (it) { - return it[0] === key; - }); - if (~index) - this.entries.splice(index, 1); - return !!~index; - } -}; -module.exports = { - getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, CONSTRUCTOR_NAME); - setInternalState(that, { - type: CONSTRUCTOR_NAME, - id: id++, - frozen: undefined - }); - if (iterable != undefined) - iterate(iterable, that[ADDER], that, IS_MAP); - }); - var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME); - var define = function (that, key, value) { - var state = getInternalState(that); - var data = getWeakData(anObject(key), true); - if (data === true) - uncaughtFrozenStore(state).set(key, value); - else - data[state.id] = value; - return that; - }; - redefineAll(C.prototype, { - 'delete': function (key) { - var state = getInternalState(this); - if (!isObject(key)) - return false; - var data = getWeakData(key); - if (data === true) - return uncaughtFrozenStore(state)['delete'](key); - return data && $has(data, state.id) && delete data[state.id]; - }, - has: function has(key) { - var state = getInternalState(this); - if (!isObject(key)) - return false; - var data = getWeakData(key); - if (data === true) - return uncaughtFrozenStore(state).has(key); - return data && $has(data, state.id); - } - }); - redefineAll(C.prototype, IS_MAP ? { - get: function get(key) { - var state = getInternalState(this); - if (isObject(key)) { - var data = getWeakData(key); - if (data === true) - return uncaughtFrozenStore(state).get(key); - return data ? data[state.id] : undefined; - } - }, - set: function set(key, value) { - return define(this, key, value); - } - } : { - add: function add(value) { - return define(this, value, true); - } - }); - return C; - } -}; - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var bind = __w_pdfjs_require__(58); -var IndexedObject = __w_pdfjs_require__(13); -var toObject = __w_pdfjs_require__(79); -var toLength = __w_pdfjs_require__(42); -var arraySpeciesCreate = __w_pdfjs_require__(149); -var push = [].push; -var createMethod = function (TYPE) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - return function ($this, callbackfn, that, specificCreate) { - var O = toObject($this); - var self = IndexedObject(O); - var boundFunction = bind(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var create = specificCreate || arraySpeciesCreate; - var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var value, result; - for (; length > index; index++) - if (NO_HOLES || index in self) { - value = self[index]; - result = boundFunction(value, index, O); - if (TYPE) { - if (IS_MAP) - target[index] = result; - else if (result) - switch (TYPE) { - case 3: - return true; - case 5: - return value; - case 6: - return index; - case 2: - push.call(target, value); - } - else if (IS_EVERY) - return false; - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; - }; -}; -module.exports = { - forEach: createMethod(0), - map: createMethod(1), - filter: createMethod(2), - some: createMethod(3), - every: createMethod(4), - find: createMethod(5), - findIndex: createMethod(6) -}; - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var isObject = __w_pdfjs_require__(17); -var isArray = __w_pdfjs_require__(150); -var wellKnownSymbol = __w_pdfjs_require__(53); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (originalArray, length) { - var C; - if (isArray(originalArray)) { - C = originalArray.constructor; - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) - C = undefined; - else if (isObject(C)) { - C = C[SPECIES]; - if (C === null) - C = undefined; - } - } - return new (C === undefined ? Array : C)(length === 0 ? 0 : length); -}; - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var classof = __w_pdfjs_require__(14); -module.exports = Array.isArray || function isArray(arg) { - return classof(arg) == 'Array'; -}; - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(105); -__w_pdfjs_require__(152); -__w_pdfjs_require__(107); -var path = __w_pdfjs_require__(38); -module.exports = path.WeakSet; - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var collection = __w_pdfjs_require__(138); -var collectionWeak = __w_pdfjs_require__(147); -collection('WeakSet', function (init) { - return function WeakSet() { - return init(this, arguments.length ? arguments[0] : undefined); - }; -}, collectionWeak); - -/***/ }), -/* 153 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(154); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'codePointAt'); - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var codeAt = __w_pdfjs_require__(74).codeAt; -$({ - target: 'String', - proto: true -}, { - codePointAt: function codePointAt(pos) { - return codeAt(this, pos); - } -}); - -/***/ }), -/* 155 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(156); -var path = __w_pdfjs_require__(38); -module.exports = path.String.fromCodePoint; - -/***/ }), -/* 156 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var toAbsoluteIndex = __w_pdfjs_require__(44); -var fromCharCode = String.fromCharCode; -var nativeFromCodePoint = String.fromCodePoint; -var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1; -$({ - target: 'String', - stat: true, - forced: INCORRECT_LENGTH -}, { - fromCodePoint: function fromCodePoint(x) { - var elements = []; - var length = arguments.length; - var i = 0; - var code; - while (length > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10FFFF) !== code) - throw RangeError(code + ' is not a valid code point'); - elements.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)); - } - return elements.join(''); - } -}); - -/***/ }), -/* 157 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(158); -__w_pdfjs_require__(105); -__w_pdfjs_require__(160); -__w_pdfjs_require__(164); -__w_pdfjs_require__(165); -__w_pdfjs_require__(166); -__w_pdfjs_require__(167); -__w_pdfjs_require__(168); -__w_pdfjs_require__(169); -__w_pdfjs_require__(170); -__w_pdfjs_require__(171); -__w_pdfjs_require__(172); -__w_pdfjs_require__(173); -__w_pdfjs_require__(174); -__w_pdfjs_require__(175); -__w_pdfjs_require__(176); -__w_pdfjs_require__(177); -__w_pdfjs_require__(178); -__w_pdfjs_require__(179); -var path = __w_pdfjs_require__(38); -module.exports = path.Symbol; - -/***/ }), -/* 158 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var fails = __w_pdfjs_require__(9); -var isArray = __w_pdfjs_require__(150); -var isObject = __w_pdfjs_require__(17); -var toObject = __w_pdfjs_require__(79); -var toLength = __w_pdfjs_require__(42); -var createProperty = __w_pdfjs_require__(89); -var arraySpeciesCreate = __w_pdfjs_require__(149); -var arrayMethodHasSpeciesSupport = __w_pdfjs_require__(159); -var wellKnownSymbol = __w_pdfjs_require__(53); -var V8_VERSION = __w_pdfjs_require__(125); -var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable'); -var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; -var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded'; -var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () { - var array = []; - array[IS_CONCAT_SPREADABLE] = false; - return array.concat()[0] !== array; -}); -var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat'); -var isConcatSpreadable = function (O) { - if (!isObject(O)) - return false; - var spreadable = O[IS_CONCAT_SPREADABLE]; - return spreadable !== undefined ? !!spreadable : isArray(O); -}; -var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT; -$({ - target: 'Array', - proto: true, - forced: FORCED -}, { - concat: function concat(arg) { - var O = toObject(this); - var A = arraySpeciesCreate(O, 0); - var n = 0; - var i, k, length, len, E; - for (i = -1, length = arguments.length; i < length; i++) { - E = i === -1 ? O : arguments[i]; - if (isConcatSpreadable(E)) { - len = toLength(E.length); - if (n + len > MAX_SAFE_INTEGER) - throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - for (k = 0; k < len; k++, n++) - if (k in E) - createProperty(A, n, E[k]); - } else { - if (n >= MAX_SAFE_INTEGER) - throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED); - createProperty(A, n++, E); - } - } - A.length = n; - return A; - } -}); - -/***/ }), -/* 159 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var fails = __w_pdfjs_require__(9); -var wellKnownSymbol = __w_pdfjs_require__(53); -var V8_VERSION = __w_pdfjs_require__(125); -var SPECIES = wellKnownSymbol('species'); -module.exports = function (METHOD_NAME) { - return V8_VERSION >= 51 || !fails(function () { - var array = []; - var constructor = array.constructor = {}; - constructor[SPECIES] = function () { - return { foo: 1 }; - }; - return array[METHOD_NAME](Boolean).foo !== 1; - }); -}; - -/***/ }), -/* 160 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var global = __w_pdfjs_require__(6); -var getBuiltIn = __w_pdfjs_require__(37); -var IS_PURE = __w_pdfjs_require__(32); -var DESCRIPTORS = __w_pdfjs_require__(8); -var NATIVE_SYMBOL = __w_pdfjs_require__(54); -var USE_SYMBOL_AS_UID = __w_pdfjs_require__(55); -var fails = __w_pdfjs_require__(9); -var has = __w_pdfjs_require__(18); -var isArray = __w_pdfjs_require__(150); -var isObject = __w_pdfjs_require__(17); -var anObject = __w_pdfjs_require__(23); -var toObject = __w_pdfjs_require__(79); -var toIndexedObject = __w_pdfjs_require__(12); -var toPrimitive = __w_pdfjs_require__(16); -var createPropertyDescriptor = __w_pdfjs_require__(11); -var nativeObjectCreate = __w_pdfjs_require__(67); -var objectKeys = __w_pdfjs_require__(69); -var getOwnPropertyNamesModule = __w_pdfjs_require__(39); -var getOwnPropertyNamesExternal = __w_pdfjs_require__(161); -var getOwnPropertySymbolsModule = __w_pdfjs_require__(46); -var getOwnPropertyDescriptorModule = __w_pdfjs_require__(7); -var definePropertyModule = __w_pdfjs_require__(22); -var propertyIsEnumerableModule = __w_pdfjs_require__(10); -var createNonEnumerableProperty = __w_pdfjs_require__(21); -var redefine = __w_pdfjs_require__(24); -var shared = __w_pdfjs_require__(31); -var sharedKey = __w_pdfjs_require__(30); -var hiddenKeys = __w_pdfjs_require__(34); -var uid = __w_pdfjs_require__(33); -var wellKnownSymbol = __w_pdfjs_require__(53); -var wrappedWellKnownSymbolModule = __w_pdfjs_require__(162); -var defineWellKnownSymbol = __w_pdfjs_require__(163); -var setToStringTag = __w_pdfjs_require__(81); -var InternalStateModule = __w_pdfjs_require__(28); -var $forEach = __w_pdfjs_require__(148).forEach; -var HIDDEN = sharedKey('hidden'); -var SYMBOL = 'Symbol'; -var PROTOTYPE = 'prototype'; -var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); -var setInternalState = InternalStateModule.set; -var getInternalState = InternalStateModule.getterFor(SYMBOL); -var ObjectPrototype = Object[PROTOTYPE]; -var $Symbol = global.Symbol; -var $stringify = getBuiltIn('JSON', 'stringify'); -var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; -var nativeDefineProperty = definePropertyModule.f; -var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; -var nativePropertyIsEnumerable = propertyIsEnumerableModule.f; -var AllSymbols = shared('symbols'); -var ObjectPrototypeSymbols = shared('op-symbols'); -var StringToSymbolRegistry = shared('string-to-symbol-registry'); -var SymbolToStringRegistry = shared('symbol-to-string-registry'); -var WellKnownSymbolsStore = shared('wks'); -var QObject = global.QObject; -var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; -var setSymbolDescriptor = DESCRIPTORS && fails(function () { - return nativeObjectCreate(nativeDefineProperty({}, 'a', { - get: function () { - return nativeDefineProperty(this, 'a', { value: 7 }).a; - } - })).a != 7; -}) ? function (O, P, Attributes) { - var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); - if (ObjectPrototypeDescriptor) - delete ObjectPrototype[P]; - nativeDefineProperty(O, P, Attributes); - if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { - nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); - } -} : nativeDefineProperty; -var wrap = function (tag, description) { - var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]); - setInternalState(symbol, { - type: SYMBOL, - tag: tag, - description: description - }); - if (!DESCRIPTORS) - symbol.description = description; - return symbol; -}; -var isSymbol = USE_SYMBOL_AS_UID ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return Object(it) instanceof $Symbol; -}; -var $defineProperty = function defineProperty(O, P, Attributes) { - if (O === ObjectPrototype) - $defineProperty(ObjectPrototypeSymbols, P, Attributes); - anObject(O); - var key = toPrimitive(P, true); - anObject(Attributes); - if (has(AllSymbols, key)) { - if (!Attributes.enumerable) { - if (!has(O, HIDDEN)) - nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {})); - O[HIDDEN][key] = true; - } else { - if (has(O, HIDDEN) && O[HIDDEN][key]) - O[HIDDEN][key] = false; - Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); - } - return setSymbolDescriptor(O, key, Attributes); - } - return nativeDefineProperty(O, key, Attributes); -}; -var $defineProperties = function defineProperties(O, Properties) { - anObject(O); - var properties = toIndexedObject(Properties); - var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties)); - $forEach(keys, function (key) { - if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) - $defineProperty(O, key, properties[key]); - }); - return O; -}; -var $create = function create(O, Properties) { - return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(V) { - var P = toPrimitive(V, true); - var enumerable = nativePropertyIsEnumerable.call(this, P); - if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) - return false; - return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { - var it = toIndexedObject(O); - var key = toPrimitive(P, true); - if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) - return; - var descriptor = nativeGetOwnPropertyDescriptor(it, key); - if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) { - descriptor.enumerable = true; - } - return descriptor; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(O) { - var names = nativeGetOwnPropertyNames(toIndexedObject(O)); - var result = []; - $forEach(names, function (key) { - if (!has(AllSymbols, key) && !has(hiddenKeys, key)) - result.push(key); - }); - return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(O) { - var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; - var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O)); - var result = []; - $forEach(names, function (key) { - if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) { - result.push(AllSymbols[key]); - } - }); - return result; -}; -if (!NATIVE_SYMBOL) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) - throw TypeError('Symbol is not a constructor'); - var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]); - var tag = uid(description); - var setter = function (value) { - if (this === ObjectPrototype) - setter.call(ObjectPrototypeSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) - this[HIDDEN][tag] = false; - setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value)); - }; - if (DESCRIPTORS && USE_SETTER) - setSymbolDescriptor(ObjectPrototype, tag, { - configurable: true, - set: setter - }); - return wrap(tag, description); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return getInternalState(this).tag; - }); - redefine($Symbol, 'withoutSetter', function (description) { - return wrap(uid(description), description); - }); - propertyIsEnumerableModule.f = $propertyIsEnumerable; - definePropertyModule.f = $defineProperty; - getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor; - getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; - getOwnPropertySymbolsModule.f = $getOwnPropertySymbols; - wrappedWellKnownSymbolModule.f = function (name) { - return wrap(wellKnownSymbol(name), name); - }; - if (DESCRIPTORS) { - nativeDefineProperty($Symbol[PROTOTYPE], 'description', { - configurable: true, - get: function description() { - return getInternalState(this).description; - } - }); - if (!IS_PURE) { - redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true }); - } - } -} -$({ - global: true, - wrap: true, - forced: !NATIVE_SYMBOL, - sham: !NATIVE_SYMBOL -}, { Symbol: $Symbol }); -$forEach(objectKeys(WellKnownSymbolsStore), function (name) { - defineWellKnownSymbol(name); -}); -$({ - target: SYMBOL, - stat: true, - forced: !NATIVE_SYMBOL -}, { - 'for': function (key) { - var string = String(key); - if (has(StringToSymbolRegistry, string)) - return StringToSymbolRegistry[string]; - var symbol = $Symbol(string); - StringToSymbolRegistry[string] = symbol; - SymbolToStringRegistry[symbol] = string; - return symbol; - }, - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) - throw TypeError(sym + ' is not a symbol'); - if (has(SymbolToStringRegistry, sym)) - return SymbolToStringRegistry[sym]; - }, - useSetter: function () { - USE_SETTER = true; - }, - useSimple: function () { - USE_SETTER = false; - } -}); -$({ - target: 'Object', - stat: true, - forced: !NATIVE_SYMBOL, - sham: !DESCRIPTORS -}, { - create: $create, - defineProperty: $defineProperty, - defineProperties: $defineProperties, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor -}); -$({ - target: 'Object', - stat: true, - forced: !NATIVE_SYMBOL -}, { - getOwnPropertyNames: $getOwnPropertyNames, - getOwnPropertySymbols: $getOwnPropertySymbols -}); -$({ - target: 'Object', - stat: true, - forced: fails(function () { - getOwnPropertySymbolsModule.f(1); - }) -}, { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return getOwnPropertySymbolsModule.f(toObject(it)); - } -}); -if ($stringify) { - var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () { - var symbol = $Symbol(); - return $stringify([symbol]) != '[null]' || $stringify({ a: symbol }) != '{}' || $stringify(Object(symbol)) != '{}'; - }); - $({ - target: 'JSON', - stat: true, - forced: FORCED_JSON_STRINGIFY - }, { - stringify: function stringify(it, replacer, space) { - var args = [it]; - var index = 1; - var $replacer; - while (arguments.length > index) - args.push(arguments[index++]); - $replacer = replacer; - if (!isObject(replacer) && it === undefined || isSymbol(it)) - return; - if (!isArray(replacer)) - replacer = function (key, value) { - if (typeof $replacer == 'function') - value = $replacer.call(this, key, value); - if (!isSymbol(value)) - return value; - }; - args[1] = replacer; - return $stringify.apply(null, args); - } - }); -} -if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) { - createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -} -setToStringTag($Symbol, SYMBOL); -hiddenKeys[HIDDEN] = true; - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toIndexedObject = __w_pdfjs_require__(12); -var nativeGetOwnPropertyNames = __w_pdfjs_require__(39).f; -var toString = {}.toString; -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; -var getWindowNames = function (it) { - try { - return nativeGetOwnPropertyNames(it); - } catch (error) { - return windowNames.slice(); - } -}; -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it)); -}; - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var wellKnownSymbol = __w_pdfjs_require__(53); -exports.f = wellKnownSymbol; - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var path = __w_pdfjs_require__(38); -var has = __w_pdfjs_require__(18); -var wrappedWellKnownSymbolModule = __w_pdfjs_require__(162); -var defineProperty = __w_pdfjs_require__(22).f; -module.exports = function (NAME) { - var Symbol = path.Symbol || (path.Symbol = {}); - if (!has(Symbol, NAME)) - defineProperty(Symbol, NAME, { value: wrappedWellKnownSymbolModule.f(NAME) }); -}; - -/***/ }), -/* 164 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('asyncIterator'); - -/***/ }), -/* 165 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var DESCRIPTORS = __w_pdfjs_require__(8); -var global = __w_pdfjs_require__(6); -var has = __w_pdfjs_require__(18); -var isObject = __w_pdfjs_require__(17); -var defineProperty = __w_pdfjs_require__(22).f; -var copyConstructorProperties = __w_pdfjs_require__(35); -var NativeSymbol = global.Symbol; -if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || NativeSymbol().description !== undefined)) { - var EmptyStringDescriptionStore = {}; - var SymbolWrapper = function Symbol() { - var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]); - var result = this instanceof SymbolWrapper ? new NativeSymbol(description) : description === undefined ? NativeSymbol() : NativeSymbol(description); - if (description === '') - EmptyStringDescriptionStore[result] = true; - return result; - }; - copyConstructorProperties(SymbolWrapper, NativeSymbol); - var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype; - symbolPrototype.constructor = SymbolWrapper; - var symbolToString = symbolPrototype.toString; - var native = String(NativeSymbol('test')) == 'Symbol(test)'; - var regexp = /^Symbol\((.*)\)[^)]+$/; - defineProperty(symbolPrototype, 'description', { - configurable: true, - get: function description() { - var symbol = isObject(this) ? this.valueOf() : this; - var string = symbolToString.call(symbol); - if (has(EmptyStringDescriptionStore, symbol)) - return ''; - var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1'); - return desc === '' ? undefined : desc; - } - }); - $({ - global: true, - forced: true - }, { Symbol: SymbolWrapper }); -} - -/***/ }), -/* 166 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('hasInstance'); - -/***/ }), -/* 167 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('isConcatSpreadable'); - -/***/ }), -/* 168 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('iterator'); - -/***/ }), -/* 169 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('match'); - -/***/ }), -/* 170 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('matchAll'); - -/***/ }), -/* 171 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('replace'); - -/***/ }), -/* 172 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('search'); - -/***/ }), -/* 173 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('species'); - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('split'); - -/***/ }), -/* 175 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('toPrimitive'); - -/***/ }), -/* 176 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('toStringTag'); - -/***/ }), -/* 177 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var defineWellKnownSymbol = __w_pdfjs_require__(163); -defineWellKnownSymbol('unscopables'); - -/***/ }), -/* 178 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var setToStringTag = __w_pdfjs_require__(81); -setToStringTag(Math, 'Math', true); - -/***/ }), -/* 179 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var global = __w_pdfjs_require__(6); -var setToStringTag = __w_pdfjs_require__(81); -setToStringTag(global.JSON, 'JSON', true); - -/***/ }), -/* 180 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(181); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'padStart'); - -/***/ }), -/* 181 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var $padStart = __w_pdfjs_require__(182).start; -var WEBKIT_BUG = __w_pdfjs_require__(184); -$({ - target: 'String', - proto: true, - forced: WEBKIT_BUG -}, { - padStart: function padStart(maxLength) { - return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 182 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var toLength = __w_pdfjs_require__(42); -var repeat = __w_pdfjs_require__(183); -var requireObjectCoercible = __w_pdfjs_require__(15); -var ceil = Math.ceil; -var createMethod = function (IS_END) { - return function ($this, maxLength, fillString) { - var S = String(requireObjectCoercible($this)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - var fillLen, stringFiller; - if (intMaxLength <= stringLength || fillStr == '') - return S; - fillLen = intMaxLength - stringLength; - stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) - stringFiller = stringFiller.slice(0, fillLen); - return IS_END ? S + stringFiller : stringFiller + S; - }; -}; -module.exports = { - start: createMethod(false), - end: createMethod(true) -}; - -/***/ }), -/* 183 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var toInteger = __w_pdfjs_require__(43); -var requireObjectCoercible = __w_pdfjs_require__(15); -module.exports = ''.repeat || function repeat(count) { - var str = String(requireObjectCoercible(this)); - var result = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) - throw RangeError('Wrong number of repetitions'); - for (; n > 0; (n >>>= 1) && (str += str)) - if (n & 1) - result += str; - return result; -}; - -/***/ }), -/* 184 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var userAgent = __w_pdfjs_require__(119); -module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); - -/***/ }), -/* 185 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(186); -var entryUnbind = __w_pdfjs_require__(57); -module.exports = entryUnbind('String', 'padEnd'); - -/***/ }), -/* 186 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - -var $ = __w_pdfjs_require__(5); -var $padEnd = __w_pdfjs_require__(182).end; -var WEBKIT_BUG = __w_pdfjs_require__(184); -$({ - target: 'String', - proto: true, - forced: WEBKIT_BUG -}, { - padEnd: function padEnd(maxLength) { - return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 187 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -__w_pdfjs_require__(188); -var path = __w_pdfjs_require__(38); -module.exports = path.Object.values; - -/***/ }), -/* 188 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var $ = __w_pdfjs_require__(5); -var $values = __w_pdfjs_require__(189).values; -$({ - target: 'Object', - stat: true -}, { - values: function values(O) { - return $values(O); - } -}); - -/***/ }), -/* 189 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -var DESCRIPTORS = __w_pdfjs_require__(8); -var objectKeys = __w_pdfjs_require__(69); -var toIndexedObject = __w_pdfjs_require__(12); -var propertyIsEnumerable = __w_pdfjs_require__(10).f; -var createMethod = function (TO_ENTRIES) { - return function (it) { - var O = toIndexedObject(it); - var keys = objectKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) { - key = keys[i++]; - if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) { - result.push(TO_ENTRIES ? [ - key, - O[key] - ] : O[key]); - } - } - return result; - }; -}; -module.exports = { - entries: createMethod(true), - values: createMethod(false) -}; - -/***/ }), -/* 190 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.BaseSVGFactory = exports.BaseStandardFontDataFactory = exports.BaseCMapReaderFactory = exports.BaseCanvasFactory = void 0; + +var _util = __w_pdfjs_require__(2); + +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + } + } + + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + const canvas = this._createCanvas(width, height); + + return { + canvas, + context: canvas.getContext("2d") + }; + } + + reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; + } + + destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + + _createCanvas(width, height) { + (0, _util.unreachable)("Abstract method `_createCanvas` called."); + } + +} + +exports.BaseCanvasFactory = BaseCanvasFactory; + +class BaseCMapReaderFactory { + constructor({ + baseUrl = null, + isCompressed = false + }) { + if (this.constructor === BaseCMapReaderFactory) { + (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + } + + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + + async fetch({ + name + }) { + if (!this.baseUrl) { + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + } + + if (!name) { + throw new Error("CMap name must be specified."); + } + + const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); + const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + return this._fetchData(url, compressionType).catch(reason => { + throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); + }); + } + + _fetchData(url, compressionType) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } + +} + +exports.BaseCMapReaderFactory = BaseCMapReaderFactory; + +class BaseStandardFontDataFactory { + constructor({ + baseUrl = null + }) { + if (this.constructor === BaseStandardFontDataFactory) { + (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory."); + } + + this.baseUrl = baseUrl; + } + + async fetch({ + filename + }) { + if (!this.baseUrl) { + throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); + } + + if (!filename) { + throw new Error("Font filename must be specified."); + } + + const url = `${this.baseUrl}${filename}`; + return this._fetchData(url).catch(reason => { + throw new Error(`Unable to load font data at: ${url}`); + }); + } + + _fetchData(url) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } + +} + +exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory; + +class BaseSVGFactory { + constructor() { + if (this.constructor === BaseSVGFactory) { + (0, _util.unreachable)("Cannot initialize BaseSVGFactory."); + } + } + + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid SVG dimensions"); + } + + const svg = this._createSVG("svg:svg"); + + svg.setAttribute("version", "1.1"); + svg.setAttribute("width", `${width}px`); + svg.setAttribute("height", `${height}px`); + svg.setAttribute("preserveAspectRatio", "none"); + svg.setAttribute("viewBox", `0 0 ${width} ${height}`); + return svg; + } + + createElement(type) { + if (typeof type !== "string") { + throw new Error("Invalid SVG element type"); + } + + return this._createSVG(type); + } + + _createSVG(type) { + (0, _util.unreachable)("Abstract method `_createSVG` called."); + } + +} + +exports.BaseSVGFactory = BaseSVGFactory; + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.getDocument = getDocument; exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; -exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; +exports.version = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCMapReaderFactory = exports.DefaultCanvasFactory = exports.build = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -var _display_utils = __w_pdfjs_require__(194); +var _font_loader = __w_pdfjs_require__(7); -var _font_loader = __w_pdfjs_require__(195); +var _node_utils = __w_pdfjs_require__(8); -var _api_compatibility = __w_pdfjs_require__(196); +var _annotation_storage = __w_pdfjs_require__(9); -var _canvas = __w_pdfjs_require__(197); +var _canvas = __w_pdfjs_require__(10); -var _worker_options = __w_pdfjs_require__(199); +var _worker_options = __w_pdfjs_require__(12); -var _is_node = __w_pdfjs_require__(48); +var _is_node = __w_pdfjs_require__(4); -var _message_handler = __w_pdfjs_require__(200); +var _message_handler = __w_pdfjs_require__(13); -var _metadata = __w_pdfjs_require__(201); +var _metadata = __w_pdfjs_require__(14); -var _transport_stream = __w_pdfjs_require__(203); +var _optional_content_config = __w_pdfjs_require__(15); -var _webgl = __w_pdfjs_require__(204); +var _transport_stream = __w_pdfjs_require__(16); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var DEFAULT_RANGE_CHUNK_SIZE = 65536; -var RENDERING_CANCELLED_TIMEOUT = 100; -var createPDFNetworkStream; +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +const DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory; +exports.DefaultCanvasFactory = DefaultCanvasFactory; +const DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory; +exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; +const DefaultStandardFontDataFactory = _is_node.isNodeJS ? _node_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory; +exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory; +let createPDFNetworkStream; function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { createPDFNetworkStream = pdfNetworkStreamFactory; } function getDocument(src) { - var task = new PDFDocumentLoadingTask(); - var source; + const task = new PDFDocumentLoadingTask(); + let source; - if (typeof src === "string") { + if (typeof src === "string" || src instanceof URL) { source = { url: src }; @@ -10430,8 +1715,8 @@ function getDocument(src) { range: src }; } else { - if (_typeof(src) !== "object") { - throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter object"); + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, " + "need either string, URL, Uint8Array, or parameter object."); } if (!src.url && !src.data && !src.range) { @@ -10441,59 +1726,92 @@ function getDocument(src) { source = src; } - var params = Object.create(null); - var rangeTransport = null, + const params = Object.create(null); + let rangeTransport = null, worker = null; - for (var key in source) { - if (key === "url" && typeof window !== "undefined") { - params[key] = new URL(source[key], window.location).href; - continue; - } else if (key === "range") { - rangeTransport = source[key]; - continue; - } else if (key === "worker") { - worker = source[key]; - continue; - } else if (key === "data" && !(source[key] instanceof Uint8Array)) { - var pdfBytes = source[key]; + for (const key in source) { + const value = source[key]; - if (typeof pdfBytes === "string") { - params[key] = (0, _util.stringToBytes)(pdfBytes); - } else if (_typeof(pdfBytes) === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) { - params[key] = new Uint8Array(pdfBytes); - } else if ((0, _util.isArrayBuffer)(pdfBytes)) { - params[key] = new Uint8Array(pdfBytes); - } else { - throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is expected in the " + "data property."); - } + switch (key) { + case "url": + if (typeof window !== "undefined") { + try { + params[key] = new URL(value, window.location).href; + continue; + } catch (ex) { + (0, _util.warn)(`Cannot create valid URL: "${ex}".`); + } + } else if (typeof value === "string" || value instanceof URL) { + params[key] = value.toString(); + continue; + } - continue; + throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); + + case "range": + rangeTransport = value; + continue; + + case "worker": + worker = value; + continue; + + case "data": + if (_is_node.isNodeJS && typeof Buffer !== "undefined" && value instanceof Buffer) { + params[key] = new Uint8Array(value); + } else if (value instanceof Uint8Array) { + break; + } else if (typeof value === "string") { + params[key] = (0, _util.stringToBytes)(value); + } else if (typeof value === "object" && value !== null && !isNaN(value.length)) { + params[key] = new Uint8Array(value); + } else if ((0, _util.isArrayBuffer)(value)) { + params[key] = new Uint8Array(value); + } else { + throw new Error("Invalid PDF binary data: either typed array, " + "string, or array-like object is expected in the data property."); + } + + continue; } - params[key] = source[key]; + params[key] = value; } params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; - params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory; + params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; + params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory; params.ignoreErrors = params.stopAtErrors !== true; + params.fontExtraProperties = params.fontExtraProperties === true; params.pdfBug = params.pdfBug === true; - var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); + params.enableXfa = params.enableXfa === true; - if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { - params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; + if (typeof params.docBaseUrl !== "string" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) { + params.docBaseUrl = null; } if (!Number.isInteger(params.maxImageSize)) { params.maxImageSize = -1; } + if (typeof params.useWorkerFetch !== "boolean") { + params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory; + } + if (typeof params.isEvalSupported !== "boolean") { params.isEvalSupported = true; } if (typeof params.disableFontFace !== "boolean") { - params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; + params.disableFontFace = _is_node.isNodeJS; + } + + if (typeof params.useSystemFonts !== "boolean") { + params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace; + } + + if (typeof params.ownerDocument === "undefined") { + params.ownerDocument = globalThis.document; } if (typeof params.disableRange !== "boolean") { @@ -10508,14 +1826,10 @@ function getDocument(src) { params.disableAutoFetch = false; } - if (typeof params.disableCreateObjectURL !== "boolean") { - params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; - } - (0, _util.setVerbosityLevel)(params.verbosity); if (!worker) { - var workerParams = { + const workerParams = { verbosity: params.verbosity, port: _worker_options.GlobalWorkerOptions.workerPort }; @@ -10523,24 +1837,23 @@ function getDocument(src) { task._worker = worker; } - var docId = task.docId; + const docId = task.docId; worker.promise.then(function () { if (task.destroyed) { throw new Error("Loading aborted"); } - return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { - if (task.destroyed) { - throw new Error("Loading aborted"); - } + const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); - var networkStream; + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; if (rangeTransport) { networkStream = new _transport_stream.PDFDataTransportStream({ length: params.length, initialData: params.initialData, progressiveDone: params.progressiveDone, + contentDispositionFilename: params.contentDispositionFilename, disableRange: params.disableRange, disableStream: params.disableStream }, rangeTransport); @@ -10556,13 +1869,20 @@ function getDocument(src) { }); } - var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + resolve(networkStream); + }); + return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) { + if (task.destroyed) { + throw new Error("Loading aborted"); + } + + const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); messageHandler.postMessageTransfers = worker.postMessageTransfers; - var transport = new WorkerTransport(messageHandler, task, networkStream, params); + const transport = new WorkerTransport(messageHandler, task, networkStream, params); task._transport = transport; messageHandler.send("Ready", null); }); - })["catch"](task._capability.reject); + }).catch(task._capability.reject); return task; } @@ -10575,11 +1895,12 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { source.length = pdfDataRangeTransport.length; source.initialData = pdfDataRangeTransport.initialData; source.progressiveDone = pdfDataRangeTransport.progressiveDone; + source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; } return worker.messageHandler.sendWithPromise("GetDocRequest", { - docId: docId, - apiVersion: '2.4.456', + docId, + apiVersion: '2.10.377', source: { data: source.data, url: source.url, @@ -10590,12 +1911,15 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { }, maxImageSize: source.maxImageSize, disableFontFace: source.disableFontFace, - disableCreateObjectURL: source.disableCreateObjectURL, postMessageTransfers: worker.postMessageTransfers, docBaseUrl: source.docBaseUrl, - nativeImageDecoderSupport: source.nativeImageDecoderSupport, ignoreErrors: source.ignoreErrors, - isEvalSupported: source.isEvalSupported + isEvalSupported: source.isEvalSupported, + fontExtraProperties: source.fontExtraProperties, + enableXfa: source.enableXfa, + useSystemFonts: source.useSystemFonts, + cMapUrl: source.useWorkerFetch ? source.cMapUrl : null, + standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null }).then(function (workerId) { if (worker.destroyed) { throw new Error("Worker was destroyed"); @@ -10605,13 +1929,11 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { }); } -var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { - var nextDocumentId = 0; - - var PDFDocumentLoadingTask = /*#__PURE__*/function () { - function PDFDocumentLoadingTask() { - _classCallCheck(this, PDFDocumentLoadingTask); +const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + let nextDocumentId = 0; + class PDFDocumentLoadingTask { + constructor() { this._capability = (0, _util.createPromiseCapability)(); this._transport = null; this._worker = null; @@ -10622,50 +1944,35 @@ var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { this.onUnsupportedFeature = null; } - _createClass(PDFDocumentLoadingTask, [{ - key: "destroy", - value: function destroy() { - var _this = this; + get promise() { + return this._capability.promise; + } - this.destroyed = true; - var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); - return transportDestroyed.then(function () { - _this._transport = null; + destroy() { + this.destroyed = true; + const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(() => { + this._transport = null; - if (_this._worker) { - _this._worker.destroy(); + if (this._worker) { + this._worker.destroy(); - _this._worker = null; - } - }); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - throw new Error("Removed API method: " + "PDFDocumentLoadingTask.then, use the `promise` getter instead."); - } - }, { - key: "promise", - get: function get() { - return this._capability.promise; - } - }]); + this._worker = null; + } + }); + } - return PDFDocumentLoadingTask; - }(); + } return PDFDocumentLoadingTask; }(); -var PDFDataRangeTransport = /*#__PURE__*/function () { - function PDFDataRangeTransport(length, initialData) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataRangeTransport); - +class PDFDataRangeTransport { + constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) { this.length = length; this.initialData = initialData; this.progressiveDone = progressiveDone; + this.contentDispositionFilename = contentDispositionFilename; this._rangeListeners = []; this._progressListeners = []; this._progressiveReadListeners = []; @@ -10673,312 +1980,224 @@ var PDFDataRangeTransport = /*#__PURE__*/function () { this._readyCapability = (0, _util.createPromiseCapability)(); } - _createClass(PDFDataRangeTransport, [{ - key: "addRangeListener", - value: function addRangeListener(listener) { - this._rangeListeners.push(listener); - } - }, { - key: "addProgressListener", - value: function addProgressListener(listener) { - this._progressListeners.push(listener); - } - }, { - key: "addProgressiveReadListener", - value: function addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - } - }, { - key: "addProgressiveDoneListener", - value: function addProgressiveDoneListener(listener) { - this._progressiveDoneListeners.push(listener); - } - }, { - key: "onDataRange", - value: function onDataRange(begin, chunk) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + addRangeListener(listener) { + this._rangeListeners.push(listener); + } - try { - for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var listener = _step.value; - listener(begin, chunk); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + addProgressListener(listener) { + this._progressListeners.push(listener); + } + + addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + } + + addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); + } + + onDataRange(begin, chunk) { + for (const listener of this._rangeListeners) { + listener(begin, chunk); + } + } + + onDataProgress(loaded, total) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressListeners) { + listener(loaded, total); } - } - }, { - key: "onDataProgress", - value: function onDataProgress(loaded, total) { - var _this2 = this; + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); + } + }); + } - try { - for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var listener = _step2.value; - listener(loaded, total); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }); - } - }, { - key: "onDataProgressiveRead", - value: function onDataProgressiveRead(chunk) { - var _this3 = this; + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); + } + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + transportReady() { + this._readyCapability.resolve(); + } - try { - for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var listener = _step3.value; - listener(chunk); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - }); - } - }, { - key: "onDataProgressiveDone", - value: function onDataProgressiveDone() { - var _this4 = this; + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; + abort() {} - try { - for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var listener = _step4.value; - listener(); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - }); - } - }, { - key: "transportReady", - value: function transportReady() { - this._readyCapability.resolve(); - } - }, { - key: "requestDataRange", - value: function requestDataRange(begin, end) { - (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); - } - }, { - key: "abort", - value: function abort() {} - }]); - - return PDFDataRangeTransport; -}(); +} exports.PDFDataRangeTransport = PDFDataRangeTransport; -var PDFDocumentProxy = /*#__PURE__*/function () { - function PDFDocumentProxy(pdfInfo, transport) { - _classCallCheck(this, PDFDocumentProxy); - +class PDFDocumentProxy { + constructor(pdfInfo, transport) { this._pdfInfo = pdfInfo; this._transport = transport; + Object.defineProperty(this, "fingerprint", { + get() { + (0, _display_utils.deprecated)("`PDFDocumentProxy.fingerprint`, " + "please use `PDFDocumentProxy.fingerprints` instead."); + return this.fingerprints[0]; + } + + }); } - _createClass(PDFDocumentProxy, [{ - key: "getPage", - value: function getPage(pageNumber) { - return this._transport.getPage(pageNumber); - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this._transport.getPageIndex(ref); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this._transport.getDestinations(); - } - }, { - key: "getDestination", - value: function getDestination(id) { - return this._transport.getDestination(id); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this._transport.getPageLabels(); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this._transport.getPageLayout(); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this._transport.getPageMode(); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this._transport.getViewerPreferences(); - } - }, { - key: "getOpenAction", - value: function getOpenAction() { - return this._transport.getOpenAction(); - } - }, { - key: "getOpenActionDestination", - value: function getOpenActionDestination() { - (0, _display_utils.deprecated)("getOpenActionDestination, use getOpenAction instead."); - return this.getOpenAction().then(function (openAction) { - return openAction && openAction.dest ? openAction.dest : null; - }); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this._transport.getAttachments(); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this._transport.getJavaScript(); - } - }, { - key: "getOutline", - value: function getOutline() { - return this._transport.getOutline(); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this._transport.getPermissions(); - } - }, { - key: "getMetadata", - value: function getMetadata() { - return this._transport.getMetadata(); - } - }, { - key: "getData", - value: function getData() { - return this._transport.getData(); - } - }, { - key: "getDownloadInfo", - value: function getDownloadInfo() { - return this._transport.downloadInfoCapability.promise; - } - }, { - key: "getStats", - value: function getStats() { - return this._transport.getStats(); - } - }, { - key: "cleanup", - value: function cleanup() { - return this._transport.startCleanup(); - } - }, { - key: "destroy", - value: function destroy() { - return this.loadingTask.destroy(); - } - }, { - key: "numPages", - get: function get() { - return this._pdfInfo.numPages; - } - }, { - key: "fingerprint", - get: function get() { - return this._pdfInfo.fingerprint; - } - }, { - key: "loadingParams", - get: function get() { - return this._transport.loadingParams; - } - }, { - key: "loadingTask", - get: function get() { - return this._transport.loadingTask; - } - }]); + get annotationStorage() { + return this._transport.annotationStorage; + } - return PDFDocumentProxy; -}(); + get numPages() { + return this._pdfInfo.numPages; + } + + get fingerprints() { + return this._pdfInfo.fingerprints; + } + + get isPureXfa() { + return !!this._transport._htmlForXfa; + } + + get allXfaHtml() { + return this._transport._htmlForXfa; + } + + getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + + getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + + getDestinations() { + return this._transport.getDestinations(); + } + + getDestination(id) { + return this._transport.getDestination(id); + } + + getPageLabels() { + return this._transport.getPageLabels(); + } + + getPageLayout() { + return this._transport.getPageLayout(); + } + + getPageMode() { + return this._transport.getPageMode(); + } + + getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + + getOpenAction() { + return this._transport.getOpenAction(); + } + + getAttachments() { + return this._transport.getAttachments(); + } + + getJavaScript() { + return this._transport.getJavaScript(); + } + + getJSActions() { + return this._transport.getDocJSActions(); + } + + getOutline() { + return this._transport.getOutline(); + } + + getOptionalContentConfig() { + return this._transport.getOptionalContentConfig(); + } + + getPermissions() { + return this._transport.getPermissions(); + } + + getMetadata() { + return this._transport.getMetadata(); + } + + getMarkInfo() { + return this._transport.getMarkInfo(); + } + + getData() { + return this._transport.getData(); + } + + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + + getStats() { + return this._transport.getStats(); + } + + cleanup(keepLoadedFonts = false) { + return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); + } + + destroy() { + return this.loadingTask.destroy(); + } + + get loadingParams() { + return this._transport.loadingParams; + } + + get loadingTask() { + return this._transport.loadingTask; + } + + saveDocument() { + if (this._transport.annotationStorage.size <= 0) { + (0, _display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); + } + + return this._transport.saveDocument(); + } + + getFieldObjects() { + return this._transport.getFieldObjects(); + } + + hasJSActions() { + return this._transport.hasJSActions(); + } + + getCalculationOrderIds() { + return this._transport.getCalculationOrderIds(); + } + +} exports.PDFDocumentProxy = PDFDocumentProxy; -var PDFPageProxy = /*#__PURE__*/function () { - function PDFPageProxy(pageIndex, pageInfo, transport) { - var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - _classCallCheck(this, PDFPageProxy); - +class PDFPageProxy { + constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) { this._pageIndex = pageIndex; this._pageInfo = pageInfo; + this._ownerDocument = ownerDocument; this._transport = transport; this._stats = pdfBug ? new _display_utils.StatTimer() : null; this._pdfBug = pdfBug; @@ -10986,669 +2205,637 @@ var PDFPageProxy = /*#__PURE__*/function () { this.objs = new PDFObjects(); this.cleanupAfterRender = false; this.pendingCleanup = false; - this.intentStates = Object.create(null); + this._intentStates = new Map(); this.destroyed = false; } - _createClass(PDFPageProxy, [{ - key: "getViewport", - value: function getViewport() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - scale = _ref.scale, - _ref$rotation = _ref.rotation, - rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, - _ref$offsetX = _ref.offsetX, - offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX, - _ref$offsetY = _ref.offsetY, - offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY, - _ref$dontFlip = _ref.dontFlip, - dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; + get pageNumber() { + return this._pageIndex + 1; + } - if (arguments.length > 1 || typeof arguments[0] === "number") { - throw new Error("PDFPageProxy.getViewport is called with obsolete arguments."); - } + get rotate() { + return this._pageInfo.rotate; + } - return new _display_utils.PageViewport({ - viewBox: this.view, - scale: scale, - rotation: rotation, - offsetX: offsetX, - offsetY: offsetY, - dontFlip: dontFlip - }); + get ref() { + return this._pageInfo.ref; + } + + get userUnit() { + return this._pageInfo.userUnit; + } + + get view() { + return this._pageInfo.view; + } + + getViewport({ + scale, + rotation = this.rotate, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = {}) { + return new _display_utils.PageViewport({ + viewBox: this.view, + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + getAnnotations({ + intent = null + } = {}) { + const renderingIntent = intent === "display" || intent === "print" ? intent : null; + + if (!this._annotationsPromise || this._annotationsIntent !== renderingIntent) { + this._annotationsPromise = this._transport.getAnnotations(this._pageIndex, renderingIntent); + this._annotationsIntent = renderingIntent; } - }, { - key: "getAnnotations", - value: function getAnnotations() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref2$intent = _ref2.intent, - intent = _ref2$intent === void 0 ? null : _ref2$intent; - if (!this.annotationsPromise || this.annotationsIntent !== intent) { - this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent); - this.annotationsIntent = intent; - } + return this._annotationsPromise; + } - return this.annotationsPromise; + getJSActions() { + return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex)); + } + + async getXfa() { + return this._transport._htmlForXfa?.children[this._pageIndex] || null; + } + + render({ + canvasContext, + viewport, + intent = "display", + renderInteractiveForms = false, + transform = null, + imageLayer = null, + canvasFactory = null, + background = null, + includeAnnotationStorage = false, + optionalContentConfigPromise = null + }) { + var _intentState; + + if (this._stats) { + this._stats.time("Overall"); } - }, { - key: "render", - value: function render(_ref3) { - var _this5 = this; - var canvasContext = _ref3.canvasContext, - viewport = _ref3.viewport, - _ref3$intent = _ref3.intent, - intent = _ref3$intent === void 0 ? "display" : _ref3$intent, - _ref3$enableWebGL = _ref3.enableWebGL, - enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, - _ref3$renderInteracti = _ref3.renderInteractiveForms, - renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, - _ref3$transform = _ref3.transform, - transform = _ref3$transform === void 0 ? null : _ref3$transform, - _ref3$imageLayer = _ref3.imageLayer, - imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, - _ref3$canvasFactory = _ref3.canvasFactory, - canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, - _ref3$background = _ref3.background, - background = _ref3$background === void 0 ? null : _ref3$background; + const renderingIntent = intent === "print" ? "print" : "display"; + this.pendingCleanup = false; - if (this._stats) { - this._stats.time("Overall"); - } + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); + } - var renderingIntent = intent === "print" ? "print" : "display"; - this.pendingCleanup = false; + let intentState = this._intentStates.get(renderingIntent); - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } + if (!intentState) { + intentState = Object.create(null); - var intentState = this.intentStates[renderingIntent]; + this._intentStates.set(renderingIntent, intentState); + } - if (intentState.streamReaderCancelTimeout) { - clearTimeout(intentState.streamReaderCancelTimeout); - intentState.streamReaderCancelTimeout = null; - } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } - var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory(); - var webGLContext = new _webgl.WebGLContext({ - enable: enableWebGL - }); + const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ + ownerDocument: this._ownerDocument + }); + const annotationStorage = includeAnnotationStorage ? this._transport.annotationStorage.serializable : null; - if (!intentState.displayReadyCapability) { - intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - if (this._stats) { - this._stats.time("Page Request"); - } - - this._pumpOperatorList({ - pageIndex: this._pageIndex, - intent: renderingIntent, - renderInteractiveForms: renderInteractiveForms === true - }); - } - - var complete = function complete(error) { - var i = intentState.renderTasks.indexOf(internalRenderTask); - - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - - if (_this5.cleanupAfterRender || renderingIntent === "print") { - _this5.pendingCleanup = true; - } - - _this5._tryCleanup(); - - if (error) { - internalRenderTask.capability.reject(error); - - _this5._abortOperatorList({ - intentState: intentState, - reason: error - }); - } else { - internalRenderTask.capability.resolve(); - } - - if (_this5._stats) { - _this5._stats.timeEnd("Rendering"); - - _this5._stats.timeEnd("Overall"); - } + if (!intentState.displayReadyCapability) { + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false }; - var internalRenderTask = new InternalRenderTask({ - callback: complete, - params: { - canvasContext: canvasContext, - viewport: viewport, - transform: transform, - imageLayer: imageLayer, - background: background - }, - objs: this.objs, - commonObjs: this.commonObjs, - operatorList: intentState.operatorList, + if (this._stats) { + this._stats.time("Page Request"); + } + + this._pumpOperatorList({ pageIndex: this._pageIndex, - canvasFactory: canvasFactoryInstance, - webGLContext: webGLContext, - useRequestAnimationFrame: renderingIntent !== "print", - pdfBug: this._pdfBug + intent: renderingIntent, + renderInteractiveForms: renderInteractiveForms === true, + annotationStorage }); - - if (!intentState.renderTasks) { - intentState.renderTasks = []; - } - - intentState.renderTasks.push(internalRenderTask); - var renderTask = internalRenderTask.task; - intentState.displayReadyCapability.promise.then(function (transparency) { - if (_this5.pendingCleanup) { - complete(); - return; - } - - if (_this5._stats) { - _this5._stats.time("Rendering"); - } - - internalRenderTask.initializeGraphics(transparency); - internalRenderTask.operatorListChanged(); - })["catch"](complete); - return renderTask; } - }, { - key: "getOperatorList", - value: function getOperatorList() { - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - var i = intentState.renderTasks.indexOf(opListTask); - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - } + const complete = error => { + intentState.renderTasks.delete(internalRenderTask); + + if (this.cleanupAfterRender || renderingIntent === "print") { + this.pendingCleanup = true; } - var renderingIntent = "oplist"; + this._tryCleanup(); - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } + if (error) { + internalRenderTask.capability.reject(error); - var intentState = this.intentStates[renderingIntent]; - var opListTask; - - if (!intentState.opListReadCapability) { - opListTask = {}; - opListTask.operatorListChanged = operatorListChanged; - intentState.opListReadCapability = (0, _util.createPromiseCapability)(); - intentState.renderTasks = []; - intentState.renderTasks.push(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - if (this._stats) { - this._stats.time("Page Request"); - } - - this._pumpOperatorList({ - pageIndex: this._pageIndex, - intent: renderingIntent + this._abortOperatorList({ + intentState, + reason: error }); + } else { + internalRenderTask.capability.resolve(); } - return intentState.opListReadCapability.promise; - } - }, { - key: "streamTextContent", - value: function streamTextContent() { - var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref4$normalizeWhites = _ref4.normalizeWhitespace, - normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, - _ref4$disableCombineT = _ref4.disableCombineTextItems, - disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; + if (this._stats) { + this._stats.timeEnd("Rendering"); - var TEXT_CONTENT_CHUNK_SIZE = 100; - return this._transport.messageHandler.sendWithStream("GetTextContent", { - pageIndex: this._pageIndex, - normalizeWhitespace: normalizeWhitespace === true, - combineTextItems: disableCombineTextItems !== true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size: function size(textContent) { - return textContent.items.length; - } - }); - } - }, { - key: "getTextContent", - value: function getTextContent() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function (_ref5) { - var _textContent$items; - - var value = _ref5.value, - done = _ref5.done; - - if (done) { - resolve(textContent); - return; - } - - Object.assign(textContent.styles, value.styles); - - (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); - - pump(); - }, reject); - } - - var reader = readableStream.getReader(); - var textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); - } - }, { - key: "_destroy", - value: function _destroy() { - var _this6 = this; - - this.destroyed = true; - this._transport.pageCache[this._pageIndex] = null; - var waitOn = []; - Object.keys(this.intentStates).forEach(function (intent) { - var intentState = _this6.intentStates[intent]; - - _this6._abortOperatorList({ - intentState: intentState, - reason: new Error("Page was destroyed."), - force: true - }); - - if (intent === "oplist") { - return; - } - - intentState.renderTasks.forEach(function (renderTask) { - var renderCompleted = renderTask.capability.promise["catch"](function () {}); - waitOn.push(renderCompleted); - renderTask.cancel(); - }); - }); - this.objs.clear(); - this.annotationsPromise = null; - this.pendingCleanup = false; - return Promise.all(waitOn); - } - }, { - key: "cleanup", - value: function cleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.pendingCleanup = true; - return this._tryCleanup(resetStats); - } - }, { - key: "_tryCleanup", - value: function _tryCleanup() { - var _this7 = this; - - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { - var intentState = _this7.intentStates[intent]; - return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk; - })) { - return false; + this._stats.timeEnd("Overall"); } + }; - Object.keys(this.intentStates).forEach(function (intent) { - delete _this7.intentStates[intent]; - }); - this.objs.clear(); - this.annotationsPromise = null; - - if (resetStats && this._stats) { - this._stats = new _display_utils.StatTimer(); - } - - this.pendingCleanup = false; - return true; - } - }, { - key: "_startRenderPage", - value: function _startRenderPage(transparency, intent) { - var intentState = this.intentStates[intent]; - - if (!intentState) { + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + imageLayer, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: canvasFactoryInstance, + useRequestAnimationFrame: renderingIntent !== "print", + pdfBug: this._pdfBug + }); + ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => { + if (this.pendingCleanup) { + complete(); return; } if (this._stats) { - this._stats.timeEnd("Page Request"); + this._stats.time("Rendering"); } - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } + + getOperatorList({ + intent = "display" + } = {}) { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + intentState.renderTasks.delete(opListTask); } } - }, { - key: "_renderPageChunk", - value: function _renderPageChunk(operatorListChunk, intentState) { - for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); - } - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + const renderingIntent = `oplist-${intent === "print" ? "print" : "display"}`; - for (var _i = 0; _i < intentState.renderTasks.length; _i++) { - intentState.renderTasks[_i].operatorListChanged(); - } + let intentState = this._intentStates.get(renderingIntent); - if (operatorListChunk.lastChunk) { - this._tryCleanup(); - } + if (!intentState) { + intentState = Object.create(null); + + this._intentStates.set(renderingIntent, intentState); } - }, { - key: "_pumpOperatorList", - value: function _pumpOperatorList(args) { - var _this8 = this; - (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.'); + let opListTask; - var readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args); + if (!intentState.opListReadCapability) { + var _intentState2; - var reader = readableStream.getReader(); - var intentState = this.intentStates[args.intent]; - intentState.streamReader = reader; + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; - var pump = function pump() { - reader.read().then(function (_ref6) { - var value = _ref6.value, - done = _ref6.done; + if (this._stats) { + this._stats.time("Page Request"); + } + this._pumpOperatorList({ + pageIndex: this._pageIndex, + intent: renderingIntent + }); + } + + return intentState.opListReadCapability.promise; + } + + streamTextContent({ + normalizeWhitespace = false, + disableCombineTextItems = false, + includeMarkedContent = false + } = {}) { + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + normalizeWhitespace: normalizeWhitespace === true, + combineTextItems: disableCombineTextItems !== true, + includeMarkedContent: includeMarkedContent === true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + + size(textContent) { + return textContent.items.length; + } + + }); + } + + getTextContent(params = {}) { + const readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function ({ + value, + done + }) { if (done) { - intentState.streamReader = null; + resolve(textContent); return; } - if (_this8._transport.destroyed) { - return; - } - - _this8._renderPageChunk(value, intentState); - + Object.assign(textContent.styles, value.styles); + textContent.items.push(...value.items); pump(); - }, function (reason) { - intentState.streamReader = null; + }, reject); + } - if (_this8._transport.destroyed) { - return; - } - - if (intentState.operatorList) { - intentState.operatorList.lastChunk = true; - - for (var i = 0; i < intentState.renderTasks.length; i++) { - intentState.renderTasks[i].operatorListChanged(); - } - - _this8._tryCleanup(); - } - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(reason); - } else if (intentState.opListReadCapability) { - intentState.opListReadCapability.reject(reason); - } else { - throw reason; - } - }); + const reader = readableStream.getReader(); + const textContent = { + items: [], + styles: Object.create(null) }; - pump(); - } - }, { - key: "_abortOperatorList", - value: function _abortOperatorList(_ref7) { - var _this9 = this; + }); + } - var intentState = _ref7.intentState, - reason = _ref7.reason, - _ref7$force = _ref7.force, - force = _ref7$force === void 0 ? false : _ref7$force; - (0, _util.assert)(reason instanceof Error || _typeof(reason) === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.'); + getStructTree() { + return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex)); + } - if (!intentState.streamReader) { - return; - } + _destroy() { + this.destroyed = true; + this._transport.pageCache[this._pageIndex] = null; + const waitOn = []; - if (!force) { - if (intentState.renderTasks.length !== 0) { - return; - } - - if (reason instanceof _display_utils.RenderingCancelledException) { - intentState.streamReaderCancelTimeout = setTimeout(function () { - _this9._abortOperatorList({ - intentState: intentState, - reason: reason, - force: true - }); - - intentState.streamReaderCancelTimeout = null; - }, RENDERING_CANCELLED_TIMEOUT); - return; - } - } - - intentState.streamReader.cancel(new _util.AbortException(reason && reason.message)); - intentState.streamReader = null; - - if (this._transport.destroyed) { - return; - } - - Object.keys(this.intentStates).some(function (intent) { - if (_this9.intentStates[intent] === intentState) { - delete _this9.intentStates[intent]; - return true; - } - - return false; + for (const [intent, intentState] of this._intentStates) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true }); - this.cleanup(); - } - }, { - key: "pageNumber", - get: function get() { - return this._pageIndex + 1; - } - }, { - key: "rotate", - get: function get() { - return this._pageInfo.rotate; - } - }, { - key: "ref", - get: function get() { - return this._pageInfo.ref; - } - }, { - key: "userUnit", - get: function get() { - return this._pageInfo.userUnit; - } - }, { - key: "view", - get: function get() { - return this._pageInfo.view; - } - }, { - key: "stats", - get: function get() { - return this._stats; - } - }]); - return PDFPageProxy; -}(); + if (intent.startsWith("oplist-")) { + continue; + } + + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); + } + } + + this.objs.clear(); + this._annotationsPromise = null; + this._jsActionsPromise = null; + this._structTreePromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + } + + cleanup(resetStats = false) { + this.pendingCleanup = true; + return this._tryCleanup(resetStats); + } + + _tryCleanup(resetStats = false) { + if (!this.pendingCleanup) { + return false; + } + + for (const { + renderTasks, + operatorList + } of this._intentStates.values()) { + if (renderTasks.size > 0 || !operatorList.lastChunk) { + return false; + } + } + + this._intentStates.clear(); + + this.objs.clear(); + this._annotationsPromise = null; + this._jsActionsPromise = null; + this._structTreePromise = null; + + if (resetStats && this._stats) { + this._stats = new _display_utils.StatTimer(); + } + + this.pendingCleanup = false; + return true; + } + + _startRenderPage(transparency, intent) { + const intentState = this._intentStates.get(intent); + + if (!intentState) { + return; + } + + if (this._stats) { + this._stats.timeEnd("Page Request"); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + } + + _renderPageChunk(operatorListChunk, intentState) { + for (let i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + + if (operatorListChunk.lastChunk) { + this._tryCleanup(); + } + } + + _pumpOperatorList(args) { + (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.'); + + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args); + + const reader = readableStream.getReader(); + + const intentState = this._intentStates.get(args.intent); + + intentState.streamReader = reader; + + const pump = () => { + reader.read().then(({ + value, + done + }) => { + if (done) { + intentState.streamReader = null; + return; + } + + if (this._transport.destroyed) { + return; + } + + this._renderPageChunk(value, intentState); + + pump(); + }, reason => { + intentState.streamReader = null; + + if (this._transport.destroyed) { + return; + } + + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + + this._tryCleanup(); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + + pump(); + } + + _abortOperatorList({ + intentState, + reason, + force = false + }) { + (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.'); + + if (!intentState.streamReader) { + return; + } + + if (!force) { + if (intentState.renderTasks.size > 0) { + return; + } + + if (reason instanceof _display_utils.RenderingCancelledException) { + intentState.streamReaderCancelTimeout = setTimeout(() => { + this._abortOperatorList({ + intentState, + reason, + force: true + }); + + intentState.streamReaderCancelTimeout = null; + }, RENDERING_CANCELLED_TIMEOUT); + return; + } + } + + intentState.streamReader.cancel(new _util.AbortException(reason?.message)); + intentState.streamReader = null; + + if (this._transport.destroyed) { + return; + } + + for (const [intent, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(intent); + + break; + } + } + + this.cleanup(); + } + + get stats() { + return this._stats; + } + +} exports.PDFPageProxy = PDFPageProxy; -var LoopbackPort = /*#__PURE__*/function () { - function LoopbackPort() { - var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - _classCallCheck(this, LoopbackPort); - +class LoopbackPort { + constructor() { this._listeners = []; - this._defer = defer; this._deferred = Promise.resolve(undefined); } - _createClass(LoopbackPort, [{ - key: "postMessage", - value: function postMessage(obj, transfers) { - var _this10 = this; + postMessage(obj, transfers) { + function cloneValue(value) { + if (typeof value === "function" || typeof value === "symbol" || value instanceof URL) { + throw new Error(`LoopbackPort.postMessage - cannot clone: ${value?.toString()}`); + } - function cloneValue(value) { - if (_typeof(value) !== "object" || value === null) { - return value; + if (typeof value !== "object" || value === null) { + return value; + } + + if (cloned.has(value)) { + return cloned.get(value); + } + + let buffer, result; + + if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { + if (transfers?.includes(buffer)) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); } - if (cloned.has(value)) { - return cloned.get(value); - } + cloned.set(value, result); + return result; + } - var buffer, result; - - if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { - var transferable = transfers && transfers.includes(buffer); - - if (transferable) { - result = new value.constructor(buffer, value.byteOffset, value.byteLength); - } else { - result = new value.constructor(value); - } - - cloned.set(value, result); - return result; - } - - result = Array.isArray(value) ? [] : {}; + if (value instanceof Map) { + result = new Map(); cloned.set(value, result); - for (var i in value) { - var desc = void 0, - p = value; - - while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { - p = Object.getPrototypeOf(p); - } - - if (typeof desc.value === "undefined") { - continue; - } - - if (typeof desc.value === "function") { - if (value.hasOwnProperty && value.hasOwnProperty(i)) { - throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(value[i])); - } - - continue; - } - - result[i] = cloneValue(desc.value); + for (const [key, val] of value) { + result.set(key, cloneValue(val)); } return result; } - if (!this._defer) { - this._listeners.forEach(function (listener) { - listener.call(_this10, { - data: obj - }); - }); + if (value instanceof Set) { + result = new Set(); + cloned.set(value, result); - return; + for (const val of value) { + result.add(cloneValue(val)); + } + + return result; } - var cloned = new WeakMap(); - var e = { - data: cloneValue(obj) - }; + result = Array.isArray(value) ? [] : Object.create(null); + cloned.set(value, result); - this._deferred.then(function () { - _this10._listeners.forEach(function (listener) { - listener.call(_this10, e); - }); - }); - } - }, { - key: "addEventListener", - value: function addEventListener(name, listener) { - this._listeners.push(listener); - } - }, { - key: "removeEventListener", - value: function removeEventListener(name, listener) { - var i = this._listeners.indexOf(listener); + for (const i in value) { + let desc, + p = value; - this._listeners.splice(i, 1); - } - }, { - key: "terminate", - value: function terminate() { - this._listeners.length = 0; - } - }]); + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } - return LoopbackPort; -}(); + if (typeof desc.value === "undefined") { + continue; + } + + if (typeof desc.value === "function" && !value.hasOwnProperty?.(i)) { + continue; + } + + result[i] = cloneValue(desc.value); + } + + return result; + } + + const cloned = new WeakMap(); + const event = { + data: cloneValue(obj) + }; + + this._deferred.then(() => { + for (const listener of this._listeners) { + listener.call(this, event); + } + }); + } + + addEventListener(name, listener) { + this._listeners.push(listener); + } + + removeEventListener(name, listener) { + const i = this._listeners.indexOf(listener); + + this._listeners.splice(i, 1); + } + + terminate() { + this._listeners.length = 0; + } + +} exports.LoopbackPort = LoopbackPort; -var PDFWorker = function PDFWorkerClosure() { - var pdfWorkerPorts = new WeakMap(); - var isWorkerDisabled = false; - var fallbackWorkerSrc; - var nextFakeWorkerId = 0; - var fakeWorkerCapability; +const PDFWorker = function PDFWorkerClosure() { + const pdfWorkerPorts = new WeakMap(); + let isWorkerDisabled = false; + let fallbackWorkerSrc; + let nextFakeWorkerId = 0; + let fakeWorkerCapability; if (_is_node.isNodeJS && typeof require === "function") { isWorkerDisabled = true; fallbackWorkerSrc = "./pdf.worker.js"; - } else if ((typeof document === "undefined" ? "undefined" : _typeof(document)) === "object" && "currentScript" in document) { - var pdfjsFilePath = document.currentScript && document.currentScript.src; + } else if (typeof document === "object" && "currentScript" in document) { + const pdfjsFilePath = document.currentScript?.src; if (pdfjsFilePath) { fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); } } - function _getWorkerSrc() { + function getWorkerSrc() { if (_worker_options.GlobalWorkerOptions.workerSrc) { return _worker_options.GlobalWorkerOptions.workerSrc; } @@ -11665,10 +2852,10 @@ var PDFWorker = function PDFWorkerClosure() { } function getMainThreadWorkerMessageHandler() { - var mainWorkerMessageHandler; + let mainWorkerMessageHandler; try { - mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler; + mainWorkerMessageHandler = globalThis.pdfjsWorker?.WorkerMessageHandler; } catch (ex) {} return mainWorkerMessageHandler || null; @@ -11681,72 +2868,37 @@ var PDFWorker = function PDFWorkerClosure() { fakeWorkerCapability = (0, _util.createPromiseCapability)(); - var loader = /*#__PURE__*/function () { - var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var mainWorkerMessageHandler, worker; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); + const loader = async function () { + const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); - if (!mainWorkerMessageHandler) { - _context.next = 3; - break; - } + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; + } - return _context.abrupt("return", mainWorkerMessageHandler); + if (_is_node.isNodeJS && typeof require === "function") { + const worker = eval("require")(getWorkerSrc()); + return worker.WorkerMessageHandler; + } - case 3: - if (!(_is_node.isNodeJS && typeof require === "function")) { - _context.next = 6; - break; - } - - worker = eval("require")(_getWorkerSrc()); - return _context.abrupt("return", worker.WorkerMessageHandler); - - case 6: - _context.next = 8; - return (0, _display_utils.loadScript)(_getWorkerSrc()); - - case 8: - return _context.abrupt("return", window.pdfjsWorker.WorkerMessageHandler); - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function loader() { - return _ref8.apply(this, arguments); - }; - }(); + await (0, _display_utils.loadScript)(getWorkerSrc()); + return window.pdfjsWorker.WorkerMessageHandler; + }; loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject); return fakeWorkerCapability.promise; } function createCDNWrapper(url) { - var wrapper = "importScripts('" + url + "');"; + const wrapper = "importScripts('" + url + "');"; return URL.createObjectURL(new Blob([wrapper])); } - var PDFWorker = /*#__PURE__*/function () { - function PDFWorker() { - var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref9$name = _ref9.name, - name = _ref9$name === void 0 ? null : _ref9$name, - _ref9$port = _ref9.port, - port = _ref9$port === void 0 ? null : _ref9$port, - _ref9$verbosity = _ref9.verbosity, - verbosity = _ref9$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref9$verbosity; - - _classCallCheck(this, PDFWorker); - + class PDFWorker { + constructor({ + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = {}) { if (port && pdfWorkerPorts.has(port)) { throw new Error("Cannot use more than one PDFWorker per port"); } @@ -11771,229 +2923,220 @@ var PDFWorker = function PDFWorkerClosure() { this._initialize(); } - _createClass(PDFWorker, [{ - key: "_initializeFromPort", - value: function _initializeFromPort(port) { - this._port = port; - this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); + get promise() { + return this._readyCapability.promise; + } - this._messageHandler.on("ready", function () {}); + get port() { + return this._port; + } - this._readyCapability.resolve(); - } - }, { - key: "_initialize", - value: function _initialize() { - var _this11 = this; + get messageHandler() { + return this._messageHandler; + } - if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { - var workerSrc = _getWorkerSrc(); + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); - try { - if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { - workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + this._messageHandler.on("ready", function () {}); + + this._readyCapability.resolve(); + } + + _initialize() { + if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { + let workerSrc = getWorkerSrc(); + + try { + if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + } + + const worker = new Worker(workerSrc); + const messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + + const terminateEarly = () => { + worker.removeEventListener("error", onWorkerError); + messageHandler.destroy(); + worker.terminate(); + + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + } else { + this._setupFakeWorker(); + } + }; + + const onWorkerError = () => { + if (!this._webWorker) { + terminateEarly(); + } + }; + + worker.addEventListener("error", onWorkerError); + messageHandler.on("test", data => { + worker.removeEventListener("error", onWorkerError); + + if (this.destroyed) { + terminateEarly(); + return; } - var worker = new Worker(workerSrc); - var messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + + if (!data.supportTransfers) { + this.postMessageTransfers = false; + } + + this._readyCapability.resolve(); + + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); - var terminateEarly = function terminateEarly() { - worker.removeEventListener("error", onWorkerError); messageHandler.destroy(); worker.terminate(); - - if (_this11.destroyed) { - _this11._readyCapability.reject(new Error("Worker was destroyed")); - } else { - _this11._setupFakeWorker(); - } - }; - - var onWorkerError = function onWorkerError() { - if (!_this11._webWorker) { - terminateEarly(); - } - }; - - worker.addEventListener("error", onWorkerError); - messageHandler.on("test", function (data) { - worker.removeEventListener("error", onWorkerError); - - if (_this11.destroyed) { - terminateEarly(); - return; - } - - if (data) { - _this11._messageHandler = messageHandler; - _this11._port = worker; - _this11._webWorker = worker; - - if (!data.supportTransfers) { - _this11.postMessageTransfers = false; - } - - _this11._readyCapability.resolve(); - - messageHandler.send("configure", { - verbosity: _this11.verbosity - }); - } else { - _this11._setupFakeWorker(); - - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on("ready", function (data) { - worker.removeEventListener("error", onWorkerError); - - if (_this11.destroyed) { - terminateEarly(); - return; - } - - try { - sendTest(); - } catch (e) { - _this11._setupFakeWorker(); - } - }); - - var sendTest = function sendTest() { - var testObj = new Uint8Array([_this11.postMessageTransfers ? 255 : 0]); - - try { - messageHandler.send("test", testObj, [testObj.buffer]); - } catch (ex) { - (0, _util.warn)("Cannot use postMessage transfers."); - testObj[0] = 0; - messageHandler.send("test", testObj); - } - }; - - sendTest(); - return; - } catch (e) { - (0, _util.info)("The worker has been disabled."); - } - } - - this._setupFakeWorker(); - } - }, { - key: "_setupFakeWorker", - value: function _setupFakeWorker() { - var _this12 = this; - - if (!isWorkerDisabled) { - (0, _util.warn)("Setting up fake worker."); - isWorkerDisabled = true; - } - - setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { - if (_this12.destroyed) { - _this12._readyCapability.reject(new Error("Worker was destroyed")); - - return; - } - - var port = new LoopbackPort(); - _this12._port = port; - var id = "fake" + nextFakeWorkerId++; - var workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); - WorkerMessageHandler.setup(workerHandler, port); - var messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); - _this12._messageHandler = messageHandler; - - _this12._readyCapability.resolve(); - - messageHandler.send("configure", { - verbosity: _this12.verbosity + } }); - })["catch"](function (reason) { - _this12._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); + + if (this.destroyed) { + terminateEarly(); + return; + } + + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }); + + const sendTest = () => { + const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]); + + try { + messageHandler.send("test", testObj, [testObj.buffer]); + } catch (ex) { + (0, _util.warn)("Cannot use postMessage transfers."); + testObj[0] = 0; + messageHandler.send("test", testObj); + } + }; + + sendTest(); + return; + } catch (e) { + (0, _util.info)("The worker has been disabled."); + } + } + + this._setupFakeWorker(); + } + + _setupFakeWorker() { + if (!isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + isWorkerDisabled = true; + } + + setupFakeWorkerGlobal().then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + + return; + } + + const port = new LoopbackPort(); + this._port = port; + const id = "fake" + nextFakeWorkerId++; + const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); + WorkerMessageHandler.setup(workerHandler, port); + const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); + this._messageHandler = messageHandler; + + this._readyCapability.resolve(); + + messageHandler.send("configure", { + verbosity: this.verbosity }); + }).catch(reason => { + this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); + }); + } + + destroy() { + this.destroyed = true; + + if (this._webWorker) { + this._webWorker.terminate(); + + this._webWorker = null; } - }, { - key: "destroy", - value: function destroy() { - this.destroyed = true; - if (this._webWorker) { - this._webWorker.terminate(); + pdfWorkerPorts.delete(this._port); + this._port = null; - this._webWorker = null; - } + if (this._messageHandler) { + this._messageHandler.destroy(); - pdfWorkerPorts["delete"](this._port); - this._port = null; - - if (this._messageHandler) { - this._messageHandler.destroy(); - - this._messageHandler = null; - } + this._messageHandler = null; } - }, { - key: "promise", - get: function get() { - return this._readyCapability.promise; - } - }, { - key: "port", - get: function get() { - return this._port; - } - }, { - key: "messageHandler", - get: function get() { - return this._messageHandler; - } - }], [{ - key: "fromPort", - value: function fromPort(params) { - if (!params || !params.port) { - throw new Error("PDFWorker.fromPort - invalid method signature."); - } + } - if (pdfWorkerPorts.has(params.port)) { - return pdfWorkerPorts.get(params.port); - } - - return new PDFWorker(params); + static fromPort(params) { + if (!params || !params.port) { + throw new Error("PDFWorker.fromPort - invalid method signature."); } - }, { - key: "getWorkerSrc", - value: function getWorkerSrc() { - return _getWorkerSrc(); - } - }]); - return PDFWorker; - }(); + if (pdfWorkerPorts.has(params.port)) { + return pdfWorkerPorts.get(params.port); + } + + return new PDFWorker(params); + } + + static getWorkerSrc() { + return getWorkerSrc(); + } + + } return PDFWorker; }(); exports.PDFWorker = PDFWorker; -var WorkerTransport = /*#__PURE__*/function () { - function WorkerTransport(messageHandler, loadingTask, networkStream, params) { - _classCallCheck(this, WorkerTransport); - +class WorkerTransport { + constructor(messageHandler, loadingTask, networkStream, params) { this.messageHandler = messageHandler; this.loadingTask = loadingTask; this.commonObjs = new PDFObjects(); this.fontLoader = new _font_loader.FontLoader({ docId: loadingTask.docId, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this) + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + ownerDocument: params.ownerDocument, + styleElement: params.styleElement }); this._params = params; - this.CMapReaderFactory = new params.CMapReaderFactory({ - baseUrl: params.cMapUrl, - isCompressed: params.cMapPacked - }); + + if (!params.useWorkerFetch) { + this.CMapReaderFactory = new params.CMapReaderFactory({ + baseUrl: params.cMapUrl, + isCompressed: params.cMapPacked + }); + this.StandardFontDataFactory = new params.StandardFontDataFactory({ + baseUrl: params.standardFontDataUrl + }); + } + this.destroyed = false; this.destroyCapability = null; this._passwordCapability = null; @@ -12006,742 +3149,674 @@ var WorkerTransport = /*#__PURE__*/function () { this.setupMessageHandler(); } - _createClass(WorkerTransport, [{ - key: "destroy", - value: function destroy() { - var _this13 = this; + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - - this.destroyed = true; - this.destroyCapability = (0, _util.createPromiseCapability)(); - - if (this._passwordCapability) { - this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); - } - - var waitOn = []; - this.pageCache.forEach(function (page) { - if (page) { - waitOn.push(page._destroy()); - } - }); - this.pageCache.length = 0; - this.pagePromises.length = 0; - var terminated = this.messageHandler.sendWithPromise("Terminate", null); - waitOn.push(terminated); - Promise.all(waitOn).then(function () { - _this13.fontLoader.clear(); - - if (_this13._networkStream) { - _this13._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); - } - - if (_this13.messageHandler) { - _this13.messageHandler.destroy(); - - _this13.messageHandler = null; - } - - _this13.destroyCapability.resolve(); - }, this.destroyCapability.reject); + destroy() { + if (this.destroyCapability) { return this.destroyCapability.promise; } - }, { - key: "setupMessageHandler", - value: function setupMessageHandler() { - var _this14 = this; - var messageHandler = this.messageHandler, - loadingTask = this.loadingTask; - messageHandler.on("GetReader", function (data, sink) { - (0, _util.assert)(_this14._networkStream); - _this14._fullReader = _this14._networkStream.getFullReader(); + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); - _this14._fullReader.onProgress = function (evt) { - _this14._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; + if (this._passwordCapability) { + this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); + } + + const waitOn = []; + + for (const page of this.pageCache) { + if (page) { + waitOn.push(page._destroy()); + } + } + + this.pageCache.length = 0; + this.pagePromises.length = 0; + + if (this.hasOwnProperty("annotationStorage")) { + this.annotationStorage.resetModified(); + } + + const terminated = this.messageHandler.sendWithPromise("Terminate", null); + waitOn.push(terminated); + Promise.all(waitOn).then(() => { + this.commonObjs.clear(); + this.fontLoader.clear(); + this._hasJSActionsPromise = null; + + if (this._networkStream) { + this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); + } + + if (this.messageHandler) { + this.messageHandler.destroy(); + this.messageHandler = null; + } + + this.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + + setupMessageHandler() { + const { + messageHandler, + loadingTask + } = this; + messageHandler.on("GetReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); + this._fullReader = this._networkStream.getFullReader(); + + this._fullReader.onProgress = evt => { + this._lastProgress = { + loaded: evt.loaded, + total: evt.total }; + }; - sink.onPull = function () { - _this14._fullReader.read().then(function (_ref10) { - var value = _ref10.value, - done = _ref10.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - _this14._fullReader.cancel(reason); - }; - }); - messageHandler.on("ReaderHeadersReady", function (data) { - var headersCapability = (0, _util.createPromiseCapability)(); - var fullReader = _this14._fullReader; - fullReader.headersReady.then(function () { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (_this14._lastProgress && loadingTask.onProgress) { - loadingTask.onProgress(_this14._lastProgress); - } - - fullReader.onProgress = function (evt) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - }; - } - - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }); - messageHandler.on("GetRangeReader", function (data, sink) { - (0, _util.assert)(_this14._networkStream); - - var rangeReader = _this14._networkStream.getRangeReader(data.begin, data.end); - - if (!rangeReader) { - sink.close(); - return; - } - - sink.onPull = function () { - rangeReader.read().then(function (_ref11) { - var value = _ref11.value, - done = _ref11.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - rangeReader.cancel(reason); - }; - }); - messageHandler.on("GetDoc", function (_ref12) { - var pdfInfo = _ref12.pdfInfo; - _this14._numPages = pdfInfo.numPages; - - loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this14)); - }); - messageHandler.on("DocException", function (ex) { - var reason; - - switch (ex.name) { - case "PasswordException": - reason = new _util.PasswordException(ex.message, ex.code); - break; - - case "InvalidPDFException": - reason = new _util.InvalidPDFException(ex.message); - break; - - case "MissingPDFException": - reason = new _util.MissingPDFException(ex.message); - break; - - case "UnexpectedResponseException": - reason = new _util.UnexpectedResponseException(ex.message, ex.status); - break; - - case "UnknownErrorException": - reason = new _util.UnknownErrorException(ex.message, ex.details); - break; - } - - loadingTask._capability.reject(reason); - }); - messageHandler.on("PasswordRequest", function (exception) { - _this14._passwordCapability = (0, _util.createPromiseCapability)(); - - if (loadingTask.onPassword) { - var updatePassword = function updatePassword(password) { - _this14._passwordCapability.resolve({ - password: password - }); - }; - - try { - loadingTask.onPassword(updatePassword, exception.code); - } catch (ex) { - _this14._passwordCapability.reject(ex); - } - } else { - _this14._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); - } - - return _this14._passwordCapability.promise; - }); - messageHandler.on("DataLoaded", function (data) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.length, - total: data.length - }); - } - - _this14.downloadInfoCapability.resolve(data); - }); - messageHandler.on("StartRenderPage", function (data) { - if (_this14.destroyed) { - return; - } - - var page = _this14.pageCache[data.pageIndex]; - - page._startRenderPage(data.transparency, data.intent); - }); - messageHandler.on("commonobj", function (data) { - if (_this14.destroyed) { - return; - } - - var _data = _slicedToArray(data, 3), - id = _data[0], - type = _data[1], - exportedData = _data[2]; - - if (_this14.commonObjs.has(id)) { - return; - } - - switch (type) { - case "Font": - var params = _this14._params; - - if ("error" in exportedData) { - var exportedError = exportedData.error; - (0, _util.warn)("Error during font loading: ".concat(exportedError)); - - _this14.commonObjs.resolve(id, exportedError); - - break; - } - - var fontRegistry = null; - - if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) { - fontRegistry = { - registerFont: function registerFont(font, url) { - globalThis.FontInspector.fontAdded(font, url); - } - }; - } - - var font = new _font_loader.FontFaceObject(exportedData, { - isEvalSupported: params.isEvalSupported, - disableFontFace: params.disableFontFace, - ignoreErrors: params.ignoreErrors, - onUnsupportedFeature: _this14._onUnsupportedFeature.bind(_this14), - fontRegistry: fontRegistry - }); - - _this14.fontLoader.bind(font).then(function () { - _this14.commonObjs.resolve(id, font); - }, function (reason) { - messageHandler.sendWithPromise("FontFallback", { - id: id - })["finally"](function () { - _this14.commonObjs.resolve(id, font); - }); - }); - - break; - - case "FontPath": - case "FontType3Res": - _this14.commonObjs.resolve(id, exportedData); - - break; - - default: - throw new Error("Got unknown common object type ".concat(type)); - } - }); - messageHandler.on("obj", function (data) { - if (_this14.destroyed) { - return undefined; - } - - var _data2 = _slicedToArray(data, 4), - id = _data2[0], - pageIndex = _data2[1], - type = _data2[2], - imageData = _data2[3]; - - var pageProxy = _this14.pageCache[pageIndex]; - - if (pageProxy.objs.has(id)) { - return undefined; - } - - switch (type) { - case "JpegStream": - return new Promise(function (resolve, reject) { - var img = new Image(); - - img.onload = function () { - resolve(img); - }; - - img.onerror = function () { - reject(new Error("Error during JPEG image loading")); - (0, _display_utils.releaseImageResources)(img); - }; - - img.src = imageData; - }).then(function (img) { - pageProxy.objs.resolve(id, img); - }); - - case "Image": - pageProxy.objs.resolve(id, imageData); - var MAX_IMAGE_SIZE_TO_STORE = 8000000; - - if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { - pageProxy.cleanupAfterRender = true; - } - - break; - - default: - throw new Error("Got unknown object type ".concat(type)); - } - - return undefined; - }); - messageHandler.on("DocProgress", function (data) { - if (_this14.destroyed) { - return; - } - - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.loaded, - total: data.total - }); - } - }); - messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); - messageHandler.on("JpegDecode", function (data) { - if (_this14.destroyed) { - return Promise.reject(new Error("Worker was destroyed")); - } - - if (typeof document === "undefined") { - return Promise.reject(new Error('"document" is not defined.')); - } - - var _data3 = _slicedToArray(data, 2), - imageUrl = _data3[0], - components = _data3[1]; - - if (components !== 3 && components !== 1) { - return Promise.reject(new Error("Only 3 components or 1 component can be returned")); - } - - return new Promise(function (resolve, reject) { - var img = new Image(); - - img.onload = function () { - var width = img.width, - height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8ClampedArray(size * components); - var tmpCanvas = document.createElement("canvas"); - tmpCanvas.width = width; - tmpCanvas.height = height; - var tmpCtx = tmpCanvas.getContext("2d"); - tmpCtx.drawImage(img, 0, 0); - var data = tmpCtx.getImageData(0, 0, width, height).data; - - if (components === 3) { - for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { - buf[j] = data[i]; - buf[j + 1] = data[i + 1]; - buf[j + 2] = data[i + 2]; - } - } else if (components === 1) { - for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { - buf[_j] = data[_i2]; - } - } - - resolve({ - data: buf, - width: width, - height: height - }); - (0, _display_utils.releaseImageResources)(img); - tmpCanvas.width = 0; - tmpCanvas.height = 0; - tmpCanvas = null; - tmpCtx = null; - }; - - img.onerror = function () { - reject(new Error("JpegDecode failed to load image")); - (0, _display_utils.releaseImageResources)(img); - }; - - img.src = imageUrl; - }); - }); - messageHandler.on("FetchBuiltInCMap", function (data, sink) { - if (_this14.destroyed) { - sink.error(new Error("Worker was destroyed")); - return; - } - - var fetched = false; - - sink.onPull = function () { - if (fetched) { + sink.onPull = () => { + this._fullReader.read().then(function ({ + value, + done + }) { + if (done) { sink.close(); return; } - fetched = true; + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; - _this14.CMapReaderFactory.fetch(data).then(function (builtInCMap) { - sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]); - })["catch"](function (reason) { - sink.error(reason); + sink.onCancel = reason => { + this._fullReader.cancel(reason); + + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("ReaderHeadersReady", data => { + const headersCapability = (0, _util.createPromiseCapability)(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress && loadingTask.onProgress) { + loadingTask.onProgress(this._lastProgress); + } + + fullReader.onProgress = evt => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + }; + } + + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }); + messageHandler.on("GetRangeReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); + + const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + + if (!rangeReader) { + sink.close(); + return; + } + + sink.onPull = () => { + rangeReader.read().then(function ({ + value, + done + }) { + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + + sink.onCancel = reason => { + rangeReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("GetDoc", ({ + pdfInfo + }) => { + this._numPages = pdfInfo.numPages; + this._htmlForXfa = pdfInfo.htmlForXfa; + delete pdfInfo.htmlForXfa; + + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }); + messageHandler.on("DocException", function (ex) { + let reason; + + switch (ex.name) { + case "PasswordException": + reason = new _util.PasswordException(ex.message, ex.code); + break; + + case "InvalidPDFException": + reason = new _util.InvalidPDFException(ex.message); + break; + + case "MissingPDFException": + reason = new _util.MissingPDFException(ex.message); + break; + + case "UnexpectedResponseException": + reason = new _util.UnexpectedResponseException(ex.message, ex.status); + break; + + case "UnknownErrorException": + reason = new _util.UnknownErrorException(ex.message, ex.details); + break; + } + + if (!(reason instanceof Error)) { + const msg = "DocException - expected a valid Error."; + (0, _util.warn)(msg); + } + + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this._passwordCapability = (0, _util.createPromiseCapability)(); + + if (loadingTask.onPassword) { + const updatePassword = password => { + this._passwordCapability.resolve({ + password }); }; - }); - } - }, { - key: "_onUnsupportedFeature", - value: function _onUnsupportedFeature(_ref13) { - var featureId = _ref13.featureId; + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); + } + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); + } + + return this._passwordCapability.promise; + }); + messageHandler.on("DataLoaded", data => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.length, + total: data.length + }); + } + + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { if (this.destroyed) { return; } - if (this.loadingTask.onUnsupportedFeature) { - this.loadingTask.onUnsupportedFeature(featureId); - } - } - }, { - key: "getData", - value: function getData() { - return this.messageHandler.sendWithPromise("GetData", null); - } - }, { - key: "getPage", - value: function getPage(pageNumber) { - var _this15 = this; + const page = this.pageCache[data.pageIndex]; - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { - return Promise.reject(new Error("Invalid page request")); + page._startRenderPage(data.transparency, data.intent); + }); + messageHandler.on("commonobj", data => { + if (this.destroyed) { + return; } - var pageIndex = pageNumber - 1; + const [id, type, exportedData] = data; - if (pageIndex in this.pagePromises) { - return this.pagePromises[pageIndex]; + if (this.commonObjs.has(id)) { + return; } - var promise = this.messageHandler.sendWithPromise("GetPage", { - pageIndex: pageIndex - }).then(function (pageInfo) { - if (_this15.destroyed) { - throw new Error("Transport destroyed"); - } + switch (type) { + case "Font": + const params = this._params; - var page = new PDFPageProxy(pageIndex, pageInfo, _this15, _this15._params.pdfBug); - _this15.pageCache[pageIndex] = page; - return page; - }); - this.pagePromises[pageIndex] = promise; - return promise; - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this.messageHandler.sendWithPromise("GetPageIndex", { - ref: ref - })["catch"](function (reason) { - return Promise.reject(new Error(reason)); - }); - } - }, { - key: "getAnnotations", - value: function getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise("GetAnnotations", { - pageIndex: pageIndex, - intent: intent - }); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this.messageHandler.sendWithPromise("GetDestinations", null); - } - }, { - key: "getDestination", - value: function getDestination(id) { - if (typeof id !== "string") { - return Promise.reject(new Error("Invalid destination request.")); - } - - return this.messageHandler.sendWithPromise("GetDestination", { - id: id - }); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this.messageHandler.sendWithPromise("GetPageLabels", null); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this.messageHandler.sendWithPromise("GetPageLayout", null); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this.messageHandler.sendWithPromise("GetPageMode", null); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this.messageHandler.sendWithPromise("GetViewerPreferences", null); - } - }, { - key: "getOpenAction", - value: function getOpenAction() { - return this.messageHandler.sendWithPromise("GetOpenAction", null); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this.messageHandler.sendWithPromise("GetAttachments", null); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this.messageHandler.sendWithPromise("GetJavaScript", null); - } - }, { - key: "getOutline", - value: function getOutline() { - return this.messageHandler.sendWithPromise("GetOutline", null); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this.messageHandler.sendWithPromise("GetPermissions", null); - } - }, { - key: "getMetadata", - value: function getMetadata() { - var _this16 = this; - - return this.messageHandler.sendWithPromise("GetMetadata", null).then(function (results) { - return { - info: results[0], - metadata: results[1] ? new _metadata.Metadata(results[1]) : null, - contentDispositionFilename: _this16._fullReader ? _this16._fullReader.filename : null - }; - }); - } - }, { - key: "getStats", - value: function getStats() { - return this.messageHandler.sendWithPromise("GetStats", null); - } - }, { - key: "startCleanup", - value: function startCleanup() { - var _this17 = this; - - return this.messageHandler.sendWithPromise("Cleanup", null).then(function () { - for (var i = 0, ii = _this17.pageCache.length; i < ii; i++) { - var page = _this17.pageCache[i]; - - if (page) { - var cleanupSuccessful = page.cleanup(); - - if (!cleanupSuccessful) { - throw new Error("startCleanup: Page ".concat(i + 1, " is currently rendering.")); - } + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; } - } - _this17.commonObjs.clear(); + let fontRegistry = null; - _this17.fontLoader.clear(); - }); + if (params.pdfBug && globalThis.FontInspector?.enabled) { + fontRegistry = { + registerFont(font, url) { + globalThis.FontInspector.fontAdded(font, url); + } + + }; + } + + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry + }); + this.fontLoader.bind(font).catch(reason => { + return messageHandler.sendWithPromise("FontFallback", { + id + }); + }).finally(() => { + if (!params.fontExtraProperties && font.data) { + font.data = null; + } + + this.commonObjs.resolve(id, font); + }); + break; + + case "FontPath": + case "Image": + this.commonObjs.resolve(id, exportedData); + break; + + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", data => { + if (this.destroyed) { + return undefined; + } + + const [id, pageIndex, type, imageData] = data; + const pageProxy = this.pageCache[pageIndex]; + + if (pageProxy.objs.has(id)) { + return undefined; + } + + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + const MAX_IMAGE_SIZE_TO_STORE = 8000000; + + if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + + break; + + case "Pattern": + pageProxy.objs.resolve(id, imageData); + break; + + default: + throw new Error(`Got unknown object type ${type}`); + } + + return undefined; + }); + messageHandler.on("DocProgress", data => { + if (this.destroyed) { + return; + } + + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); + } + }); + messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); + messageHandler.on("FetchBuiltInCMap", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + + if (!this.CMapReaderFactory) { + return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); + } + + return this.CMapReaderFactory.fetch(data); + }); + messageHandler.on("FetchStandardFontData", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + + if (!this.StandardFontDataFactory) { + return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); + } + + return this.StandardFontDataFactory.fetch(data); + }); + } + + _onUnsupportedFeature({ + featureId + }) { + if (this.destroyed) { + return; } - }, { - key: "loadingParams", - get: function get() { - var params = this._params; - return (0, _util.shadow)(this, "loadingParams", { - disableAutoFetch: params.disableAutoFetch, - disableCreateObjectURL: params.disableCreateObjectURL, - disableFontFace: params.disableFontFace, - nativeImageDecoderSupport: params.nativeImageDecoderSupport - }); + + if (this.loadingTask.onUnsupportedFeature) { + this.loadingTask.onUnsupportedFeature(featureId); } - }]); + } - return WorkerTransport; -}(); + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } -var PDFObjects = /*#__PURE__*/function () { - function PDFObjects() { - _classCallCheck(this, PDFObjects); + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request")); + } + const pageIndex = pageNumber - 1; + + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; + } + + const promise = this.messageHandler.sendWithPromise("GetPage", { + pageIndex + }).then(pageInfo => { + if (this.destroyed) { + throw new Error("Transport destroyed"); + } + + const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug); + this.pageCache[pageIndex] = page; + return page; + }); + this.pagePromises[pageIndex] = promise; + return promise; + } + + getPageIndex(ref) { + return this.messageHandler.sendWithPromise("GetPageIndex", { + ref + }).catch(function (reason) { + return Promise.reject(new Error(reason)); + }); + } + + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } + + saveDocument() { + return this.messageHandler.sendWithPromise("SaveDocument", { + isPureXfa: !!this._htmlForXfa, + numPages: this._numPages, + annotationStorage: this.annotationStorage.serializable, + filename: this._fullReader?.filename ?? null + }).finally(() => { + this.annotationStorage.resetModified(); + }); + } + + getFieldObjects() { + return this.messageHandler.sendWithPromise("GetFieldObjects", null); + } + + hasJSActions() { + return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise("HasJSActions", null)); + } + + getCalculationOrderIds() { + return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); + } + + getDestinations() { + return this.messageHandler.sendWithPromise("GetDestinations", null); + } + + getDestination(id) { + if (typeof id !== "string") { + return Promise.reject(new Error("Invalid destination request.")); + } + + return this.messageHandler.sendWithPromise("GetDestination", { + id + }); + } + + getPageLabels() { + return this.messageHandler.sendWithPromise("GetPageLabels", null); + } + + getPageLayout() { + return this.messageHandler.sendWithPromise("GetPageLayout", null); + } + + getPageMode() { + return this.messageHandler.sendWithPromise("GetPageMode", null); + } + + getViewerPreferences() { + return this.messageHandler.sendWithPromise("GetViewerPreferences", null); + } + + getOpenAction() { + return this.messageHandler.sendWithPromise("GetOpenAction", null); + } + + getAttachments() { + return this.messageHandler.sendWithPromise("GetAttachments", null); + } + + getJavaScript() { + return this.messageHandler.sendWithPromise("GetJavaScript", null); + } + + getDocJSActions() { + return this.messageHandler.sendWithPromise("GetDocJSActions", null); + } + + getPageJSActions(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageJSActions", { + pageIndex + }); + } + + getStructTree(pageIndex) { + return this.messageHandler.sendWithPromise("GetStructTree", { + pageIndex + }); + } + + getOutline() { + return this.messageHandler.sendWithPromise("GetOutline", null); + } + + getOptionalContentConfig() { + return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => { + return new _optional_content_config.OptionalContentConfig(results); + }); + } + + getPermissions() { + return this.messageHandler.sendWithPromise("GetPermissions", null); + } + + getMetadata() { + return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => { + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: this._fullReader?.filename ?? null, + contentLength: this._fullReader?.contentLength ?? null + }; + }); + } + + getMarkInfo() { + return this.messageHandler.sendWithPromise("GetMarkInfo", null); + } + + getStats() { + return this.messageHandler.sendWithPromise("GetStats", null); + } + + async startCleanup(keepLoadedFonts = false) { + await this.messageHandler.sendWithPromise("Cleanup", null); + + if (this.destroyed) { + return; + } + + for (let i = 0, ii = this.pageCache.length; i < ii; i++) { + const page = this.pageCache[i]; + + if (!page) { + continue; + } + + const cleanupSuccessful = page.cleanup(); + + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`); + } + } + + this.commonObjs.clear(); + + if (!keepLoadedFonts) { + this.fontLoader.clear(); + } + + this._hasJSActionsPromise = null; + } + + get loadingParams() { + const params = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch: params.disableAutoFetch + }); + } + +} + +class PDFObjects { + constructor() { this._objs = Object.create(null); } - _createClass(PDFObjects, [{ - key: "_ensureObj", - value: function _ensureObj(objId) { - if (this._objs[objId]) { - return this._objs[objId]; - } - - return this._objs[objId] = { - capability: (0, _util.createPromiseCapability)(), - data: null, - resolved: false - }; + _ensureObj(objId) { + if (this._objs[objId]) { + return this._objs[objId]; } - }, { - key: "get", - value: function get(objId) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - if (callback) { - this._ensureObj(objId).capability.promise.then(callback); + return this._objs[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null, + resolved: false + }; + } - return null; - } + get(objId, callback = null) { + if (callback) { + this._ensureObj(objId).capability.promise.then(callback); - var obj = this._objs[objId]; - - if (!obj || !obj.resolved) { - throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); - } - - return obj.data; + return null; } - }, { - key: "has", - value: function has(objId) { - var obj = this._objs[objId]; - return obj ? obj.resolved : false; + + const obj = this._objs[objId]; + + if (!obj || !obj.resolved) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); } - }, { - key: "resolve", - value: function resolve(objId, data) { - var obj = this._ensureObj(objId); - obj.resolved = true; - obj.data = data; - obj.capability.resolve(data); - } - }, { - key: "clear", - value: function clear() { - for (var objId in this._objs) { - var data = this._objs[objId].data; + return obj.data; + } - if (typeof Image !== "undefined" && data instanceof Image) { - (0, _display_utils.releaseImageResources)(data); - } - } + has(objId) { + const obj = this._objs[objId]; + return obj?.resolved || false; + } - this._objs = Object.create(null); - } - }]); + resolve(objId, data) { + const obj = this._ensureObj(objId); - return PDFObjects; -}(); + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + } -var RenderTask = /*#__PURE__*/function () { - function RenderTask(internalRenderTask) { - _classCallCheck(this, RenderTask); + clear() { + this._objs = Object.create(null); + } +} + +class RenderTask { + constructor(internalRenderTask) { this._internalRenderTask = internalRenderTask; this.onContinue = null; } - _createClass(RenderTask, [{ - key: "cancel", - value: function cancel() { - this._internalRenderTask.cancel(); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - throw new Error("Removed API method: " + "RenderTask.then, use the `promise` getter instead."); - } - }, { - key: "promise", - get: function get() { - return this._internalRenderTask.capability.promise; - } - }]); + get promise() { + return this._internalRenderTask.capability.promise; + } - return RenderTask; -}(); + cancel() { + this._internalRenderTask.cancel(); + } -var InternalRenderTask = function InternalRenderTaskClosure() { - var canvasInRendering = new WeakSet(); +} - var InternalRenderTask = /*#__PURE__*/function () { - function InternalRenderTask(_ref14) { - var callback = _ref14.callback, - params = _ref14.params, - objs = _ref14.objs, - commonObjs = _ref14.commonObjs, - operatorList = _ref14.operatorList, - pageIndex = _ref14.pageIndex, - canvasFactory = _ref14.canvasFactory, - webGLContext = _ref14.webGLContext, - _ref14$useRequestAnim = _ref14.useRequestAnimationFrame, - useRequestAnimationFrame = _ref14$useRequestAnim === void 0 ? false : _ref14$useRequestAnim, - _ref14$pdfBug = _ref14.pdfBug, - pdfBug = _ref14$pdfBug === void 0 ? false : _ref14$pdfBug; - - _classCallCheck(this, InternalRenderTask); +const InternalRenderTask = function InternalRenderTaskClosure() { + const canvasInRendering = new WeakSet(); + class InternalRenderTask { + constructor({ + callback, + params, + objs, + commonObjs, + operatorList, + pageIndex, + canvasFactory, + useRequestAnimationFrame = false, + pdfBug = false + }) { this.callback = callback; this.params = params; this.objs = objs; @@ -12750,7 +3825,6 @@ var InternalRenderTask = function InternalRenderTaskClosure() { this.operatorList = operatorList; this._pageIndex = pageIndex; this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; this._pdfBug = pdfBug; this.running = false; this.graphicsReadyCallback = null; @@ -12759,1925 +3833,451 @@ var InternalRenderTask = function InternalRenderTaskClosure() { this.cancelled = false; this.capability = (0, _util.createPromiseCapability)(); this.task = new RenderTask(this); + this._cancelBound = this.cancel.bind(this); this._continueBound = this._continue.bind(this); this._scheduleNextBound = this._scheduleNext.bind(this); this._nextBound = this._next.bind(this); this._canvas = params.canvasContext.canvas; } - _createClass(InternalRenderTask, [{ - key: "initializeGraphics", - value: function initializeGraphics() { - var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + get completed() { + return this.capability.promise.catch(function () {}); + } - if (this.cancelled) { - return; + initializeGraphics({ + transparency = false, + optionalContentConfig + }) { + if (this.cancelled) { + return; + } + + if (this._canvas) { + if (canvasInRendering.has(this._canvas)) { + throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); } - if (this._canvas) { - if (canvasInRendering.has(this._canvas)) { - throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); - } + canvasInRendering.add(this._canvas); + } - canvasInRendering.add(this._canvas); + if (this._pdfBug && globalThis.StepperManager?.enabled) { + this.stepper = globalThis.StepperManager.create(this._pageIndex); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + + const { + canvasContext, + viewport, + transform, + imageLayer, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); + } + } + + cancel(error = null) { + this.running = false; + this.cancelled = true; + + if (this.gfx) { + this.gfx.endDrawing(); + } + + if (this._canvas) { + canvasInRendering.delete(this._canvas); + } + + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas")); + } + + operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; } - if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) { - this.stepper = globalThis.StepperManager.create(this._pageIndex); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } + return; + } - var _this$params = this.params, - canvasContext = _this$params.canvasContext, - viewport = _this$params.viewport, - transform = _this$params.transform, - imageLayer = _this$params.imageLayer, - background = _this$params.background; - this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); - this.gfx.beginDrawing({ - transform: transform, - viewport: viewport, - transparency: transparency, - background: background + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); + } + + if (this.running) { + return; + } + + this._continue(); + } + + _continue() { + this.running = true; + + if (this.cancelled) { + return; + } + + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + + _scheduleNext() { + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(() => { + this._nextBound().catch(this._cancelBound); }); - this.operatorListIdx = 0; - this.graphicsReady = true; - - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } + } else { + Promise.resolve().then(this._nextBound).catch(this._cancelBound); } - }, { - key: "cancel", - value: function cancel() { - var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + } + + async _next() { + if (this.cancelled) { + return; + } + + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + + if (this.operatorListIdx === this.operatorList.argsArray.length) { this.running = false; - this.cancelled = true; - if (this.gfx) { + if (this.operatorList.lastChunk) { this.gfx.endDrawing(); - } - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this._pageIndex + 1), "canvas")); - } - }, { - key: "operatorListChanged", - value: function operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; + if (this._canvas) { + canvasInRendering.delete(this._canvas); } - return; - } - - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); - } - - if (this.running) { - return; - } - - this._continue(); - } - }, { - key: "_continue", - value: function _continue() { - this.running = true; - - if (this.cancelled) { - return; - } - - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); + this.callback(); } } - }, { - key: "_scheduleNext", - value: function _scheduleNext() { - var _this18 = this; + } - if (this._useRequestAnimationFrame) { - window.requestAnimationFrame(function () { - _this18._nextBound()["catch"](_this18.cancel.bind(_this18)); - }); - } else { - Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this)); - } - } - }, { - key: "_next", - value: function () { - var _next2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this.cancelled) { - _context2.next = 2; - break; - } - - return _context2.abrupt("return"); - - case 2: - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(); - } - } - - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function _next() { - return _next2.apply(this, arguments); - } - - return _next; - }() - }]); - - return InternalRenderTask; - }(); + } return InternalRenderTask; }(); -var version = '2.4.456'; +const version = '2.10.377'; exports.version = version; -var build = '228a591c'; +const build = '156762c48'; exports.build = build; /***/ }), -/* 191 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/* 7 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -"use strict"; -module.exports = __w_pdfjs_require__(192); - -/***/ }), -/* 192 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(193)(module))) - -/***/ }), -/* 193 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.addLinkAttributes = addLinkAttributes; -exports.getFilenameFromUrl = getFilenameFromUrl; -exports.isFetchSupported = isFetchSupported; -exports.isValidFetchUrl = isValidFetchUrl; -exports.loadScript = loadScript; -exports.deprecated = deprecated; -exports.releaseImageResources = releaseImageResources; -exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_LINK_REL = "noopener noreferrer nofollow"; -exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; -var SVG_NS = "http://www.w3.org/2000/svg"; - -var DOMCanvasFactory = /*#__PURE__*/function () { - function DOMCanvasFactory() { - _classCallCheck(this, DOMCanvasFactory); - } - - _createClass(DOMCanvasFactory, [{ - key: "create", - value: function create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); - } - - var canvas = document.createElement("canvas"); - var context = canvas.getContext("2d"); - canvas.width = width; - canvas.height = height; - return { - canvas: canvas, - context: context - }; - } - }, { - key: "reset", - value: function reset(canvasAndContext, width, height) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); - } - - canvasAndContext.canvas.width = width; - canvasAndContext.canvas.height = height; - } - }, { - key: "destroy", - value: function destroy(canvasAndContext) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - - canvasAndContext.canvas.width = 0; - canvasAndContext.canvas.height = 0; - canvasAndContext.canvas = null; - canvasAndContext.context = null; - } - }]); - - return DOMCanvasFactory; -}(); - -exports.DOMCanvasFactory = DOMCanvasFactory; - -var DOMCMapReaderFactory = /*#__PURE__*/function () { - function DOMCMapReaderFactory(_ref) { - var _ref$baseUrl = _ref.baseUrl, - baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, - _ref$isCompressed = _ref.isCompressed, - isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; - - _classCallCheck(this, DOMCMapReaderFactory); - - this.baseUrl = baseUrl; - this.isCompressed = isCompressed; - } - - _createClass(DOMCMapReaderFactory, [{ - key: "fetch", - value: function (_fetch) { - function fetch(_x) { - return _fetch.apply(this, arguments); - } - - fetch.toString = function () { - return _fetch.toString(); - }; - - return fetch; - }( /*#__PURE__*/function () { - var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref3) { - var _this = this; - - var name, url, compressionType; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - name = _ref3.name; - - if (this.baseUrl) { - _context2.next = 3; - break; - } - - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); - - case 3: - if (name) { - _context2.next = 5; - break; - } - - throw new Error("CMap name must be specified."); - - case 5: - url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); - compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; - - if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", fetch(url).then( /*#__PURE__*/function () { - var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(response) { - var cMapData; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (response.ok) { - _context.next = 2; - break; - } - - throw new Error(response.statusText); - - case 2: - if (!_this.isCompressed) { - _context.next = 10; - break; - } - - _context.t0 = Uint8Array; - _context.next = 6; - return response.arrayBuffer(); - - case 6: - _context.t1 = _context.sent; - cMapData = new _context.t0(_context.t1); - _context.next = 15; - break; - - case 10: - _context.t2 = _util.stringToBytes; - _context.next = 13; - return response.text(); - - case 13: - _context.t3 = _context.sent; - cMapData = (0, _context.t2)(_context.t3); - - case 15: - return _context.abrupt("return", { - cMapData: cMapData, - compressionType: compressionType - }); - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function (_x3) { - return _ref4.apply(this, arguments); - }; - }())["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? "binary " : "") + "CMap at: ".concat(url)); - })); - - case 9: - return _context2.abrupt("return", new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open("GET", url, true); - - if (_this.isCompressed) { - request.responseType = "arraybuffer"; - } - - request.onreadystatechange = function () { - if (request.readyState !== XMLHttpRequest.DONE) { - return; - } - - if (request.status === 200 || request.status === 0) { - var cMapData; - - if (_this.isCompressed && request.response) { - cMapData = new Uint8Array(request.response); - } else if (!_this.isCompressed && request.responseText) { - cMapData = (0, _util.stringToBytes)(request.responseText); - } - - if (cMapData) { - resolve({ - cMapData: cMapData, - compressionType: compressionType - }); - return; - } - } - - reject(new Error(request.statusText)); - }; - - request.send(null); - })["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? "binary " : "") + "CMap at: ".concat(url)); - })); - - case 10: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - return function (_x2) { - return _ref2.apply(this, arguments); - }; - }()) - }]); - - return DOMCMapReaderFactory; -}(); - -exports.DOMCMapReaderFactory = DOMCMapReaderFactory; - -var DOMSVGFactory = /*#__PURE__*/function () { - function DOMSVGFactory() { - _classCallCheck(this, DOMSVGFactory); - } - - _createClass(DOMSVGFactory, [{ - key: "create", - value: function create(width, height) { - (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions"); - var svg = document.createElementNS(SVG_NS, "svg:svg"); - svg.setAttribute("version", "1.1"); - svg.setAttribute("width", width + "px"); - svg.setAttribute("height", height + "px"); - svg.setAttribute("preserveAspectRatio", "none"); - svg.setAttribute("viewBox", "0 0 " + width + " " + height); - return svg; - } - }, { - key: "createElement", - value: function createElement(type) { - (0, _util.assert)(typeof type === "string", "Invalid SVG element type"); - return document.createElementNS(SVG_NS, type); - } - }]); - - return DOMSVGFactory; -}(); - -exports.DOMSVGFactory = DOMSVGFactory; - -var PageViewport = /*#__PURE__*/function () { - function PageViewport(_ref5) { - var viewBox = _ref5.viewBox, - scale = _ref5.scale, - rotation = _ref5.rotation, - _ref5$offsetX = _ref5.offsetX, - offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX, - _ref5$offsetY = _ref5.offsetY, - offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY, - _ref5$dontFlip = _ref5.dontFlip, - dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip; - - _classCallCheck(this, PageViewport); - - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - - switch (rotation) { - case 180: - rotateA = -1; - rotateB = 0; - rotateC = 0; - rotateD = 1; - break; - - case 90: - rotateA = 0; - rotateB = 1; - rotateC = 1; - rotateD = 0; - break; - - case 270: - rotateA = 0; - rotateB = -1; - rotateC = -1; - rotateD = 0; - break; - - default: - rotateA = 1; - rotateB = 0; - rotateC = 0; - rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; - rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; - } - - this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; - this.width = width; - this.height = height; - } - - _createClass(PageViewport, [{ - key: "clone", - value: function clone() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref6$scale = _ref6.scale, - scale = _ref6$scale === void 0 ? this.scale : _ref6$scale, - _ref6$rotation = _ref6.rotation, - rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation, - _ref6$offsetX = _ref6.offsetX, - offsetX = _ref6$offsetX === void 0 ? this.offsetX : _ref6$offsetX, - _ref6$offsetY = _ref6.offsetY, - offsetY = _ref6$offsetY === void 0 ? this.offsetY : _ref6$offsetY, - _ref6$dontFlip = _ref6.dontFlip, - dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip; - - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale: scale, - rotation: rotation, - offsetX: offsetX, - offsetY: offsetY, - dontFlip: dontFlip - }); - } - }, { - key: "convertToViewportPoint", - value: function convertToViewportPoint(x, y) { - return _util.Util.applyTransform([x, y], this.transform); - } - }, { - key: "convertToViewportRectangle", - value: function convertToViewportRectangle(rect) { - var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); - - var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); - - return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; - } - }, { - key: "convertToPdfPoint", - value: function convertToPdfPoint(x, y) { - return _util.Util.applyInverseTransform([x, y], this.transform); - } - }]); - - return PageViewport; -}(); - -exports.PageViewport = PageViewport; - -var RenderingCancelledException = /*#__PURE__*/function (_BaseException) { - _inherits(RenderingCancelledException, _BaseException); - - function RenderingCancelledException(msg, type) { - var _this2; - - _classCallCheck(this, RenderingCancelledException); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(RenderingCancelledException).call(this, msg)); - _this2.type = type; - return _this2; - } - - return RenderingCancelledException; -}(_util.BaseException); - -exports.RenderingCancelledException = RenderingCancelledException; -var LinkTarget = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 -}; -exports.LinkTarget = LinkTarget; - -function addLinkAttributes(link) { - var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - url = _ref7.url, - target = _ref7.target, - rel = _ref7.rel, - _ref7$enabled = _ref7.enabled, - enabled = _ref7$enabled === void 0 ? true : _ref7$enabled; - - (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.'); - var urlNullRemoved = (0, _util.removeNullCharacters)(url); - - if (enabled) { - link.href = link.title = urlNullRemoved; - } else { - link.href = ""; - link.title = "Disabled: ".concat(urlNullRemoved); - - link.onclick = function () { - return false; - }; - } - - var targetStr = ""; - - switch (target) { - case LinkTarget.NONE: - break; - - case LinkTarget.SELF: - targetStr = "_self"; - break; - - case LinkTarget.BLANK: - targetStr = "_blank"; - break; - - case LinkTarget.PARENT: - targetStr = "_parent"; - break; - - case LinkTarget.TOP: - targetStr = "_top"; - break; - } - - link.target = targetStr; - link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; -} - -function getFilenameFromUrl(url) { - var anchor = url.indexOf("#"); - var query = url.indexOf("?"); - var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); - return url.substring(url.lastIndexOf("/", end) + 1, end); -} - -var StatTimer = /*#__PURE__*/function () { - function StatTimer() { - _classCallCheck(this, StatTimer); - - this.started = Object.create(null); - this.times = []; - } - - _createClass(StatTimer, [{ - key: "time", - value: function time(name) { - if (name in this.started) { - (0, _util.warn)("Timer is already running for ".concat(name)); - } - - this.started[name] = Date.now(); - } - }, { - key: "timeEnd", - value: function timeEnd(name) { - if (!(name in this.started)) { - (0, _util.warn)("Timer has not been started for ".concat(name)); - } - - this.times.push({ - name: name, - start: this.started[name], - end: Date.now() - }); - delete this.started[name]; - } - }, { - key: "toString", - value: function toString() { - var outBuf = []; - var longest = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var time = _step.value; - var name = time.name; - - if (name.length > longest) { - longest = name.length; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _time = _step2.value; - var duration = _time.end - _time.start; - outBuf.push("".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n")); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return outBuf.join(""); - } - }]); - - return StatTimer; -}(); - -exports.StatTimer = StatTimer; - -function isFetchSupported() { - return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && typeof ReadableStream !== "undefined"; -} - -function isValidFetchUrl(url, baseUrl) { - try { - var _ref8 = baseUrl ? new URL(url, baseUrl) : new URL(url), - protocol = _ref8.protocol; - - return protocol === "http:" || protocol === "https:"; - } catch (ex) { - return false; - } -} - -function loadScript(src) { - return new Promise(function (resolve, reject) { - var script = document.createElement("script"); - script.src = src; - script.onload = resolve; - - script.onerror = function () { - reject(new Error("Cannot load script at: ".concat(script.src))); - }; - - (document.head || document.documentElement).appendChild(script); - }); -} - -function deprecated(details) { - console.log("Deprecated API usage: " + details); -} - -function releaseImageResources(img) { - (0, _util.assert)(img instanceof Image, "Invalid `img` parameter."); - var url = img.src; - - if (typeof url === "string" && url.startsWith("blob:") && URL.revokeObjectURL) { - URL.revokeObjectURL(url); - } - - img.removeAttribute("src"); -} - -var pdfDateStringRegex; - -var PDFDateString = /*#__PURE__*/function () { - function PDFDateString() { - _classCallCheck(this, PDFDateString); - } - - _createClass(PDFDateString, null, [{ - key: "toDateObject", - value: function toDateObject(input) { - if (!input || !(0, _util.isString)(input)) { - return null; - } - - if (!pdfDateStringRegex) { - pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); - } - - var matches = pdfDateStringRegex.exec(input); - - if (!matches) { - return null; - } - - var year = parseInt(matches[1], 10); - var month = parseInt(matches[2], 10); - month = month >= 1 && month <= 12 ? month - 1 : 0; - var day = parseInt(matches[3], 10); - day = day >= 1 && day <= 31 ? day : 1; - var hour = parseInt(matches[4], 10); - hour = hour >= 0 && hour <= 23 ? hour : 0; - var minute = parseInt(matches[5], 10); - minute = minute >= 0 && minute <= 59 ? minute : 0; - var second = parseInt(matches[6], 10); - second = second >= 0 && second <= 59 ? second : 0; - var universalTimeRelation = matches[7] || "Z"; - var offsetHour = parseInt(matches[8], 10); - offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; - var offsetMinute = parseInt(matches[9], 10) || 0; - offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; - - if (universalTimeRelation === "-") { - hour += offsetHour; - minute += offsetMinute; - } else if (universalTimeRelation === "+") { - hour -= offsetHour; - minute -= offsetMinute; - } - - return new Date(Date.UTC(year, month, day, hour, minute, second)); - } - }]); - - return PDFDateString; -}(); - -exports.PDFDateString = PDFDateString; - -/***/ }), -/* 195 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); +})); exports.FontLoader = exports.FontFaceObject = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var BaseFontLoader = /*#__PURE__*/function () { - function BaseFontLoader(_ref) { - var docId = _ref.docId, - onUnsupportedFeature = _ref.onUnsupportedFeature; - - _classCallCheck(this, BaseFontLoader); +var _util = __w_pdfjs_require__(2); +class BaseFontLoader { + constructor({ + docId, + onUnsupportedFeature, + ownerDocument = globalThis.document, + styleElement = null + }) { if (this.constructor === BaseFontLoader) { (0, _util.unreachable)("Cannot initialize BaseFontLoader."); } this.docId = docId; this._onUnsupportedFeature = onUnsupportedFeature; + this._document = ownerDocument; this.nativeFontFaces = []; this.styleElement = null; } - _createClass(BaseFontLoader, [{ - key: "addNativeFontFace", - value: function addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - document.fonts.add(nativeFontFace); - } - }, { - key: "insertRule", - value: function insertRule(rule) { - var styleElement = this.styleElement; + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); - if (!styleElement) { - styleElement = this.styleElement = document.createElement("style"); - styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); - document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement); + this._document.fonts.add(nativeFontFace); + } + + insertRule(rule) { + let styleElement = this.styleElement; + + if (!styleElement) { + styleElement = this.styleElement = this._document.createElement("style"); + styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`; + + this._document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement); + } + + const styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + + clear() { + for (const nativeFontFace of this.nativeFontFaces) { + this._document.fonts.delete(nativeFontFace); + } + + this.nativeFontFaces.length = 0; + + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + + async bind(font) { + if (font.attached || font.missingFile) { + return; + } + + font.attached = true; + + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + + try { + await nativeFontFace.loaded; + } catch (ex) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative + }); + + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; + } } - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); + return; } - }, { - key: "clear", - value: function clear() { - this.nativeFontFaces.forEach(function (nativeFontFace) { - document.fonts["delete"](nativeFontFace); + + const rule = font.createFontFaceRule(); + + if (rule) { + this.insertRule(rule); + + if (this.isSyncFontLoadingSupported) { + return; + } + + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + + this._prepareFontLoadEvent([rule], [font], request); }); - this.nativeFontFaces.length = 0; - - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; - } } - }, { - key: "bind", - value: function () { - var _bind = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(font) { - var _this = this; + } - var nativeFontFace, rule; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(font.attached || font.missingFile)) { - _context.next = 2; - break; - } + _queueLoadingCallback(callback) { + (0, _util.unreachable)("Abstract method `_queueLoadingCallback`."); + } - return _context.abrupt("return"); + get isFontLoadingAPISupported() { + const hasFonts = !!this._document?.fonts; + return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts); + } - case 2: - font.attached = true; + get isSyncFontLoadingSupported() { + (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`."); + } - if (!this.isFontLoadingAPISupported) { - _context.next = 19; - break; - } + get _loadTestFont() { + (0, _util.unreachable)("Abstract method `_loadTestFont`."); + } - nativeFontFace = font.createNativeFontFace(); + _prepareFontLoadEvent(rules, fontsToLoad, request) { + (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`."); + } - if (!nativeFontFace) { - _context.next = 18; - break; - } +} - this.addNativeFontFace(nativeFontFace); - _context.prev = 7; - _context.next = 10; - return nativeFontFace.loaded; - - case 10: - _context.next = 18; - break; - - case 12: - _context.prev = 12; - _context.t0 = _context["catch"](7); - - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - - (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); - font.disableFontFace = true; - throw _context.t0; - - case 18: - return _context.abrupt("return"); - - case 19: - rule = font.createFontFaceRule(); - - if (!rule) { - _context.next = 26; - break; - } - - this.insertRule(rule); - - if (!this.isSyncFontLoadingSupported) { - _context.next = 24; - break; - } - - return _context.abrupt("return"); - - case 24: - _context.next = 26; - return new Promise(function (resolve) { - var request = _this._queueLoadingCallback(resolve); - - _this._prepareFontLoadEvent([rule], [font], request); - }); - - case 26: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[7, 12]]); - })); - - function bind(_x) { - return _bind.apply(this, arguments); - } - - return bind; - }() - }, { - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - (0, _util.unreachable)("Abstract method `_queueLoadingCallback`."); - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { - (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`."); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - var supported = typeof document !== "undefined" && !!document.fonts; - return (0, _util.shadow)(this, "isFontLoadingAPISupported", supported); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`."); - } - }, { - key: "_loadTestFont", - get: function get() { - (0, _util.unreachable)("Abstract method `_loadTestFont`."); - } - }]); - - return BaseFontLoader; -}(); - -var FontLoader; +let FontLoader; exports.FontLoader = FontLoader; { - exports.FontLoader = FontLoader = /*#__PURE__*/function (_BaseFontLoader) { - _inherits(GenericFontLoader, _BaseFontLoader); - - function GenericFontLoader(docId) { - var _this2; - - _classCallCheck(this, GenericFontLoader); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); - _this2.loadingContext = { + exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader { + constructor(params) { + super(params); + this.loadingContext = { requests: [], nextRequestId: 0 }; - _this2.loadTestFontId = 0; - return _this2; + this.loadTestFontId = 0; } - _createClass(GenericFontLoader, [{ - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - function completeRequest() { - (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); - request.done = true; + get isSyncFontLoadingSupported() { + let supported = false; - while (context.requests.length > 0 && context.requests[0].done) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); - } - } + if (typeof navigator === "undefined") { + supported = true; + } else { + const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - var context = this.loadingContext; - var request = { - id: "pdfjs-font-loading-".concat(context.nextRequestId++), - done: false, - complete: completeRequest, - callback: callback - }; - context.requests.push(request); - return request; - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fonts, request) { - function int32(data, offset) { - return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; - } - - function spliceString(s, offset, remove, insert) { - var chunk1 = s.substring(0, offset); - var chunk2 = s.substring(offset + remove); - return chunk1 + insert + chunk2; - } - - var i, ii; - var canvas = document.createElement("canvas"); - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext("2d"); - var called = 0; - - function isFontReady(name, callback) { - called++; - - if (called > 30) { - (0, _util.warn)("Load test font never loaded."); - callback(); - return; - } - - ctx.font = "30px " + name; - ctx.fillText(".", 0, 20); - var imageData = ctx.getImageData(0, 0, 1, 1); - - if (imageData.data[3] > 0) { - callback(); - return; - } - - setTimeout(isFontReady.bind(null, name, callback)); - } - - var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); - var data = this._loadTestFont; - var COMMENT_OFFSET = 976; - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); - var CFF_CHECKSUM_OFFSET = 16; - var XXXX_VALUE = 0x58585858; - var checksum = int32(data, CFF_CHECKSUM_OFFSET); - - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; - } - - if (i < loadTestFontId.length) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; - } - - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); - var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); - this.insertRule(rule); - var names = []; - - for (i = 0, ii = fonts.length; i < ii; i++) { - names.push(fonts[i].loadedName); - } - - names.push(loadTestFontId); - var div = document.createElement("div"); - div.style.visibility = "hidden"; - div.style.width = div.style.height = "10px"; - div.style.position = "absolute"; - div.style.top = div.style.left = "0px"; - - for (i = 0, ii = names.length; i < ii; ++i) { - var span = document.createElement("span"); - span.textContent = "Hi"; - span.style.fontFamily = names[i]; - div.appendChild(span); - } - - document.body.appendChild(div); - isFontReady(loadTestFontId, function () { - document.body.removeChild(div); - request.complete(); - }); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - var supported = false; - - if (typeof navigator === "undefined") { + if (m?.[1] >= 14) { supported = true; - } else { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + } + } - if (m && m[1] >= 14) { - supported = true; - } + return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); + } + + _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); + request.done = true; + + while (context.requests.length > 0 && context.requests[0].done) { + const otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + + const context = this.loadingContext; + const request = { + id: `pdfjs-font-loading-${context.nextRequestId++}`, + done: false, + complete: completeRequest, + callback + }; + context.requests.push(request); + return request; + } + + get _loadTestFont() { + const getLoadTestFont = function () { + return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); + }; + + return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont()); + } + + _prepareFontLoadEvent(rules, fonts, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + + function spliceString(s, offset, remove, insert) { + const chunk1 = s.substring(0, offset); + const chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + + let i, ii; + + const canvas = this._document.createElement("canvas"); + + canvas.width = 1; + canvas.height = 1; + const ctx = canvas.getContext("2d"); + let called = 0; + + function isFontReady(name, callback) { + called++; + + if (called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; } - return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); - } - }, { - key: "_loadTestFont", - get: function get() { - var getLoadTestFont = function getLoadTestFont() { - return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); - }; + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); - return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont()); - } - }]); + if (imageData.data[3] > 0) { + callback(); + return; + } - return GenericFontLoader; - }(BaseFontLoader); + setTimeout(isFontReady.bind(null, name, callback)); + } + + const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; + let data = this._loadTestFont; + const COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + const CFF_CHECKSUM_OFFSET = 16; + const XXXX_VALUE = 0x58585858; + let checksum = int32(data, CFF_CHECKSUM_OFFSET); + + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; + } + + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + const url = `url(data:font/opentype;base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; + this.insertRule(rule); + const names = []; + + for (const font of fonts) { + names.push(font.loadedName); + } + + names.push(loadTestFontId); + + const div = this._document.createElement("div"); + + div.style.visibility = "hidden"; + div.style.width = div.style.height = "10px"; + div.style.position = "absolute"; + div.style.top = div.style.left = "0px"; + + for (const name of names) { + const span = this._document.createElement("span"); + + span.textContent = "Hi"; + span.style.fontFamily = name; + div.appendChild(span); + } + + this._document.body.appendChild(div); + + isFontReady(loadTestFontId, () => { + this._document.body.removeChild(div); + + request.complete(); + }); + } + + }; } -var FontFaceObject = /*#__PURE__*/function () { - function FontFaceObject(translatedData, _ref2) { - var _ref2$isEvalSupported = _ref2.isEvalSupported, - isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, - _ref2$disableFontFace = _ref2.disableFontFace, - disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, - _ref2$ignoreErrors = _ref2.ignoreErrors, - ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, - _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, - onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, - _ref2$fontRegistry = _ref2.fontRegistry, - fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; - - _classCallCheck(this, FontFaceObject); - +class FontFaceObject { + constructor(translatedData, { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + onUnsupportedFeature, + fontRegistry = null + }) { this.compiledGlyphs = Object.create(null); - for (var i in translatedData) { + for (const i in translatedData) { this[i] = translatedData[i]; } @@ -14688,305 +4288,463 @@ var FontFaceObject = /*#__PURE__*/function () { this.fontRegistry = fontRegistry; } - _createClass(FontFaceObject, [{ - key: "createNativeFontFace", - value: function createNativeFontFace() { - if (!this.data || this.disableFontFace) { - return null; - } - - var nativeFontFace = new FontFace(this.loadedName, this.data, {}); - - if (this.fontRegistry) { - this.fontRegistry.registerFont(this); - } - - return nativeFontFace; + createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; } - }, { - key: "createFontFaceRule", - value: function createFontFaceRule() { - if (!this.data || this.disableFontFace) { - return null; - } - var data = (0, _util.bytesToString)(new Uint8Array(this.data)); - var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); + let nativeFontFace; - if (this.fontRegistry) { - this.fontRegistry.registerFont(this, url); - } - - return rule; - } - }, { - key: "getPathGenerator", - value: function getPathGenerator(objs, character) { - if (this.compiledGlyphs[character] !== undefined) { - return this.compiledGlyphs[character]; - } - - var cmds, current; - - try { - cmds = objs.get(this.loadedName + "_path_" + character); - } catch (ex) { - if (!this.ignoreErrors) { - throw ex; - } - - if (this._onUnsupportedFeature) { - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - } - - (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); - return this.compiledGlyphs[character] = function (c, size) {}; - } - - if (this.isEvalSupported && _util.IsEvalSupportedCached.value) { - var args, - js = ""; - - for (var i = 0, ii = cmds.length; i < ii; i++) { - current = cmds[i]; - - if (current.args !== undefined) { - args = current.args.join(","); - } else { - args = ""; - } - - js += "c." + current.cmd + "(" + args + ");\n"; - } - - return this.compiledGlyphs[character] = new Function("c", "size", js); - } - - return this.compiledGlyphs[character] = function (c, size) { - for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { - current = cmds[_i]; - - if (current.cmd === "scale") { - current.args = [size, -size]; - } - - c[current.cmd].apply(c, current.args); - } + if (!this.cssFontInfo) { + nativeFontFace = new FontFace(this.loadedName, this.data, {}); + } else { + const css = { + weight: this.cssFontInfo.fontWeight }; - } - }]); - return FontFaceObject; -}(); + if (this.cssFontInfo.italicAngle) { + css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; + } + + nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); + } + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this); + } + + return nativeFontFace; + } + + createFontFaceRule() { + if (!this.data || this.disableFontFace) { + return null; + } + + const data = (0, _util.bytesToString)(this.data); + const url = `url(data:${this.mimetype};base64,${btoa(data)});`; + let rule; + + if (!this.cssFontInfo) { + rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; + } else { + let css = `font-weight: ${this.cssFontInfo.fontWeight};`; + + if (this.cssFontInfo.italicAngle) { + css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`; + } + + rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`; + } + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this, url); + } + + return rule; + } + + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + + let cmds; + + try { + cmds = objs.get(this.loadedName + "_path_" + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath + }); + + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + + if (this.isEvalSupported && _util.IsEvalSupportedCached.value) { + const jsBuf = []; + + for (const current of cmds) { + const args = current.args !== undefined ? current.args.join(",") : ""; + jsBuf.push("c.", current.cmd, "(", args, ");\n"); + } + + return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join("")); + } + + return this.compiledGlyphs[character] = function (c, size) { + for (const current of cmds) { + if (current.cmd === "scale") { + current.args = [size, -size]; + } + + c[current.cmd].apply(c, current.args); + } + }; + } + +} exports.FontFaceObject = FontFaceObject; /***/ }), -/* 196 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 8 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var compatibilityParams = Object.create(null); -{ - var _require = __w_pdfjs_require__(48), - isNodeJS = _require.isNodeJS; - var userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; - var isIE = /Trident/.test(userAgent); - var isIOSChrome = /CriOS/.test(userAgent); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NodeStandardFontDataFactory = exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0; - (function checkOnBlobSupport() { - if (isIE || isIOSChrome) { - compatibilityParams.disableCreateObjectURL = true; +var _base_factory = __w_pdfjs_require__(5); + +var _is_node = __w_pdfjs_require__(4); + +var _util = __w_pdfjs_require__(2); + +let NodeCanvasFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCanvasFactory"); + } + +}; +exports.NodeCanvasFactory = NodeCanvasFactory; +let NodeCMapReaderFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCMapReaderFactory"); + } + +}; +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; +let NodeStandardFontDataFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeStandardFontDataFactory"); + } + +}; +exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory; + +if (_is_node.isNodeJS) { + const fetchData = function (url) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + + fs.readFile(url, (error, data) => { + if (error || !data) { + reject(new Error(error)); + return; + } + + resolve(new Uint8Array(data)); + }); + }); + }; + + exports.NodeCanvasFactory = NodeCanvasFactory = class extends _base_factory.BaseCanvasFactory { + _createCanvas(width, height) { + const Canvas = require("canvas"); + + return Canvas.createCanvas(width, height); } - })(); - (function checkFontFaceAndImage() { - if (isNodeJS) { - compatibilityParams.disableFontFace = true; - compatibilityParams.nativeImageDecoderSupport = "none"; + }; + exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url).then(data => { + return { + cMapData: data, + compressionType + }; + }); } - })(); + + }; + exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory = class extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url); + } + + }; } -exports.apiCompatibilityParams = Object.freeze(compatibilityParams); /***/ }), -/* 197 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 9 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.CanvasGraphics = void 0; +})); +exports.AnnotationStorage = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _pattern_helper = __w_pdfjs_require__(198); - -var MIN_FONT_SIZE = 16; -var MAX_FONT_SIZE = 100; -var MAX_GROUP_SIZE = 4096; -var MIN_WIDTH_FACTOR = 0.65; -var COMPILE_TYPE3_GLYPHS = true; -var MAX_SIZE_TO_COMPILE = 1000; -var FULL_CHUNK_HEIGHT = 16; - -function addContextCurrentTransform(ctx) { - if (!ctx.mozCurrentTransform) { - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - ctx._originalSetTransform = ctx.setTransform; - ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - Object.defineProperty(ctx, "mozCurrentTransform", { - get: function getCurrentTransform() { - return this._transformMatrix; - } - }); - Object.defineProperty(ctx, "mozCurrentTransformInverse", { - get: function getCurrentTransformInverse() { - var m = this._transformMatrix; - var a = m[0], - b = m[1], - c = m[2], - d = m[3], - e = m[4], - f = m[5]; - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc]; - } - }); - - ctx.save = function ctxSave() { - var old = this._transformMatrix; - - this._transformStack.push(old); - - this._transformMatrix = old.slice(0, 6); - - this._originalSave(); - }; - - ctx.restore = function ctxRestore() { - var prev = this._transformStack.pop(); - - if (prev) { - this._transformMatrix = prev; - - this._originalRestore(); - } - }; - - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - - this._originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] = m[0] * x; - m[1] = m[1] * x; - m[2] = m[2] * y; - m[3] = m[3] * y; - - this._originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]]; - - ctx._originalTransform(a, b, c, d, e, f); - }; - - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - this._transformMatrix = [a, b, c, d, e, f]; - - ctx._originalSetTransform(a, b, c, d, e, f); - }; - - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - var m = this._transformMatrix; - this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]]; - - this._originalRotate(angle); - }; +class AnnotationStorage { + constructor() { + this._storage = new Map(); + this._modified = false; + this.onSetModified = null; + this.onResetModified = null; } + + getValue(key, defaultValue) { + const obj = this._storage.get(key); + + return obj !== undefined ? obj : defaultValue; + } + + setValue(key, value) { + const obj = this._storage.get(key); + + let modified = false; + + if (obj !== undefined) { + for (const [entry, val] of Object.entries(value)) { + if (obj[entry] !== val) { + modified = true; + obj[entry] = val; + } + } + } else { + this._storage.set(key, value); + + modified = true; + } + + if (modified) { + this._setModified(); + } + } + + getAll() { + return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null; + } + + get size() { + return this._storage.size; + } + + _setModified() { + if (!this._modified) { + this._modified = true; + + if (typeof this.onSetModified === "function") { + this.onSetModified(); + } + } + } + + resetModified() { + if (this._modified) { + this._modified = false; + + if (typeof this.onResetModified === "function") { + this.onResetModified(); + } + } + } + + get serializable() { + return this._storage.size > 0 ? this._storage : null; + } + } -var CachedCanvases = function CachedCanvasesClosure() { - function CachedCanvases(canvasFactory) { +exports.AnnotationStorage = AnnotationStorage; + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CanvasGraphics = void 0; + +var _util = __w_pdfjs_require__(2); + +var _pattern_helper = __w_pdfjs_require__(11); + +const MIN_FONT_SIZE = 16; +const MAX_FONT_SIZE = 100; +const MAX_GROUP_SIZE = 4096; +const COMPILE_TYPE3_GLYPHS = true; +const MAX_SIZE_TO_COMPILE = 1000; +const FULL_CHUNK_HEIGHT = 16; +const LINEWIDTH_SCALE_FACTOR = 1.000001; + +function addContextCurrentTransform(ctx) { + if (ctx.mozCurrentTransform) { + return; + } + + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + ctx._originalSetTransform = ctx.setTransform; + ctx._originalResetTransform = ctx.resetTransform; + ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; + ctx._transformStack = []; + + try { + const desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), "lineWidth"); + ctx._setLineWidth = desc.set; + ctx._getLineWidth = desc.get; + Object.defineProperty(ctx, "lineWidth", { + set: function setLineWidth(width) { + this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR); + }, + get: function getLineWidth() { + return this._getLineWidth(); + } + }); + } catch (_) {} + + Object.defineProperty(ctx, "mozCurrentTransform", { + get: function getCurrentTransform() { + return this._transformMatrix; + } + }); + Object.defineProperty(ctx, "mozCurrentTransformInverse", { + get: function getCurrentTransformInverse() { + const [a, b, c, d, e, f] = this._transformMatrix; + const ad_bc = a * d - b * c; + const bc_ad = b * c - a * d; + return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc]; + } + }); + + ctx.save = function ctxSave() { + const old = this._transformMatrix; + + this._transformStack.push(old); + + this._transformMatrix = old.slice(0, 6); + + this._originalSave(); + }; + + ctx.restore = function ctxRestore() { + const prev = this._transformStack.pop(); + + if (prev) { + this._transformMatrix = prev; + + this._originalRestore(); + } + }; + + ctx.translate = function ctxTranslate(x, y) { + const m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + + this._originalTranslate(x, y); + }; + + ctx.scale = function ctxScale(x, y) { + const m = this._transformMatrix; + m[0] *= x; + m[1] *= x; + m[2] *= y; + m[3] *= y; + + this._originalScale(x, y); + }; + + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + const m = this._transformMatrix; + this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]]; + + ctx._originalTransform(a, b, c, d, e, f); + }; + + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + this._transformMatrix = [a, b, c, d, e, f]; + + ctx._originalSetTransform(a, b, c, d, e, f); + }; + + ctx.resetTransform = function ctxResetTransform() { + this._transformMatrix = [1, 0, 0, 1, 0, 0]; + + ctx._originalResetTransform(); + }; + + ctx.rotate = function ctxRotate(angle) { + const cosValue = Math.cos(angle); + const sinValue = Math.sin(angle); + const m = this._transformMatrix; + this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]]; + + this._originalRotate(angle); + }; +} + +class CachedCanvases { + constructor(canvasFactory) { this.canvasFactory = canvasFactory; this.cache = Object.create(null); } - CachedCanvases.prototype = { - getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { - var canvasEntry; + getCanvas(id, width, height, trackTransform) { + let canvasEntry; - if (this.cache[id] !== undefined) { - canvasEntry = this.cache[id]; - this.canvasFactory.reset(canvasEntry, width, height); - canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); - } else { - canvasEntry = this.canvasFactory.create(width, height); - this.cache[id] = canvasEntry; - } - - if (trackTransform) { - addContextCurrentTransform(canvasEntry.context); - } - - return canvasEntry; - }, - clear: function clear() { - for (var id in this.cache) { - var canvasEntry = this.cache[id]; - this.canvasFactory.destroy(canvasEntry); - delete this.cache[id]; - } + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; } - }; - return CachedCanvases; -}(); + + if (trackTransform) { + addContextCurrentTransform(canvasEntry.context); + } + + return canvasEntry; + } + + clear() { + for (const id in this.cache) { + const canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } + +} function compileType3Glyph(imgData) { - var POINT_TO_PROCESS_LIMIT = 1000; - var width = imgData.width, - height = imgData.height; - var i, - j, - j0, - width1 = width + 1; - var points = new Uint8Array(width1 * (height + 1)); - var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - var lineSize = width + 7 & ~7, - data0 = imgData.data; - var data = new Uint8Array(lineSize * height), - pos = 0, - ii; + const POINT_TO_PROCESS_LIMIT = 1000; + const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + const width = imgData.width, + height = imgData.height, + width1 = width + 1; + let i, ii, j, j0; + const points = new Uint8Array(width1 * (height + 1)); + const lineSize = width + 7 & ~7, + data0 = imgData.data; + const data = new Uint8Array(lineSize * height); + let pos = 0; for (i = 0, ii = data0.length; i < ii; i++) { - var mask = 128, - elem = data0[i]; + const elem = data0[i]; + let mask = 128; while (mask > 0) { data[pos++] = elem & mask ? 0 : 255; @@ -14994,7 +4752,7 @@ function compileType3Glyph(imgData) { } } - var count = 0; + let count = 0; pos = 0; if (data[pos] !== 0) { @@ -15025,7 +4783,7 @@ function compileType3Glyph(imgData) { ++count; } - var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); for (j = 1; j < width; j++) { sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); @@ -15074,12 +4832,12 @@ function compileType3Glyph(imgData) { return null; } - var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - var outlines = []; + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const outlines = []; for (i = 0; count && i <= height; i++) { - var p = i * width1; - var end = p + width; + let p = i * width1; + const end = p + width; while (p < end && !points[p]) { p++; @@ -15089,19 +4847,18 @@ function compileType3Glyph(imgData) { continue; } - var coords = [p % width1, i]; - var type = points[p], - p0 = p, - pp; + const coords = [p % width1, i]; + const p0 = p; + let type = points[p]; do { - var step = steps[type]; + const step = steps[type]; do { p += step; } while (!points[p]); - pp = points[p]; + const pp = points[p]; if (pp !== 5 && pp !== 10) { type = pp; @@ -15111,8 +4868,7 @@ function compileType3Glyph(imgData) { points[p] &= type >> 2 | type << 2; } - coords.push(p % width1); - coords.push(p / width1 | 0); + coords.push(p % width1, p / width1 | 0); if (!points[p]) { --count; @@ -15123,18 +4879,18 @@ function compileType3Glyph(imgData) { --i; } - var drawOutline = function drawOutline(c) { + const drawOutline = function (c) { c.save(); c.scale(1 / width, -1 / height); c.translate(0, -height); c.beginPath(); - for (var i = 0, ii = outlines.length; i < ii; i++) { - var o = outlines[i]; + for (let k = 0, kk = outlines.length; k < kk; k++) { + const o = outlines[k]; c.moveTo(o[0], o[1]); - for (var j = 2, jj = o.length; j < jj; j += 2) { - c.lineTo(o[j], o[j + 1]); + for (let l = 2, ll = o.length; l < ll; l += 2) { + c.lineTo(o[l], o[l + 1]); } } @@ -15146,8 +4902,8 @@ function compileType3Glyph(imgData) { return drawOutline; } -var CanvasExtraState = function CanvasExtraStateClosure() { - function CanvasExtraState() { +class CanvasExtraState { + constructor() { this.alphaIsShape = false; this.fontSize = 0; this.fontSizeScale = 1; @@ -15172,91 +4928,86 @@ var CanvasExtraState = function CanvasExtraStateClosure() { this.lineWidth = 1; this.activeSMask = null; this.resumeSMaskCtx = null; + this.transferMaps = null; } - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return CanvasExtraState; -}(); - -var CanvasGraphics = function CanvasGraphicsClosure() { - var EXECUTION_TIME = 15; - var EXECUTION_STEPS = 10; - - function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; - this.imageLayer = imageLayer; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.cachedCanvases = new CachedCanvases(this.canvasFactory); - - if (canvasCtx) { - addContextCurrentTransform(canvasCtx); - } - - this._cachedGetSinglePixelWidth = null; + clone() { + return Object.create(this); } - function putBinaryImageData(ctx, imgData) { + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + +} + +const CanvasGraphics = function CanvasGraphicsClosure() { + const EXECUTION_TIME = 15; + const EXECUTION_STEPS = 10; + + function putBinaryImageData(ctx, imgData, transferMaps = null) { if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { ctx.putImageData(imgData, 0, 0); return; } - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0, + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0, destPos; - var src = imgData.data; - var dest = chunkImgData.data; - var i, j, thisChunkHeight, elemsInThisChunk; + const src = imgData.data; + const dest = chunkImgData.data; + let i, j, thisChunkHeight, elemsInThisChunk; + let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; + + if (transferMaps) { + switch (transferMaps.length) { + case 1: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[0]; + transferMapBlue = transferMaps[0]; + transferMapGray = transferMaps[0]; + break; + + case 4: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[1]; + transferMapBlue = transferMaps[2]; + transferMapGray = transferMaps[3]; + break; + } + } if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { - var srcLength = src.byteLength; - var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); - var dest32DataLength = dest32.length; - var fullSrcDiff = width + 7 >> 3; - var white = 0xffffffff; - var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff; + const srcLength = src.byteLength; + const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + const dest32DataLength = dest32.length; + const fullSrcDiff = width + 7 >> 3; + let white = 0xffffffff; + let black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff; + + if (transferMapGray) { + if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { + [white, black] = [black, white]; + } + } for (i = 0; i < totalChunks; i++) { thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; destPos = 0; for (j = 0; j < thisChunkHeight; j++) { - var srcDiff = srcLength - srcPos; - var k = 0; - var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; - var kEndUnrolled = kEnd & ~7; - var mask = 0; - var srcByte = 0; + const srcDiff = srcLength - srcPos; + let k = 0; + const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + const kEndUnrolled = kEnd & ~7; + let mask = 0; + let srcByte = 0; for (; k < kEndUnrolled; k += 8) { srcByte = src[srcPos++]; @@ -15288,12 +5039,30 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); j = 0; elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; for (i = 0; i < fullChunks; i++) { dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); srcPos += elemsInThisChunk; + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); j += FULL_CHUNK_HEIGHT; } @@ -15301,9 +5070,27 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (i < totalChunks) { elemsInThisChunk = width * partialChunkHeight * 4; dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); } } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); thisChunkHeight = FULL_CHUNK_HEIGHT; elemsInThisChunk = width * thisChunkHeight; @@ -15322,34 +5109,51 @@ var CanvasGraphics = function CanvasGraphicsClosure() { dest[destPos++] = 255; } + if (hasTransferMaps) { + for (let k = 0; k < destPos; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else { - throw new Error("bad image kind: ".concat(imgData.kind)); + throw new Error(`bad image kind: ${imgData.kind}`); } } function putBinaryImageMask(ctx, imgData) { - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0; - var src = imgData.data; - var dest = chunkImgData.data; + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0; + const src = imgData.data; + const dest = chunkImgData.data; - for (var i = 0; i < totalChunks; i++) { - var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - var destPos = 3; + for (let i = 0; i < totalChunks; i++) { + const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + let destPos = 3; - for (var j = 0; j < thisChunkHeight; j++) { - var mask = 0; + for (let j = 0; j < thisChunkHeight; j++) { + let elem, + mask = 0; - for (var k = 0; k < width; k++) { + for (let k = 0; k < width; k++) { if (!mask) { - var elem = src[srcPos++]; + elem = src[srcPos++]; mask = 128; } @@ -15364,10 +5168,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function copyCtxState(sourceCtx, destCtx) { - var properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; + const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; - for (var i = 0, ii = properties.length; i < ii; i++) { - var property = properties[i]; + for (let i = 0, ii = properties.length; i < ii; i++) { + const property = properties[i]; if (sourceCtx[property] !== undefined) { destCtx[property] = sourceCtx[property]; @@ -15399,17 +5203,17 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function composeSMaskBackdrop(bytes, r0, g0, b0) { - var length = bytes.length; + const length = bytes.length; - for (var i = 3; i < length; i += 4) { - var alpha = bytes[i]; + for (let i = 3; i < length; i += 4) { + const alpha = bytes[i]; if (alpha === 0) { bytes[i - 3] = r0; bytes[i - 2] = g0; bytes[i - 1] = b0; } else if (alpha < 255) { - var alpha_ = 255 - alpha; + const alpha_ = 255 - alpha; bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; @@ -15418,30 +5222,30 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function composeSMaskAlpha(maskData, layerData, transferMap) { - var length = maskData.length; - var scale = 1 / 255; + const length = maskData.length; + const scale = 1 / 255; - for (var i = 3; i < length; i += 4) { - var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + for (let i = 3; i < length; i += 4) { + const alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; layerData[i] = layerData[i] * alpha * scale | 0; } } function composeSMaskLuminosity(maskData, layerData, transferMap) { - var length = maskData.length; + const length = maskData.length; - for (var i = 3; i < length; i += 4) { - var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + for (let i = 3; i < length; i += 4) { + const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; } } function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { - var hasBackdrop = !!backdrop; - var r0 = hasBackdrop ? backdrop[0] : 0; - var g0 = hasBackdrop ? backdrop[1] : 0; - var b0 = hasBackdrop ? backdrop[2] : 0; - var composeFn; + const hasBackdrop = !!backdrop; + const r0 = hasBackdrop ? backdrop[0] : 0; + const g0 = hasBackdrop ? backdrop[1] : 0; + const b0 = hasBackdrop ? backdrop[2] : 0; + let composeFn; if (subtype === "Luminosity") { composeFn = composeSMaskLuminosity; @@ -15449,13 +5253,13 @@ var CanvasGraphics = function CanvasGraphicsClosure() { composeFn = composeSMaskAlpha; } - var PIXELS_TO_PROCESS = 1048576; - var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + const PIXELS_TO_PROCESS = 1048576; + const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - for (var row = 0; row < height; row += chunkSize) { - var chunkHeight = Math.min(chunkSize, height - row); - var maskData = maskCtx.getImageData(0, row, width, chunkHeight); - var layerData = layerCtx.getImageData(0, row, width, chunkHeight); + for (let row = 0; row < height; row += chunkSize) { + const chunkHeight = Math.min(chunkSize, height - row); + const maskData = maskCtx.getImageData(0, row, width, chunkHeight); + const layerData = layerCtx.getImageData(0, row, width, chunkHeight); if (hasBackdrop) { composeSMaskBackdrop(maskData.data, r0, g0, b0); @@ -15466,51 +5270,68 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - function composeSMask(ctx, smask, layerCtx, webGLContext) { - var mask = smask.canvas; - var maskCtx = smask.context; + function composeSMask(ctx, smask, layerCtx) { + const mask = smask.canvas; + const maskCtx = smask.context; ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); - var backdrop = smask.backdrop || null; - - if (!smask.transferMap && webGLContext.isEnabled) { - var composed = webGLContext.composeSMask({ - layer: layerCtx.canvas, - mask: mask, - properties: { - subtype: smask.subtype, - backdrop: backdrop - } - }); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(composed, smask.offsetX, smask.offsetY); - return; - } - - genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); + genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, smask.backdrop, smask.transferMap); ctx.drawImage(mask, 0, 0); } - var LINE_CAP_STYLES = ["butt", "round", "square"]; - var LINE_JOIN_STYLES = ["miter", "round", "bevel"]; - var NORMAL_CLIP = {}; - var EO_CLIP = {}; - CanvasGraphics.prototype = { - beginDrawing: function beginDrawing(_ref) { - var transform = _ref.transform, - viewport = _ref.viewport, - _ref$transparency = _ref.transparency, - transparency = _ref$transparency === void 0 ? false : _ref$transparency, - _ref$background = _ref.background, - background = _ref$background === void 0 ? null : _ref$background; - var width = this.ctx.canvas.width; - var height = this.ctx.canvas.height; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; + const NORMAL_CLIP = {}; + const EO_CLIP = {}; + + class CanvasGraphics { + constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.imageLayer = imageLayer; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.contentVisible = true; + this.markedContentStack = []; + this.optionalContentConfig = optionalContentConfig; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + this.cachedPatterns = new Map(); + + if (canvasCtx) { + addContextCurrentTransform(canvasCtx); + } + + this._cachedGetSinglePixelWidth = null; + } + + beginDrawing({ + transform, + viewport, + transparency = false, + background = null + }) { + const width = this.ctx.canvas.width; + const height = this.ctx.canvas.height; this.ctx.save(); this.ctx.fillStyle = background || "rgb(255, 255, 255)"; this.ctx.fillRect(0, 0, width, height); this.ctx.restore(); if (transparency) { - var transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true); + const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true); this.compositeCtx = this.ctx; this.transparentCanvas = transparentCanvas.canvas; this.ctx = transparentCanvas.context; @@ -15527,27 +5348,29 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.ctx.transform.apply(this.ctx, viewport.transform); this.baseTransform = this.ctx.mozCurrentTransform.slice(); + this._combinedScaleFactor = Math.hypot(this.baseTransform[0], this.baseTransform[2]); if (this.imageLayer) { this.imageLayer.beginLayout(); } - }, - executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; + } + + executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + let i = executionStartIdx || 0; + const argsArrayLen = argsArray.length; if (argsArrayLen === i) { return i; } - var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; - var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - var steps = 0; - var commonObjs = this.commonObjs; - var objs = this.objs; - var fnId; + const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; + const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + let steps = 0; + const commonObjs = this.commonObjs; + const objs = this.objs; + let fnId; while (true) { if (stepper !== undefined && i === stepper.nextBreakPoint) { @@ -15560,32 +5383,12 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (fnId !== _util.OPS.dependency) { this[fnId].apply(this, argsArray[i]); } else { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - try { - for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var depObjId = _step.value; - var objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - - if (!objsPool.has(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; } } } @@ -15605,10 +5408,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { steps = 0; } } - }, - endDrawing: function CanvasGraphics_endDrawing() { - if (this.current.activeSMask !== null) { - this.endSMaskGroup(); + } + + endDrawing() { + while (this.stateStack.length || this.current.activeSMask !== null) { + this.restore(); } this.ctx.restore(); @@ -15623,40 +5427,135 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.cachedCanvases.clear(); - this.webGLContext.clear(); + this.cachedPatterns.clear(); if (this.imageLayer) { this.imageLayer.endLayout(); } - }, - setLineWidth: function CanvasGraphics_setLineWidth(width) { + } + + _scaleImage(img, inverseTransform) { + const width = img.width; + const height = img.height; + let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); + let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); + let paintWidth = width, + paintHeight = height; + let tmpCanvasId = "prescale1"; + let tmpCanvas, tmpCtx; + + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + let newWidth = paintWidth, + newHeight = paintHeight; + + if (widthScale > 2 && paintWidth > 1) { + newWidth = Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + + if (heightScale > 2 && paintHeight > 1) { + newHeight = Math.ceil(paintHeight / 2); + heightScale /= paintHeight / newHeight; + } + + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + img = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; + } + + return { + img, + paintWidth, + paintHeight + }; + } + + _createMaskCanvas(img) { + const ctx = this.ctx; + const width = img.width, + height = img.height; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; + putBinaryImageMask(maskCtx, img); + const objToCanvas = ctx.mozCurrentTransform; + + let maskToCanvas = _util.Util.transform(objToCanvas, [1 / width, 0, 0, -1 / height, 0, 0]); + + maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); + + const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas); + + const cord2 = _util.Util.applyTransform([width, height], maskToCanvas); + + const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); + + const drawnWidth = Math.ceil(rect[2] - rect[0]); + const drawnHeight = Math.ceil(rect[3] - rect[1]); + const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight, true); + const fillCtx = fillCanvas.context; + const offsetX = Math.min(cord1[0], cord2[0]); + const offsetY = Math.min(cord1[1], cord2[1]); + fillCtx.translate(-offsetX, -offsetY); + fillCtx.transform.apply(fillCtx, maskToCanvas); + + const scaled = this._scaleImage(maskCanvas.canvas, fillCtx.mozCurrentTransformInverse); + + fillCtx.drawImage(scaled.img, 0, 0, scaled.img.width, scaled.img.height, 0, 0, width, height); + fillCtx.globalCompositeOperation = "source-in"; + + const inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]); + + fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, false) : fillColor; + fillCtx.fillRect(0, 0, width, height); + return { + canvas: fillCanvas.canvas, + offsetX: Math.round(offsetX), + offsetY: Math.round(offsetY) + }; + } + + setLineWidth(width) { this.current.lineWidth = width; this.ctx.lineWidth = width; - }, - setLineCap: function CanvasGraphics_setLineCap(style) { + } + + setLineCap(style) { this.ctx.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function CanvasGraphics_setLineJoin(style) { + } + + setLineJoin(style) { this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { + } + + setMiterLimit(limit) { this.ctx.miterLimit = limit; - }, - setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { - var ctx = this.ctx; + } + + setDash(dashArray, dashPhase) { + const ctx = this.ctx; if (ctx.setLineDash !== undefined) { ctx.setLineDash(dashArray); ctx.lineDashOffset = dashPhase; } - }, - setRenderingIntent: function setRenderingIntent(intent) {}, - setFlatness: function setFlatness(flatness) {}, - setGState: function CanvasGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; + } + + setRenderingIntent(intent) {} + + setFlatness(flatness) {} + + setGState(states) { + for (let i = 0, ii = states.length; i < ii; i++) { + const state = states[i]; + const key = state[0]; + const value = state[1]; switch (key) { case "LW": @@ -15721,19 +5620,23 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.tempSMask = null; break; + + case "TR": + this.current.transferMaps = value; } } - }, - beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { - var activeSMask = this.current.activeSMask; - var drawnWidth = activeSMask.canvas.width; - var drawnHeight = activeSMask.canvas.height; - var cacheId = "smaskGroupAt" + this.groupLevel; - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var currentCtx = this.ctx; - var currentTransform = currentCtx.mozCurrentTransform; + } + + beginSMaskGroup() { + const activeSMask = this.current.activeSMask; + const drawnWidth = activeSMask.canvas.width; + const drawnHeight = activeSMask.canvas.height; + const cacheId = "smaskGroupAt" + this.groupLevel; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + const currentCtx = this.ctx; + const currentTransform = currentCtx.mozCurrentTransform; this.ctx.save(); - var groupCtx = scratchCanvas.context; + const groupCtx = scratchCanvas.context; groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); groupCtx.transform.apply(groupCtx, currentTransform); @@ -15743,52 +5646,57 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); this.groupStack.push(currentCtx); this.groupLevel++; - }, - suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; + } + + suspendSMaskGroup() { + const groupCtx = this.ctx; this.groupLevel--; this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); this.ctx.restore(); this.ctx.save(); copyCtxState(groupCtx, this.ctx); this.current.resumeSMaskCtx = groupCtx; - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); this.ctx.transform.apply(this.ctx, deltaTransform); groupCtx.save(); groupCtx.setTransform(1, 0, 0, 1, 0, 0); groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); groupCtx.restore(); - }, - resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.current.resumeSMaskCtx; - var currentCtx = this.ctx; + } + + resumeSMaskGroup() { + const groupCtx = this.current.resumeSMaskCtx; + const currentCtx = this.ctx; this.ctx = groupCtx; this.groupStack.push(currentCtx); this.groupLevel++; - }, - endSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; + } + + endSMaskGroup() { + const groupCtx = this.ctx; this.groupLevel--; this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); this.ctx.restore(); copyCtxState(groupCtx, this.ctx); - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); this.ctx.transform.apply(this.ctx, deltaTransform); - }, - save: function CanvasGraphics_save() { + } + + save() { this.ctx.save(); - var old = this.current; + const old = this.current; this.stateStack.push(old); this.current = old.clone(); this.current.resumeSMaskCtx = null; - }, - restore: function CanvasGraphics_restore() { + } + + restore() { if (this.current.resumeSMaskCtx) { this.resumeSMaskGroup(); } @@ -15802,42 +5710,42 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.ctx.restore(); this.pendingClip = null; this._cachedGetSinglePixelWidth = null; + } else { + this.current.activeSMask = null; } - }, - transform: function CanvasGraphics_transform(a, b, c, d, e, f) { + } + + transform(a, b, c, d, e, f) { this.ctx.transform(a, b, c, d, e, f); this._cachedGetSinglePixelWidth = null; - }, - constructPath: function CanvasGraphics_constructPath(ops, args) { - var ctx = this.ctx; - var current = this.current; - var x = current.x, + } + + constructPath(ops, args) { + const ctx = this.ctx; + const current = this.current; + let x = current.x, y = current.y; - for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { + for (let i = 0, j = 0, ii = ops.length; i < ii; i++) { switch (ops[i] | 0) { case _util.OPS.rectangle: x = args[j++]; y = args[j++]; - var width = args[j++]; - var height = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + ctx.moveTo(x, y); - if (width === 0) { - width = this.getSinglePixelWidth(); + if (width === 0 || height === 0) { + ctx.lineTo(xw, yh); + } else { + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); } - if (height === 0) { - height = this.getSinglePixelWidth(); - } - - var xw = x + width; - var yh = y + height; - this.ctx.moveTo(x, y); - this.ctx.lineTo(xw, y); - this.ctx.lineTo(xw, yh); - this.ctx.lineTo(x, yh); - this.ctx.lineTo(x, y); - this.ctx.closePath(); + ctx.closePath(); break; case _util.OPS.moveTo: @@ -15880,29 +5788,40 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } current.setCurrentPoint(x, y); - }, - closePath: function CanvasGraphics_closePath() { + } + + closePath() { this.ctx.closePath(); - }, - stroke: function CanvasGraphics_stroke(consumePath) { + } + + stroke(consumePath) { consumePath = typeof consumePath !== "undefined" ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; + const ctx = this.ctx; + const strokeColor = this.current.strokeColor; ctx.globalAlpha = this.current.strokeAlpha; - if (strokeColor && strokeColor.hasOwnProperty("type") && strokeColor.type === "Pattern") { - ctx.save(); - var transform = ctx.mozCurrentTransform; + if (this.contentVisible) { + if (typeof strokeColor === "object" && strokeColor?.getPattern) { + const lineWidth = this.getSinglePixelWidth(); + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse); + ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth); + ctx.stroke(); + ctx.restore(); + } else { + const lineWidth = this.getSinglePixelWidth(); - var scale = _util.Util.singularValueDecompose2dScale(transform)[0]; - - ctx.strokeStyle = strokeColor.getPattern(ctx, this); - ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale); - ctx.stroke(); - ctx.restore(); - } else { - ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); - ctx.stroke(); + if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) { + ctx.save(); + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + ctx.stroke(); + ctx.restore(); + } else { + ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth); + ctx.stroke(); + } + } } if (consumePath) { @@ -15910,34 +5829,33 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.globalAlpha = this.current.fillAlpha; - }, - closeStroke: function CanvasGraphics_closeStroke() { + } + + closeStroke() { this.closePath(); this.stroke(); - }, - fill: function CanvasGraphics_fill(consumePath) { + } + + fill(consumePath) { consumePath = typeof consumePath !== "undefined" ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var needRestore = false; + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + let needRestore = false; if (isPatternFill) { ctx.save(); - - if (this.baseTransform) { - ctx.setTransform.apply(ctx, this.baseTransform); - } - - ctx.fillStyle = fillColor.getPattern(ctx, this); + ctx.fillStyle = fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse); needRestore = true; } - if (this.pendingEOFill) { - ctx.fill("evenodd"); - this.pendingEOFill = false; - } else { - ctx.fill(); + if (this.contentVisible) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; + } else { + ctx.fill(); + } } if (needRestore) { @@ -15947,47 +5865,57 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (consumePath) { this.consumePath(); } - }, - eoFill: function CanvasGraphics_eoFill() { + } + + eoFill() { this.pendingEOFill = true; this.fill(); - }, - fillStroke: function CanvasGraphics_fillStroke() { + } + + fillStroke() { this.fill(false); this.stroke(false); this.consumePath(); - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { + } + + eoFillStroke() { this.pendingEOFill = true; this.fillStroke(); - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { + } + + closeFillStroke() { this.closePath(); this.fillStroke(); - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { + } + + closeEOFillStroke() { this.pendingEOFill = true; this.closePath(); this.fillStroke(); - }, - endPath: function CanvasGraphics_endPath() { + } + + endPath() { this.consumePath(); - }, - clip: function CanvasGraphics_clip() { + } + + clip() { this.pendingClip = NORMAL_CLIP; - }, - eoClip: function CanvasGraphics_eoClip() { + } + + eoClip() { this.pendingClip = EO_CLIP; - }, - beginText: function CanvasGraphics_beginText() { + } + + beginText() { this.current.textMatrix = _util.IDENTITY_MATRIX; this.current.textMatrixScale = 1; this.current.x = this.current.lineX = 0; this.current.y = this.current.lineY = 0; - }, - endText: function CanvasGraphics_endText() { - var paths = this.pendingTextPaths; - var ctx = this.ctx; + } + + endText() { + const paths = this.pendingTextPaths; + const ctx = this.ctx; if (paths === undefined) { ctx.beginPath(); @@ -15997,8 +5925,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.save(); ctx.beginPath(); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; + for (let i = 0; i < paths.length; i++) { + const path = paths[i]; ctx.setTransform.apply(ctx, path.transform); ctx.translate(path.x, path.y); path.addToPath(ctx, path.fontSize); @@ -16008,28 +5936,33 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.clip(); ctx.beginPath(); delete this.pendingTextPaths; - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { + } + + setCharSpacing(spacing) { this.current.charSpacing = spacing; - }, - setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { + } + + setWordSpacing(spacing) { this.current.wordSpacing = spacing; - }, - setHScale: function CanvasGraphics_setHScale(scale) { + } + + setHScale(scale) { this.current.textHScale = scale / 100; - }, - setLeading: function CanvasGraphics_setLeading(leading) { + } + + setLeading(leading) { this.current.leading = -leading; - }, - setFont: function CanvasGraphics_setFont(fontRefName, size) { - var fontObj = this.commonObjs.get(fontRefName); - var current = this.current; + } + + setFont(fontRefName, size) { + const fontObj = this.commonObjs.get(fontRefName); + const current = this.current; if (!fontObj) { - throw new Error("Can't find font for ".concat(fontRefName)); + throw new Error(`Can't find font for ${fontRefName}`); } - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { (0, _util.warn)("Invalid font matrix for font " + fontRefName); @@ -16049,8 +5982,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { return; } - var name = fontObj.loadedName || "sans-serif"; - var bold = "normal"; + const name = fontObj.loadedName || "sans-serif"; + let bold = "normal"; if (fontObj.black) { bold = "900"; @@ -16058,9 +5991,9 @@ var CanvasGraphics = function CanvasGraphicsClosure() { bold = "bold"; } - var italic = fontObj.italic ? "italic" : "normal"; - var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); - var browserFontSize = size; + const italic = fontObj.italic ? "italic" : "normal"; + const typeface = `"${name}", ${fontObj.fallbackName}`; + let browserFontSize = size; if (size < MIN_FONT_SIZE) { browserFontSize = MIN_FONT_SIZE; @@ -16069,41 +6002,48 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.current.fontSizeScale = size / browserFontSize; - this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); - }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { + this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; + } + + setTextRenderingMode(mode) { this.current.textRenderingMode = mode; - }, - setTextRise: function CanvasGraphics_setTextRise(rise) { + } + + setTextRise(rise) { this.current.textRise = rise; - }, - moveText: function CanvasGraphics_moveText(x, y) { + } + + moveText(x, y) { this.current.x = this.current.lineX += x; this.current.y = this.current.lineY += y; - }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { + } + + setLeadingMoveText(x, y) { this.setLeading(-y); this.moveText(x, y); - }, - setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { + } + + setTextMatrix(a, b, c, d, e, f) { this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.sqrt(a * a + b * b); + this.current.textMatrixScale = Math.hypot(a, b); this.current.x = this.current.lineX = 0; this.current.y = this.current.lineY = 0; - }, - nextLine: function CanvasGraphics_nextLine() { + } + + nextLine() { this.moveText(0, this.current.leading); - }, - paintChar: function paintChar(character, x, y, patternTransform) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var textRenderingMode = current.textRenderingMode; - var fontSize = current.fontSize / current.fontSizeScale; - var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - var patternFill = current.patternFill && font.data; - var addToPath; + } + + paintChar(character, x, y, patternTransform, resetLineWidthToOne) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const textRenderingMode = current.textRenderingMode; + const fontSize = current.fontSize / current.fontSizeScale; + const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + const patternFill = current.patternFill && !font.missingFile; + let addToPath; if (font.disableFontFace || isAddToPathSet || patternFill) { addToPath = font.getPathGenerator(this.commonObjs, character); @@ -16124,6 +6064,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (resetLineWidthToOne) { + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + } + ctx.stroke(); } @@ -16134,32 +6079,41 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); + if (resetLineWidthToOne) { + ctx.save(); + ctx.moveTo(x, y); + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + ctx.strokeText(character, 0, 0); + ctx.restore(); + } else { + ctx.strokeText(character, x, y); + } } } if (isAddToPathSet) { - var paths = this.pendingTextPaths || (this.pendingTextPaths = []); + const paths = this.pendingTextPaths || (this.pendingTextPaths = []); paths.push({ transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath + x, + y, + fontSize, + addToPath }); } - }, + } get isFontSubpixelAAEnabled() { - var _this$cachedCanvases$ = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10), - ctx = _this$cachedCanvases$.context; - + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); ctx.scale(1.5, 1); ctx.fillText("I", 0, 10); - var data = ctx.getImageData(0, 0, 10, 10).data; - var enabled = false; + const data = ctx.getImageData(0, 0, 10, 10).data; + let enabled = false; - for (var i = 3; i < data.length; i += 4) { + for (let i = 3; i < data.length; i += 4) { if (data[i] > 0 && data[i] < 255) { enabled = true; break; @@ -16167,40 +6121,40 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); - }, + } - showText: function CanvasGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; + showText(glyphs) { + const current = this.current; + const font = current.font; if (font.isType3Font) { return this.showType3Text(glyphs); } - var fontSize = current.fontSize; + const fontSize = current.fontSize; if (fontSize === 0) { return undefined; } - var ctx = this.ctx; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var spacingDir = vertical ? 1 : -1; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + const ctx = this.ctx; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const glyphsLength = glyphs.length; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; ctx.save(); - var patternTransform; + let patternTransform; if (current.patternFill) { ctx.save(); - var pattern = current.fillColor.getPattern(ctx, this); + const pattern = current.fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse); patternTransform = ctx.mozCurrentTransform; ctx.restore(); ctx.fillStyle = pattern; @@ -16215,15 +6169,17 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.scale(textHScale, 1); } - var lineWidth = current.lineWidth; - var scale = current.textMatrixScale; + let lineWidth = current.lineWidth; + let resetLineWidthToOne = false; + const scale = current.textMatrixScale; if (scale === 0 || lineWidth === 0) { - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { this._cachedGetSinglePixelWidth = null; - lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; + lineWidth = this.getSinglePixelWidth(); + resetLineWidthToOne = lineWidth < 0; } } else { lineWidth /= scale; @@ -16235,30 +6191,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.lineWidth = lineWidth; - var x = 0, + let x = 0, i; for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; + const glyph = glyphs[i]; if ((0, _util.isNum)(glyph)) { x += spacingDir * glyph * fontSize / 1000; continue; } - var restoreNeeded = false; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var character = glyph.fontChar; - var accent = glyph.accent; - var scaledX, scaledY, scaledAccentX, scaledAccentY; - var width = glyph.width; + let restoreNeeded = false; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + const accent = glyph.accent; + let scaledX, scaledY; + let width = glyph.width; if (vertical) { - var vmetric, vx, vy; - vmetric = glyph.vmetric || defaultVMetrics; - vx = glyph.vmetric ? vmetric[1] : width * 0.5; - vx = -vx * widthAdvanceScale; - vy = vmetric[2] * widthAdvanceScale; + const vmetric = glyph.vmetric || defaultVMetrics; + const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; width = vmetric ? -vmetric[0] : width; scaledX = vx / fontSizeScale; scaledY = (x + vy) / fontSizeScale; @@ -16268,10 +6222,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (font.remeasure && width > 0) { - var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; if (width < measuredWidth && this.isFontSubpixelAAEnabled) { - var characterScaleX = width / measuredWidth; + const characterScaleX = width / measuredWidth; restoreNeeded = true; ctx.save(); ctx.scale(characterScaleX, 1); @@ -16281,21 +6235,21 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - if (glyph.isInFont || font.missingFile) { + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { if (simpleFillText && !accent) { ctx.fillText(character, scaledX, scaledY); } else { - this.paintChar(character, scaledX, scaledY, patternTransform); + this.paintChar(character, scaledX, scaledY, patternTransform, resetLineWidthToOne); if (accent) { - scaledAccentX = scaledX + accent.offset.x / fontSizeScale; - scaledAccentY = scaledY - accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform, resetLineWidthToOne); } } } - var charWidth; + let charWidth; if (vertical) { charWidth = width * widthAdvanceScale - spacing * fontDirection; @@ -16317,21 +6271,23 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.restore(); - }, - showType3Text: function CanvasGraphics_showType3Text(glyphs) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var fontDirection = current.fontDirection; - var spacingDir = font.vertical ? 1 : -1; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale * fontDirection; - var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; - var glyphsLength = glyphs.length; - var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; - var i, glyph, width, spacingLength; + return undefined; + } + + showType3Text(glyphs) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + const fontDirection = current.fontDirection; + const spacingDir = font.vertical ? 1 : -1; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const textHScale = current.textHScale * fontDirection; + const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + const glyphsLength = glyphs.length; + const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + let i, glyph, width, spacingLength; if (isTextInvisible || fontSize === 0) { return; @@ -16353,22 +6309,24 @@ var CanvasGraphics = function CanvasGraphicsClosure() { continue; } - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var operatorList = font.charProcOperatorList[glyph.operatorListId]; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const operatorList = font.charProcOperatorList[glyph.operatorListId]; if (!operatorList) { - (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); + (0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); continue; } - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + } - var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); width = transformed[0] * fontSize + spacing; ctx.translate(width, 0); @@ -16377,91 +6335,120 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.restore(); this.processingType3 = null; - }, - setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + } + + setCharWidth(xWidth, yWidth) {} + + setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { this.ctx.rect(llx, lly, urx - llx, ury - lly); this.clip(); this.endPath(); - }, - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { - var _this = this; + } - var pattern; + getColorN_Pattern(IR) { + let pattern; if (IR[0] === "TilingPattern") { - var color = IR[1]; - var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); - var canvasGraphicsFactory = { - createCanvasGraphics: function createCanvasGraphics(ctx) { - return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); + const color = IR[1]; + const baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); + const canvasGraphicsFactory = { + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory); } }; pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); } else { - pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); + pattern = this._getPattern(IR[1]); } return pattern; - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN() { + } + + setStrokeColorN() { this.current.strokeColor = this.getColorN_Pattern(arguments); - }, - setFillColorN: function CanvasGraphics_setFillColorN() { + } + + setFillColorN() { this.current.fillColor = this.getColorN_Pattern(arguments); this.current.patternFill = true; - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); + } + + setStrokeRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); this.ctx.strokeStyle = color; this.current.strokeColor = color; - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); + } + + setFillRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); this.ctx.fillStyle = color; this.current.fillColor = color; this.current.patternFill = false; - }, - shadingFill: function CanvasGraphics_shadingFill(patternIR) { - var ctx = this.ctx; + } + + _getPattern(objId) { + if (this.cachedPatterns.has(objId)) { + return this.cachedPatterns.get(objId); + } + + const pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId)); + this.cachedPatterns.set(objId, pattern); + return pattern; + } + + shadingFill(objId) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; this.save(); - var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); - ctx.fillStyle = pattern.getPattern(ctx, this, true); - var inv = ctx.mozCurrentTransformInverse; + + const pattern = this._getPattern(objId); + + ctx.fillStyle = pattern.getPattern(ctx, this, ctx.mozCurrentTransformInverse, true); + const inv = ctx.mozCurrentTransformInverse; if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; + const canvas = ctx.canvas; + const width = canvas.width; + const height = canvas.height; - var bl = _util.Util.applyTransform([0, 0], inv); + const bl = _util.Util.applyTransform([0, 0], inv); - var br = _util.Util.applyTransform([0, height], inv); + const br = _util.Util.applyTransform([0, height], inv); - var ul = _util.Util.applyTransform([width, 0], inv); + const ul = _util.Util.applyTransform([width, 0], inv); - var ur = _util.Util.applyTransform([width, height], inv); + const ur = _util.Util.applyTransform([width, height], inv); - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); } else { this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); } this.restore(); - }, - beginInlineImage: function CanvasGraphics_beginInlineImage() { + } + + beginInlineImage() { (0, _util.unreachable)("Should not call beginInlineImage"); - }, - beginImageData: function CanvasGraphics_beginImageData() { + } + + beginImageData() { (0, _util.unreachable)("Should not call beginImageData"); - }, - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + } + + paintFormXObjectBegin(matrix, bbox) { + if (!this.contentVisible) { + return; + } + this.save(); this.baseTransformStack.push(this.baseTransform); @@ -16472,20 +6459,30 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.baseTransform = this.ctx.mozCurrentTransform; if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; this.ctx.rect(bbox[0], bbox[1], width, height); this.clip(); this.endPath(); } - }, - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + } + + paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); this.baseTransform = this.baseTransformStack.pop(); - }, - beginGroup: function CanvasGraphics_beginGroup(group) { + } + + beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); - var currentCtx = this.ctx; + const currentCtx = this.ctx; if (!group.isolated) { (0, _util.info)("TODO: Support non-isolated groups."); @@ -16495,7 +6492,7 @@ var CanvasGraphics = function CanvasGraphicsClosure() { (0, _util.warn)("Knockout groups not supported."); } - var currentTransform = currentCtx.mozCurrentTransform; + const currentTransform = currentCtx.mozCurrentTransform; if (group.matrix) { currentCtx.transform.apply(currentCtx, group.matrix); @@ -16505,15 +6502,15 @@ var CanvasGraphics = function CanvasGraphicsClosure() { throw new Error("Bounding box is required."); } - var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); + let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); - var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - var scaleX = 1, + const offsetX = Math.floor(bounds[0]); + const offsetY = Math.floor(bounds[1]); + let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + let scaleX = 1, scaleY = 1; if (drawnWidth > MAX_GROUP_SIZE) { @@ -16526,14 +6523,14 @@ var CanvasGraphics = function CanvasGraphicsClosure() { drawnHeight = MAX_GROUP_SIZE; } - var cacheId = "groupAt" + this.groupLevel; + let cacheId = "groupAt" + this.groupLevel; if (group.smask) { cacheId += "_smask_" + this.smaskCounter++ % 2; } - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var groupCtx = scratchCanvas.context; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + const groupCtx = scratchCanvas.context; groupCtx.scale(1 / scaleX, 1 / scaleY); groupCtx.translate(-offsetX, -offsetY); groupCtx.transform.apply(groupCtx, currentTransform); @@ -16542,10 +6539,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.smaskStack.push({ canvas: scratchCanvas.canvas, context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, + offsetX, + offsetY, + scaleX, + scaleY, subtype: group.smask.subtype, backdrop: group.smask.backdrop, transferMap: group.smask.transferMap || null, @@ -16563,10 +6560,15 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.groupStack.push(currentCtx); this.groupLevel++; this.current.activeSMask = null; - }, - endGroup: function CanvasGraphics_endGroup(group) { + } + + endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; - var groupCtx = this.ctx; + const groupCtx = this.ctx; this.ctx = this.groupStack.pop(); if (this.ctx.imageSmoothingEnabled !== undefined) { @@ -16582,25 +6584,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.restore(); - }, - beginAnnotations: function CanvasGraphics_beginAnnotations() { + } + + beginAnnotations() { this.save(); if (this.baseTransform) { this.ctx.setTransform.apply(this.ctx, this.baseTransform); } - }, - endAnnotations: function CanvasGraphics_endAnnotations() { + } + + endAnnotations() { this.restore(); - }, - beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { + } + + beginAnnotation(id, rect, transform, matrix) { this.save(); resetCtxToDefault(this.ctx); this.current = new CanvasExtraState(); if (Array.isArray(rect) && rect.length === 4) { - var width = rect[2] - rect[0]; - var height = rect[3] - rect[1]; + const width = rect[2] - rect[0]; + const height = rect[3] - rect[1]; this.ctx.rect(rect[0], rect[1], width, height); this.clip(); this.endPath(); @@ -16608,110 +6613,92 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.transform.apply(this, transform); this.transform.apply(this, matrix); - }, - endAnnotation: function CanvasGraphics_endAnnotation() { - this.restore(); - }, - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } - if (!domImage) { - (0, _util.warn)("Dependent image isn't ready yet"); + endAnnotation() { + this.restore(); + } + + paintImageMaskXObject(img) { + if (!this.contentVisible) { return; } - this.save(); - var ctx = this.ctx; - ctx.scale(1 / w, -1 / h); - ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); - - if (this.imageLayer) { - var currentTransform = ctx.mozCurrentTransformInverse; - var position = this.getCanvasPosition(0, 0); - this.imageLayer.appendImage({ - objId: objId, - left: position[0], - top: position[1], - width: w / currentTransform[0], - height: h / currentTransform[3] - }); - } - - this.restore(); - }, - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { - var ctx = this.ctx; - var width = img.width, - height = img.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var glyph = this.processingType3; + const ctx = this.ctx; + const width = img.width, + height = img.height; + const glyph = this.processingType3; if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { glyph.compiled = compileType3Glyph({ data: img.data, - width: width, - height: height + width, + height }); } else { glyph.compiled = null; } } - if (glyph && glyph.compiled) { + if (glyph?.compiled) { glyph.compiled(ctx); return; } - var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, img); - maskCtx.globalCompositeOperation = "source-in"; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - this.paintInlineImageXObject(maskCanvas.canvas); - }, - paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { - var width = imgData.width; - var height = imgData.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); - var maskCtx = maskCanvas.context; - maskCtx.save(); - putBinaryImageMask(maskCtx, imgData); - maskCtx.globalCompositeOperation = "source-in"; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - var ctx = this.ctx; + const mask = this._createMaskCanvas(img); - for (var i = 0, ii = positions.length; i < ii; i += 2) { - ctx.save(); - ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); - ctx.scale(1, -1); - ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); - ctx.restore(); + const maskCanvas = mask.canvas; + ctx.save(); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); + ctx.restore(); + } + + paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) { + if (!this.contentVisible) { + return; } - }, - paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - for (var i = 0, ii = images.length; i < ii; i++) { - var image = images[i]; - var width = image.width, - height = image.height; - var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); - var maskCtx = maskCanvas.context; + const ctx = this.ctx; + ctx.save(); + const currentTransform = ctx.mozCurrentTransform; + ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); + + const mask = this._createMaskCanvas(imgData); + + ctx.setTransform(1, 0, 0, 1, 0, 0); + + for (let i = 0, ii = positions.length; i < ii; i += 2) { + const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); + + const [x, y] = _util.Util.applyTransform([0, 0], trans); + + ctx.drawImage(mask.canvas, x, y); + } + + ctx.restore(); + } + + paintImageMaskXObjectGroup(images) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + + for (let i = 0, ii = images.length; i < ii; i++) { + const image = images[i]; + const width = image.width, + height = image.height; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, image); maskCtx.globalCompositeOperation = "source-in"; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, ctx.mozCurrentTransformInverse, false) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); ctx.save(); @@ -16720,9 +6707,14 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); ctx.restore(); } - }, - paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } + + paintImageXObject(objId) { + if (!this.contentVisible) { + return; + } + + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); if (!imgData) { (0, _util.warn)("Dependent image isn't ready yet"); @@ -16730,20 +6722,25 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.paintInlineImageXObject(imgData); - }, - paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } + + paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + if (!this.contentVisible) { + return; + } + + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); if (!imgData) { (0, _util.warn)("Dependent image isn't ready yet"); return; } - var width = imgData.width; - var height = imgData.height; - var map = []; + const width = imgData.width; + const height = imgData.height; + const map = []; - for (var i = 0, ii = positions.length; i < ii; i += 2) { + for (let i = 0, ii = positions.length; i < ii; i += 2) { map.push({ transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], x: 0, @@ -16754,93 +6751,70 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.paintInlineImageXObjectGroup(imgData, map); - }, - paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { - var width = imgData.width; - var height = imgData.height; - var ctx = this.ctx; + } + + paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + + const width = imgData.width; + const height = imgData.height; + const ctx = this.ctx; this.save(); ctx.scale(1 / width, -1 / height); - var currentTransform = ctx.mozCurrentTransformInverse; - var a = currentTransform[0], - b = currentTransform[1]; - var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); - var c = currentTransform[2], - d = currentTransform[3]; - var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); - var imgToPaint, tmpCanvas; + let imgToPaint; if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { imgToPaint = imgData; } else { - tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); imgToPaint = tmpCanvas.canvas; } - var paintWidth = width, - paintHeight = height; - var tmpCanvasId = "prescale1"; + const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse); - while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { - var newWidth = paintWidth, - newHeight = paintHeight; - - if (widthScale > 2 && paintWidth > 1) { - newWidth = Math.ceil(paintWidth / 2); - widthScale /= paintWidth / newWidth; - } - - if (heightScale > 2 && paintHeight > 1) { - newHeight = Math.ceil(paintHeight / 2); - heightScale /= paintHeight / newHeight; - } - - tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); - tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, newWidth, newHeight); - tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); - imgToPaint = tmpCanvas.canvas; - paintWidth = newWidth; - paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; - } - - ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); + ctx.drawImage(scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); if (this.imageLayer) { - var position = this.getCanvasPosition(0, -height); + const position = this.getCanvasPosition(0, -height); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], - width: width / currentTransform[0], - height: height / currentTransform[3] + width: width / ctx.mozCurrentTransformInverse[0], + height: height / ctx.mozCurrentTransformInverse[3] }); } this.restore(); - }, - paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + } - for (var i = 0, ii = map.length; i < ii; i++) { - var entry = map[i]; + paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; + const w = imgData.width; + const h = imgData.height; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); + + for (let i = 0, ii = map.length; i < ii; i++) { + const entry = map[i]; ctx.save(); ctx.transform.apply(ctx, entry.transform); ctx.scale(1, -1); ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); if (this.imageLayer) { - var position = this.getCanvasPosition(entry.x, entry.y); + const position = this.getCanvasPosition(entry.x, entry.y); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], width: w, @@ -16850,22 +6824,51 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.restore(); } - }, - paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + } + + paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); - }, - paintXObject: function CanvasGraphics_paintXObject() { - (0, _util.warn)("Unsupported 'paintXObject' command."); - }, - markPoint: function CanvasGraphics_markPoint(tag) {}, - markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, - endMarkedContent: function CanvasGraphics_endMarkedContent() {}, - beginCompat: function CanvasGraphics_beginCompat() {}, - endCompat: function CanvasGraphics_endCompat() {}, - consumePath: function CanvasGraphics_consumePath() { - var ctx = this.ctx; + } + + markPoint(tag) {} + + markPointProps(tag, properties) {} + + beginMarkedContent(tag) { + this.markedContentStack.push({ + visible: true + }); + } + + beginMarkedContentProps(tag, properties) { + if (tag === "OC") { + this.markedContentStack.push({ + visible: this.optionalContentConfig.isVisible(properties) + }); + } else { + this.markedContentStack.push({ + visible: true + }); + } + + this.contentVisible = this.isContentVisible(); + } + + endMarkedContent() { + this.markedContentStack.pop(); + this.contentVisible = this.isContentVisible(); + } + + beginCompat() {} + + endCompat() {} + + consumePath() { + const ctx = this.ctx; if (this.pendingClip) { if (this.pendingClip === EO_CLIP) { @@ -16878,22 +6881,46 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.beginPath(); - }, - getSinglePixelWidth: function getSinglePixelWidth(scale) { + } + + getSinglePixelWidth() { if (this._cachedGetSinglePixelWidth === null) { - var inverse = this.ctx.mozCurrentTransformInverse; - this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); + const m = this.ctx.mozCurrentTransform; + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const sqNorm1 = m[0] ** 2 + m[2] ** 2; + const sqNorm2 = m[1] ** 2 + m[3] ** 2; + const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet; + + if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) { + this._cachedGetSinglePixelWidth = -(this._combinedScaleFactor * pixelHeight); + } else if (absDet > Number.EPSILON) { + this._cachedGetSinglePixelWidth = pixelHeight; + } else { + this._cachedGetSinglePixelWidth = 1; + } } return this._cachedGetSinglePixelWidth; - }, - getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { - var transform = this.ctx.mozCurrentTransform; + } + + getCanvasPosition(x, y) { + const transform = this.ctx.mozCurrentTransform; return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; } - }; - for (var op in _util.OPS) { + isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; + } + } + + return true; + } + + } + + for (const op in _util.OPS) { CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; } @@ -16903,372 +6930,408 @@ var CanvasGraphics = function CanvasGraphicsClosure() { exports.CanvasGraphics = CanvasGraphics; /***/ }), -/* 198 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 11 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.getShadingPatternFromIR = getShadingPatternFromIR; +})); +exports.getShadingPattern = getShadingPattern; exports.TilingPattern = void 0; -var _util = __w_pdfjs_require__(1); - -var ShadingIRs = {}; +var _util = __w_pdfjs_require__(2); function applyBoundingBox(ctx, bbox) { if (!bbox || typeof Path2D === "undefined") { return; } - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var region = new Path2D(); + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const region = new Path2D(); region.rect(bbox[0], bbox[1], width, height); ctx.clip(region); } -ShadingIRs.RadialAxial = { - fromIR: function RadialAxial_fromIR(raw) { - var type = raw[1]; - var bbox = raw[2]; - var colorStops = raw[3]; - var p0 = raw[4]; - var p1 = raw[5]; - var r0 = raw[6]; - var r1 = raw[7]; - return { - type: "Pattern", - getPattern: function RadialAxial_getPattern(ctx) { - applyBoundingBox(ctx, bbox); - var grad; - - if (type === "axial") { - grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - } else if (type === "radial") { - grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); - } - - for (var i = 0, ii = colorStops.length; i < ii; ++i) { - var c = colorStops[i]; - grad.addColorStop(c[0], c[1]); - } - - return grad; - } - }; +class BaseShadingPattern { + constructor() { + if (this.constructor === BaseShadingPattern) { + (0, _util.unreachable)("Cannot initialize BaseShadingPattern."); + } } -}; -var createMeshCanvas = function createMeshCanvasClosure() { - function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - var coords = context.coords, + getPattern() { + (0, _util.unreachable)("Abstract method `getPattern` called."); + } + +} + +class RadialAxialShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._type = IR[1]; + this._bbox = IR[2]; + this._colorStops = IR[3]; + this._p0 = IR[4]; + this._p1 = IR[5]; + this._r0 = IR[6]; + this._r1 = IR[7]; + this._matrix = IR[8]; + this._patternCache = null; + } + + _createGradient(ctx) { + let grad; + + if (this._type === "axial") { + grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); + } else if (this._type === "radial") { + grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); + } + + for (const colorStop of this._colorStops) { + grad.addColorStop(colorStop[0], colorStop[1]); + } + + return grad; + } + + getPattern(ctx, owner, inverse, shadingFill = false) { + let pattern; + + if (this._patternCache) { + pattern = this._patternCache; + } else { + if (!shadingFill) { + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", owner.ctx.canvas.width, owner.ctx.canvas.height, true); + const tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.beginPath(); + tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.setTransform.apply(tmpCtx, owner.baseTransform); + + if (this._matrix) { + tmpCtx.transform.apply(tmpCtx, this._matrix); + } + + applyBoundingBox(tmpCtx, this._bbox); + tmpCtx.fillStyle = this._createGradient(tmpCtx); + tmpCtx.fill(); + pattern = ctx.createPattern(tmpCanvas.canvas, "repeat"); + } else { + applyBoundingBox(ctx, this._bbox); + pattern = this._createGradient(ctx); + } + + this._patternCache = pattern; + } + + if (!shadingFill) { + const domMatrix = new DOMMatrix(inverse); + + try { + pattern.setTransform(domMatrix); + } catch (ex) { + (0, _util.warn)(`RadialAxialShadingPattern.getPattern: "${ex?.message}".`); + } + } + + return pattern; + } + +} + +function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + const coords = context.coords, colors = context.colors; - var bytes = data.data, + const bytes = data.data, rowSize = data.width * 4; - var tmp; + let tmp; - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } - if (coords[p2 + 1] > coords[p3 + 1]) { - tmp = p2; - p2 = p3; - p3 = tmp; - tmp = c2; - c2 = c3; - c3 = tmp; - } + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; + } - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } - var x1 = (coords[p1] + context.offsetX) * context.scaleX; - var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - var x2 = (coords[p2] + context.offsetX) * context.scaleX; - var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - var x3 = (coords[p3] + context.offsetX) * context.scaleX; - var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + const x1 = (coords[p1] + context.offsetX) * context.scaleX; + const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + const x2 = (coords[p2] + context.offsetX) * context.scaleX; + const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + const x3 = (coords[p3] + context.offsetX) * context.scaleX; + const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - if (y1 >= y3) { - return; - } + if (y1 >= y3) { + return; + } - var c1r = colors[c1], + const c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2]; - var c2r = colors[c2], + const c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2]; - var c3r = colors[c3], + const c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2]; - var minY = Math.round(y1), + const minY = Math.round(y1), maxY = Math.round(y3); - var xa, car, cag, cab; - var xb, cbr, cbg, cbb; + let xa, car, cag, cab; + let xb, cbr, cbg, cbb; - for (var y = minY; y <= maxY; y++) { - if (y < y2) { - var _k = void 0; - - if (y < y1) { - _k = 0; - } else if (y1 === y2) { - _k = 1; - } else { - _k = (y1 - y) / (y1 - y2); - } - - xa = x1 - (x1 - x2) * _k; - car = c1r - (c1r - c2r) * _k; - cag = c1g - (c1g - c2g) * _k; - cab = c1b - (c1b - c2b) * _k; - } else { - var _k2 = void 0; - - if (y > y3) { - _k2 = 1; - } else if (y2 === y3) { - _k2 = 0; - } else { - _k2 = (y2 - y) / (y2 - y3); - } - - xa = x2 - (x2 - x3) * _k2; - car = c2r - (c2r - c3r) * _k2; - cag = c2g - (c2g - c3g) * _k2; - cab = c2b - (c2b - c3b) * _k2; - } - - var k = void 0; + for (let y = minY; y <= maxY; y++) { + if (y < y2) { + let k; if (y < y1) { k = 0; - } else if (y > y3) { - k = 1; } else { - k = (y1 - y) / (y1 - y3); + k = (y1 - y) / (y1 - y2); } - xb = x1 - (x1 - x3) * k; - cbr = c1r - (c1r - c3r) * k; - cbg = c1g - (c1g - c3g) * k; - cbb = c1b - (c1b - c3b) * k; - var x1_ = Math.round(Math.min(xa, xb)); - var x2_ = Math.round(Math.max(xa, xb)); - var j = rowSize * y + x1_ * 4; + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + let k; - for (var x = x1_; x <= x2_; x++) { - var _k3 = (xa - x) / (xa - xb); - - if (_k3 < 0) { - _k3 = 0; - } else if (_k3 > 1) { - _k3 = 1; - } - - bytes[j++] = car - (car - cbr) * _k3 | 0; - bytes[j++] = cag - (cag - cbg) * _k3 | 0; - bytes[j++] = cab - (cab - cbb) * _k3 | 0; - bytes[j++] = 255; + if (y > y3) { + k = 1; + } else if (y2 === y3) { + k = 0; + } else { + k = (y2 - y) / (y2 - y3); } + + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + + let k; + + if (y < y1) { + k = 0; + } else if (y > y3) { + k = 1; + } else { + k = (y1 - y) / (y1 - y3); + } + + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + const x1_ = Math.round(Math.min(xa, xb)); + const x2_ = Math.round(Math.max(xa, xb)); + let j = rowSize * y + x1_ * 4; + + for (let x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + + if (k < 0) { + k = 0; + } else if (k > 1) { + k = 1; + } + + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; } } +} - function drawFigure(data, figure, context) { - var ps = figure.coords; - var cs = figure.colors; - var i, ii; +function drawFigure(data, figure, context) { + const ps = figure.coords; + const cs = figure.colors; + let i, ii; - switch (figure.type) { - case "lattice": - var verticesPerRow = figure.verticesPerRow; - var rows = Math.floor(ps.length / verticesPerRow) - 1; - var cols = verticesPerRow - 1; + switch (figure.type) { + case "lattice": + const verticesPerRow = figure.verticesPerRow; + const rows = Math.floor(ps.length / verticesPerRow) - 1; + const cols = verticesPerRow - 1; - for (i = 0; i < rows; i++) { - var q = i * verticesPerRow; + for (i = 0; i < rows; i++) { + let q = i * verticesPerRow; - for (var j = 0; j < cols; j++, q++) { - drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); - drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); - } + for (let j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); } + } - break; + break; - case "triangles": - for (i = 0, ii = ps.length; i < ii; i += 3) { - drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); - } + case "triangles": + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } - break; + break; - default: - throw new Error("illegal figure"); - } + default: + throw new Error("illegal figure"); + } +} + +class MeshShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._coords = IR[2]; + this._colors = IR[3]; + this._figures = IR[4]; + this._bounds = IR[5]; + this._matrix = IR[6]; + this._bbox = IR[7]; + this._background = IR[8]; } - function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { - var EXPECTED_SCALE = 1.1; - var MAX_PATTERN_SIZE = 3000; - var BORDER_SIZE = 2; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var boundsWidth = Math.ceil(bounds[2]) - offsetX; - var boundsHeight = Math.ceil(bounds[3]) - offsetY; - var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var scaleX = boundsWidth / width; - var scaleY = boundsHeight / height; - var context = { - coords: coords, - colors: colors, + _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { + const EXPECTED_SCALE = 1.1; + const MAX_PATTERN_SIZE = 3000; + const BORDER_SIZE = 2; + const offsetX = Math.floor(this._bounds[0]); + const offsetY = Math.floor(this._bounds[1]); + const boundsWidth = Math.ceil(this._bounds[2]) - offsetX; + const boundsHeight = Math.ceil(this._bounds[3]) - offsetY; + const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const scaleX = boundsWidth / width; + const scaleY = boundsHeight / height; + const context = { + coords: this._coords, + colors: this._colors, offsetX: -offsetX, offsetY: -offsetY, scaleX: 1 / scaleX, scaleY: 1 / scaleY }; - var paddedWidth = width + BORDER_SIZE * 2; - var paddedHeight = height + BORDER_SIZE * 2; - var canvas, tmpCanvas, i, ii; + const paddedWidth = width + BORDER_SIZE * 2; + const paddedHeight = height + BORDER_SIZE * 2; + const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); + const tmpCtx = tmpCanvas.context; + const data = tmpCtx.createImageData(width, height); - if (webGLContext.isEnabled) { - canvas = webGLContext.drawFigures({ - width: width, - height: height, - backgroundColor: backgroundColor, - figures: figures, - context: context - }); - tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); - tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; - } else { - tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); - var tmpCtx = tmpCanvas.context; - var data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + const bytes = data.data; - if (backgroundColor) { - var bytes = data.data; - - for (i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } + for (let i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; } - - for (i = 0; i < figures.length; i++) { - drawFigure(data, figures[i], context); - } - - tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; } + for (const figure of this._figures) { + drawFigure(data, figure, context); + } + + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + const canvas = tmpCanvas.canvas; return { - canvas: canvas, + canvas, offsetX: offsetX - BORDER_SIZE * scaleX, offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX: scaleX, - scaleY: scaleY + scaleX, + scaleY }; } - return createMeshCanvas; -}(); + getPattern(ctx, owner, inverse, shadingFill = false) { + applyBoundingBox(ctx, this._bbox); + let scale; -ShadingIRs.Mesh = { - fromIR: function Mesh_fromIR(raw) { - var coords = raw[2]; - var colors = raw[3]; - var figures = raw[4]; - var bounds = raw[5]; - var matrix = raw[6]; - var bbox = raw[7]; - var background = raw[8]; - return { - type: "Pattern", - getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { - applyBoundingBox(ctx, bbox); - var scale; + if (shadingFill) { + scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); - if (shadingFill) { - scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); - } else { - scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (this._matrix) { + const matrixScale = _util.Util.singularValueDecompose2dScale(this._matrix); - if (matrix) { - var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); - - scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; - } - } - - var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); - - if (!shadingFill) { - ctx.setTransform.apply(ctx, owner.baseTransform); - - if (matrix) { - ctx.transform.apply(ctx, matrix); - } - } - - ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; } - }; - } -}; -ShadingIRs.Dummy = { - fromIR: function Dummy_fromIR() { - return { - type: "Pattern", - getPattern: function Dummy_fromIR_getPattern() { - return "hotpink"; + } + + const temporaryPatternCanvas = this._createMeshCanvas(scale, shadingFill ? null : this._background, owner.cachedCanvases); + + if (!shadingFill) { + ctx.setTransform.apply(ctx, owner.baseTransform); + + if (this._matrix) { + ctx.transform.apply(ctx, this._matrix); } - }; - } -}; + } -function getShadingPatternFromIR(raw) { - var shadingIR = ShadingIRs[raw[0]]; - - if (!shadingIR) { - throw new Error("Unknown IR type: ".concat(raw[0])); + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); } - return shadingIR.fromIR(raw); } -var TilingPattern = function TilingPatternClosure() { - var PaintType = { - COLORED: 1, - UNCOLORED: 2 - }; - var MAX_PATTERN_SIZE = 3000; +class DummyShadingPattern extends BaseShadingPattern { + getPattern() { + return "hotpink"; + } - function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { +} + +function getShadingPattern(IR) { + switch (IR[0]) { + case "RadialAxial": + return new RadialAxialShadingPattern(IR); + + case "Mesh": + return new MeshShadingPattern(IR); + + case "Dummy": + return new DummyShadingPattern(); + } + + throw new Error(`Unknown IR type: ${IR[0]}`); +} + +const PaintType = { + COLORED: 1, + UNCOLORED: 2 +}; + +class TilingPattern { + static get MAX_PATTERN_SIZE() { + return (0, _util.shadow)(this, "MAX_PATTERN_SIZE", 3000); + } + + constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) { this.operatorList = IR[2]; this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; this.bbox = IR[4]; @@ -17277,164 +7340,184 @@ var TilingPattern = function TilingPatternClosure() { this.paintType = IR[7]; this.tilingType = IR[8]; this.color = color; + this.ctx = ctx; this.canvasGraphicsFactory = canvasGraphicsFactory; this.baseTransform = baseTransform; - this.type = "Pattern"; - this.ctx = ctx; } - TilingPattern.prototype = { - createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { - var operatorList = this.operatorList; - var bbox = this.bbox; - var xstep = this.xstep; - var ystep = this.ystep; - var paintType = this.paintType; - var tilingType = this.tilingType; - var color = this.color; - var canvasGraphicsFactory = this.canvasGraphicsFactory; - (0, _util.info)("TilingType: " + tilingType); - var x0 = bbox[0], + createPatternCanvas(owner) { + const operatorList = this.operatorList; + const bbox = this.bbox; + const xstep = this.xstep; + const ystep = this.ystep; + const paintType = this.paintType; + const tilingType = this.tilingType; + const color = this.color; + const canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)("TilingType: " + tilingType); + const x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3]; - var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); - var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); - var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; - var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); - var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); - var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); - var tmpCtx = tmpCanvas.context; - var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); - graphics.groupLevel = owner.groupLevel; - this.setFillAndStrokeStyleToContext(graphics, paintType, color); - graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); - graphics.transform(1, 0, 0, 1, -x0, -y0); - this.clipBbox(graphics, bbox, x0, y0, x1, y1); - graphics.executeOperatorList(operatorList); - this.ctx.transform(1, 0, 0, 1, x0, y0); - this.ctx.scale(1 / dimx.scale, 1 / dimy.scale); - return tmpCanvas.canvas; - }, - getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) { - step = Math.abs(step); - var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize); - var size = Math.ceil(step * scale); + const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); + const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); + const tmpCtx = tmpCanvas.context; + const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + let adjustedX0 = x0; + let adjustedY0 = y0; + let adjustedX1 = x1; + let adjustedY1 = y1; - if (size >= maxSize) { - size = maxSize; - } else { - scale = size / step; - } + if (x0 < 0) { + adjustedX0 = 0; + adjustedX1 += Math.abs(x0); + } - return { - scale: scale, - size: size - }; - }, - clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { - if (Array.isArray(bbox) && bbox.length === 4) { - var bboxWidth = x1 - x0; - var bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.clip(); - graphics.endPath(); - } - }, - setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { - var context = graphics.ctx, + if (y0 < 0) { + adjustedY0 = 0; + adjustedY1 += Math.abs(y0); + } + + tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); + graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice(); + graphics.executeOperatorList(operatorList); + graphics.endDrawing(); + return { + canvas: tmpCanvas.canvas, + scaleX: dimx.scale, + scaleY: dimy.scale, + offsetX: adjustedX0, + offsetY: adjustedY0 + }; + } + + getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); + let size = Math.ceil(step * scale); + + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; + } + + return { + scale, + size + }; + } + + clipBbox(graphics, x0, y0, x1, y1) { + const bboxWidth = x1 - x0; + const bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.clip(); + graphics.endPath(); + } + + setFillAndStrokeStyleToContext(graphics, paintType, color) { + const context = graphics.ctx, current = graphics.current; - switch (paintType) { - case PaintType.COLORED: - var ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - current.fillColor = ctx.fillStyle; - current.strokeColor = ctx.strokeStyle; - break; + switch (paintType) { + case PaintType.COLORED: + const ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; - case PaintType.UNCOLORED: - var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); + case PaintType.UNCOLORED: + const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - current.fillColor = cssColor; - current.strokeColor = cssColor; - break; + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; - default: - throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); - } - }, - getPattern: function TilingPattern_getPattern(ctx, owner) { - ctx = this.ctx; - ctx.setTransform.apply(ctx, this.baseTransform); - ctx.transform.apply(ctx, this.matrix); - var temporaryPatternCanvas = this.createPatternCanvas(owner); - return ctx.createPattern(temporaryPatternCanvas, "repeat"); + default: + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); } - }; - return TilingPattern; -}(); + } + + getPattern(ctx, owner, inverse, shadingFill = false) { + let matrix = inverse; + + if (!shadingFill) { + matrix = _util.Util.transform(matrix, owner.baseTransform); + + if (this.matrix) { + matrix = _util.Util.transform(matrix, this.matrix); + } + } + + const temporaryPatternCanvas = this.createPatternCanvas(owner); + let domMatrix = new DOMMatrix(matrix); + domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); + const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); + + try { + pattern.setTransform(domMatrix); + } catch (ex) { + (0, _util.warn)(`TilingPattern.getPattern: "${ex?.message}".`); + } + + return pattern; + } + +} exports.TilingPattern = TilingPattern; /***/ }), -/* 199 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 12 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GlobalWorkerOptions = void 0; -var GlobalWorkerOptions = Object.create(null); +const GlobalWorkerOptions = Object.create(null); exports.GlobalWorkerOptions = GlobalWorkerOptions; GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc; /***/ }), -/* 200 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 13 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.MessageHandler = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var CallbackKind = { +const CallbackKind = { UNKNOWN: 0, DATA: 1, ERROR: 2 }; -var StreamKind = { +const StreamKind = { UNKNOWN: 0, CANCEL: 1, CANCEL_COMPLETE: 2, @@ -17447,7 +7530,7 @@ var StreamKind = { }; function wrapReason(reason) { - if (_typeof(reason) !== "object" || reason === null) { + if (typeof reason !== "object" || reason === null) { return reason; } @@ -17469,12 +7552,8 @@ function wrapReason(reason) { } } -var MessageHandler = /*#__PURE__*/function () { - function MessageHandler(sourceName, targetName, comObj) { - var _this = this; - - _classCallCheck(this, MessageHandler); - +class MessageHandler { + constructor(sourceName, targetName, comObj) { this.sourceName = sourceName; this.targetName = targetName; this.comObj = comObj; @@ -17486,28 +7565,28 @@ var MessageHandler = /*#__PURE__*/function () { this.callbackCapabilities = Object.create(null); this.actionHandler = Object.create(null); - this._onComObjOnMessage = function (event) { - var data = event.data; + this._onComObjOnMessage = event => { + const data = event.data; - if (data.targetName !== _this.sourceName) { + if (data.targetName !== this.sourceName) { return; } if (data.stream) { - _this._processStreamMessage(data); + this._processStreamMessage(data); return; } if (data.callback) { - var callbackId = data.callbackId; - var capability = _this.callbackCapabilities[callbackId]; + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; if (!capability) { - throw new Error("Cannot resolve callback ".concat(callbackId)); + throw new Error(`Cannot resolve callback ${callbackId}`); } - delete _this.callbackCapabilities[callbackId]; + delete this.callbackCapabilities[callbackId]; if (data.callback === CallbackKind.DATA) { capability.resolve(data.data); @@ -17520,29 +7599,29 @@ var MessageHandler = /*#__PURE__*/function () { return; } - var action = _this.actionHandler[data.action]; + const action = this.actionHandler[data.action]; if (!action) { - throw new Error("Unknown action from worker: ".concat(data.action)); + throw new Error(`Unknown action from worker: ${data.action}`); } if (data.callbackId) { - var _sourceName = _this.sourceName; - var _targetName = data.sourceName; + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; new Promise(function (resolve) { resolve(action(data.data)); }).then(function (result) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, + sourceName: cbSourceName, + targetName: cbTargetName, callback: CallbackKind.DATA, callbackId: data.callbackId, data: result }); }, function (reason) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, + sourceName: cbSourceName, + targetName: cbTargetName, callback: CallbackKind.ERROR, callbackId: data.callbackId, reason: wrapReason(reason) @@ -17552,7 +7631,7 @@ var MessageHandler = /*#__PURE__*/function () { } if (data.streamId) { - _this._createStreamSink(data); + this._createStreamSink(data); return; } @@ -17563,1133 +7642,642 @@ var MessageHandler = /*#__PURE__*/function () { comObj.addEventListener("message", this._onComObjOnMessage); } - _createClass(MessageHandler, [{ - key: "on", - value: function on(actionName, handler) { - var ah = this.actionHandler; + on(actionName, handler) { + const ah = this.actionHandler; - if (ah[actionName]) { - throw new Error("There is already an actionName called \"".concat(actionName, "\"")); - } - - ah[actionName] = handler; + if (ah[actionName]) { + throw new Error(`There is already an actionName called "${actionName}"`); } - }, { - key: "send", - value: function send(actionName, data, transfers) { + + ah[actionName] = handler; + } + + send(actionName, data, transfers) { + this._postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; + + try { this._postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: actionName, - data: data + callbackId, + data }, transfers); + } catch (ex) { + capability.reject(ex); } - }, { - key: "sendWithPromise", - value: function sendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackId++; - var capability = (0, _util.createPromiseCapability)(); - this.callbackCapabilities[callbackId] = capability; - try { + return capability.promise; + } + + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++; + const sourceName = this.sourceName; + const targetName = this.targetName; + const comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + this._postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, + sourceName, + targetName, action: actionName, - callbackId: callbackId, - data: data + streamId, + data, + desiredSize: controller.desiredSize }, transfers); - } catch (ex) { - capability.reject(ex); - } - return capability.promise; - } - }, { - key: "sendWithStream", - value: function sendWithStream(actionName, data, queueingStrategy, transfers) { - var _this2 = this; - - var streamId = this.streamId++; - var sourceName = this.sourceName; - var targetName = this.targetName; - var comObj = this.comObj; - return new ReadableStream({ - start: function start(controller) { - var startCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId] = { - controller: controller, - startCall: startCapability, - pullCall: null, - cancelCall: null, - isClosed: false - }; - - _this2._postMessage({ - sourceName: sourceName, - targetName: targetName, - action: actionName, - streamId: streamId, - data: data, - desiredSize: controller.desiredSize - }, transfers); - - return startCapability.promise; - }, - pull: function pull(controller) { - var pullCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].pullCall = pullCapability; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL, - streamId: streamId, - desiredSize: controller.desiredSize - }); - return pullCapability.promise; - }, - cancel: function cancel(reason) { - (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); - var cancelCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].cancelCall = cancelCapability; - _this2.streamControllers[streamId].isClosed = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL, - streamId: streamId, - reason: wrapReason(reason) - }); - return cancelCapability.promise; - } - }, queueingStrategy); - } - }, { - key: "_createStreamSink", - value: function _createStreamSink(data) { - var self = this; - var action = this.actionHandler[data.action]; - var streamId = data.streamId; - var sourceName = this.sourceName; - var targetName = data.sourceName; - var comObj = this.comObj; - var streamSink = { - enqueue: function enqueue(chunk) { - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var transfers = arguments.length > 2 ? arguments[2] : undefined; - - if (this.isCancelled) { - return; - } - - var lastDesiredSize = this.desiredSize; - this.desiredSize -= size; - - if (lastDesiredSize > 0 && this.desiredSize <= 0) { - this.sinkCapability = (0, _util.createPromiseCapability)(); - this.ready = this.sinkCapability.promise; - } - - self._postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.ENQUEUE, - streamId: streamId, - chunk: chunk - }, transfers); - }, - close: function close() { - if (this.isCancelled) { - return; - } - - this.isCancelled = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CLOSE, - streamId: streamId - }); - delete self.streamSinks[streamId]; - }, - error: function error(reason) { - (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); - - if (this.isCancelled) { - return; - } - - this.isCancelled = true; - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.ERROR, - streamId: streamId, - reason: wrapReason(reason) - }); - }, - sinkCapability: (0, _util.createPromiseCapability)(), - onPull: null, - onCancel: null, - isCancelled: false, - desiredSize: data.desiredSize, - ready: null - }; - streamSink.sinkCapability.resolve(); - streamSink.ready = streamSink.sinkCapability.promise; - this.streamSinks[streamId] = streamSink; - new Promise(function (resolve) { - resolve(action(data.data, streamSink)); - }).then(function () { + return startCapability.promise; + }, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.START_COMPLETE, - streamId: streamId, - success: true + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize }); - }, function (reason) { + return pullCapability.promise; + }, + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.START_COMPLETE, - streamId: streamId, + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, reason: wrapReason(reason) }); + return cancelCapability.promise; + } + }, queueingStrategy); + } + + _createStreamSink(data) { + const self = this; + const action = this.actionHandler[data.action]; + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; + const streamSink = { + enqueue(chunk, size = 1, transfers) { + if (this.isCancelled) { + return; + } + + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = (0, _util.createPromiseCapability)(); + this.ready = this.sinkCapability.promise; + } + + self._postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + + close() { + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId + }); + delete self.streamSinks[streamId]; + }, + + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + + if (this.isCancelled) { + return; + } + + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) + }); + }, + + sinkCapability: (0, _util.createPromiseCapability)(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true }); - } - }, { - key: "_processStreamMessage", - value: function _processStreamMessage(data) { - var streamId = data.streamId; - var sourceName = this.sourceName; - var targetName = data.sourceName; - var comObj = this.comObj; + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } - switch (data.stream) { - case StreamKind.START_COMPLETE: - if (data.success) { - this.streamControllers[streamId].startCall.resolve(); - } else { - this.streamControllers[streamId].startCall.reject(wrapReason(data.reason)); - } + _processStreamMessage(data) { + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; - break; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + this.streamControllers[streamId].startCall.resolve(); + } else { + this.streamControllers[streamId].startCall.reject(wrapReason(data.reason)); + } - case StreamKind.PULL_COMPLETE: - if (data.success) { - this.streamControllers[streamId].pullCall.resolve(); - } else { - this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason)); - } + break; - break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].pullCall.resolve(); + } else { + this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason)); + } - case StreamKind.PULL: - if (!this.streamSinks[streamId]) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - success: true - }); - break; - } + break; - if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) { - this.streamSinks[streamId].sinkCapability.resolve(); - } - - this.streamSinks[streamId].desiredSize = data.desiredSize; - var onPull = this.streamSinks[data.streamId].onPull; - new Promise(function (resolve) { - resolve(onPull && onPull()); - }).then(function () { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.PULL_COMPLETE, - streamId: streamId, - reason: wrapReason(reason) - }); + case StreamKind.PULL: + if (!this.streamSinks[streamId]) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true }); break; + } - case StreamKind.ENQUEUE: - (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller"); + if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[streamId].sinkCapability.resolve(); + } - if (this.streamControllers[streamId].isClosed) { - break; - } - - this.streamControllers[streamId].controller.enqueue(data.chunk); - break; - - case StreamKind.CLOSE: - (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller"); - - if (this.streamControllers[streamId].isClosed) { - break; - } - - this.streamControllers[streamId].isClosed = true; - this.streamControllers[streamId].controller.close(); - - this._deleteStreamController(streamId); - - break; - - case StreamKind.ERROR: - (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller"); - this.streamControllers[streamId].controller.error(wrapReason(data.reason)); - - this._deleteStreamController(streamId); - - break; - - case StreamKind.CANCEL_COMPLETE: - if (data.success) { - this.streamControllers[streamId].cancelCall.resolve(); - } else { - this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason)); - } - - this._deleteStreamController(streamId); - - break; - - case StreamKind.CANCEL: - if (!this.streamSinks[streamId]) { - break; - } - - var onCancel = this.streamSinks[data.streamId].onCancel; - new Promise(function (resolve) { - resolve(onCancel && onCancel(wrapReason(data.reason))); - }).then(function () { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId: streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId: streamId, - reason: wrapReason(reason) - }); + this.streamSinks[streamId].desiredSize = data.desiredSize; + const { + onPull + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onPull && onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true }); - this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason)); - this.streamSinks[streamId].isCancelled = true; - delete this.streamSinks[streamId]; + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + + case StreamKind.ENQUEUE: + (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller"); + + if (this.streamControllers[streamId].isClosed) { break; + } - default: - throw new Error("Unexpected stream case"); - } + this.streamControllers[streamId].controller.enqueue(data.chunk); + break; + + case StreamKind.CLOSE: + (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller"); + + if (this.streamControllers[streamId].isClosed) { + break; + } + + this.streamControllers[streamId].isClosed = true; + this.streamControllers[streamId].controller.close(); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.ERROR: + (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller"); + this.streamControllers[streamId].controller.error(wrapReason(data.reason)); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].cancelCall.resolve(); + } else { + this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason)); + } + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL: + if (!this.streamSinks[streamId]) { + break; + } + + const { + onCancel + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onCancel && onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[streamId].isCancelled = true; + delete this.streamSinks[streamId]; + break; + + default: + throw new Error("Unexpected stream case"); } - }, { - key: "_deleteStreamController", - value: function () { - var _deleteStreamController2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(streamId) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) { - return capability && capability.promise; - })); + } - case 2: - delete this.streamControllers[streamId]; + async _deleteStreamController(streamId) { + await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) { + return capability && capability.promise; + })); + delete this.streamControllers[streamId]; + } - case 3: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _deleteStreamController(_x) { - return _deleteStreamController2.apply(this, arguments); - } - - return _deleteStreamController; - }() - }, { - key: "_postMessage", - value: function _postMessage(message, transfers) { - if (transfers && this.postMessageTransfers) { - this.comObj.postMessage(message, transfers); - } else { - this.comObj.postMessage(message); - } + _postMessage(message, transfers) { + if (transfers && this.postMessageTransfers) { + this.comObj.postMessage(message, transfers); + } else { + this.comObj.postMessage(message); } - }, { - key: "destroy", - value: function destroy() { - this.comObj.removeEventListener("message", this._onComObjOnMessage); - } - }]); + } - return MessageHandler; -}(); + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } + +} exports.MessageHandler = MessageHandler; /***/ }), -/* 201 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 14 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.Metadata = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _xml_parser = __w_pdfjs_require__(202); - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var Metadata = /*#__PURE__*/function () { - function Metadata(data) { - _classCallCheck(this, Metadata); - - (0, _util.assert)(typeof data === "string", "Metadata: input is not a string"); - data = this._repair(data); - var parser = new _xml_parser.SimpleXMLParser(); - var xmlDocument = parser.parseFromString(data); - this._metadataMap = new Map(); - - if (xmlDocument) { - this._parse(xmlDocument); - } +class Metadata { + constructor({ + parsedData, + rawData + }) { + this._metadataMap = parsedData; + this._data = rawData; } - _createClass(Metadata, [{ - key: "_repair", - value: function _repair(data) { - return data.replace(/^[^<]+/, "").replace(/>\\376\\377([^<]+)/g, function (all, codes) { - var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { - return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); - }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { - switch (name) { - case "amp": - return "&"; + getRaw() { + return this._data; + } - case "apos": - return "'"; + get(name) { + return this._metadataMap.get(name) ?? null; + } - case "gt": - return ">"; + getAll() { + return (0, _util.objectFromMap)(this._metadataMap); + } - case "lt": - return "<"; + has(name) { + return this._metadataMap.has(name); + } - case "quot": - return '"'; - } - - throw new Error("_repair: ".concat(name, " isn't defined.")); - }); - var chars = ""; - - for (var i = 0, ii = bytes.length; i < ii; i += 2) { - var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - - if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { - chars += String.fromCharCode(code); - } else { - chars += "&#x" + (0x10000 + code).toString(16).substring(1) + ";"; - } - } - - return ">" + chars; - }); - } - }, { - key: "_parse", - value: function _parse(xmlDocument) { - var rdf = xmlDocument.documentElement; - - if (rdf.nodeName.toLowerCase() !== "rdf:rdf") { - rdf = rdf.firstChild; - - while (rdf && rdf.nodeName.toLowerCase() !== "rdf:rdf") { - rdf = rdf.nextSibling; - } - } - - var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; - - if (!rdf || nodeName !== "rdf:rdf" || !rdf.hasChildNodes()) { - return; - } - - var children = rdf.childNodes; - - for (var i = 0, ii = children.length; i < ii; i++) { - var desc = children[i]; - - if (desc.nodeName.toLowerCase() !== "rdf:description") { - continue; - } - - for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { - if (desc.childNodes[j].nodeName.toLowerCase() !== "#text") { - var entry = desc.childNodes[j]; - var name = entry.nodeName.toLowerCase(); - - this._metadataMap.set(name, entry.textContent.trim()); - } - } - } - } - }, { - key: "get", - value: function get(name) { - return this._metadataMap.has(name) ? this._metadataMap.get(name) : null; - } - }, { - key: "getAll", - value: function getAll() { - var obj = Object.create(null); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this._metadataMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _step$value = _slicedToArray(_step.value, 2), - key = _step$value[0], - value = _step$value[1]; - - obj[key] = value; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return obj; - } - }, { - key: "has", - value: function has(name) { - return this._metadataMap.has(name); - } - }]); - - return Metadata; -}(); +} exports.Metadata = Metadata; /***/ }), -/* 202 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 15 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.SimpleXMLParser = void 0; +})); +exports.OptionalContentConfig = void 0; -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +var _util = __w_pdfjs_require__(2); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +class OptionalContentGroup { + constructor(name, intent) { + this.visible = true; + this.name = name; + this.intent = intent; + } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var XMLParserErrorCode = { - NoError: 0, - EndOfDocument: -1, - UnterminatedCdat: -2, - UnterminatedXmlDeclaration: -3, - UnterminatedDoctypeDeclaration: -4, - UnterminatedComment: -5, - MalformedElement: -6, - OutOfMemory: -7, - UnterminatedAttributeValue: -8, - UnterminatedElement: -9, - ElementNeverBegun: -10 -}; - -function isWhitespace(s, index) { - var ch = s[index]; - return ch === " " || ch === "\n" || ch === "\r" || ch === "\t"; } -function isWhitespaceString(s) { - for (var i = 0, ii = s.length; i < ii; i++) { - if (!isWhitespace(s, i)) { - return false; +class OptionalContentConfig { + constructor(data) { + this.name = null; + this.creator = null; + this._order = null; + this._groups = new Map(); + + if (data === null) { + return; + } + + this.name = data.name; + this.creator = data.creator; + this._order = data.order; + + for (const group of data.groups) { + this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent)); + } + + if (data.baseState === "OFF") { + for (const group of this._groups) { + group.visible = false; + } + } + + for (const on of data.on) { + this._groups.get(on).visible = true; + } + + for (const off of data.off) { + this._groups.get(off).visible = false; } } - return true; + _evaluateVisibilityExpression(array) { + const length = array.length; + + if (length < 2) { + return true; + } + + const operator = array[0]; + + for (let i = 1; i < length; i++) { + const element = array[i]; + let state; + + if (Array.isArray(element)) { + state = this._evaluateVisibilityExpression(element); + } else if (this._groups.has(element)) { + state = this._groups.get(element).visible; + } else { + (0, _util.warn)(`Optional content group not found: ${element}`); + return true; + } + + switch (operator) { + case "And": + if (!state) { + return false; + } + + break; + + case "Or": + if (state) { + return true; + } + + break; + + case "Not": + return !state; + + default: + return true; + } + } + + return operator === "And"; + } + + isVisible(group) { + if (group.type === "OCG") { + if (!this._groups.has(group.id)) { + (0, _util.warn)(`Optional content group not found: ${group.id}`); + return true; + } + + return this._groups.get(group.id).visible; + } else if (group.type === "OCMD") { + if (group.expression) { + return this._evaluateVisibilityExpression(group.expression); + } + + if (!group.policy || group.policy === "AnyOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return false; + } + } + + return true; + } else if (group.policy === "AnyOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return false; + } + } + + return true; + } + + (0, _util.warn)(`Unknown optional content policy ${group.policy}.`); + return true; + } + + (0, _util.warn)(`Unknown group type ${group.type}.`); + return true; + } + + setVisibility(id, visible = true) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return; + } + + this._groups.get(id).visible = !!visible; + } + + getOrder() { + if (!this._groups.size) { + return null; + } + + if (this._order) { + return this._order.slice(); + } + + return Array.from(this._groups.keys()); + } + + getGroups() { + return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null; + } + + getGroup(id) { + return this._groups.get(id) || null; + } + } -var XMLParserBase = /*#__PURE__*/function () { - function XMLParserBase() { - _classCallCheck(this, XMLParserBase); - } - - _createClass(XMLParserBase, [{ - key: "_resolveEntities", - value: function _resolveEntities(s) { - var _this = this; - - return s.replace(/&([^;]+);/g, function (all, entity) { - if (entity.substring(0, 2) === "#x") { - return String.fromCharCode(parseInt(entity.substring(2), 16)); - } else if (entity.substring(0, 1) === "#") { - return String.fromCharCode(parseInt(entity.substring(1), 10)); - } - - switch (entity) { - case "lt": - return "<"; - - case "gt": - return ">"; - - case "amp": - return "&"; - - case "quot": - return '"'; - } - - return _this.onResolveEntity(entity); - }); - } - }, { - key: "_parseContent", - value: function _parseContent(s, start) { - var attributes = []; - var pos = start; - - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { - ++pos; - } - - var name = s.substring(start, pos); - skipWs(); - - while (pos < s.length && s[pos] !== ">" && s[pos] !== "/" && s[pos] !== "?") { - skipWs(); - var attrName = "", - attrValue = ""; - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== "=") { - attrName += s[pos]; - ++pos; - } - - skipWs(); - - if (s[pos] !== "=") { - return null; - } - - ++pos; - skipWs(); - var attrEndChar = s[pos]; - - if (attrEndChar !== '"' && attrEndChar !== "'") { - return null; - } - - var attrEndIndex = s.indexOf(attrEndChar, ++pos); - - if (attrEndIndex < 0) { - return null; - } - - attrValue = s.substring(pos, attrEndIndex); - attributes.push({ - name: attrName, - value: this._resolveEntities(attrValue) - }); - pos = attrEndIndex + 1; - skipWs(); - } - - return { - name: name, - attributes: attributes, - parsed: pos - start - }; - } - }, { - key: "_parseProcessingInstruction", - value: function _parseProcessingInstruction(s, start) { - var pos = start; - - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") { - ++pos; - } - - var name = s.substring(start, pos); - skipWs(); - var attrStart = pos; - - while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) { - ++pos; - } - - var value = s.substring(attrStart, pos); - return { - name: name, - value: value, - parsed: pos - start - }; - } - }, { - key: "parseXml", - value: function parseXml(s) { - var i = 0; - - while (i < s.length) { - var ch = s[i]; - var j = i; - - if (ch === "<") { - ++j; - var ch2 = s[j]; - var q = void 0; - - switch (ch2) { - case "/": - ++j; - q = s.indexOf(">", j); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedElement); - return; - } - - this.onEndElement(s.substring(j, q)); - j = q + 1; - break; - - case "?": - ++j; - - var pi = this._parseProcessingInstruction(s, j); - - if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== "?>") { - this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); - return; - } - - this.onPi(pi.name, pi.value); - j += pi.parsed + 2; - break; - - case "!": - if (s.substring(j + 1, j + 3) === "--") { - q = s.indexOf("-->", j + 3); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedComment); - return; - } - - this.onComment(s.substring(j + 3, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === "[CDATA[") { - q = s.indexOf("]]>", j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedCdat); - return; - } - - this.onCdata(s.substring(j + 8, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === "DOCTYPE") { - var q2 = s.indexOf("[", j + 8); - var complexDoctype = false; - q = s.indexOf(">", j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); - return; - } - - if (q2 > 0 && q > q2) { - q = s.indexOf("]>", j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); - return; - } - - complexDoctype = true; - } - - var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); - this.onDoctype(doctypeContent); - j = q + (complexDoctype ? 2 : 1); - } else { - this.onError(XMLParserErrorCode.MalformedElement); - return; - } - - break; - - default: - var content = this._parseContent(s, j); - - if (content === null) { - this.onError(XMLParserErrorCode.MalformedElement); - return; - } - - var isClosed = false; - - if (s.substring(j + content.parsed, j + content.parsed + 2) === "/>") { - isClosed = true; - } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== ">") { - this.onError(XMLParserErrorCode.UnterminatedElement); - return; - } - - this.onBeginElement(content.name, content.attributes, isClosed); - j += content.parsed + (isClosed ? 2 : 1); - break; - } - } else { - while (j < s.length && s[j] !== "<") { - j++; - } - - var text = s.substring(i, j); - this.onText(this._resolveEntities(text)); - } - - i = j; - } - } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - return "&".concat(name, ";"); - } - }, { - key: "onPi", - value: function onPi(name, value) {} - }, { - key: "onComment", - value: function onComment(text) {} - }, { - key: "onCdata", - value: function onCdata(text) {} - }, { - key: "onDoctype", - value: function onDoctype(doctypeContent) {} - }, { - key: "onText", - value: function onText(text) {} - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) {} - }, { - key: "onEndElement", - value: function onEndElement(name) {} - }, { - key: "onError", - value: function onError(code) {} - }]); - - return XMLParserBase; -}(); - -var SimpleDOMNode = /*#__PURE__*/function () { - function SimpleDOMNode(nodeName, nodeValue) { - _classCallCheck(this, SimpleDOMNode); - - this.nodeName = nodeName; - this.nodeValue = nodeValue; - Object.defineProperty(this, "parentNode", { - value: null, - writable: true - }); - } - - _createClass(SimpleDOMNode, [{ - key: "hasChildNodes", - value: function hasChildNodes() { - return this.childNodes && this.childNodes.length > 0; - } - }, { - key: "firstChild", - get: function get() { - return this.childNodes && this.childNodes[0]; - } - }, { - key: "nextSibling", - get: function get() { - var childNodes = this.parentNode.childNodes; - - if (!childNodes) { - return undefined; - } - - var index = childNodes.indexOf(this); - - if (index === -1) { - return undefined; - } - - return childNodes[index + 1]; - } - }, { - key: "textContent", - get: function get() { - if (!this.childNodes) { - return this.nodeValue || ""; - } - - return this.childNodes.map(function (child) { - return child.textContent; - }).join(""); - } - }]); - - return SimpleDOMNode; -}(); - -var SimpleXMLParser = /*#__PURE__*/function (_XMLParserBase) { - _inherits(SimpleXMLParser, _XMLParserBase); - - function SimpleXMLParser() { - var _this2; - - _classCallCheck(this, SimpleXMLParser); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); - _this2._currentFragment = null; - _this2._stack = null; - _this2._errorCode = XMLParserErrorCode.NoError; - return _this2; - } - - _createClass(SimpleXMLParser, [{ - key: "parseFromString", - value: function parseFromString(data) { - this._currentFragment = []; - this._stack = []; - this._errorCode = XMLParserErrorCode.NoError; - this.parseXml(data); - - if (this._errorCode !== XMLParserErrorCode.NoError) { - return undefined; - } - - var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), - documentElement = _this$_currentFragmen[0]; - - if (!documentElement) { - return undefined; - } - - return { - documentElement: documentElement - }; - } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - switch (name) { - case "apos": - return "'"; - } - - return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); - } - }, { - key: "onText", - value: function onText(text) { - if (isWhitespaceString(text)) { - return; - } - - var node = new SimpleDOMNode("#text", text); - - this._currentFragment.push(node); - } - }, { - key: "onCdata", - value: function onCdata(text) { - var node = new SimpleDOMNode("#text", text); - - this._currentFragment.push(node); - } - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) { - var node = new SimpleDOMNode(name); - node.childNodes = []; - - this._currentFragment.push(node); - - if (isEmpty) { - return; - } - - this._stack.push(this._currentFragment); - - this._currentFragment = node.childNodes; - } - }, { - key: "onEndElement", - value: function onEndElement(name) { - this._currentFragment = this._stack.pop() || []; - var lastElement = this._currentFragment[this._currentFragment.length - 1]; - - if (!lastElement) { - return; - } - - for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { - lastElement.childNodes[i].parentNode = lastElement; - } - } - }, { - key: "onError", - value: function onError(code) { - this._errorCode = code; - } - }]); - - return SimpleXMLParser; -}(XMLParserBase); - -exports.SimpleXMLParser = SimpleXMLParser; +exports.OptionalContentConfig = OptionalContentConfig; /***/ }), -/* 203 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 16 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFDataTransportStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFDataTransportStream = /*#__PURE__*/function () { - function PDFDataTransportStream(params, pdfDataRangeTransport) { - var _this = this; - - _classCallCheck(this, PDFDataTransportStream); - - (0, _util.assert)(pdfDataRangeTransport); +class PDFDataTransportStream { + constructor(params, pdfDataRangeTransport) { + (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); this._queuedChunks = []; this._progressiveDone = params.progressiveDone || false; - var initialData = params.initialData; + this._contentDispositionFilename = params.contentDispositionFilename || null; + const initialData = params.initialData; - if (initialData && initialData.length > 0) { - var buffer = new Uint8Array(initialData).buffer; + if (initialData?.length > 0) { + const buffer = new Uint8Array(initialData).buffer; this._queuedChunks.push(buffer); } @@ -18701,181 +8289,145 @@ var PDFDataTransportStream = /*#__PURE__*/function () { this._fullRequestReader = null; this._rangeReaders = []; - this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { - _this._onReceiveData({ - begin: begin, - chunk: chunk + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk }); }); - this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { - _this._onProgress({ - loaded: loaded, - total: total + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total }); }); - this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { - _this._onReceiveData({ - chunk: chunk + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk }); }); - this._pdfDataRangeTransport.addProgressiveDoneListener(function () { - _this._onProgressiveDone(); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); }); this._pdfDataRangeTransport.transportReady(); } - _createClass(PDFDataTransportStream, [{ - key: "_onReceiveData", - value: function _onReceiveData(args) { - var buffer = new Uint8Array(args.chunk).buffer; + _onReceiveData(args) { + const buffer = new Uint8Array(args.chunk).buffer; - if (args.begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } - } else { - var found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== args.begin) { - return false; - } - - rangeReader._enqueue(buffer); - - return true; - }); - - (0, _util.assert)(found); - } - } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (evt.total === undefined) { - var firstReader = this._rangeReaders[0]; - - if (firstReader && firstReader.onProgress) { - firstReader.onProgress({ - loaded: evt.loaded - }); - } - } else { - var fullReader = this._fullRequestReader; - - if (fullReader && fullReader.onProgress) { - fullReader.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - } - } - }, { - key: "_onProgressiveDone", - value: function _onProgressiveDone() { + if (args.begin === undefined) { if (this._fullRequestReader) { - this._fullRequestReader.progressiveDone(); + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); } + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } - this._progressiveDone = true; - } - }, { - key: "_removeRangeReader", - value: function _removeRangeReader(reader) { - var i = this._rangeReaders.indexOf(reader); + rangeReader._enqueue(buffer); - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - var queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); - } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var reader = new PDFDataTransportStreamRangeReader(this, begin, end); - - this._pdfDataRangeTransport.requestDataRange(begin, end); - - this._rangeReaders.push(reader); - - return reader; - } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var readers = this._rangeReaders.slice(0); - - readers.forEach(function (rangeReader) { - rangeReader.cancel(reason); + return true; }); - this._pdfDataRangeTransport.abort(); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFDataTransportStream; -}(); + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + _onProgress(evt) { + if (evt.total === undefined) { + const firstReader = this._rangeReaders[0]; + + if (firstReader?.onProgress) { + firstReader.onProgress({ + loaded: evt.loaded + }); + } + } else { + const fullReader = this._fullRequestReader; + + if (fullReader?.onProgress) { + fullReader.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + } + } + + _onProgressiveDone() { + if (this._fullRequestReader) { + this._fullRequestReader.progressiveDone(); + } + + this._progressiveDone = true; + } + + _removeRangeReader(reader) { + const i = this._rangeReaders.indexOf(reader); + + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); + const queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + const reader = new PDFDataTransportStreamRangeReader(this, begin, end); + + this._pdfDataRangeTransport.requestDataRange(begin, end); + + this._rangeReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + for (const reader of this._rangeReaders.slice(0)) { + reader.cancel(reason); + } + + this._pdfDataRangeTransport.abort(); + } + +} exports.PDFDataTransportStream = PDFDataTransportStream; -var PDFDataTransportStreamReader = /*#__PURE__*/function () { - function PDFDataTransportStreamReader(stream, queuedChunks) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataTransportStreamReader); - +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) { this._stream = stream; this._done = progressiveDone || false; - this._filename = null; + this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; this._queuedChunks = queuedChunks || []; this._loaded = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - try { - for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var chunk = _step.value; - this._loaded += chunk.byteLength; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; } this._requests = []; @@ -18884,135 +8436,94 @@ var PDFDataTransportStreamReader = /*#__PURE__*/function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunks.push(chunk); - } - - this._loaded += chunk.byteLength; + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(this._queuedChunks.length > 0)) { - _context.next = 3; - break; - } - chunk = this._queuedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - case 3: - if (!this._done) { - _context.next = 5; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 5: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); + } else { + this._queuedChunks.push(chunk); + } - this._requests = []; - } - }, { - key: "progressiveDone", - value: function progressiveDone() { - if (this._done) { - return; - } + this._loaded += chunk.byteLength; + } - this._done = true; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReady; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._stream._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._stream._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._stream._contentLength; - } - }]); + get headersReady() { + return this._headersReady; + } - return PDFDataTransportStreamReader; -}(); + get filename() { + return this._filename; + } -var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () { - function PDFDataTransportStreamRangeReader(stream, begin, end) { - _classCallCheck(this, PDFDataTransportStreamRangeReader); + get isRangeSupported() { + return this._stream._isRangeSupported; + } + get isStreamingSupported() { + return this._stream._isStreamingSupported; + } + + get contentLength() { + return this._stream._contentLength; + } + + async read() { + if (this._queuedChunks.length > 0) { + const chunk = this._queuedChunks.shift(); + + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + } + + progressiveDone() { + if (this._done) { + return; + } + + this._done = true; + } + +} + +class PDFDataTransportStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._begin = begin; this._end = end; @@ -19022,1016 +8533,2447 @@ var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamRangeReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length === 0) { - this._queuedChunk = chunk; - } else { - var requestsCapability = this._requests.shift(); - - requestsCapability.resolve({ - value: chunk, - done: false - }); - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - - this._requests = []; - } - - this._done = true; - - this._stream._removeRangeReader(this); + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this._queuedChunk) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); - case 4: - if (!this._done) { - _context2.next = 6; - break; - } + requestsCapability.resolve({ + value: chunk, + done: false + }); - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { + for (const requestCapability of this._requests) { requestCapability.resolve({ value: undefined, done: true }); - }); - - this._requests = []; - - this._stream._removeRangeReader(this); - } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - - return PDFDataTransportStreamRangeReader; -}(); - -/***/ }), -/* 204 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.WebGLContext = void 0; - -var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var WebGLContext = /*#__PURE__*/function () { - function WebGLContext(_ref) { - var _ref$enable = _ref.enable, - enable = _ref$enable === void 0 ? false : _ref$enable; - - _classCallCheck(this, WebGLContext); - - this._enabled = enable === true; - } - - _createClass(WebGLContext, [{ - key: "composeSMask", - value: function composeSMask(_ref2) { - var layer = _ref2.layer, - mask = _ref2.mask, - properties = _ref2.properties; - return WebGLUtils.composeSMask(layer, mask, properties); - } - }, { - key: "drawFigures", - value: function drawFigures(_ref3) { - var width = _ref3.width, - height = _ref3.height, - backgroundColor = _ref3.backgroundColor, - figures = _ref3.figures, - context = _ref3.context; - return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); - } - }, { - key: "clear", - value: function clear() { - WebGLUtils.cleanup(); - } - }, { - key: "isEnabled", - get: function get() { - var enabled = this._enabled; - - if (enabled) { - enabled = WebGLUtils.tryInitGL(); } - return (0, _util.shadow)(this, "isEnabled", enabled); - } - }]); - - return WebGLContext; -}(); - -exports.WebGLContext = WebGLContext; - -var WebGLUtils = function WebGLUtilsClosure() { - function loadShader(gl, code, shaderType) { - var shader = gl.createShader(shaderType); - gl.shaderSource(shader, code); - gl.compileShader(shader); - var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); - - if (!compiled) { - var errorMsg = gl.getShaderInfoLog(shader); - throw new Error("Error during shader compilation: " + errorMsg); + this._requests.length = 0; } - return shader; + this._done = true; + + this._stream._removeRangeReader(this); } - function createVertexShader(gl, code) { - return loadShader(gl, code, gl.VERTEX_SHADER); + get isStreamingSupported() { + return false; } - function createFragmentShader(gl, code) { - return loadShader(gl, code, gl.FRAGMENT_SHADER); - } - - function createProgram(gl, shaders) { - var program = gl.createProgram(); - - for (var i = 0, ii = shaders.length; i < ii; ++i) { - gl.attachShader(program, shaders[i]); + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; } - gl.linkProgram(program); - var linked = gl.getProgramParameter(program, gl.LINK_STATUS); - - if (!linked) { - var errorMsg = gl.getProgramInfoLog(program); - throw new Error("Error during program linking: " + errorMsg); + if (this._done) { + return { + value: undefined, + done: true + }; } - return program; + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; } - function createTexture(gl, image, textureId) { - gl.activeTexture(textureId); - var texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); - return texture; - } + cancel(reason) { + this._done = true; - var currentGL, currentCanvas; - - function generateGL() { - if (currentGL) { - return; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); } - currentCanvas = document.createElement("canvas"); - currentGL = currentCanvas.getContext("webgl", { - premultipliedalpha: false + this._requests.length = 0; + + this._stream._removeRangeReader(this); + } + +} + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayer = void 0; + +var _display_utils = __w_pdfjs_require__(1); + +var _util = __w_pdfjs_require__(2); + +var _annotation_storage = __w_pdfjs_require__(9); + +var _scripting_utils = __w_pdfjs_require__(18); + +class AnnotationElementFactory { + static create(parameters) { + const subtype = parameters.data.annotationType; + + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + + case _util.AnnotationType.WIDGET: + const fieldType = parameters.data.fieldType; + + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotationElement(parameters); + + case "Btn": + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + + return new PushButtonWidgetAnnotationElement(parameters); + + case "Ch": + return new ChoiceWidgetAnnotationElement(parameters); + } + + return new WidgetAnnotationElement(parameters); + + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + + default: + return new AnnotationElement(parameters); + } + } + +} + +class AnnotationElement { + constructor(parameters, { + isRenderable = false, + ignoreBorder = false, + createQuadrilaterals = false + } = {}) { + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderInteractiveForms = parameters.renderInteractiveForms; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + this.enableScripting = parameters.enableScripting; + this.hasJSActions = parameters.hasJSActions; + this._mouseState = parameters.mouseState; + + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + + if (createQuadrilaterals) { + this.quadrilaterals = this._createQuadrilaterals(ignoreBorder); + } + } + + _createContainer(ignoreBorder = false) { + const data = this.data, + page = this.page, + viewport = this.viewport; + const container = document.createElement("section"); + let width = data.rect[2] - data.rect[0]; + let height = data.rect[3] - data.rect[1]; + container.setAttribute("data-annotation-id", data.id); + + const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); + + container.style.transform = `matrix(${viewport.transform.join(",")})`; + container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`; + + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + + if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { + width -= 2 * data.borderStyle.width; + height -= 2 * data.borderStyle.width; + } + + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `${horizontalRadius}px / ${verticalRadius}px`; + container.style.borderRadius = radius; + } + + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = "solid"; + break; + + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = "dashed"; + break; + + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)("Unimplemented border style: beveled"); + break; + + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)("Unimplemented border style: inset"); + break; + + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = "solid"; + break; + + default: + break; + } + + if (data.color) { + container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + + container.style.left = `${rect[0]}px`; + container.style.top = `${rect[1]}px`; + container.style.width = `${width}px`; + container.style.height = `${height}px`; + return container; + } + + _createQuadrilaterals(ignoreBorder = false) { + if (!this.data.quadPoints) { + return null; + } + + const quadrilaterals = []; + const savedRect = this.data.rect; + + for (const quadPoint of this.data.quadPoints) { + this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y]; + quadrilaterals.push(this._createContainer(ignoreBorder)); + } + + this.data.rect = savedRect; + return quadrilaterals; + } + + _createPopup(trigger, data) { + let container = this.container; + + if (this.quadrilaterals) { + trigger = trigger || this.quadrilaterals; + container = this.quadrilaterals[0]; + } + + if (!trigger) { + trigger = document.createElement("div"); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + const popupElement = new PopupElement({ + container, + trigger, + color: data.color, + title: data.title, + modificationDate: data.modificationDate, + contents: data.contents, + hideWrapper: true + }); + const popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + } + + _renderQuadrilaterals(className) { + for (const quadrilateral of this.quadrilaterals) { + quadrilateral.className = className; + } + + return this.quadrilaterals; + } + + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + +} + +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions["Mouse Up"] || parameters.data.actions["Mouse Down"])); + super(parameters, { + isRenderable, + createQuadrilaterals: true }); } - var smaskVertexShaderCode = "\ - attribute vec2 a_position; \ - attribute vec2 a_texCoord; \ - \ - uniform vec2 u_resolution; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_texCoord = a_texCoord; \ - } "; - var smaskFragmentShaderCode = "\ - precision mediump float; \ - \ - uniform vec4 u_backdrop; \ - uniform int u_subtype; \ - uniform sampler2D u_image; \ - uniform sampler2D u_mask; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec4 imageColor = texture2D(u_image, v_texCoord); \ - vec4 maskColor = texture2D(u_mask, v_texCoord); \ - if (u_backdrop.a > 0.0) { \ - maskColor.rgb = maskColor.rgb * maskColor.a + \ - u_backdrop.rgb * (1.0 - maskColor.a); \ - } \ - float lum; \ - if (u_subtype == 0) { \ - lum = maskColor.a; \ - } else { \ - lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ - maskColor.b * 0.11; \ - } \ - imageColor.a *= lum; \ - imageColor.rgb *= imageColor.a; \ - gl_FragColor = imageColor; \ - } "; - var smaskCache = null; + render() { + const { + data, + linkService + } = this; + const link = document.createElement("a"); - function initSmaskGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, smaskVertexShaderCode); - var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution"); - cache.positionLocation = gl.getAttribLocation(program, "a_position"); - cache.backdropLocation = gl.getUniformLocation(program, "u_backdrop"); - cache.subtypeLocation = gl.getUniformLocation(program, "u_subtype"); - var texCoordLocation = gl.getAttribLocation(program, "a_texCoord"); - var texLayerLocation = gl.getUniformLocation(program, "u_image"); - var texMaskLocation = gl.getUniformLocation(program, "u_mask"); - var texCoordBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(texCoordLocation); - gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); - gl.uniform1i(texLayerLocation, 0); - gl.uniform1i(texMaskLocation, 1); - smaskCache = cache; - } - - function composeSMask(layer, mask, properties) { - var width = layer.width, - height = layer.height; - - if (!smaskCache) { - initSmaskGL(); - } - - var cache = smaskCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - - if (properties.backdrop) { - gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); + if (data.url) { + (0, _display_utils.addLinkAttributes)(link, { + url: data.url, + target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled + }); + } else if (data.action) { + this._bindNamedAction(link, data.action); + } else if (data.dest) { + this._bindLink(link, data.dest); + } else if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { + this._bindJSAction(link, data); } else { - gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + this._bindLink(link, ""); } - gl.uniform1i(cache.subtypeLocation, properties.subtype === "Luminosity" ? 1 : 0); - var texture = createTexture(gl, layer, gl.TEXTURE0); - var maskTexture = createTexture(gl, mask, gl.TEXTURE1); - var buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - gl.clearColor(0, 0, 0, 0); - gl.enable(gl.BLEND); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); - gl.clear(gl.COLOR_BUFFER_BIT); - gl.drawArrays(gl.TRIANGLES, 0, 6); - gl.flush(); - gl.deleteTexture(texture); - gl.deleteTexture(maskTexture); - gl.deleteBuffer(buffer); - return canvas; - } - - var figuresVertexShaderCode = "\ - attribute vec2 a_position; \ - attribute vec3 a_color; \ - \ - uniform vec2 u_resolution; \ - uniform vec2 u_scale; \ - uniform vec2 u_offset; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - vec2 position = (a_position + u_offset) * u_scale; \ - vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_color = vec4(a_color / 255.0, 1.0); \ - } "; - var figuresFragmentShaderCode = "\ - precision mediump float; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - gl_FragColor = v_color; \ - } "; - var figuresCache = null; - - function initFiguresGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, figuresVertexShaderCode); - var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution"); - cache.scaleLocation = gl.getUniformLocation(program, "u_scale"); - cache.offsetLocation = gl.getUniformLocation(program, "u_offset"); - cache.positionLocation = gl.getAttribLocation(program, "a_position"); - cache.colorLocation = gl.getAttribLocation(program, "a_color"); - figuresCache = cache; - } - - function drawFigures(width, height, backgroundColor, figures, context) { - if (!figuresCache) { - initFiguresGL(); - } - - var cache = figuresCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - var count = 0; - var i, ii, rows; - - for (i = 0, ii = figures.length; i < ii; i++) { - switch (figures[i].type) { - case "lattice": - rows = figures[i].coords.length / figures[i].verticesPerRow | 0; - count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; - break; - - case "triangles": - count += figures[i].coords.length; - break; - } - } - - var coords = new Float32Array(count * 2); - var colors = new Uint8Array(count * 3); - var coordsMap = context.coords, - colorsMap = context.colors; - var pIndex = 0, - cIndex = 0; - - for (i = 0, ii = figures.length; i < ii; i++) { - var figure = figures[i], - ps = figure.coords, - cs = figure.colors; - - switch (figure.type) { - case "lattice": - var cols = figure.verticesPerRow; - rows = ps.length / cols | 0; - - for (var row = 1; row < rows; row++) { - var offset = row * cols + 1; - - for (var col = 1; col < cols; col++, offset++) { - coords[pIndex] = coordsMap[ps[offset - cols - 1]]; - coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; - coords[pIndex + 2] = coordsMap[ps[offset - cols]]; - coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; - coords[pIndex + 4] = coordsMap[ps[offset - 1]]; - coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; - colors[cIndex] = colorsMap[cs[offset - cols - 1]]; - colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; - colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; - colors[cIndex + 3] = colorsMap[cs[offset - cols]]; - colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; - colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; - colors[cIndex + 6] = colorsMap[cs[offset - 1]]; - colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; - colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; - coords[pIndex + 6] = coords[pIndex + 2]; - coords[pIndex + 7] = coords[pIndex + 3]; - coords[pIndex + 8] = coords[pIndex + 4]; - coords[pIndex + 9] = coords[pIndex + 5]; - coords[pIndex + 10] = coordsMap[ps[offset]]; - coords[pIndex + 11] = coordsMap[ps[offset] + 1]; - colors[cIndex + 9] = colors[cIndex + 3]; - colors[cIndex + 10] = colors[cIndex + 4]; - colors[cIndex + 11] = colors[cIndex + 5]; - colors[cIndex + 12] = colors[cIndex + 6]; - colors[cIndex + 13] = colors[cIndex + 7]; - colors[cIndex + 14] = colors[cIndex + 8]; - colors[cIndex + 15] = colorsMap[cs[offset]]; - colors[cIndex + 16] = colorsMap[cs[offset] + 1]; - colors[cIndex + 17] = colorsMap[cs[offset] + 2]; - pIndex += 12; - cIndex += 18; - } - } - - break; - - case "triangles": - for (var j = 0, jj = ps.length; j < jj; j++) { - coords[pIndex] = coordsMap[ps[j]]; - coords[pIndex + 1] = coordsMap[ps[j] + 1]; - colors[cIndex] = colorsMap[cs[j]]; - colors[cIndex + 1] = colorsMap[cs[j] + 1]; - colors[cIndex + 2] = colorsMap[cs[j] + 2]; - pIndex += 2; - cIndex += 3; - } - - break; - } - } - - if (backgroundColor) { - gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); - } else { - gl.clearColor(0, 0, 0, 0); - } - - gl.clear(gl.COLOR_BUFFER_BIT); - var coordsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - var colorsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.colorLocation); - gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); - gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); - gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); - gl.drawArrays(gl.TRIANGLES, 0, count); - gl.flush(); - gl.deleteBuffer(coordsBuffer); - gl.deleteBuffer(colorsBuffer); - return canvas; - } - - return { - tryInitGL: function tryInitGL() { - try { - generateGL(); - return !!currentGL; - } catch (ex) {} - - return false; - }, - composeSMask: composeSMask, - drawFigures: drawFigures, - cleanup: function cleanup() { - if (smaskCache && smaskCache.canvas) { - smaskCache.canvas.width = 0; - smaskCache.canvas.height = 0; - } - - if (figuresCache && figuresCache.canvas) { - figuresCache.canvas.width = 0; - figuresCache.canvas.height = 0; - } - - smaskCache = null; - figuresCache = null; - } - }; -}(); - -/***/ }), -/* 205 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.renderTextLayer = void 0; - -var _util = __w_pdfjs_require__(1); - -var renderTextLayer = function renderTextLayerClosure() { - var MAX_TEXT_DIVS_TO_RENDER = 100000; - var NonWhitespaceRegexp = /\S/; - - function isAllWhitespace(str) { - return !NonWhitespaceRegexp.test(str); - } - - function appendText(task, geom, styles) { - var textDiv = document.createElement("span"); - var textDivProperties = { - angle: 0, - canvasWidth: 0, - isWhitespace: false, - originalTransform: null, - paddingBottom: 0, - paddingLeft: 0, - paddingRight: 0, - paddingTop: 0, - scale: 1 - }; - - task._textDivs.push(textDiv); - - if (isAllWhitespace(geom.str)) { - textDivProperties.isWhitespace = true; - - task._textDivProperties.set(textDiv, textDivProperties); - - return; - } - - var tx = _util.Util.transform(task._viewport.transform, geom.transform); - - var angle = Math.atan2(tx[1], tx[0]); - var style = styles[geom.fontName]; - - if (style.vertical) { - angle += Math.PI / 2; - } - - var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); - var fontAscent = fontHeight; - - if (style.ascent) { - fontAscent = style.ascent * fontAscent; - } else if (style.descent) { - fontAscent = (1 + style.descent) * fontAscent; - } - - var left, top; - - if (angle === 0) { - left = tx[4]; - top = tx[5] - fontAscent; - } else { - left = tx[4] + fontAscent * Math.sin(angle); - top = tx[5] - fontAscent * Math.cos(angle); - } - - textDiv.style.left = "".concat(left, "px"); - textDiv.style.top = "".concat(top, "px"); - textDiv.style.fontSize = "".concat(fontHeight, "px"); - textDiv.style.fontFamily = style.fontFamily; - textDiv.textContent = geom.str; - - if (task._fontInspectorEnabled) { - textDiv.dataset.fontName = geom.fontName; - } - - if (angle !== 0) { - textDivProperties.angle = angle * (180 / Math.PI); - } - - if (geom.str.length > 1) { - if (style.vertical) { - textDivProperties.canvasWidth = geom.height * task._viewport.scale; - } else { - textDivProperties.canvasWidth = geom.width * task._viewport.scale; - } - } - - task._textDivProperties.set(textDiv, textDivProperties); - - if (task._textContentStream) { - task._layoutText(textDiv); - } - - if (task._enhanceTextSelection) { - var angleCos = 1, - angleSin = 0; - - if (angle !== 0) { - angleCos = Math.cos(angle); - angleSin = Math.sin(angle); - } - - var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; - var divHeight = fontHeight; - var m, b; - - if (angle !== 0) { - m = [angleCos, angleSin, -angleSin, angleCos, left, top]; - b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); - } else { - b = [left, top, left + divWidth, top + divHeight]; - } - - task._bounds.push({ - left: b[0], - top: b[1], - right: b[2], - bottom: b[3], - div: textDiv, - size: [divWidth, divHeight], - m: m + if (this.quadrilaterals) { + return this._renderQuadrilaterals("linkAnnotation").map((quadrilateral, index) => { + const linkElement = index === 0 ? link : link.cloneNode(); + quadrilateral.appendChild(linkElement); + return quadrilateral; }); } + + this.container.className = "linkAnnotation"; + this.container.appendChild(link); + return this.container; } - function render(task) { - if (task._canceled) { - return; - } + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); - var textDivs = task._textDivs; - var capability = task._capability; - var textDivsLength = textDivs.length; - - if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { - task._renderingDone = true; - capability.resolve(); - return; - } - - if (!task._textContentStream) { - for (var i = 0; i < textDivsLength; i++) { - task._layoutText(textDivs[i]); + link.onclick = () => { + if (destination) { + this.linkService.goToDestination(destination); } - } - task._renderingDone = true; - capability.resolve(); + return false; + }; + + if (destination || destination === "") { + link.className = "internalLink"; + } } - function expand(task) { - var bounds = task._bounds; - var viewport = task._viewport; - var expanded = expandBounds(viewport.width, viewport.height, bounds); + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); - for (var i = 0; i < expanded.length; i++) { - var div = bounds[i].div; + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; - var divProperties = task._textDivProperties.get(div); + link.className = "internalLink"; + } - if (divProperties.angle === 0) { - divProperties.paddingLeft = bounds[i].left - expanded[i].left; - divProperties.paddingTop = bounds[i].top - expanded[i].top; - divProperties.paddingRight = expanded[i].right - bounds[i].right; - divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + _bindJSAction(link, data) { + link.href = this.linkService.getAnchorUrl(""); + const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); - task._textDivProperties.set(div, divProperties); + for (const name of Object.keys(data.actions)) { + const jsName = map.get(name); + if (!jsName) { continue; } - var e = expanded[i], - b = bounds[i]; - var m = b.m, - c = m[0], - s = m[1]; - var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; - var ts = new Float64Array(64); - points.forEach(function (p, i) { - var t = _util.Util.applyTransform(p, m); - - ts[i + 0] = c && (e.left - t[0]) / c; - ts[i + 4] = s && (e.top - t[1]) / s; - ts[i + 8] = c && (e.right - t[0]) / c; - ts[i + 12] = s && (e.bottom - t[1]) / s; - ts[i + 16] = s && (e.left - t[0]) / -s; - ts[i + 20] = c && (e.top - t[1]) / c; - ts[i + 24] = s && (e.right - t[0]) / -s; - ts[i + 28] = c && (e.bottom - t[1]) / c; - ts[i + 32] = c && (e.left - t[0]) / -c; - ts[i + 36] = s && (e.top - t[1]) / -s; - ts[i + 40] = c && (e.right - t[0]) / -c; - ts[i + 44] = s && (e.bottom - t[1]) / -s; - ts[i + 48] = s && (e.left - t[0]) / s; - ts[i + 52] = c && (e.top - t[1]) / -c; - ts[i + 56] = s && (e.right - t[0]) / s; - ts[i + 60] = c && (e.bottom - t[1]) / -c; - }); - - var findPositiveMin = function findPositiveMin(ts, offset, count) { - var result = 0; - - for (var i = 0; i < count; i++) { - var t = ts[offset++]; - - if (t > 0) { - result = result ? Math.min(t, result) : t; + link[jsName] = () => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: data.id, + name } - } - - return result; + }); + return false; }; + } - var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); - divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; - divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; - divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; - divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + link.className = "internalLink"; + } - task._textDivProperties.set(div, divProperties); +} + +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable + }); + } + + render() { + this.container.className = "textAnnotation"; + const image = document.createElement("img"); + image.style.height = this.container.style.height; + image.style.width = this.container.style.width; + image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; + image.alt = "[{{type}} Annotation]"; + image.dataset.l10nId = "text_annotation_type"; + image.dataset.l10nArgs = JSON.stringify({ + type: this.data.name + }); + + if (!this.data.hasPopup) { + this._createPopup(image, this.data); + } + + this.container.appendChild(image); + return this.container; + } + +} + +class WidgetAnnotationElement extends AnnotationElement { + render() { + if (this.data.alternativeText) { + this.container.title = this.data.alternativeText; + } + + return this.container; + } + + _getKeyModifier(event) { + return navigator.platform.includes("Win") && event.ctrlKey || navigator.platform.includes("Mac") && event.metaKey; + } + + _setEventListener(element, baseName, eventName, valueGetter) { + if (baseName.includes("mouse")) { + element.addEventListener(baseName, event => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event), + shift: event.shiftKey, + modifier: this._getKeyModifier(event) + } + }); + }); + } else { + element.addEventListener(baseName, event => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: event.target.checked + } + }); + }); } } - function expandBounds(width, height, boxes) { - var bounds = boxes.map(function (box, i) { - return { - x1: box.left, - y1: box.top, - x2: box.right, - y2: box.bottom, - index: i, - x1New: undefined, - x2New: undefined - }; - }); - expandBoundsLTR(width, bounds); - var expanded = new Array(boxes.length); - bounds.forEach(function (b) { - var i = b.index; - expanded[i] = { - left: b.x1New, - top: 0, - right: b.x2New, - bottom: 0 - }; - }); - boxes.map(function (box, i) { - var e = expanded[i], - b = bounds[i]; - b.x1 = box.top; - b.y1 = width - e.right; - b.x2 = box.bottom; - b.y2 = width - e.left; - b.index = i; - b.x1New = undefined; - b.x2New = undefined; - }); - expandBoundsLTR(height, bounds); - bounds.forEach(function (b) { - var i = b.index; - expanded[i].top = b.x1New; - expanded[i].bottom = b.x2New; - }); - return expanded; + _setEventListeners(element, names, getter) { + for (const [baseName, eventName] of names) { + if (eventName === "Action" || this.data.actions?.[eventName]) { + this._setEventListener(element, baseName, eventName, getter); + } + } } - function expandBoundsLTR(width, bounds) { - bounds.sort(function (a, b) { - return a.x1 - b.x1 || a.index - b.index; - }); - var fakeBoundary = { - x1: -Infinity, - y1: -Infinity, - x2: 0, - y2: Infinity, - index: -1, - x1New: 0, - x2New: 0 + _dispatchEventFromSandbox(actions, jsEvent) { + const setColor = (jsName, styleName, event) => { + const color = event.detail[jsName]; + event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1)); }; - var horizon = [{ - start: -Infinity, - end: Infinity, - boundary: fakeBoundary - }]; - bounds.forEach(function (boundary) { - var i = 0; - while (i < horizon.length && horizon[i].end <= boundary.y1) { - i++; - } - - var j = horizon.length - 1; - - while (j >= 0 && horizon[j].start >= boundary.y2) { - j--; - } - - var horizonPart, affectedBoundary; - var q, - k, - maxXNew = -Infinity; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var xNew; - - if (affectedBoundary.x2 > boundary.x1) { - xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; - } else if (affectedBoundary.x2New === undefined) { - xNew = (affectedBoundary.x2 + boundary.x1) / 2; - } else { - xNew = affectedBoundary.x2New; - } - - if (xNew > maxXNew) { - maxXNew = xNew; - } - } - - boundary.x1New = maxXNew; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - - if (affectedBoundary.x2New === undefined) { - if (affectedBoundary.x2 > boundary.x1) { - if (affectedBoundary.index > boundary.index) { - affectedBoundary.x2New = affectedBoundary.x2; - } - } else { - affectedBoundary.x2New = maxXNew; - } - } else if (affectedBoundary.x2New > maxXNew) { - affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); - } - } - - var changedHorizon = [], - lastBoundary = null; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; - - if (lastBoundary === useBoundary) { - changedHorizon[changedHorizon.length - 1].end = horizonPart.end; - } else { - changedHorizon.push({ - start: horizonPart.start, - end: horizonPart.end, - boundary: useBoundary - }); - lastBoundary = useBoundary; - } - } - - if (horizon[i].start < boundary.y1) { - changedHorizon[0].start = boundary.y1; - changedHorizon.unshift({ - start: horizon[i].start, - end: boundary.y1, - boundary: horizon[i].boundary + const commonActions = { + display: event => { + const hidden = event.detail.display % 2 === 1; + event.target.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden, + print: event.detail.display === 0 || event.detail.display === 3 }); - } - - if (boundary.y2 < horizon[j].end) { - changedHorizon[changedHorizon.length - 1].end = boundary.y2; - changedHorizon.push({ - start: boundary.y2, - end: horizon[j].end, - boundary: horizon[j].boundary + }, + print: event => { + this.annotationStorage.setValue(this.data.id, { + print: event.detail.print }); + }, + hidden: event => { + event.target.style.visibility = event.detail.hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden: event.detail.hidden + }); + }, + focus: event => { + setTimeout(() => event.target.focus({ + preventScroll: false + }), 0); + }, + userName: event => { + event.target.title = event.detail.userName; + }, + readonly: event => { + if (event.detail.readonly) { + event.target.setAttribute("readonly", ""); + } else { + event.target.removeAttribute("readonly"); + } + }, + required: event => { + if (event.detail.required) { + event.target.setAttribute("required", ""); + } else { + event.target.removeAttribute("required"); + } + }, + bgColor: event => { + setColor("bgColor", "backgroundColor", event); + }, + fillColor: event => { + setColor("fillColor", "backgroundColor", event); + }, + fgColor: event => { + setColor("fgColor", "color", event); + }, + textColor: event => { + setColor("textColor", "color", event); + }, + borderColor: event => { + setColor("borderColor", "borderColor", event); + }, + strokeColor: event => { + setColor("strokeColor", "borderColor", event); } + }; - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; + for (const name of Object.keys(jsEvent.detail)) { + const action = actions[name] || commonActions[name]; - if (affectedBoundary.x2New !== undefined) { - continue; - } - - var used = false; - - for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { - used = horizon[k].boundary === affectedBoundary; - } - - for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { - used = horizon[k].boundary === affectedBoundary; - } - - for (k = 0; !used && k < changedHorizon.length; k++) { - used = changedHorizon[k].boundary === affectedBoundary; - } - - if (!used) { - affectedBoundary.x2New = maxXNew; - } + if (action) { + action(jsEvent); } + } + } - Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); +} + +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, { + isRenderable }); - horizon.forEach(function (horizonPart) { - var affectedBoundary = horizonPart.boundary; + } + + setPropertyOnSiblings(base, key, value, keyInStorage) { + const storage = this.annotationStorage; + + for (const element of document.getElementsByName(base.name)) { + if (element !== base) { + element[key] = value; + const data = Object.create(null); + data[keyInStorage] = value; + storage.setValue(element.getAttribute("id"), data); + } + } + } + + render() { + const storage = this.annotationStorage; + const id = this.data.id; + this.container.className = "textWidgetAnnotation"; + let element = null; + + if (this.renderInteractiveForms) { + const storedData = storage.getValue(id, { + value: this.data.fieldValue, + valueAsString: this.data.fieldValue + }); + const textContent = storedData.valueAsString || storedData.value || ""; + const elementData = { + userValue: null, + formattedValue: null, + beforeInputSelectionRange: null, + beforeInputValue: null + }; + + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = textContent; + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", textContent); + } + + elementData.userValue = textContent; + element.setAttribute("id", id); + element.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + this.setPropertyOnSiblings(element, "value", event.target.value, "value"); + }); + + let blurListener = event => { + if (elementData.formattedValue) { + event.target.value = elementData.formattedValue; + } + + event.target.scrollLeft = 0; + elementData.beforeInputSelectionRange = null; + }; + + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("focus", event => { + if (elementData.userValue) { + event.target.value = elementData.userValue; + } + }); + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + elementData.userValue = event.detail.value || ""; + storage.setValue(id, { + value: elementData.userValue.toString() + }); + + if (!elementData.formattedValue) { + event.target.value = elementData.userValue; + } + }, + + valueAsString(event) { + elementData.formattedValue = event.detail.valueAsString || ""; + + if (event.target !== document.activeElement) { + event.target.value = elementData.formattedValue; + } + + storage.setValue(id, { + formattedValue: elementData.formattedValue + }); + }, + + selRange(event) { + const [selStart, selEnd] = event.detail.selRange; + + if (selStart >= 0 && selEnd < event.target.value.length) { + event.target.setSelectionRange(selStart, selEnd); + } + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + element.addEventListener("keydown", event => { + elementData.beforeInputValue = event.target.value; + let commitKey = -1; + + if (event.key === "Escape") { + commitKey = 0; + } else if (event.key === "Enter") { + commitKey = 2; + } else if (event.key === "Tab") { + commitKey = 3; + } + + if (commitKey === -1) { + return; + } + + elementData.userValue = event.target.value; + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: event.target.value, + willCommit: true, + commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + }); + const _blurListener = blurListener; + blurListener = null; + element.addEventListener("blur", event => { + if (this._mouseState.isDown) { + elementData.userValue = event.target.value; + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: event.target.value, + willCommit: true, + commitKey: 1, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + } + + _blurListener(event); + }); + element.addEventListener("mousedown", event => { + elementData.beforeInputValue = event.target.value; + elementData.beforeInputSelectionRange = null; + }); + element.addEventListener("keyup", event => { + if (event.target.selectionStart === event.target.selectionEnd) { + elementData.beforeInputSelectionRange = null; + } + }); + element.addEventListener("select", event => { + elementData.beforeInputSelectionRange = [event.target.selectionStart, event.target.selectionEnd]; + }); + + if (this.data.actions?.Keystroke) { + element.addEventListener("input", event => { + let selStart = -1; + let selEnd = -1; + + if (elementData.beforeInputSelectionRange) { + [selStart, selEnd] = elementData.beforeInputSelectionRange; + } + + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: elementData.beforeInputValue, + change: event.data, + willCommit: false, + selStart, + selEnd + } + }); + }); + } + + this._setEventListeners(element, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.value); + } + + if (blurListener) { + element.addEventListener("blur", blurListener); + } + + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; + } + + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const combWidth = fieldWidth / this.data.maxLen; + element.classList.add("comb"); + element.style.letterSpacing = `calc(${combWidth}px - 1ch)`; + } + } else { + element = document.createElement("div"); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = "middle"; + element.style.display = "table-cell"; + } + + this._setTextStyle(element); + + this.container.appendChild(element); + return this.container; + } + + _setTextStyle(element) { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const { + fontSize, + fontColor + } = this.data.defaultAppearanceData; + const style = element.style; + + if (fontSize) { + style.fontSize = `${fontSize}px`; + } + + style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); + + if (this.data.textAlignment !== null) { + style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + } + +} + +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue && (data.exportValue && data.exportValue === data.fieldValue || !data.exportValue && data.fieldValue !== "Off") + }).value; + + if (typeof value === "string") { + value = value !== "Off"; + storage.setValue(id, { + value + }); + } + + this.container.className = "buttonWidgetAnnotation checkBox"; + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "checkbox"; + element.name = this.data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.setAttribute("id", id); + element.addEventListener("change", function (event) { + const name = event.target.name; + + for (const checkbox of document.getElementsByName(name)) { + if (checkbox !== event.target) { + checkbox.checked = false; + storage.setValue(checkbox.parentNode.getAttribute("data-annotation-id"), { + value: false + }); + } + } + + storage.setValue(id, { + value: event.target.checked + }); + }); + + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + event.target.checked = event.detail.value !== "Off"; + storage.setValue(id, { + value: event.target.checked + }); + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + + this.container.appendChild(element); + return this.container; + } + +} + +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + this.container.className = "buttonWidgetAnnotation radioButton"; + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue === data.buttonValue + }).value; + + if (typeof value === "string") { + value = value !== data.buttonValue; + storage.setValue(id, { + value + }); + } + + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "radio"; + element.name = data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.setAttribute("id", id); + element.addEventListener("change", function (event) { + const { + target + } = event; + + for (const radio of document.getElementsByName(target.name)) { + if (radio !== target) { + storage.setValue(radio.getAttribute("id"), { + value: false + }); + } + } + + storage.setValue(id, { + value: target.checked + }); + }); + + if (this.enableScripting && this.hasJSActions) { + const pdfButtonValue = data.buttonValue; + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + const checked = pdfButtonValue === event.detail.value; + + for (const radio of document.getElementsByName(event.target.name)) { + const radioId = radio.getAttribute("id"); + radio.checked = radioId === id && checked; + storage.setValue(radioId, { + value: radio.checked + }); + } + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + + this.container.appendChild(element); + return this.container; + } + +} + +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + render() { + const container = super.render(); + container.className = "buttonWidgetAnnotation pushButton"; + + if (this.data.alternativeText) { + container.title = this.data.alternativeText; + } + + return container; + } + +} + +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + this.container.className = "choiceWidgetAnnotation"; + const storage = this.annotationStorage; + const id = this.data.id; + storage.getValue(id, { + value: this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined + }); + const selectElement = document.createElement("select"); + selectElement.disabled = this.data.readOnly; + selectElement.name = this.data.fieldName; + selectElement.setAttribute("id", id); + + if (!this.data.combo) { + selectElement.size = this.data.options.length; + + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + + if (this.data.fieldValue.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + } + + selectElement.appendChild(optionElement); + } + + const getValue = (event, isExport) => { + const name = isExport ? "value" : "textContent"; + const options = event.target.options; + + if (!event.target.multiple) { + return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; + } + + return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); + }; + + const getItems = event => { + const options = event.target.options; + return Array.prototype.map.call(options, option => { + return { + displayValue: option.textContent, + exportValue: option.value + }; + }); + }; + + if (this.enableScripting && this.hasJSActions) { + selectElement.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + const options = selectElement.options; + const value = event.detail.value; + const values = new Set(Array.isArray(value) ? value : [value]); + Array.prototype.forEach.call(options, option => { + option.selected = values.has(option.value); + }); + storage.setValue(id, { + value: getValue(event, true) + }); + }, + + multipleSelection(event) { + selectElement.multiple = true; + }, + + remove(event) { + const options = selectElement.options; + const index = event.detail.remove; + options[index].selected = false; + selectElement.remove(index); + + if (options.length > 0) { + const i = Array.prototype.findIndex.call(options, option => option.selected); + + if (i === -1) { + options[0].selected = true; + } + } + + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + clear(event) { + while (selectElement.length !== 0) { + selectElement.remove(0); + } + + storage.setValue(id, { + value: null, + items: [] + }); + }, + + insert(event) { + const { + index, + displayValue, + exportValue + } = event.detail.insert; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.insertBefore(optionElement, selectElement.children[index]); + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + items(event) { + const { + items + } = event.detail; + + while (selectElement.length !== 0) { + selectElement.remove(0); + } + + for (const item of items) { + const { + displayValue, + exportValue + } = item; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.appendChild(optionElement); + } + + if (selectElement.options.length > 0) { + selectElement.options[0].selected = true; + } + + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + indices(event) { + const indices = new Set(event.detail.indices); + const options = event.target.options; + Array.prototype.forEach.call(options, (option, i) => { + option.selected = indices.has(i); + }); + storage.setValue(id, { + value: getValue(event, true) + }); + }, + + editable(event) { + event.target.disabled = !event.detail.editable; + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + selectElement.addEventListener("input", event => { + const exportValue = getValue(event, true); + const value = getValue(event, false); + storage.setValue(id, { + value: exportValue + }); + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + changeEx: exportValue, + willCommit: true, + commitKey: 1, + keyDown: false + } + }); + }); + + this._setEventListeners(selectElement, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"]], event => event.target.checked); + } else { + selectElement.addEventListener("input", function (event) { + storage.setValue(id, { + value: getValue(event) + }); + }); + } + + this.container.appendChild(selectElement); + return this.container; + } + +} + +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable + }); + } + + render() { + const IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"]; + this.container.className = "popupAnnotation"; + + if (IGNORE_TYPES.includes(this.data.parentType)) { + return this.container; + } + + const selector = `[data-annotation-id="${this.data.parentId}"]`; + const parentElements = this.layer.querySelectorAll(selector); + + if (parentElements.length === 0) { + return this.container; + } + + const popup = new PopupElement({ + container: this.container, + trigger: Array.from(parentElements), + color: this.data.color, + title: this.data.title, + modificationDate: this.data.modificationDate, + contents: this.data.contents + }); + const page = this.page; + + const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]); + + const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0]; + const popupTop = rect[1]; + this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`; + this.container.style.left = `${popupLeft}px`; + this.container.style.top = `${popupTop}px`; + this.container.appendChild(popup.render()); + return this.container; + } + +} + +class PopupElement { + constructor(parameters) { + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.modificationDate = parameters.modificationDate; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + + render() { + const BACKGROUND_ENLIGHT = 0.7; + const wrapper = document.createElement("div"); + wrapper.className = "popupWrapper"; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.hidden = true; + const popup = document.createElement("div"); + popup.className = "popup"; + const color = this.color; + + if (color) { + const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0); + } + + const title = document.createElement("h1"); + title.textContent = this.title; + popup.appendChild(title); + + const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + + if (dateObject) { + const modificationDate = document.createElement("span"); + modificationDate.textContent = "{{date}}, {{time}}"; + modificationDate.dataset.l10nId = "annotation_date_string"; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.appendChild(modificationDate); + } + + const contents = this._formatContents(this.contents); + + popup.appendChild(contents); + + if (!Array.isArray(this.trigger)) { + this.trigger = [this.trigger]; + } + + for (const element of this.trigger) { + element.addEventListener("click", this._toggle.bind(this)); + element.addEventListener("mouseover", this._show.bind(this, false)); + element.addEventListener("mouseout", this._hide.bind(this, false)); + } + + popup.addEventListener("click", this._hide.bind(this, true)); + wrapper.appendChild(popup); + return wrapper; + } + + _formatContents(contents) { + const p = document.createElement("p"); + const lines = contents.split(/(?:\r\n?|\n)/); + + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.appendChild(document.createTextNode(line)); + + if (i < ii - 1) { + p.appendChild(document.createElement("br")); + } + } + + return p; + } + + _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + } + + _show(pin = false) { + if (pin) { + this.pinned = true; + } + + if (this.hideElement.hidden) { + this.hideElement.hidden = false; + this.container.style.zIndex += 1; + } + } + + _hide(unpin = true) { + if (unpin) { + this.pinned = false; + } + + if (!this.hideElement.hidden && !this.pinned) { + this.hideElement.hidden = true; + this.container.style.zIndex -= 1; + } + } + +} + +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "freeTextAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class LineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "lineAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const line = this.svgFactory.createElement("svg:line"); + line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); + line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); + line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); + line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); + line.setAttribute("stroke-width", data.borderStyle.width || 1); + line.setAttribute("stroke", "transparent"); + svg.appendChild(line); + this.container.append(svg); + + this._createPopup(line, data); + + return this.container; + } + +} + +class SquareAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "squareAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const square = this.svgFactory.createElement("svg:rect"); + square.setAttribute("x", borderWidth / 2); + square.setAttribute("y", borderWidth / 2); + square.setAttribute("width", width - borderWidth); + square.setAttribute("height", height - borderWidth); + square.setAttribute("stroke-width", borderWidth || 1); + square.setAttribute("stroke", "transparent"); + square.setAttribute("fill", "none"); + svg.appendChild(square); + this.container.append(svg); + + this._createPopup(square, data); + + return this.container; + } + +} + +class CircleAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "circleAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const circle = this.svgFactory.createElement("svg:ellipse"); + circle.setAttribute("cx", width / 2); + circle.setAttribute("cy", height / 2); + circle.setAttribute("rx", width / 2 - borderWidth / 2); + circle.setAttribute("ry", height / 2 - borderWidth / 2); + circle.setAttribute("stroke-width", borderWidth || 1); + circle.setAttribute("stroke", "transparent"); + circle.setAttribute("fill", "none"); + svg.appendChild(circle); + this.container.append(svg); + + this._createPopup(circle, data); + + return this.container; + } + +} + +class PolylineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + let points = []; + + for (const coordinate of data.vertices) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(x + "," + y); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + svg.appendChild(polyline); + this.container.append(svg); + + this._createPopup(polyline, data); + + return this.container; + } + +} + +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } + +} + +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "caretAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class InkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + + for (const inkList of data.inkLists) { + let points = []; + + for (const coordinate of inkList) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(`${x},${y}`); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + + this._createPopup(polyline, data); + + svg.appendChild(polyline); + } + + this.container.append(svg); + return this.container; + } + +} + +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("highlightAnnotation"); + } + + this.container.className = "highlightAnnotation"; + return this.container; + } + +} + +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("underlineAnnotation"); + } + + this.container.className = "underlineAnnotation"; + return this.container; + } + +} + +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("squigglyAnnotation"); + } + + this.container.className = "squigglyAnnotation"; + return this.container; + } + +} + +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("strikeoutAnnotation"); + } + + this.container.className = "strikeoutAnnotation"; + return this.container; + } + +} + +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "stampAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class FileAttachmentAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true + }); + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename); + this.content = content; + this.linkService.eventBus?.dispatch("fileattachmentannotation", { + source: this, + id: (0, _util.stringToPDFString)(filename), + filename, + content + }); + } + + render() { + this.container.className = "fileAttachmentAnnotation"; + const trigger = document.createElement("div"); + trigger.style.height = this.container.style.height; + trigger.style.width = this.container.style.width; + trigger.addEventListener("dblclick", this._download.bind(this)); + + if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + this._createPopup(trigger, this.data); + } + + this.container.appendChild(trigger); + return this.container; + } + + _download() { + this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename); + } + +} + +class AnnotationLayer { + static render(parameters) { + const sortedAnnotations = [], + popupAnnotations = []; + + for (const data of parameters.annotations) { + if (!data) { + continue; + } + + if (data.annotationType === _util.AnnotationType.POPUP) { + popupAnnotations.push(data); + continue; + } + + sortedAnnotations.push(data); + } + + if (popupAnnotations.length) { + sortedAnnotations.push(...popupAnnotations); + } + + for (const data of sortedAnnotations) { + const element = AnnotationElementFactory.create({ + data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || "", + renderInteractiveForms: parameters.renderInteractiveForms !== false, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(), + enableScripting: parameters.enableScripting, + hasJSActions: parameters.hasJSActions, + mouseState: parameters.mouseState || { + isDown: false + } + }); + + if (element.isRenderable) { + const rendered = element.render(); + + if (data.hidden) { + rendered.style.visibility = "hidden"; + } + + if (Array.isArray(rendered)) { + for (const renderedElement of rendered) { + parameters.div.appendChild(renderedElement); + } + } else { + if (element instanceof PopupAnnotationElement) { + parameters.div.prepend(rendered); + } else { + parameters.div.appendChild(rendered); + } + } + } + } + } + + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + + for (const data of parameters.annotations) { + const elements = parameters.div.querySelectorAll(`[data-annotation-id="${data.id}"]`); + + if (elements) { + for (const element of elements) { + element.style.transform = transform; + } + } + } + + parameters.div.hidden = false; + } + +} + +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 18 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ColorConverters = void 0; + +function makeColorComp(n) { + return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); +} + +class ColorConverters { + static CMYK_G([c, y, m, k]) { + return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; + } + + static G_CMYK([g]) { + return ["CMYK", 0, 0, 0, 1 - g]; + } + + static G_RGB([g]) { + return ["RGB", g, g, g]; + } + + static G_HTML([g]) { + const G = makeColorComp(g); + return `#${G}${G}${G}`; + } + + static RGB_G([r, g, b]) { + return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; + } + + static RGB_HTML([r, g, b]) { + const R = makeColorComp(r); + const G = makeColorComp(g); + const B = makeColorComp(b); + return `#${R}${G}${B}`; + } + + static T_HTML() { + return "#00000000"; + } + + static CMYK_RGB([c, y, m, k]) { + return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; + } + + static CMYK_HTML(components) { + return this.RGB_HTML(this.CMYK_RGB(components)); + } + + static RGB_CMYK([r, g, b]) { + const c = 1 - r; + const m = 1 - g; + const y = 1 - b; + const k = Math.min(c, m, y); + return ["CMYK", c, m, y, k]; + } + +} + +exports.ColorConverters = ColorConverters; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.renderTextLayer = renderTextLayer; + +var _util = __w_pdfjs_require__(2); + +const MAX_TEXT_DIVS_TO_RENDER = 100000; +const DEFAULT_FONT_SIZE = 30; +const DEFAULT_FONT_ASCENT = 0.8; +const ascentCache = new Map(); +const AllWhitespaceRegexp = /^\s+$/g; + +function getAscent(fontFamily, ctx) { + const cachedAscent = ascentCache.get(fontFamily); + + if (cachedAscent) { + return cachedAscent; + } + + ctx.save(); + ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; + const metrics = ctx.measureText(""); + let ascent = metrics.fontBoundingBoxAscent; + let descent = Math.abs(metrics.fontBoundingBoxDescent); + + if (ascent) { + ctx.restore(); + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + + ctx.strokeStyle = "red"; + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("g", 0, 0); + let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + descent = 0; + + for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) { + if (pixels[i] > 0) { + descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("A", 0, DEFAULT_FONT_SIZE); + pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + ascent = 0; + + for (let i = 0, ii = pixels.length; i < ii; i += 4) { + if (pixels[i] > 0) { + ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + + ctx.restore(); + + if (ascent) { + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + + ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT); + return DEFAULT_FONT_ASCENT; +} + +function appendText(task, geom, styles, ctx) { + const textDiv = document.createElement("span"); + const textDivProperties = { + angle: 0, + canvasWidth: 0, + hasText: geom.str !== "", + hasEOL: geom.hasEOL, + originalTransform: null, + paddingBottom: 0, + paddingLeft: 0, + paddingRight: 0, + paddingTop: 0, + scale: 1 + }; + + task._textDivs.push(textDiv); + + const tx = _util.Util.transform(task._viewport.transform, geom.transform); + + let angle = Math.atan2(tx[1], tx[0]); + const style = styles[geom.fontName]; + + if (style.vertical) { + angle += Math.PI / 2; + } + + const fontHeight = Math.hypot(tx[2], tx[3]); + const fontAscent = fontHeight * getAscent(style.fontFamily, ctx); + let left, top; + + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + + textDiv.style.left = `${left}px`; + textDiv.style.top = `${top}px`; + textDiv.style.fontSize = `${fontHeight}px`; + textDiv.style.fontFamily = style.fontFamily; + textDiv.setAttribute("role", "presentation"); + textDiv.textContent = geom.str; + textDiv.dir = geom.dir; + + if (task._fontInspectorEnabled) { + textDiv.dataset.fontName = geom.fontName; + } + + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + + let shouldScaleText = false; + + if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) { + shouldScaleText = true; + } else if (geom.transform[0] !== geom.transform[3]) { + const absScaleX = Math.abs(geom.transform[0]), + absScaleY = Math.abs(geom.transform[3]); + + if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { + shouldScaleText = true; + } + } + + if (shouldScaleText) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; + } else { + textDivProperties.canvasWidth = geom.width * task._viewport.scale; + } + } + + task._textDivProperties.set(textDiv, textDivProperties); + + if (task._textContentStream) { + task._layoutText(textDiv); + } + + if (task._enhanceTextSelection && textDivProperties.hasText) { + let angleCos = 1, + angleSin = 0; + + if (angle !== 0) { + angleCos = Math.cos(angle); + angleSin = Math.sin(angle); + } + + const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; + const divHeight = fontHeight; + let m, b; + + if (angle !== 0) { + m = [angleCos, angleSin, -angleSin, angleCos, left, top]; + b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); + } else { + b = [left, top, left + divWidth, top + divHeight]; + } + + task._bounds.push({ + left: b[0], + top: b[1], + right: b[2], + bottom: b[3], + div: textDiv, + size: [divWidth, divHeight], + m + }); + } +} + +function render(task) { + if (task._canceled) { + return; + } + + const textDivs = task._textDivs; + const capability = task._capability; + const textDivsLength = textDivs.length; + + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + + if (!task._textContentStream) { + for (let i = 0; i < textDivsLength; i++) { + task._layoutText(textDivs[i]); + } + } + + task._renderingDone = true; + capability.resolve(); +} + +function findPositiveMin(ts, offset, count) { + let result = 0; + + for (let i = 0; i < count; i++) { + const t = ts[offset++]; + + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + + return result; +} + +function expand(task) { + const bounds = task._bounds; + const viewport = task._viewport; + const expanded = expandBounds(viewport.width, viewport.height, bounds); + + for (let i = 0; i < expanded.length; i++) { + const div = bounds[i].div; + + const divProperties = task._textDivProperties.get(div); + + if (divProperties.angle === 0) { + divProperties.paddingLeft = bounds[i].left - expanded[i].left; + divProperties.paddingTop = bounds[i].top - expanded[i].top; + divProperties.paddingRight = expanded[i].right - bounds[i].right; + divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + + task._textDivProperties.set(div, divProperties); + + continue; + } + + const e = expanded[i], + b = bounds[i]; + const m = b.m, + c = m[0], + s = m[1]; + const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; + const ts = new Float64Array(64); + + for (let j = 0, jj = points.length; j < jj; j++) { + const t = _util.Util.applyTransform(points[j], m); + + ts[j + 0] = c && (e.left - t[0]) / c; + ts[j + 4] = s && (e.top - t[1]) / s; + ts[j + 8] = c && (e.right - t[0]) / c; + ts[j + 12] = s && (e.bottom - t[1]) / s; + ts[j + 16] = s && (e.left - t[0]) / -s; + ts[j + 20] = c && (e.top - t[1]) / c; + ts[j + 24] = s && (e.right - t[0]) / -s; + ts[j + 28] = c && (e.bottom - t[1]) / c; + ts[j + 32] = c && (e.left - t[0]) / -c; + ts[j + 36] = s && (e.top - t[1]) / -s; + ts[j + 40] = c && (e.right - t[0]) / -c; + ts[j + 44] = s && (e.bottom - t[1]) / -s; + ts[j + 48] = s && (e.left - t[0]) / s; + ts[j + 52] = c && (e.top - t[1]) / -c; + ts[j + 56] = s && (e.right - t[0]) / s; + ts[j + 60] = c && (e.bottom - t[1]) / -c; + } + + const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); + divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; + divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; + divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; + divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + + task._textDivProperties.set(div, divProperties); + } +} + +function expandBounds(width, height, boxes) { + const bounds = boxes.map(function (box, i) { + return { + x1: box.left, + y1: box.top, + x2: box.right, + y2: box.bottom, + index: i, + x1New: undefined, + x2New: undefined + }; + }); + expandBoundsLTR(width, bounds); + const expanded = new Array(boxes.length); + + for (const b of bounds) { + const i = b.index; + expanded[i] = { + left: b.x1New, + top: 0, + right: b.x2New, + bottom: 0 + }; + } + + boxes.map(function (box, i) { + const e = expanded[i], + b = bounds[i]; + b.x1 = box.top; + b.y1 = width - e.right; + b.x2 = box.bottom; + b.y2 = width - e.left; + b.index = i; + b.x1New = undefined; + b.x2New = undefined; + }); + expandBoundsLTR(height, bounds); + + for (const b of bounds) { + const i = b.index; + expanded[i].top = b.x1New; + expanded[i].bottom = b.x2New; + } + + return expanded; +} + +function expandBoundsLTR(width, bounds) { + bounds.sort(function (a, b) { + return a.x1 - b.x1 || a.index - b.index; + }); + const fakeBoundary = { + x1: -Infinity, + y1: -Infinity, + x2: 0, + y2: Infinity, + index: -1, + x1New: 0, + x2New: 0 + }; + const horizon = [{ + start: -Infinity, + end: Infinity, + boundary: fakeBoundary + }]; + + for (const boundary of bounds) { + let i = 0; + + while (i < horizon.length && horizon[i].end <= boundary.y1) { + i++; + } + + let j = horizon.length - 1; + + while (j >= 0 && horizon[j].start >= boundary.y2) { + j--; + } + + let horizonPart, affectedBoundary; + let q, + k, + maxXNew = -Infinity; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + let xNew; + + if (affectedBoundary.x2 > boundary.x1) { + xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; + } else if (affectedBoundary.x2New === undefined) { + xNew = (affectedBoundary.x2 + boundary.x1) / 2; + } else { + xNew = affectedBoundary.x2New; + } + + if (xNew > maxXNew) { + maxXNew = xNew; + } + } + + boundary.x1New = maxXNew; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; if (affectedBoundary.x2New === undefined) { - affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + if (affectedBoundary.x2 > boundary.x1) { + if (affectedBoundary.index > boundary.index) { + affectedBoundary.x2New = affectedBoundary.x2; + } + } else { + affectedBoundary.x2New = maxXNew; + } + } else if (affectedBoundary.x2New > maxXNew) { + affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); } - }); + } + + const changedHorizon = []; + let lastBoundary = null; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; + + if (lastBoundary === useBoundary) { + changedHorizon[changedHorizon.length - 1].end = horizonPart.end; + } else { + changedHorizon.push({ + start: horizonPart.start, + end: horizonPart.end, + boundary: useBoundary + }); + lastBoundary = useBoundary; + } + } + + if (horizon[i].start < boundary.y1) { + changedHorizon[0].start = boundary.y1; + changedHorizon.unshift({ + start: horizon[i].start, + end: boundary.y1, + boundary: horizon[i].boundary + }); + } + + if (boundary.y2 < horizon[j].end) { + changedHorizon[changedHorizon.length - 1].end = boundary.y2; + changedHorizon.push({ + start: boundary.y2, + end: horizon[j].end, + boundary: horizon[j].boundary + }); + } + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + + if (affectedBoundary.x2New !== undefined) { + continue; + } + + let used = false; + + for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = 0; !used && k < changedHorizon.length; k++) { + used = changedHorizon[k].boundary === affectedBoundary; + } + + if (!used) { + affectedBoundary.x2New = maxXNew; + } + } + + Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); } - function TextLayerRenderTask(_ref) { - var _this = this; + for (const horizonPart of horizon) { + const affectedBoundary = horizonPart.boundary; - var textContent = _ref.textContent, - textContentStream = _ref.textContentStream, - container = _ref.container, - viewport = _ref.viewport, - textDivs = _ref.textDivs, - textContentItemsStr = _ref.textContentItemsStr, - enhanceTextSelection = _ref.enhanceTextSelection; + if (affectedBoundary.x2New === undefined) { + affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + } + } +} + +class TextLayerRenderTask { + constructor({ + textContent, + textContentStream, + container, + viewport, + textDivs, + textContentItemsStr, + enhanceTextSelection + }) { this._textContent = textContent; this._textContentStream = textContentStream; this._container = container; + this._document = container.ownerDocument; this._viewport = viewport; this._textDivs = textDivs || []; this._textContentItemsStr = textContentItemsStr || []; this._enhanceTextSelection = !!enhanceTextSelection; - this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled); + this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled; this._reader = null; this._layoutTextLastFontSize = null; this._layoutTextLastFontFamily = null; @@ -20043,1812 +10985,302 @@ var renderTextLayer = function renderTextLayerClosure() { this._renderTimer = null; this._bounds = []; - this._capability.promise["finally"](function () { - if (_this._layoutTextCtx) { - _this._layoutTextCtx.canvas.width = 0; - _this._layoutTextCtx.canvas.height = 0; - _this._layoutTextCtx = null; + this._capability.promise.finally(() => { + if (this._layoutTextCtx) { + this._layoutTextCtx.canvas.width = 0; + this._layoutTextCtx.canvas.height = 0; + this._layoutTextCtx = null; } - })["catch"](function () {}); + }).catch(() => {}); } - TextLayerRenderTask.prototype = { - get promise() { - return this._capability.promise; - }, + get promise() { + return this._capability.promise; + } - cancel: function TextLayer_cancel() { - this._canceled = true; + cancel() { + this._canceled = true; - if (this._reader) { - this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")); + if (this._reader) { + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")); - this._reader = null; - } + this._reader = null; + } - if (this._renderTimer !== null) { - clearTimeout(this._renderTimer); - this._renderTimer = null; - } + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } - this._capability.reject(new Error("TextLayer task cancelled.")); - }, - _processItems: function _processItems(items, styleCache) { - for (var i = 0, len = items.length; i < len; i++) { - this._textContentItemsStr.push(items[i].str); + this._capability.reject(new Error("TextLayer task cancelled.")); + } - appendText(this, items[i], styleCache); - } - }, - _layoutText: function _layoutText(textDiv) { - var textDivProperties = this._textDivProperties.get(textDiv); + _processItems(items, styleCache) { + for (let i = 0, len = items.length; i < len; i++) { + if (items[i].str === undefined) { + if (items[i].type === "beginMarkedContentProps" || items[i].type === "beginMarkedContent") { + const parent = this._container; + this._container = document.createElement("span"); - if (textDivProperties.isWhitespace) { - return; - } + this._container.classList.add("markedContent"); - var transform = ""; - - if (textDivProperties.canvasWidth !== 0) { - var _textDiv$style = textDiv.style, - fontSize = _textDiv$style.fontSize, - fontFamily = _textDiv$style.fontFamily; - - if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = "".concat(fontSize, " ").concat(fontFamily); - this._layoutTextLastFontSize = fontSize; - this._layoutTextLastFontFamily = fontFamily; - } - - var _this$_layoutTextCtx$ = this._layoutTextCtx.measureText(textDiv.textContent), - width = _this$_layoutTextCtx$.width; - - if (width > 0) { - textDivProperties.scale = textDivProperties.canvasWidth / width; - transform = "scaleX(".concat(textDivProperties.scale, ")"); - } - } - - if (textDivProperties.angle !== 0) { - transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); - } - - if (transform.length > 0) { - if (this._enhanceTextSelection) { - textDivProperties.originalTransform = transform; - } - - textDiv.style.transform = transform; - } - - this._textDivProperties.set(textDiv, textDivProperties); - - this._container.appendChild(textDiv); - }, - _render: function TextLayer_render(timeout) { - var _this2 = this; - - var capability = (0, _util.createPromiseCapability)(); - var styleCache = Object.create(null); - var canvas = document.createElement("canvas"); - canvas.mozOpaque = true; - this._layoutTextCtx = canvas.getContext("2d", { - alpha: false - }); - - if (this._textContent) { - var textItems = this._textContent.items; - var textStyles = this._textContent.styles; - - this._processItems(textItems, textStyles); - - capability.resolve(); - } else if (this._textContentStream) { - var pump = function pump() { - _this2._reader.read().then(function (_ref2) { - var value = _ref2.value, - done = _ref2.done; - - if (done) { - capability.resolve(); - return; - } - - Object.assign(styleCache, value.styles); - - _this2._processItems(value.items, styleCache); - - pump(); - }, capability.reject); - }; - - this._reader = this._textContentStream.getReader(); - pump(); - } else { - throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified."); - } - - capability.promise.then(function () { - styleCache = null; - - if (!timeout) { - render(_this2); - } else { - _this2._renderTimer = setTimeout(function () { - render(_this2); - _this2._renderTimer = null; - }, timeout); - } - }, this._capability.reject); - }, - expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { - if (!this._enhanceTextSelection || !this._renderingDone) { - return; - } - - if (this._bounds !== null) { - expand(this); - this._bounds = null; - } - - var transformBuf = [], - paddingBuf = []; - - for (var i = 0, ii = this._textDivs.length; i < ii; i++) { - var div = this._textDivs[i]; - - var divProps = this._textDivProperties.get(div); - - if (divProps.isWhitespace) { - continue; - } - - if (expandDivs) { - transformBuf.length = 0; - paddingBuf.length = 0; - - if (divProps.originalTransform) { - transformBuf.push(divProps.originalTransform); + if (items[i].id !== null) { + this._container.setAttribute("id", `${items[i].id}`); } - if (divProps.paddingTop > 0) { - paddingBuf.push("".concat(divProps.paddingTop, "px")); - transformBuf.push("translateY(".concat(-divProps.paddingTop, "px)")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingRight > 0) { - paddingBuf.push("".concat(divProps.paddingRight / divProps.scale, "px")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingBottom > 0) { - paddingBuf.push("".concat(divProps.paddingBottom, "px")); - } else { - paddingBuf.push(0); - } - - if (divProps.paddingLeft > 0) { - paddingBuf.push("".concat(divProps.paddingLeft / divProps.scale, "px")); - transformBuf.push("translateX(".concat(-divProps.paddingLeft / divProps.scale, "px)")); - } else { - paddingBuf.push(0); - } - - div.style.padding = paddingBuf.join(" "); - - if (transformBuf.length) { - div.style.transform = transformBuf.join(" "); - } - } else { - div.style.padding = null; - div.style.transform = divProps.originalTransform; + parent.appendChild(this._container); + } else if (items[i].type === "endMarkedContent") { + this._container = this._container.parentNode; } + + continue; + } + + this._textContentItemsStr.push(items[i].str); + + appendText(this, items[i], styleCache, this._layoutTextCtx); + } + } + + _layoutText(textDiv) { + const textDivProperties = this._textDivProperties.get(textDiv); + + let transform = ""; + + if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) { + const { + fontSize, + fontFamily + } = textDiv.style; + + if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { + this._layoutTextCtx.font = `${fontSize} ${fontFamily}`; + this._layoutTextLastFontSize = fontSize; + this._layoutTextLastFontFamily = fontFamily; + } + + const { + width + } = this._layoutTextCtx.measureText(textDiv.textContent); + + if (width > 0) { + textDivProperties.scale = textDivProperties.canvasWidth / width; + transform = `scaleX(${textDivProperties.scale})`; } } - }; - function renderTextLayer(renderParameters) { - var task = new TextLayerRenderTask({ - textContent: renderParameters.textContent, - textContentStream: renderParameters.textContentStream, - container: renderParameters.container, - viewport: renderParameters.viewport, - textDivs: renderParameters.textDivs, - textContentItemsStr: renderParameters.textContentItemsStr, - enhanceTextSelection: renderParameters.enhanceTextSelection + if (textDivProperties.angle !== 0) { + transform = `rotate(${textDivProperties.angle}deg) ${transform}`; + } + + if (transform.length > 0) { + if (this._enhanceTextSelection) { + textDivProperties.originalTransform = transform; + } + + textDiv.style.transform = transform; + } + + if (textDivProperties.hasText) { + this._container.appendChild(textDiv); + } + + if (textDivProperties.hasEOL) { + const br = document.createElement("br"); + br.setAttribute("role", "presentation"); + + this._container.appendChild(br); + } + } + + _render(timeout = 0) { + const capability = (0, _util.createPromiseCapability)(); + let styleCache = Object.create(null); + + const canvas = this._document.createElement("canvas"); + + canvas.height = canvas.width = DEFAULT_FONT_SIZE; + canvas.mozOpaque = true; + this._layoutTextCtx = canvas.getContext("2d", { + alpha: false }); - task._render(renderParameters.timeout); + if (this._textContent) { + const textItems = this._textContent.items; + const textStyles = this._textContent.styles; - return task; - } + this._processItems(textItems, textStyles); - return renderTextLayer; -}(); - -exports.renderTextLayer = renderTextLayer; - -/***/ }), -/* 206 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.AnnotationLayer = void 0; - -var _display_utils = __w_pdfjs_require__(194); - -var _util = __w_pdfjs_require__(1); - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationElementFactory = /*#__PURE__*/function () { - function AnnotationElementFactory() { - _classCallCheck(this, AnnotationElementFactory); - } - - _createClass(AnnotationElementFactory, null, [{ - key: "create", - value: function create(parameters) { - var subtype = parameters.data.annotationType; - - switch (subtype) { - case _util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - - case _util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - - case _util.AnnotationType.WIDGET: - var fieldType = parameters.data.fieldType; - - switch (fieldType) { - case "Tx": - return new TextWidgetAnnotationElement(parameters); - - case "Btn": - if (parameters.data.radioButton) { - return new RadioButtonWidgetAnnotationElement(parameters); - } else if (parameters.data.checkBox) { - return new CheckboxWidgetAnnotationElement(parameters); - } - - return new PushButtonWidgetAnnotationElement(parameters); - - case "Ch": - return new ChoiceWidgetAnnotationElement(parameters); + capability.resolve(); + } else if (this._textContentStream) { + const pump = () => { + this._reader.read().then(({ + value, + done + }) => { + if (done) { + capability.resolve(); + return; } - return new WidgetAnnotationElement(parameters); + Object.assign(styleCache, value.styles); - case _util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); + this._processItems(value.items, styleCache); - case _util.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(parameters); - - case _util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - - case _util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - - case _util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - - case _util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - - case _util.AnnotationType.CARET: - return new CaretAnnotationElement(parameters); - - case _util.AnnotationType.INK: - return new InkAnnotationElement(parameters); - - case _util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - - case _util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - - case _util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - - case _util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - - case _util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - - case _util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - - case _util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - - default: - return new AnnotationElement(parameters); - } - } - }]); - - return AnnotationElementFactory; -}(); - -var AnnotationElement = /*#__PURE__*/function () { - function AnnotationElement(parameters) { - var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, AnnotationElement); - - this.isRenderable = isRenderable; - this.data = parameters.data; - this.layer = parameters.layer; - this.page = parameters.page; - this.viewport = parameters.viewport; - this.linkService = parameters.linkService; - this.downloadManager = parameters.downloadManager; - this.imageResourcesPath = parameters.imageResourcesPath; - this.renderInteractiveForms = parameters.renderInteractiveForms; - this.svgFactory = parameters.svgFactory; - - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - } - - _createClass(AnnotationElement, [{ - key: "_createContainer", - value: function _createContainer() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var data = this.data, - page = this.page, - viewport = this.viewport; - var container = document.createElement("section"); - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - container.setAttribute("data-annotation-id", data.id); - - var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); - - container.style.transform = "matrix(".concat(viewport.transform.join(","), ")"); - container.style.transformOrigin = "-".concat(rect[0], "px -").concat(rect[1], "px"); - - if (!ignoreBorder && data.borderStyle.width > 0) { - container.style.borderWidth = "".concat(data.borderStyle.width, "px"); - - if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { - width = width - 2 * data.borderStyle.width; - height = height - 2 * data.borderStyle.width; - } - - var horizontalRadius = data.borderStyle.horizontalCornerRadius; - var verticalRadius = data.borderStyle.verticalCornerRadius; - - if (horizontalRadius > 0 || verticalRadius > 0) { - var radius = "".concat(horizontalRadius, "px / ").concat(verticalRadius, "px"); - container.style.borderRadius = radius; - } - - switch (data.borderStyle.style) { - case _util.AnnotationBorderStyleType.SOLID: - container.style.borderStyle = "solid"; - break; - - case _util.AnnotationBorderStyleType.DASHED: - container.style.borderStyle = "dashed"; - break; - - case _util.AnnotationBorderStyleType.BEVELED: - (0, _util.warn)("Unimplemented border style: beveled"); - break; - - case _util.AnnotationBorderStyleType.INSET: - (0, _util.warn)("Unimplemented border style: inset"); - break; - - case _util.AnnotationBorderStyleType.UNDERLINE: - container.style.borderBottomStyle = "solid"; - break; - - default: - break; - } - - if (data.color) { - container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); - } else { - container.style.borderWidth = 0; - } - } - - container.style.left = "".concat(rect[0], "px"); - container.style.top = "".concat(rect[1], "px"); - container.style.width = "".concat(width, "px"); - container.style.height = "".concat(height, "px"); - return container; - } - }, { - key: "_createPopup", - value: function _createPopup(container, trigger, data) { - if (!trigger) { - trigger = document.createElement("div"); - trigger.style.height = container.style.height; - trigger.style.width = container.style.width; - container.appendChild(trigger); - } - - var popupElement = new PopupElement({ - container: container, - trigger: trigger, - color: data.color, - title: data.title, - modificationDate: data.modificationDate, - contents: data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - popup.style.left = container.style.width; - container.appendChild(popup); - } - }, { - key: "render", - value: function render() { - (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); - } - }]); - - return AnnotationElement; -}(); - -var LinkAnnotationElement = /*#__PURE__*/function (_AnnotationElement) { - _inherits(LinkAnnotationElement, _AnnotationElement); - - function LinkAnnotationElement(parameters) { - _classCallCheck(this, LinkAnnotationElement); - - var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); - return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(LinkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "linkAnnotation"; - var data = this.data, - linkService = this.linkService; - var link = document.createElement("a"); - - if (data.url) { - (0, _display_utils.addLinkAttributes)(link, { - url: data.url, - target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel, - enabled: linkService.externalLinkEnabled - }); - } else if (data.action) { - this._bindNamedAction(link, data.action); - } else { - this._bindLink(link, data.dest); - } - - this.container.appendChild(link); - return this.container; - } - }, { - key: "_bindLink", - value: function _bindLink(link, destination) { - var _this = this; - - link.href = this.linkService.getDestinationHash(destination); - - link.onclick = function () { - if (destination) { - _this.linkService.navigateTo(destination); - } - - return false; + pump(); + }, capability.reject); }; - if (destination) { - link.className = "internalLink"; + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified."); + } + + capability.promise.then(() => { + styleCache = null; + + if (!timeout) { + render(this); + } else { + this._renderTimer = setTimeout(() => { + render(this); + this._renderTimer = null; + }, timeout); } - } - }, { - key: "_bindNamedAction", - value: function _bindNamedAction(link, action) { - var _this2 = this; - - link.href = this.linkService.getAnchorUrl(""); - - link.onclick = function () { - _this2.linkService.executeNamedAction(action); - - return false; - }; - - link.className = "internalLink"; - } - }]); - - return LinkAnnotationElement; -}(AnnotationElement); - -var TextAnnotationElement = /*#__PURE__*/function (_AnnotationElement2) { - _inherits(TextAnnotationElement, _AnnotationElement2); - - function TextAnnotationElement(parameters) { - _classCallCheck(this, TextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); + }, this._capability.reject); } - _createClass(TextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "textAnnotation"; - var image = document.createElement("img"); - image.style.height = this.container.style.height; - image.style.width = this.container.style.width; - image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; - image.alt = "[{{type}} Annotation]"; - image.dataset.l10nId = "text_annotation_type"; - image.dataset.l10nArgs = JSON.stringify({ - type: this.data.name - }); + expandTextDivs(expandDivs = false) { + if (!this._enhanceTextSelection || !this._renderingDone) { + return; + } - if (!this.data.hasPopup) { - this._createPopup(this.container, image, this.data); + if (this._bounds !== null) { + expand(this); + this._bounds = null; + } + + const transformBuf = [], + paddingBuf = []; + + for (let i = 0, ii = this._textDivs.length; i < ii; i++) { + const div = this._textDivs[i]; + + const divProps = this._textDivProperties.get(div); + + if (!divProps.hasText) { + continue; } - this.container.appendChild(image); - return this.container; - } - }]); + if (expandDivs) { + transformBuf.length = 0; + paddingBuf.length = 0; - return TextAnnotationElement; -}(AnnotationElement); + if (divProps.originalTransform) { + transformBuf.push(divProps.originalTransform); + } -var WidgetAnnotationElement = /*#__PURE__*/function (_AnnotationElement3) { - _inherits(WidgetAnnotationElement, _AnnotationElement3); - - function WidgetAnnotationElement() { - _classCallCheck(this, WidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(WidgetAnnotationElement, [{ - key: "render", - value: function render() { - return this.container; - } - }]); - - return WidgetAnnotationElement; -}(AnnotationElement); - -var TextWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem) { - _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); - - function TextWidgetAnnotationElement(parameters) { - _classCallCheck(this, TextWidgetAnnotationElement); - - var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(TextWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var TEXT_ALIGNMENT = ["left", "center", "right"]; - this.container.className = "textWidgetAnnotation"; - var element = null; - - if (this.renderInteractiveForms) { - if (this.data.multiLine) { - element = document.createElement("textarea"); - element.textContent = this.data.fieldValue; + if (divProps.paddingTop > 0) { + paddingBuf.push(`${divProps.paddingTop}px`); + transformBuf.push(`translateY(${-divProps.paddingTop}px)`); } else { - element = document.createElement("input"); - element.type = "text"; - element.setAttribute("value", this.data.fieldValue); + paddingBuf.push(0); } - element.disabled = this.data.readOnly; - - if (this.data.maxLen !== null) { - element.maxLength = this.data.maxLen; + if (divProps.paddingRight > 0) { + paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`); + } else { + paddingBuf.push(0); } - if (this.data.comb) { - var fieldWidth = this.data.rect[2] - this.data.rect[0]; - var combWidth = fieldWidth / this.data.maxLen; - element.classList.add("comb"); - element.style.letterSpacing = "calc(".concat(combWidth, "px - 1ch)"); + if (divProps.paddingBottom > 0) { + paddingBuf.push(`${divProps.paddingBottom}px`); + } else { + paddingBuf.push(0); + } + + if (divProps.paddingLeft > 0) { + paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`); + transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`); + } else { + paddingBuf.push(0); + } + + div.style.padding = paddingBuf.join(" "); + + if (transformBuf.length) { + div.style.transform = transformBuf.join(" "); } } else { - element = document.createElement("div"); - element.textContent = this.data.fieldValue; - element.style.verticalAlign = "middle"; - element.style.display = "table-cell"; - var font = null; - - if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { - font = this.page.commonObjs.get(this.data.fontRefName); - } - - this._setTextStyle(element, font); + div.style.padding = null; + div.style.transform = divProps.originalTransform; } - - if (this.data.textAlignment !== null) { - element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; - } - - this.container.appendChild(element); - return this.container; } - }, { - key: "_setTextStyle", - value: function _setTextStyle(element, font) { - var style = element.style; - style.fontSize = "".concat(this.data.fontSize, "px"); - style.direction = this.data.fontDirection < 0 ? "rtl" : "ltr"; - - if (!font) { - return; - } - - var bold = "normal"; - - if (font.black) { - bold = "900"; - } else if (font.bold) { - bold = "bold"; - } - - style.fontWeight = bold; - style.fontStyle = font.italic ? "italic" : "normal"; - var fontFamily = font.loadedName ? "\"".concat(font.loadedName, "\", ") : ""; - var fallbackName = font.fallbackName || "Helvetica, sans-serif"; - style.fontFamily = fontFamily + fallbackName; - } - }]); - - return TextWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var CheckboxWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem2) { - _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); - - function CheckboxWidgetAnnotationElement(parameters) { - _classCallCheck(this, CheckboxWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); } - _createClass(CheckboxWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "buttonWidgetAnnotation checkBox"; - var element = document.createElement("input"); - element.disabled = this.data.readOnly; - element.type = "checkbox"; - - if (this.data.fieldValue && this.data.fieldValue !== "Off") { - element.setAttribute("checked", true); - } - - this.container.appendChild(element); - return this.container; - } - }]); - - return CheckboxWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var RadioButtonWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem3) { - _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); - - function RadioButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, RadioButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(RadioButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "buttonWidgetAnnotation radioButton"; - var element = document.createElement("input"); - element.disabled = this.data.readOnly; - element.type = "radio"; - element.name = this.data.fieldName; - - if (this.data.fieldValue === this.data.buttonValue) { - element.setAttribute("checked", true); - } - - this.container.appendChild(element); - return this.container; - } - }]); - - return RadioButtonWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PushButtonWidgetAnnotationElement = /*#__PURE__*/function (_LinkAnnotationElemen) { - _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); - - function PushButtonWidgetAnnotationElement() { - _classCallCheck(this, PushButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(PushButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); - - container.className = "buttonWidgetAnnotation pushButton"; - return container; - } - }]); - - return PushButtonWidgetAnnotationElement; -}(LinkAnnotationElement); - -var ChoiceWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem4) { - _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); - - function ChoiceWidgetAnnotationElement(parameters) { - _classCallCheck(this, ChoiceWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(ChoiceWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "choiceWidgetAnnotation"; - var selectElement = document.createElement("select"); - selectElement.disabled = this.data.readOnly; - - if (!this.data.combo) { - selectElement.size = this.data.options.length; - - if (this.data.multiSelect) { - selectElement.multiple = true; - } - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.data.options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var option = _step.value; - var optionElement = document.createElement("option"); - optionElement.textContent = option.displayValue; - optionElement.value = option.exportValue; - - if (this.data.fieldValue.includes(option.displayValue)) { - optionElement.setAttribute("selected", true); - } - - selectElement.appendChild(optionElement); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - this.container.appendChild(selectElement); - return this.container; - } - }]); - - return ChoiceWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PopupAnnotationElement = /*#__PURE__*/function (_AnnotationElement4) { - _inherits(PopupAnnotationElement, _AnnotationElement4); - - function PopupAnnotationElement(parameters) { - _classCallCheck(this, PopupAnnotationElement); - - var isRenderable = !!(parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(PopupAnnotationElement, [{ - key: "render", - value: function render() { - var IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"]; - this.container.className = "popupAnnotation"; - - if (IGNORE_TYPES.includes(this.data.parentType)) { - return this.container; - } - - var selector = "[data-annotation-id=\"".concat(this.data.parentId, "\"]"); - var parentElement = this.layer.querySelector(selector); - - if (!parentElement) { - return this.container; - } - - var popup = new PopupElement({ - container: this.container, - trigger: parentElement, - color: this.data.color, - title: this.data.title, - modificationDate: this.data.modificationDate, - contents: this.data.contents - }); - var parentLeft = parseFloat(parentElement.style.left); - var parentWidth = parseFloat(parentElement.style.width); - this.container.style.transformOrigin = "-".concat(parentLeft + parentWidth, "px -").concat(parentElement.style.top); - this.container.style.left = "".concat(parentLeft + parentWidth, "px"); - this.container.appendChild(popup.render()); - return this.container; - } - }]); - - return PopupAnnotationElement; -}(AnnotationElement); - -var PopupElement = /*#__PURE__*/function () { - function PopupElement(parameters) { - _classCallCheck(this, PopupElement); - - this.container = parameters.container; - this.trigger = parameters.trigger; - this.color = parameters.color; - this.title = parameters.title; - this.modificationDate = parameters.modificationDate; - this.contents = parameters.contents; - this.hideWrapper = parameters.hideWrapper || false; - this.pinned = false; - } - - _createClass(PopupElement, [{ - key: "render", - value: function render() { - var BACKGROUND_ENLIGHT = 0.7; - var wrapper = document.createElement("div"); - wrapper.className = "popupWrapper"; - this.hideElement = this.hideWrapper ? wrapper : this.container; - this.hideElement.setAttribute("hidden", true); - var popup = document.createElement("div"); - popup.className = "popup"; - var color = this.color; - - if (color) { - var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; - var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; - var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; - popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); - } - - var title = document.createElement("h1"); - title.textContent = this.title; - popup.appendChild(title); - - var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); - - if (dateObject) { - var modificationDate = document.createElement("span"); - modificationDate.textContent = "{{date}}, {{time}}"; - modificationDate.dataset.l10nId = "annotation_date_string"; - modificationDate.dataset.l10nArgs = JSON.stringify({ - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - popup.appendChild(modificationDate); - } - - var contents = this._formatContents(this.contents); - - popup.appendChild(contents); - this.trigger.addEventListener("click", this._toggle.bind(this)); - this.trigger.addEventListener("mouseover", this._show.bind(this, false)); - this.trigger.addEventListener("mouseout", this._hide.bind(this, false)); - popup.addEventListener("click", this._hide.bind(this, true)); - wrapper.appendChild(popup); - return wrapper; - } - }, { - key: "_formatContents", - value: function _formatContents(contents) { - var p = document.createElement("p"); - var lines = contents.split(/(?:\r\n?|\n)/); - - for (var i = 0, ii = lines.length; i < ii; ++i) { - var line = lines[i]; - p.appendChild(document.createTextNode(line)); - - if (i < ii - 1) { - p.appendChild(document.createElement("br")); - } - } - - return p; - } - }, { - key: "_toggle", - value: function _toggle() { - if (this.pinned) { - this._hide(true); - } else { - this._show(true); - } - } - }, { - key: "_show", - value: function _show() { - var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (pin) { - this.pinned = true; - } - - if (this.hideElement.hasAttribute("hidden")) { - this.hideElement.removeAttribute("hidden"); - this.container.style.zIndex += 1; - } - } - }, { - key: "_hide", - value: function _hide() { - var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - if (unpin) { - this.pinned = false; - } - - if (!this.hideElement.hasAttribute("hidden") && !this.pinned) { - this.hideElement.setAttribute("hidden", true); - this.container.style.zIndex -= 1; - } - } - }]); - - return PopupElement; -}(); - -var FreeTextAnnotationElement = /*#__PURE__*/function (_AnnotationElement5) { - _inherits(FreeTextAnnotationElement, _AnnotationElement5); - - function FreeTextAnnotationElement(parameters) { - _classCallCheck(this, FreeTextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(FreeTextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "freeTextAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return FreeTextAnnotationElement; -}(AnnotationElement); - -var LineAnnotationElement = /*#__PURE__*/function (_AnnotationElement6) { - _inherits(LineAnnotationElement, _AnnotationElement6); - - function LineAnnotationElement(parameters) { - _classCallCheck(this, LineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(LineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "lineAnnotation"; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var line = this.svgFactory.createElement("svg:line"); - line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); - line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); - line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); - line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); - line.setAttribute("stroke-width", data.borderStyle.width || 1); - line.setAttribute("stroke", "transparent"); - svg.appendChild(line); - this.container.append(svg); - - this._createPopup(this.container, line, data); - - return this.container; - } - }]); - - return LineAnnotationElement; -}(AnnotationElement); - -var SquareAnnotationElement = /*#__PURE__*/function (_AnnotationElement7) { - _inherits(SquareAnnotationElement, _AnnotationElement7); - - function SquareAnnotationElement(parameters) { - _classCallCheck(this, SquareAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquareAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "squareAnnotation"; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var square = this.svgFactory.createElement("svg:rect"); - square.setAttribute("x", borderWidth / 2); - square.setAttribute("y", borderWidth / 2); - square.setAttribute("width", width - borderWidth); - square.setAttribute("height", height - borderWidth); - square.setAttribute("stroke-width", borderWidth || 1); - square.setAttribute("stroke", "transparent"); - square.setAttribute("fill", "none"); - svg.appendChild(square); - this.container.append(svg); - - this._createPopup(this.container, square, data); - - return this.container; - } - }]); - - return SquareAnnotationElement; -}(AnnotationElement); - -var CircleAnnotationElement = /*#__PURE__*/function (_AnnotationElement8) { - _inherits(CircleAnnotationElement, _AnnotationElement8); - - function CircleAnnotationElement(parameters) { - _classCallCheck(this, CircleAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CircleAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "circleAnnotation"; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var circle = this.svgFactory.createElement("svg:ellipse"); - circle.setAttribute("cx", width / 2); - circle.setAttribute("cy", height / 2); - circle.setAttribute("rx", width / 2 - borderWidth / 2); - circle.setAttribute("ry", height / 2 - borderWidth / 2); - circle.setAttribute("stroke-width", borderWidth || 1); - circle.setAttribute("stroke", "transparent"); - circle.setAttribute("fill", "none"); - svg.appendChild(circle); - this.container.append(svg); - - this._createPopup(this.container, circle, data); - - return this.container; - } - }]); - - return CircleAnnotationElement; -}(AnnotationElement); - -var PolylineAnnotationElement = /*#__PURE__*/function (_AnnotationElement9) { - _inherits(PolylineAnnotationElement, _AnnotationElement9); - - function PolylineAnnotationElement(parameters) { - var _this3; - - _classCallCheck(this, PolylineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); - _this3.containerClassName = "polylineAnnotation"; - _this3.svgElementName = "svg:polyline"; - return _this3; - } - - _createClass(PolylineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var points = []; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = data.vertices[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var coordinate = _step2.value; - var x = coordinate.x - data.rect[0]; - var y = data.rect[3] - coordinate.y; - points.push(x + "," + y); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - points = points.join(" "); - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute("points", points); - polyline.setAttribute("stroke-width", data.borderStyle.width || 1); - polyline.setAttribute("stroke", "transparent"); - polyline.setAttribute("fill", "none"); - svg.appendChild(polyline); - this.container.append(svg); - - this._createPopup(this.container, polyline, data); - - return this.container; - } - }]); - - return PolylineAnnotationElement; -}(AnnotationElement); - -var PolygonAnnotationElement = /*#__PURE__*/function (_PolylineAnnotationEl) { - _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); - - function PolygonAnnotationElement(parameters) { - var _this4; - - _classCallCheck(this, PolygonAnnotationElement); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); - _this4.containerClassName = "polygonAnnotation"; - _this4.svgElementName = "svg:polygon"; - return _this4; - } - - return PolygonAnnotationElement; -}(PolylineAnnotationElement); - -var CaretAnnotationElement = /*#__PURE__*/function (_AnnotationElement10) { - _inherits(CaretAnnotationElement, _AnnotationElement10); - - function CaretAnnotationElement(parameters) { - _classCallCheck(this, CaretAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CaretAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "caretAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return CaretAnnotationElement; -}(AnnotationElement); - -var InkAnnotationElement = /*#__PURE__*/function (_AnnotationElement11) { - _inherits(InkAnnotationElement, _AnnotationElement11); - - function InkAnnotationElement(parameters) { - var _this5; - - _classCallCheck(this, InkAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); - _this5.containerClassName = "inkAnnotation"; - _this5.svgElementName = "svg:polyline"; - return _this5; - } - - _createClass(InkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = data.inkLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var inkList = _step3.value; - var points = []; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = inkList[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var coordinate = _step4.value; - var x = coordinate.x - data.rect[0]; - var y = data.rect[3] - coordinate.y; - points.push("".concat(x, ",").concat(y)); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - points = points.join(" "); - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute("points", points); - polyline.setAttribute("stroke-width", data.borderStyle.width || 1); - polyline.setAttribute("stroke", "transparent"); - polyline.setAttribute("fill", "none"); - - this._createPopup(this.container, polyline, data); - - svg.appendChild(polyline); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - this.container.append(svg); - return this.container; - } - }]); - - return InkAnnotationElement; -}(AnnotationElement); - -var HighlightAnnotationElement = /*#__PURE__*/function (_AnnotationElement12) { - _inherits(HighlightAnnotationElement, _AnnotationElement12); - - function HighlightAnnotationElement(parameters) { - _classCallCheck(this, HighlightAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(HighlightAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "highlightAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return HighlightAnnotationElement; -}(AnnotationElement); - -var UnderlineAnnotationElement = /*#__PURE__*/function (_AnnotationElement13) { - _inherits(UnderlineAnnotationElement, _AnnotationElement13); - - function UnderlineAnnotationElement(parameters) { - _classCallCheck(this, UnderlineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(UnderlineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "underlineAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return UnderlineAnnotationElement; -}(AnnotationElement); - -var SquigglyAnnotationElement = /*#__PURE__*/function (_AnnotationElement14) { - _inherits(SquigglyAnnotationElement, _AnnotationElement14); - - function SquigglyAnnotationElement(parameters) { - _classCallCheck(this, SquigglyAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquigglyAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "squigglyAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return SquigglyAnnotationElement; -}(AnnotationElement); - -var StrikeOutAnnotationElement = /*#__PURE__*/function (_AnnotationElement15) { - _inherits(StrikeOutAnnotationElement, _AnnotationElement15); - - function StrikeOutAnnotationElement(parameters) { - _classCallCheck(this, StrikeOutAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StrikeOutAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "strikeoutAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StrikeOutAnnotationElement; -}(AnnotationElement); - -var StampAnnotationElement = /*#__PURE__*/function (_AnnotationElement16) { - _inherits(StampAnnotationElement, _AnnotationElement16); - - function StampAnnotationElement(parameters) { - _classCallCheck(this, StampAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StampAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "stampAnnotation"; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StampAnnotationElement; -}(AnnotationElement); - -var FileAttachmentAnnotationElement = /*#__PURE__*/function (_AnnotationElement17) { - _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); - - function FileAttachmentAnnotationElement(parameters) { - var _this6; - - _classCallCheck(this, FileAttachmentAnnotationElement); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); - var _this6$data$file = _this6.data.file, - filename = _this6$data$file.filename, - content = _this6$data$file.content; - _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename); - _this6.content = content; - - if (_this6.linkService.eventBus) { - _this6.linkService.eventBus.dispatch("fileattachmentannotation", { - source: _assertThisInitialized(_this6), - id: (0, _util.stringToPDFString)(filename), - filename: filename, - content: content - }); - } - - return _this6; - } - - _createClass(FileAttachmentAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = "fileAttachmentAnnotation"; - var trigger = document.createElement("div"); - trigger.style.height = this.container.style.height; - trigger.style.width = this.container.style.width; - trigger.addEventListener("dblclick", this._download.bind(this)); - - if (!this.data.hasPopup && (this.data.title || this.data.contents)) { - this._createPopup(this.container, trigger, this.data); - } - - this.container.appendChild(trigger); - return this.container; - } - }, { - key: "_download", - value: function _download() { - if (!this.downloadManager) { - (0, _util.warn)("Download cannot be started due to unavailable download manager"); - return; - } - - this.downloadManager.downloadData(this.content, this.filename, ""); - } - }]); - - return FileAttachmentAnnotationElement; -}(AnnotationElement); - -var AnnotationLayer = /*#__PURE__*/function () { - function AnnotationLayer() { - _classCallCheck(this, AnnotationLayer); - } - - _createClass(AnnotationLayer, null, [{ - key: "render", - value: function render(parameters) { - var sortedAnnotations = [], - popupAnnotations = []; - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = parameters.annotations[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var data = _step5.value; - - if (!data) { - continue; - } - - if (data.annotationType === _util.AnnotationType.POPUP) { - popupAnnotations.push(data); - continue; - } - - sortedAnnotations.push(data); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { - _iterator5["return"](); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - if (popupAnnotations.length) { - sortedAnnotations.push.apply(sortedAnnotations, popupAnnotations); - } - - for (var _i = 0, _sortedAnnotations = sortedAnnotations; _i < _sortedAnnotations.length; _i++) { - var _data = _sortedAnnotations[_i]; - var element = AnnotationElementFactory.create({ - data: _data, - layer: parameters.div, - page: parameters.page, - viewport: parameters.viewport, - linkService: parameters.linkService, - downloadManager: parameters.downloadManager, - imageResourcesPath: parameters.imageResourcesPath || "", - renderInteractiveForms: parameters.renderInteractiveForms || false, - svgFactory: new _display_utils.DOMSVGFactory() - }); - - if (element.isRenderable) { - parameters.div.appendChild(element.render()); - } - } - } - }, { - key: "update", - value: function update(parameters) { - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = parameters.annotations[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var data = _step6.value; - var element = parameters.div.querySelector("[data-annotation-id=\"".concat(data.id, "\"]")); - - if (element) { - element.style.transform = "matrix(".concat(parameters.viewport.transform.join(","), ")"); - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { - _iterator6["return"](); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - - parameters.div.removeAttribute("hidden"); - } - }]); - - return AnnotationLayer; -}(); - -exports.AnnotationLayer = AnnotationLayer; +} + +function renderTextLayer(renderParameters) { + const task = new TextLayerRenderTask({ + textContent: renderParameters.textContent, + textContentStream: renderParameters.textContentStream, + container: renderParameters.container, + viewport: renderParameters.viewport, + textDivs: renderParameters.textDivs, + textContentItemsStr: renderParameters.textContentItemsStr, + enhanceTextSelection: renderParameters.enhanceTextSelection + }); + + task._render(renderParameters.timeout); + + return task; +} /***/ }), -/* 207 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 20 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.SVGGraphics = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _display_utils = __w_pdfjs_require__(194); +var _display_utils = __w_pdfjs_require__(1); -var _is_node = __w_pdfjs_require__(48); +var _is_node = __w_pdfjs_require__(4); -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } +let SVGGraphics = class { + constructor() { + (0, _util.unreachable)("Not implemented: SVGGraphics"); + } -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SVGGraphics = function SVGGraphics() { - throw new Error("Not implemented: SVGGraphics"); }; - exports.SVGGraphics = SVGGraphics; { - var opListToTree = function opListToTree(opList) { - var opTree = []; - var tmp = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var opListElement = _step.value; - - if (opListElement.fn === "save") { - opTree.push({ - fnId: 92, - fn: "group", - items: [] - }); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - - if (opListElement.fn === "restore") { - opTree = tmp.pop(); - } else { - opTree.push(opListElement); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return opTree; - }; - - var pf = function pf(value) { - if (Number.isInteger(value)) { - return value.toString(); - } - - var s = value.toFixed(10); - var i = s.length - 1; - - if (s[i] !== "0") { - return s; - } - - do { - i--; - } while (s[i] === "0"); - - return s.substring(0, s[i] === "." ? i : i + 1); - }; - - var pm = function pm(m) { - if (m[4] === 0 && m[5] === 0) { - if (m[1] === 0 && m[2] === 0) { - if (m[0] === 1 && m[3] === 1) { - return ""; - } - - return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); - } - - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return "rotate(".concat(pf(a), ")"); - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); - } - } - - return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); - }; - - var SVG_DEFAULTS = { + const SVG_DEFAULTS = { fontStyle: "normal", fontWeight: "normal", fillColor: "#000000" }; - var XML_NS = "http://www.w3.org/XML/1998/namespace"; - var XLINK_NS = "http://www.w3.org/1999/xlink"; - var LINE_CAP_STYLES = ["butt", "round", "square"]; - var LINE_JOIN_STYLES = ["miter", "round", "bevel"]; + const XML_NS = "http://www.w3.org/XML/1998/namespace"; + const XLINK_NS = "http://www.w3.org/1999/xlink"; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; - var convertImgDataToPng = function () { - var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); - var CHUNK_WRAPPER_SIZE = 12; - var crcTable = new Int32Array(256); + const convertImgDataToPng = function () { + const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + const CHUNK_WRAPPER_SIZE = 12; + const crcTable = new Int32Array(256); - for (var i = 0; i < 256; i++) { - var c = i; + for (let i = 0; i < 256; i++) { + let c = i; - for (var h = 0; h < 8; h++) { + for (let h = 0; h < 8; h++) { if (c & 1) { c = 0xedb88320 ^ c >> 1 & 0x7fffffff; } else { @@ -21860,11 +11292,11 @@ exports.SVGGraphics = SVGGraphics; } function crc32(data, start, end) { - var crc = -1; + let crc = -1; - for (var _i = start; _i < end; _i++) { - var a = (crc ^ data[_i]) & 0xff; - var b = crcTable[a]; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; crc = crc >>> 8 ^ b; } @@ -21872,8 +11304,8 @@ exports.SVGGraphics = SVGGraphics; } function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; + let p = offset; + const len = body.length; data[p] = len >> 24 & 0xff; data[p + 1] = len >> 16 & 0xff; data[p + 2] = len >> 8 & 0xff; @@ -21886,7 +11318,7 @@ exports.SVGGraphics = SVGGraphics; p += 4; data.set(body, p); p += body.length; - var crc = crc32(data, offset + 4, p); + const crc = crc32(data, offset + 4, p); data[p] = crc >> 24 & 0xff; data[p + 1] = crc >> 16 & 0xff; data[p + 2] = crc >> 8 & 0xff; @@ -21894,11 +11326,11 @@ exports.SVGGraphics = SVGGraphics; } function adler32(data, start, end) { - var a = 1; - var b = 0; + let a = 1; + let b = 0; - for (var _i2 = start; _i2 < end; ++_i2) { - a = (a + (data[_i2] & 0xff)) % 65521; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; b = (b + a) % 65521; } @@ -21911,7 +11343,7 @@ exports.SVGGraphics = SVGGraphics; } try { - var input; + let input; if (parseInt(process.versions.node) >= 8) { input = literals; @@ -21919,7 +11351,7 @@ exports.SVGGraphics = SVGGraphics; input = Buffer.from(literals); } - var output = require("zlib").deflateSync(input, { + const output = require("zlib").deflateSync(input, { level: 9 }); @@ -21932,14 +11364,14 @@ exports.SVGGraphics = SVGGraphics; } function deflateSyncUncompressed(literals) { - var len = literals.length; - var maxBlockLength = 0xffff; - var deflateBlocks = Math.ceil(len / maxBlockLength); - var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); - var pi = 0; + let len = literals.length; + const maxBlockLength = 0xffff; + const deflateBlocks = Math.ceil(len / maxBlockLength); + const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + let pi = 0; idat[pi++] = 0x78; idat[pi++] = 0x9c; - var pos = 0; + let pos = 0; while (len > maxBlockLength) { idat[pi++] = 0x00; @@ -21960,7 +11392,7 @@ exports.SVGGraphics = SVGGraphics; idat[pi++] = (~len & 0xffff) >> 8 & 0xff; idat.set(literals.subarray(pos), pi); pi += literals.length - pos; - var adler = adler32(literals, 0, literals.length); + const adler = adler32(literals, 0, literals.length); idat[pi++] = adler >> 24 & 0xff; idat[pi++] = adler >> 16 & 0xff; idat[pi++] = adler >> 8 & 0xff; @@ -21969,10 +11401,10 @@ exports.SVGGraphics = SVGGraphics; } function encode(imgData, kind, forceDataSchema, isMask) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; switch (kind) { case _util.ImageKind.GRAYSCALE_1BPP: @@ -21997,11 +11429,11 @@ exports.SVGGraphics = SVGGraphics; throw new Error("invalid format"); } - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, offsetBytes = 0; - for (var y = 0; y < height; ++y) { + for (let y = 0; y < height; ++y) { literals[offsetLiterals++] = 0; literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); offsetBytes += lineSize; @@ -22011,20 +11443,20 @@ exports.SVGGraphics = SVGGraphics; if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { offsetLiterals = 0; - for (var _y = 0; _y < height; _y++) { + for (let y = 0; y < height; y++) { offsetLiterals++; - for (var _i3 = 0; _i3 < lineSize; _i3++) { + for (let i = 0; i < lineSize; i++) { literals[offsetLiterals++] ^= 0xff; } } } - var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); - var idat = deflateSync(literals); - var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; + const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); + const idat = deflateSync(literals); + const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + const data = new Uint8Array(pngLength); + let offset = 0; data.set(PNG_HEADER, offset); offset += PNG_HEADER.length; writePngChunk("IHDR", ihdr, data, offset); @@ -22036,15 +11468,13 @@ exports.SVGGraphics = SVGGraphics; } return function convertImgDataToPng(imgData, forceDataSchema, isMask) { - var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; return encode(imgData, kind, forceDataSchema, isMask); }; }(); - var SVGExtraState = /*#__PURE__*/function () { - function SVGExtraState() { - _classCallCheck(this, SVGExtraState); - + class SVGExtraState { + constructor() { this.fontSizeScale = 1; this.fontWeight = SVG_DEFAULTS.fontWeight; this.fontSize = 0; @@ -22077,30 +11507,90 @@ exports.SVGGraphics = SVGGraphics; this.maskId = ""; } - _createClass(SVGExtraState, [{ - key: "clone", - value: function clone() { - return Object.create(this); + clone() { + return Object.create(this); + } + + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + + } + + function opListToTree(opList) { + let opTree = []; + const tmp = []; + + for (const opListElement of opList) { + if (opListElement.fn === "save") { + opTree.push({ + fnId: 92, + fn: "group", + items: [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; } - }, { - key: "setCurrentPoint", - value: function setCurrentPoint(x, y) { - this.x = x; - this.y = y; + + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); } - }]); + } - return SVGExtraState; - }(); + return opTree; + } - var clipCount = 0; - var maskCount = 0; - var shadingCount = 0; + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } - exports.SVGGraphics = SVGGraphics = /*#__PURE__*/function () { - function SVGGraphics(commonObjs, objs, forceDataSchema) { - _classCallCheck(this, SVGGraphics); + const s = value.toFixed(10); + let i = s.length - 1; + if (s[i] !== "0") { + return s; + } + + do { + i--; + } while (s[i] === "0"); + + return s.substring(0, s[i] === "." ? i : i + 1); + } + + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ""; + } + + return `scale(${pf(m[0])} ${pf(m[3])})`; + } + + if (m[0] === m[3] && m[1] === -m[2]) { + const a = Math.acos(m[0]) * 180 / Math.PI; + return `rotate(${pf(a)})`; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return `translate(${pf(m[4])} ${pf(m[5])})`; + } + } + + return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`; + } + + let clipCount = 0; + let maskCount = 0; + let shadingCount = 0; + exports.SVGGraphics = SVGGraphics = class { + constructor(commonObjs, objs, forceDataSchema = false) { this.svgFactory = new _display_utils.DOMSVGFactory(); this.current = new SVGExtraState(); this.transformMatrix = _util.IDENTITY_MATRIX; @@ -22116,1412 +11606,1395 @@ exports.SVGGraphics = SVGGraphics; this.forceDataSchema = !!forceDataSchema; this._operatorIdMapping = []; - for (var op in _util.OPS) { + for (const op in _util.OPS) { this._operatorIdMapping[_util.OPS[op]] = op; } } - _createClass(SVGGraphics, [{ - key: "save", - value: function save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - } - }, { - key: "restore", - value: function restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null; - } - }, { - key: "group", - value: function group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); - } - }, { - key: "loadDependencies", - value: function loadDependencies(operatorList) { - var _this = this; + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } - var fnArray = operatorList.fnArray; - var argsArray = operatorList.argsArray; + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } - for (var i = 0, ii = fnArray.length; i < ii; i++) { - if (fnArray[i] !== _util.OPS.dependency) { - continue; - } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; - try { - var _loop = function _loop() { - var obj = _step2.value; - var objsPool = obj.startsWith("g_") ? _this.commonObjs : _this.objs; - var promise = new Promise(function (resolve) { - objsPool.get(obj, resolve); - }); - - _this.current.dependencies.push(promise); - }; - - for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - _loop(); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; } - return Promise.all(this.current.dependencies); + for (const obj of argsArray[i]) { + const objsPool = obj.startsWith("g_") ? this.commonObjs : this.objs; + const promise = new Promise(resolve => { + objsPool.get(obj, resolve); + }); + this.current.dependencies.push(promise); + } } - }, { - key: "transform", - value: function transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); - this.tgrp = null; - } - }, { - key: "getSVG", - value: function getSVG(operatorList, viewport) { - var _this2 = this; - this.viewport = viewport; + return Promise.all(this.current.dependencies); + } - var svgElement = this._initialize(viewport); + transform(a, b, c, d, e, f) { + const transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } - return this.loadDependencies(operatorList).then(function () { - _this2.transformMatrix = _util.IDENTITY_MATRIX; + getSVG(operatorList, viewport) { + this.viewport = viewport; - _this2.executeOpTree(_this2.convertOpList(operatorList)); + const svgElement = this._initialize(viewport); - return svgElement; + return this.loadDependencies(operatorList).then(() => { + this.transformMatrix = _util.IDENTITY_MATRIX; + this.executeOpTree(this.convertOpList(operatorList)); + return svgElement; + }); + } + + convertOpList(operatorList) { + const operatorIdMapping = this._operatorIdMapping; + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + const opList = []; + + for (let i = 0, ii = fnArray.length; i < ii; i++) { + const fnId = fnArray[i]; + opList.push({ + fnId, + fn: operatorIdMapping[fnId], + args: argsArray[i] }); } - }, { - key: "convertOpList", - value: function convertOpList(operatorList) { - var operatorIdMapping = this._operatorIdMapping; - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var opList = []; - - for (var i = 0, ii = fnArray.length; i < ii; i++) { - var fnId = fnArray[i]; - opList.push({ - fnId: fnId, - fn: operatorIdMapping[fnId], - args: argsArray[i] - }); - } - - return opListToTree(opList); - } - }, { - key: "executeOpTree", - value: function executeOpTree(opTree) { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var opTreeElement = _step3.value; - var fn = opTreeElement.fn; - var fnId = opTreeElement.fnId; - var args = opTreeElement.args; - - switch (fnId | 0) { - case _util.OPS.beginText: - this.beginText(); - break; - - case _util.OPS.dependency: - break; - - case _util.OPS.setLeading: - this.setLeading(args); - break; - - case _util.OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - - case _util.OPS.setFont: - this.setFont(args); - break; - - case _util.OPS.showText: - this.showText(args[0]); - break; - - case _util.OPS.showSpacedText: - this.showText(args[0]); - break; - - case _util.OPS.endText: - this.endText(); - break; - - case _util.OPS.moveText: - this.moveText(args[0], args[1]); - break; - - case _util.OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - - case _util.OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - - case _util.OPS.setHScale: - this.setHScale(args[0]); - break; - - case _util.OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.setTextRise: - this.setTextRise(args[0]); - break; - - case _util.OPS.setTextRenderingMode: - this.setTextRenderingMode(args[0]); - break; - - case _util.OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - - case _util.OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - - case _util.OPS.setLineCap: - this.setLineCap(args[0]); - break; - - case _util.OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - - case _util.OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeColorN: - this.setStrokeColorN(args); - break; - - case _util.OPS.setFillColorN: - this.setFillColorN(args); - break; - case _util.OPS.shadingFill: - this.shadingFill(args[0]); - break; + return opListToTree(opList); + } - case _util.OPS.setDash: - this.setDash(args[0], args[1]); - break; + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const args = opTreeElement.args; - case _util.OPS.setRenderingIntent: - this.setRenderingIntent(args[0]); - break; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; - case _util.OPS.setFlatness: - this.setFlatness(args[0]); - break; + case _util.OPS.dependency: + break; - case _util.OPS.setGState: - this.setGState(args[0]); - break; - - case _util.OPS.fill: - this.fill(); - break; - - case _util.OPS.eoFill: - this.eoFill(); - break; - - case _util.OPS.stroke: - this.stroke(); - break; - - case _util.OPS.fillStroke: - this.fillStroke(); - break; - - case _util.OPS.eoFillStroke: - this.eoFillStroke(); - break; - - case _util.OPS.clip: - this.clip("nonzero"); - break; - - case _util.OPS.eoClip: - this.clip("evenodd"); - break; - - case _util.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - - case _util.OPS.paintJpegXObject: - this.paintJpegXObject(args[0], args[1], args[2]); - break; - - case _util.OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - - case _util.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - - case _util.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - - case _util.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - - case _util.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - - case _util.OPS.closePath: - this.closePath(); - break; - - case _util.OPS.closeStroke: - this.closeStroke(); - break; - - case _util.OPS.closeFillStroke: - this.closeFillStroke(); - break; - - case _util.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - - case _util.OPS.nextLine: - this.nextLine(); - break; - - case _util.OPS.transform: - this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - - case _util.OPS.endPath: - this.endPath(); - break; - - case 92: - this.group(opTreeElement.items); - break; - - default: - (0, _util.warn)("Unimplemented operator ".concat(fn)); - break; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - } - }, { - key: "setWordSpacing", - value: function setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - } - }, { - key: "setCharSpacing", - value: function setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - } - }, { - key: "nextLine", - value: function nextLine() { - this.moveText(0, this.current.leading); - } - }, { - key: "setTextMatrix", - value: function setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; - current.textMatrixScale = Math.sqrt(a * a + b * b); - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.xcoords = []; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); - current.txtElement = this.svgFactory.createElement("svg:text"); - current.txtElement.appendChild(current.tspan); - } - }, { - key: "beginText", - value: function beginText() { - var current = this.current; - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.textMatrix = _util.IDENTITY_MATRIX; - current.lineMatrix = _util.IDENTITY_MATRIX; - current.textMatrixScale = 1; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.txtElement = this.svgFactory.createElement("svg:text"); - current.txtgrp = this.svgFactory.createElement("svg:g"); - current.xcoords = []; - } - }, { - key: "moveText", - value: function moveText(x, y) { - var current = this.current; - current.x = current.lineX += x; - current.y = current.lineY += y; - current.xcoords = []; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); - } - }, { - key: "showText", - value: function showText(glyphs) { - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - - if (fontSize === 0) { - return; - } - - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var vertical = font.vertical; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var x = 0; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var glyph = _step4.value; - - if (glyph === null) { - x += fontDirection * wordSpacing; - continue; - } else if ((0, _util.isNum)(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - - var width = glyph.width; - var character = glyph.fontChar; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var charWidth = width * widthAdvanceScale + spacing * fontDirection; - - if (!glyph.isInFont && !font.missingFile) { - x += charWidth; - continue; - } - - current.xcoords.push(current.x + x); - current.tspan.textContent += character; - x += charWidth; - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; - } - - current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); - current.tspan.setAttributeNS(null, "font-family", current.fontFamily); - current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px")); - - if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { - current.tspan.setAttributeNS(null, "font-style", current.fontStyle); - } - - if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { - current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); - } - - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, "fill", current.fillColor); - } - - if (current.fillAlpha < 1) { - current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); - } - } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { - current.tspan.setAttributeNS(null, "fill", "transparent"); - } else { - current.tspan.setAttributeNS(null, "fill", "none"); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - var lineWidthScale = 1 / (current.textMatrixScale || 1); - - this._setStrokeAttributes(current.tspan, lineWidthScale); - } - - var textMatrix = current.textMatrix; - - if (current.textRise !== 0) { - textMatrix = textMatrix.slice(); - textMatrix[5] += current.textRise; - } - - current.txtElement.setAttributeNS(null, "transform", "".concat(pm(textMatrix), " scale(").concat(pf(textHScale), ", -1)")); - current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); - current.txtElement.appendChild(current.tspan); - current.txtgrp.appendChild(current.txtElement); - - this._ensureTransformGroup().appendChild(current.txtElement); - } - }, { - key: "setLeadingMoveText", - value: function setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - } - }, { - key: "addFontStyle", - value: function addFontStyle(fontObj) { - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement("svg:style"); - this.cssStyle.setAttributeNS(null, "type", "text/css"); - this.defs.appendChild(this.cssStyle); - } - - var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); - this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); - } - }, { - key: "setFont", - value: function setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - current.font = fontObj; - - if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { - this.addFontStyle(fontObj); - this.embeddedFonts[fontObj.loadedName] = fontObj; - } - - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; - var bold = "normal"; - - if (fontObj.black) { - bold = "900"; - } else if (fontObj.bold) { - bold = "bold"; - } - - var italic = fontObj.italic ? "italic" : "normal"; - - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - - current.fontSize = size; - current.fontFamily = fontObj.loadedName; - current.fontWeight = bold; - current.fontStyle = italic; - current.tspan = this.svgFactory.createElement("svg:tspan"); - current.tspan.setAttributeNS(null, "y", pf(-current.y)); - current.xcoords = []; - } - }, { - key: "endText", - value: function endText() { - var current = this.current; - - if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { - current.element = current.txtElement; - this.clip("nonzero"); - this.endPath(); - } - } - }, { - key: "setLineWidth", - value: function setLineWidth(width) { - if (width > 0) { - this.current.lineWidth = width; - } - } - }, { - key: "setLineCap", - value: function setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - } - }, { - key: "setLineJoin", - value: function setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - } - }, { - key: "setMiterLimit", - value: function setMiterLimit(limit) { - this.current.miterLimit = limit; - } - }, { - key: "setStrokeAlpha", - value: function setStrokeAlpha(strokeAlpha) { - this.current.strokeAlpha = strokeAlpha; - } - }, { - key: "setStrokeRGBColor", - value: function setStrokeRGBColor(r, g, b) { - this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); - } - }, { - key: "setFillAlpha", - value: function setFillAlpha(fillAlpha) { - this.current.fillAlpha = fillAlpha; - } - }, { - key: "setFillRGBColor", - value: function setFillRGBColor(r, g, b) { - this.current.fillColor = _util.Util.makeCssRgb(r, g, b); - this.current.tspan = this.svgFactory.createElement("svg:tspan"); - this.current.xcoords = []; - } - }, { - key: "setStrokeColorN", - value: function setStrokeColorN(args) { - this.current.strokeColor = this._makeColorN_Pattern(args); - } - }, { - key: "setFillColorN", - value: function setFillColorN(args) { - this.current.fillColor = this._makeColorN_Pattern(args); - } - }, { - key: "shadingFill", - value: function shadingFill(args) { - var width = this.viewport.width; - var height = this.viewport.height; - - var inv = _util.Util.inverseTransform(this.transformMatrix); - - var bl = _util.Util.applyTransform([0, 0], inv); - - var br = _util.Util.applyTransform([0, height], inv); - - var ul = _util.Util.applyTransform([width, 0], inv); - - var ur = _util.Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", x0); - rect.setAttributeNS(null, "y", y0); - rect.setAttributeNS(null, "width", x1 - x0); - rect.setAttributeNS(null, "height", y1 - y0); - rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); - - this._ensureTransformGroup().appendChild(rect); - } - }, { - key: "_makeColorN_Pattern", - value: function _makeColorN_Pattern(args) { - if (args[0] === "TilingPattern") { - return this._makeTilingPattern(args); - } - - return this._makeShadingPattern(args); - } - }, { - key: "_makeTilingPattern", - value: function _makeTilingPattern(args) { - var color = args[1]; - var operatorList = args[2]; - var matrix = args[3] || _util.IDENTITY_MATRIX; - - var _args$ = _slicedToArray(args[4], 4), - x0 = _args$[0], - y0 = _args$[1], - x1 = _args$[2], - y1 = _args$[3]; - - var xstep = args[5]; - var ystep = args[6]; - var paintType = args[7]; - var tilingId = "shading".concat(shadingCount++); - - var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix), - _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2), - tx0 = _Util$applyTransform2[0], - ty0 = _Util$applyTransform2[1]; - - var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix), - _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), - tx1 = _Util$applyTransform4[0], - ty1 = _Util$applyTransform4[1]; - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - xscale = _Util$singularValueDe2[0], - yscale = _Util$singularValueDe2[1]; - - var txstep = xstep * xscale; - var tystep = ystep * yscale; - var tiling = this.svgFactory.createElement("svg:pattern"); - tiling.setAttributeNS(null, "id", tilingId); - tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); - tiling.setAttributeNS(null, "width", txstep); - tiling.setAttributeNS(null, "height", tystep); - tiling.setAttributeNS(null, "x", "".concat(tx0)); - tiling.setAttributeNS(null, "y", "".concat(ty0)); - var svg = this.svg; - var transformMatrix = this.transformMatrix; - var fillColor = this.current.fillColor; - var strokeColor = this.current.strokeColor; - var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); - this.svg = bbox; - this.transformMatrix = matrix; - - if (paintType === 2) { - var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color)); - - this.current.fillColor = cssColor; - this.current.strokeColor = cssColor; - } - - this.executeOpTree(this.convertOpList(operatorList)); - this.svg = svg; - this.transformMatrix = transformMatrix; - this.current.fillColor = fillColor; - this.current.strokeColor = strokeColor; - tiling.appendChild(bbox.childNodes[0]); - this.defs.appendChild(tiling); - return "url(#".concat(tilingId, ")"); - } - }, { - key: "_makeShadingPattern", - value: function _makeShadingPattern(args) { - switch (args[0]) { - case "RadialAxial": - var shadingId = "shading".concat(shadingCount++); - var colorStops = args[3]; - var gradient; - - switch (args[1]) { - case "axial": - var point0 = args[4]; - var point1 = args[5]; - gradient = this.svgFactory.createElement("svg:linearGradient"); - gradient.setAttributeNS(null, "id", shadingId); - gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - gradient.setAttributeNS(null, "x1", point0[0]); - gradient.setAttributeNS(null, "y1", point0[1]); - gradient.setAttributeNS(null, "x2", point1[0]); - gradient.setAttributeNS(null, "y2", point1[1]); - break; - - case "radial": - var focalPoint = args[4]; - var circlePoint = args[5]; - var focalRadius = args[6]; - var circleRadius = args[7]; - gradient = this.svgFactory.createElement("svg:radialGradient"); - gradient.setAttributeNS(null, "id", shadingId); - gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - gradient.setAttributeNS(null, "cx", circlePoint[0]); - gradient.setAttributeNS(null, "cy", circlePoint[1]); - gradient.setAttributeNS(null, "r", circleRadius); - gradient.setAttributeNS(null, "fx", focalPoint[0]); - gradient.setAttributeNS(null, "fy", focalPoint[1]); - gradient.setAttributeNS(null, "fr", focalRadius); - break; - - default: - throw new Error("Unknown RadialAxial type: ".concat(args[1])); - } - - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var colorStop = _step5.value; - var stop = this.svgFactory.createElement("svg:stop"); - stop.setAttributeNS(null, "offset", colorStop[0]); - stop.setAttributeNS(null, "stop-color", colorStop[1]); - gradient.appendChild(stop); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { - _iterator5["return"](); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - this.defs.appendChild(gradient); - return "url(#".concat(shadingId, ")"); - - case "Mesh": - (0, _util.warn)("Unimplemented pattern Mesh"); - return null; - - case "Dummy": - return "hotpink"; + case _util.OPS.setLeading: + this.setLeading(args); + break; + + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + + case _util.OPS.setFont: + this.setFont(args); + break; + + case _util.OPS.showText: + this.showText(args[0]); + break; + + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + + case _util.OPS.endText: + this.endText(); + break; + + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + + case _util.OPS.setGState: + this.setGState(args[0]); + break; + + case _util.OPS.fill: + this.fill(); + break; + + case _util.OPS.eoFill: + this.eoFill(); + break; + + case _util.OPS.stroke: + this.stroke(); + break; + + case _util.OPS.fillStroke: + this.fillStroke(); + break; + + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + + case _util.OPS.clip: + this.clip("nonzero"); + break; + + case _util.OPS.eoClip: + this.clip("evenodd"); + break; + + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + + case _util.OPS.closePath: + this.closePath(); + break; + + case _util.OPS.closeStroke: + this.closeStroke(); + break; + + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + + case _util.OPS.nextLine: + this.nextLine(); + break; + + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + + case _util.OPS.endPath: + this.endPath(); + break; + + case 92: + this.group(opTreeElement.items); + break; default: - throw new Error("Unknown IR type: ".concat(args[0])); + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; } } - }, { - key: "setDash", - value: function setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; + } + + setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + + setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + + nextLine() { + this.moveText(0, this.current.leading); + } + + setTextMatrix(a, b, c, d, e, f) { + const current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.hypot(a, b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtElement.appendChild(current.tspan); + } + + beginText() { + const current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtgrp = this.svgFactory.createElement("svg:g"); + current.xcoords = []; + current.ycoords = []; + } + + moveText(x, y) { + const current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + + showText(glyphs) { + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + + if (fontSize === 0) { + return; } - }, { - key: "constructPath", - value: function constructPath(ops, args) { - var current = this.current; - var x = current.x, - y = current.y; - var d = []; - var j = 0; - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - try { - for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var op = _step6.value; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + let x = 0; - switch (op | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); - break; - - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push("M", pf(x), pf(y)); - break; - - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push("L", pf(x), pf(y)); - break; - - case _util.OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); - j += 6; - break; - - case _util.OPS.curveTo2: - d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - - case _util.OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); - j += 4; - break; - - case _util.OPS.closePath: - d.push("Z"); - break; - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { - _iterator6["return"](); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if ((0, _util.isNum)(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; } - d = d.join(" "); + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; - if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { - d = current.path.getAttributeNS(null, "d") + d; + if (vertical) { + let vx; + const vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; } else { - current.path = this.svgFactory.createElement("svg:path"); - - this._ensureTransformGroup().appendChild(current.path); + scaledX = x / fontSizeScale; + scaledY = 0; } - current.path.setAttributeNS(null, "d", d); - current.path.setAttributeNS(null, "fill", "none"); - current.element = current.path; - current.setCurrentPoint(x, y); - } - }, { - key: "endPath", - value: function endPath() { - var current = this.current; - current.path = null; + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); - if (!this.pendingClip) { - return; - } + if (vertical) { + current.ycoords.push(-current.y + scaledY); + } - if (!current.element) { - this.pendingClip = null; - return; - } + current.tspan.textContent += character; + } else {} - var clipId = "clippath".concat(clipCount++); - var clipPath = this.svgFactory.createElement("svg:clipPath"); - clipPath.setAttributeNS(null, "id", clipId); - clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); - var clipElement = current.element.cloneNode(true); + let charWidth; - if (this.pendingClip === "evenodd") { - clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; } else { - clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + charWidth = width * widthAdvanceScale + spacing * fontDirection; } + x += charWidth; + } + + current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); + + if (vertical) { + current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); + } else { + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, "font-style", current.fontStyle); + } + + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); + } + + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, "fill", current.fillColor); + } + + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); + } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, "fill", "transparent"); + } else { + current.tspan.setAttributeNS(null, "fill", "none"); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + const lineWidthScale = 1 / (current.textMatrixScale || 1); + + this._setStrokeAttributes(current.tspan, lineWidthScale); + } + + let textMatrix = current.textMatrix; + + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + + current.txtElement.setAttributeNS(null, "transform", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`); + current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); + current.txtElement.appendChild(current.tspan); + current.txtgrp.appendChild(current.txtElement); + + this._ensureTransformGroup().appendChild(current.txtElement); + } + + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + + addFontStyle(fontObj) { + if (!fontObj.data) { + throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); + } + + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement("svg:style"); + this.cssStyle.setAttributeNS(null, "type", "text/css"); + this.defs.appendChild(this.cssStyle); + } + + const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += `@font-face { font-family: "${fontObj.loadedName}";` + ` src: url(${url}); }\n`; + } + + setFont(details) { + const current = this.current; + const fontObj = this.commonObjs.get(details[0]); + let size = details[1]; + current.font = fontObj; + + if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + let bold = "normal"; + + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + + const italic = fontObj.italic ? "italic" : "normal"; + + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.xcoords = []; + current.ycoords = []; + } + + endText() { + const current = this.current; + + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) { + current.element = current.txtElement; + this.clip("nonzero"); + this.endPath(); + } + } + + setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + + setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + + setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + + setMiterLimit(limit) { + this.current.miterLimit = limit; + } + + setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + + setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeHexColor(r, g, b); + } + + setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + + setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeHexColor(r, g, b); + this.current.tspan = this.svgFactory.createElement("svg:tspan"); + this.current.xcoords = []; + this.current.ycoords = []; + } + + setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + + setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + + shadingFill(args) { + const width = this.viewport.width; + const height = this.viewport.height; + + const inv = _util.Util.inverseTransform(this.transformMatrix); + + const bl = _util.Util.applyTransform([0, 0], inv); + + const br = _util.Util.applyTransform([0, height], inv); + + const ul = _util.Util.applyTransform([width, 0], inv); + + const ur = _util.Util.applyTransform([width, height], inv); + + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", x0); + rect.setAttributeNS(null, "y", y0); + rect.setAttributeNS(null, "width", x1 - x0); + rect.setAttributeNS(null, "height", y1 - y0); + rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); + + if (this.current.fillAlpha < 1) { + rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); + } + + this._ensureTransformGroup().appendChild(rect); + } + + _makeColorN_Pattern(args) { + if (args[0] === "TilingPattern") { + return this._makeTilingPattern(args); + } + + return this._makeShadingPattern(args); + } + + _makeTilingPattern(args) { + const color = args[1]; + const operatorList = args[2]; + const matrix = args[3] || _util.IDENTITY_MATRIX; + const [x0, y0, x1, y1] = args[4]; + const xstep = args[5]; + const ystep = args[6]; + const paintType = args[7]; + const tilingId = `shading${shadingCount++}`; + + const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]); + + const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix); + + const txstep = xstep * xscale; + const tystep = ystep * yscale; + const tiling = this.svgFactory.createElement("svg:pattern"); + tiling.setAttributeNS(null, "id", tilingId); + tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); + tiling.setAttributeNS(null, "width", txstep); + tiling.setAttributeNS(null, "height", tystep); + tiling.setAttributeNS(null, "x", `${tx0}`); + tiling.setAttributeNS(null, "y", `${ty0}`); + const svg = this.svg; + const transformMatrix = this.transformMatrix; + const fillColor = this.current.fillColor; + const strokeColor = this.current.strokeColor; + const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + + if (paintType === 2) { + const cssColor = _util.Util.makeHexColor(...color); + + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.appendChild(bbox.childNodes[0]); + this.defs.appendChild(tiling); + return `url(#${tilingId})`; + } + + _makeShadingPattern(args) { + switch (args[0]) { + case "RadialAxial": + const shadingId = `shading${shadingCount++}`; + const colorStops = args[3]; + let gradient; + + switch (args[1]) { + case "axial": + const point0 = args[4]; + const point1 = args[5]; + gradient = this.svgFactory.createElement("svg:linearGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "x1", point0[0]); + gradient.setAttributeNS(null, "y1", point0[1]); + gradient.setAttributeNS(null, "x2", point1[0]); + gradient.setAttributeNS(null, "y2", point1[1]); + break; + + case "radial": + const focalPoint = args[4]; + const circlePoint = args[5]; + const focalRadius = args[6]; + const circleRadius = args[7]; + gradient = this.svgFactory.createElement("svg:radialGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "cx", circlePoint[0]); + gradient.setAttributeNS(null, "cy", circlePoint[1]); + gradient.setAttributeNS(null, "r", circleRadius); + gradient.setAttributeNS(null, "fx", focalPoint[0]); + gradient.setAttributeNS(null, "fy", focalPoint[1]); + gradient.setAttributeNS(null, "fr", focalRadius); + break; + + default: + throw new Error(`Unknown RadialAxial type: ${args[1]}`); + } + + for (const colorStop of colorStops) { + const stop = this.svgFactory.createElement("svg:stop"); + stop.setAttributeNS(null, "offset", colorStop[0]); + stop.setAttributeNS(null, "stop-color", colorStop[1]); + gradient.appendChild(stop); + } + + this.defs.appendChild(gradient); + return `url(#${shadingId})`; + + case "Mesh": + (0, _util.warn)("Unimplemented pattern Mesh"); + return null; + + case "Dummy": + return "hotpink"; + + default: + throw new Error(`Unknown IR type: ${args[0]}`); + } + } + + setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + + constructPath(ops, args) { + const current = this.current; + let x = current.x, + y = current.y; + let d = []; + let j = 0; + + for (const op of ops) { + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); + break; + + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push("M", pf(x), pf(y)); + break; + + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push("L", pf(x), pf(y)); + break; + + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + + case _util.OPS.curveTo2: + d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + + case _util.OPS.closePath: + d.push("Z"); + break; + } + } + + d = d.join(" "); + + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, "d") + d; + } else { + current.path = this.svgFactory.createElement("svg:path"); + + this._ensureTransformGroup().appendChild(current.path); + } + + current.path.setAttributeNS(null, "d", d); + current.path.setAttributeNS(null, "fill", "none"); + current.element = current.path; + current.setCurrentPoint(x, y); + } + + endPath() { + const current = this.current; + current.path = null; + + if (!this.pendingClip) { + return; + } + + if (!current.element) { this.pendingClip = null; - clipPath.appendChild(clipElement); - this.defs.appendChild(clipPath); + return; + } - if (current.activeClipUrl) { - current.clipGroup = null; - this.extraStack.forEach(function (prev) { - prev.clipGroup = null; - }); - clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); + const clipId = `clippath${clipCount++}`; + const clipPath = this.svgFactory.createElement("svg:clipPath"); + clipPath.setAttributeNS(null, "id", clipId); + clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); + const clipElement = current.element.cloneNode(true); + + if (this.pendingClip === "evenodd") { + clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + } else { + clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + } + + this.pendingClip = null; + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + + if (current.activeClipUrl) { + current.clipGroup = null; + + for (const prev of this.extraStack) { + prev.clipGroup = null; } - current.activeClipUrl = "url(#".concat(clipId, ")"); - this.tgrp = null; + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); } - }, { - key: "clip", - value: function clip(type) { - this.pendingClip = type; - } - }, { - key: "closePath", - value: function closePath() { - var current = this.current; - if (current.path) { - var d = "".concat(current.path.getAttributeNS(null, "d"), "Z"); - current.path.setAttributeNS(null, "d", d); + current.activeClipUrl = `url(#${clipId})`; + this.tgrp = null; + } + + clip(type) { + this.pendingClip = type; + } + + closePath() { + const current = this.current; + + if (current.path) { + const d = `${current.path.getAttributeNS(null, "d")}Z`; + current.path.setAttributeNS(null, "d", d); + } + } + + setLeading(leading) { + this.current.leading = -leading; + } + + setTextRise(textRise) { + this.current.textRise = textRise; + } + + setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + + setHScale(scale) { + this.current.textHScale = scale / 100; + } + + setRenderingIntent(intent) {} + + setFlatness(flatness) {} + + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + + case "LC": + this.setLineCap(value); + break; + + case "LJ": + this.setLineJoin(value); + break; + + case "ML": + this.setMiterLimit(value); + break; + + case "D": + this.setDash(value[0], value[1]); + break; + + case "RI": + this.setRenderingIntent(value); + break; + + case "FL": + this.setFlatness(value); + break; + + case "Font": + this.setFont(value); + break; + + case "CA": + this.setStrokeAlpha(value); + break; + + case "ca": + this.setFillAlpha(value); + break; + + default: + (0, _util.warn)(`Unimplemented graphic state operator ${key}`); + break; } } - }, { - key: "setLeading", - value: function setLeading(leading) { - this.current.leading = -leading; + } + + fill() { + const current = this.current; + + if (current.element) { + current.element.setAttributeNS(null, "fill", current.fillColor); + current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); + this.endPath(); } - }, { - key: "setTextRise", - value: function setTextRise(textRise) { - this.current.textRise = textRise; + } + + stroke() { + const current = this.current; + + if (current.element) { + this._setStrokeAttributes(current.element); + + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); } - }, { - key: "setTextRenderingMode", - value: function setTextRenderingMode(textRenderingMode) { - this.current.textRenderingMode = textRenderingMode; + } + + _setStrokeAttributes(element, lineWidthScale = 1) { + const current = this.current; + let dashArray = current.dashArray; + + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); } - }, { - key: "setHScale", - value: function setHScale(scale) { - this.current.textHScale = scale / 100; + + element.setAttributeNS(null, "stroke", current.strokeColor); + element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); + element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); + element.setAttributeNS(null, "stroke-linecap", current.lineCap); + element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); + element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); + element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); + element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + } + + eoFill() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "setRenderingIntent", - value: function setRenderingIntent(intent) {} - }, { - key: "setFlatness", - value: function setFlatness(flatness) {} - }, { - key: "setGState", - value: function setGState(states) { - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - try { - for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _step7$value = _slicedToArray(_step7.value, 2), - key = _step7$value[0], - value = _step7$value[1]; + this.fill(); + } - switch (key) { - case "LW": - this.setLineWidth(value); - break; + fillStroke() { + this.stroke(); + this.fill(); + } - case "LC": - this.setLineCap(value); - break; - - case "LJ": - this.setLineJoin(value); - break; - - case "ML": - this.setMiterLimit(value); - break; - - case "D": - this.setDash(value[0], value[1]); - break; - - case "RI": - this.setRenderingIntent(value); - break; - - case "FL": - this.setFlatness(value); - break; - - case "Font": - this.setFont(value); - break; - - case "CA": - this.setStrokeAlpha(value); - break; - - case "ca": - this.setFillAlpha(value); - break; - - default: - (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); - break; - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) { - _iterator7["return"](); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } + eoFillStroke() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "fill", - value: function fill() { - var current = this.current; - if (current.element) { - current.element.setAttributeNS(null, "fill", current.fillColor); - current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); - this.endPath(); - } - } - }, { - key: "stroke", - value: function stroke() { - var current = this.current; + this.fillStroke(); + } - if (current.element) { - this._setStrokeAttributes(current.element); + closeStroke() { + this.closePath(); + this.stroke(); + } - current.element.setAttributeNS(null, "fill", "none"); - this.endPath(); - } - } - }, { - key: "_setStrokeAttributes", - value: function _setStrokeAttributes(element) { - var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var current = this.current; - var dashArray = current.dashArray; + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } - if (lineWidthScale !== 1 && dashArray.length > 0) { - dashArray = dashArray.map(function (value) { - return lineWidthScale * value; - }); - } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } - element.setAttributeNS(null, "stroke", current.strokeColor); - element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); - element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); - element.setAttributeNS(null, "stroke-linecap", current.lineCap); - element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); - element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); - element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); - element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); - } - }, { - key: "eoFill", - value: function eoFill() { - if (this.current.element) { - this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); - } + paintSolidColorImageMask() { + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", "1px"); + rect.setAttributeNS(null, "height", "1px"); + rect.setAttributeNS(null, "fill", this.current.fillColor); - this.fill(); - } - }, { - key: "fillStroke", - value: function fillStroke() { - this.stroke(); - this.fill(); - } - }, { - key: "eoFillStroke", - value: function eoFillStroke() { - if (this.current.element) { - this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); - } + this._ensureTransformGroup().appendChild(rect); + } - this.fillStroke(); - } - }, { - key: "closeStroke", - value: function closeStroke() { - this.closePath(); - this.stroke(); - } - }, { - key: "closeFillStroke", - value: function closeFillStroke() { - this.closePath(); - this.fillStroke(); - } - }, { - key: "closeEOFillStroke", - value: function closeEOFillStroke() { - this.closePath(); - this.eoFillStroke(); - } - }, { - key: "paintSolidColorImageMask", - value: function paintSolidColorImageMask() { - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", "0"); - rect.setAttributeNS(null, "y", "0"); - rect.setAttributeNS(null, "width", "1px"); - rect.setAttributeNS(null, "height", "1px"); - rect.setAttributeNS(null, "fill", this.current.fillColor); + paintImageXObject(objId) { + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); - this._ensureTransformGroup().appendChild(rect); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; } - }, { - key: "paintJpegXObject", - value: function paintJpegXObject(objId, w, h) { - var imgObj = this.objs.get(objId); - var imgEl = this.svgFactory.createElement("svg:image"); - imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgObj.src); - imgEl.setAttributeNS(null, "width", pf(w)); - imgEl.setAttributeNS(null, "height", pf(h)); - imgEl.setAttributeNS(null, "x", "0"); - imgEl.setAttributeNS(null, "y", pf(-h)); - imgEl.setAttributeNS(null, "transform", "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")")); + this.paintInlineImageXObject(imgData); + } + + paintInlineImageXObject(imgData, mask) { + const width = imgData.width; + const height = imgData.height; + const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", "0"); + cliprect.setAttributeNS(null, "y", "0"); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); + this.current.element = cliprect; + this.clip("nonzero"); + const imgEl = this.svgFactory.createElement("svg:image"); + imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); + imgEl.setAttributeNS(null, "x", "0"); + imgEl.setAttributeNS(null, "y", pf(-height)); + imgEl.setAttributeNS(null, "width", pf(width) + "px"); + imgEl.setAttributeNS(null, "height", pf(height) + "px"); + imgEl.setAttributeNS(null, "transform", `scale(${pf(1 / width)} ${pf(-1 / height)})`); + + if (mask) { + mask.appendChild(imgEl); + } else { this._ensureTransformGroup().appendChild(imgEl); } - }, { - key: "paintImageXObject", - value: function paintImageXObject(objId) { - var imgData = this.objs.get(objId); + } - if (!imgData) { - (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); - return; - } + paintImageMaskXObject(imgData) { + const current = this.current; + const width = imgData.width; + const height = imgData.height; + const fillColor = current.fillColor; + current.maskId = `mask${maskCount++}`; + const mask = this.svgFactory.createElement("svg:mask"); + mask.setAttributeNS(null, "id", current.maskId); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", pf(width)); + rect.setAttributeNS(null, "height", pf(height)); + rect.setAttributeNS(null, "fill", fillColor); + rect.setAttributeNS(null, "mask", `url(#${current.maskId})`); + this.defs.appendChild(mask); - this.paintInlineImageXObject(imgData); + this._ensureTransformGroup().appendChild(rect); + + this.paintInlineImageXObject(imgData, mask); + } + + paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); } - }, { - key: "paintInlineImageXObject", - value: function paintInlineImageXObject(imgData, mask) { - var width = imgData.width; - var height = imgData.height; - var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); - var cliprect = this.svgFactory.createElement("svg:rect"); - cliprect.setAttributeNS(null, "x", "0"); - cliprect.setAttributeNS(null, "y", "0"); + + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", bbox[0]); + cliprect.setAttributeNS(null, "y", bbox[1]); cliprect.setAttributeNS(null, "width", pf(width)); cliprect.setAttributeNS(null, "height", pf(height)); this.current.element = cliprect; this.clip("nonzero"); - var imgEl = this.svgFactory.createElement("svg:image"); - imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); - imgEl.setAttributeNS(null, "x", "0"); - imgEl.setAttributeNS(null, "y", pf(-height)); - imgEl.setAttributeNS(null, "width", pf(width) + "px"); - imgEl.setAttributeNS(null, "height", pf(height) + "px"); - imgEl.setAttributeNS(null, "transform", "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); + this.endPath(); + } + } - if (mask) { - mask.appendChild(imgEl); + paintFormXObjectEnd() {} + + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.appendChild(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + } + + _ensureClipGroup() { + if (!this.current.clipGroup) { + const clipGroup = this.svgFactory.createElement("svg:g"); + clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + + return this.current.clipGroup; + } + + _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement("svg:g"); + this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); + + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); } else { - this._ensureTransformGroup().appendChild(imgEl); + this.svg.appendChild(this.tgrp); } } - }, { - key: "paintImageMaskXObject", - value: function paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - current.maskId = "mask".concat(maskCount++); - var mask = this.svgFactory.createElement("svg:mask"); - mask.setAttributeNS(null, "id", current.maskId); - var rect = this.svgFactory.createElement("svg:rect"); - rect.setAttributeNS(null, "x", "0"); - rect.setAttributeNS(null, "y", "0"); - rect.setAttributeNS(null, "width", pf(width)); - rect.setAttributeNS(null, "height", pf(height)); - rect.setAttributeNS(null, "fill", fillColor); - rect.setAttributeNS(null, "mask", "url(#".concat(current.maskId, ")")); - this.defs.appendChild(mask); - this._ensureTransformGroup().appendChild(rect); + return this.tgrp; + } - this.paintInlineImageXObject(imgData, mask); - } - }, { - key: "paintFormXObjectBegin", - value: function paintFormXObjectBegin(matrix, bbox) { - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); - } - - if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var cliprect = this.svgFactory.createElement("svg:rect"); - cliprect.setAttributeNS(null, "x", bbox[0]); - cliprect.setAttributeNS(null, "y", bbox[1]); - cliprect.setAttributeNS(null, "width", pf(width)); - cliprect.setAttributeNS(null, "height", pf(height)); - this.current.element = cliprect; - this.clip("nonzero"); - this.endPath(); - } - } - }, { - key: "paintFormXObjectEnd", - value: function paintFormXObjectEnd() {} - }, { - key: "_initialize", - value: function _initialize(viewport) { - var svg = this.svgFactory.create(viewport.width, viewport.height); - var definitions = this.svgFactory.createElement("svg:defs"); - svg.appendChild(definitions); - this.defs = definitions; - var rootGroup = this.svgFactory.createElement("svg:g"); - rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); - svg.appendChild(rootGroup); - this.svg = rootGroup; - return svg; - } - }, { - key: "_ensureClipGroup", - value: function _ensureClipGroup() { - if (!this.current.clipGroup) { - var clipGroup = this.svgFactory.createElement("svg:g"); - clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); - this.svg.appendChild(clipGroup); - this.current.clipGroup = clipGroup; - } - - return this.current.clipGroup; - } - }, { - key: "_ensureTransformGroup", - value: function _ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement("svg:g"); - this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); - - if (this.current.activeClipUrl) { - this._ensureClipGroup().appendChild(this.tgrp); - } else { - this.svg.appendChild(this.tgrp); - } - } - - return this.tgrp; - } - }]); - - return SVGGraphics; - }(); + }; } /***/ }), -/* 208 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 21 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.XfaLayer = void 0; + +class XfaLayer { + static setupStorage(html, id, element, storage, intent) { + const storedData = storage.getValue(id, { + value: null + }); + + switch (element.name) { + case "textarea": + if (storedData.value !== null) { + html.textContent = storedData.value; + } + + if (intent === "print") { + break; + } + + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + break; + + case "input": + if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { + if (storedData.value === element.attributes.xfaOn) { + html.setAttribute("checked", true); + } + + if (intent === "print") { + break; + } + + html.addEventListener("change", event => { + storage.setValue(id, { + value: event.target.getAttribute("xfaOn") + }); + }); + } else { + if (storedData.value !== null) { + html.setAttribute("value", storedData.value); + } + + if (intent === "print") { + break; + } + + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + } + + break; + + case "select": + if (storedData.value !== null) { + for (const option of element.children) { + if (option.attributes.value === storedData.value) { + option.attributes.selected = true; + } + } + } + + html.addEventListener("input", event => { + const options = event.target.options; + const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; + storage.setValue(id, { + value + }); + }); + break; + } + } + + static setAttributes(html, element, storage, intent) { + const { + attributes + } = element; + + if (attributes.type === "radio") { + attributes.name = `${attributes.name}-${intent}`; + } + + for (const [key, value] of Object.entries(attributes)) { + if (value === null || value === undefined || key === "dataId") { + continue; + } + + if (key !== "style") { + if (key === "textContent") { + html.textContent = value; + } else if (key === "class") { + html.setAttribute(key, value.join(" ")); + } else { + html.setAttribute(key, value); + } + } else { + Object.assign(html.style, value); + } + } + + if (storage && attributes.dataId) { + this.setupStorage(html, attributes.dataId, element, storage); + } + } + + static render(parameters) { + const storage = parameters.annotationStorage; + const root = parameters.xfa; + const intent = parameters.intent || "display"; + const rootHtml = document.createElement(root.name); + + if (root.attributes) { + this.setAttributes(rootHtml, root); + } + + const stack = [[root, -1, rootHtml]]; + const rootDiv = parameters.div; + rootDiv.appendChild(rootHtml); + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + rootDiv.style.transform = transform; + rootDiv.setAttribute("class", "xfaLayer xfaFont"); + + while (stack.length > 0) { + const [parent, i, html] = stack[stack.length - 1]; + + if (i + 1 === parent.children.length) { + stack.pop(); + continue; + } + + const child = parent.children[++stack[stack.length - 1][1]]; + + if (child === null) { + continue; + } + + const { + name + } = child; + + if (name === "#text") { + html.appendChild(document.createTextNode(child.value)); + continue; + } + + let childHtml; + + if (child?.attributes?.xmlns) { + childHtml = document.createElementNS(child.attributes.xmlns, name); + } else { + childHtml = document.createElement(name); + } + + html.appendChild(childHtml); + + if (child.attributes) { + this.setAttributes(childHtml, child, storage, intent); + } + + if (child.children && child.children.length > 0) { + stack.push([child, -1, childHtml]); + } else if (child.value) { + childHtml.appendChild(document.createTextNode(child.value)); + } + } + + for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) { + el.setAttribute("readOnly", true); + } + } + + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + parameters.div.style.transform = transform; + parameters.div.hidden = false; + } + +} + +exports.XfaLayer = XfaLayer; + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFNodeStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(209); +; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +const fs = require("fs"); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +const http = require("http"); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +const https = require("https"); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +const url = require("url"); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var fs = require("fs"); - -var http = require("http"); - -var https = require("https"); - -var url = require("url"); - -var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; function parseUrl(sourceUrl) { - var parsedUrl = url.parse(sourceUrl); + const parsedUrl = url.parse(sourceUrl); if (parsedUrl.protocol === "file:" || parsedUrl.host) { return parsedUrl; } if (/^[a-z]:[/\\]/i.test(sourceUrl)) { - return url.parse("file:///".concat(sourceUrl)); + return url.parse(`file:///${sourceUrl}`); } if (!parsedUrl.host) { @@ -23531,10 +13004,8 @@ function parseUrl(sourceUrl) { return parsedUrl; } -var PDFNodeStream = /*#__PURE__*/function () { - function PDFNodeStream(source) { - _classCallCheck(this, PDFNodeStream); - +class PDFNodeStream { + constructor(source) { this.source = source; this.url = parseUrl(source.url); this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; @@ -23544,60 +13015,49 @@ var PDFNodeStream = /*#__PURE__*/function () { this._rangeRequestReaders = []; } - _createClass(PDFNodeStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + + getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(start, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); - this._rangeRequestReaders.push(rangeReader); + this._rangeRequestReaders.push(rangeReader); - return rangeReader; + return rangeReader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFNodeStream; -}(); +} exports.PDFNodeStream = PDFNodeStream; -var BaseFullReader = /*#__PURE__*/function () { - function BaseFullReader(stream) { - _classCallCheck(this, BaseFullReader); - +class BaseFullReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; this.onProgress = null; - var source = stream.source; + const source = stream.source; this._contentLength = source.length; this._loaded = 0; this._filename = null; @@ -23615,157 +13075,107 @@ var BaseFullReader = /*#__PURE__*/function () { this._headersCapability = (0, _util.createPromiseCapability)(); } - _createClass(BaseFullReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._readCapability.promise; + get headersReady() { + return this._headersCapability.promise; + } - case 2: - if (!this._done) { - _context.next = 4; - break; - } + get filename() { + return this._filename; + } - return _context.abrupt("return", { - value: undefined, - done: true - }); + get contentLength() { + return this._contentLength; + } - case 4: - if (!this._storedError) { - _context.next = 6; - break; - } + get isRangeSupported() { + return this._isRangeSupported; + } - throw this._storedError; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 6: - chunk = this._readableStream.read(); + async read() { + await this._readCapability.promise; - if (!(chunk === null)) { - _context.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); - } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this = this; + }); + readableStream.on("error", reason => { + this._error(reason); + }); - this._readableStream = readableStream; - readableStream.on("readable", function () { - _this._readCapability.resolve(); - }); - readableStream.on("end", function () { - readableStream.destroy(); - _this._done = true; - - _this._readCapability.resolve(); - }); - readableStream.on("error", function (reason) { - _this._error(reason); - }); - - if (!this._isStreamingSupported && this._isRangeSupported) { - this._error(new _util.AbortException("streaming is disabled")); - } - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException("streaming is disabled")); } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return BaseFullReader; -}(); + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } -var BaseRangeReader = /*#__PURE__*/function () { - function BaseRangeReader(stream) { - _classCallCheck(this, BaseRangeReader); +} +class BaseRangeReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; @@ -23773,357 +13183,280 @@ var BaseRangeReader = /*#__PURE__*/function () { this._loaded = 0; this._readableStream = null; this._readCapability = (0, _util.createPromiseCapability)(); - var source = stream.source; + const source = stream.source; this._isStreamingSupported = !source.disableStream; } - _createClass(BaseRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 2: - if (!this._done) { - _context2.next = 4; - break; - } + async read() { + await this._readCapability.promise; - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 4: - if (!this._storedError) { - _context2.next = 6; - break; - } - - throw this._storedError; - - case 6: - chunk = this._readableStream.read(); - - if (!(chunk === null)) { - _context2.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context2.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + + if (this._storedError) { + this._readableStream.destroy(this._storedError); } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this2 = this; + } - this._readableStream = readableStream; - readableStream.on("readable", function () { - _this2._readCapability.resolve(); - }); - readableStream.on("end", function () { - readableStream.destroy(); - _this2._done = true; +} - _this2._readCapability.resolve(); - }); - readableStream.on("error", function (reason) { - _this2._error(reason); - }); - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - - return BaseRangeReader; -}(); - -function createRequestOptions(url, headers) { +function createRequestOptions(parsedUrl, headers) { return { - protocol: url.protocol, - auth: url.auth, - host: url.hostname, - port: url.port, - path: url.path, + protocol: parsedUrl.protocol, + auth: parsedUrl.auth, + host: parsedUrl.hostname, + port: parsedUrl.port, + path: parsedUrl.path, method: "GET", - headers: headers + headers }; } -var PDFNodeStreamFullReader = /*#__PURE__*/function (_BaseFullReader) { - _inherits(PDFNodeStreamFullReader, _BaseFullReader); +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); - function PDFNodeStreamFullReader(stream) { - var _this3; - - _classCallCheck(this, PDFNodeStreamFullReader); - - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); - - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); - _this3._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; - _this3._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this3._headersCapability.resolve(); + this._headersCapability.resolve(); - _this3._setReadableStream(response); + this._setReadableStream(response); - var getResponseHeader = function getResponseHeader(name) { - return _this3._readableStream.headers[name.toLowerCase()]; + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, isHttp: stream.isHttp, - rangeChunkSize: _this3._rangeChunkSize, - disableRange: _this3._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - _this3._isRangeSupported = allowRangeRequests; - _this3._contentLength = suggestedLength || _this3._contentLength; - _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); }; - _this3._request = null; + this._request = null; - if (_this3._url.protocol === "http:") { - _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } else { - _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } - _this3._request.on("error", function (reason) { - _this3._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; - _this3._headersCapability.reject(reason); + this._headersCapability.reject(reason); }); - _this3._request.end(); - - return _this3; + this._request.end(); } - return PDFNodeStreamFullReader; -}(BaseFullReader); +} -var PDFNodeStreamRangeReader = /*#__PURE__*/function (_BaseRangeReader) { - _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; - function PDFNodeStreamRangeReader(stream, start, end) { - var _this4; - - _classCallCheck(this, PDFNodeStreamRangeReader); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); - _this4._httpHeaders = {}; - - for (var property in stream.httpHeaders) { - var value = stream.httpHeaders[property]; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; if (typeof value === "undefined") { continue; } - _this4._httpHeaders[property] = value; + this._httpHeaders[property] = value; } - _this4._httpHeaders["Range"] = "bytes=".concat(start, "-").concat(end - 1); + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); - _this4._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; return; } - _this4._setReadableStream(response); + this._setReadableStream(response); }; - _this4._request = null; + this._request = null; - if (_this4._url.protocol === "http:") { - _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } else { - _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } - _this4._request.on("error", function (reason) { - _this4._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; }); - _this4._request.end(); - - return _this4; + this._request.end(); } - return PDFNodeStreamRangeReader; -}(BaseRangeReader); +} -var PDFNodeStreamFsFullReader = /*#__PURE__*/function (_BaseFullReader2) { - _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsFullReader(stream) { - var _this5; - - _classCallCheck(this, PDFNodeStreamFsFullReader); - - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); - var path = decodeURIComponent(_this5._url.path); - - if (fileUriRegex.test(_this5._url.href)) { + if (fileUriRegex.test(this._url.href)) { path = path.replace(/^\//, ""); } - fs.lstat(path, function (error, stat) { + fs.lstat(path, (error, stat) => { if (error) { if (error.code === "ENOENT") { - error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); + error = new _util.MissingPDFException(`Missing PDF "${path}".`); } - _this5._storedError = error; + this._storedError = error; - _this5._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this5._contentLength = stat.size; + this._contentLength = stat.size; - _this5._setReadableStream(fs.createReadStream(path)); + this._setReadableStream(fs.createReadStream(path)); - _this5._headersCapability.resolve(); + this._headersCapability.resolve(); }); - return _this5; } - return PDFNodeStreamFsFullReader; -}(BaseFullReader); +} -var PDFNodeStreamFsRangeReader = /*#__PURE__*/function (_BaseRangeReader2) { - _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsRangeReader(stream, start, end) { - var _this6; - - _classCallCheck(this, PDFNodeStreamFsRangeReader); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); - var path = decodeURIComponent(_this6._url.path); - - if (fileUriRegex.test(_this6._url.href)) { + if (fileUriRegex.test(this._url.href)) { path = path.replace(/^\//, ""); } - _this6._setReadableStream(fs.createReadStream(path, { - start: start, + this._setReadableStream(fs.createReadStream(path, { + start, end: end - 1 })); - - return _this6; } - return PDFNodeStreamFsRangeReader; -}(BaseRangeReader); +} /***/ }), -/* 209 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 23 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.createResponseStatusError = createResponseStatusError; exports.extractFilenameFromHeader = extractFilenameFromHeader; exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; exports.validateResponseStatus = validateResponseStatus; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _content_disposition = __w_pdfjs_require__(210); +var _content_disposition = __w_pdfjs_require__(24); -function validateRangeRequestCapabilities(_ref) { - var getResponseHeader = _ref.getResponseHeader, - isHttp = _ref.isHttp, - rangeChunkSize = _ref.rangeChunkSize, - disableRange = _ref.disableRange; +var _display_utils = __w_pdfjs_require__(1); + +function validateRangeRequestCapabilities({ + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange +}) { (0, _util.assert)(rangeChunkSize > 0, "Range chunk size must be larger than zero"); - var returnValues = { + const returnValues = { allowRangeRequests: false, suggestedLength: undefined }; - var length = parseInt(getResponseHeader("Content-Length"), 10); + const length = parseInt(getResponseHeader("Content-Length"), 10); if (!Number.isInteger(length)) { return returnValues; @@ -24143,7 +13476,7 @@ function validateRangeRequestCapabilities(_ref) { return returnValues; } - var contentEncoding = getResponseHeader("Content-Encoding") || "identity"; + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; if (contentEncoding !== "identity") { return returnValues; @@ -24154,10 +13487,10 @@ function validateRangeRequestCapabilities(_ref) { } function extractFilenameFromHeader(getResponseHeader) { - var contentDisposition = getResponseHeader("Content-Disposition"); + const contentDisposition = getResponseHeader("Content-Disposition"); if (contentDisposition) { - var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); if (filename.includes("%")) { try { @@ -24165,7 +13498,7 @@ function extractFilenameFromHeader(getResponseHeader) { } catch (ex) {} } - if (/\.pdf$/i.test(filename)) { + if ((0, _display_utils.isPdfFile)(filename)) { return filename; } } @@ -24178,7 +13511,7 @@ function createResponseStatusError(status, url) { return new _util.MissingPDFException('Missing PDF "' + url + '".'); } - return new _util.UnexpectedResponseException("Unexpected server response (" + status + ') while retrieving PDF "' + url + '".', status); + return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status); } function validateResponseStatus(status) { @@ -24186,32 +13519,25 @@ function validateResponseStatus(status) { } /***/ }), -/* 210 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 24 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _util = __w_pdfjs_require__(2); function getFilenameFromContentDispositionHeader(contentDisposition) { - var needsEncodingFixup = true; - var tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - var filename = rfc2616unquote(tmp); + let filename = rfc2616unquote(tmp); filename = unescape(filename); filename = rfc5987decode(filename); filename = rfc2047decode(filename); @@ -24221,20 +13547,17 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { tmp = rfc2231getparam(contentDisposition); if (tmp) { - var _filename = rfc2047decode(tmp); - - return fixupEncoding(_filename); + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); } tmp = toParamRegExp("filename", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - - var _filename2 = rfc2616unquote(tmp); - - _filename2 = rfc2047decode(_filename2); - return fixupEncoding(_filename2); + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); } function toParamRegExp(attributePattern, flags) { @@ -24248,13 +13571,11 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } try { - var decoder = new TextDecoder(encoding, { + const decoder = new TextDecoder(encoding, { fatal: true }); - var bytes = Array.from(value, function (ch) { - return ch.charCodeAt(0) & 0xff; - }); - value = decoder.decode(new Uint8Array(bytes)); + const buffer = (0, _util.stringToBytes)(value); + value = decoder.decode(buffer); needsEncodingFixup = false; } catch (e) { if (/^utf-?8$/i.test(encoding)) { @@ -24281,18 +13602,13 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { return value; } - function rfc2231getparam(contentDisposition) { - var matches = []; - var match; - var iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); - - while ((match = iter.exec(contentDisposition)) !== null) { - var _match = match, - _match2 = _slicedToArray(_match, 4), - n = _match2[1], - quot = _match2[2], - part = _match2[3]; + function rfc2231getparam(contentDispositionStr) { + const matches = []; + let match; + const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); + while ((match = iter.exec(contentDispositionStr)) !== null) { + let [, n, quot, part] = match; n = parseInt(n, 10); if (n in matches) { @@ -24306,28 +13622,25 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { matches[n] = [quot, part]; } - var parts = []; + const parts = []; - for (var _n2 = 0; _n2 < matches.length; ++_n2) { - if (!(_n2 in matches)) { + for (let n = 0; n < matches.length; ++n) { + if (!(n in matches)) { break; } - var _matches$_n = _slicedToArray(matches[_n2], 2), - _quot = _matches$_n[0], - _part = _matches$_n[1]; + let [quot, part] = matches[n]; + part = rfc2616unquote(part); - _part = rfc2616unquote(_part); + if (quot) { + part = unescape(part); - if (_quot) { - _part = unescape(_part); - - if (_n2 === 0) { - _part = rfc5987decode(_part); + if (n === 0) { + part = rfc5987decode(part); } } - parts.push(_part); + parts.push(part); } return parts.join(""); @@ -24335,10 +13648,10 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { function rfc2616unquote(value) { if (value.startsWith('"')) { - var parts = value.slice(1).split('\\"'); + const parts = value.slice(1).split('\\"'); - for (var i = 0; i < parts.length; ++i) { - var quotindex = parts[i].indexOf('"'); + for (let i = 0; i < parts.length; ++i) { + const quotindex = parts[i].indexOf('"'); if (quotindex !== -1) { parts[i] = parts[i].slice(0, quotindex); @@ -24355,15 +13668,15 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } function rfc5987decode(extvalue) { - var encodingend = extvalue.indexOf("'"); + const encodingend = extvalue.indexOf("'"); if (encodingend === -1) { return extvalue; } - var encoding = extvalue.slice(0, encodingend); - var langvalue = extvalue.slice(encodingend + 1); - var value = langvalue.replace(/^[^']*'/, ""); + const encoding = extvalue.slice(0, encodingend); + const langvalue = extvalue.slice(encodingend + 1); + const value = langvalue.replace(/^[^']*'/, ""); return textdecode(encoding, value); } @@ -24372,10 +13685,10 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { return value; } - return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { + return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { if (encoding === "q" || encoding === "Q") { text = text.replace(/_/g, " "); - text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { + text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) { return String.fromCharCode(parseInt(hex, 16)); }); return textdecode(charset, text); @@ -24393,54 +13706,37 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } /***/ }), -/* 211 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 25 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFNetworkStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(209); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _network_utils = __w_pdfjs_require__(23); ; -var OK_RESPONSE = 200; -var PARTIAL_CONTENT_RESPONSE = 206; +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; function getArrayBuffer(xhr) { - var data = xhr.response; + const data = xhr.response; if (typeof data !== "string") { return data; } - var array = (0, _util.stringToBytes)(data); + const array = (0, _util.stringToBytes)(data); return array.buffer; } -var NetworkManager = /*#__PURE__*/function () { - function NetworkManager(url, args) { - _classCallCheck(this, NetworkManager); - +class NetworkManager { + constructor(url, args) { this.url = url; args = args || {}; this.isHttp = /^https?:/i.test(url); @@ -24455,188 +13751,159 @@ var NetworkManager = /*#__PURE__*/function () { this.pendingRequests = Object.create(null); } - _createClass(NetworkManager, [{ - key: "requestRange", - value: function requestRange(begin, end, listeners) { - var args = { - begin: begin, - end: end + requestRange(begin, end, listeners) { + const args = { + begin, + end + }; + + for (const prop in listeners) { + args[prop] = listeners[prop]; + } + + return this.request(args); + } + + requestFull(listeners) { + return this.request(listeners); + } + + request(args) { + const xhr = this.getXhr(); + const xhrId = this.currXhrId++; + const pendingRequest = this.pendingRequests[xhrId] = { + xhr + }; + xhr.open("GET", this.url); + xhr.withCredentials = this.withCredentials; + + for (const property in this.httpHeaders) { + const value = this.httpHeaders[property]; + + if (typeof value === "undefined") { + continue; + } + + xhr.setRequestHeader(property, value); + } + + if (this.isHttp && "begin" in args && "end" in args) { + xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; + } + + xhr.responseType = "arraybuffer"; + + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); }; - - for (var prop in listeners) { - args[prop] = listeners[prop]; - } - - return this.request(args); } - }, { - key: "requestFull", - value: function requestFull(listeners) { - return this.request(listeners); + + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + } + + onProgress(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + + if (!pendingRequest) { + return; } - }, { - key: "request", - value: function request(args) { - var xhr = this.getXhr(); - var xhrId = this.currXhrId++; - var pendingRequest = this.pendingRequests[xhrId] = { - xhr: xhr - }; - xhr.open("GET", this.url); - xhr.withCredentials = this.withCredentials; - for (var property in this.httpHeaders) { - var value = this.httpHeaders[property]; - - if (typeof value === "undefined") { - continue; - } - - xhr.setRequestHeader(property, value); - } - - if (this.isHttp && "begin" in args && "end" in args) { - xhr.setRequestHeader("Range", "bytes=".concat(args.begin, "-").concat(args.end - 1)); - pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; - } else { - pendingRequest.expectedStatus = OK_RESPONSE; - } - - xhr.responseType = "arraybuffer"; - - if (args.onError) { - xhr.onerror = function (evt) { - args.onError(xhr.status); - }; - } - - xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); - xhr.onprogress = this.onProgress.bind(this, xhrId); - pendingRequest.onHeadersReceived = args.onHeadersReceived; - pendingRequest.onDone = args.onDone; - pendingRequest.onError = args.onError; - pendingRequest.onProgress = args.onProgress; - xhr.send(null); - return xhrId; + if (pendingRequest.onProgress) { + pendingRequest.onProgress(evt); } - }, { - key: "onProgress", - value: function onProgress(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; + } - if (!pendingRequest) { - return; - } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; - if (pendingRequest.onProgress) { - pendingRequest.onProgress(evt); - } + if (!pendingRequest) { + return; } - }, { - key: "onStateChange", - value: function onStateChange(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - return; - } + const xhr = pendingRequest.xhr; - var xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } + if (xhr.readyState !== 4) { + return; + } - if (xhr.readyState !== 4) { - return; - } + if (!(xhrId in this.pendingRequests)) { + return; + } - if (!(xhrId in this.pendingRequests)) { - return; - } + delete this.pendingRequests[xhrId]; - delete this.pendingRequests[xhrId]; - - if (xhr.status === 0 && this.isHttp) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - - return; - } - - var xhrStatus = xhr.status || OK_RESPONSE; - var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; - - if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - - return; - } - - var chunk = getArrayBuffer(xhr); - - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - var rangeHeader = xhr.getResponseHeader("Content-Range"); - var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - pendingRequest.onDone({ - begin: parseInt(matches[1], 10), - chunk: chunk - }); - } else if (chunk) { - pendingRequest.onDone({ - begin: 0, - chunk: chunk - }); - } else if (pendingRequest.onError) { + if (xhr.status === 0 && this.isHttp) { + if (pendingRequest.onError) { pendingRequest.onError(xhr.status); } + + return; } - }, { - key: "hasPendingRequests", - value: function hasPendingRequests() { - for (var xhrId in this.pendingRequests) { - return true; + + const xhrStatus = xhr.status || OK_RESPONSE; + const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); } - return false; + return; } - }, { - key: "getRequestXhr", - value: function getRequestXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; - } - }, { - key: "isPendingRequest", - value: function isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; - } - }, { - key: "abortAllRequests", - value: function abortAllRequests() { - for (var xhrId in this.pendingRequests) { - this.abortRequest(xhrId | 0); - } - } - }, { - key: "abortRequest", - value: function abortRequest(xhrId) { - var xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); - } - }]); - return NetworkManager; -}(); + const chunk = getArrayBuffer(xhr); -var PDFNetworkStream = /*#__PURE__*/function () { - function PDFNetworkStream(source) { - _classCallCheck(this, PDFNetworkStream); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + const rangeHeader = xhr.getResponseHeader("Content-Range"); + const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk + }); + } else if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + } + getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + + isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + + abortRequest(xhrId) { + const xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } + +} + +class PDFNetworkStream { + constructor(source) { this._source = source; this._manager = new NetworkManager(source.url, { httpHeaders: source.httpHeaders, @@ -24647,58 +13914,47 @@ var PDFNetworkStream = /*#__PURE__*/function () { this._rangeRequestReaders = []; } - _createClass(PDFNetworkStream, [{ - key: "_onRangeRequestReaderClosed", - value: function _onRangeRequestReaderClosed(reader) { - var i = this._rangeRequestReaders.indexOf(reader); + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); - if (i >= 0) { - this._rangeRequestReaders.splice(i, 1); - } + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); - return this._fullRequestReader; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + + this._rangeRequestReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); - reader.onClosed = this._onRangeRequestReaderClosed.bind(this); - this._rangeRequestReaders.push(reader); - - return reader; + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } + } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }]); - - return PDFNetworkStream; -}(); +} exports.PDFNetworkStream = PDFNetworkStream; -var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () { - function PDFNetworkStreamFullRequestReader(manager, source) { - _classCallCheck(this, PDFNetworkStreamFullRequestReader); - +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { this._manager = manager; - var args = { + const args = { onHeadersReceived: this._onHeadersReceived.bind(this), onDone: this._onDone.bind(this), onError: this._onError.bind(this), @@ -24725,214 +13981,168 @@ var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () { this.onProgress = null; } - _createClass(PDFNetworkStreamFullRequestReader, [{ - key: "_onHeadersReceived", - value: function _onHeadersReceived() { - var fullRequestXhrId = this._fullRequestId; + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; - var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); - var getResponseHeader = function getResponseHeader(name) { - return fullRequestXhr.getResponseHeader(name); + const getResponseHeader = name => { + return fullRequestXhr.getResponseHeader(name); + }; + + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + + if (allowRangeRequests) { + this._isRangeSupported = true; + } + + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); + } + + this._headersReceivedCapability.resolve(); + } + + _onDone(args) { + if (args) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: args.chunk, + done: false + }); + } else { + this._cachedChunks.push(args.chunk); + } + } + + this._done = true; + + if (this._cachedChunks.length > 0) { + return; + } + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + } + + _onError(status) { + const url = this._url; + const exception = (0, _network_utils.createResponseStatusError)(status, url); + this._storedError = exception; + + this._headersReceivedCapability.reject(exception); + + for (const requestCapability of this._requests) { + requestCapability.reject(exception); + } + + this._requests.length = 0; + this._cachedChunks.length = 0; + } + + _onProgress(data) { + if (this.onProgress) { + this.onProgress({ + loaded: data.loaded, + total: data.lengthComputable ? data.total : this._contentLength + }); + } + } + + get filename() { + return this._filename; + } + + get isRangeSupported() { + return this._isRangeSupported; + } + + get isStreamingSupported() { + return this._isStreamingSupported; + } + + get contentLength() { + return this._contentLength; + } + + get headersReady() { + return this._headersReceivedCapability.promise; + } + + async read() { + if (this._storedError) { + throw this._storedError; + } + + if (this._cachedChunks.length > 0) { + const chunk = this._cachedChunks.shift(); + + return { + value: chunk, + done: false }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - if (allowRangeRequests) { - this._isRangeSupported = true; - } - - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (this._isRangeSupported) { - this._manager.abortRequest(fullRequestXhrId); - } - - this._headersReceivedCapability.resolve(); } - }, { - key: "_onDone", - value: function _onDone(args) { - if (args) { - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: args.chunk, - done: false - }); - } else { - this._cachedChunks.push(args.chunk); - } - } + if (this._done) { + return { + value: undefined, + done: true + }; + } - this._done = true; + const requestCapability = (0, _util.createPromiseCapability)(); - if (this._cachedChunks.length > 0) { - return; - } + this._requests.push(requestCapability); - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + this._headersReceivedCapability.reject(reason); + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); - - this._requests = []; } - }, { - key: "_onError", - value: function _onError(status) { - var url = this._url; - var exception = (0, _network_utils.createResponseStatusError)(status, url); - this._storedError = exception; - this._headersReceivedCapability.reject(exception); + this._requests.length = 0; - this._requests.forEach(function (requestCapability) { - requestCapability.reject(exception); - }); - - this._requests = []; - this._cachedChunks = []; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); } - }, { - key: "_onProgress", - value: function _onProgress(data) { - if (this.onProgress) { - this.onProgress({ - loaded: data.loaded, - total: data.lengthComputable ? data.total : this._contentLength - }); - } - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this._storedError) { - _context.next = 2; - break; - } - throw this._storedError; + this._fullRequestReader = null; + } - case 2: - if (!(this._cachedChunks.length > 0)) { - _context.next = 5; - break; - } - - chunk = this._cachedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); - - case 5: - if (!this._done) { - _context.next = 7; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 7: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 10: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._headersReceivedCapability.reject(reason); - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - - this._requests = []; - - if (this._manager.isPendingRequest(this._fullRequestId)) { - this._manager.abortRequest(this._fullRequestId); - } - - this._fullRequestReader = null; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReceivedCapability.promise; - } - }]); - - return PDFNetworkStreamFullRequestReader; -}(); - -var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () { - function PDFNetworkStreamRangeRequestReader(manager, begin, end) { - _classCallCheck(this, PDFNetworkStreamRangeRequestReader); +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { this._manager = manager; - var args = { + const args = { onDone: this._onDone.bind(this), onProgress: this._onProgress.bind(this) }; @@ -24944,169 +14154,119 @@ var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () { this.onClosed = null; } - _createClass(PDFNetworkStreamRangeRequestReader, [{ - key: "_close", - value: function _close() { - if (this.onClosed) { - this.onClosed(this); - } + _close() { + if (this.onClosed) { + this.onClosed(this); } - }, { - key: "_onDone", - value: function _onDone(data) { - var chunk = data.chunk; + } - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); + _onDone(data) { + const chunk = data.chunk; - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunk = chunk; - } + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); - - this._requests = []; - - this._close(); + } else { + this._queuedChunk = chunk; } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (!this.isStreamingSupported && this.onProgress) { - this.onProgress({ - loaded: evt.loaded - }); - } - } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(this._queuedChunk !== null)) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + this._done = true; - case 4: - if (!this._done) { - _context2.next = 6; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); - - this._requests = []; - - if (this._manager.isPendingRequest(this._requestId)) { - this._manager.abortRequest(this._requestId); - } - - this._close(); } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - return PDFNetworkStreamRangeRequestReader; -}(); + this._requests.length = 0; + + this._close(); + } + + _onProgress(evt) { + if (!this.isStreamingSupported && this.onProgress) { + this.onProgress({ + loaded: evt.loaded + }); + } + } + + get isStreamingSupported() { + return false; + } + + async read() { + if (this._queuedChunk !== null) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); + } + + this._close(); + } + +} /***/ }), -/* 212 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 26 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFetchStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(209); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +; function createFetchOptions(headers, withCredentials, abortController) { return { method: "GET", - headers: headers, - signal: abortController && abortController.signal, + headers, + signal: abortController?.signal, mode: "cors", credentials: withCredentials ? "include" : "same-origin", redirect: "follow" @@ -25114,10 +14274,10 @@ function createFetchOptions(headers, withCredentials, abortController) { } function createHeaders(httpHeaders) { - var headers = new Headers(); + const headers = new Headers(); - for (var property in httpHeaders) { - var value = httpHeaders[property]; + for (const property in httpHeaders) { + const value = httpHeaders[property]; if (typeof value === "undefined") { continue; @@ -25129,10 +14289,8 @@ function createHeaders(httpHeaders) { return headers; } -var PDFFetchStream = /*#__PURE__*/function () { - function PDFFetchStream(source) { - _classCallCheck(this, PDFFetchStream); - +class PDFFetchStream { + constructor(source) { this.source = source; this.isHttp = /^https?:/i.test(source.url); this.httpHeaders = this.isHttp && source.httpHeaders || {}; @@ -25140,62 +14298,49 @@ var PDFFetchStream = /*#__PURE__*/function () { this._rangeRequestReaders = []; } - _createClass(PDFFetchStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var reader = new PDFFetchStreamRangeReader(this, begin, end); + const reader = new PDFFetchStreamRangeReader(this, begin, end); - this._rangeRequestReaders.push(reader); + this._rangeRequestReaders.push(reader); - return reader; + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFFetchStream; -}(); +} exports.PDFFetchStream = PDFFetchStream; -var PDFFetchStreamReader = /*#__PURE__*/function () { - function PDFFetchStreamReader(stream) { - var _this = this; - - _classCallCheck(this, PDFFetchStreamReader); - +class PDFFetchStreamReader { + constructor(stream) { this._stream = stream; this._reader = null; this._loaded = 0; this._filename = null; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._contentLength = source.length; this._headersCapability = (0, _util.createPromiseCapability)(); @@ -25213,153 +14358,108 @@ var PDFFetchStreamReader = /*#__PURE__*/function () { this._isStreamingSupported = !source.disableStream; this._isRangeSupported = !source.disableRange; this._headers = createHeaders(this._stream.httpHeaders); - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this._reader = response.body.getReader(); + this._reader = response.body.getReader(); - _this._headersCapability.resolve(); + this._headersCapability.resolve(); - var getResponseHeader = function getResponseHeader(name) { + const getResponseHeader = name => { return response.headers.get(name); }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: _this._stream.isHttp, - rangeChunkSize: _this._rangeChunkSize, - disableRange: _this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - _this._isRangeSupported = allowRangeRequests; - _this._contentLength = suggestedLength || _this._contentLength; - _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (!_this._isStreamingSupported && _this._isRangeSupported) { - _this.cancel(new _util.AbortException("Streaming is disabled.")); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); } - })["catch"](this._headersCapability.reject); + }).catch(this._headersCapability.reject); this.onProgress = null; } - _createClass(PDFFetchStreamReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var _ref, value, done, buffer; + get headersReady() { + return this._headersCapability.promise; + } - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._headersCapability.promise; + get filename() { + return this._filename; + } - case 2: - _context.next = 4; - return this._reader.read(); + get contentLength() { + return this._contentLength; + } - case 4: - _ref = _context.sent; - value = _ref.value; - done = _ref.done; + get isRangeSupported() { + return this._isRangeSupported; + } - if (!done) { - _context.next = 9; - break; - } + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _context.abrupt("return", { - value: value, - done: done - }); + async read() { + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(value).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamReader; -}(); + this._loaded += value.byteLength; -var PDFFetchStreamRangeReader = /*#__PURE__*/function () { - function PDFFetchStreamRangeReader(stream, begin, end) { - var _this2 = this; + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } - _classCallCheck(this, PDFFetchStreamRangeReader); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} + +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._reader = null; this._loaded = 0; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._readCapability = (0, _util.createPromiseCapability)(); this._isStreamingSupported = !source.disableStream; @@ -25370,104 +14470,371 @@ var PDFFetchStreamRangeReader = /*#__PURE__*/function () { this._headers = createHeaders(this._stream.httpHeaders); - this._headers.append("Range", "bytes=".concat(begin, "-").concat(end - 1)); + this._headers.append("Range", `bytes=${begin}-${end - 1}`); - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this2._readCapability.resolve(); + this._readCapability.resolve(); - _this2._reader = response.body.getReader(); + this._reader = response.body.getReader(); + }).catch(reason => { + if (reason?.name === "AbortError") { + return; + } + + throw reason; }); this.onProgress = null; } - _createClass(PDFFetchStreamRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var _ref2, value, done, buffer; + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + async read() { + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 2: - _context2.next = 4; - return this._reader.read(); - - case 4: - _ref2 = _context2.sent; - value = _ref2.value; - done = _ref2.done; - - if (!done) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", { - value: value, - done: done - }); - - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(value).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamRangeReader; -}(); + this._loaded += value.byteLength; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} /***/ }) -/******/ ]); +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "addLinkAttributes", ({ + enumerable: true, + get: function () { + return _display_utils.addLinkAttributes; + } +})); +Object.defineProperty(exports, "getFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getFilenameFromUrl; + } +})); +Object.defineProperty(exports, "getPdfFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getPdfFilenameFromUrl; + } +})); +Object.defineProperty(exports, "getXfaPageViewport", ({ + enumerable: true, + get: function () { + return _display_utils.getXfaPageViewport; + } +})); +Object.defineProperty(exports, "isPdfFile", ({ + enumerable: true, + get: function () { + return _display_utils.isPdfFile; + } +})); +Object.defineProperty(exports, "LinkTarget", ({ + enumerable: true, + get: function () { + return _display_utils.LinkTarget; + } +})); +Object.defineProperty(exports, "loadScript", ({ + enumerable: true, + get: function () { + return _display_utils.loadScript; + } +})); +Object.defineProperty(exports, "PDFDateString", ({ + enumerable: true, + get: function () { + return _display_utils.PDFDateString; + } +})); +Object.defineProperty(exports, "RenderingCancelledException", ({ + enumerable: true, + get: function () { + return _display_utils.RenderingCancelledException; + } +})); +Object.defineProperty(exports, "build", ({ + enumerable: true, + get: function () { + return _api.build; + } +})); +Object.defineProperty(exports, "getDocument", ({ + enumerable: true, + get: function () { + return _api.getDocument; + } +})); +Object.defineProperty(exports, "LoopbackPort", ({ + enumerable: true, + get: function () { + return _api.LoopbackPort; + } +})); +Object.defineProperty(exports, "PDFDataRangeTransport", ({ + enumerable: true, + get: function () { + return _api.PDFDataRangeTransport; + } +})); +Object.defineProperty(exports, "PDFWorker", ({ + enumerable: true, + get: function () { + return _api.PDFWorker; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _api.version; + } +})); +Object.defineProperty(exports, "CMapCompressionType", ({ + enumerable: true, + get: function () { + return _util.CMapCompressionType; + } +})); +Object.defineProperty(exports, "createObjectURL", ({ + enumerable: true, + get: function () { + return _util.createObjectURL; + } +})); +Object.defineProperty(exports, "createPromiseCapability", ({ + enumerable: true, + get: function () { + return _util.createPromiseCapability; + } +})); +Object.defineProperty(exports, "createValidAbsoluteUrl", ({ + enumerable: true, + get: function () { + return _util.createValidAbsoluteUrl; + } +})); +Object.defineProperty(exports, "InvalidPDFException", ({ + enumerable: true, + get: function () { + return _util.InvalidPDFException; + } +})); +Object.defineProperty(exports, "MissingPDFException", ({ + enumerable: true, + get: function () { + return _util.MissingPDFException; + } +})); +Object.defineProperty(exports, "OPS", ({ + enumerable: true, + get: function () { + return _util.OPS; + } +})); +Object.defineProperty(exports, "PasswordResponses", ({ + enumerable: true, + get: function () { + return _util.PasswordResponses; + } +})); +Object.defineProperty(exports, "PermissionFlag", ({ + enumerable: true, + get: function () { + return _util.PermissionFlag; + } +})); +Object.defineProperty(exports, "removeNullCharacters", ({ + enumerable: true, + get: function () { + return _util.removeNullCharacters; + } +})); +Object.defineProperty(exports, "shadow", ({ + enumerable: true, + get: function () { + return _util.shadow; + } +})); +Object.defineProperty(exports, "UnexpectedResponseException", ({ + enumerable: true, + get: function () { + return _util.UnexpectedResponseException; + } +})); +Object.defineProperty(exports, "UNSUPPORTED_FEATURES", ({ + enumerable: true, + get: function () { + return _util.UNSUPPORTED_FEATURES; + } +})); +Object.defineProperty(exports, "Util", ({ + enumerable: true, + get: function () { + return _util.Util; + } +})); +Object.defineProperty(exports, "VerbosityLevel", ({ + enumerable: true, + get: function () { + return _util.VerbosityLevel; + } +})); +Object.defineProperty(exports, "AnnotationLayer", ({ + enumerable: true, + get: function () { + return _annotation_layer.AnnotationLayer; + } +})); +Object.defineProperty(exports, "GlobalWorkerOptions", ({ + enumerable: true, + get: function () { + return _worker_options.GlobalWorkerOptions; + } +})); +Object.defineProperty(exports, "renderTextLayer", ({ + enumerable: true, + get: function () { + return _text_layer.renderTextLayer; + } +})); +Object.defineProperty(exports, "SVGGraphics", ({ + enumerable: true, + get: function () { + return _svg.SVGGraphics; + } +})); +Object.defineProperty(exports, "XfaLayer", ({ + enumerable: true, + get: function () { + return _xfa_layer.XfaLayer; + } +})); + +var _display_utils = __w_pdfjs_require__(1); + +var _api = __w_pdfjs_require__(6); + +var _util = __w_pdfjs_require__(2); + +var _annotation_layer = __w_pdfjs_require__(17); + +var _worker_options = __w_pdfjs_require__(12); + +var _is_node = __w_pdfjs_require__(4); + +var _text_layer = __w_pdfjs_require__(19); + +var _svg = __w_pdfjs_require__(20); + +var _xfa_layer = __w_pdfjs_require__(21); + +const pdfjsVersion = '2.10.377'; +const pdfjsBuild = '156762c48'; +{ + if (_is_node.isNodeJS) { + const { + PDFNodeStream + } = __w_pdfjs_require__(22); + + (0, _api.setPDFNetworkStreamFactory)(params => { + return new PDFNodeStream(params); + }); + } else { + const { + PDFNetworkStream + } = __w_pdfjs_require__(25); + + const { + PDFFetchStream + } = __w_pdfjs_require__(26); + + (0, _api.setPDFNetworkStreamFactory)(params => { + if ((0, _display_utils.isValidFetchUrl)(params.url)) { + return new PDFFetchStream(params); + } + + return new PDFNetworkStream(params); + }); + } +} +})(); + +/******/ return __webpack_exports__; +/******/ })() +; }); //# sourceMappingURL=pdf.js.map \ No newline at end of file diff --git a/server/src/main/resources/static/pdfjs/build/pdf.js.map b/server/src/main/resources/static/pdfjs/build/pdf.js.map index f2c7adb3..4a3224bb 100644 --- a/server/src/main/resources/static/pdfjs/build/pdf.js.map +++ b/server/src/main/resources/static/pdfjs/build/pdf.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.global-this.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/indexed-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof-raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/require-object-coercible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/document-create-element.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inspect-source.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-store.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-state.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-pure.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/hidden-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/copy-constructor-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-built-in.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/path.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-forced.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/not-a-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/entry-unbind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/function-bind-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-method-uses-to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/array/from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-multibyte.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-iterator-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators-core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/correct-prototype-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/a-possible-prototype.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/to-string-tag-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/promise/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/dom-iterables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-promise-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/iterate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-is-ios.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/host-report-errors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/engine-v8-version.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.all-settled.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/web/url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/native-url.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url-search-params.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/get-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.url.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/web-streams-polyfill/dist/ponyfill.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/map/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/internal-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/freezing.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/set/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-map/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-iteration.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/weak-set/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/symbol/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.array.concat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/array-method-has-species-support.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/define-well-known-symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.description.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.has-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.match-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.replace.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.search.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.split.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.symbol.unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.math.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.json.to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/internals/object-to-array.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","PDFNodeStream","params","PDFNetworkStream","PDFFetchStream","exports","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationStateModelType","MARKED","REVIEW","AnnotationMarkedState","UNMARKED","AnnotationReviewState","ACCEPTED","REJECTED","CANCELLED","COMPLETED","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","BaseException","constructor","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","arrayByteLength","pos","data","item","stringToBytes","itemLength","buffer8","view32","IsLittleEndianCached","shadow","isLittleEndian","IsEvalSupportedCached","isEvalSupported","rgbBuf","m1","m2","xt","p","m","yt","d","p1","Util","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","PDFStringTranslateTable","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","capability","isSettled","get","resolve","reject","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","ii","b1","b2","b3","d1","d2","d3","d4","globalThis","hasDOM","userAgent","navigator","isIE","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","OriginalPushState","window","OriginalReplaceState","args","Array","isReadableStreamSupported","start","controller","module","$","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","options","source","TARGET","target","GLOBAL","STATIC","stat","FORCED","key","targetProperty","sourceProperty","descriptor","prototype","noTargetGet","forced","undefined","sham","check","it","self","Function","DESCRIPTORS","propertyIsEnumerableModule","createPropertyDescriptor","toIndexedObject","toPrimitive","has","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","O","P","error","call","fails","defineProperty","exec","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","V","bitmap","IndexedObject","requireObjectCoercible","classof","split","toString","slice","TypeError","isObject","input","PREFERRED_STRING","fn","val","valueOf","hasOwnProperty","createElement","EXISTS","definePropertyModule","object","anObject","nativeDefineProperty","Attributes","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","simple","join","store","functionToString","SHARED","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","set","getterFor","TYPE","state","wmget","wmhas","wmset","metadata","STATE","test","shared","uid","keys","IS_PURE","push","version","mode","copyright","id","postfix","random","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertySymbols","concat","path","aFunction","variable","namespace","method","internalObjectKeys","enumBugKeys","getOwnPropertyNames","indexOf","names","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","el","fromIndex","index","includes","toInteger","min","argument","ceil","floor","isNaN","max","integer","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","isNodeJS","process","entryUnbind","notARegExp","correctIsRegExpLogic","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","proto","searchString","that","search","isRegExp","wellKnownSymbol","MATCH","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","createWellKnownSymbol","withoutSetter","name","iterator","METHOD_NAME","regexp","e","bind","CONSTRUCTOR","METHOD","apply","nativeEndsWith","endsWith","endPosition","len","end","$includes","addToUnscopables","arrayMethodUsesToLength","USES_TO_LENGTH","ACCESSORS","create","UNSCOPABLES","ArrayPrototype","defineProperties","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","F","NullProtoObject","domain","ActiveXObject","Properties","objectKeys","cache","thrower","argument0","argument1","from","charAt","defineIterator","STRING_ITERATOR","setInternalState","iterated","next","point","done","CONVERT_TO_STRING","S","position","size","charCodeAt","codeAt","createIteratorConstructor","getPrototypeOf","setPrototypeOf","setToStringTag","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","TO_STRING_TAG","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","PrototypeOfArrayIteratorPrototype","arrayIterator","toObject","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","TAG","aPossiblePrototype","CORRECT_SETTER","setter","__proto__","checkCorrectnessOfIteration","INCORRECT_ITERATION","iterable","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","C","argumentsLength","mapfn","mapping","iteratorMethod","step","returnMethod","propertyKey","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","tag","callee","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","assign","nativeAssign","A","B","symbol","alphabet","forEach","chr","T","j","log2","log","LN2","x","number","isInteger","isFinite","Promise","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","ARRAY_ITERATOR","kind","Arguments","NativePromise","redefineAll","setSpecies","anInstance","iterate","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","V8_VERSION","SPECIES","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","GLOBAL_CORE_JS_PROMISE","PromiseRejectionEvent","promise","FakePromise","then","all","isThenable","notify","isReject","notified","chain","reactions","ok","reaction","handler","fail","exited","rejection","onHandleUnhandled","enter","exit","onUnhandled","reason","event","initEvent","IS_UNHANDLED","isUnhandled","emit","parent","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","fetch","wrap","$promiseResolve","counter","remaining","alreadyCalled","race","CONSTRUCTOR_NAME","Constructor","Result","stopped","AS_ENTRIES","IS_ITERATOR","boundFunction","iterFn","stop","defaultConstructor","IS_IOS","location","setImmediate","clear","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","defer","channel","port","run","runner","listener","post","postMessage","protocol","host","nextTick","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","flush","head","last","toggle","node","createTextNode","observe","characterData","promiseCapability","PromiseCapability","$$resolve","$$reject","versions","v8","match","allSettled","status","NON_GENERIC","real","onFinally","isFunction","USE_NATIVE_URL","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","URLSearchParams","getInternalSearchParamsState","getState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","EOF","parseHost","codePoints","parseIPv6","isSpecial","percentEncode","C0ControlPercentEncodeSet","parseIPv4","parts","partsLength","numbers","part","radix","ipv4","pop","parseInt","address","pieceIndex","compress","pointer","numbersSeen","ipv4Piece","swaps","swap","char","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","unshift","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","username","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","seenAt","seenBracket","seenPasswordToken","bufferCodePoints","failure","query","fragment","codePoint","encodedCodePoints","shift","URLConstructor","urlString","baseState","searchParams","searchParamsState","updateSearchParams","updateURL","href","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","pathname","getPathname","getSearch","getSearchParams","hash","getHash","URLPrototype","output","accessorDescriptor","getter","toJSON","nativeCreateObjectURL","nativeRevokeObjectURL","revokeObjectURL","sort","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","inputLength","n","bias","currentValue","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","encoded","labels","label","hasOwn","getIterator","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","RegExp","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","attributes","attribute","entry","validateArgumentsLength","passed","required","URLSearchParamsIterator","Iterator","URLSearchParamsConstructor","init","entryIterator","entryNext","URLSearchParamsPrototype","append","splice","getAll","found","entriesIndex","sliceIndex","callback","body","headers","factory","SymbolPolyfill","description","noop","NumberIsNaN","rethrowAssertionErrorRejection","typeIsObject","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","Uint8Array","IsFiniteNonNegativeNumber","IsNonNegativeNumber","Infinity","Call","CreateAlgorithmFromUnderlyingMethod","underlyingObject","methodName","algoArgCount","extraArgs","PromiseCall","arg","fullArgs","promiseResolvedWith","InvokeOrNoop","promiseRejectedWith","TransferArrayBuffer","IsDetachedBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","MakeSizeAlgorithmFromSizeFunction","originalPromise","originalPromiseThen","originalPromiseResolve","originalPromiseReject","newPromise","PerformPromiseThen","uponPromise","uponFulfillment","uponRejection","transformPromiseWith","fulfillmentHandler","rejectionHandler","setPromiseIsHandledToTrue","QUEUE_MAX_ARRAY_SIZE","SimpleQueue","_cursor","_size","_front","_elements","_next","_back","oldBack","newBack","oldFront","newFront","oldCursor","newCursor","peek","front","cursor","ReadableStreamCreateReadResult","forAuthorCode","obj","ReadableStreamReaderGenericInitialize","reader","stream","_forAuthorCode","_ownerReadableStream","_reader","_state","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","_storedError","ReadableStreamReaderGenericCancel","ReadableStreamCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseReject","defaultReaderClosedPromiseResetToRejected","readerLockException","_closedPromise","_closedPromise_resolve","_closedPromise_reject","defaultReaderClosedPromiseResolve","CancelSteps","PullSteps","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","ReadableStreamAddReadRequest","readRequest","_resolve","_reject","_readRequests","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadRequests","ReadableStreamHasDefaultReader","IsReadableStreamDefaultReader","IsReadableStream","IsReadableStreamLocked","defaultReaderBrandCheckException","cancel","read","ReadableStreamDefaultReaderRead","releaseLock","_disturbed","_readableStreamController","_a","AsyncIteratorPrototype","asyncIterator","ReadableStreamAsyncIteratorPrototype","IsReadableStreamAsyncIterator","streamAsyncIteratorBrandCheckException","_asyncIteratorReader","return","_preventCancel","AcquireReadableStreamAsyncIterator","preventCancel","Boolean","DequeueValue","container","pair","_queue","_queueTotalSize","EnqueueValueWithSize","PeekQueueValue","ResetQueue","AbortSteps","ErrorSteps","WritableStream","underlyingSink","strategy","InitializeWritableStream","sizeAlgorithm","SetUpWritableStreamDefaultControllerFromUnderlyingSink","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","abort","WritableStreamAbort","WritableStreamCloseQueuedOrInFlight","WritableStreamClose","getWriter","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","CreateWritableStream","startAlgorithm","writeAlgorithm","closeAlgorithm","abortAlgorithm","WritableStreamDefaultController","SetUpWritableStreamDefaultController","_writer","_writableStreamController","_writeRequests","_inFlightWriteRequest","_closeRequest","_inFlightCloseRequest","_pendingAbortRequest","_backpressure","_promise","wasAlreadyErroring","_reason","_wasAlreadyErroring","WritableStreamStartErroring","closeRequest","writer","defaultWriterReadyPromiseResolve","WritableStreamDefaultControllerClose","WritableStreamAddWriteRequest","writeRequest","WritableStreamDealWithRejection","WritableStreamFinishErroring","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","defaultWriterClosedPromiseReject","WritableStreamUpdateBackpressure","backpressure","defaultWriterReadyPromiseReset","_ownerWritableStream","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterGetDesiredSize","_readyPromise","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamDefaultControllerWrite","IsWritableStreamDefaultController","_controlledWritableStream","WritableStreamDefaultControllerError","_abortAlgorithm","WritableStreamDefaultControllerClearAlgorithms","_strategySizeAlgorithm","_strategyHWM","_writeAlgorithm","_closeAlgorithm","WritableStreamDefaultControllerGetBackpressure","startResult","startPromise","WritableStreamDefaultControllerAdvanceQueueIfNeeded","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","enqueueE","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","sinkClosePromise","sinkWritePromise","desiredSize","_readyPromise_resolve","_readyPromise_reject","isAbortSignal","aborted","NativeDOMException","DOMException","isDOMExceptionConstructor","ctor","createDOMExceptionPolyfill","message","Error","captureStackTrace","DOMException$1","ReadableStreamPipeTo","preventClose","preventAbort","signal","shuttingDown","currentWrite","actions","shutdownWithAction","map","action","pipeLoop","resolveLoop","rejectLoop","pipeStep","isOrBecomesErrored","shutdown","isOrBecomesClosed","destClosed_1","waitForWritesToFinish","oldCurrentWrite","originalIsError","originalError","doTheRest","finalize","newError","isError","removeEventListener","ReadableStreamDefaultController","IsReadableStreamDefaultController","defaultControllerBrandCheckException","ReadableStreamDefaultControllerGetDesiredSize","ReadableStreamDefaultControllerCanCloseOrEnqueue","ReadableStreamDefaultControllerClose","enqueue","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","_cancelAlgorithm","ReadableStreamDefaultControllerClearAlgorithms","_controlledReadableStream","_closeRequested","ReadableStreamClose","ReadableStreamDefaultControllerCallPullIfNeeded","pendingPromise","shouldPull","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAgain","pullPromise","_pullAlgorithm","ReadableStreamError","ReadableStreamDefaultControllerHasBackpressure","SetUpReadableStreamDefaultController","pullAlgorithm","cancelAlgorithm","SetUpReadableStreamDefaultControllerFromUnderlyingSource","underlyingSource","ReadableStreamTee","cloneForBranch2","reading","canceled1","canceled2","reason1","reason2","branch1","branch2","resolveCancelPromise","cancelPromise","readPromise","value1","value2","cancel1Algorithm","compositeReason","cancelResult","cancel2Algorithm","CreateReadableStream","NumberIsInteger","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","_view","respond","bytesWritten","_associatedReadableByteStreamController","ReadableByteStreamControllerRespond","respondWithNewView","view","ArrayBuffer","isView","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","IsReadableByteStreamController","byteStreamControllerBrandCheckException","_byobRequest","_pendingPullIntos","firstDescriptor","byteOffset","bytesFilled","byteLength","byobRequest","SetUpReadableStreamBYOBRequest","ReadableByteStreamControllerGetDesiredSize","_controlledReadableByteStream","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","ReadableByteStreamControllerError","ReadableByteStreamControllerClearAlgorithms","ReadableByteStreamControllerHandleQueueDrain","viewE","autoAllocateChunkSize","_autoAllocateChunkSize","bufferE","pullIntoDescriptor","elementSize","readerType","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","ReadableByteStreamControllerCommitPullIntoDescriptor","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerPullInto","DataView","BYTES_PER_ELEMENT","ReadableStreamAddReadIntoRequest","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","SetUpReadableByteStreamController","SetUpReadableByteStreamControllerFromUnderlyingSource","underlyingByteSource","request","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","IsReadableStreamBYOBReader","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","ReadableStream","InitializeReadableStream","typeString","streamBrandCheckException$1","getReader","pipeThrough","_b","readable","_c","pipeTo","tee","branches","sourceCancelPromise","ByteLengthQueuingStrategy","CountQueuingStrategy","TransformStream","transformer","writableStrategy","readableStrategy","writableSizeFunction","writableHighWaterMark","readableSizeFunction","readableHighWaterMark","writableType","writableSizeAlgorithm","readableType","readableSizeAlgorithm","startPromise_resolve","InitializeTransformStream","SetUpTransformStreamDefaultControllerFromTransformer","_transformStreamController","IsTransformStream","streamBrandCheckException$2","_readable","_writable","TransformStreamDefaultSinkWriteAlgorithm","TransformStreamDefaultSinkAbortAlgorithm","TransformStreamDefaultSinkCloseAlgorithm","TransformStreamDefaultSourcePullAlgorithm","TransformStreamErrorWritableAndUnblockWrite","_backpressureChangePromise","_backpressureChangePromise_resolve","TransformStreamSetBackpressure","TransformStreamError","TransformStreamDefaultControllerClearAlgorithms","TransformStreamDefaultController","IsTransformStreamDefaultController","defaultControllerBrandCheckException$1","readableController","_controlledTransformStream","TransformStreamDefaultControllerEnqueue","TransformStreamDefaultControllerError","terminate","TransformStreamDefaultControllerTerminate","SetUpTransformStreamDefaultController","transformAlgorithm","flushAlgorithm","_transformAlgorithm","_flushAlgorithm","transformResultE","transformMethod","TransformStreamDefaultControllerPerformTransform","transformPromise","backpressureChangePromise","flushPromise","Map","collection","collectionStrong","InternalMetadataModule","inheritIfRequired","common","IS_MAP","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","add","getConstructor","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","meta","preventExtensions","Wrapper","NewTarget","NewTargetPrototype","internalStateGetterFor","define","getEntry","previous","removed","prev","callbackfn","ITERATOR_NAME","getInternalCollectionState","Set","collectionWeak","enforceIternalState","IS_IE11","InternalWeakMap","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","frozen","ArrayIterationModule","$has","findIndex","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","arraySpeciesCreate","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","specificCreate","filter","some","every","isArray","originalArray","WeakSet","codePointAt","fromCodePoint","nativeFromCodePoint","INCORRECT_LENGTH","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","array","SPECIES_SUPPORT","isConcatSpreadable","spreadable","E","foo","nativeObjectCreate","getOwnPropertyNamesExternal","wrappedWellKnownSymbolModule","defineWellKnownSymbol","$forEach","SYMBOL","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","isSymbol","$defineProperty","$defineProperties","properties","$getOwnPropertySymbols","$propertyIsEnumerable","$create","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","FORCED_JSON_STRINGIFY","stringify","space","$replacer","windowNames","getWindowNames","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","JSON","$padStart","WEBKIT_BUG","padStart","repeat","IS_END","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","$padEnd","padEnd","$values","TO_ENTRIES","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","worker","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","postMessageTransfers","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","PDFDocumentLoadingTask","nextDocumentId","transportDestroyed","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","deprecated","openAction","pdfBug","getViewport","rotation","offsetX","offsetY","dontFlip","viewBox","scale","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","render","renderingIntent","intentState","clearTimeout","canvasFactoryInstance","webGLContext","enable","fnArray","argsArray","lastChunk","pageIndex","complete","internalRenderTask","canvasContext","viewport","objs","commonObjs","operatorList","useRequestAnimationFrame","renderTask","transparency","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","readableStream","pump","items","styles","waitOn","renderCompleted","resetStats","cleanup","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","_pumpOperatorList","_abortOperatorList","cloned","transferable","transfers","cloneValue","pdfWorkerPorts","isWorkerDisabled","nextFakeWorkerId","fallbackWorkerSrc","pdfjsFilePath","mainWorkerMessageHandler","fakeWorkerCapability","loader","getMainThreadWorkerMessageHandler","eval","getWorkerSrc","loadScript","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","info","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","isCompressed","page","terminated","evt","loaded","total","sink","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","ex","exception","updatePassword","exportedError","exportedData","fontRegistry","registerFont","pageProxy","img","releaseImageResources","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","rgbaLength","buf","tmpCanvas","tmpCtx","height","fetched","builtInCMap","_onUnsupportedFeature","pageNumber","pageInfo","ref","results","contentDispositionFilename","cleanupSuccessful","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","build","runtime","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","genFun","__await","record","tryCatch","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","doneResult","delegate","delegateResult","maybeInvokeDelegate","tryLoc","locs","Context","reset","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","regeneratorRuntime","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","destroy","compressionType","isFetchSupported","isValidFetchUrl","response","cMapData","XMLHttpRequest","svg","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","LinkTarget","SELF","BLANK","PARENT","TOP","enabled","urlNullRemoved","removeNullCharacters","link","targetStr","anchor","time","Date","timeEnd","outBuf","longest","duration","Response","script","isString","pdfDateStringRegex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","supported","FontLoader","requests","nextRequestId","otherRequest","offset","chunk1","s","chunk2","ctx","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","span","getLoadTestFont","atob","translatedData","bytesToString","getPathGenerator","cmds","js","current","compatibilityParams","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","j0","sum","steps","outlines","coords","p0","pp","drawOutline","o","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","objId","left","top","w","h","maskCanvas","putBinaryImageMask","positions","images","image","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","region","fromIR","raw","colorStops","r1","getPattern","applyBoundingBox","grad","createMeshCanvas","colors","rowSize","tmp","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","callbackId","wrapReason","sourceName","targetName","comObj","on","ah","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","pullCall","cancelCall","isClosed","pull","pullCapability","cancelCapability","_createStreamSink","streamSink","lastDesiredSize","sinkCapability","onPull","onCancel","isCancelled","success","_processStreamMessage","_postMessage","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","ch","isWhitespace","_resolveEntities","entity","_parseContent","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","childNodes","child","parseFromString","documentElement","isWhitespaceString","lastElement","begin","_onReceiveData","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","textDiv","textDivProperties","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","_processItems","appendText","_layoutText","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","transformBuf","paddingBuf","divProps","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","TEXT_ALIGNMENT","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","optionElement","option","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","date","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","coordinate","polyline","getFilenameFromUrl","stringToPDFString","filename","sortedAnnotations","popupAnnotations","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","crc32","deflateSyncUncompressed","__non_webpack_require__","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgObj","imgEl","imgSrc","cliprect","_initialize","definitions","rootGroup","clipGroup","fs","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","abortController","credentials","redirect","createHeaders","createFetchOptions","validateResponseStatus"],"mappings":"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","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-unused-vars */\n\n\"use strict\";\n\nvar pdfjsVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\nvar pdfjsBuild =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nvar pdfjsSharedUtil = require(\"./shared/util.js\");\nvar pdfjsDisplayAPI = require(\"./display/api.js\");\nvar pdfjsDisplayTextLayer = require(\"./display/text_layer.js\");\nvar pdfjsDisplayAnnotationLayer = require(\"./display/annotation_layer.js\");\nvar pdfjsDisplayDisplayUtils = require(\"./display/display_utils.js\");\nvar pdfjsDisplaySVG = require(\"./display/svg.js\");\nconst pdfjsDisplayWorkerOptions = require(\"./display/worker_options.js\");\nconst pdfjsDisplayAPICompatibility = require(\"./display/api_compatibility.js\");\n\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n const { isNodeJS } = require(\"./shared/is_node.js\");\n if (isNodeJS) {\n const PDFNodeStream = require(\"./display/node_stream.js\").PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n let PDFFetchStream;\n if (pdfjsDisplayDisplayUtils.isFetchSupported()) {\n PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(params => {\n if (\n PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)\n ) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n} else if (PDFJSDev.test(\"CHROME\")) {\n const PDFNetworkStream = require(\"./display/network.js\").PDFNetworkStream;\n let PDFFetchStream;\n const isChromeWithFetchCredentials = function() {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (\n pdfjsDisplayDisplayUtils.isFetchSupported() &&\n isChromeWithFetchCredentials()\n ) {\n PDFFetchStream = require(\"./display/fetch_stream.js\").PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(params => {\n if (\n PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)\n ) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n}\n\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException =\n pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.RenderingCancelledException =\n pdfjsDisplayDisplayUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDisplayUtils.loadScript;\nexports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\nimport \"./compatibility.js\";\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: \"none\",\n DECODE: \"decode\",\n DISPLAY: \"display\",\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\",\n};\n\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\",\n};\n\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\",\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\", // PDF short name is 'RL', but telemetry requires three chars.\n};\n\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\nconst BaseException = (function BaseExceptionClosure() {\n function BaseException(message) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = this.constructor.name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg);\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg);\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {}\n\nclass MissingPDFException extends BaseException {}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg);\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {}\n\nconst NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== \"string\") {\n warn(\"The argument for removeNullCharacters must be a string.\");\n return str;\n }\n return str.replace(NullCharactersRegExp, \"\");\n}\n\nfunction bytesToString(bytes) {\n assert(\n bytes !== null && typeof bytes === \"object\" && bytes.length !== undefined,\n \"Invalid argument for bytesToString\"\n );\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n assert(typeof str === \"string\", \"Invalid argument for stringToBytes\");\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n const length = arr.length;\n // Shortcut: if first and only item is Uint8Array, return it.\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n let resultLength = 0;\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n let pos = 0;\n const data = new Uint8Array(resultLength);\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nconst IsLittleEndianCached = {\n get value() {\n return shadow(this, \"value\", isLittleEndian());\n },\n};\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\nconst IsEvalSupportedCached = {\n get value() {\n return shadow(this, \"value\", isEvalSupported());\n },\n};\n\nconst rgbBuf = [\"rgb(\", 0, \",\", 0, \",\", 0, \")\"];\n\nclass Util {\n // makeCssRgb() can be called thousands of times. Using ´rgbBuf` avoids\n // creating many intermediate strings.\n static makeCssRgb(r, g, b) {\n rgbBuf[1] = r;\n rgbBuf[3] = g;\n rgbBuf[5] = b;\n return rgbBuf.join(\"\");\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n static apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2],\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\n const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);\n const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);\n const result = [];\n\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if (\n (orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])\n ) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return null;\n }\n\n // Y: first and second points belong to different rectangles?\n if (\n (orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])\n ) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return null;\n }\n\n return result;\n }\n}\n\n// prettier-ignore\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n const length = str.length,\n strBuf = [];\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n // UTF16BE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i) << 8) | str.charCodeAt(i + 1))\n );\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n // UTF16LE BOM\n for (let i = 2; i < length; i += 2) {\n strBuf.push(\n String.fromCharCode((str.charCodeAt(i + 1) << 8) | str.charCodeAt(i))\n );\n }\n } else {\n for (let i = 0; i < length; ++i) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (const key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === \"boolean\";\n}\n\nfunction isNum(v) {\n return typeof v === \"number\";\n}\n\nfunction isString(v) {\n return typeof v === \"string\";\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n return arr1.every(function(element, index) {\n return element === arr2[index];\n });\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @returns {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function(resolve, reject) {\n capability.resolve = function(data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function(reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nconst createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n const digits =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType });\n return URL.createObjectURL(blob);\n }\n\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = ((b1 & 3) << 4) | (b2 >> 4);\n const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n})();\n\nexport {\n BaseException,\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMarkedState,\n AnnotationReplyType,\n AnnotationReviewState,\n AnnotationStateModelType,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isArrayEqual,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSameOrigin,\n createValidAbsoluteUrl,\n IsLittleEndianCached,\n IsEvalSupportedCached,\n removeNullCharacters,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\n// Skip compatibility checks for modern builds (unless we're running the\n// unit-tests in Node.js/Travis) and if we already ran the module.\nif (\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"!SKIP_BABEL || (LIB && TESTING)\")) &&\n (typeof globalThis === \"undefined\" || !globalThis._pdfjsCompatibilityChecked)\n) {\n // Provides support for globalThis in legacy browsers.\n // Support: IE11/Edge, Opera\n if (typeof globalThis === \"undefined\" || globalThis.Math !== Math) {\n // eslint-disable-next-line no-global-assign\n globalThis = require(\"core-js/es/global-this\");\n }\n globalThis._pdfjsCompatibilityChecked = true;\n\n const { isNodeJS } = require(\"./is_node.js\");\n\n const hasDOM = typeof window === \"object\" && typeof document === \"object\";\n const userAgent =\n (typeof navigator !== \"undefined\" && navigator.userAgent) || \"\";\n const isIE = /Trident/.test(userAgent);\n\n // Support: Node.js\n (function checkNodeBtoa() {\n if (globalThis.btoa || !isNodeJS) {\n return;\n }\n globalThis.btoa = function(chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, \"binary\").toString(\"base64\");\n };\n })();\n\n // Support: Node.js\n (function checkNodeAtob() {\n if (globalThis.atob || !isNodeJS) {\n return;\n }\n globalThis.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, \"base64\").toString(\"binary\");\n };\n })();\n\n // Provides support for ChildNode.remove in legacy browsers.\n // Support: IE.\n (function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== \"undefined\") {\n return;\n }\n Element.prototype.remove = function() {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n })();\n\n // Provides support for DOMTokenList.prototype.{add, remove}, with more than\n // one parameter, in legacy browsers.\n // Support: IE\n (function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS) {\n return;\n }\n const div = document.createElement(\"div\");\n div.classList.add(\"testOne\", \"testTwo\");\n\n if (\n div.classList.contains(\"testOne\") === true &&\n div.classList.contains(\"testTwo\") === true\n ) {\n return;\n }\n const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function(...tokens) {\n for (const token of tokens) {\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n DOMTokenList.prototype.remove = function(...tokens) {\n for (const token of tokens) {\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n })();\n\n // Provides support for DOMTokenList.prototype.toggle, with the optional\n // \"force\" parameter, in legacy browsers.\n // Support: IE\n (function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS) {\n return;\n }\n const div = document.createElement(\"div\");\n if (div.classList.toggle(\"test\", 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function(token) {\n const force =\n arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n return this[force ? \"add\" : \"remove\"](token), force;\n };\n })();\n\n // Provides support for window.history.{pushState, replaceState}, with the\n // `url` parameter set to `undefined`, without breaking the document URL.\n // Support: IE\n (function checkWindowHistoryPushStateReplaceState() {\n if (!hasDOM || !isIE) {\n return;\n }\n const OriginalPushState = window.history.pushState;\n const OriginalReplaceState = window.history.replaceState;\n\n window.history.pushState = function(state, title, url) {\n const args = url === undefined ? [state, title] : [state, title, url];\n OriginalPushState.apply(this, args);\n };\n window.history.replaceState = function(state, title, url) {\n const args = url === undefined ? [state, title] : [state, title, url];\n OriginalReplaceState.apply(this, args);\n };\n })();\n\n // Provides support for String.prototype.startsWith in legacy browsers.\n // Support: IE, Chrome<41\n (function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n require(\"core-js/es/string/starts-with.js\");\n })();\n\n // Provides support for String.prototype.endsWith in legacy browsers.\n // Support: IE, Chrome<41\n (function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n require(\"core-js/es/string/ends-with.js\");\n })();\n\n // Provides support for String.prototype.includes in legacy browsers.\n // Support: IE, Chrome<41\n (function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require(\"core-js/es/string/includes.js\");\n })();\n\n // Provides support for Array.prototype.includes in legacy browsers.\n // Support: IE, Chrome<47\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require(\"core-js/es/array/includes.js\");\n })();\n\n // Provides support for Array.from in legacy browsers.\n // Support: IE\n (function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n require(\"core-js/es/array/from.js\");\n })();\n\n // Provides support for Object.assign in legacy browsers.\n // Support: IE\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require(\"core-js/es/object/assign.js\");\n })();\n\n // Provides support for Math.log2 in legacy browsers.\n // Support: IE, Chrome<38\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require(\"core-js/es/math/log2.js\");\n })();\n\n // Provides support for Number.isNaN in legacy browsers.\n // Support: IE.\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require(\"core-js/es/number/is-nan.js\");\n })();\n\n // Provides support for Number.isInteger in legacy browsers.\n // Support: IE, Chrome<34\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require(\"core-js/es/number/is-integer.js\");\n })();\n\n // Support: IE, Safari<11, Chrome<63\n (function checkPromise() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalThis.Promise && globalThis.Promise.allSettled) {\n return;\n }\n globalThis.Promise = require(\"core-js/es/promise/index.js\");\n })();\n\n // Support: IE\n (function checkURL() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders don't use the `URL` constructor, so it\n // doesn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n // The `URL` constructor is assumed to be available in the extension\n // builds.\n return;\n }\n globalThis.URL = require(\"core-js/web/url.js\");\n })();\n\n // Support: IE, Node.js\n (function checkReadableStream() {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"IMAGE_DECODERS\")) {\n // The current image decoders are synchronous, hence `ReadableStream`\n // shouldn't need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n let isReadableStreamSupported = false;\n\n if (typeof ReadableStream !== \"undefined\") {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n return;\n }\n globalThis.ReadableStream = require(\"web-streams-polyfill/dist/ponyfill.js\").ReadableStream;\n })();\n\n // We want to support Map iteration, but it doesn't seem possible to easily\n // test for that specifically; hence using a similarly unsupported property.\n // Support: IE11\n (function checkMapEntries() {\n if (globalThis.Map && globalThis.Map.prototype.entries) {\n return;\n }\n globalThis.Map = require(\"core-js/es/map/index.js\");\n })();\n\n // We want to support Set iteration, but it doesn't seem possible to easily\n // test for that specifically; hence using a similarly unsupported property.\n // Support: IE11\n (function checkSetEntries() {\n if (globalThis.Set && globalThis.Set.prototype.entries) {\n return;\n }\n globalThis.Set = require(\"core-js/es/set/index.js\");\n })();\n\n // Support: IE<11, Safari<8, Chrome<36\n (function checkWeakMap() {\n if (globalThis.WeakMap) {\n return;\n }\n globalThis.WeakMap = require(\"core-js/es/weak-map/index.js\");\n })();\n\n // Support: IE11\n (function checkWeakSet() {\n if (globalThis.WeakSet) {\n return;\n }\n globalThis.WeakSet = require(\"core-js/es/weak-set/index.js\");\n })();\n\n // Provides support for String.codePointAt in legacy browsers.\n // Support: IE11.\n (function checkStringCodePointAt() {\n if (String.prototype.codePointAt) {\n return;\n }\n require(\"core-js/es/string/code-point-at.js\");\n })();\n\n // Provides support for String.fromCodePoint in legacy browsers.\n // Support: IE11.\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require(\"core-js/es/string/from-code-point.js\");\n })();\n\n // Support: IE\n (function checkSymbol() {\n if (globalThis.Symbol) {\n return;\n }\n require(\"core-js/es/symbol/index.js\");\n })();\n\n // Provides support for String.prototype.padStart in legacy browsers.\n // Support: IE, Chrome<57\n (function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require(\"core-js/es/string/pad-start.js\");\n })();\n\n // Provides support for String.prototype.padEnd in legacy browsers.\n // Support: IE, Chrome<57\n (function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require(\"core-js/es/string/pad-end.js\");\n })();\n\n // Provides support for Object.values in legacy browsers.\n // Support: IE, Chrome<54\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require(\"core-js/es/object/values.js\");\n })();\n}\n","require('../modules/es.global-this');\n\nmodule.exports = require('../internals/global');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://github.com/tc39/proposal-global\n$({ global: true }, {\n globalThis: global\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://electronjs.org/docs/api/process#processversionselectron\nconst isNodeJS =\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions[\"nw\"] &&\n !process.versions[\"electron\"];\n\nexport { isNodeJS };\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeStartsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return nativeStartsWith\n ? nativeStartsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (e) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (f) { /* empty */ }\n } return false;\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\n\nvar call = Function.call;\n\nmodule.exports = function (CONSTRUCTOR, METHOD, length) {\n return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","require('../../modules/es.string.ends-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'endsWith');\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar nativeEndsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return nativeEndsWith\n ? nativeEndsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.includes` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: !USES_TO_LENGTH }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.github.io/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","require('../../modules/es.math.log2');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Math.log2;\n","var $ = require('../internals/export');\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\n// `Math.log2` method\n// https://tc39.github.io/ecma262/#sec-math.log2\n$({ target: 'Math', stat: true }, {\n log2: function log2(x) {\n return log(x) / LN2;\n }\n});\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es.number.is-integer');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isInteger;\n","var $ = require('../internals/export');\nvar isInteger = require('../internals/is-integer');\n\n// `Number.isInteger` method\n// https://tc39.github.io/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isInteger\n});\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `Number.isInteger` method implementation\n// https://tc39.github.io/ecma262/#sec-number.isinteger\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.finally');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","require('../modules/web.url');\nrequire('../modules/web.url.to-json');\nrequire('../modules/web.url-search-params');\nvar path = require('../internals/path');\n\nmodule.exports = path.URL;\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+\\-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\u0009\\u000A\\u000D #%/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\u0009\\u000A\\u000D #/:?@[\\\\]]/;\n// eslint-disable-next-line no-control-regex\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\n// eslint-disable-next-line no-control-regex\nvar TAB_AND_NEW_LINE = /[\\u0009\\u000A\\u000D]/g;\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","'use strict';\nvar $ = require('../internals/export');\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\n$({ target: 'URL', proto: true, enumerable: true }, {\n toJSON: function toJSON() {\n return URL.prototype.toString.call(this);\n }\n});\n","/**\n * web-streams-polyfill v2.1.0\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.WebStreamsPolyfill = {}));\n}(this, (function (exports) { 'use strict';\n\n /// \r\n var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ?\r\n Symbol :\r\n function (description) { return \"Symbol(\" + description + \")\"; };\n\n /// \r\n function noop() {\r\n // do nothing\r\n }\n\n /// \r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill\r\n var NumberIsNaN = Number.isNaN || function (x) {\r\n // eslint-disable-next-line no-self-compare\r\n return x !== x;\r\n };\n\n var rethrowAssertionErrorRejection = noop;\n\n function typeIsObject(x) {\r\n return (typeof x === 'object' && x !== null) || typeof x === 'function';\r\n }\r\n function createArrayFromList(elements) {\r\n // We use arrays to represent lists, so this is basically a no-op.\r\n // Do a slice though just in case we happen to depend on the unique-ness.\r\n return elements.slice();\r\n }\r\n function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {\r\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\r\n }\r\n function IsFiniteNonNegativeNumber(v) {\r\n if (IsNonNegativeNumber(v) === false) {\r\n return false;\r\n }\r\n if (v === Infinity) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function IsNonNegativeNumber(v) {\r\n if (typeof v !== 'number') {\r\n return false;\r\n }\r\n if (NumberIsNaN(v)) {\r\n return false;\r\n }\r\n if (v < 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function Call(F, V, args) {\r\n if (typeof F !== 'function') {\r\n throw new TypeError('Argument is not a function');\r\n }\r\n return Function.prototype.apply.call(F, V, args);\r\n }\r\n function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {\r\n var method = underlyingObject[methodName];\r\n if (method !== undefined) {\r\n if (typeof method !== 'function') {\r\n throw new TypeError(method + \" is not a method\");\r\n }\r\n switch (algoArgCount) {\r\n case 0: {\r\n return function () {\r\n return PromiseCall(method, underlyingObject, extraArgs);\r\n };\r\n }\r\n case 1: {\r\n return function (arg) {\r\n var fullArgs = [arg].concat(extraArgs);\r\n return PromiseCall(method, underlyingObject, fullArgs);\r\n };\r\n }\r\n }\r\n }\r\n return function () { return promiseResolvedWith(undefined); };\r\n }\r\n function InvokeOrNoop(O, P, args) {\r\n var method = O[P];\r\n if (method === undefined) {\r\n return undefined;\r\n }\r\n return Call(method, O, args);\r\n }\r\n function PromiseCall(F, V, args) {\r\n try {\r\n return promiseResolvedWith(Call(F, V, args));\r\n }\r\n catch (value) {\r\n return promiseRejectedWith(value);\r\n }\r\n }\r\n // Not implemented correctly\r\n function TransferArrayBuffer(O) {\r\n return O;\r\n }\r\n // Not implemented correctly\r\n function IsDetachedBuffer(O) {\r\n return false;\r\n }\r\n function ValidateAndNormalizeHighWaterMark(highWaterMark) {\r\n highWaterMark = Number(highWaterMark);\r\n if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {\r\n throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\r\n }\r\n return highWaterMark;\r\n }\r\n function MakeSizeAlgorithmFromSizeFunction(size) {\r\n if (size === undefined) {\r\n return function () { return 1; };\r\n }\r\n if (typeof size !== 'function') {\r\n throw new TypeError('size property of a queuing strategy must be a function');\r\n }\r\n return function (chunk) { return size(chunk); };\r\n }\r\n var originalPromise = Promise;\r\n var originalPromiseThen = Promise.prototype.then;\r\n var originalPromiseResolve = Promise.resolve.bind(originalPromise);\r\n var originalPromiseReject = Promise.reject.bind(originalPromise);\r\n function newPromise(executor) {\r\n return new originalPromise(executor);\r\n }\r\n function promiseResolvedWith(value) {\r\n return originalPromiseResolve(value);\r\n }\r\n function promiseRejectedWith(reason) {\r\n return originalPromiseReject(reason);\r\n }\r\n function PerformPromiseThen(promise, onFulfilled, onRejected) {\r\n // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an\r\n // approximation.\r\n return originalPromiseThen.call(promise, onFulfilled, onRejected);\r\n }\r\n function uponPromise(promise, onFulfilled, onRejected) {\r\n PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);\r\n }\r\n function uponFulfillment(promise, onFulfilled) {\r\n uponPromise(promise, onFulfilled);\r\n }\r\n function uponRejection(promise, onRejected) {\r\n uponPromise(promise, undefined, onRejected);\r\n }\r\n function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {\r\n return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);\r\n }\r\n function setPromiseIsHandledToTrue(promise) {\r\n PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);\r\n }\n\n // Original from Chromium\r\n // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js\r\n var QUEUE_MAX_ARRAY_SIZE = 16384;\r\n /**\r\n * Simple queue structure.\r\n *\r\n * Avoids scalability issues with using a packed array directly by using\r\n * multiple arrays in a linked list and keeping the array size bounded.\r\n */\r\n var SimpleQueue = /** @class */ (function () {\r\n function SimpleQueue() {\r\n this._cursor = 0;\r\n this._size = 0;\r\n // _front and _back are always defined.\r\n this._front = {\r\n _elements: [],\r\n _next: undefined\r\n };\r\n this._back = this._front;\r\n // The cursor is used to avoid calling Array.shift().\r\n // It contains the index of the front element of the array inside the\r\n // front-most node. It is always in the range [0, QUEUE_MAX_ARRAY_SIZE).\r\n this._cursor = 0;\r\n // When there is only one node, size === elements.length - cursor.\r\n this._size = 0;\r\n }\r\n Object.defineProperty(SimpleQueue.prototype, \"length\", {\r\n get: function () {\r\n return this._size;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n // For exception safety, this method is structured in order:\r\n // 1. Read state\r\n // 2. Calculate required state mutations\r\n // 3. Perform state mutations\r\n SimpleQueue.prototype.push = function (element) {\r\n var oldBack = this._back;\r\n var newBack = oldBack;\r\n if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {\r\n newBack = {\r\n _elements: [],\r\n _next: undefined\r\n };\r\n }\r\n // push() is the mutation most likely to throw an exception, so it\r\n // goes first.\r\n oldBack._elements.push(element);\r\n if (newBack !== oldBack) {\r\n this._back = newBack;\r\n oldBack._next = newBack;\r\n }\r\n ++this._size;\r\n };\r\n // Like push(), shift() follows the read -> calculate -> mutate pattern for\r\n // exception safety.\r\n SimpleQueue.prototype.shift = function () { // must not be called on an empty queue\r\n var oldFront = this._front;\r\n var newFront = oldFront;\r\n var oldCursor = this._cursor;\r\n var newCursor = oldCursor + 1;\r\n var elements = oldFront._elements;\r\n var element = elements[oldCursor];\r\n if (newCursor === QUEUE_MAX_ARRAY_SIZE) {\r\n newFront = oldFront._next;\r\n newCursor = 0;\r\n }\r\n // No mutations before this point.\r\n --this._size;\r\n this._cursor = newCursor;\r\n if (oldFront !== newFront) {\r\n this._front = newFront;\r\n }\r\n // Permit shifted element to be garbage collected.\r\n elements[oldCursor] = undefined;\r\n return element;\r\n };\r\n // The tricky thing about forEach() is that it can be called\r\n // re-entrantly. The queue may be mutated inside the callback. It is easy to\r\n // see that push() within the callback has no negative effects since the end\r\n // of the queue is checked for on every iteration. If shift() is called\r\n // repeatedly within the callback then the next iteration may return an\r\n // element that has been removed. In this case the callback will be called\r\n // with undefined values until we either \"catch up\" with elements that still\r\n // exist or reach the back of the queue.\r\n SimpleQueue.prototype.forEach = function (callback) {\r\n var i = this._cursor;\r\n var node = this._front;\r\n var elements = node._elements;\r\n while (i !== elements.length || node._next !== undefined) {\r\n if (i === elements.length) {\r\n node = node._next;\r\n elements = node._elements;\r\n i = 0;\r\n if (elements.length === 0) {\r\n break;\r\n }\r\n }\r\n callback(elements[i]);\r\n ++i;\r\n }\r\n };\r\n // Return the element that would be returned if shift() was called now,\r\n // without modifying the queue.\r\n SimpleQueue.prototype.peek = function () { // must not be called on an empty queue\r\n var front = this._front;\r\n var cursor = this._cursor;\r\n return front._elements[cursor];\r\n };\r\n return SimpleQueue;\r\n }());\n\n function ReadableStreamCreateReadResult(value, done, forAuthorCode) {\r\n var prototype = null;\r\n if (forAuthorCode === true) {\r\n prototype = Object.prototype;\r\n }\r\n var obj = Object.create(prototype);\r\n obj.value = value;\r\n obj.done = done;\r\n return obj;\r\n }\r\n function ReadableStreamReaderGenericInitialize(reader, stream) {\r\n reader._forAuthorCode = true;\r\n reader._ownerReadableStream = stream;\r\n stream._reader = reader;\r\n if (stream._state === 'readable') {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n }\r\n else if (stream._state === 'closed') {\r\n defaultReaderClosedPromiseInitializeAsResolved(reader);\r\n }\r\n else {\r\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\r\n }\r\n }\r\n // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\r\n // check.\r\n function ReadableStreamReaderGenericCancel(reader, reason) {\r\n var stream = reader._ownerReadableStream;\r\n return ReadableStreamCancel(stream, reason);\r\n }\r\n function ReadableStreamReaderGenericRelease(reader) {\r\n if (reader._ownerReadableStream._state === 'readable') {\r\n defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\r\n }\r\n else {\r\n defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\r\n }\r\n reader._ownerReadableStream._reader = undefined;\r\n reader._ownerReadableStream = undefined;\r\n }\r\n // Helper functions for the readers.\r\n function readerLockException(name) {\r\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\r\n }\r\n // Helper functions for the ReadableStreamDefaultReader.\r\n function defaultReaderClosedPromiseInitialize(reader) {\r\n reader._closedPromise = newPromise(function (resolve, reject) {\r\n reader._closedPromise_resolve = resolve;\r\n reader._closedPromise_reject = reject;\r\n });\r\n }\r\n function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n defaultReaderClosedPromiseReject(reader, reason);\r\n }\r\n function defaultReaderClosedPromiseInitializeAsResolved(reader) {\r\n defaultReaderClosedPromiseInitialize(reader);\r\n defaultReaderClosedPromiseResolve(reader);\r\n }\r\n function defaultReaderClosedPromiseReject(reader, reason) {\r\n setPromiseIsHandledToTrue(reader._closedPromise);\r\n reader._closedPromise_reject(reason);\r\n reader._closedPromise_resolve = undefined;\r\n reader._closedPromise_reject = undefined;\r\n }\r\n function defaultReaderClosedPromiseResetToRejected(reader, reason) {\r\n defaultReaderClosedPromiseInitializeAsRejected(reader, reason);\r\n }\r\n function defaultReaderClosedPromiseResolve(reader) {\r\n reader._closedPromise_resolve(undefined);\r\n reader._closedPromise_resolve = undefined;\r\n reader._closedPromise_reject = undefined;\r\n }\n\n var CancelSteps = SymbolPolyfill('[[CancelSteps]]');\r\n var PullSteps = SymbolPolyfill('[[PullSteps]]');\n\n // Abstract operations for the ReadableStream.\r\n function AcquireReadableStreamDefaultReader(stream, forAuthorCode) {\r\n if (forAuthorCode === void 0) { forAuthorCode = false; }\r\n var reader = new ReadableStreamDefaultReader(stream);\r\n reader._forAuthorCode = forAuthorCode;\r\n return reader;\r\n }\r\n // ReadableStream API exposed for controllers.\r\n function ReadableStreamAddReadRequest(stream) {\r\n var promise = newPromise(function (resolve, reject) {\r\n var readRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._reader._readRequests.push(readRequest);\r\n });\r\n return promise;\r\n }\r\n function ReadableStreamFulfillReadRequest(stream, chunk, done) {\r\n var reader = stream._reader;\r\n var readRequest = reader._readRequests.shift();\r\n readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\r\n }\r\n function ReadableStreamGetNumReadRequests(stream) {\r\n return stream._reader._readRequests.length;\r\n }\r\n function ReadableStreamHasDefaultReader(stream) {\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return false;\r\n }\r\n if (!IsReadableStreamDefaultReader(reader)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var ReadableStreamDefaultReader = /** @class */ (function () {\r\n function ReadableStreamDefaultReader(stream) {\r\n if (IsReadableStream(stream) === false) {\r\n throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\r\n }\r\n if (IsReadableStreamLocked(stream) === true) {\r\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\r\n }\r\n ReadableStreamReaderGenericInitialize(this, stream);\r\n this._readRequests = new SimpleQueue();\r\n }\r\n Object.defineProperty(ReadableStreamDefaultReader.prototype, \"closed\", {\r\n get: function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return promiseRejectedWith(defaultReaderBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamDefaultReader.prototype.cancel = function (reason) {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('cancel'));\r\n }\r\n return ReadableStreamReaderGenericCancel(this, reason);\r\n };\r\n ReadableStreamDefaultReader.prototype.read = function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n return promiseRejectedWith(defaultReaderBrandCheckException('read'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('read from'));\r\n }\r\n return ReadableStreamDefaultReaderRead(this);\r\n };\r\n ReadableStreamDefaultReader.prototype.releaseLock = function () {\r\n if (!IsReadableStreamDefaultReader(this)) {\r\n throw defaultReaderBrandCheckException('releaseLock');\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return;\r\n }\r\n if (this._readRequests.length > 0) {\r\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\r\n }\r\n ReadableStreamReaderGenericRelease(this);\r\n };\r\n return ReadableStreamDefaultReader;\r\n }());\r\n // Abstract operations for the readers.\r\n function IsReadableStreamDefaultReader(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function ReadableStreamDefaultReaderRead(reader) {\r\n var stream = reader._ownerReadableStream;\r\n stream._disturbed = true;\r\n if (stream._state === 'closed') {\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\r\n }\r\n if (stream._state === 'errored') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n return stream._readableStreamController[PullSteps]();\r\n }\r\n // Helper functions for the ReadableStreamDefaultReader.\r\n function defaultReaderBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamDefaultReader.prototype.\" + name + \" can only be used on a ReadableStreamDefaultReader\");\r\n }\n\n /// \r\n var _a;\r\n var AsyncIteratorPrototype;\r\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\r\n // We're running inside a ES2018+ environment, but we're compiling to an older syntax.\r\n // We cannot access %AsyncIteratorPrototype% without non-ES2018 syntax, but we can re-create it.\r\n AsyncIteratorPrototype = (_a = {},\r\n // 25.1.3.1 %AsyncIteratorPrototype% [ @@asyncIterator ] ( )\r\n // https://tc39.github.io/ecma262/#sec-asynciteratorprototype-asynciterator\r\n _a[SymbolPolyfill.asyncIterator] = function () {\r\n return this;\r\n },\r\n _a);\r\n Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });\r\n }\n\n /// \r\n var ReadableStreamAsyncIteratorPrototype = {\r\n next: function () {\r\n if (IsReadableStreamAsyncIterator(this) === false) {\r\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\r\n }\r\n var reader = this._asyncIteratorReader;\r\n if (reader._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('iterate'));\r\n }\r\n return transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\r\n var done = result.done;\r\n if (done) {\r\n ReadableStreamReaderGenericRelease(reader);\r\n }\r\n var value = result.value;\r\n return ReadableStreamCreateReadResult(value, done, true);\r\n });\r\n },\r\n return: function (value) {\r\n if (IsReadableStreamAsyncIterator(this) === false) {\r\n return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));\r\n }\r\n var reader = this._asyncIteratorReader;\r\n if (reader._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('finish iterating'));\r\n }\r\n if (reader._readRequests.length > 0) {\r\n return promiseRejectedWith(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));\r\n }\r\n if (this._preventCancel === false) {\r\n var result = ReadableStreamReaderGenericCancel(reader, value);\r\n ReadableStreamReaderGenericRelease(reader);\r\n return transformPromiseWith(result, function () { return ReadableStreamCreateReadResult(value, true, true); });\r\n }\r\n ReadableStreamReaderGenericRelease(reader);\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(value, true, true));\r\n }\r\n };\r\n if (AsyncIteratorPrototype !== undefined) {\r\n Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);\r\n }\r\n Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });\r\n Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });\r\n // Abstract operations for the ReadableStream.\r\n function AcquireReadableStreamAsyncIterator(stream, preventCancel) {\r\n if (preventCancel === void 0) { preventCancel = false; }\r\n var reader = AcquireReadableStreamDefaultReader(stream);\r\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);\r\n iterator._asyncIteratorReader = reader;\r\n iterator._preventCancel = Boolean(preventCancel);\r\n return iterator;\r\n }\r\n function IsReadableStreamAsyncIterator(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n // Helper functions for the ReadableStream.\r\n function streamAsyncIteratorBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamAsyncIterator.\" + name + \" can only be used on a ReadableSteamAsyncIterator\");\r\n }\n\n function DequeueValue(container) {\r\n var pair = container._queue.shift();\r\n container._queueTotalSize -= pair.size;\r\n if (container._queueTotalSize < 0) {\r\n container._queueTotalSize = 0;\r\n }\r\n return pair.value;\r\n }\r\n function EnqueueValueWithSize(container, value, size) {\r\n size = Number(size);\r\n if (!IsFiniteNonNegativeNumber(size)) {\r\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\r\n }\r\n container._queue.push({ value: value, size: size });\r\n container._queueTotalSize += size;\r\n }\r\n function PeekQueueValue(container) {\r\n var pair = container._queue.peek();\r\n return pair.value;\r\n }\r\n function ResetQueue(container) {\r\n container._queue = new SimpleQueue();\r\n container._queueTotalSize = 0;\r\n }\n\n var AbortSteps = SymbolPolyfill('[[AbortSteps]]');\r\n var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');\r\n var WritableStream = /** @class */ (function () {\r\n function WritableStream(underlyingSink, strategy) {\r\n if (underlyingSink === void 0) { underlyingSink = {}; }\r\n if (strategy === void 0) { strategy = {}; }\r\n InitializeWritableStream(this);\r\n var size = strategy.size;\r\n var highWaterMark = strategy.highWaterMark;\r\n var type = underlyingSink.type;\r\n if (type !== undefined) {\r\n throw new RangeError('Invalid type is specified');\r\n }\r\n var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 1;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);\r\n }\r\n Object.defineProperty(WritableStream.prototype, \"locked\", {\r\n get: function () {\r\n if (IsWritableStream(this) === false) {\r\n throw streamBrandCheckException('locked');\r\n }\r\n return IsWritableStreamLocked(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WritableStream.prototype.abort = function (reason) {\r\n if (IsWritableStream(this) === false) {\r\n return promiseRejectedWith(streamBrandCheckException('abort'));\r\n }\r\n if (IsWritableStreamLocked(this) === true) {\r\n return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));\r\n }\r\n return WritableStreamAbort(this, reason);\r\n };\r\n WritableStream.prototype.close = function () {\r\n if (IsWritableStream(this) === false) {\r\n return promiseRejectedWith(streamBrandCheckException('close'));\r\n }\r\n if (IsWritableStreamLocked(this) === true) {\r\n return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));\r\n }\r\n if (WritableStreamCloseQueuedOrInFlight(this) === true) {\r\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\r\n }\r\n return WritableStreamClose(this);\r\n };\r\n WritableStream.prototype.getWriter = function () {\r\n if (IsWritableStream(this) === false) {\r\n throw streamBrandCheckException('getWriter');\r\n }\r\n return AcquireWritableStreamDefaultWriter(this);\r\n };\r\n return WritableStream;\r\n }());\r\n // Abstract operations for the WritableStream.\r\n function AcquireWritableStreamDefaultWriter(stream) {\r\n return new WritableStreamDefaultWriter(stream);\r\n }\r\n // Throws if and only if startAlgorithm throws.\r\n function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\r\n if (highWaterMark === void 0) { highWaterMark = 1; }\r\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\r\n var stream = Object.create(WritableStream.prototype);\r\n InitializeWritableStream(stream);\r\n var controller = Object.create(WritableStreamDefaultController.prototype);\r\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\r\n return stream;\r\n }\r\n function InitializeWritableStream(stream) {\r\n stream._state = 'writable';\r\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\r\n // 'erroring' or 'errored'. May be set to an undefined value.\r\n stream._storedError = undefined;\r\n stream._writer = undefined;\r\n // Initialize to undefined first because the constructor of the controller checks this\r\n // variable to validate the caller.\r\n stream._writableStreamController = undefined;\r\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\r\n // producer without waiting for the queued writes to finish.\r\n stream._writeRequests = new SimpleQueue();\r\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\r\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\r\n stream._inFlightWriteRequest = undefined;\r\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\r\n // has been detached.\r\n stream._closeRequest = undefined;\r\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\r\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\r\n stream._inFlightCloseRequest = undefined;\r\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\r\n stream._pendingAbortRequest = undefined;\r\n // The backpressure signal set by the controller.\r\n stream._backpressure = false;\r\n }\r\n function IsWritableStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function IsWritableStreamLocked(stream) {\r\n if (stream._writer === undefined) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function WritableStreamAbort(stream, reason) {\r\n var state = stream._state;\r\n if (state === 'closed' || state === 'errored') {\r\n return promiseResolvedWith(undefined);\r\n }\r\n if (stream._pendingAbortRequest !== undefined) {\r\n return stream._pendingAbortRequest._promise;\r\n }\r\n var wasAlreadyErroring = false;\r\n if (state === 'erroring') {\r\n wasAlreadyErroring = true;\r\n // reason will not be used, so don't keep a reference to it.\r\n reason = undefined;\r\n }\r\n var promise = newPromise(function (resolve, reject) {\r\n stream._pendingAbortRequest = {\r\n _promise: undefined,\r\n _resolve: resolve,\r\n _reject: reject,\r\n _reason: reason,\r\n _wasAlreadyErroring: wasAlreadyErroring\r\n };\r\n });\r\n stream._pendingAbortRequest._promise = promise;\r\n if (wasAlreadyErroring === false) {\r\n WritableStreamStartErroring(stream, reason);\r\n }\r\n return promise;\r\n }\r\n function WritableStreamClose(stream) {\r\n var state = stream._state;\r\n if (state === 'closed' || state === 'errored') {\r\n return promiseRejectedWith(new TypeError(\"The stream (in \" + state + \" state) is not in the writable state and cannot be closed\"));\r\n }\r\n var promise = newPromise(function (resolve, reject) {\r\n var closeRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._closeRequest = closeRequest;\r\n });\r\n var writer = stream._writer;\r\n if (writer !== undefined && stream._backpressure === true && state === 'writable') {\r\n defaultWriterReadyPromiseResolve(writer);\r\n }\r\n WritableStreamDefaultControllerClose(stream._writableStreamController);\r\n return promise;\r\n }\r\n // WritableStream API exposed for controllers.\r\n function WritableStreamAddWriteRequest(stream) {\r\n var promise = newPromise(function (resolve, reject) {\r\n var writeRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._writeRequests.push(writeRequest);\r\n });\r\n return promise;\r\n }\r\n function WritableStreamDealWithRejection(stream, error) {\r\n var state = stream._state;\r\n if (state === 'writable') {\r\n WritableStreamStartErroring(stream, error);\r\n return;\r\n }\r\n WritableStreamFinishErroring(stream);\r\n }\r\n function WritableStreamStartErroring(stream, reason) {\r\n var controller = stream._writableStreamController;\r\n stream._state = 'erroring';\r\n stream._storedError = reason;\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\r\n }\r\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\r\n WritableStreamFinishErroring(stream);\r\n }\r\n }\r\n function WritableStreamFinishErroring(stream) {\r\n stream._state = 'errored';\r\n stream._writableStreamController[ErrorSteps]();\r\n var storedError = stream._storedError;\r\n stream._writeRequests.forEach(function (writeRequest) {\r\n writeRequest._reject(storedError);\r\n });\r\n stream._writeRequests = new SimpleQueue();\r\n if (stream._pendingAbortRequest === undefined) {\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n return;\r\n }\r\n var abortRequest = stream._pendingAbortRequest;\r\n stream._pendingAbortRequest = undefined;\r\n if (abortRequest._wasAlreadyErroring === true) {\r\n abortRequest._reject(storedError);\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n return;\r\n }\r\n var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);\r\n uponPromise(promise, function () {\r\n abortRequest._resolve();\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n }, function (reason) {\r\n abortRequest._reject(reason);\r\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\r\n });\r\n }\r\n function WritableStreamFinishInFlightWrite(stream) {\r\n stream._inFlightWriteRequest._resolve(undefined);\r\n stream._inFlightWriteRequest = undefined;\r\n }\r\n function WritableStreamFinishInFlightWriteWithError(stream, error) {\r\n stream._inFlightWriteRequest._reject(error);\r\n stream._inFlightWriteRequest = undefined;\r\n WritableStreamDealWithRejection(stream, error);\r\n }\r\n function WritableStreamFinishInFlightClose(stream) {\r\n stream._inFlightCloseRequest._resolve(undefined);\r\n stream._inFlightCloseRequest = undefined;\r\n var state = stream._state;\r\n if (state === 'erroring') {\r\n // The error was too late to do anything, so it is ignored.\r\n stream._storedError = undefined;\r\n if (stream._pendingAbortRequest !== undefined) {\r\n stream._pendingAbortRequest._resolve();\r\n stream._pendingAbortRequest = undefined;\r\n }\r\n }\r\n stream._state = 'closed';\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n defaultWriterClosedPromiseResolve(writer);\r\n }\r\n }\r\n function WritableStreamFinishInFlightCloseWithError(stream, error) {\r\n stream._inFlightCloseRequest._reject(error);\r\n stream._inFlightCloseRequest = undefined;\r\n // Never execute sink abort() after sink close().\r\n if (stream._pendingAbortRequest !== undefined) {\r\n stream._pendingAbortRequest._reject(error);\r\n stream._pendingAbortRequest = undefined;\r\n }\r\n WritableStreamDealWithRejection(stream, error);\r\n }\r\n // TODO(ricea): Fix alphabetical order.\r\n function WritableStreamCloseQueuedOrInFlight(stream) {\r\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function WritableStreamHasOperationMarkedInFlight(stream) {\r\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function WritableStreamMarkCloseRequestInFlight(stream) {\r\n stream._inFlightCloseRequest = stream._closeRequest;\r\n stream._closeRequest = undefined;\r\n }\r\n function WritableStreamMarkFirstWriteRequestInFlight(stream) {\r\n stream._inFlightWriteRequest = stream._writeRequests.shift();\r\n }\r\n function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\r\n if (stream._closeRequest !== undefined) {\r\n stream._closeRequest._reject(stream._storedError);\r\n stream._closeRequest = undefined;\r\n }\r\n var writer = stream._writer;\r\n if (writer !== undefined) {\r\n defaultWriterClosedPromiseReject(writer, stream._storedError);\r\n }\r\n }\r\n function WritableStreamUpdateBackpressure(stream, backpressure) {\r\n var writer = stream._writer;\r\n if (writer !== undefined && backpressure !== stream._backpressure) {\r\n if (backpressure === true) {\r\n defaultWriterReadyPromiseReset(writer);\r\n }\r\n else {\r\n defaultWriterReadyPromiseResolve(writer);\r\n }\r\n }\r\n stream._backpressure = backpressure;\r\n }\r\n var WritableStreamDefaultWriter = /** @class */ (function () {\r\n function WritableStreamDefaultWriter(stream) {\r\n if (IsWritableStream(stream) === false) {\r\n throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\r\n }\r\n if (IsWritableStreamLocked(stream) === true) {\r\n throw new TypeError('This stream has already been locked for exclusive writing by another writer');\r\n }\r\n this._ownerWritableStream = stream;\r\n stream._writer = this;\r\n var state = stream._state;\r\n if (state === 'writable') {\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\r\n defaultWriterReadyPromiseInitialize(this);\r\n }\r\n else {\r\n defaultWriterReadyPromiseInitializeAsResolved(this);\r\n }\r\n defaultWriterClosedPromiseInitialize(this);\r\n }\r\n else if (state === 'erroring') {\r\n defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\r\n defaultWriterClosedPromiseInitialize(this);\r\n }\r\n else if (state === 'closed') {\r\n defaultWriterReadyPromiseInitializeAsResolved(this);\r\n defaultWriterClosedPromiseInitializeAsResolved(this);\r\n }\r\n else {\r\n var storedError = stream._storedError;\r\n defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\r\n defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\r\n }\r\n }\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"closed\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return promiseRejectedWith(defaultWriterBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n throw defaultWriterBrandCheckException('desiredSize');\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n throw defaultWriterLockException('desiredSize');\r\n }\r\n return WritableStreamDefaultWriterGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(WritableStreamDefaultWriter.prototype, \"ready\", {\r\n get: function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return promiseRejectedWith(defaultWriterBrandCheckException('ready'));\r\n }\r\n return this._readyPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n WritableStreamDefaultWriter.prototype.abort = function (reason) {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return promiseRejectedWith(defaultWriterBrandCheckException('abort'));\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n return promiseRejectedWith(defaultWriterLockException('abort'));\r\n }\r\n return WritableStreamDefaultWriterAbort(this, reason);\r\n };\r\n WritableStreamDefaultWriter.prototype.close = function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return promiseRejectedWith(defaultWriterBrandCheckException('close'));\r\n }\r\n var stream = this._ownerWritableStream;\r\n if (stream === undefined) {\r\n return promiseRejectedWith(defaultWriterLockException('close'));\r\n }\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\r\n return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));\r\n }\r\n return WritableStreamDefaultWriterClose(this);\r\n };\r\n WritableStreamDefaultWriter.prototype.releaseLock = function () {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n throw defaultWriterBrandCheckException('releaseLock');\r\n }\r\n var stream = this._ownerWritableStream;\r\n if (stream === undefined) {\r\n return;\r\n }\r\n WritableStreamDefaultWriterRelease(this);\r\n };\r\n WritableStreamDefaultWriter.prototype.write = function (chunk) {\r\n if (IsWritableStreamDefaultWriter(this) === false) {\r\n return promiseRejectedWith(defaultWriterBrandCheckException('write'));\r\n }\r\n if (this._ownerWritableStream === undefined) {\r\n return promiseRejectedWith(defaultWriterLockException('write to'));\r\n }\r\n return WritableStreamDefaultWriterWrite(this, chunk);\r\n };\r\n return WritableStreamDefaultWriter;\r\n }());\r\n // Abstract operations for the WritableStreamDefaultWriter.\r\n function IsWritableStreamDefaultWriter(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\r\n function WritableStreamDefaultWriterAbort(writer, reason) {\r\n var stream = writer._ownerWritableStream;\r\n return WritableStreamAbort(stream, reason);\r\n }\r\n function WritableStreamDefaultWriterClose(writer) {\r\n var stream = writer._ownerWritableStream;\r\n return WritableStreamClose(stream);\r\n }\r\n function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var state = stream._state;\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\r\n return promiseResolvedWith(undefined);\r\n }\r\n if (state === 'errored') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n return WritableStreamDefaultWriterClose(writer);\r\n }\r\n function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\r\n if (writer._closedPromiseState === 'pending') {\r\n defaultWriterClosedPromiseReject(writer, error);\r\n }\r\n else {\r\n defaultWriterClosedPromiseResetToRejected(writer, error);\r\n }\r\n }\r\n function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\r\n if (writer._readyPromiseState === 'pending') {\r\n defaultWriterReadyPromiseReject(writer, error);\r\n }\r\n else {\r\n defaultWriterReadyPromiseResetToRejected(writer, error);\r\n }\r\n }\r\n function WritableStreamDefaultWriterGetDesiredSize(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var state = stream._state;\r\n if (state === 'errored' || state === 'erroring') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\r\n }\r\n function WritableStreamDefaultWriterRelease(writer) {\r\n var stream = writer._ownerWritableStream;\r\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\r\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\r\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\r\n // rejected until afterwards. This means that simply testing state will not work.\r\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\r\n stream._writer = undefined;\r\n writer._ownerWritableStream = undefined;\r\n }\r\n function WritableStreamDefaultWriterWrite(writer, chunk) {\r\n var stream = writer._ownerWritableStream;\r\n var controller = stream._writableStreamController;\r\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\r\n if (stream !== writer._ownerWritableStream) {\r\n return promiseRejectedWith(defaultWriterLockException('write to'));\r\n }\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\r\n return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));\r\n }\r\n if (state === 'erroring') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n var promise = WritableStreamAddWriteRequest(stream);\r\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\r\n return promise;\r\n }\r\n var WritableStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function WritableStreamDefaultController() {\r\n throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');\r\n }\r\n WritableStreamDefaultController.prototype.error = function (e) {\r\n if (IsWritableStreamDefaultController(this) === false) {\r\n throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\r\n }\r\n var state = this._controlledWritableStream._state;\r\n if (state !== 'writable') {\r\n // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\r\n // just treat it as a no-op.\r\n return;\r\n }\r\n WritableStreamDefaultControllerError(this, e);\r\n };\r\n /** @internal */\r\n WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {\r\n var result = this._abortAlgorithm(reason);\r\n WritableStreamDefaultControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n WritableStreamDefaultController.prototype[ErrorSteps] = function () {\r\n ResetQueue(this);\r\n };\r\n return WritableStreamDefaultController;\r\n }());\r\n // Abstract operations implementing interface required by the WritableStream.\r\n function IsWritableStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {\r\n controller._controlledWritableStream = stream;\r\n stream._writableStreamController = controller;\r\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\r\n controller._queue = undefined;\r\n controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._started = false;\r\n controller._strategySizeAlgorithm = sizeAlgorithm;\r\n controller._strategyHWM = highWaterMark;\r\n controller._writeAlgorithm = writeAlgorithm;\r\n controller._closeAlgorithm = closeAlgorithm;\r\n controller._abortAlgorithm = abortAlgorithm;\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n var startResult = startAlgorithm();\r\n var startPromise = promiseResolvedWith(startResult);\r\n uponPromise(startPromise, function () {\r\n controller._started = true;\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }, function (r) {\r\n controller._started = true;\r\n WritableStreamDealWithRejection(stream, r);\r\n });\r\n }\r\n function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {\r\n var controller = Object.create(WritableStreamDefaultController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingSink, 'start', [controller]);\r\n }\r\n var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);\r\n var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);\r\n var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);\r\n SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);\r\n }\r\n // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls.\r\n function WritableStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._writeAlgorithm = undefined;\r\n controller._closeAlgorithm = undefined;\r\n controller._abortAlgorithm = undefined;\r\n controller._strategySizeAlgorithm = undefined;\r\n }\r\n function WritableStreamDefaultControllerClose(controller) {\r\n EnqueueValueWithSize(controller, 'close', 0);\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }\r\n function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\r\n try {\r\n return controller._strategySizeAlgorithm(chunk);\r\n }\r\n catch (chunkSizeE) {\r\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\r\n return 1;\r\n }\r\n }\r\n function WritableStreamDefaultControllerGetDesiredSize(controller) {\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n }\r\n function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\r\n var writeRecord = { chunk: chunk };\r\n try {\r\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\r\n }\r\n catch (enqueueE) {\r\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\r\n return;\r\n }\r\n var stream = controller._controlledWritableStream;\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n }\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }\r\n // Abstract operations for the WritableStreamDefaultController.\r\n function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\r\n var stream = controller._controlledWritableStream;\r\n if (controller._started === false) {\r\n return;\r\n }\r\n if (stream._inFlightWriteRequest !== undefined) {\r\n return;\r\n }\r\n var state = stream._state;\r\n if (state === 'erroring') {\r\n WritableStreamFinishErroring(stream);\r\n return;\r\n }\r\n if (controller._queue.length === 0) {\r\n return;\r\n }\r\n var writeRecord = PeekQueueValue(controller);\r\n if (writeRecord === 'close') {\r\n WritableStreamDefaultControllerProcessClose(controller);\r\n }\r\n else {\r\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\r\n }\r\n }\r\n function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\r\n if (controller._controlledWritableStream._state === 'writable') {\r\n WritableStreamDefaultControllerError(controller, error);\r\n }\r\n }\r\n function WritableStreamDefaultControllerProcessClose(controller) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamMarkCloseRequestInFlight(stream);\r\n DequeueValue(controller);\r\n var sinkClosePromise = controller._closeAlgorithm();\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n uponPromise(sinkClosePromise, function () {\r\n WritableStreamFinishInFlightClose(stream);\r\n }, function (reason) {\r\n WritableStreamFinishInFlightCloseWithError(stream, reason);\r\n });\r\n }\r\n function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamMarkFirstWriteRequestInFlight(stream);\r\n var sinkWritePromise = controller._writeAlgorithm(chunk);\r\n uponPromise(sinkWritePromise, function () {\r\n WritableStreamFinishInFlightWrite(stream);\r\n var state = stream._state;\r\n DequeueValue(controller);\r\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\r\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\r\n WritableStreamUpdateBackpressure(stream, backpressure);\r\n }\r\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\r\n }, function (reason) {\r\n if (stream._state === 'writable') {\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n }\r\n WritableStreamFinishInFlightWriteWithError(stream, reason);\r\n });\r\n }\r\n function WritableStreamDefaultControllerGetBackpressure(controller) {\r\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\r\n return desiredSize <= 0;\r\n }\r\n // A client of WritableStreamDefaultController may use these functions directly to bypass state check.\r\n function WritableStreamDefaultControllerError(controller, error) {\r\n var stream = controller._controlledWritableStream;\r\n WritableStreamDefaultControllerClearAlgorithms(controller);\r\n WritableStreamStartErroring(stream, error);\r\n }\r\n // Helper functions for the WritableStream.\r\n function streamBrandCheckException(name) {\r\n return new TypeError(\"WritableStream.prototype.\" + name + \" can only be used on a WritableStream\");\r\n }\r\n // Helper functions for the WritableStreamDefaultWriter.\r\n function defaultWriterBrandCheckException(name) {\r\n return new TypeError(\"WritableStreamDefaultWriter.prototype.\" + name + \" can only be used on a WritableStreamDefaultWriter\");\r\n }\r\n function defaultWriterLockException(name) {\r\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\r\n }\r\n function defaultWriterClosedPromiseInitialize(writer) {\r\n writer._closedPromise = newPromise(function (resolve, reject) {\r\n writer._closedPromise_resolve = resolve;\r\n writer._closedPromise_reject = reject;\r\n writer._closedPromiseState = 'pending';\r\n });\r\n }\r\n function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\r\n defaultWriterClosedPromiseInitialize(writer);\r\n defaultWriterClosedPromiseReject(writer, reason);\r\n }\r\n function defaultWriterClosedPromiseInitializeAsResolved(writer) {\r\n defaultWriterClosedPromiseInitialize(writer);\r\n defaultWriterClosedPromiseResolve(writer);\r\n }\r\n function defaultWriterClosedPromiseReject(writer, reason) {\r\n setPromiseIsHandledToTrue(writer._closedPromise);\r\n writer._closedPromise_reject(reason);\r\n writer._closedPromise_resolve = undefined;\r\n writer._closedPromise_reject = undefined;\r\n writer._closedPromiseState = 'rejected';\r\n }\r\n function defaultWriterClosedPromiseResetToRejected(writer, reason) {\r\n defaultWriterClosedPromiseInitializeAsRejected(writer, reason);\r\n }\r\n function defaultWriterClosedPromiseResolve(writer) {\r\n writer._closedPromise_resolve(undefined);\r\n writer._closedPromise_resolve = undefined;\r\n writer._closedPromise_reject = undefined;\r\n writer._closedPromiseState = 'resolved';\r\n }\r\n function defaultWriterReadyPromiseInitialize(writer) {\r\n writer._readyPromise = newPromise(function (resolve, reject) {\r\n writer._readyPromise_resolve = resolve;\r\n writer._readyPromise_reject = reject;\r\n });\r\n writer._readyPromiseState = 'pending';\r\n }\r\n function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n defaultWriterReadyPromiseReject(writer, reason);\r\n }\r\n function defaultWriterReadyPromiseInitializeAsResolved(writer) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n defaultWriterReadyPromiseResolve(writer);\r\n }\r\n function defaultWriterReadyPromiseReject(writer, reason) {\r\n setPromiseIsHandledToTrue(writer._readyPromise);\r\n writer._readyPromise_reject(reason);\r\n writer._readyPromise_resolve = undefined;\r\n writer._readyPromise_reject = undefined;\r\n writer._readyPromiseState = 'rejected';\r\n }\r\n function defaultWriterReadyPromiseReset(writer) {\r\n defaultWriterReadyPromiseInitialize(writer);\r\n }\r\n function defaultWriterReadyPromiseResetToRejected(writer, reason) {\r\n defaultWriterReadyPromiseInitializeAsRejected(writer, reason);\r\n }\r\n function defaultWriterReadyPromiseResolve(writer) {\r\n writer._readyPromise_resolve(undefined);\r\n writer._readyPromise_resolve = undefined;\r\n writer._readyPromise_reject = undefined;\r\n writer._readyPromiseState = 'fulfilled';\r\n }\n\n function isAbortSignal(value) {\r\n if (typeof value !== 'object' || value === null) {\r\n return false;\r\n }\r\n try {\r\n return typeof value.aborted === 'boolean';\r\n }\r\n catch (_a) {\r\n // AbortSignal.prototype.aborted throws if its brand check fails\r\n return false;\r\n }\r\n }\n\n /// \r\n var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;\n\n /// \r\n function isDOMExceptionConstructor(ctor) {\r\n if (!(typeof ctor === 'function' || typeof ctor === 'object')) {\r\n return false;\r\n }\r\n try {\r\n new ctor();\r\n return true;\r\n }\r\n catch (_a) {\r\n return false;\r\n }\r\n }\r\n function createDOMExceptionPolyfill() {\r\n var ctor = function DOMException(message, name) {\r\n this.message = message || '';\r\n this.name = name || 'Error';\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, this.constructor);\r\n }\r\n };\r\n ctor.prototype = Object.create(Error.prototype);\r\n Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true });\r\n return ctor;\r\n }\r\n var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();\n\n function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {\r\n var reader = AcquireReadableStreamDefaultReader(source);\r\n var writer = AcquireWritableStreamDefaultWriter(dest);\r\n source._disturbed = true;\r\n var shuttingDown = false;\r\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\r\n var currentWrite = promiseResolvedWith(undefined);\r\n return newPromise(function (resolve, reject) {\r\n var abortAlgorithm;\r\n if (signal !== undefined) {\r\n abortAlgorithm = function () {\r\n var error = new DOMException$1('Aborted', 'AbortError');\r\n var actions = [];\r\n if (preventAbort === false) {\r\n actions.push(function () {\r\n if (dest._state === 'writable') {\r\n return WritableStreamAbort(dest, error);\r\n }\r\n return promiseResolvedWith(undefined);\r\n });\r\n }\r\n if (preventCancel === false) {\r\n actions.push(function () {\r\n if (source._state === 'readable') {\r\n return ReadableStreamCancel(source, error);\r\n }\r\n return promiseResolvedWith(undefined);\r\n });\r\n }\r\n shutdownWithAction(function () { return Promise.all(actions.map(function (action) { return action(); })); }, true, error);\r\n };\r\n if (signal.aborted === true) {\r\n abortAlgorithm();\r\n return;\r\n }\r\n signal.addEventListener('abort', abortAlgorithm);\r\n }\r\n // Using reader and writer, read all chunks from this and write them to dest\r\n // - Backpressure must be enforced\r\n // - Shutdown must stop all activity\r\n function pipeLoop() {\r\n return newPromise(function (resolveLoop, rejectLoop) {\r\n function next(done) {\r\n if (done) {\r\n resolveLoop();\r\n }\r\n else {\r\n // Use `PerformPromiseThen` instead of `uponPromise` to avoid\r\n // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers\r\n PerformPromiseThen(pipeStep(), next, rejectLoop);\r\n }\r\n }\r\n next(false);\r\n });\r\n }\r\n function pipeStep() {\r\n if (shuttingDown === true) {\r\n return promiseResolvedWith(true);\r\n }\r\n return PerformPromiseThen(writer._readyPromise, function () {\r\n return PerformPromiseThen(ReadableStreamDefaultReaderRead(reader), function (_a) {\r\n var value = _a.value, done = _a.done;\r\n if (done === true) {\r\n return true;\r\n }\r\n currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, value), undefined, noop);\r\n return false;\r\n });\r\n });\r\n }\r\n // Errors must be propagated forward\r\n isOrBecomesErrored(source, reader._closedPromise, function (storedError) {\r\n if (preventAbort === false) {\r\n shutdownWithAction(function () { return WritableStreamAbort(dest, storedError); }, true, storedError);\r\n }\r\n else {\r\n shutdown(true, storedError);\r\n }\r\n });\r\n // Errors must be propagated backward\r\n isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\r\n if (preventCancel === false) {\r\n shutdownWithAction(function () { return ReadableStreamCancel(source, storedError); }, true, storedError);\r\n }\r\n else {\r\n shutdown(true, storedError);\r\n }\r\n });\r\n // Closing must be propagated forward\r\n isOrBecomesClosed(source, reader._closedPromise, function () {\r\n if (preventClose === false) {\r\n shutdownWithAction(function () { return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); });\r\n }\r\n else {\r\n shutdown();\r\n }\r\n });\r\n // Closing must be propagated backward\r\n if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\r\n var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');\r\n if (preventCancel === false) {\r\n shutdownWithAction(function () { return ReadableStreamCancel(source, destClosed_1); }, true, destClosed_1);\r\n }\r\n else {\r\n shutdown(true, destClosed_1);\r\n }\r\n }\r\n setPromiseIsHandledToTrue(pipeLoop());\r\n function waitForWritesToFinish() {\r\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\r\n // for that too.\r\n var oldCurrentWrite = currentWrite;\r\n return PerformPromiseThen(currentWrite, function () { return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; });\r\n }\r\n function isOrBecomesErrored(stream, promise, action) {\r\n if (stream._state === 'errored') {\r\n action(stream._storedError);\r\n }\r\n else {\r\n uponRejection(promise, action);\r\n }\r\n }\r\n function isOrBecomesClosed(stream, promise, action) {\r\n if (stream._state === 'closed') {\r\n action();\r\n }\r\n else {\r\n uponFulfillment(promise, action);\r\n }\r\n }\r\n function shutdownWithAction(action, originalIsError, originalError) {\r\n if (shuttingDown === true) {\r\n return;\r\n }\r\n shuttingDown = true;\r\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\r\n uponFulfillment(waitForWritesToFinish(), doTheRest);\r\n }\r\n else {\r\n doTheRest();\r\n }\r\n function doTheRest() {\r\n uponPromise(action(), function () { return finalize(originalIsError, originalError); }, function (newError) { return finalize(true, newError); });\r\n }\r\n }\r\n function shutdown(isError, error) {\r\n if (shuttingDown === true) {\r\n return;\r\n }\r\n shuttingDown = true;\r\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\r\n uponFulfillment(waitForWritesToFinish(), function () { return finalize(isError, error); });\r\n }\r\n else {\r\n finalize(isError, error);\r\n }\r\n }\r\n function finalize(isError, error) {\r\n WritableStreamDefaultWriterRelease(writer);\r\n ReadableStreamReaderGenericRelease(reader);\r\n if (signal !== undefined) {\r\n signal.removeEventListener('abort', abortAlgorithm);\r\n }\r\n if (isError) {\r\n reject(error);\r\n }\r\n else {\r\n resolve(undefined);\r\n }\r\n }\r\n });\r\n }\n\n var ReadableStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableStreamDefaultController() {\r\n throw new TypeError();\r\n }\r\n Object.defineProperty(ReadableStreamDefaultController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('desiredSize');\r\n }\r\n return ReadableStreamDefaultControllerGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamDefaultController.prototype.close = function () {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('close');\r\n }\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\r\n throw new TypeError('The stream is not in a state that permits close');\r\n }\r\n ReadableStreamDefaultControllerClose(this);\r\n };\r\n ReadableStreamDefaultController.prototype.enqueue = function (chunk) {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('enqueue');\r\n }\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {\r\n throw new TypeError('The stream is not in a state that permits enqueue');\r\n }\r\n return ReadableStreamDefaultControllerEnqueue(this, chunk);\r\n };\r\n ReadableStreamDefaultController.prototype.error = function (e) {\r\n if (IsReadableStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException('error');\r\n }\r\n ReadableStreamDefaultControllerError(this, e);\r\n };\r\n /** @internal */\r\n ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {\r\n ResetQueue(this);\r\n var result = this._cancelAlgorithm(reason);\r\n ReadableStreamDefaultControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n ReadableStreamDefaultController.prototype[PullSteps] = function () {\r\n var stream = this._controlledReadableStream;\r\n if (this._queue.length > 0) {\r\n var chunk = DequeueValue(this);\r\n if (this._closeRequested === true && this._queue.length === 0) {\r\n ReadableStreamDefaultControllerClearAlgorithms(this);\r\n ReadableStreamClose(stream);\r\n }\r\n else {\r\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\r\n }\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));\r\n }\r\n var pendingPromise = ReadableStreamAddReadRequest(stream);\r\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\r\n return pendingPromise;\r\n };\r\n return ReadableStreamDefaultController;\r\n }());\r\n // Abstract operations for the ReadableStreamDefaultController.\r\n function IsReadableStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\r\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\r\n if (shouldPull === false) {\r\n return;\r\n }\r\n if (controller._pulling === true) {\r\n controller._pullAgain = true;\r\n return;\r\n }\r\n controller._pulling = true;\r\n var pullPromise = controller._pullAlgorithm();\r\n uponPromise(pullPromise, function () {\r\n controller._pulling = false;\r\n if (controller._pullAgain === true) {\r\n controller._pullAgain = false;\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n }\r\n }, function (e) {\r\n ReadableStreamDefaultControllerError(controller, e);\r\n });\r\n }\r\n function ReadableStreamDefaultControllerShouldCallPull(controller) {\r\n var stream = controller._controlledReadableStream;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {\r\n return false;\r\n }\r\n if (controller._started === false) {\r\n return false;\r\n }\r\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n return true;\r\n }\r\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\r\n if (desiredSize > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function ReadableStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._pullAlgorithm = undefined;\r\n controller._cancelAlgorithm = undefined;\r\n controller._strategySizeAlgorithm = undefined;\r\n }\r\n // A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\r\n function ReadableStreamDefaultControllerClose(controller) {\r\n var stream = controller._controlledReadableStream;\r\n controller._closeRequested = true;\r\n if (controller._queue.length === 0) {\r\n ReadableStreamDefaultControllerClearAlgorithms(controller);\r\n ReadableStreamClose(stream);\r\n }\r\n }\r\n function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledReadableStream;\r\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n ReadableStreamFulfillReadRequest(stream, chunk, false);\r\n }\r\n else {\r\n var chunkSize = void 0;\r\n try {\r\n chunkSize = controller._strategySizeAlgorithm(chunk);\r\n }\r\n catch (chunkSizeE) {\r\n ReadableStreamDefaultControllerError(controller, chunkSizeE);\r\n throw chunkSizeE;\r\n }\r\n try {\r\n EnqueueValueWithSize(controller, chunk, chunkSize);\r\n }\r\n catch (enqueueE) {\r\n ReadableStreamDefaultControllerError(controller, enqueueE);\r\n throw enqueueE;\r\n }\r\n }\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n }\r\n function ReadableStreamDefaultControllerError(controller, e) {\r\n var stream = controller._controlledReadableStream;\r\n if (stream._state !== 'readable') {\r\n return;\r\n }\r\n ResetQueue(controller);\r\n ReadableStreamDefaultControllerClearAlgorithms(controller);\r\n ReadableStreamError(stream, e);\r\n }\r\n function ReadableStreamDefaultControllerGetDesiredSize(controller) {\r\n var stream = controller._controlledReadableStream;\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n }\r\n // This is used in the implementation of TransformStream.\r\n function ReadableStreamDefaultControllerHasBackpressure(controller) {\r\n if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {\r\n var state = controller._controlledReadableStream._state;\r\n if (controller._closeRequested === false && state === 'readable') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\r\n controller._controlledReadableStream = stream;\r\n controller._queue = undefined;\r\n controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._started = false;\r\n controller._closeRequested = false;\r\n controller._pullAgain = false;\r\n controller._pulling = false;\r\n controller._strategySizeAlgorithm = sizeAlgorithm;\r\n controller._strategyHWM = highWaterMark;\r\n controller._pullAlgorithm = pullAlgorithm;\r\n controller._cancelAlgorithm = cancelAlgorithm;\r\n stream._readableStreamController = controller;\r\n var startResult = startAlgorithm();\r\n uponPromise(promiseResolvedWith(startResult), function () {\r\n controller._started = true;\r\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\r\n }, function (r) {\r\n ReadableStreamDefaultControllerError(controller, r);\r\n });\r\n }\r\n function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {\r\n var controller = Object.create(ReadableStreamDefaultController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingSource, 'start', [controller]);\r\n }\r\n var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);\r\n var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);\r\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\r\n }\r\n // Helper functions for the ReadableStreamDefaultController.\r\n function defaultControllerBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamDefaultController.prototype.\" + name + \" can only be used on a ReadableStreamDefaultController\");\r\n }\n\n function ReadableStreamTee(stream, cloneForBranch2) {\r\n var reader = AcquireReadableStreamDefaultReader(stream);\r\n var reading = false;\r\n var canceled1 = false;\r\n var canceled2 = false;\r\n var reason1;\r\n var reason2;\r\n var branch1;\r\n var branch2;\r\n var resolveCancelPromise;\r\n var cancelPromise = newPromise(function (resolve) {\r\n resolveCancelPromise = resolve;\r\n });\r\n function pullAlgorithm() {\r\n if (reading === true) {\r\n return promiseResolvedWith(undefined);\r\n }\r\n reading = true;\r\n var readPromise = transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {\r\n reading = false;\r\n var done = result.done;\r\n if (done === true) {\r\n if (canceled1 === false) {\r\n ReadableStreamDefaultControllerClose(branch1._readableStreamController);\r\n }\r\n if (canceled2 === false) {\r\n ReadableStreamDefaultControllerClose(branch2._readableStreamController);\r\n }\r\n return;\r\n }\r\n var value = result.value;\r\n var value1 = value;\r\n var value2 = value;\r\n // There is no way to access the cloning code right now in the reference implementation.\r\n // If we add one then we'll need an implementation for serializable objects.\r\n // if (canceled2 === false && cloneForBranch2 === true) {\r\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\r\n // }\r\n if (canceled1 === false) {\r\n ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);\r\n }\r\n if (canceled2 === false) {\r\n ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);\r\n }\r\n });\r\n setPromiseIsHandledToTrue(readPromise);\r\n return promiseResolvedWith(undefined);\r\n }\r\n function cancel1Algorithm(reason) {\r\n canceled1 = true;\r\n reason1 = reason;\r\n if (canceled2 === true) {\r\n var compositeReason = createArrayFromList([reason1, reason2]);\r\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\r\n resolveCancelPromise(cancelResult);\r\n }\r\n return cancelPromise;\r\n }\r\n function cancel2Algorithm(reason) {\r\n canceled2 = true;\r\n reason2 = reason;\r\n if (canceled1 === true) {\r\n var compositeReason = createArrayFromList([reason1, reason2]);\r\n var cancelResult = ReadableStreamCancel(stream, compositeReason);\r\n resolveCancelPromise(cancelResult);\r\n }\r\n return cancelPromise;\r\n }\r\n function startAlgorithm() { }\r\n branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);\r\n branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);\r\n uponRejection(reader._closedPromise, function (r) {\r\n ReadableStreamDefaultControllerError(branch1._readableStreamController, r);\r\n ReadableStreamDefaultControllerError(branch2._readableStreamController, r);\r\n });\r\n return [branch1, branch2];\r\n }\n\n /// \r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger#Polyfill\r\n var NumberIsInteger = Number.isInteger || function (value) {\r\n return typeof value === 'number' &&\r\n isFinite(value) &&\r\n Math.floor(value) === value;\r\n };\n\n var ReadableStreamBYOBRequest = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableStreamBYOBRequest() {\r\n throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');\r\n }\r\n Object.defineProperty(ReadableStreamBYOBRequest.prototype, \"view\", {\r\n get: function () {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('view');\r\n }\r\n return this._view;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('respond');\r\n }\r\n if (this._associatedReadableByteStreamController === undefined) {\r\n throw new TypeError('This BYOB request has been invalidated');\r\n }\r\n if (IsDetachedBuffer(this._view.buffer) === true) ;\r\n ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\r\n };\r\n ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {\r\n if (IsReadableStreamBYOBRequest(this) === false) {\r\n throw byobRequestBrandCheckException('respond');\r\n }\r\n if (this._associatedReadableByteStreamController === undefined) {\r\n throw new TypeError('This BYOB request has been invalidated');\r\n }\r\n if (!ArrayBuffer.isView(view)) {\r\n throw new TypeError('You can only respond with array buffer views');\r\n }\r\n if (IsDetachedBuffer(view.buffer) === true) ;\r\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\r\n };\r\n return ReadableStreamBYOBRequest;\r\n }());\r\n var ReadableByteStreamController = /** @class */ (function () {\r\n /** @internal */\r\n function ReadableByteStreamController() {\r\n throw new TypeError('ReadableByteStreamController constructor cannot be used directly');\r\n }\r\n Object.defineProperty(ReadableByteStreamController.prototype, \"byobRequest\", {\r\n get: function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('byobRequest');\r\n }\r\n if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\r\n var firstDescriptor = this._pendingPullIntos.peek();\r\n var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\r\n var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);\r\n SetUpReadableStreamBYOBRequest(byobRequest, this, view);\r\n this._byobRequest = byobRequest;\r\n }\r\n return this._byobRequest;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(ReadableByteStreamController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('desiredSize');\r\n }\r\n return ReadableByteStreamControllerGetDesiredSize(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableByteStreamController.prototype.close = function () {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('close');\r\n }\r\n if (this._closeRequested === true) {\r\n throw new TypeError('The stream has already been closed; do not close it again!');\r\n }\r\n var state = this._controlledReadableByteStream._state;\r\n if (state !== 'readable') {\r\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be closed\");\r\n }\r\n ReadableByteStreamControllerClose(this);\r\n };\r\n ReadableByteStreamController.prototype.enqueue = function (chunk) {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('enqueue');\r\n }\r\n if (this._closeRequested === true) {\r\n throw new TypeError('stream is closed or draining');\r\n }\r\n var state = this._controlledReadableByteStream._state;\r\n if (state !== 'readable') {\r\n throw new TypeError(\"The stream (in \" + state + \" state) is not in the readable state and cannot be enqueued to\");\r\n }\r\n if (!ArrayBuffer.isView(chunk)) {\r\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\r\n }\r\n if (IsDetachedBuffer(chunk.buffer) === true) ;\r\n ReadableByteStreamControllerEnqueue(this, chunk);\r\n };\r\n ReadableByteStreamController.prototype.error = function (e) {\r\n if (IsReadableByteStreamController(this) === false) {\r\n throw byteStreamControllerBrandCheckException('error');\r\n }\r\n ReadableByteStreamControllerError(this, e);\r\n };\r\n /** @internal */\r\n ReadableByteStreamController.prototype[CancelSteps] = function (reason) {\r\n if (this._pendingPullIntos.length > 0) {\r\n var firstDescriptor = this._pendingPullIntos.peek();\r\n firstDescriptor.bytesFilled = 0;\r\n }\r\n ResetQueue(this);\r\n var result = this._cancelAlgorithm(reason);\r\n ReadableByteStreamControllerClearAlgorithms(this);\r\n return result;\r\n };\r\n /** @internal */\r\n ReadableByteStreamController.prototype[PullSteps] = function () {\r\n var stream = this._controlledReadableByteStream;\r\n if (this._queueTotalSize > 0) {\r\n var entry = this._queue.shift();\r\n this._queueTotalSize -= entry.byteLength;\r\n ReadableByteStreamControllerHandleQueueDrain(this);\r\n var view = void 0;\r\n try {\r\n view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\r\n }\r\n catch (viewE) {\r\n return promiseRejectedWith(viewE);\r\n }\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));\r\n }\r\n var autoAllocateChunkSize = this._autoAllocateChunkSize;\r\n if (autoAllocateChunkSize !== undefined) {\r\n var buffer = void 0;\r\n try {\r\n buffer = new ArrayBuffer(autoAllocateChunkSize);\r\n }\r\n catch (bufferE) {\r\n return promiseRejectedWith(bufferE);\r\n }\r\n var pullIntoDescriptor = {\r\n buffer: buffer,\r\n byteOffset: 0,\r\n byteLength: autoAllocateChunkSize,\r\n bytesFilled: 0,\r\n elementSize: 1,\r\n ctor: Uint8Array,\r\n readerType: 'default'\r\n };\r\n this._pendingPullIntos.push(pullIntoDescriptor);\r\n }\r\n var promise = ReadableStreamAddReadRequest(stream);\r\n ReadableByteStreamControllerCallPullIfNeeded(this);\r\n return promise;\r\n };\r\n return ReadableByteStreamController;\r\n }());\r\n // Abstract operations for the ReadableByteStreamController.\r\n function IsReadableByteStreamController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function IsReadableStreamBYOBRequest(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function ReadableByteStreamControllerCallPullIfNeeded(controller) {\r\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\r\n if (shouldPull === false) {\r\n return;\r\n }\r\n if (controller._pulling === true) {\r\n controller._pullAgain = true;\r\n return;\r\n }\r\n controller._pulling = true;\r\n // TODO: Test controller argument\r\n var pullPromise = controller._pullAlgorithm();\r\n uponPromise(pullPromise, function () {\r\n controller._pulling = false;\r\n if (controller._pullAgain === true) {\r\n controller._pullAgain = false;\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n }, function (e) {\r\n ReadableByteStreamControllerError(controller, e);\r\n });\r\n }\r\n function ReadableByteStreamControllerClearPendingPullIntos(controller) {\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n controller._pendingPullIntos = new SimpleQueue();\r\n }\r\n function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\r\n var done = false;\r\n if (stream._state === 'closed') {\r\n done = true;\r\n }\r\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\r\n if (pullIntoDescriptor.readerType === 'default') {\r\n ReadableStreamFulfillReadRequest(stream, filledView, done);\r\n }\r\n else {\r\n ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\r\n }\r\n }\r\n function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\r\n var bytesFilled = pullIntoDescriptor.bytesFilled;\r\n var elementSize = pullIntoDescriptor.elementSize;\r\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\r\n }\r\n function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\r\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\r\n controller._queueTotalSize += byteLength;\r\n }\r\n function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\r\n var elementSize = pullIntoDescriptor.elementSize;\r\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\r\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\r\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\r\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\r\n var totalBytesToCopyRemaining = maxBytesToCopy;\r\n var ready = false;\r\n if (maxAlignedBytes > currentAlignedBytes) {\r\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\r\n ready = true;\r\n }\r\n var queue = controller._queue;\r\n while (totalBytesToCopyRemaining > 0) {\r\n var headOfQueue = queue.peek();\r\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\r\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\r\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\r\n if (headOfQueue.byteLength === bytesToCopy) {\r\n queue.shift();\r\n }\r\n else {\r\n headOfQueue.byteOffset += bytesToCopy;\r\n headOfQueue.byteLength -= bytesToCopy;\r\n }\r\n controller._queueTotalSize -= bytesToCopy;\r\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\r\n totalBytesToCopyRemaining -= bytesToCopy;\r\n }\r\n return ready;\r\n }\r\n function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n pullIntoDescriptor.bytesFilled += size;\r\n }\r\n function ReadableByteStreamControllerHandleQueueDrain(controller) {\r\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamClose(controller._controlledReadableByteStream);\r\n }\r\n else {\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n }\r\n function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\r\n if (controller._byobRequest === undefined) {\r\n return;\r\n }\r\n controller._byobRequest._associatedReadableByteStreamController = undefined;\r\n controller._byobRequest._view = undefined;\r\n controller._byobRequest = undefined;\r\n }\r\n function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\r\n while (controller._pendingPullIntos.length > 0) {\r\n if (controller._queueTotalSize === 0) {\r\n return;\r\n }\r\n var pullIntoDescriptor = controller._pendingPullIntos.peek();\r\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\r\n ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\r\n }\r\n }\r\n }\r\n function ReadableByteStreamControllerPullInto(controller, view) {\r\n var stream = controller._controlledReadableByteStream;\r\n var elementSize = 1;\r\n if (view.constructor !== DataView) {\r\n elementSize = view.constructor.BYTES_PER_ELEMENT;\r\n }\r\n var ctor = view.constructor;\r\n var buffer = TransferArrayBuffer(view.buffer);\r\n var pullIntoDescriptor = {\r\n buffer: buffer,\r\n byteOffset: view.byteOffset,\r\n byteLength: view.byteLength,\r\n bytesFilled: 0,\r\n elementSize: elementSize,\r\n ctor: ctor,\r\n readerType: 'byob'\r\n };\r\n if (controller._pendingPullIntos.length > 0) {\r\n controller._pendingPullIntos.push(pullIntoDescriptor);\r\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\r\n // - No change happens on desiredSize\r\n // - The source has already been notified of that there's at least 1 pending read(view)\r\n return ReadableStreamAddReadIntoRequest(stream);\r\n }\r\n if (stream._state === 'closed') {\r\n var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));\r\n }\r\n if (controller._queueTotalSize > 0) {\r\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\r\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\r\n ReadableByteStreamControllerHandleQueueDrain(controller);\r\n return promiseResolvedWith(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));\r\n }\r\n if (controller._closeRequested === true) {\r\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\r\n ReadableByteStreamControllerError(controller, e);\r\n return promiseRejectedWith(e);\r\n }\r\n }\r\n controller._pendingPullIntos.push(pullIntoDescriptor);\r\n var promise = ReadableStreamAddReadIntoRequest(stream);\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n return promise;\r\n }\r\n function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\r\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\r\n var stream = controller._controlledReadableByteStream;\r\n if (ReadableStreamHasBYOBReader(stream) === true) {\r\n while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\r\n var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\r\n }\r\n }\r\n }\r\n function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\r\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\r\n throw new RangeError('bytesWritten out of range');\r\n }\r\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\r\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\r\n // TODO: Figure out whether we should detach the buffer or not here.\r\n return;\r\n }\r\n ReadableByteStreamControllerShiftPendingPullInto(controller);\r\n var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\r\n if (remainderSize > 0) {\r\n var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\r\n var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\r\n }\r\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\r\n pullIntoDescriptor.bytesFilled -= remainderSize;\r\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);\r\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\r\n }\r\n function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\r\n var firstDescriptor = controller._pendingPullIntos.peek();\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state === 'closed') {\r\n if (bytesWritten !== 0) {\r\n throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\r\n }\r\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\r\n }\r\n else {\r\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\r\n }\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n function ReadableByteStreamControllerShiftPendingPullInto(controller) {\r\n var descriptor = controller._pendingPullIntos.shift();\r\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\r\n return descriptor;\r\n }\r\n function ReadableByteStreamControllerShouldCallPull(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state !== 'readable') {\r\n return false;\r\n }\r\n if (controller._closeRequested === true) {\r\n return false;\r\n }\r\n if (controller._started === false) {\r\n return false;\r\n }\r\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\r\n return true;\r\n }\r\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\r\n return true;\r\n }\r\n var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);\r\n if (desiredSize > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n function ReadableByteStreamControllerClearAlgorithms(controller) {\r\n controller._pullAlgorithm = undefined;\r\n controller._cancelAlgorithm = undefined;\r\n }\r\n // A client of ReadableByteStreamController may use these functions directly to bypass state check.\r\n function ReadableByteStreamControllerClose(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (controller._queueTotalSize > 0) {\r\n controller._closeRequested = true;\r\n return;\r\n }\r\n if (controller._pendingPullIntos.length > 0) {\r\n var firstPendingPullInto = controller._pendingPullIntos.peek();\r\n if (firstPendingPullInto.bytesFilled > 0) {\r\n var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\r\n ReadableByteStreamControllerError(controller, e);\r\n throw e;\r\n }\r\n }\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamClose(stream);\r\n }\r\n function ReadableByteStreamControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledReadableByteStream;\r\n var buffer = chunk.buffer;\r\n var byteOffset = chunk.byteOffset;\r\n var byteLength = chunk.byteLength;\r\n var transferredBuffer = TransferArrayBuffer(buffer);\r\n if (ReadableStreamHasDefaultReader(stream) === true) {\r\n if (ReadableStreamGetNumReadRequests(stream) === 0) {\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n }\r\n else {\r\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\r\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\r\n }\r\n }\r\n else if (ReadableStreamHasBYOBReader(stream) === true) {\r\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\r\n }\r\n else {\r\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\r\n }\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }\r\n function ReadableByteStreamControllerError(controller, e) {\r\n var stream = controller._controlledReadableByteStream;\r\n if (stream._state !== 'readable') {\r\n return;\r\n }\r\n ReadableByteStreamControllerClearPendingPullIntos(controller);\r\n ResetQueue(controller);\r\n ReadableByteStreamControllerClearAlgorithms(controller);\r\n ReadableStreamError(stream, e);\r\n }\r\n function ReadableByteStreamControllerGetDesiredSize(controller) {\r\n var stream = controller._controlledReadableByteStream;\r\n var state = stream._state;\r\n if (state === 'errored') {\r\n return null;\r\n }\r\n if (state === 'closed') {\r\n return 0;\r\n }\r\n return controller._strategyHWM - controller._queueTotalSize;\r\n }\r\n function ReadableByteStreamControllerRespond(controller, bytesWritten) {\r\n bytesWritten = Number(bytesWritten);\r\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\r\n throw new RangeError('bytesWritten must be a finite');\r\n }\r\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\r\n }\r\n function ReadableByteStreamControllerRespondWithNewView(controller, view) {\r\n var firstDescriptor = controller._pendingPullIntos.peek();\r\n if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\r\n throw new RangeError('The region specified by view does not match byobRequest');\r\n }\r\n if (firstDescriptor.byteLength !== view.byteLength) {\r\n throw new RangeError('The buffer of view has different capacity than byobRequest');\r\n }\r\n firstDescriptor.buffer = view.buffer;\r\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\r\n }\r\n function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {\r\n controller._controlledReadableByteStream = stream;\r\n controller._pullAgain = false;\r\n controller._pulling = false;\r\n controller._byobRequest = undefined;\r\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\r\n controller._queue = controller._queueTotalSize = undefined;\r\n ResetQueue(controller);\r\n controller._closeRequested = false;\r\n controller._started = false;\r\n controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n controller._pullAlgorithm = pullAlgorithm;\r\n controller._cancelAlgorithm = cancelAlgorithm;\r\n controller._autoAllocateChunkSize = autoAllocateChunkSize;\r\n controller._pendingPullIntos = new SimpleQueue();\r\n stream._readableStreamController = controller;\r\n var startResult = startAlgorithm();\r\n uponPromise(promiseResolvedWith(startResult), function () {\r\n controller._started = true;\r\n ReadableByteStreamControllerCallPullIfNeeded(controller);\r\n }, function (r) {\r\n ReadableByteStreamControllerError(controller, r);\r\n });\r\n }\r\n function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {\r\n var controller = Object.create(ReadableByteStreamController.prototype);\r\n function startAlgorithm() {\r\n return InvokeOrNoop(underlyingByteSource, 'start', [controller]);\r\n }\r\n var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);\r\n var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);\r\n var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\r\n if (autoAllocateChunkSize !== undefined) {\r\n autoAllocateChunkSize = Number(autoAllocateChunkSize);\r\n if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\r\n throw new RangeError('autoAllocateChunkSize must be a positive integer');\r\n }\r\n }\r\n SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);\r\n }\r\n function SetUpReadableStreamBYOBRequest(request, controller, view) {\r\n request._associatedReadableByteStreamController = controller;\r\n request._view = view;\r\n }\r\n // Helper functions for the ReadableStreamBYOBRequest.\r\n function byobRequestBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamBYOBRequest.prototype.\" + name + \" can only be used on a ReadableStreamBYOBRequest\");\r\n }\r\n // Helper functions for the ReadableByteStreamController.\r\n function byteStreamControllerBrandCheckException(name) {\r\n return new TypeError(\"ReadableByteStreamController.prototype.\" + name + \" can only be used on a ReadableByteStreamController\");\r\n }\n\n // Abstract operations for the ReadableStream.\r\n function AcquireReadableStreamBYOBReader(stream, forAuthorCode) {\r\n if (forAuthorCode === void 0) { forAuthorCode = false; }\r\n var reader = new ReadableStreamBYOBReader(stream);\r\n reader._forAuthorCode = forAuthorCode;\r\n return reader;\r\n }\r\n // ReadableStream API exposed for controllers.\r\n function ReadableStreamAddReadIntoRequest(stream) {\r\n var promise = newPromise(function (resolve, reject) {\r\n var readIntoRequest = {\r\n _resolve: resolve,\r\n _reject: reject\r\n };\r\n stream._reader._readIntoRequests.push(readIntoRequest);\r\n });\r\n return promise;\r\n }\r\n function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\r\n var reader = stream._reader;\r\n var readIntoRequest = reader._readIntoRequests.shift();\r\n readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));\r\n }\r\n function ReadableStreamGetNumReadIntoRequests(stream) {\r\n return stream._reader._readIntoRequests.length;\r\n }\r\n function ReadableStreamHasBYOBReader(stream) {\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return false;\r\n }\r\n if (!IsReadableStreamBYOBReader(reader)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var ReadableStreamBYOBReader = /** @class */ (function () {\r\n function ReadableStreamBYOBReader(stream) {\r\n if (!IsReadableStream(stream)) {\r\n throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' +\r\n 'byte source');\r\n }\r\n if (IsReadableByteStreamController(stream._readableStreamController) === false) {\r\n throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' +\r\n 'source');\r\n }\r\n if (IsReadableStreamLocked(stream)) {\r\n throw new TypeError('This stream has already been locked for exclusive reading by another reader');\r\n }\r\n ReadableStreamReaderGenericInitialize(this, stream);\r\n this._readIntoRequests = new SimpleQueue();\r\n }\r\n Object.defineProperty(ReadableStreamBYOBReader.prototype, \"closed\", {\r\n get: function () {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return promiseRejectedWith(byobReaderBrandCheckException('closed'));\r\n }\r\n return this._closedPromise;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStreamBYOBReader.prototype.cancel = function (reason) {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return promiseRejectedWith(byobReaderBrandCheckException('cancel'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('cancel'));\r\n }\r\n return ReadableStreamReaderGenericCancel(this, reason);\r\n };\r\n ReadableStreamBYOBReader.prototype.read = function (view) {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n return promiseRejectedWith(byobReaderBrandCheckException('read'));\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return promiseRejectedWith(readerLockException('read from'));\r\n }\r\n if (!ArrayBuffer.isView(view)) {\r\n return promiseRejectedWith(new TypeError('view must be an array buffer view'));\r\n }\r\n if (IsDetachedBuffer(view.buffer) === true) ;\r\n if (view.byteLength === 0) {\r\n return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));\r\n }\r\n return ReadableStreamBYOBReaderRead(this, view);\r\n };\r\n ReadableStreamBYOBReader.prototype.releaseLock = function () {\r\n if (!IsReadableStreamBYOBReader(this)) {\r\n throw byobReaderBrandCheckException('releaseLock');\r\n }\r\n if (this._ownerReadableStream === undefined) {\r\n return;\r\n }\r\n if (this._readIntoRequests.length > 0) {\r\n throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\r\n }\r\n ReadableStreamReaderGenericRelease(this);\r\n };\r\n return ReadableStreamBYOBReader;\r\n }());\r\n // Abstract operations for the readers.\r\n function IsReadableStreamBYOBReader(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function ReadableStreamBYOBReaderRead(reader, view) {\r\n var stream = reader._ownerReadableStream;\r\n stream._disturbed = true;\r\n if (stream._state === 'errored') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n // Controllers must implement this.\r\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\r\n }\r\n // Helper functions for the ReadableStreamBYOBReader.\r\n function byobReaderBrandCheckException(name) {\r\n return new TypeError(\"ReadableStreamBYOBReader.prototype.\" + name + \" can only be used on a ReadableStreamBYOBReader\");\r\n }\n\n var ReadableStream = /** @class */ (function () {\r\n function ReadableStream(underlyingSource, strategy) {\r\n if (underlyingSource === void 0) { underlyingSource = {}; }\r\n if (strategy === void 0) { strategy = {}; }\r\n InitializeReadableStream(this);\r\n var size = strategy.size;\r\n var highWaterMark = strategy.highWaterMark;\r\n var type = underlyingSource.type;\r\n var typeString = String(type);\r\n if (typeString === 'bytes') {\r\n if (size !== undefined) {\r\n throw new RangeError('The strategy for a byte stream cannot have a size function');\r\n }\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 0;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);\r\n }\r\n else if (type === undefined) {\r\n var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);\r\n if (highWaterMark === undefined) {\r\n highWaterMark = 1;\r\n }\r\n highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);\r\n SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);\r\n }\r\n else {\r\n throw new RangeError('Invalid type is specified');\r\n }\r\n }\r\n Object.defineProperty(ReadableStream.prototype, \"locked\", {\r\n get: function () {\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('locked');\r\n }\r\n return IsReadableStreamLocked(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n ReadableStream.prototype.cancel = function (reason) {\r\n if (IsReadableStream(this) === false) {\r\n return promiseRejectedWith(streamBrandCheckException$1('cancel'));\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));\r\n }\r\n return ReadableStreamCancel(this, reason);\r\n };\r\n ReadableStream.prototype.getReader = function (_a) {\r\n var mode = (_a === void 0 ? {} : _a).mode;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('getReader');\r\n }\r\n if (mode === undefined) {\r\n return AcquireReadableStreamDefaultReader(this, true);\r\n }\r\n mode = String(mode);\r\n if (mode === 'byob') {\r\n return AcquireReadableStreamBYOBReader(this, true);\r\n }\r\n throw new RangeError('Invalid mode is specified');\r\n };\r\n ReadableStream.prototype.pipeThrough = function (_a, _b) {\r\n var writable = _a.writable, readable = _a.readable;\r\n var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('pipeThrough');\r\n }\r\n if (IsWritableStream(writable) === false) {\r\n throw new TypeError('writable argument to pipeThrough must be a WritableStream');\r\n }\r\n if (IsReadableStream(readable) === false) {\r\n throw new TypeError('readable argument to pipeThrough must be a ReadableStream');\r\n }\r\n preventClose = Boolean(preventClose);\r\n preventAbort = Boolean(preventAbort);\r\n preventCancel = Boolean(preventCancel);\r\n if (signal !== undefined && !isAbortSignal(signal)) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough\\'s signal option must be an AbortSignal');\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');\r\n }\r\n if (IsWritableStreamLocked(writable) === true) {\r\n throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');\r\n }\r\n var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);\r\n setPromiseIsHandledToTrue(promise);\r\n return readable;\r\n };\r\n ReadableStream.prototype.pipeTo = function (dest, _a) {\r\n var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;\r\n if (IsReadableStream(this) === false) {\r\n return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));\r\n }\r\n if (IsWritableStream(dest) === false) {\r\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\r\n }\r\n preventClose = Boolean(preventClose);\r\n preventAbort = Boolean(preventAbort);\r\n preventCancel = Boolean(preventCancel);\r\n if (signal !== undefined && !isAbortSignal(signal)) {\r\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\\'s signal option must be an AbortSignal'));\r\n }\r\n if (IsReadableStreamLocked(this) === true) {\r\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\r\n }\r\n if (IsWritableStreamLocked(dest) === true) {\r\n return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\r\n }\r\n return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);\r\n };\r\n ReadableStream.prototype.tee = function () {\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('tee');\r\n }\r\n var branches = ReadableStreamTee(this);\r\n return createArrayFromList(branches);\r\n };\r\n ReadableStream.prototype.getIterator = function (_a) {\r\n var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;\r\n if (IsReadableStream(this) === false) {\r\n throw streamBrandCheckException$1('getIterator');\r\n }\r\n return AcquireReadableStreamAsyncIterator(this, preventCancel);\r\n };\r\n return ReadableStream;\r\n }());\r\n if (typeof SymbolPolyfill.asyncIterator === 'symbol') {\r\n Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {\r\n value: ReadableStream.prototype.getIterator,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n });\r\n }\r\n // Abstract operations for the ReadableStream.\r\n // Throws if and only if startAlgorithm throws.\r\n function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {\r\n if (highWaterMark === void 0) { highWaterMark = 1; }\r\n if (sizeAlgorithm === void 0) { sizeAlgorithm = function () { return 1; }; }\r\n var stream = Object.create(ReadableStream.prototype);\r\n InitializeReadableStream(stream);\r\n var controller = Object.create(ReadableStreamDefaultController.prototype);\r\n SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);\r\n return stream;\r\n }\r\n function InitializeReadableStream(stream) {\r\n stream._state = 'readable';\r\n stream._reader = undefined;\r\n stream._storedError = undefined;\r\n stream._disturbed = false;\r\n }\r\n function IsReadableStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function IsReadableStreamLocked(stream) {\r\n if (stream._reader === undefined) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n // ReadableStream API exposed for controllers.\r\n function ReadableStreamCancel(stream, reason) {\r\n stream._disturbed = true;\r\n if (stream._state === 'closed') {\r\n return promiseResolvedWith(undefined);\r\n }\r\n if (stream._state === 'errored') {\r\n return promiseRejectedWith(stream._storedError);\r\n }\r\n ReadableStreamClose(stream);\r\n var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);\r\n return transformPromiseWith(sourceCancelPromise, noop);\r\n }\r\n function ReadableStreamClose(stream) {\r\n stream._state = 'closed';\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return;\r\n }\r\n if (IsReadableStreamDefaultReader(reader)) {\r\n reader._readRequests.forEach(function (readRequest) {\r\n readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));\r\n });\r\n reader._readRequests = new SimpleQueue();\r\n }\r\n defaultReaderClosedPromiseResolve(reader);\r\n }\r\n function ReadableStreamError(stream, e) {\r\n stream._state = 'errored';\r\n stream._storedError = e;\r\n var reader = stream._reader;\r\n if (reader === undefined) {\r\n return;\r\n }\r\n if (IsReadableStreamDefaultReader(reader)) {\r\n reader._readRequests.forEach(function (readRequest) {\r\n readRequest._reject(e);\r\n });\r\n reader._readRequests = new SimpleQueue();\r\n }\r\n else {\r\n reader._readIntoRequests.forEach(function (readIntoRequest) {\r\n readIntoRequest._reject(e);\r\n });\r\n reader._readIntoRequests = new SimpleQueue();\r\n }\r\n defaultReaderClosedPromiseReject(reader, e);\r\n }\r\n // Helper functions for the ReadableStream.\r\n function streamBrandCheckException$1(name) {\r\n return new TypeError(\"ReadableStream.prototype.\" + name + \" can only be used on a ReadableStream\");\r\n }\n\n var ByteLengthQueuingStrategy = /** @class */ (function () {\r\n function ByteLengthQueuingStrategy(_a) {\r\n var highWaterMark = _a.highWaterMark;\r\n this.highWaterMark = highWaterMark;\r\n }\r\n ByteLengthQueuingStrategy.prototype.size = function (chunk) {\r\n return chunk.byteLength;\r\n };\r\n return ByteLengthQueuingStrategy;\r\n }());\n\n var CountQueuingStrategy = /** @class */ (function () {\r\n function CountQueuingStrategy(_a) {\r\n var highWaterMark = _a.highWaterMark;\r\n this.highWaterMark = highWaterMark;\r\n }\r\n CountQueuingStrategy.prototype.size = function () {\r\n return 1;\r\n };\r\n return CountQueuingStrategy;\r\n }());\n\n // Class TransformStream\r\n var TransformStream = /** @class */ (function () {\r\n function TransformStream(transformer, writableStrategy, readableStrategy) {\r\n if (transformer === void 0) { transformer = {}; }\r\n if (writableStrategy === void 0) { writableStrategy = {}; }\r\n if (readableStrategy === void 0) { readableStrategy = {}; }\r\n var writableSizeFunction = writableStrategy.size;\r\n var writableHighWaterMark = writableStrategy.highWaterMark;\r\n var readableSizeFunction = readableStrategy.size;\r\n var readableHighWaterMark = readableStrategy.highWaterMark;\r\n var writableType = transformer.writableType;\r\n if (writableType !== undefined) {\r\n throw new RangeError('Invalid writable type specified');\r\n }\r\n var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);\r\n if (writableHighWaterMark === undefined) {\r\n writableHighWaterMark = 1;\r\n }\r\n writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);\r\n var readableType = transformer.readableType;\r\n if (readableType !== undefined) {\r\n throw new RangeError('Invalid readable type specified');\r\n }\r\n var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);\r\n if (readableHighWaterMark === undefined) {\r\n readableHighWaterMark = 0;\r\n }\r\n readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);\r\n var startPromise_resolve;\r\n var startPromise = newPromise(function (resolve) {\r\n startPromise_resolve = resolve;\r\n });\r\n InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\r\n SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);\r\n var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);\r\n startPromise_resolve(startResult);\r\n }\r\n Object.defineProperty(TransformStream.prototype, \"readable\", {\r\n get: function () {\r\n if (IsTransformStream(this) === false) {\r\n throw streamBrandCheckException$2('readable');\r\n }\r\n return this._readable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(TransformStream.prototype, \"writable\", {\r\n get: function () {\r\n if (IsTransformStream(this) === false) {\r\n throw streamBrandCheckException$2('writable');\r\n }\r\n return this._writable;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return TransformStream;\r\n }());\r\n function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {\r\n function startAlgorithm() {\r\n return startPromise;\r\n }\r\n function writeAlgorithm(chunk) {\r\n return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);\r\n }\r\n function abortAlgorithm(reason) {\r\n return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);\r\n }\r\n function closeAlgorithm() {\r\n return TransformStreamDefaultSinkCloseAlgorithm(stream);\r\n }\r\n stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);\r\n function pullAlgorithm() {\r\n return TransformStreamDefaultSourcePullAlgorithm(stream);\r\n }\r\n function cancelAlgorithm(reason) {\r\n TransformStreamErrorWritableAndUnblockWrite(stream, reason);\r\n return promiseResolvedWith(undefined);\r\n }\r\n stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);\r\n // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure.\r\n stream._backpressure = undefined;\r\n stream._backpressureChangePromise = undefined;\r\n stream._backpressureChangePromise_resolve = undefined;\r\n TransformStreamSetBackpressure(stream, true);\r\n // Used by IsWritableStream() which is called by SetUpTransformStreamDefaultController().\r\n stream._transformStreamController = undefined;\r\n }\r\n function IsTransformStream(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n // This is a no-op if both sides are already errored.\r\n function TransformStreamError(stream, e) {\r\n ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);\r\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\r\n }\r\n function TransformStreamErrorWritableAndUnblockWrite(stream, e) {\r\n TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);\r\n WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);\r\n if (stream._backpressure === true) {\r\n // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure()\r\n // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time\r\n // _backpressure is set.\r\n TransformStreamSetBackpressure(stream, false);\r\n }\r\n }\r\n function TransformStreamSetBackpressure(stream, backpressure) {\r\n // Passes also when called during construction.\r\n if (stream._backpressureChangePromise !== undefined) {\r\n stream._backpressureChangePromise_resolve();\r\n }\r\n stream._backpressureChangePromise = newPromise(function (resolve) {\r\n stream._backpressureChangePromise_resolve = resolve;\r\n });\r\n stream._backpressure = backpressure;\r\n }\r\n var TransformStreamDefaultController = /** @class */ (function () {\r\n /** @internal */\r\n function TransformStreamDefaultController() {\r\n throw new TypeError('TransformStreamDefaultController instances cannot be created directly');\r\n }\r\n Object.defineProperty(TransformStreamDefaultController.prototype, \"desiredSize\", {\r\n get: function () {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('desiredSize');\r\n }\r\n var readableController = this._controlledTransformStream._readable._readableStreamController;\r\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n TransformStreamDefaultController.prototype.enqueue = function (chunk) {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('enqueue');\r\n }\r\n TransformStreamDefaultControllerEnqueue(this, chunk);\r\n };\r\n TransformStreamDefaultController.prototype.error = function (reason) {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('error');\r\n }\r\n TransformStreamDefaultControllerError(this, reason);\r\n };\r\n TransformStreamDefaultController.prototype.terminate = function () {\r\n if (IsTransformStreamDefaultController(this) === false) {\r\n throw defaultControllerBrandCheckException$1('terminate');\r\n }\r\n TransformStreamDefaultControllerTerminate(this);\r\n };\r\n return TransformStreamDefaultController;\r\n }());\r\n // Transform Stream Default Controller Abstract Operations\r\n function IsTransformStreamDefaultController(x) {\r\n if (!typeIsObject(x)) {\r\n return false;\r\n }\r\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {\r\n controller._controlledTransformStream = stream;\r\n stream._transformStreamController = controller;\r\n controller._transformAlgorithm = transformAlgorithm;\r\n controller._flushAlgorithm = flushAlgorithm;\r\n }\r\n function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {\r\n var controller = Object.create(TransformStreamDefaultController.prototype);\r\n var transformAlgorithm = function (chunk) {\r\n try {\r\n TransformStreamDefaultControllerEnqueue(controller, chunk);\r\n return promiseResolvedWith(undefined);\r\n }\r\n catch (transformResultE) {\r\n return promiseRejectedWith(transformResultE);\r\n }\r\n };\r\n var transformMethod = transformer.transform;\r\n if (transformMethod !== undefined) {\r\n if (typeof transformMethod !== 'function') {\r\n throw new TypeError('transform is not a method');\r\n }\r\n transformAlgorithm = function (chunk) { return PromiseCall(transformMethod, transformer, [chunk, controller]); };\r\n }\r\n var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);\r\n SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);\r\n }\r\n function TransformStreamDefaultControllerClearAlgorithms(controller) {\r\n controller._transformAlgorithm = undefined;\r\n controller._flushAlgorithm = undefined;\r\n }\r\n function TransformStreamDefaultControllerEnqueue(controller, chunk) {\r\n var stream = controller._controlledTransformStream;\r\n var readableController = stream._readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {\r\n throw new TypeError('Readable side is not in a state that permits enqueue');\r\n }\r\n // We throttle transform invocations based on the backpressure of the ReadableStream, but we still\r\n // accept TransformStreamDefaultControllerEnqueue() calls.\r\n try {\r\n ReadableStreamDefaultControllerEnqueue(readableController, chunk);\r\n }\r\n catch (e) {\r\n // This happens when readableStrategy.size() throws.\r\n TransformStreamErrorWritableAndUnblockWrite(stream, e);\r\n throw stream._readable._storedError;\r\n }\r\n var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);\r\n if (backpressure !== stream._backpressure) {\r\n TransformStreamSetBackpressure(stream, true);\r\n }\r\n }\r\n function TransformStreamDefaultControllerError(controller, e) {\r\n TransformStreamError(controller._controlledTransformStream, e);\r\n }\r\n function TransformStreamDefaultControllerPerformTransform(controller, chunk) {\r\n var transformPromise = controller._transformAlgorithm(chunk);\r\n return transformPromiseWith(transformPromise, undefined, function (r) {\r\n TransformStreamError(controller._controlledTransformStream, r);\r\n throw r;\r\n });\r\n }\r\n function TransformStreamDefaultControllerTerminate(controller) {\r\n var stream = controller._controlledTransformStream;\r\n var readableController = stream._readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\r\n ReadableStreamDefaultControllerClose(readableController);\r\n }\r\n var error = new TypeError('TransformStream terminated');\r\n TransformStreamErrorWritableAndUnblockWrite(stream, error);\r\n }\r\n // TransformStreamDefaultSink Algorithms\r\n function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {\r\n var controller = stream._transformStreamController;\r\n if (stream._backpressure === true) {\r\n var backpressureChangePromise = stream._backpressureChangePromise;\r\n return transformPromiseWith(backpressureChangePromise, function () {\r\n var writable = stream._writable;\r\n var state = writable._state;\r\n if (state === 'erroring') {\r\n throw writable._storedError;\r\n }\r\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\r\n });\r\n }\r\n return TransformStreamDefaultControllerPerformTransform(controller, chunk);\r\n }\r\n function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {\r\n // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already\r\n // errored.\r\n TransformStreamError(stream, reason);\r\n return promiseResolvedWith(undefined);\r\n }\r\n function TransformStreamDefaultSinkCloseAlgorithm(stream) {\r\n // stream._readable cannot change after construction, so caching it across a call to user code is safe.\r\n var readable = stream._readable;\r\n var controller = stream._transformStreamController;\r\n var flushPromise = controller._flushAlgorithm();\r\n TransformStreamDefaultControllerClearAlgorithms(controller);\r\n // Return a promise that is fulfilled with undefined on success.\r\n return transformPromiseWith(flushPromise, function () {\r\n if (readable._state === 'errored') {\r\n throw readable._storedError;\r\n }\r\n var readableController = readable._readableStreamController;\r\n if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {\r\n ReadableStreamDefaultControllerClose(readableController);\r\n }\r\n }, function (r) {\r\n TransformStreamError(stream, r);\r\n throw readable._storedError;\r\n });\r\n }\r\n // TransformStreamDefaultSource Algorithms\r\n function TransformStreamDefaultSourcePullAlgorithm(stream) {\r\n // Invariant. Enforced by the promises returned by start() and pull().\r\n TransformStreamSetBackpressure(stream, false);\r\n // Prevent the next pull() call until there is backpressure.\r\n return stream._backpressureChangePromise;\r\n }\r\n // Helper functions for the TransformStreamDefaultController.\r\n function defaultControllerBrandCheckException$1(name) {\r\n return new TypeError(\"TransformStreamDefaultController.prototype.\" + name + \" can only be used on a TransformStreamDefaultController\");\r\n }\r\n // Helper functions for the TransformStream.\r\n function streamBrandCheckException$2(name) {\r\n return new TypeError(\"TransformStream.prototype.\" + name + \" can only be used on a TransformStream\");\r\n }\n\n exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;\n exports.CountQueuingStrategy = CountQueuingStrategy;\n exports.ReadableStream = ReadableStream;\n exports.TransformStream = TransformStream;\n exports.WritableStream = WritableStream;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=ponyfill.js.map\n","require('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","require('../../modules/es.set');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-map');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakMap;\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.github.io/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","require('../../modules/es.object.to-string');\nrequire('../../modules/es.weak-set');\nrequire('../../modules/web.dom-collections.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.WeakSet;\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.github.io/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","require('../../modules/es.string.code-point-at');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'codePointAt');\n","'use strict';\nvar $ = require('../internals/export');\nvar codeAt = require('../internals/string-multibyte').codeAt;\n\n// `String.prototype.codePointAt` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n$({ target: 'String', proto: true }, {\n codePointAt: function codePointAt(pos) {\n return codeAt(this, pos);\n }\n});\n","require('../../modules/es.string.from-code-point');\nvar path = require('../../internals/path');\n\nmodule.exports = path.String.fromCodePoint;\n","var $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\nvar fromCharCode = String.fromCharCode;\nvar nativeFromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\nvar INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;\n\n// `String.fromCodePoint` method\n// https://tc39.github.io/ecma262/#sec-string.fromcodepoint\n$({ target: 'String', stat: true, forced: INCORRECT_LENGTH }, {\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var elements = [];\n var length = arguments.length;\n var i = 0;\n var code;\n while (length > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10FFFF) !== code) throw RangeError(code + ' is not a valid code point');\n elements.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00)\n );\n } return elements.join('');\n }\n});\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.json.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.github.io/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","require('../../modules/es.string.pad-start');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padStart');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = String(requireObjectCoercible($this));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line unicorn/no-unsafe-regex\nmodule.exports = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","require('../../modules/es.string.pad-end');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'padEnd');\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.github.io/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.github.io/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint no-var: error */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n assert,\n createPromiseCapability,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isSameOrigin,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n loadScript,\n PageViewport,\n releaseImageResources,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport { apiCompatibilityParams } from \"./api_compatibility.js\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { isNodeJS } from \"../shared/is_node.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { WebGLContext } from \"./webgl.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @returns {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} [url] - The URL of the PDF.\n * @property {TypedArray|Array|string} [data] - Binary PDF data. Use typed\n * arrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use atob() to convert it to a binary string first.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is false.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {TypedArray} [initialData] - A typed array with the first portion\n * or all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} [length] - The PDF file length. It's used for\n * progress reports and range requests operations.\n * @property {PDFDataRangeTransport} [range]\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes\n * fetched per range request. The default value is 2^16 = 65536.\n * @property {PDFWorker} [worker] - The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} [nativeImageDecoderSupport] - Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {string} [cMapUrl] - The URL where the predefined\n * Adobe CMaps are located. Include trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are\n * binary packed.\n * @property {Object} [CMapReaderFactory] - The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size\n * in total pixels, i.e. width * height. Images above this value will not be\n * rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can eval\n * strings as JS. Primarily used to improve performance of font rendering,\n * and when parsing PDF functions. The default value is `true`.\n * @property {boolean} [disableFontFace] - By default fonts are\n * converted to OpenType fonts and loaded via font face rules. If disabled,\n * fonts will be rendered using a built-in font renderer that constructs the\n * glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} [disableRange] - Disable range request loading\n * of PDF files. When enabled, and if the server supports partial content\n * requests, then the PDF will be fetched in chunks.\n * The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file\n * data. By default PDF.js attempts to load PDFs in chunks.\n * The default value is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF\n * file data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n * NOTE: It is also necessary to disable streaming, see above,\n * in order for disabling of pre-fetching to work correctly.\n * @property {boolean} [disableCreateObjectURL] - Disable the use of\n * `URL.createObjectURL`, for compatibility with older browsers.\n * The default value is `false`.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging\n * PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Object} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Object} fontTypes - Used font types in the document (an item\n * is set to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === \"string\") {\n source = { url: src };\n } else if (isArrayBuffer(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\n \"Invalid parameter in getDocument, \" +\n \"need either Uint8Array, string or a parameter object\"\n );\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n \"Invalid parameter object: need either .data, .range or .url\"\n );\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n if (key === \"url\" && typeof window !== \"undefined\") {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === \"range\") {\n rangeTransport = source[key];\n continue;\n } else if (key === \"worker\") {\n worker = source[key];\n continue;\n } else if (key === \"data\" && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === \"string\") {\n params[key] = stringToBytes(pdfBytes);\n } else if (\n typeof pdfBytes === \"object\" &&\n pdfBytes !== null &&\n !isNaN(pdfBytes.length)\n ) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error(\n \"Invalid PDF binary data: either typed array, \" +\n \"string or array-like object is expected in the \" +\n \"data property.\"\n );\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n\n const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (\n params.nativeImageDecoderSupport === undefined ||\n !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)\n ) {\n params.nativeImageDecoderSupport =\n apiCompatibilityParams.nativeImageDecoderSupport ||\n NativeImageDecoding.DECODE;\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== \"boolean\") {\n params.disableCreateObjectURL =\n apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n worker.promise\n .then(function() {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(\n function(workerId) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n },\n rangeTransport\n );\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n params\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed\"));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n return worker.messageHandler\n .sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n // Only send the required properties, and *not* the entire object.\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length,\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n })\n .then(function(workerId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n });\n}\n\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n /**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = \"d\" + nextDocumentId++;\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Aborts all network requests and destroys worker.\n * @returns {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport\n ? Promise.resolve()\n : this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n\n /**\n * Registers callbacks to indicate the document loading completion.\n * @ignore\n */\n then(onFulfilled, onRejected) {\n throw new Error(\n \"Removed API method: \" +\n \"PDFDocumentLoadingTask.then, use the `promise` getter instead.\"\n );\n }\n }\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} progressiveDone\n */\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @type {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @returns {Promise} A promise that is resolved with the page index (starting\n * from zero) that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @returns {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array} containing\n * the page labels that correspond to the page indexes, or `null` when\n * no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string} containing\n * the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string} containing\n * the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Object} containing\n * the viewer preferences.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Object} containing\n * the currently supported actions, or `null` when no OpenAction exists.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getOpenActionDestination() {\n deprecated(\"getOpenActionDestination, use getOpenAction instead.\");\n return this.getOpenAction().then(function(openAction) {\n return openAction && openAction.dest ? openAction.dest : null;\n });\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8ClampedArray,\n * count: integer or undefined,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ]\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array} that contains\n * the permission flags for the PDF document, or `null` when\n * no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Object} that has\n * `info` and `metadata` properties. `info` is an {Object} filled with\n * anything available in the information dictionary and similarly\n * `metadata` is a {Metadata} object with information from the metadata\n * section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {TypedArray} that has\n * the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the `length`\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * @returns {Promise} A promise this is resolved with current statistics about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\n }\n\n /**\n * Cleans up resources allocated by the document, on both the main- and\n * worker-threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup() {\n return this._transport.startCleanup();\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @type {Object} A subset of the current {DocumentInitParameters}, which are\n * either needed in the viewer and/or whose default values may be affected\n * by the `apiCompatibilityParams`.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyle} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} [enableWebGL] - Enables WebGL accelerated rendering\n * for some operations. The default value is `false`.\n * @property {boolean} [renderInteractiveForms] - Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} [transform] - Additional transform, applied\n * just before viewport transform.\n * @property {Object} [imageLayer] - An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} [canvasFactory] - The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} [background] - Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @alias PDFPageProxy\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {Object} The reference that points to this page. It has `num` and\n * `gen` properties.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @type {Array} An array of the visible portion of the PDF page in user\n * space units [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n (arguments.length > 1 || typeof arguments[0] === \"number\")\n ) {\n throw new Error(\n \"PDFPageProxy.getViewport is called with obsolete arguments.\"\n );\n }\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations({ intent = null } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(\n this._pageIndex,\n intent\n );\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @returns {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n enableWebGL = false,\n renderInteractiveForms = false,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n }) {\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const renderingIntent = intent === \"print\" ? \"print\" : \"display\";\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DOMCanvasFactory();\n const webGLContext = new WebGLContext({\n enable: enableWebGL,\n });\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n });\n }\n\n const complete = error => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || renderingIntent === \"print\") {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error,\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== \"print\",\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise\n .then(transparency => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @returns {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = \"oplist\";\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n this._pumpOperatorList({\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n });\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent({\n normalizeWhitespace = false,\n disableCombineTextItems = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this._pageIndex] = null;\n\n const waitOn = [];\n Object.keys(this.intentStates).forEach(intent => {\n const intentState = this.intentStates[intent];\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intent === \"oplist\") {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n intentState.renderTasks.forEach(function(renderTask) {\n const renderCompleted = renderTask.capability.promise.catch(\n function() {}\n ); // ignoring failures\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n });\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicating if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @private\n */\n _tryCleanup(resetStats = false) {\n if (\n !this.pendingCleanup ||\n Object.keys(this.intentStates).some(intent => {\n const intentState = this.intentStates[intent];\n return (\n intentState.renderTasks.length !== 0 ||\n !intentState.operatorList.lastChunk\n );\n })\n ) {\n return false;\n }\n\n Object.keys(this.intentStates).forEach(intent => {\n delete this.intentStates[intent];\n });\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n return true;\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList(args) {\n assert(\n args.intent,\n 'PDFPageProxy._pumpOperatorList: Expected \"intent\" argument.'\n );\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n args\n );\n const reader = readableStream.getReader();\n\n const intentState = this.intentStates[args.intent];\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n assert(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null),\n 'PDFPageProxy._abortOperatorList: Expected \"reason\" argument.'\n );\n\n if (!intentState.streamReader) {\n return;\n }\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.length !== 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({ intentState, reason, force: true });\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n intentState.streamReader.cancel(\n new AbortException(reason && reason.message)\n );\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n Object.keys(this.intentStates).some(intent => {\n if (this.intentStates[intent] === intentState) {\n delete this.intentStates[intent];\n return true;\n }\n return false;\n });\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {Object} Returns page stats, if enabled; returns `null` otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== \"object\" || value === null) {\n return value;\n }\n if (cloned.has(value)) {\n // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n const transferable = transfers && transfers.includes(buffer);\n if (transferable) {\n result = new value.constructor(\n buffer,\n value.byteOffset,\n value.byteLength\n );\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc,\n p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === \"undefined\") {\n continue;\n }\n if (typeof desc.value === \"function\") {\n if (value.hasOwnProperty && value.hasOwnProperty(i)) {\n throw new Error(\n `LoopbackPort.postMessage - cannot clone: ${value[i]}`\n );\n }\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(listener => {\n listener.call(this, { data: obj });\n });\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj) };\n this._deferred.then(() => {\n this._listeners.forEach(listener => {\n listener.call(this, e);\n });\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Object} [port] - The `workerPort`.\n * @property {number} [verbosity] - Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let isWorkerDisabled = false;\n let fallbackWorkerSrc;\n let nextFakeWorkerId = 0;\n let fakeWorkerCapability;\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n isWorkerDisabled = true;\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"LIB\")) {\n fallbackWorkerSrc = \"../pdf.worker.js\";\n } else {\n fallbackWorkerSrc = \"./pdf.worker.js\";\n }\n } else if (typeof document === \"object\" && \"currentScript\" in document) {\n const pdfjsFilePath =\n document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n }\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== \"undefined\") {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n function getMainThreadWorkerMessageHandler() {\n let mainWorkerMessageHandler;\n try {\n mainWorkerMessageHandler =\n globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;\n } catch (ex) {\n /* Ignore errors. */\n }\n return mainWorkerMessageHandler || null;\n }\n\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerCapability) {\n return fakeWorkerCapability.promise;\n }\n fakeWorkerCapability = createPromiseCapability();\n\n const loader = async function() {\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a ` - + - +
-
- - - +
+
+ + + + +
+
+ +
+
@@ -65,8 +79,10 @@ See https://github.com/adobe-type-tools/cmap-resources
+
- +
@@ -186,11 +202,11 @@ See https://github.com/adobe-type-tools/cmap-resources
-
-
@@ -202,7 +218,7 @@ See https://github.com/adobe-type-tools/cmap-resources Next
- +
@@ -227,7 +243,7 @@ See https://github.com/adobe-type-tools/cmap-resources
-
@@ -269,17 +285,6 @@ See https://github.com/adobe-type-tools/cmap-resources
- - - - - - -
@@ -391,4 +396,3 @@ See https://github.com/adobe-type-tools/cmap-resources
- diff --git a/server/src/main/resources/static/pdfjs/web/viewer.js b/server/src/main/resources/static/pdfjs/web/viewer.js index 20def755..d3937e36 100644 --- a/server/src/main/resources/static/pdfjs/web/viewer.js +++ b/server/src/main/resources/static/pdfjs/web/viewer.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2020 Mozilla Foundation + * Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,298 +20,363 @@ * Javascript code in this page */ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -; -var pdfjsWebApp, pdfjsWebAppOptions; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OptionKind = exports.AppOptions = void 0; + +var _viewer_compatibility = __webpack_require__(2); + +const OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +const defaultOptions = { + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultUrl: { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels, + kind: OptionKind.VIEWER + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + renderer: { + value: "canvas", + kind: OptionKind.VIEWER + }, + renderInteractiveForms: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + useOnlyCssZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewerCssTheme: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableXfa: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.js", + kind: OptionKind.WORKER + } +}; { - pdfjsWebApp = __webpack_require__(1); - pdfjsWebAppOptions = __webpack_require__(6); -} -; -{ - __webpack_require__(36); -} -; -{ - __webpack_require__(41); -} - -function getViewerConfiguration() { - return { - appContainer: document.body, - mainContainer: document.getElementById("viewerContainer"), - viewerContainer: document.getElementById("viewer"), - eventBus: null, - toolbar: { - container: document.getElementById("toolbarViewer"), - numPages: document.getElementById("numPages"), - pageNumber: document.getElementById("pageNumber"), - scaleSelectContainer: document.getElementById("scaleSelectContainer"), - scaleSelect: document.getElementById("scaleSelect"), - customScaleOption: document.getElementById("customScaleOption"), - previous: document.getElementById("previous"), - next: document.getElementById("next"), - zoomIn: document.getElementById("zoomIn"), - zoomOut: document.getElementById("zoomOut"), - viewFind: document.getElementById("viewFind"), - openFile: document.getElementById("openFile"), - print: document.getElementById("print"), - presentationModeButton: document.getElementById("presentationMode"), - download: document.getElementById("download"), - viewBookmark: document.getElementById("viewBookmark") - }, - secondaryToolbar: { - toolbar: document.getElementById("secondaryToolbar"), - toggleButton: document.getElementById("secondaryToolbarToggle"), - toolbarButtonContainer: document.getElementById("secondaryToolbarButtonContainer"), - presentationModeButton: document.getElementById("secondaryPresentationMode"), - openFileButton: document.getElementById("secondaryOpenFile"), - printButton: document.getElementById("secondaryPrint"), - downloadButton: document.getElementById("secondaryDownload"), - viewBookmarkButton: document.getElementById("secondaryViewBookmark"), - firstPageButton: document.getElementById("firstPage"), - lastPageButton: document.getElementById("lastPage"), - pageRotateCwButton: document.getElementById("pageRotateCw"), - pageRotateCcwButton: document.getElementById("pageRotateCcw"), - cursorSelectToolButton: document.getElementById("cursorSelectTool"), - cursorHandToolButton: document.getElementById("cursorHandTool"), - scrollVerticalButton: document.getElementById("scrollVertical"), - scrollHorizontalButton: document.getElementById("scrollHorizontal"), - scrollWrappedButton: document.getElementById("scrollWrapped"), - spreadNoneButton: document.getElementById("spreadNone"), - spreadOddButton: document.getElementById("spreadOdd"), - spreadEvenButton: document.getElementById("spreadEven"), - documentPropertiesButton: document.getElementById("documentProperties") - }, - fullscreen: { - contextFirstPage: document.getElementById("contextFirstPage"), - contextLastPage: document.getElementById("contextLastPage"), - contextPageRotateCw: document.getElementById("contextPageRotateCw"), - contextPageRotateCcw: document.getElementById("contextPageRotateCcw") - }, - sidebar: { - outerContainer: document.getElementById("outerContainer"), - viewerContainer: document.getElementById("viewerContainer"), - toggleButton: document.getElementById("sidebarToggle"), - thumbnailButton: document.getElementById("viewThumbnail"), - outlineButton: document.getElementById("viewOutline"), - attachmentsButton: document.getElementById("viewAttachments"), - thumbnailView: document.getElementById("thumbnailView"), - outlineView: document.getElementById("outlineView"), - attachmentsView: document.getElementById("attachmentsView") - }, - sidebarResizer: { - outerContainer: document.getElementById("outerContainer"), - resizer: document.getElementById("sidebarResizer") - }, - findBar: { - bar: document.getElementById("findbar"), - toggleButton: document.getElementById("viewFind"), - findField: document.getElementById("findInput"), - highlightAllCheckbox: document.getElementById("findHighlightAll"), - caseSensitiveCheckbox: document.getElementById("findMatchCase"), - entireWordCheckbox: document.getElementById("findEntireWord"), - findMsg: document.getElementById("findMsg"), - findResultsCount: document.getElementById("findResultsCount"), - findPreviousButton: document.getElementById("findPrevious"), - findNextButton: document.getElementById("findNext") - }, - passwordOverlay: { - overlayName: "passwordOverlay", - container: document.getElementById("passwordOverlay"), - label: document.getElementById("passwordText"), - input: document.getElementById("password"), - submitButton: document.getElementById("passwordSubmit"), - cancelButton: document.getElementById("passwordCancel") - }, - documentProperties: { - overlayName: "documentPropertiesOverlay", - container: document.getElementById("documentPropertiesOverlay"), - closeButton: document.getElementById("documentPropertiesClose"), - fields: { - fileName: document.getElementById("fileNameField"), - fileSize: document.getElementById("fileSizeField"), - title: document.getElementById("titleField"), - author: document.getElementById("authorField"), - subject: document.getElementById("subjectField"), - keywords: document.getElementById("keywordsField"), - creationDate: document.getElementById("creationDateField"), - modificationDate: document.getElementById("modificationDateField"), - creator: document.getElementById("creatorField"), - producer: document.getElementById("producerField"), - version: document.getElementById("versionField"), - pageCount: document.getElementById("pageCountField"), - pageSize: document.getElementById("pageSizeField"), - linearized: document.getElementById("linearizedField") - } - }, - errorWrapper: { - container: document.getElementById("errorWrapper"), - errorMessage: document.getElementById("errorMessage"), - closeButton: document.getElementById("errorClose"), - errorMoreInfo: document.getElementById("errorMoreInfo"), - moreInfoButton: document.getElementById("errorShowMore"), - lessInfoButton: document.getElementById("errorShowLess") - }, - printContainer: document.getElementById("printContainer"), - openFileInputName: "fileInput", - debuggerScriptPath: "./debugger.js" + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER }; + defaultOptions.locale = { + value: typeof navigator !== "undefined" ? navigator.language : "en-US", + kind: OptionKind.VIEWER + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.js", + kind: OptionKind.VIEWER + }; + defaultOptions.renderer.kind += OptionKind.PREFERENCE; +} +const userOptions = Object.create(null); + +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); + } + + static get(name) { + const userOption = userOptions[name]; + + if (userOption !== undefined) { + return userOption; + } + + const defaultOption = defaultOptions[name]; + + if (defaultOption !== undefined) { + return defaultOption.compatibility ?? defaultOption.value; + } + + return undefined; + } + + static getAll(kind = null) { + const options = Object.create(null); + + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + + if (kind === OptionKind.PREFERENCE) { + const value = defaultOption.value, + valueType = typeof value; + + if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { + options[name] = value; + continue; + } + + throw new Error(`Invalid type for preference: ${name}`); + } + } + + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : defaultOption.compatibility ?? defaultOption.value; + } + + return options; + } + + static set(name, value) { + userOptions[name] = value; + } + + static setAll(options) { + for (const name in options) { + userOptions[name] = options[name]; + } + } + + static remove(name) { + delete userOptions[name]; + } + } -function webViewerLoad() { - var config = getViewerConfiguration(); - window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication; - window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions; - var event = document.createEvent("CustomEvent"); - event.initCustomEvent("webviewerloaded", true, true, {}); - document.dispatchEvent(event); - pdfjsWebApp.PDFViewerApplication.run(config); -} - -if (document.readyState === "interactive" || document.readyState === "complete") { - webViewerLoad(); -} else { - document.addEventListener("DOMContentLoaded", webViewerLoad, true); -} +exports.AppOptions = AppOptions; /***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 2 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFPrintServiceFactory = exports.DefaultExternalServices = exports.PDFViewerApplication = void 0; +})); +exports.viewerCompatibilityParams = void 0; +const compatibilityParams = Object.create(null); +{ + const userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; + const platform = typeof navigator !== "undefined" && navigator.platform || ""; + const maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + const isIOSChrome = /CriOS/.test(userAgent); -var _regenerator = _interopRequireDefault(__webpack_require__(2)); + (function checkOnBlobSupport() { + if (isIOSChrome) { + compatibilityParams.disableCreateObjectURL = true; + } + })(); -var _ui_utils = __webpack_require__(5); + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const viewerCompatibilityParams = Object.freeze(compatibilityParams); +exports.viewerCompatibilityParams = viewerCompatibilityParams; -var _app_options = __webpack_require__(6); +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -var _pdfjsLib = __webpack_require__(7); -var _pdf_cursor_tools = __webpack_require__(9); -var _pdf_rendering_queue = __webpack_require__(11); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0; -var _pdf_sidebar = __webpack_require__(12); +var _ui_utils = __webpack_require__(4); -var _overlay_manager = __webpack_require__(13); +var _app_options = __webpack_require__(1); -var _password_prompt = __webpack_require__(14); +var _pdfjsLib = __webpack_require__(5); -var _pdf_attachment_viewer = __webpack_require__(15); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_document_properties = __webpack_require__(16); +var _pdf_rendering_queue = __webpack_require__(8); -var _pdf_find_bar = __webpack_require__(17); +var _overlay_manager = __webpack_require__(9); -var _pdf_find_controller = __webpack_require__(18); +var _password_prompt = __webpack_require__(10); -var _pdf_history = __webpack_require__(20); +var _pdf_attachment_viewer = __webpack_require__(11); -var _pdf_link_service = __webpack_require__(21); +var _pdf_document_properties = __webpack_require__(13); -var _pdf_outline_viewer = __webpack_require__(22); +var _pdf_find_bar = __webpack_require__(14); -var _pdf_presentation_mode = __webpack_require__(23); +var _pdf_find_controller = __webpack_require__(15); + +var _pdf_history = __webpack_require__(17); + +var _pdf_layer_viewer = __webpack_require__(18); + +var _pdf_link_service = __webpack_require__(19); + +var _pdf_outline_viewer = __webpack_require__(20); + +var _pdf_presentation_mode = __webpack_require__(21); + +var _pdf_scripting_manager = __webpack_require__(22); + +var _pdf_sidebar = __webpack_require__(23); var _pdf_sidebar_resizer = __webpack_require__(24); @@ -319,107 +384,89 @@ var _pdf_thumbnail_viewer = __webpack_require__(25); var _pdf_viewer = __webpack_require__(27); -var _secondary_toolbar = __webpack_require__(32); +var _secondary_toolbar = __webpack_require__(35); -var _toolbar = __webpack_require__(34); +var _toolbar = __webpack_require__(37); -var _view_history = __webpack_require__(35); +var _viewer_compatibility = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _view_history = __webpack_require__(38); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_SCALE_DELTA = 1.1; -var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; -var FORCE_PAGES_LOADED_TIMEOUT = 10000; -var WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; -var ViewOnLoad = { +const DEFAULT_SCALE_DELTA = 1.1; +const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; +const ViewOnLoad = { UNKNOWN: -1, PREVIOUS: 0, INITIAL: 1 }; +const ViewerCssTheme = { + AUTOMATIC: 0, + LIGHT: 1, + DARK: 2 +}; +const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; +const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; -var DefaultExternalServices = /*#__PURE__*/function () { - function DefaultExternalServices() { - _classCallCheck(this, DefaultExternalServices); - +class DefaultExternalServices { + constructor() { throw new Error("Cannot initialize DefaultExternalServices."); } - _createClass(DefaultExternalServices, null, [{ - key: "updateFindControlState", - value: function updateFindControlState(data) {} - }, { - key: "updateFindMatchesCount", - value: function updateFindMatchesCount(data) {} - }, { - key: "initPassiveLoading", - value: function initPassiveLoading(callbacks) {} - }, { - key: "fallback", - value: function fallback(data, callback) {} - }, { - key: "reportTelemetry", - value: function reportTelemetry(data) {} - }, { - key: "createDownloadManager", - value: function createDownloadManager(options) { - throw new Error("Not implemented: createDownloadManager"); - } - }, { - key: "createPreferences", - value: function createPreferences() { - throw new Error("Not implemented: createPreferences"); - } - }, { - key: "createL10n", - value: function createL10n(options) { - throw new Error("Not implemented: createL10n"); - } - }, { - key: "supportsIntegratedFind", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); - } - }, { - key: "supportsDocumentFonts", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); - } - }, { - key: "supportedMouseWheelZoomModifierKeys", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { - ctrlKey: true, - metaKey: true - }); - } - }]); + static updateFindControlState(data) {} - return DefaultExternalServices; -}(); + static updateFindMatchesCount(data) {} + + static initPassiveLoading(callbacks) {} + + static async fallback(data) {} + + static reportTelemetry(data) {} + + static createDownloadManager(options) { + throw new Error("Not implemented: createDownloadManager"); + } + + static createPreferences() { + throw new Error("Not implemented: createPreferences"); + } + + static createL10n(options) { + throw new Error("Not implemented: createL10n"); + } + + static createScripting(options) { + throw new Error("Not implemented: createScripting"); + } + + static get supportsIntegratedFind() { + return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); + } + + static get supportsDocumentFonts() { + return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); + } + + static get supportedMouseWheelZoomModifierKeys() { + return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { + ctrlKey: true, + metaKey: true + }); + } + + static get isInAutomation() { + return (0, _pdfjsLib.shadow)(this, "isInAutomation", false); + } + +} exports.DefaultExternalServices = DefaultExternalServices; -var PDFViewerApplication = { +const PDFViewerApplication = { initialBookmark: document.location.hash.substring(1), _initializedCapability: (0, _pdfjsLib.createPromiseCapability)(), - fellback: false, + _fellback: false, appConfig: null, pdfDocument: null, pdfLoadingTask: null, @@ -435,7 +482,9 @@ var PDFViewerApplication = { pdfSidebarResizer: null, pdfOutlineViewer: null, pdfAttachmentViewer: null, + pdfLayerViewer: null, pdfCursorTools: null, + pdfScriptingManager: null, store: null, downloadManager: null, overlayManager: null, @@ -450,357 +499,298 @@ var PDFViewerApplication = { url: "", baseUrl: "", externalServices: DefaultExternalServices, - _boundEvents: {}, - contentDispositionFilename: null, - initialize: function initialize(appConfig) { - var _this = this; + _boundEvents: Object.create(null), + documentInfo: null, + metadata: null, + _contentDispositionFilename: null, + _contentLength: null, + _saveInProgress: false, + _wheelUnusedTicks: 0, + _idleCallbacks: new Set(), - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var appContainer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _this.preferences = _this.externalServices.createPreferences(); - _this.appConfig = appConfig; - _context.next = 4; - return _this._readPreferences(); + async initialize(appConfig) { + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + await this._readPreferences(); + await this._parseHashParameters(); - case 4: - _context.next = 6; - return _this._parseHashParameters(); + this._forceCssTheme(); - case 6: - _context.next = 8; - return _this._initializeL10n(); + await this._initializeL10n(); - case 8: - if (_this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdfjsLib.LinkTarget.NONE) { - _app_options.AppOptions.set("externalLinkTarget", _pdfjsLib.LinkTarget.TOP); - } + if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdfjsLib.LinkTarget.NONE) { + _app_options.AppOptions.set("externalLinkTarget", _pdfjsLib.LinkTarget.TOP); + } - _context.next = 11; - return _this._initializeViewerComponents(); + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + const appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(() => { + this.eventBus.dispatch("localized", { + source: this + }); + }); - case 11: - _this.bindEvents(); - - _this.bindWindowEvents(); - - appContainer = appConfig.appContainer || document.documentElement; - - _this.l10n.translate(appContainer).then(function () { - _this.eventBus.dispatch("localized", { - source: _this - }); - }); - - _this._initializedCapability.resolve(); - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee); - }))(); + this._initializedCapability.resolve(); }, - _readPreferences: function _readPreferences() { - var _this2 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var prefs, name; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(_app_options.AppOptions.get("disablePreferences") === true)) { - _context2.next = 2; - break; - } + async _readPreferences() { + if (_app_options.AppOptions.get("disablePreferences")) { + return; + } - return _context2.abrupt("return"); - - case 2: - _context2.prev = 2; - _context2.next = 5; - return _this2.preferences.getAll(); - - case 5: - prefs = _context2.sent; - - for (name in prefs) { - _app_options.AppOptions.set(name, prefs[name]); - } - - _context2.next = 12; - break; - - case 9: - _context2.prev = 9; - _context2.t0 = _context2["catch"](2); - console.error("_readPreferences: \"".concat(_context2.t0.message, "\".")); - - case 12: - case "end": - return _context2.stop(); - } - } - }, _callee2, null, [[2, 9]]); - }))(); + try { + _app_options.AppOptions.setAll(await this.preferences.getAll()); + } catch (reason) { + console.error(`_readPreferences: "${reason?.message}".`); + } }, - _parseHashParameters: function _parseHashParameters() { - var _this3 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { - var hash, hashParams, waitOn, viewer, enabled; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (_app_options.AppOptions.get("pdfBugEnabled")) { - _context3.next = 2; - break; - } + async _parseHashParameters() { + if (!_app_options.AppOptions.get("pdfBugEnabled")) { + return undefined; + } - return _context3.abrupt("return", undefined); + const hash = document.location.hash.substring(1); - case 2: - hash = document.location.hash.substring(1); + if (!hash) { + return undefined; + } - if (hash) { - _context3.next = 5; - break; - } + const hashParams = (0, _ui_utils.parseQueryString)(hash), + waitOn = []; - return _context3.abrupt("return", undefined); + if ("disableworker" in hashParams && hashParams.disableworker === "true") { + waitOn.push(loadFakeWorker()); + } - case 5: - hashParams = (0, _ui_utils.parseQueryString)(hash), waitOn = []; + if ("disablerange" in hashParams) { + _app_options.AppOptions.set("disableRange", hashParams.disablerange === "true"); + } - if ("disableworker" in hashParams && hashParams["disableworker"] === "true") { - waitOn.push(loadFakeWorker()); - } + if ("disablestream" in hashParams) { + _app_options.AppOptions.set("disableStream", hashParams.disablestream === "true"); + } - if ("disablerange" in hashParams) { - _app_options.AppOptions.set("disableRange", hashParams["disablerange"] === "true"); - } + if ("disableautofetch" in hashParams) { + _app_options.AppOptions.set("disableAutoFetch", hashParams.disableautofetch === "true"); + } - if ("disablestream" in hashParams) { - _app_options.AppOptions.set("disableStream", hashParams["disablestream"] === "true"); - } + if ("disablefontface" in hashParams) { + _app_options.AppOptions.set("disableFontFace", hashParams.disablefontface === "true"); + } - if ("disableautofetch" in hashParams) { - _app_options.AppOptions.set("disableAutoFetch", hashParams["disableautofetch"] === "true"); - } + if ("disablehistory" in hashParams) { + _app_options.AppOptions.set("disableHistory", hashParams.disablehistory === "true"); + } - if ("disablefontface" in hashParams) { - _app_options.AppOptions.set("disableFontFace", hashParams["disablefontface"] === "true"); - } + if ("verbosity" in hashParams) { + _app_options.AppOptions.set("verbosity", hashParams.verbosity | 0); + } - if ("disablehistory" in hashParams) { - _app_options.AppOptions.set("disableHistory", hashParams["disablehistory"] === "true"); - } + if ("textlayer" in hashParams) { + switch (hashParams.textlayer) { + case "off": + _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); - if ("webgl" in hashParams) { - _app_options.AppOptions.set("enableWebGL", hashParams["webgl"] === "true"); - } + break; - if ("verbosity" in hashParams) { - _app_options.AppOptions.set("verbosity", hashParams["verbosity"] | 0); - } + case "visible": + case "shadow": + case "hover": + const viewer = this.appConfig.viewerContainer; + viewer.classList.add("textLayer-" + hashParams.textlayer); + break; + } + } - if (!("textlayer" in hashParams)) { - _context3.next = 23; - break; - } + if ("pdfbug" in hashParams) { + _app_options.AppOptions.set("pdfBug", true); - _context3.t0 = hashParams["textlayer"]; - _context3.next = _context3.t0 === "off" ? 18 : _context3.t0 === "visible" ? 20 : _context3.t0 === "shadow" ? 20 : _context3.t0 === "hover" ? 20 : 23; - break; + _app_options.AppOptions.set("fontExtraProperties", true); - case 18: - _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + const enabled = hashParams.pdfbug.split(","); + waitOn.push(loadAndEnablePDFBug(enabled)); + } - return _context3.abrupt("break", 23); + if ("locale" in hashParams) { + _app_options.AppOptions.set("locale", hashParams.locale); + } - case 20: - viewer = _this3.appConfig.viewerContainer; - viewer.classList.add("textLayer-" + hashParams["textlayer"]); - return _context3.abrupt("break", 23); + if (waitOn.length === 0) { + return undefined; + } - case 23: - if ("pdfbug" in hashParams) { - _app_options.AppOptions.set("pdfBug", true); - - enabled = hashParams["pdfbug"].split(","); - waitOn.push(loadAndEnablePDFBug(enabled)); - } - - if ("locale" in hashParams) { - _app_options.AppOptions.set("locale", hashParams["locale"]); - } - - return _context3.abrupt("return", Promise.all(waitOn)["catch"](function (reason) { - console.error("_parseHashParameters: \"".concat(reason.message, "\".")); - })); - - case 26: - case "end": - return _context3.stop(); - } - } - }, _callee3); - }))(); + return Promise.all(waitOn).catch(reason => { + console.error(`_parseHashParameters: "${reason.message}".`); + }); }, - _initializeL10n: function _initializeL10n() { - var _this4 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { - var dir; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _this4.l10n = _this4.externalServices.createL10n({ - locale: _app_options.AppOptions.get("locale") - }); - _context4.next = 3; - return _this4.l10n.getDirection(); - - case 3: - dir = _context4.sent; - document.getElementsByTagName("html")[0].dir = dir; - - case 5: - case "end": - return _context4.stop(); - } - } - }, _callee4); - }))(); + async _initializeL10n() { + this.l10n = this.externalServices.createL10n({ + locale: _app_options.AppOptions.get("locale") + }); + const dir = await this.l10n.getDirection(); + document.getElementsByTagName("html")[0].dir = dir; }, - _initializeViewerComponents: function _initializeViewerComponents() { - var _this5 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5() { - var appConfig, eventBus, pdfRenderingQueue, pdfLinkService, downloadManager, findController, container, viewer; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - appConfig = _this5.appConfig; - _this5.overlayManager = new _overlay_manager.OverlayManager(); - eventBus = appConfig.eventBus || new _ui_utils.EventBus({ - dispatchToDOM: _app_options.AppOptions.get("eventBusDispatchToDOM") - }); - _this5.eventBus = eventBus; - pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); - pdfRenderingQueue.onIdle = _this5.cleanup.bind(_this5); - _this5.pdfRenderingQueue = pdfRenderingQueue; - pdfLinkService = new _pdf_link_service.PDFLinkService({ - eventBus: eventBus, - externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), - externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), - ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") - }); - _this5.pdfLinkService = pdfLinkService; - downloadManager = _this5.externalServices.createDownloadManager({ - disableCreateObjectURL: _app_options.AppOptions.get("disableCreateObjectURL") - }); - _this5.downloadManager = downloadManager; - findController = new _pdf_find_controller.PDFFindController({ - linkService: pdfLinkService, - eventBus: eventBus - }); - _this5.findController = findController; - container = appConfig.mainContainer; - viewer = appConfig.viewerContainer; - _this5.pdfViewer = new _pdf_viewer.PDFViewer({ - container: container, - viewer: viewer, - eventBus: eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - downloadManager: downloadManager, - findController: findController, - renderer: _app_options.AppOptions.get("renderer"), - enableWebGL: _app_options.AppOptions.get("enableWebGL"), - l10n: _this5.l10n, - textLayerMode: _app_options.AppOptions.get("textLayerMode"), - imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), - renderInteractiveForms: _app_options.AppOptions.get("renderInteractiveForms"), - enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), - useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), - maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels") - }); - pdfRenderingQueue.setViewer(_this5.pdfViewer); - pdfLinkService.setViewer(_this5.pdfViewer); - _this5.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ - container: appConfig.sidebar.thumbnailView, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - l10n: _this5.l10n - }); - pdfRenderingQueue.setThumbnailViewer(_this5.pdfThumbnailViewer); - _this5.pdfHistory = new _pdf_history.PDFHistory({ - linkService: pdfLinkService, - eventBus: eventBus - }); - pdfLinkService.setHistory(_this5.pdfHistory); + _forceCssTheme() { + const cssTheme = _app_options.AppOptions.get("viewerCssTheme"); - if (!_this5.supportsIntegratedFind) { - _this5.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, _this5.l10n); - } + if (cssTheme === ViewerCssTheme.AUTOMATIC || !Object.values(ViewerCssTheme).includes(cssTheme)) { + return; + } - _this5.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, _this5.overlayManager, eventBus, _this5.l10n); - _this5.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ - container: container, - eventBus: eventBus, - cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") - }); - _this5.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, _this5.l10n); - _this5.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + try { + const styleSheet = document.styleSheets[0]; + const cssRules = styleSheet?.cssRules || []; + const mediaMatcher = "prefers-color-scheme"; + const mediaRule = `(${mediaMatcher}: dark)`; + const mediaRegex = new RegExp(`^@media \\(${mediaMatcher}: dark\\) {\\n\\s*([\\w\\s-.,:;/\\\\{}()]+)\\n}$`); - if (_this5.supportsFullscreen) { - _this5.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ - container: container, - pdfViewer: _this5.pdfViewer, - eventBus: eventBus, - contextMenuItems: appConfig.fullscreen - }); - } + for (let i = 0, ii = cssRules.length; i < ii; i++) { + const rule = cssRules[i]; - _this5.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, _this5.overlayManager, _this5.l10n); - _this5.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ - container: appConfig.sidebar.outlineView, - eventBus: eventBus, - linkService: pdfLinkService - }); - _this5.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ - container: appConfig.sidebar.attachmentsView, - eventBus: eventBus, - downloadManager: downloadManager - }); - _this5.pdfSidebar = new _pdf_sidebar.PDFSidebar({ - elements: appConfig.sidebar, - pdfViewer: _this5.pdfViewer, - pdfThumbnailViewer: _this5.pdfThumbnailViewer, - eventBus: eventBus, - l10n: _this5.l10n - }); - _this5.pdfSidebar.onToggled = _this5.forceRendering.bind(_this5); - _this5.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, _this5.l10n); - - case 34: - case "end": - return _context5.stop(); + if (rule instanceof CSSMediaRule && rule.media?.[0] === mediaRule) { + if (cssTheme === ViewerCssTheme.LIGHT) { + styleSheet.deleteRule(i); + return; } + + const darkRules = mediaRegex.exec(rule.cssText); + + if (darkRules?.[1]) { + styleSheet.deleteRule(i); + styleSheet.insertRule(darkRules[1], i); + } + + return; } - }, _callee5); - }))(); + } + } catch (reason) { + console.error(`_forceCssTheme: "${reason?.message}".`); + } }, - run: function run(config) { + + async _initializeViewerComponents() { + const appConfig = this.appConfig; + const eventBus = appConfig.eventBus || new _ui_utils.EventBus({ + isInAutomation: this.externalServices.isInAutomation + }); + this.eventBus = eventBus; + this.overlayManager = new _overlay_manager.OverlayManager(); + const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this._cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + const pdfLinkService = new _pdf_link_service.PDFLinkService({ + eventBus, + externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), + externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") + }); + this.pdfLinkService = pdfLinkService; + const downloadManager = this.externalServices.createDownloadManager(); + this.downloadManager = downloadManager; + const findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus + }); + this.findController = findController; + const pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({ + eventBus, + sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"), + scriptingFactory: this.externalServices, + docPropertiesLookup: this._scriptingDocProperties.bind(this) + }); + this.pdfScriptingManager = pdfScriptingManager; + const container = appConfig.mainContainer; + const viewer = appConfig.viewerContainer; + this.pdfViewer = new _pdf_viewer.PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + findController, + scriptingManager: pdfScriptingManager, + renderer: _app_options.AppOptions.get("renderer"), + l10n: this.l10n, + textLayerMode: _app_options.AppOptions.get("textLayerMode"), + imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), + renderInteractiveForms: _app_options.AppOptions.get("renderInteractiveForms"), + enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), + useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), + maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"), + enableScripting: _app_options.AppOptions.get("enableScripting") + }); + pdfRenderingQueue.setViewer(this.pdfViewer); + pdfLinkService.setViewer(this.pdfViewer); + pdfScriptingManager.setViewer(this.pdfViewer); + this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n: this.l10n + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + + if (!this.supportsIntegratedFind) { + this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + } + + this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); + this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") + }); + this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); + this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + + if (this.supportsFullscreen) { + this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + container, + pdfViewer: this.pdfViewer, + eventBus + }); + } + + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n, this.isViewerEmbedded); + this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + linkService: pdfLinkService + }); + this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + downloadManager + }); + this.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + pdfViewer: this.pdfViewer, + pdfThumbnailViewer: this.pdfThumbnailViewer, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); + }, + + run(config) { this.initialize(config).then(webViewerInitialized); }, @@ -812,12 +802,12 @@ var PDFViewerApplication = { return this._initializedCapability.promise; }, - zoomIn: function zoomIn(ticks) { + zoomIn(ticks) { if (this.pdfViewer.isInPresentationMode) { return; } - var newScale = this.pdfViewer.currentScale; + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2); @@ -827,12 +817,13 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomOut: function zoomOut(ticks) { + + zoomOut(ticks) { if (this.pdfViewer.isInPresentationMode) { return; } - var newScale = this.pdfViewer.currentScale; + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2); @@ -842,7 +833,8 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomReset: function zoomReset() { + + zoomReset() { if (this.pdfViewer.isInPresentationMode) { return; } @@ -854,16 +846,12 @@ var PDFViewerApplication = { return this.pdfDocument ? this.pdfDocument.numPages : 0; }, - set page(val) { - this.pdfViewer.currentPageNumber = val; - }, - get page() { return this.pdfViewer.currentPageNumber; }, - get printing() { - return !!this.printService; + set page(val) { + this.pdfViewer.currentPageNumber = val; }, get supportsPrinting() { @@ -871,11 +859,10 @@ var PDFViewerApplication = { }, get supportsFullscreen() { - var support; - var doc = document.documentElement; - support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen || doc.msRequestFullscreen); + const doc = document.documentElement; + let support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen); - if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false || document.msFullscreenEnabled === false) { + if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false) { support = false; } @@ -891,7 +878,7 @@ var PDFViewerApplication = { }, get loadingBar() { - var bar = new _ui_utils.ProgressBar("#loadingBar"); + const bar = new _ui_utils.ProgressBar("#loadingBar"); return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); }, @@ -899,14 +886,14 @@ var PDFViewerApplication = { return this.externalServices.supportedMouseWheelZoomModifierKeys; }, - initPassiveLoading: function initPassiveLoading() { + initPassiveLoading() { throw new Error("Not implemented: initPassiveLoading"); }, - setTitleUsingUrl: function setTitleUsingUrl() { - var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + + setTitleUsingUrl(url = "") { this.url = url; this.baseUrl = url.split("#")[0]; - var title = (0, _ui_utils.getPDFFileNameFromURL)(url, ""); + let title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, ""); if (!title) { try { @@ -918,327 +905,360 @@ var PDFViewerApplication = { this.setTitle(title); }, - setTitle: function setTitle(title) { + + setTitle(title) { if (this.isViewerEmbedded) { return; } document.title = title; }, - close: function close() { - var _this6 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { - var errorWrapper, promise; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - errorWrapper = _this6.appConfig.errorWrapper.container; - errorWrapper.setAttribute("hidden", "true"); - - if (_this6.pdfLoadingTask) { - _context6.next = 4; - break; - } - - return _context6.abrupt("return", undefined); - - case 4: - promise = _this6.pdfLoadingTask.destroy(); - _this6.pdfLoadingTask = null; - - if (_this6.pdfDocument) { - _this6.pdfDocument = null; - - _this6.pdfThumbnailViewer.setDocument(null); - - _this6.pdfViewer.setDocument(null); - - _this6.pdfLinkService.setDocument(null); - - _this6.pdfDocumentProperties.setDocument(null); - } - - _this6.store = null; - _this6.isInitialViewSet = false; - _this6.downloadComplete = false; - _this6.url = ""; - _this6.baseUrl = ""; - _this6.contentDispositionFilename = null; - - _this6.pdfSidebar.reset(); - - _this6.pdfOutlineViewer.reset(); - - _this6.pdfAttachmentViewer.reset(); - - if (_this6.pdfHistory) { - _this6.pdfHistory.reset(); - } - - if (_this6.findBar) { - _this6.findBar.reset(); - } - - _this6.toolbar.reset(); - - _this6.secondaryToolbar.reset(); - - if (typeof PDFBug !== "undefined") { - PDFBug.cleanup(); - } - - return _context6.abrupt("return", promise); - - case 22: - case "end": - return _context6.stop(); - } - } - }, _callee6); - }))(); + get _docFilename() { + return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url); }, - open: function open(file, args) { - var _this7 = this; - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee7() { - var workerParameters, key, parameters, apiParameters, _key, value, _key2, _value, loadingTask; - - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - if (!_this7.pdfLoadingTask) { - _context7.next = 3; - break; - } - - _context7.next = 3; - return _this7.close(); - - case 3: - workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); - - for (key in workerParameters) { - _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; - } - - parameters = Object.create(null); - - if (typeof file === "string") { - _this7.setTitleUsingUrl(file); - - parameters.url = file; - } else if (file && "byteLength" in file) { - parameters.data = file; - } else if (file.url && file.originalUrl) { - _this7.setTitleUsingUrl(file.originalUrl); - - parameters.url = file.url; - } - - apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); - - for (_key in apiParameters) { - value = apiParameters[_key]; - - if (_key === "docBaseUrl" && !value) {} - - parameters[_key] = value; - } - - if (args) { - for (_key2 in args) { - _value = args[_key2]; - - if (_key2 === "length") { - _this7.pdfDocumentProperties.setFileSize(_value); - } - - parameters[_key2] = _value; - } - } - - loadingTask = (0, _pdfjsLib.getDocument)(parameters); - _this7.pdfLoadingTask = loadingTask; - - loadingTask.onPassword = function (updateCallback, reason) { - _this7.pdfLinkService.externalLinkEnabled = false; - - _this7.passwordPrompt.setUpdateCallback(updateCallback, reason); - - _this7.passwordPrompt.open(); - }; - - loadingTask.onProgress = function (_ref) { - var loaded = _ref.loaded, - total = _ref.total; - - _this7.progress(loaded / total); - }; - - loadingTask.onUnsupportedFeature = _this7.fallback.bind(_this7); - return _context7.abrupt("return", loadingTask.promise.then(function (pdfDocument) { - _this7.load(pdfDocument); - }, function (exception) { - if (loadingTask !== _this7.pdfLoadingTask) { - return undefined; - } - - var message = exception && exception.message; - var loadingErrorMessage; - - if (exception instanceof _pdfjsLib.InvalidPDFException) { - loadingErrorMessage = _this7.l10n.get("invalid_file_error", null, "Invalid or corrupted PDF file."); - } else if (exception instanceof _pdfjsLib.MissingPDFException) { - loadingErrorMessage = _this7.l10n.get("missing_file_error", null, "Missing PDF file."); - } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { - loadingErrorMessage = _this7.l10n.get("unexpected_response_error", null, "Unexpected server response."); - } else { - loadingErrorMessage = _this7.l10n.get("loading_error", null, "An error occurred while loading the PDF."); - } - - return loadingErrorMessage.then(function (msg) { - _this7.error(msg, { - message: message - }); - - throw new Error(msg); - }); - })); - - case 16: - case "end": - return _context7.stop(); - } - } - }, _callee7); - }))(); - }, - download: function download() { - var _this8 = this; - - function downloadByUrl() { - downloadManager.downloadUrl(url, filename); + _cancelIdleCallbacks() { + if (!this._idleCallbacks.size) { + return; } - var url = this.baseUrl; - var filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); - var downloadManager = this.downloadManager; + for (const callback of this._idleCallbacks) { + window.cancelIdleCallback(callback); + } - downloadManager.onerror = function (err) { - _this8.error("PDF failed to download: ".concat(err)); + this._idleCallbacks.clear(); + }, + + async close() { + this._unblockDocumentLoadEvent(); + + const { + container + } = this.appConfig.errorWrapper; + container.hidden = true; + + if (!this.pdfLoadingTask) { + return; + } + + if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { + try { + await this.save({ + sourceEventType: "save" + }); + } catch (reason) {} + } + + const promises = []; + promises.push(this.pdfLoadingTask.destroy()); + this.pdfLoadingTask = null; + + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties.setDocument(null); + } + + webViewerResetPermissions(); + this.pdfLinkService.externalLinkEnabled = true; + this._fellback = false; + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ""; + this.baseUrl = ""; + this.documentInfo = null; + this.metadata = null; + this._contentDispositionFilename = null; + this._contentLength = null; + this._saveInProgress = false; + + this._cancelIdleCallbacks(); + + promises.push(this.pdfScriptingManager.destroyPromise); + this.pdfSidebar.reset(); + this.pdfOutlineViewer.reset(); + this.pdfAttachmentViewer.reset(); + this.pdfLayerViewer.reset(); + + if (this.pdfHistory) { + this.pdfHistory.reset(); + } + + if (this.findBar) { + this.findBar.reset(); + } + + this.toolbar.reset(); + this.secondaryToolbar.reset(); + + if (typeof PDFBug !== "undefined") { + PDFBug.cleanup(); + } + + await Promise.all(promises); + }, + + async open(file, args) { + if (this.pdfLoadingTask) { + await this.close(); + } + + const workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + + for (const key in workerParameters) { + _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; + } + + const parameters = Object.create(null); + + if (typeof file === "string") { + this.setTitleUsingUrl(file); + parameters.url = file; + } else if (file && "byteLength" in file) { + parameters.data = file; + } else if (file.url && file.originalUrl) { + this.setTitleUsingUrl(file.originalUrl); + parameters.url = file.url; + } + + const apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + + for (const key in apiParameters) { + let value = apiParameters[key]; + + if (key === "docBaseUrl" && !value) {} + + parameters[key] = value; + } + + if (args) { + for (const key in args) { + parameters[key] = args[key]; + } + } + + const loadingTask = (0, _pdfjsLib.getDocument)(parameters); + this.pdfLoadingTask = loadingTask; + + loadingTask.onPassword = (updateCallback, reason) => { + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); }; - if (!this.pdfDocument || !this.downloadComplete) { - downloadByUrl(); + loadingTask.onProgress = ({ + loaded, + total + }) => { + this.progress(loaded / total); + }; + + loadingTask.onUnsupportedFeature = this.fallback.bind(this); + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, exception => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + + let key = "loading_error"; + + if (exception instanceof _pdfjsLib.InvalidPDFException) { + key = "invalid_file_error"; + } else if (exception instanceof _pdfjsLib.MissingPDFException) { + key = "missing_file_error"; + } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { + key = "unexpected_response_error"; + } + + return this.l10n.get(key).then(msg => { + this._documentError(msg, { + message: exception?.message + }); + + throw exception; + }); + }); + }, + + _ensureDownloadComplete() { + if (this.pdfDocument && this.downloadComplete) { return; } - this.pdfDocument.getData().then(function (data) { - var blob = new Blob([data], { + throw new Error("PDF document not downloaded."); + }, + + async download({ + sourceEventType = "download" + } = {}) { + const url = this.baseUrl, + filename = this._docFilename; + + try { + this._ensureDownloadComplete(); + + const data = await this.pdfDocument.getData(); + const blob = new Blob([data], { type: "application/pdf" }); - downloadManager.download(blob, url, filename); - })["catch"](downloadByUrl); + await this.downloadManager.download(blob, url, filename, sourceEventType); + } catch (reason) { + await this.downloadManager.downloadUrl(url, filename); + } }, - fallback: function fallback(featureId) { - if (this.fellback) { + + async save({ + sourceEventType = "download" + } = {}) { + if (this._saveInProgress) { return; } - this.fellback = true; + this._saveInProgress = true; + await this.pdfScriptingManager.dispatchWillSave(); + const url = this.baseUrl, + filename = this._docFilename; + + try { + this._ensureDownloadComplete(); + + const data = await this.pdfDocument.saveDocument(); + const blob = new Blob([data], { + type: "application/pdf" + }); + await this.downloadManager.download(blob, url, filename, sourceEventType); + } catch (reason) { + await this.download({ + sourceEventType + }); + } finally { + await this.pdfScriptingManager.dispatchDidSave(); + this._saveInProgress = false; + } + }, + + downloadOrSave(options) { + if (this.pdfDocument?.annotationStorage.size > 0) { + this.save(options); + } else { + this.download(options); + } + }, + + fallback(featureId) { + this.externalServices.reportTelemetry({ + type: "unsupportedFeature", + featureId + }); + + if (this._fellback) { + return; + } + + this._fellback = true; this.externalServices.fallback({ - featureId: featureId, + featureId, url: this.baseUrl - }, function response(download) { + }).then(download => { if (!download) { return; } - PDFViewerApplication.download(); + this.download({ + sourceEventType: "download" + }); }); }, - error: function error(message, moreInfo) { - var moreInfoText = [this.l10n.get("error_version_info", { + + _documentError(message, moreInfo = null) { + this._unblockDocumentLoadEvent(); + + this._otherError(message, moreInfo); + }, + + _otherError(message, moreInfo = null) { + const moreInfoText = [this.l10n.get("error_version_info", { version: _pdfjsLib.version || "?", build: _pdfjsLib.build || "?" - }, "PDF.js v{{version}} (build: {{build}})")]; + })]; if (moreInfo) { moreInfoText.push(this.l10n.get("error_message", { message: moreInfo.message - }, "Message: {{message}}")); + })); if (moreInfo.stack) { moreInfoText.push(this.l10n.get("error_stack", { stack: moreInfo.stack - }, "Stack: {{stack}}")); + })); } else { if (moreInfo.filename) { moreInfoText.push(this.l10n.get("error_file", { file: moreInfo.filename - }, "File: {{file}}")); + })); } if (moreInfo.lineNumber) { moreInfoText.push(this.l10n.get("error_line", { line: moreInfo.lineNumber - }, "Line: {{line}}")); + })); } } } - var errorWrapperConfig = this.appConfig.errorWrapper; - var errorWrapper = errorWrapperConfig.container; - errorWrapper.removeAttribute("hidden"); - var errorMessage = errorWrapperConfig.errorMessage; + const errorWrapperConfig = this.appConfig.errorWrapper; + const errorWrapper = errorWrapperConfig.container; + errorWrapper.hidden = false; + const errorMessage = errorWrapperConfig.errorMessage; errorMessage.textContent = message; - var closeButton = errorWrapperConfig.closeButton; + const closeButton = errorWrapperConfig.closeButton; closeButton.onclick = function () { - errorWrapper.setAttribute("hidden", "true"); + errorWrapper.hidden = true; }; - var errorMoreInfo = errorWrapperConfig.errorMoreInfo; - var moreInfoButton = errorWrapperConfig.moreInfoButton; - var lessInfoButton = errorWrapperConfig.lessInfoButton; + const errorMoreInfo = errorWrapperConfig.errorMoreInfo; + const moreInfoButton = errorWrapperConfig.moreInfoButton; + const lessInfoButton = errorWrapperConfig.lessInfoButton; moreInfoButton.onclick = function () { - errorMoreInfo.removeAttribute("hidden"); - moreInfoButton.setAttribute("hidden", "true"); - lessInfoButton.removeAttribute("hidden"); + errorMoreInfo.hidden = false; + moreInfoButton.hidden = true; + lessInfoButton.hidden = false; errorMoreInfo.style.height = errorMoreInfo.scrollHeight + "px"; }; lessInfoButton.onclick = function () { - errorMoreInfo.setAttribute("hidden", "true"); - moreInfoButton.removeAttribute("hidden"); - lessInfoButton.setAttribute("hidden", "true"); + errorMoreInfo.hidden = true; + moreInfoButton.hidden = false; + lessInfoButton.hidden = true; }; moreInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; lessInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; closeButton.oncontextmenu = _ui_utils.noContextMenuHandler; - moreInfoButton.removeAttribute("hidden"); - lessInfoButton.setAttribute("hidden", "true"); - Promise.all(moreInfoText).then(function (parts) { + moreInfoButton.hidden = false; + lessInfoButton.hidden = true; + Promise.all(moreInfoText).then(parts => { errorMoreInfo.value = parts.join("\n"); }); }, - progress: function progress(level) { - var _this9 = this; + progress(level) { if (this.downloadComplete) { return; } - var percent = Math.round(level * 100); + const percent = Math.round(level * 100); if (percent > this.loadingBar.percent || isNaN(percent)) { this.loadingBar.percent = percent; - var disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams["disableAutoFetch"] : _app_options.AppOptions.get("disableAutoFetch"); + const disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams.disableAutoFetch : _app_options.AppOptions.get("disableAutoFetch"); if (disableAutoFetch && percent) { if (this.disableAutoFetchLoadingBarTimeout) { @@ -1247,418 +1267,424 @@ var PDFViewerApplication = { } this.loadingBar.show(); - this.disableAutoFetchLoadingBarTimeout = setTimeout(function () { - _this9.loadingBar.hide(); - - _this9.disableAutoFetchLoadingBarTimeout = null; + this.disableAutoFetchLoadingBarTimeout = setTimeout(() => { + this.loadingBar.hide(); + this.disableAutoFetchLoadingBarTimeout = null; }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); } } }, - load: function load(pdfDocument) { - var _this10 = this; + load(pdfDocument) { this.pdfDocument = pdfDocument; - pdfDocument.getDownloadInfo().then(function () { - _this10.downloadComplete = true; - - _this10.loadingBar.hide(); - - firstPagePromise.then(function () { - _this10.eventBus.dispatch("documentloaded", { - source: _this10 + pdfDocument.getDownloadInfo().then(({ + length + }) => { + this._contentLength = length; + this.downloadComplete = true; + this.loadingBar.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this }); }); }); - var pageLayoutPromise = pdfDocument.getPageLayout()["catch"](function () {}); - var pageModePromise = pdfDocument.getPageMode()["catch"](function () {}); - var openActionPromise = pdfDocument.getOpenAction()["catch"](function () {}); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(function () {}); + const pageModePromise = pdfDocument.getPageMode().catch(function () {}); + const openActionPromise = pdfDocument.getOpenAction().catch(function () {}); this.toolbar.setPagesCount(pdfDocument.numPages, false); this.secondaryToolbar.setPagesCount(pdfDocument.numPages); - var store = this.store = new _view_history.ViewHistory(pdfDocument.fingerprint); - var baseDocumentUrl; + let baseDocumentUrl; baseDocumentUrl = null; this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); this.pdfDocumentProperties.setDocument(pdfDocument, this.url); - var pdfViewer = this.pdfViewer; + const pdfViewer = this.pdfViewer; pdfViewer.setDocument(pdfDocument); - var firstPagePromise = pdfViewer.firstPagePromise, - onePageRendered = pdfViewer.onePageRendered, - pagesPromise = pdfViewer.pagesPromise; - var pdfThumbnailViewer = this.pdfThumbnailViewer; + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + const pdfThumbnailViewer = this.pdfThumbnailViewer; pdfThumbnailViewer.setDocument(pdfDocument); - firstPagePromise.then(function (pdfPage) { - _this10.loadingBar.setWidth(_this10.appConfig.viewerContainer); + const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ + page: null, + zoom: _ui_utils.DEFAULT_SCALE_VALUE, + scrollLeft: "0", + scrollTop: "0", + rotation: null, + sidebarView: _ui_utils.SidebarView.UNKNOWN, + scrollMode: _ui_utils.ScrollMode.UNKNOWN, + spreadMode: _ui_utils.SpreadMode.UNKNOWN + }).catch(() => { + return Object.create(null); + }); + firstPagePromise.then(pdfPage => { + this.loadingBar.setWidth(this.appConfig.viewerContainer); - var storePromise = store.getMultiple({ - page: null, - zoom: _ui_utils.DEFAULT_SCALE_VALUE, - scrollLeft: "0", - scrollTop: "0", - rotation: null, - sidebarView: _pdf_sidebar.SidebarView.UNKNOWN, - scrollMode: _ui_utils.ScrollMode.UNKNOWN, - spreadMode: _ui_utils.SpreadMode.UNKNOWN - })["catch"](function () {}); - Promise.all([_ui_utils.animationStarted, storePromise, pageLayoutPromise, pageModePromise, openActionPromise]).then( /*#__PURE__*/function () { - var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee8(_ref3) { - var _ref4, timeStamp, _ref4$, values, pageLayout, pageMode, openAction, viewOnLoad, initialBookmark, zoom, hash, rotation, sidebarView, scrollMode, spreadMode; + this._initializeAnnotationStorageCallbacks(pdfDocument); - return _regenerator["default"].wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _ref4 = _slicedToArray(_ref3, 5), timeStamp = _ref4[0], _ref4$ = _ref4[1], values = _ref4$ === void 0 ? {} : _ref4$, pageLayout = _ref4[2], pageMode = _ref4[3], openAction = _ref4[4]; - viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); + Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); - _this10._initializePdfHistory({ - fingerprint: pdfDocument.fingerprint, - viewOnLoad: viewOnLoad, - initialDest: openAction && openAction.dest - }); + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprints[0], + viewOnLoad, + initialDest: openAction?.dest + }); - initialBookmark = _this10.initialBookmark; - zoom = _app_options.AppOptions.get("defaultZoomValue"); - hash = zoom ? "zoom=".concat(zoom) : null; - rotation = null; - sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); - scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); - spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); + const initialBookmark = this.initialBookmark; - if (values.page && viewOnLoad !== ViewOnLoad.INITIAL) { - hash = "page=".concat(values.page, "&zoom=").concat(zoom || values.zoom, ",") + "".concat(values.scrollLeft, ",").concat(values.scrollTop); - rotation = parseInt(values.rotation, 10); + const zoom = _app_options.AppOptions.get("defaultZoomValue"); - if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = values.sidebarView | 0; - } + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; - if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { - scrollMode = values.scrollMode | 0; - } + let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); - if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = values.spreadMode | 0; - } - } + let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); - if (pageMode && sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = apiPageModeToSidebarView(pageMode); - } + let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); - if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = apiPageLayoutToSpreadMode(pageLayout); - } + if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); - _this10.setInitialView(hash, { - rotation: rotation, - sidebarView: sidebarView, - scrollMode: scrollMode, - spreadMode: spreadMode - }); + if (sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } - _this10.eventBus.dispatch("documentinit", { - source: _this10 - }); + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } - if (!_this10.isViewerEmbedded) { - pdfViewer.focus(); - } + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } - _context8.next = 18; - return Promise.race([pagesPromise, new Promise(function (resolve) { - setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); - })]); + if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode); + } - case 18: - if (!(!initialBookmark && !hash)) { - _context8.next = 20; - break; - } + if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(pageLayout); + } - return _context8.abrupt("return"); + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); - case 20: - if (!pdfViewer.hasEqualPageSizes) { - _context8.next = 22; - break; - } + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } - return _context8.abrupt("return"); + this._initializePermissions(pdfDocument); - case 22: - _this10.initialBookmark = initialBookmark; - pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); - _this10.setInitialView(hash); + if (!initialBookmark && !hash) { + return; + } - case 25: - case "end": - return _context8.stop(); - } - } - }, _callee8); - })); + if (pdfViewer.hasEqualPageSizes) { + return; + } - return function (_x) { - return _ref2.apply(this, arguments); - }; - }())["catch"](function () { - _this10.setInitialView(); + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); }).then(function () { pdfViewer.update(); }); }); - pdfDocument.getPageLabels().then(function (labels) { - if (!labels || _app_options.AppOptions.get("disablePageLabels")) { - return; - } + pagesPromise.then(() => { + this._unblockDocumentLoadEvent(); - var numLabels = labels.length; - - if (numLabels !== _this10.pagesCount) { - console.error("The number of Page Labels does not match " + "the number of pages in the document."); - return; - } - - var i = 0; - - while (i < numLabels && labels[i] === (i + 1).toString()) { - i++; - } - - if (i === numLabels) { - return; - } - - pdfViewer.setPageLabels(labels); - pdfThumbnailViewer.setPageLabels(labels); - - _this10.toolbar.setPagesCount(pdfDocument.numPages, true); - - _this10.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + this._initializeAutoPrint(pdfDocument, openActionPromise); }); - pagesPromise.then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee9() { - var _ref6, _ref7, openAction, javaScript, triggerAutoPrint, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, js; - - return _regenerator["default"].wrap(function _callee9$(_context9) { - while (1) { - switch (_context9.prev = _context9.next) { - case 0: - _context9.next = 2; - return Promise.all([openActionPromise, pdfDocument.getJavaScript()]); - - case 2: - _ref6 = _context9.sent; - _ref7 = _slicedToArray(_ref6, 2); - openAction = _ref7[0]; - javaScript = _ref7[1]; - triggerAutoPrint = false; - - if (openAction && openAction.action === "Print") { - triggerAutoPrint = true; - } - - if (!javaScript) { - _context9.next = 38; - break; - } - - javaScript.some(function (js) { - if (!js) { - return false; - } - - console.warn("Warning: JavaScript is not supported"); - - _this10.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); - - return true; - }); - - if (triggerAutoPrint) { - _context9.next = 38; - break; - } - - _iteratorNormalCompletion = true; - _didIteratorError = false; - _iteratorError = undefined; - _context9.prev = 14; - _iterator = javaScript[Symbol.iterator](); - - case 16: - if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { - _context9.next = 24; - break; - } - - js = _step.value; - - if (!(js && _ui_utils.AutoPrintRegExp.test(js))) { - _context9.next = 21; - break; - } - - triggerAutoPrint = true; - return _context9.abrupt("break", 24); - - case 21: - _iteratorNormalCompletion = true; - _context9.next = 16; - break; - - case 24: - _context9.next = 30; - break; - - case 26: - _context9.prev = 26; - _context9.t0 = _context9["catch"](14); - _didIteratorError = true; - _iteratorError = _context9.t0; - - case 30: - _context9.prev = 30; - _context9.prev = 31; - - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - - case 33: - _context9.prev = 33; - - if (!_didIteratorError) { - _context9.next = 36; - break; - } - - throw _iteratorError; - - case 36: - return _context9.finish(33); - - case 37: - return _context9.finish(30); - - case 38: - if (_this10.supportsPrinting) { - _context9.next = 40; - break; - } - - return _context9.abrupt("return"); - - case 40: - if (triggerAutoPrint) { - setTimeout(function () { - window.print(); - }); - } - - case 41: - case "end": - return _context9.stop(); - } + onePageRendered.then(() => { + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { + return; } - }, _callee9, null, [[14, 26, 30, 38], [31,, 33, 37]]); - }))); - onePageRendered.then(function () { - pdfDocument.getOutline().then(function (outline) { - _this10.pdfOutlineViewer.render({ - outline: outline + + this.pdfOutlineViewer.render({ + outline, + pdfDocument }); }); - pdfDocument.getAttachments().then(function (attachments) { - _this10.pdfAttachmentViewer.render({ - attachments: attachments + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; + } + + this.pdfAttachmentViewer.render({ + attachments }); }); + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; + } + + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); + + if ("requestIdleCallback" in window) { + const callback = window.requestIdleCallback(() => { + this._collectTelemetry(pdfDocument); + + this._idleCallbacks.delete(callback); + }, { + timeout: 1000 + }); + + this._idleCallbacks.add(callback); + } }); - pdfDocument.getMetadata().then(function (_ref8) { - var info = _ref8.info, - metadata = _ref8.metadata, - contentDispositionFilename = _ref8.contentDispositionFilename; - _this10.documentInfo = info; - _this10.metadata = metadata; - _this10.contentDispositionFilename = contentDispositionFilename; - console.log("PDF " + pdfDocument.fingerprint + " [" + info.PDFFormatVersion + " " + (info.Producer || "-").trim() + " / " + (info.Creator || "-").trim() + "]" + " (PDF.js: " + (_pdfjsLib.version || "-") + (_app_options.AppOptions.get("enableWebGL") ? " [WebGL]" : "") + ")"); - var pdfTitle; - var infoTitle = info && info["Title"]; - if (infoTitle) { - pdfTitle = infoTitle; - } + this._initializePageLabels(pdfDocument); - var metadataTitle = metadata && metadata.get("dc:title"); + this._initializeMetadata(pdfDocument); + }, - if (metadataTitle) { - if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { - pdfTitle = metadataTitle; - } - } - - if (pdfTitle) { - _this10.setTitle("".concat(pdfTitle, " - ").concat(contentDispositionFilename || document.title)); - } else if (contentDispositionFilename) { - _this10.setTitle(contentDispositionFilename); - } - - if (info.IsAcroFormPresent) { - console.warn("Warning: AcroForm/XFA is not supported"); - - _this10.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); - } - - var versionId = "other"; - var KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; - - if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { - versionId = "v".concat(info.PDFFormatVersion.replace(".", "_")); - } - - var generatorId = "other"; - var KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; - - if (info.Producer) { - var producer = info.Producer.toLowerCase(); - KNOWN_GENERATORS.some(function (generator) { - if (!producer.includes(generator)) { - return false; - } - - generatorId = generator.replace(/[ .\-]/g, "_"); - return true; + async _scriptingDocProperties(pdfDocument) { + if (!this.documentInfo) { + await new Promise(resolve => { + this.eventBus._on("metadataloaded", resolve, { + once: true }); - } - - var formType = null; - - if (info.IsAcroFormPresent) { - formType = info.IsXFAPresent ? "xfa" : "acroform"; - } - - _this10.externalServices.reportTelemetry({ - type: "documentInfo", - version: versionId, - generator: generatorId, - formType: formType }); + + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + + if (!this._contentLength) { + await new Promise(resolve => { + this.eventBus._on("documentloaded", resolve, { + once: true + }); + }); + + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + + return { ...this.documentInfo, + baseURL: this.baseUrl, + filesize: this._contentLength, + filename: this._docFilename, + metadata: this.metadata?.getRaw(), + authors: this.metadata?.get("dc:creator"), + numPages: this.pagesCount, + URL: this.url + }; + }, + + async _collectTelemetry(pdfDocument) { + const markInfo = await this.pdfDocument.getMarkInfo(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + const tagged = markInfo?.Marked || false; + this.externalServices.reportTelemetry({ + type: "tagged", + tagged }); }, - _initializePdfHistory: function _initializePdfHistory(_ref9) { - var fingerprint = _ref9.fingerprint, - viewOnLoad = _ref9.viewOnLoad, - _ref9$initialDest = _ref9.initialDest, - initialDest = _ref9$initialDest === void 0 ? null : _ref9$initialDest; - if (_app_options.AppOptions.get("disableHistory") || this.isViewerEmbedded) { + async _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, javaScript] = await Promise.all([openActionPromise, !this.pdfViewer.enableScripting ? pdfDocument.getJavaScript() : null]); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + let triggerAutoPrint = false; + + if (openAction?.action === "Print") { + triggerAutoPrint = true; + } + + if (javaScript) { + javaScript.some(js => { + if (!js) { + return false; + } + + console.warn("Warning: JavaScript support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); + return true; + }); + + if (!triggerAutoPrint) { + for (const js of javaScript) { + if (js && _ui_utils.AutoPrintRegExp.test(js)) { + triggerAutoPrint = true; + break; + } + } + } + } + + if (triggerAutoPrint) { + this.triggerPrinting(); + } + }, + + async _initializeMetadata(pdfDocument) { + const { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + this.documentInfo = info; + this.metadata = metadata; + this._contentDispositionFilename ?? (this._contentDispositionFilename = contentDispositionFilename); + this._contentLength ?? (this._contentLength = contentLength); + console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "-"})`); + let pdfTitle = info?.Title; + const metadataTitle = metadata?.get("dc:title"); + + if (metadataTitle) { + if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { + pdfTitle = metadataTitle; + } + } + + if (pdfTitle) { + this.setTitle(`${pdfTitle} - ${contentDispositionFilename || document.title}`); + } else if (contentDispositionFilename) { + this.setTitle(contentDispositionFilename); + } + + if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { + console.warn("Warning: XFA support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderInteractiveForms) { + console.warn("Warning: Interactive form support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } + + if (info.IsSignaturesPresent) { + console.warn("Warning: Digital signatures validation is not supported"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.signatures); + } + + let versionId = "other"; + + if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { + versionId = `v${info.PDFFormatVersion.replace(".", "_")}`; + } + + let generatorId = "other"; + + if (info.Producer) { + const producer = info.Producer.toLowerCase(); + KNOWN_GENERATORS.some(function (generator) { + if (!producer.includes(generator)) { + return false; + } + + generatorId = generator.replace(/[ .-]/g, "_"); + return true; + }); + } + + let formType = null; + + if (info.IsXFAPresent) { + formType = "xfa"; + } else if (info.IsAcroFormPresent) { + formType = "acroform"; + } + + this.externalServices.reportTelemetry({ + type: "documentInfo", + version: versionId, + generator: generatorId, + formType + }); + this.eventBus.dispatch("metadataloaded", { + source: this + }); + }, + + async _initializePageLabels(pdfDocument) { + const labels = await pdfDocument.getPageLabels(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!labels || _app_options.AppOptions.get("disablePageLabels")) { + return; + } + + const numLabels = labels.length; + + if (numLabels !== this.pagesCount) { + console.error("The number of Page Labels does not match the number of pages in the document."); + return; + } + + let i = 0; + + while (i < numLabels && labels[i] === (i + 1).toString()) { + i++; + } + + if (i === numLabels) { + return; + } + + const { + pdfViewer, + pdfThumbnailViewer, + toolbar + } = this; + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer.setPageLabels(labels); + toolbar.setPagesCount(numLabels, true); + toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }, + + _initializePdfHistory({ + fingerprint, + viewOnLoad, + initialDest = null + }) { + if (this.isViewerEmbedded || _app_options.AppOptions.get("disableHistory")) { return; } this.pdfHistory.initialize({ - fingerprint: fingerprint, + fingerprint, resetHistory: viewOnLoad === ViewOnLoad.INITIAL, updateUrl: _app_options.AppOptions.get("historyUpdateUrl") }); @@ -1676,28 +1702,62 @@ var PDFViewerApplication = { }); } }, - setInitialView: function setInitialView(storedHash) { - var _this11 = this; - var _ref10 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - rotation = _ref10.rotation, - sidebarView = _ref10.sidebarView, - scrollMode = _ref10.scrollMode, - spreadMode = _ref10.spreadMode; + async _initializePermissions(pdfDocument) { + const permissions = await pdfDocument.getPermissions(); - var setRotation = function setRotation(angle) { + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!permissions || !_app_options.AppOptions.get("enablePermissions")) { + return; + } + + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { + this.appConfig.viewerContainer.classList.add(ENABLE_PERMISSIONS_CLASS); + } + }, + + _initializeAnnotationStorageCallbacks(pdfDocument) { + if (pdfDocument !== this.pdfDocument) { + return; + } + + const { + annotationStorage + } = pdfDocument; + + annotationStorage.onSetModified = () => { + window.addEventListener("beforeunload", beforeUnload); + this._annotationStorageModified = true; + }; + + annotationStorage.onResetModified = () => { + window.removeEventListener("beforeunload", beforeUnload); + delete this._annotationStorageModified; + }; + }, + + setInitialView(storedHash, { + rotation, + sidebarView, + scrollMode, + spreadMode + } = {}) { + const setRotation = angle => { if ((0, _ui_utils.isValidRotation)(angle)) { - _this11.pdfViewer.pagesRotation = angle; + this.pdfViewer.pagesRotation = angle; } }; - var setViewerModes = function setViewerModes(scroll, spread) { + const setViewerModes = (scroll, spread) => { if ((0, _ui_utils.isValidScrollMode)(scroll)) { - _this11.pdfViewer.scrollMode = scroll; + this.pdfViewer.scrollMode = scroll; } if ((0, _ui_utils.isValidSpreadMode)(spread)) { - _this11.pdfViewer.spreadMode = spread; + this.pdfViewer.spreadMode = spread; } }; @@ -1722,47 +1782,51 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } }, - cleanup: function cleanup() { + + _cleanup() { if (!this.pdfDocument) { return; } this.pdfViewer.cleanup(); this.pdfThumbnailViewer.cleanup(); - - if (this.pdfViewer.renderer !== _ui_utils.RendererType.SVG) { - this.pdfDocument.cleanup(); - } + this.pdfDocument.cleanup(this.pdfViewer.renderer === _ui_utils.RendererType.SVG); }, - forceRendering: function forceRendering() { - this.pdfRenderingQueue.printing = this.printing; + + forceRendering() { + this.pdfRenderingQueue.printing = !!this.printService; this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.isThumbnailViewVisible; this.pdfRenderingQueue.renderHighestPriority(); }, - beforePrint: function beforePrint() { - var _this12 = this; + + beforePrint() { + this.pdfScriptingManager.dispatchWillPrint(); if (this.printService) { return; } if (!this.supportsPrinting) { - this.l10n.get("printing_not_supported", null, "Warning: Printing is not fully supported by this browser.").then(function (printMessage) { - _this12.error(printMessage); + this.l10n.get("printing_not_supported").then(msg => { + this._otherError(msg); }); return; } if (!this.pdfViewer.pageViewsReady) { - this.l10n.get("printing_not_ready", null, "Warning: The PDF is not fully loaded for printing.").then(function (notReadyMessage) { - window.alert(notReadyMessage); + this.l10n.get("printing_not_ready").then(msg => { + window.alert(msg); }); return; } - var pagesOverview = this.pdfViewer.getPagesOverview(); - var printContainer = this.appConfig.printContainer; - var printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, this.l10n); + const pagesOverview = this.pdfViewer.getPagesOverview(); + const printContainer = this.appConfig.printContainer; + + const printResolution = _app_options.AppOptions.get("printResolution"); + + const optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise; + const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this.l10n); this.printService = printService; this.forceRendering(); printService.layout(); @@ -1770,32 +1834,47 @@ var PDFViewerApplication = { type: "print" }); }, - afterPrint: function afterPrint() { + + afterPrint() { + this.pdfScriptingManager.dispatchDidPrint(); + if (this.printService) { this.printService.destroy(); this.printService = null; + + if (this.pdfDocument) { + this.pdfDocument.annotationStorage.resetModified(); + } } this.forceRendering(); }, - rotatePages: function rotatePages(delta) { - if (!this.pdfDocument) { - return; - } - var newRotation = (this.pdfViewer.pagesRotation + 360 + delta) % 360; - this.pdfViewer.pagesRotation = newRotation; + rotatePages(delta) { + this.pdfViewer.pagesRotation += delta; }, - requestPresentationMode: function requestPresentationMode() { + + requestPresentationMode() { if (!this.pdfPresentationMode) { return; } this.pdfPresentationMode.request(); }, - bindEvents: function bindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; + + triggerPrinting() { + if (!this.supportsPrinting) { + return; + } + + window.print(); + }, + + bindEvents() { + const { + eventBus, + _boundEvents + } = this; _boundEvents.beforePrint = this.beforePrint.bind(this); _boundEvents.afterPrint = this.afterPrint.bind(this); @@ -1831,6 +1910,8 @@ var PDFViewerApplication = { eventBus._on("download", webViewerDownload); + eventBus._on("save", webViewerSave); + eventBus._on("firstpage", webViewerFirstPage); eventBus._on("lastpage", webViewerLastPage); @@ -1853,6 +1934,8 @@ var PDFViewerApplication = { eventBus._on("rotateccw", webViewerRotateCcw); + eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig); + eventBus._on("switchscrollmode", webViewerSwitchScrollMode); eventBus._on("scrollmodechanged", webViewerScrollModeChanged); @@ -1871,53 +1954,78 @@ var PDFViewerApplication = { eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); + if (_app_options.AppOptions.get("pdfBug")) { + _boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug; + + eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug); + + eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug); + } + eventBus._on("fileinputchange", webViewerFileInputChange); eventBus._on("openfile", webViewerOpenFile); }, - bindWindowEvents: function bindWindowEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; - _boundEvents.windowResize = function () { + bindWindowEvents() { + const { + eventBus, + _boundEvents + } = this; + + _boundEvents.windowResize = () => { eventBus.dispatch("resize", { source: window }); }; - _boundEvents.windowHashChange = function () { + _boundEvents.windowHashChange = () => { eventBus.dispatch("hashchange", { source: window, hash: document.location.hash.substring(1) }); }; - _boundEvents.windowBeforePrint = function () { + _boundEvents.windowBeforePrint = () => { eventBus.dispatch("beforeprint", { source: window }); }; - _boundEvents.windowAfterPrint = function () { + _boundEvents.windowAfterPrint = () => { eventBus.dispatch("afterprint", { source: window }); }; + _boundEvents.windowUpdateFromSandbox = event => { + eventBus.dispatch("updatefromsandbox", { + source: window, + detail: event.detail + }); + }; + window.addEventListener("visibilitychange", webViewerVisibilityChange); window.addEventListener("wheel", webViewerWheel, { passive: false }); + window.addEventListener("touchstart", webViewerTouchStart, { + passive: false + }); window.addEventListener("click", webViewerClick); window.addEventListener("keydown", webViewerKeyDown); window.addEventListener("resize", _boundEvents.windowResize); window.addEventListener("hashchange", _boundEvents.windowHashChange); window.addEventListener("beforeprint", _boundEvents.windowBeforePrint); window.addEventListener("afterprint", _boundEvents.windowAfterPrint); + window.addEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); }, - unbindEvents: function unbindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; + + unbindEvents() { + const { + eventBus, + _boundEvents + } = this; eventBus._off("resize", webViewerResize); @@ -1951,6 +2059,8 @@ var PDFViewerApplication = { eventBus._off("download", webViewerDownload); + eventBus._off("save", webViewerSave); + eventBus._off("firstpage", webViewerFirstPage); eventBus._off("lastpage", webViewerLastPage); @@ -1973,6 +2083,8 @@ var PDFViewerApplication = { eventBus._off("rotateccw", webViewerRotateCcw); + eventBus._off("optionalcontentconfig", webViewerOptionalContentConfig); + eventBus._off("switchscrollmode", webViewerSwitchScrollMode); eventBus._off("scrollmodechanged", webViewerScrollModeChanged); @@ -1991,6 +2103,14 @@ var PDFViewerApplication = { eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState); + if (_boundEvents.reportPageStatsPDFBug) { + eventBus._off("pagerendered", _boundEvents.reportPageStatsPDFBug); + + eventBus._off("pagechanging", _boundEvents.reportPageStatsPDFBug); + + _boundEvents.reportPageStatsPDFBug = null; + } + eventBus._off("fileinputchange", webViewerFileInputChange); eventBus._off("openfile", webViewerOpenFile); @@ -1998,51 +2118,85 @@ var PDFViewerApplication = { _boundEvents.beforePrint = null; _boundEvents.afterPrint = null; }, - unbindWindowEvents: function unbindWindowEvents() { - var _boundEvents = this._boundEvents; + + unbindWindowEvents() { + const { + _boundEvents + } = this; window.removeEventListener("visibilitychange", webViewerVisibilityChange); - window.removeEventListener("wheel", webViewerWheel); + window.removeEventListener("wheel", webViewerWheel, { + passive: false + }); + window.removeEventListener("touchstart", webViewerTouchStart, { + passive: false + }); window.removeEventListener("click", webViewerClick); window.removeEventListener("keydown", webViewerKeyDown); window.removeEventListener("resize", _boundEvents.windowResize); window.removeEventListener("hashchange", _boundEvents.windowHashChange); window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint); window.removeEventListener("afterprint", _boundEvents.windowAfterPrint); + window.removeEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); _boundEvents.windowResize = null; _boundEvents.windowHashChange = null; _boundEvents.windowBeforePrint = null; _boundEvents.windowAfterPrint = null; + _boundEvents.windowUpdateFromSandbox = null; + }, + + accumulateWheelTicks(ticks) { + if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) { + this._wheelUnusedTicks = 0; + } + + this._wheelUnusedTicks += ticks; + const wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks)); + this._wheelUnusedTicks -= wholeTicks; + return wholeTicks; + }, + + _unblockDocumentLoadEvent() { + if (document.blockUnblockOnload) { + document.blockUnblockOnload(false); + } + + this._unblockDocumentLoadEvent = () => {}; + }, + + get scriptingReady() { + return this.pdfScriptingManager.ready; } + }; exports.PDFViewerApplication = PDFViewerApplication; -var validateFileURL; +let validateFileURL; { - var HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; - validateFileURL = function validateFileURL(file) { + validateFileURL = function (file) { if (file === undefined) { return; } try { - var viewerOrigin = new URL(window.location.href).origin || "null"; + const viewerOrigin = new URL(window.location.href).origin || "null"; if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { return; } - var _ref11 = new URL(file, window.location.href), - origin = _ref11.origin, - protocol = _ref11.protocol; + const { + origin, + protocol + } = new URL(file, window.location.href); if (origin !== viewerOrigin && protocol !== "blob:") { throw new Error("file origin does not match viewer's"); } } catch (ex) { - var message = ex && ex.message; - PDFViewerApplication.l10n.get("loading_error", null, "An error occurred while loading the PDF.").then(function (loadingErrorMessage) { - PDFViewerApplication.error(loadingErrorMessage, { - message: message + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, { + message: ex?.message }); }); throw ex; @@ -2050,34 +2204,16 @@ var validateFileURL; }; } -function loadFakeWorker() { - return _loadFakeWorker.apply(this, arguments); -} +async function loadFakeWorker() { + if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) { + _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc"); + } -function _loadFakeWorker() { - _loadFakeWorker = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee10() { - return _regenerator["default"].wrap(function _callee10$(_context10) { - while (1) { - switch (_context10.prev = _context10.next) { - case 0: - if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) { - _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc"); - } - - return _context10.abrupt("return", (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc())); - - case 2: - case "end": - return _context10.stop(); - } - } - }, _callee10); - })); - return _loadFakeWorker.apply(this, arguments); + return (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc()); } function loadAndEnablePDFBug(enabledTabs) { - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; return (0, _pdfjsLib.loadScript)(appConfig.debuggerScriptPath).then(function () { PDFBug.enable(enabledTabs); PDFBug.init({ @@ -2086,6 +2222,23 @@ function loadAndEnablePDFBug(enabledTabs) { }); } +function reportPageStatsPDFBug({ + pageNumber +}) { + if (typeof Stats === "undefined" || !Stats.enabled) { + return; + } + + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const pageStats = pageView?.pdfPage?.stats; + + if (!pageStats) { + return; + } + + Stats.add(pageNumber, pageStats); +} + function webViewerInitialized() { var appConfig = PDFViewerApplication.appConfig; var file; @@ -2103,7 +2256,7 @@ function webViewerInitialized() { disableDownload = 'disabledownload' in params ? params.disabledownload : 'false'; disableBookmark = 'disablebookmark' in params ? params.disablebookmark : 'false'; validateFileURL(file); - var fileInput = document.createElement("input"); + const fileInput = document.createElement("input"); fileInput.id = appConfig.openFileInputName; fileInput.className = "fileInput"; fileInput.setAttribute("type", "file"); @@ -2111,14 +2264,14 @@ function webViewerInitialized() { document.body.appendChild(fileInput); if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { - appConfig.toolbar.openFile.setAttribute("hidden", "true"); - appConfig.secondaryToolbar.openFileButton.setAttribute("hidden", "true"); + appConfig.toolbar.openFile.hidden = true; + appConfig.secondaryToolbar.openFileButton.hidden = true; } else { fileInput.value = null; } fileInput.addEventListener("change", function (evt) { - var files = evt.target.files; + const files = evt.target.files; if (!files || files.length === 0) { return; @@ -2135,7 +2288,7 @@ function webViewerInitialized() { }); appConfig.mainContainer.addEventListener("drop", function (evt) { evt.preventDefault(); - var files = evt.dataTransfer.files; + const files = evt.dataTransfer.files; if (!files || files.length === 0) { return; @@ -2150,7 +2303,7 @@ function webViewerInitialized() { if (!PDFViewerApplication.supportsDocumentFonts) { _app_options.AppOptions.set("disableFontFace", true); - PDFViewerApplication.l10n.get("web_fonts_disabled", null, "Web fonts are disabled: unable to use embedded PDF fonts.").then(function (msg) { + PDFViewerApplication.l10n.get("web_fonts_disabled").then(msg => { console.warn(msg); }); } @@ -2180,8 +2333,8 @@ function webViewerInitialized() { try { webViewerOpenFileViaURL(file); } catch (reason) { - PDFViewerApplication.l10n.get("loading_error", null, "An error occurred while loading the PDF.").then(function (msg) { - PDFViewerApplication.error(msg, reason); + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, reason); }); } @@ -2211,89 +2364,85 @@ function webViewerInitialized() { } } -var webViewerOpenFileViaURL; -{ - webViewerOpenFileViaURL = function webViewerOpenFileViaURL(file) { - if (file && file.lastIndexOf("file:", 0) === 0) { - PDFViewerApplication.setTitleUsingUrl(file); - var xhr = new XMLHttpRequest(); - - xhr.onload = function () { - PDFViewerApplication.open(new Uint8Array(xhr.response)); - }; - - xhr.open("GET", file); - xhr.responseType = "arraybuffer"; - xhr.send(); - return; - } - - if (file) { - PDFViewerApplication.open(file); - } - }; +function webViewerOpenFileViaURL(file) { + if (file) { + PDFViewerApplication.open(file); + } } -function webViewerPageRendered(evt) { - var pageNumber = evt.pageNumber; - var pageIndex = pageNumber - 1; - var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); +function webViewerResetPermissions() { + const { + appConfig + } = PDFViewerApplication; + if (!appConfig) { + return; + } + + appConfig.viewerContainer.classList.remove(ENABLE_PERMISSIONS_CLASS); +} + +function webViewerPageRendered({ + pageNumber, + timestamp, + error +}) { if (pageNumber === PDFViewerApplication.page) { PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); } - if (!pageView) { - return; - } - if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageNumber - 1); + + if (pageView && thumbnailView) { + thumbnailView.setImage(pageView); + } } - if (typeof Stats !== "undefined" && Stats.enabled && pageView.stats) { - Stats.add(pageNumber, pageView.stats); - } - - if (pageView.error) { - PDFViewerApplication.l10n.get("rendering_error", null, "An error occurred while rendering the page.").then(function (msg) { - PDFViewerApplication.error(msg, pageView.error); + if (error) { + PDFViewerApplication.l10n.get("rendering_error").then(msg => { + PDFViewerApplication._otherError(msg, error); }); } PDFViewerApplication.externalServices.reportTelemetry({ type: "pageInfo", - timestamp: evt.timestamp + timestamp }); PDFViewerApplication.pdfDocument.getStats().then(function (stats) { PDFViewerApplication.externalServices.reportTelemetry({ type: "documentStats", - stats: stats + stats }); }); } -function webViewerPageMode(_ref12) { - var mode = _ref12.mode; - var view; +function webViewerPageMode({ + mode +}) { + let view; switch (mode) { case "thumbs": - view = _pdf_sidebar.SidebarView.THUMBS; + view = _ui_utils.SidebarView.THUMBS; break; case "bookmarks": case "outline": - view = _pdf_sidebar.SidebarView.OUTLINE; + view = _ui_utils.SidebarView.OUTLINE; break; case "attachments": - view = _pdf_sidebar.SidebarView.ATTACHMENTS; + view = _ui_utils.SidebarView.ATTACHMENTS; + break; + + case "layers": + view = _ui_utils.SidebarView.LAYERS; break; case "none": - view = _pdf_sidebar.SidebarView.NONE; + view = _ui_utils.SidebarView.NONE; break; default: @@ -2305,9 +2454,7 @@ function webViewerPageMode(_ref12) { } function webViewerNamedAction(evt) { - var action = evt.action; - - switch (action) { + switch (evt.action) { case "GoToPage": PDFViewerApplication.appConfig.toolbar.pageNumber.select(); break; @@ -2318,35 +2465,33 @@ function webViewerNamedAction(evt) { } break; + + case "Print": + PDFViewerApplication.triggerPrinting(); + break; + + case "SaveAs": + webViewerSave(); + break; } } -function webViewerPresentationModeChanged(_ref13) { - var active = _ref13.active, - switchInProgress = _ref13.switchInProgress; - var state = _ui_utils.PresentationModeState.NORMAL; - - if (switchInProgress) { - state = _ui_utils.PresentationModeState.CHANGING; - } else if (active) { - state = _ui_utils.PresentationModeState.FULLSCREEN; - } - - PDFViewerApplication.pdfViewer.presentationModeState = state; +function webViewerPresentationModeChanged(evt) { + PDFViewerApplication.pdfViewer.presentationModeState = evt.state; } function webViewerSidebarViewChanged(evt) { PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = PDFViewerApplication.pdfSidebar.isThumbnailViewVisible; - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set("sidebarView", evt.view)["catch"](function () {}); + store.set("sidebarView", evt.view).catch(function () {}); } } function webViewerUpdateViewarea(evt) { - var location = evt.location, - store = PDFViewerApplication.store; + const location = evt.location, + store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { store.setMultiple({ @@ -2355,42 +2500,44 @@ function webViewerUpdateViewarea(evt) { scrollLeft: location.left, scrollTop: location.top, rotation: location.rotation - })["catch"](function () {}); + }).catch(function () {}); } - var href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); PDFViewerApplication.appConfig.toolbar.viewBookmark.href = href; PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; - var currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); - var loading = currentPage.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; + const currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); + const loading = currentPage?.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); } function webViewerScrollModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set("scrollMode", evt.mode)["catch"](function () {}); + store.set("scrollMode", evt.mode).catch(function () {}); } } function webViewerSpreadModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set("spreadMode", evt.mode)["catch"](function () {}); + store.set("spreadMode", evt.mode).catch(function () {}); } } function webViewerResize() { - var pdfDocument = PDFViewerApplication.pdfDocument, - pdfViewer = PDFViewerApplication.pdfViewer; + const { + pdfDocument, + pdfViewer + } = PDFViewerApplication; if (!pdfDocument) { return; } - var currentScaleValue = pdfViewer.currentScaleValue; + const currentScaleValue = pdfViewer.currentScaleValue; if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { pdfViewer.currentScaleValue = currentScaleValue; @@ -2400,7 +2547,7 @@ function webViewerResize() { } function webViewerHashchange(evt) { - var hash = evt.hash; + const hash = evt.hash; if (!hash) { return; @@ -2413,21 +2560,21 @@ function webViewerHashchange(evt) { } } -var webViewerFileInputChange, webViewerOpenFile; +let webViewerFileInputChange, webViewerOpenFile; { - webViewerFileInputChange = function webViewerFileInputChange(evt) { - if (PDFViewerApplication.pdfViewer && PDFViewerApplication.pdfViewer.isInPresentationMode) { + webViewerFileInputChange = function (evt) { + if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { return; } - var file = evt.fileInput.files[0]; + const file = evt.fileInput.files[0]; - if (URL.createObjectURL && !_app_options.AppOptions.get("disableCreateObjectURL")) { - var url = URL.createObjectURL(file); + if (!_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + let url = URL.createObjectURL(file); if (file.name) { url = { - url: url, + url, originalUrl: file.name }; } @@ -2435,25 +2582,25 @@ var webViewerFileInputChange, webViewerOpenFile; PDFViewerApplication.open(url); } else { PDFViewerApplication.setTitleUsingUrl(file.name); - var fileReader = new FileReader(); + const fileReader = new FileReader(); fileReader.onload = function webViewerChangeFileReaderOnload(event) { - var buffer = event.target.result; + const buffer = event.target.result; PDFViewerApplication.open(new Uint8Array(buffer)); }; fileReader.readAsArrayBuffer(file); } - var appConfig = PDFViewerApplication.appConfig; - appConfig.toolbar.viewBookmark.setAttribute("hidden", "true"); - appConfig.secondaryToolbar.viewBookmarkButton.setAttribute("hidden", "true"); - appConfig.toolbar.download.setAttribute("hidden", "true"); - appConfig.secondaryToolbar.downloadButton.setAttribute("hidden", "true"); + const appConfig = PDFViewerApplication.appConfig; + appConfig.toolbar.viewBookmark.hidden = true; + appConfig.secondaryToolbar.viewBookmarkButton.hidden = true; + appConfig.toolbar.download.hidden = true; + appConfig.secondaryToolbar.downloadButton.hidden = true; }; - webViewerOpenFile = function webViewerOpenFile(evt) { - var openFileInputName = PDFViewerApplication.appConfig.openFileInputName; + webViewerOpenFile = function (evt) { + const openFileInputName = PDFViewerApplication.appConfig.openFileInputName; document.getElementById(openFileInputName).click(); }; } @@ -2463,11 +2610,19 @@ function webViewerPresentationMode() { } function webViewerPrint() { - window.print(); + PDFViewerApplication.triggerPrinting(); } function webViewerDownload() { - PDFViewerApplication.download(); + PDFViewerApplication.downloadOrSave({ + sourceEventType: "download" + }); +} + +function webViewerSave() { + PDFViewerApplication.downloadOrSave({ + sourceEventType: "save" + }); } function webViewerFirstPage() { @@ -2483,11 +2638,11 @@ function webViewerLastPage() { } function webViewerNextPage() { - PDFViewerApplication.page++; + PDFViewerApplication.pdfViewer.nextPage(); } function webViewerPreviousPage() { - PDFViewerApplication.page--; + PDFViewerApplication.pdfViewer.previousPage(); } function webViewerZoomIn() { @@ -2503,10 +2658,10 @@ function webViewerZoomReset() { } function webViewerPageNumberChanged(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer; + const pdfViewer = PDFViewerApplication.pdfViewer; if (evt.value !== "") { - pdfViewer.currentPageLabel = evt.value; + PDFViewerApplication.pdfLinkService.goToPage(evt.value); } if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { @@ -2526,6 +2681,10 @@ function webViewerRotateCcw() { PDFViewerApplication.rotatePages(-90); } +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} + function webViewerSwitchScrollMode(evt) { PDFViewerApplication.pdfViewer.scrollMode = evt.mode; } @@ -2560,9 +2719,9 @@ function webViewerFindFromUrlHash(evt) { }); } -function webViewerUpdateFindMatchesCount(_ref14) { - var matchesCount = _ref14.matchesCount; - +function webViewerUpdateFindMatchesCount({ + matchesCount +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); } else { @@ -2570,16 +2729,18 @@ function webViewerUpdateFindMatchesCount(_ref14) { } } -function webViewerUpdateFindControlState(_ref15) { - var state = _ref15.state, - previous = _ref15.previous, - matchesCount = _ref15.matchesCount; - +function webViewerUpdateFindControlState({ + state, + previous, + matchesCount, + rawQuery +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindControlState({ result: state, findPrevious: previous, - matchesCount: matchesCount + matchesCount, + rawQuery }); } else { PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); @@ -2597,21 +2758,15 @@ function webViewerRotationChanging(evt) { PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; } -function webViewerPageChanging(evt) { - var page = evt.pageNumber; - PDFViewerApplication.toolbar.setPageNumber(page, evt.pageLabel || null); - PDFViewerApplication.secondaryToolbar.setPageNumber(page); +function webViewerPageChanging({ + pageNumber, + pageLabel +}) { + PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber); if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); - } - - if (typeof Stats !== "undefined" && Stats.enabled) { - var pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); - - if (pageView && pageView.stats) { - Stats.add(page, pageView.stats); - } + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber); } } @@ -2621,7 +2776,7 @@ function webViewerVisibilityChange(evt) { } } -var zoomDisabledTimeout = null; +let zoomDisabledTimeout = null; function setZoomDisabledTimeout() { if (zoomDisabledTimeout) { @@ -2634,8 +2789,10 @@ function setZoomDisabledTimeout() { } function webViewerWheel(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer, - supportedMouseWheelZoomModifierKeys = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; + const { + pdfViewer, + supportedMouseWheelZoomModifierKeys + } = PDFViewerApplication; if (pdfViewer.isInPresentationMode) { return; @@ -2648,24 +2805,34 @@ function webViewerWheel(evt) { return; } - var previousScale = pdfViewer.currentScale; - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var MOUSE_WHEEL_DELTA_PER_PAGE_SCALE = 3.0; - var ticks = delta * MOUSE_WHEEL_DELTA_PER_PAGE_SCALE; + const previousScale = pdfViewer.currentScale; + const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); + let ticks = 0; + + if (evt.deltaMode === WheelEvent.DOM_DELTA_LINE || evt.deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication.accumulateWheelTicks(delta); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE); + } if (ticks < 0) { PDFViewerApplication.zoomOut(-ticks); - } else { + } else if (ticks > 0) { PDFViewerApplication.zoomIn(ticks); } - var currentScale = pdfViewer.currentScale; + const currentScale = pdfViewer.currentScale; if (previousScale !== currentScale) { - var scaleCorrectionFactor = currentScale / previousScale - 1; - var rect = pdfViewer.container.getBoundingClientRect(); - var dx = evt.clientX - rect.left; - var dy = evt.clientY - rect.top; + const scaleCorrectionFactor = currentScale / previousScale - 1; + const rect = pdfViewer.container.getBoundingClientRect(); + const dx = evt.clientX - rect.left; + const dy = evt.clientY - rect.top; pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; } @@ -2674,12 +2841,18 @@ function webViewerWheel(evt) { } } +function webViewerTouchStart(evt) { + if (evt.touches.length > 1) { + evt.preventDefault(); + } +} + function webViewerClick(evt) { if (!PDFViewerApplication.secondaryToolbar.isOpen) { return; } - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { PDFViewerApplication.secondaryToolbar.close(); @@ -2691,16 +2864,16 @@ function webViewerKeyDown(evt) { return; } - var handled = false, + let handled = false, ensureViewerFocused = false; - var cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); - var pdfViewer = PDFViewerApplication.pdfViewer; - var isViewerInPresentationMode = pdfViewer && pdfViewer.isInPresentationMode; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + const pdfViewer = PDFViewerApplication.pdfViewer; + const isViewerInPresentationMode = pdfViewer?.isInPresentationMode; if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { switch (evt.keyCode) { case 70: - if (!PDFViewerApplication.supportsIntegratedFind) { + if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { PDFViewerApplication.findBar.open(); handled = true; } @@ -2709,7 +2882,7 @@ function webViewerKeyDown(evt) { case 71: if (!PDFViewerApplication.supportsIntegratedFind) { - var findState = PDFViewerApplication.findController.state; + const findState = PDFViewerApplication.findController.state; if (findState) { PDFViewerApplication.findController.executeCommand("findagain", { @@ -2779,12 +2952,27 @@ function webViewerKeyDown(evt) { } } + const { + eventBus + } = PDFViewerApplication; + if (cmd === 1 || cmd === 8) { switch (evt.keyCode) { case 83: - PDFViewerApplication.download(); + eventBus.dispatch("download", { + source: window + }); handled = true; break; + + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; } } @@ -2811,17 +2999,17 @@ function webViewerKeyDown(evt) { return; } - var curElement = document.activeElement || document.querySelector(":focus"); - var curElementTagName = curElement && curElement.tagName.toUpperCase(); + const curElement = (0, _ui_utils.getActiveOrFocusedElement)(); + const curElementTagName = curElement?.tagName.toUpperCase(); - if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement && curElement.isContentEditable) { + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement?.isContentEditable) { if (evt.keyCode !== 27) { return; } } if (cmd === 0) { - var turnPage = 0, + let turnPage = 0, turnOnlyIfPageFit = false; switch (evt.keyCode) { @@ -2930,13 +3118,9 @@ function webViewerKeyDown(evt) { if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { if (turnPage > 0) { - if (PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page++; - } + pdfViewer.nextPage(); } else { - if (PDFViewerApplication.page > 1) { - PDFViewerApplication.page--; - } + pdfViewer.previousPage(); } handled = true; @@ -2979,865 +3163,123 @@ function webViewerKeyDown(evt) { } } -function apiPageLayoutToSpreadMode(layout) { - switch (layout) { - case "SinglePage": - case "OneColumn": - return _ui_utils.SpreadMode.NONE; - - case "TwoColumnLeft": - case "TwoPageLeft": - return _ui_utils.SpreadMode.ODD; - - case "TwoColumnRight": - case "TwoPageRight": - return _ui_utils.SpreadMode.EVEN; - } - - return _ui_utils.SpreadMode.NONE; +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; } -function apiPageModeToSidebarView(mode) { - switch (mode) { - case "UseNone": - return _pdf_sidebar.SidebarView.NONE; - - case "UseThumbs": - return _pdf_sidebar.SidebarView.THUMBS; - - case "UseOutlines": - return _pdf_sidebar.SidebarView.OUTLINE; - - case "UseAttachments": - return _pdf_sidebar.SidebarView.ATTACHMENTS; - - case "UseOC": - } - - return _pdf_sidebar.SidebarView.NONE; -} - -var PDFPrintServiceFactory = { +const PDFPrintServiceFactory = { instance: { supportsPrinting: false, - createPrintService: function createPrintService() { + + createPrintService() { throw new Error("Not implemented: createPrintService"); } + } }; exports.PDFPrintServiceFactory = PDFPrintServiceFactory; -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(3); - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)(module))) - /***/ }), /* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports) => { -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.apiPageLayoutToSpreadMode = apiPageLayoutToSpreadMode; +exports.apiPageModeToSidebarView = apiPageModeToSidebarView; +exports.approximateFraction = approximateFraction; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.getActiveOrFocusedElement = getActiveOrFocusedElement; +exports.getOutputScale = getOutputScale; +exports.getPageSizeInches = getPageSizeInches; +exports.getVisibleElements = getVisibleElements; +exports.isPortraitOrientation = isPortraitOrientation; exports.isValidRotation = isValidRotation; exports.isValidScrollMode = isValidScrollMode; exports.isValidSpreadMode = isValidSpreadMode; -exports.isPortraitOrientation = isPortraitOrientation; -exports.getGlobalEventBus = getGlobalEventBus; -exports.clamp = clamp; -exports.getPDFFileNameFromURL = getPDFFileNameFromURL; -exports.noContextMenuHandler = noContextMenuHandler; -exports.parseQueryString = parseQueryString; -exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; -exports.getVisibleElements = getVisibleElements; -exports.roundToDivide = roundToDivide; -exports.getPageSizeInches = getPageSizeInches; -exports.approximateFraction = approximateFraction; -exports.getOutputScale = getOutputScale; -exports.scrollIntoView = scrollIntoView; -exports.watchScroll = watchScroll; -exports.binarySearchFirstItem = binarySearchFirstItem; -exports.normalizeWheelEventDelta = normalizeWheelEventDelta; -exports.waitOnEventOrTimeout = waitOnEventOrTimeout; exports.moveToEndOfArray = moveToEndOfArray; -exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = exports.AutoPrintRegExp = void 0; - -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var CSS_UNITS = 96.0 / 72.0; +exports.noContextMenuHandler = noContextMenuHandler; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; +exports.parseQueryString = parseQueryString; +exports.roundToDivide = roundToDivide; +exports.scrollIntoView = scrollIntoView; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +exports.watchScroll = watchScroll; +exports.WaitOnType = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.EventBus = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE = exports.CSS_UNITS = exports.AutoPrintRegExp = exports.animationStarted = void 0; +const CSS_UNITS = 96.0 / 72.0; exports.CSS_UNITS = CSS_UNITS; -var DEFAULT_SCALE_VALUE = "auto"; +const DEFAULT_SCALE_VALUE = "auto"; exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; -var DEFAULT_SCALE = 1.0; +const DEFAULT_SCALE = 1.0; exports.DEFAULT_SCALE = DEFAULT_SCALE; -var MIN_SCALE = 0.1; +const MIN_SCALE = 0.1; exports.MIN_SCALE = MIN_SCALE; -var MAX_SCALE = 10.0; +const MAX_SCALE = 10.0; exports.MAX_SCALE = MAX_SCALE; -var UNKNOWN_SCALE = 0; +const UNKNOWN_SCALE = 0; exports.UNKNOWN_SCALE = UNKNOWN_SCALE; -var MAX_AUTO_SCALE = 1.25; +const MAX_AUTO_SCALE = 1.25; exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; -var SCROLLBAR_PADDING = 40; +const SCROLLBAR_PADDING = 40; exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; -var VERTICAL_PADDING = 5; +const VERTICAL_PADDING = 5; exports.VERTICAL_PADDING = VERTICAL_PADDING; -var PresentationModeState = { +const LOADINGBAR_END_OFFSET_VAR = "--loadingBar-end-offset"; +const PresentationModeState = { UNKNOWN: 0, NORMAL: 1, CHANGING: 2, FULLSCREEN: 3 }; exports.PresentationModeState = PresentationModeState; -var RendererType = { +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; +const RendererType = { CANVAS: "canvas", SVG: "svg" }; exports.RendererType = RendererType; -var TextLayerMode = { +const TextLayerMode = { DISABLE: 0, ENABLE: 1, ENABLE_ENHANCE: 2 }; exports.TextLayerMode = TextLayerMode; -var ScrollMode = { +const ScrollMode = { UNKNOWN: -1, VERTICAL: 0, HORIZONTAL: 1, WRAPPED: 2 }; exports.ScrollMode = ScrollMode; -var SpreadMode = { +const SpreadMode = { UNKNOWN: -1, NONE: 0, ODD: 1, EVEN: 2 }; exports.SpreadMode = SpreadMode; -var AutoPrintRegExp = /\bprint\s*\(/; +const AutoPrintRegExp = /\bprint\s*\(/; exports.AutoPrintRegExp = AutoPrintRegExp; -function formatL10nValue(text, args) { - if (!args) { - return text; - } - - return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) { - return name in args ? args[name] : "{{" + name + "}}"; - }); -} - -var NullL10n = { - getLanguage: function getLanguage() { - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", "en-us"); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - }))(); - }, - getDirection: function getDirection() { - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", "ltr"); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - }))(); - }, - get: function get(property, args, fallback) { - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", formatL10nValue(fallback, args)); - - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3); - }))(); - }, - translate: function translate(element) { - return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - case "end": - return _context4.stop(); - } - } - }, _callee4); - }))(); - } -}; -exports.NullL10n = NullL10n; - function getOutputScale(ctx) { - var devicePixelRatio = window.devicePixelRatio || 1; - var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; - var pixelRatio = devicePixelRatio / backingStoreRatio; + const devicePixelRatio = window.devicePixelRatio || 1; + const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; + const pixelRatio = devicePixelRatio / backingStoreRatio; return { sx: pixelRatio, sy: pixelRatio, @@ -3845,24 +3287,18 @@ function getOutputScale(ctx) { }; } -function scrollIntoView(element, spot) { - var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var parent = element.offsetParent; +function scrollIntoView(element, spot, scrollMatches = false) { + let parent = element.offsetParent; if (!parent) { console.error("offsetParent is not set -- cannot scroll"); return; } - var offsetY = element.offsetTop + element.clientTop; - var offsetX = element.offsetLeft + element.clientLeft; - - while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === "hidden") { - if (parent.dataset._scaleY) { - offsetY /= parent.dataset._scaleY; - offsetX /= parent.dataset._scaleX; - } + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { offsetY += parent.offsetTop; offsetX += parent.offsetLeft; parent = parent.offsetParent; @@ -3887,23 +3323,23 @@ function scrollIntoView(element, spot) { } function watchScroll(viewAreaElement, callback) { - var debounceScroll = function debounceScroll(evt) { + const debounceScroll = function (evt) { if (rAF) { return; } rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { rAF = null; - var currentX = viewAreaElement.scrollLeft; - var lastX = state.lastX; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; if (currentX !== lastX) { state.right = currentX > lastX; } state.lastX = currentX; - var currentY = viewAreaElement.scrollTop; - var lastY = state.lastY; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; if (currentY !== lastY) { state.down = currentY > lastY; @@ -3914,26 +3350,26 @@ function watchScroll(viewAreaElement, callback) { }); }; - var state = { + const state = { right: true, down: true, lastX: viewAreaElement.scrollLeft, lastY: viewAreaElement.scrollTop, _eventHandler: debounceScroll }; - var rAF = null; + let rAF = null; viewAreaElement.addEventListener("scroll", debounceScroll, true); return state; } function parseQueryString(query) { - var parts = query.split("&"); - var params = Object.create(null); + const parts = query.split("&"); + const params = Object.create(null); - for (var i = 0, ii = parts.length; i < ii; ++i) { - var param = parts[i].split("="); - var key = param[0].toLowerCase(); - var value = param.length > 1 ? param[1] : null; + for (let i = 0, ii = parts.length; i < ii; ++i) { + const param = parts[i].split("="); + const key = param[0].toLowerCase(); + const value = param.length > 1 ? param[1] : null; params[decodeURIComponent(key)] = decodeURIComponent(value); } @@ -3941,10 +3377,10 @@ function parseQueryString(query) { } function binarySearchFirstItem(items, condition) { - var minIndex = 0; - var maxIndex = items.length - 1; + let minIndex = 0; + let maxIndex = items.length - 1; - if (items.length === 0 || !condition(items[maxIndex])) { + if (maxIndex < 0 || !condition(items[maxIndex])) { return items.length; } @@ -3953,8 +3389,8 @@ function binarySearchFirstItem(items, condition) { } while (minIndex < maxIndex) { - var currentIndex = minIndex + maxIndex >> 1; - var currentItem = items[currentIndex]; + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; if (condition(currentItem)) { maxIndex = currentIndex; @@ -3971,8 +3407,8 @@ function approximateFraction(x) { return [x, 1]; } - var xinv = 1 / x; - var limit = 8; + const xinv = 1 / x; + const limit = 8; if (xinv > limit) { return [1, limit]; @@ -3980,15 +3416,15 @@ function approximateFraction(x) { return [1, xinv]; } - var x_ = x > 1 ? xinv : x; - var a = 0, + const x_ = x > 1 ? xinv : x; + let a = 0, b = 1, c = 1, d = 1; while (true) { - var p = a + c, - q = b + d; + const p = a + c, + q = b + d; if (q > limit) { break; @@ -4003,7 +3439,7 @@ function approximateFraction(x) { } } - var result; + let result; if (x_ - a / b < c / d - x_) { result = x_ === x ? [a, b] : [b, a]; @@ -4015,24 +3451,19 @@ function approximateFraction(x) { } function roundToDivide(x, div) { - var r = x % div; + const r = x % div; return r === 0 ? x : Math.round(x - r + div); } -function getPageSizeInches(_ref) { - var view = _ref.view, - userUnit = _ref.userUnit, - rotate = _ref.rotate; - - var _view = _slicedToArray(view, 4), - x1 = _view[0], - y1 = _view[1], - x2 = _view[2], - y2 = _view[3]; - - var changeOrientation = rotate % 180 !== 0; - var width = (x2 - x1) / 72 * userUnit; - var height = (y2 - y1) / 72 * userUnit; +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; return { width: changeOrientation ? height : width, height: changeOrientation ? width : height @@ -4044,15 +3475,15 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } - var elt = views[index].div; - var pageTop = elt.offsetTop + elt.clientTop; + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; if (pageTop >= top) { elt = views[index - 1].div; pageTop = elt.offsetTop + elt.clientTop; } - for (var i = index - 2; i >= 0; --i) { + for (let i = index - 2; i >= 0; --i) { elt = views[i].div; if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { @@ -4065,45 +3496,50 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } -function getVisibleElements(scrollEl, views) { - var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var top = scrollEl.scrollTop, - bottom = top + scrollEl.clientHeight; - var left = scrollEl.scrollLeft, - right = left + scrollEl.clientWidth; +function getVisibleElements({ + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false +}) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; function isElementBottomAfterViewTop(view) { - var element = view.div; - var elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; return elementBottom > top; } - function isElementRightAfterViewLeft(view) { - var element = view.div; - var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth; - return elementRight > left; + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; } - var visible = [], - numViews = views.length; - var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop); + const visible = [], + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); } - var lastEdge = horizontal ? right : -1; + let lastEdge = horizontal ? right : -1; - for (var i = firstVisibleElementInd; i < numViews; i++) { - var view = views[i], - element = view.div; - var currentWidth = element.offsetLeft + element.clientLeft; - var currentHeight = element.offsetTop + element.clientTop; - var viewWidth = element.clientWidth, - viewHeight = element.clientHeight; - var viewRight = currentWidth + viewWidth; - var viewBottom = currentHeight + viewHeight; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; if (lastEdge === -1) { if (viewBottom >= bottom) { @@ -4117,24 +3553,27 @@ function getVisibleElements(scrollEl, views) { continue; } - var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); - var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); - var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0; + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; visible.push({ id: view.id, x: currentWidth, y: currentHeight, - view: view, - percent: percent + view, + percent, + widthPercent: fractionWidth * 100 | 0 }); } - var first = visible[0], - last = visible[visible.length - 1]; + const first = visible[0], + last = visible[visible.length - 1]; if (sortByVisibility) { visible.sort(function (a, b) { - var pc = a.percent - b.percent; + const pc = a.percent - b.percent; if (Math.abs(pc) > 0.001) { return -pc; @@ -4145,8 +3584,8 @@ function getVisibleElements(scrollEl, views) { } return { - first: first, - last: last, + first, + last, views: visible }; } @@ -4155,59 +3594,23 @@ function noContextMenuHandler(evt) { evt.preventDefault(); } -function isDataSchema(url) { - var i = 0; - var ii = url.length; - - while (i < ii && url[i].trim() === "") { - i++; - } - - return url.substring(i, i + 5).toLowerCase() === "data:"; -} - -function getPDFFileNameFromURL(url) { - var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "document.pdf"; - - if (typeof url !== "string") { - return defaultFilename; - } - - if (isDataSchema(url)) { - console.warn("getPDFFileNameFromURL: " + 'ignoring "data:" URL for performance reasons.'); - return defaultFilename; - } - - var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; - var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; - var splitURI = reURI.exec(url); - var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); - - if (suggestedFilename) { - suggestedFilename = suggestedFilename[0]; - - if (suggestedFilename.includes("%")) { - try { - suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; - } catch (ex) {} - } - } - - return suggestedFilename || defaultFilename; -} - -function normalizeWheelEventDelta(evt) { - var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY); - var angle = Math.atan2(evt.deltaY, evt.deltaX); +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { delta = -delta; } - var MOUSE_DOM_DELTA_PIXEL_MODE = 0; - var MOUSE_DOM_DELTA_LINE_MODE = 1; - var MOUSE_PIXELS_PER_LINE = 30; - var MOUSE_LINES_PER_PAGE = 30; + return delta; +} + +function normalizeWheelEventDelta(evt) { + let delta = normalizeWheelEventDirection(evt); + const MOUSE_DOM_DELTA_PIXEL_MODE = 0; + const MOUSE_DOM_DELTA_LINE_MODE = 1; + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; @@ -4234,19 +3637,19 @@ function isPortraitOrientation(size) { return size.width <= size.height; } -var WaitOnType = { +const WaitOnType = { EVENT: "event", TIMEOUT: "timeout" }; exports.WaitOnType = WaitOnType; -function waitOnEventOrTimeout(_ref2) { - var target = _ref2.target, - name = _ref2.name, - _ref2$delay = _ref2.delay, - delay = _ref2$delay === void 0 ? 0 : _ref2$delay; +function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { return new Promise(function (resolve, reject) { - if (_typeof(target) !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { throw new Error("waitOnEventOrTimeout - invalid parameters."); } @@ -4264,7 +3667,7 @@ function waitOnEventOrTimeout(_ref2) { resolve(type); } - var eventHandler = handler.bind(null, WaitOnType.EVENT); + const eventHandler = handler.bind(null, WaitOnType.EVENT); if (target instanceof EventBus) { target._on(name, eventHandler); @@ -4272,183 +3675,115 @@ function waitOnEventOrTimeout(_ref2) { target.addEventListener(name, eventHandler); } - var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); - var timeout = setTimeout(timeoutHandler, delay); + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); }); } -var animationStarted = new Promise(function (resolve) { +const animationStarted = new Promise(function (resolve) { window.requestAnimationFrame(resolve); }); exports.animationStarted = animationStarted; -function dispatchDOMEvent(eventName) { - var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var details = Object.create(null); - - if (args && args.length > 0) { - var obj = args[0]; - - for (var key in obj) { - var value = obj[key]; - - if (key === "source") { - if (value === window || value === document) { - return; - } - - continue; - } - - details[key] = value; - } - } - - var event = document.createEvent("CustomEvent"); - event.initCustomEvent(eventName, true, true, details); - document.dispatchEvent(event); +function dispatchDOMEvent(eventName, args = null) { + throw new Error("Not implemented: dispatchDOMEvent"); } -var EventBus = /*#__PURE__*/function () { - function EventBus() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref3$dispatchToDOM = _ref3.dispatchToDOM, - dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM; - - _classCallCheck(this, EventBus); - +class EventBus { + constructor(options) { this._listeners = Object.create(null); - this._dispatchToDOM = dispatchToDOM === true; - - if (dispatchToDOM) { - console.error("The `eventBusDispatchToDOM` option/preference is deprecated, " + "add event listeners to the EventBus instance rather than the DOM."); - } } - _createClass(EventBus, [{ - key: "on", - value: function on(eventName, listener) { - this._on(eventName, listener, { - external: true - }); - } - }, { - key: "off", - value: function off(eventName, listener) { - this._off(eventName, listener, { - external: true - }); - } - }, { - key: "dispatch", - value: function dispatch(eventName) { - var eventListeners = this._listeners[eventName]; - - if (!eventListeners || eventListeners.length === 0) { - if (this._dispatchToDOM) { - var _args5 = Array.prototype.slice.call(arguments, 1); - - dispatchDOMEvent(eventName, _args5); - } - - return; - } - - var args = Array.prototype.slice.call(arguments, 1); - var externalListeners; - eventListeners.slice(0).forEach(function (_ref4) { - var listener = _ref4.listener, - external = _ref4.external; - - if (external) { - if (!externalListeners) { - externalListeners = []; - } - - externalListeners.push(listener); - return; - } - - listener.apply(null, args); - }); - - if (externalListeners) { - externalListeners.forEach(function (listener) { - listener.apply(null, args); - }); - externalListeners = null; - } - - if (this._dispatchToDOM) { - dispatchDOMEvent(eventName, args); - } - } - }, { - key: "_on", - value: function _on(eventName, listener) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var eventListeners = this._listeners[eventName]; - - if (!eventListeners) { - this._listeners[eventName] = eventListeners = []; - } - - eventListeners.push({ - listener: listener, - external: (options && options.external) === true - }); - } - }, { - key: "_off", - value: function _off(eventName, listener) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var eventListeners = this._listeners[eventName]; - - if (!eventListeners) { - return; - } - - for (var i = 0, ii = eventListeners.length; i < ii; i++) { - if (eventListeners[i].listener === listener) { - eventListeners.splice(i, 1); - return; - } - } - } - }]); - - return EventBus; -}(); - -exports.EventBus = EventBus; -var globalEventBus = null; - -function getGlobalEventBus() { - var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - console.error("getGlobalEventBus is deprecated, use a manually created EventBus instance instead."); - - if (!globalEventBus) { - globalEventBus = new EventBus({ - dispatchToDOM: dispatchToDOM + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once }); } - return globalEventBus; + off(eventName, listener, options = null) { + this._off(eventName, listener, { + external: true, + once: options?.once + }); + } + + dispatch(eventName) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners || eventListeners.length === 0) { + return; + } + + const args = Array.prototype.slice.call(arguments, 1); + let externalListeners; + + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + + if (external) { + (externalListeners || (externalListeners = [])).push(listener); + continue; + } + + listener.apply(null, args); + } + + if (externalListeners) { + for (const listener of externalListeners) { + listener.apply(null, args); + } + + externalListeners = null; + } + } + + _on(eventName, listener, options = null) { + var _this$_listeners; + + const eventListeners = (_this$_listeners = this._listeners)[eventName] || (_this$_listeners[eventName] = []); + eventListeners.push({ + listener, + external: options?.external === true, + once: options?.once === true + }); + } + + _off(eventName, listener, options = null) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners) { + return; + } + + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } + } + } +exports.EventBus = EventBus; + function clamp(v, min, max) { return Math.min(Math.max(v, min), max); } -var ProgressBar = /*#__PURE__*/function () { - function ProgressBar(id) { - var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - height = _ref5.height, - width = _ref5.width, - units = _ref5.units; - - _classCallCheck(this, ProgressBar); - +class ProgressBar { + constructor(id, { + height, + width, + units + } = {}) { this.visible = true; this.div = document.querySelector(id + " .progress"); this.bar = this.div.parentNode; @@ -4459,79 +3794,71 @@ var ProgressBar = /*#__PURE__*/function () { this.percent = 0; } - _createClass(ProgressBar, [{ - key: "_updateBar", - value: function _updateBar() { - if (this._indeterminate) { - this.div.classList.add("indeterminate"); - this.div.style.width = this.width + this.units; - return; - } - - this.div.classList.remove("indeterminate"); - var progressSize = this.width * this._percent / 100; - this.div.style.width = progressSize + this.units; + _updateBar() { + if (this._indeterminate) { + this.div.classList.add("indeterminate"); + this.div.style.width = this.width + this.units; + return; } - }, { - key: "setWidth", - value: function setWidth(viewer) { - if (!viewer) { - return; - } - var container = viewer.parentNode; - var scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + this.div.classList.remove("indeterminate"); + const progressSize = this.width * this._percent / 100; + this.div.style.width = progressSize + this.units; + } - if (scrollbarWidth > 0) { - this.bar.style.width = "calc(100% - ".concat(scrollbarWidth, "px)"); - } + get percent() { + return this._percent; + } + + set percent(val) { + this._indeterminate = isNaN(val); + this._percent = clamp(val, 0, 100); + + this._updateBar(); + } + + setWidth(viewer) { + if (!viewer) { + return; } - }, { - key: "hide", - value: function hide() { - if (!this.visible) { - return; - } - this.visible = false; - this.bar.classList.add("hidden"); - document.body.classList.remove("loadingInProgress"); + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + + if (scrollbarWidth > 0) { + const doc = document.documentElement; + doc.style.setProperty(LOADINGBAR_END_OFFSET_VAR, `${scrollbarWidth}px`); } - }, { - key: "show", - value: function show() { - if (this.visible) { - return; - } + } - this.visible = true; - document.body.classList.add("loadingInProgress"); - this.bar.classList.remove("hidden"); + hide() { + if (!this.visible) { + return; } - }, { - key: "percent", - get: function get() { - return this._percent; - }, - set: function set(val) { - this._indeterminate = isNaN(val); - this._percent = clamp(val, 0, 100); - this._updateBar(); + this.visible = false; + this.bar.classList.add("hidden"); + } + + show() { + if (this.visible) { + return; } - }]); - return ProgressBar; -}(); + this.visible = true; + this.bar.classList.remove("hidden"); + } + +} exports.ProgressBar = ProgressBar; function moveToEndOfArray(arr, condition) { - var moved = [], - len = arr.length; - var write = 0; + const moved = [], + len = arr.length; + let write = 0; - for (var read = 0; read < len; ++read) { + for (let read = 0; read < len; ++read) { if (condition(arr[read])) { moved.push(arr[read]); } else { @@ -4540,292 +3867,69 @@ function moveToEndOfArray(arr, condition) { } } - for (var _read = 0; write < len; ++_read, ++write) { - arr[write] = moved[_read]; + for (let read = 0; write < len; ++read, ++write) { + arr[write] = moved[read]; } } -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.OptionKind = exports.AppOptions = void 0; - -var _pdfjsLib = __webpack_require__(7); - -var _viewer_compatibility = __webpack_require__(8); - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OptionKind = { - VIEWER: 0x02, - API: 0x04, - WORKER: 0x08, - PREFERENCE: 0x80 -}; -exports.OptionKind = OptionKind; -var defaultOptions = { - cursorToolOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - defaultUrl: { - value: "compressed.tracemonkey-pldi-09.pdf", - kind: OptionKind.VIEWER - }, - defaultZoomValue: { - value: "", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - disableHistory: { - value: false, - kind: OptionKind.VIEWER - }, - disablePageLabels: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePrintAutoRotate: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableWebGL: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - eventBusDispatchToDOM: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - externalLinkRel: { - value: "noopener noreferrer nofollow", - kind: OptionKind.VIEWER - }, - externalLinkTarget: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - historyUpdateUrl: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - ignoreDestinationZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - imageResourcesPath: { - value: "./images/", - kind: OptionKind.VIEWER - }, - maxCanvasPixels: { - value: 16777216, - compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels, - kind: OptionKind.VIEWER - }, - pdfBugEnabled: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - renderer: { - value: "canvas", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - renderInteractiveForms: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - sidebarViewOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - scrollModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - spreadModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - textLayerMode: { - value: 1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - useOnlyCssZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - viewOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cMapPacked: { - value: true, - kind: OptionKind.API - }, - cMapUrl: { - value: "../web/cmaps/", - kind: OptionKind.API - }, - disableAutoFetch: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableCreateObjectURL: { - value: false, - compatibility: _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL, - kind: OptionKind.API - }, - disableFontFace: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableRange: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableStream: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - docBaseUrl: { - value: "", - kind: OptionKind.API - }, - isEvalSupported: { - value: true, - kind: OptionKind.API - }, - maxImageSize: { - value: -1, - kind: OptionKind.API - }, - pdfBug: { - value: false, - kind: OptionKind.API - }, - verbosity: { - value: 1, - kind: OptionKind.API - }, - workerPort: { - value: null, - kind: OptionKind.WORKER - }, - workerSrc: { - value: "../build/pdf.worker.js", - kind: OptionKind.WORKER + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); } -}; -{ - defaultOptions.disablePreferences = { - value: false, - kind: OptionKind.VIEWER - }; - defaultOptions.locale = { - value: typeof navigator !== "undefined" ? navigator.language : "en-US", - kind: OptionKind.VIEWER - }; - defaultOptions.printResolution = { - value: 150, - kind: OptionKind.VIEWER - }; + + return curActiveOrFocused; } -var userOptions = Object.create(null); -var AppOptions = /*#__PURE__*/function () { - function AppOptions() { - _classCallCheck(this, AppOptions); +function apiPageLayoutToSpreadMode(layout) { + switch (layout) { + case "SinglePage": + case "OneColumn": + return SpreadMode.NONE; - throw new Error("Cannot initialize AppOptions."); + case "TwoColumnLeft": + case "TwoPageLeft": + return SpreadMode.ODD; + + case "TwoColumnRight": + case "TwoPageRight": + return SpreadMode.EVEN; } - _createClass(AppOptions, null, [{ - key: "get", - value: function get(name) { - var userOption = userOptions[name]; + return SpreadMode.NONE; +} - if (userOption !== undefined) { - return userOption; - } +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; - var defaultOption = defaultOptions[name]; + case "UseThumbs": + return SidebarView.THUMBS; - if (defaultOption !== undefined) { - return defaultOption.compatibility || defaultOption.value; - } + case "UseOutlines": + return SidebarView.OUTLINE; - return undefined; - } - }, { - key: "getAll", - value: function getAll() { - var kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var options = Object.create(null); + case "UseAttachments": + return SidebarView.ATTACHMENTS; - for (var name in defaultOptions) { - var defaultOption = defaultOptions[name]; + case "UseOC": + return SidebarView.LAYERS; + } - if (kind) { - if ((kind & defaultOption.kind) === 0) { - continue; - } - - if (kind === OptionKind.PREFERENCE) { - var value = defaultOption.value, - valueType = _typeof(value); - - if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { - options[name] = value; - continue; - } - - throw new Error("Invalid type for preference: ".concat(name)); - } - } - - var userOption = userOptions[name]; - options[name] = userOption !== undefined ? userOption : defaultOption.compatibility || defaultOption.value; - } - - return options; - } - }, { - key: "set", - value: function set(name, value) { - userOptions[name] = value; - } - }, { - key: "remove", - value: function remove(name) { - delete userOptions[name]; - } - }]); - - return AppOptions; -}(); - -exports.AppOptions = AppOptions; + return SidebarView.NONE; +} /***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 5 */ +/***/ ((module) => { -var pdfjsLib; + +let pdfjsLib; if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { pdfjsLib = window["pdfjs-dist/build/pdf"]; @@ -4836,66 +3940,33 @@ if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { module.exports = pdfjsLib; /***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 6 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -var compatibilityParams = Object.create(null); -{ - var userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; - var platform = typeof navigator !== "undefined" && navigator.platform || ""; - var maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1; - var isAndroid = /Android/.test(userAgent); - var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; - (function checkCanvasSizeLimitation() { - if (isIOS || isAndroid) { - compatibilityParams.maxCanvasPixels = 5242880; - } - })(); -} -exports.viewerCompatibilityParams = Object.freeze(compatibilityParams); - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFCursorTools = exports.CursorTool = void 0; -var _grab_to_pan = __webpack_require__(10); +var _grab_to_pan = __webpack_require__(7); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _ui_utils = __webpack_require__(4); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CursorTool = { +const CursorTool = { SELECT: 0, HAND: 1, ZOOM: 2 }; exports.CursorTool = CursorTool; -var PDFCursorTools = /*#__PURE__*/function () { - function PDFCursorTools(_ref) { - var _this = this; - - var container = _ref.container, - eventBus = _ref.eventBus, - _ref$cursorToolOnLoad = _ref.cursorToolOnLoad, - cursorToolOnLoad = _ref$cursorToolOnLoad === void 0 ? CursorTool.SELECT : _ref$cursorToolOnLoad; - - _classCallCheck(this, PDFCursorTools); - +class PDFCursorTools { + constructor({ + container, + eventBus, + cursorToolOnLoad = CursorTool.SELECT + }) { this.container = container; this.eventBus = eventBus; this.active = CursorTool.SELECT; @@ -4906,118 +3977,104 @@ var PDFCursorTools = /*#__PURE__*/function () { this._addEventListeners(); - Promise.resolve().then(function () { - _this.switchTool(cursorToolOnLoad); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); }); } - _createClass(PDFCursorTools, [{ - key: "switchTool", - value: function switchTool(tool) { - var _this2 = this; + get activeTool() { + return this.active; + } - if (this.activeBeforePresentationMode !== null) { - return; - } + switchTool(tool) { + if (this.activeBeforePresentationMode !== null) { + return; + } - if (tool === this.active) { - return; - } + if (tool === this.active) { + return; + } - var disableActiveTool = function disableActiveTool() { - switch (_this2.active) { - case CursorTool.SELECT: - break; - - case CursorTool.HAND: - _this2.handTool.deactivate(); - - break; - - case CursorTool.ZOOM: - } - }; - - switch (tool) { + const disableActiveTool = () => { + switch (this.active) { case CursorTool.SELECT: - disableActiveTool(); break; case CursorTool.HAND: - disableActiveTool(); - this.handTool.activate(); + this.handTool.deactivate(); break; case CursorTool.ZOOM: - default: - console.error("switchTool: \"".concat(tool, "\" is an unsupported value.")); - return; } + }; - this.active = tool; + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; - this._dispatchEvent(); + case CursorTool.HAND: + disableActiveTool(); + this.handTool.activate(); + break; + + case CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch("cursortoolchanged", { - source: this, - tool: this.active - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; - this.eventBus._on("switchcursortool", function (evt) { - _this3.switchTool(evt.tool); - }); + this.active = tool; - this.eventBus._on("presentationmodechanged", function (evt) { - if (evt.switchInProgress) { - return; - } + this._dispatchEvent(); + } - var previouslyActive; + _dispatchEvent() { + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool: this.active + }); + } - if (evt.active) { - previouslyActive = _this3.active; + _addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); - _this3.switchTool(CursorTool.SELECT); + this.eventBus._on("presentationmodechanged", evt => { + switch (evt.state) { + case _ui_utils.PresentationModeState.FULLSCREEN: + { + const previouslyActive = this.active; + this.switchTool(CursorTool.SELECT); + this.activeBeforePresentationMode = previouslyActive; + break; + } - _this3.activeBeforePresentationMode = previouslyActive; - } else { - previouslyActive = _this3.activeBeforePresentationMode; - _this3.activeBeforePresentationMode = null; + case _ui_utils.PresentationModeState.NORMAL: + { + const previouslyActive = this.activeBeforePresentationMode; + this.activeBeforePresentationMode = null; + this.switchTool(previouslyActive); + break; + } + } + }); + } - _this3.switchTool(previouslyActive); - } - }); - } - }, { - key: "activeTool", - get: function get() { - return this.active; - } - }]); - - return PDFCursorTools; -}(); +} exports.PDFCursorTools = PDFCursorTools; /***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 7 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GrabToPan = GrabToPan; function GrabToPan(options) { @@ -5035,7 +4092,7 @@ function GrabToPan(options) { this._onmousedown = this._onmousedown.bind(this); this._onmousemove = this._onmousemove.bind(this); this._endPan = this._endPan.bind(this); - var overlay = this.overlay = document.createElement("div"); + const overlay = this.overlay = document.createElement("div"); overlay.className = "grab-to-pan-grabbing"; } @@ -5074,7 +4131,7 @@ GrabToPan.prototype = { } }, ignoreTarget: function GrabToPan_ignoreTarget(node) { - return node[matchesSelector]("a[href], a[href] *, input, textarea, button, button *, select, option"); + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); }, _onmousedown: function GrabToPan__onmousedown(event) { if (event.button !== 0 || this.ignoreTarget(event.target)) { @@ -5098,7 +4155,7 @@ GrabToPan.prototype = { this.element.addEventListener("scroll", this._endPan, true); event.preventDefault(); event.stopPropagation(); - var focusedElement = document.activeElement; + const focusedElement = document.activeElement; if (focusedElement && !focusedElement.contains(event.target)) { focusedElement.blur(); @@ -5113,10 +4170,10 @@ GrabToPan.prototype = { return; } - var xDiff = event.clientX - this.clientXStart; - var yDiff = event.clientY - this.clientYStart; - var scrollTop = this.scrollTopStart - yDiff; - var scrollLeft = this.scrollLeftStart - xDiff; + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + const scrollTop = this.scrollTopStart - yDiff; + const scrollLeft = this.scrollLeftStart - xDiff; if (this.element.scrollTo) { this.element.scrollTo({ @@ -5140,32 +4197,16 @@ GrabToPan.prototype = { this.overlay.remove(); } }; -var matchesSelector; -["webkitM", "mozM", "msM", "oM", "m"].some(function (prefix) { - var name = prefix + "atches"; - - if (name in document.documentElement) { - matchesSelector = name; - } - - name += "Selector"; - - if (name in document.documentElement) { - matchesSelector = name; - } - - return matchesSelector; -}); -var isNotIEorIsIE10plus = !document.documentMode || document.documentMode > 9; -var chrome = window.chrome; -var isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); -var isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); function isLeftMouseReleased(event) { - if ("buttons" in event && isNotIEorIsIE10plus) { + if ("buttons" in event) { return !(event.buttons & 1); } + const chrome = window.chrome; + const isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); + const isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); + if (isChrome15OrOpera15plus || isSafari6plus) { return event.which === 0; } @@ -5174,25 +4215,20 @@ function isLeftMouseReleased(event) { } /***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 8 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFRenderingQueue = exports.RenderingStates = void 0; +})); +exports.RenderingStates = exports.PDFRenderingQueue = void 0; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _pdfjsLib = __webpack_require__(5); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CLEANUP_TIMEOUT = 30000; -var RenderingStates = { +const CLEANUP_TIMEOUT = 30000; +const RenderingStates = { INITIAL: 0, RUNNING: 1, PAUSED: 2, @@ -5200,10 +4236,8 @@ var RenderingStates = { }; exports.RenderingStates = RenderingStates; -var PDFRenderingQueue = /*#__PURE__*/function () { - function PDFRenderingQueue() { - _classCallCheck(this, PDFRenderingQueue); - +class PDFRenderingQueue { + constructor() { this.pdfViewer = null; this.pdfThumbnailViewer = null; this.onIdle = null; @@ -5213,853 +4247,240 @@ var PDFRenderingQueue = /*#__PURE__*/function () { this.isThumbnailViewEnabled = false; } - _createClass(PDFRenderingQueue, [{ - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - }, { - key: "setThumbnailViewer", - value: function setThumbnailViewer(pdfThumbnailViewer) { - this.pdfThumbnailViewer = pdfThumbnailViewer; - } - }, { - key: "isHighestPriority", - value: function isHighestPriority(view) { - return this.highestPriorityPage === view.renderingId; - } - }, { - key: "renderHighestPriority", - value: function renderHighestPriority(currentlyVisiblePages) { - if (this.idleTimeout) { - clearTimeout(this.idleTimeout); - this.idleTimeout = null; - } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } - if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + + renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + + if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { + if (this.pdfThumbnailViewer.forceRendering()) { return; } - - if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { - if (this.pdfThumbnailViewer.forceRendering()) { - return; - } - } - - if (this.printing) { - return; - } - - if (this.onIdle) { - this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); - } } - }, { - key: "getHighestPriority", - value: function getHighestPriority(visible, views, scrolledDown) { - var visibleViews = visible.views; - var numVisible = visibleViews.length; - if (numVisible === 0) { - return null; - } + if (this.printing) { + return; + } - for (var i = 0; i < numVisible; ++i) { - var view = visibleViews[i].view; + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } - if (!this.isViewFinished(view)) { - return view; - } - } - - if (scrolledDown) { - var nextPageIndex = visible.last.id; - - if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { - return views[nextPageIndex]; - } - } else { - var previousPageIndex = visible.first.id - 2; - - if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { - return views[previousPageIndex]; - } - } + getHighestPriority(visible, views, scrolledDown) { + const visibleViews = visible.views; + const numVisible = visibleViews.length; + if (numVisible === 0) { return null; } - }, { - key: "isViewFinished", - value: function isViewFinished(view) { - return view.renderingState === RenderingStates.FINISHED; - } - }, { - key: "renderView", - value: function renderView(view) { - var _this = this; - switch (view.renderingState) { - case RenderingStates.FINISHED: - return false; + for (let i = 0; i < numVisible; ++i) { + const view = visibleViews[i].view; - case RenderingStates.PAUSED: - this.highestPriorityPage = view.renderingId; - view.resume(); - break; - - case RenderingStates.RUNNING: - this.highestPriorityPage = view.renderingId; - break; - - case RenderingStates.INITIAL: - this.highestPriorityPage = view.renderingId; - view.draw()["finally"](function () { - _this.renderHighestPriority(); - })["catch"](function (reason) { - console.error("renderView: \"".concat(reason, "\"")); - }); - break; + if (!this.isViewFinished(view)) { + return view; } - - return true; } - }]); - return PDFRenderingQueue; -}(); + if (scrolledDown) { + const nextPageIndex = visible.last.id; + + if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { + return views[nextPageIndex]; + } + } else { + const previousPageIndex = visible.first.id - 2; + + if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { + return views[previousPageIndex]; + } + } + + return null; + } + + isViewFinished(view) { + return view.renderingState === RenderingStates.FINISHED; + } + + renderView(view) { + switch (view.renderingState) { + case RenderingStates.FINISHED: + return false; + + case RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + + case RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + + case RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + if (reason instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + + console.error(`renderView: "${reason}"`); + }); + break; + } + + return true; + } + +} exports.PDFRenderingQueue = PDFRenderingQueue; /***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 9 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFSidebar = exports.SidebarView = void 0; - -var _ui_utils = __webpack_require__(5); - -var _pdf_rendering_queue = __webpack_require__(11); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; -var SidebarView = { - UNKNOWN: -1, - NONE: 0, - THUMBS: 1, - OUTLINE: 2, - ATTACHMENTS: 3, - LAYERS: 4 -}; -exports.SidebarView = SidebarView; - -var PDFSidebar = /*#__PURE__*/function () { - function PDFSidebar(_ref) { - var elements = _ref.elements, - pdfViewer = _ref.pdfViewer, - pdfThumbnailViewer = _ref.pdfThumbnailViewer, - eventBus = _ref.eventBus, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n, - _ref$disableNotificat = _ref.disableNotification, - disableNotification = _ref$disableNotificat === void 0 ? false : _ref$disableNotificat; - - _classCallCheck(this, PDFSidebar); - - this.isOpen = false; - this.active = SidebarView.THUMBS; - this.isInitialViewSet = false; - this.onToggled = null; - this.pdfViewer = pdfViewer; - this.pdfThumbnailViewer = pdfThumbnailViewer; - this.outerContainer = elements.outerContainer; - this.viewerContainer = elements.viewerContainer; - this.toggleButton = elements.toggleButton; - this.thumbnailButton = elements.thumbnailButton; - this.outlineButton = elements.outlineButton; - this.attachmentsButton = elements.attachmentsButton; - this.thumbnailView = elements.thumbnailView; - this.outlineView = elements.outlineView; - this.attachmentsView = elements.attachmentsView; - this.eventBus = eventBus; - this.l10n = l10n; - this._disableNotification = disableNotification; - - this._addEventListeners(); - } - - _createClass(PDFSidebar, [{ - key: "reset", - value: function reset() { - this.isInitialViewSet = false; - - this._hideUINotification(null); - - this.switchView(SidebarView.THUMBS); - this.outlineButton.disabled = false; - this.attachmentsButton.disabled = false; - } - }, { - key: "setInitialView", - value: function setInitialView() { - var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SidebarView.NONE; - - if (this.isInitialViewSet) { - return; - } - - this.isInitialViewSet = true; - - if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { - this._dispatchEvent(); - - return; - } - - if (!this._switchView(view, true)) { - this._dispatchEvent(); - } - } - }, { - key: "switchView", - value: function switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - this._switchView(view, forceOpen); - } - }, { - key: "_switchView", - value: function _switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var isViewChanged = view !== this.active; - var shouldForceRendering = false; - - switch (view) { - case SidebarView.NONE: - if (this.isOpen) { - this.close(); - return true; - } - - return false; - - case SidebarView.THUMBS: - if (this.isOpen && isViewChanged) { - shouldForceRendering = true; - } - - break; - - case SidebarView.OUTLINE: - if (this.outlineButton.disabled) { - return false; - } - - break; - - case SidebarView.ATTACHMENTS: - if (this.attachmentsButton.disabled) { - return false; - } - - break; - - default: - console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view.")); - return false; - } - - this.active = view; - this.thumbnailButton.classList.toggle("toggled", view === SidebarView.THUMBS); - this.outlineButton.classList.toggle("toggled", view === SidebarView.OUTLINE); - this.attachmentsButton.classList.toggle("toggled", view === SidebarView.ATTACHMENTS); - this.thumbnailView.classList.toggle("hidden", view !== SidebarView.THUMBS); - this.outlineView.classList.toggle("hidden", view !== SidebarView.OUTLINE); - this.attachmentsView.classList.toggle("hidden", view !== SidebarView.ATTACHMENTS); - - if (forceOpen && !this.isOpen) { - this.open(); - return true; - } - - if (shouldForceRendering) { - this._updateThumbnailViewer(); - - this._forceRendering(); - } - - if (isViewChanged) { - this._dispatchEvent(); - } - - this._hideUINotification(this.active); - - return isViewChanged; - } - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - this.toggleButton.classList.add("toggled"); - this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); - - if (this.active === SidebarView.THUMBS) { - this._updateThumbnailViewer(); - } - - this._forceRendering(); - - this._dispatchEvent(); - - this._hideUINotification(this.active); - } - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - this.toggleButton.classList.remove("toggled"); - this.outerContainer.classList.add("sidebarMoving"); - this.outerContainer.classList.remove("sidebarOpen"); - - this._forceRendering(); - - this._dispatchEvent(); - } - }, { - key: "toggle", - value: function toggle() { - if (this.isOpen) { - this.close(); - } else { - this.open(); - } - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch("sidebarviewchanged", { - source: this, - view: this.visibleView - }); - } - }, { - key: "_forceRendering", - value: function _forceRendering() { - if (this.onToggled) { - this.onToggled(); - } else { - this.pdfViewer.forceRendering(); - this.pdfThumbnailViewer.forceRendering(); - } - } - }, { - key: "_updateThumbnailViewer", - value: function _updateThumbnailViewer() { - var pdfViewer = this.pdfViewer, - pdfThumbnailViewer = this.pdfThumbnailViewer; - var pagesCount = pdfViewer.pagesCount; - - for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) { - var pageView = pdfViewer.getPageView(pageIndex); - - if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { - var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); - } - } - - pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); - } - }, { - key: "_showUINotification", - value: function _showUINotification(view) { - var _this = this; - - if (this._disableNotification) { - return; - } - - this.l10n.get("toggle_sidebar_notification.title", null, "Toggle Sidebar (document contains outline/attachments)").then(function (msg) { - _this.toggleButton.title = msg; - }); - - if (!this.isOpen) { - this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); - } else if (view === this.active) { - return; - } - - switch (view) { - case SidebarView.OUTLINE: - this.outlineButton.classList.add(UI_NOTIFICATION_CLASS); - break; - - case SidebarView.ATTACHMENTS: - this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS); - break; - } - } - }, { - key: "_hideUINotification", - value: function _hideUINotification(view) { - var _this2 = this; - - if (this._disableNotification) { - return; - } - - var removeNotification = function removeNotification(sidebarView) { - switch (sidebarView) { - case SidebarView.OUTLINE: - _this2.outlineButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - - case SidebarView.ATTACHMENTS: - _this2.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - } - }; - - if (!this.isOpen && view !== null) { - return; - } - - this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); - - if (view !== null) { - removeNotification(view); - return; - } - - for (view in SidebarView) { - removeNotification(SidebarView[view]); - } - - this.l10n.get("toggle_sidebar.title", null, "Toggle Sidebar").then(function (msg) { - _this2.toggleButton.title = msg; - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; - - this.viewerContainer.addEventListener("transitionend", function (evt) { - if (evt.target === _this3.viewerContainer) { - _this3.outerContainer.classList.remove("sidebarMoving"); - } - }); - this.toggleButton.addEventListener("click", function () { - _this3.toggle(); - }); - this.thumbnailButton.addEventListener("click", function () { - _this3.switchView(SidebarView.THUMBS); - }); - this.outlineButton.addEventListener("click", function () { - _this3.switchView(SidebarView.OUTLINE); - }); - this.outlineButton.addEventListener("dblclick", function () { - _this3.eventBus.dispatch("toggleoutlinetree", { - source: _this3 - }); - }); - this.attachmentsButton.addEventListener("click", function () { - _this3.switchView(SidebarView.ATTACHMENTS); - }); - - this.eventBus._on("outlineloaded", function (evt) { - var outlineCount = evt.outlineCount; - _this3.outlineButton.disabled = !outlineCount; - - if (outlineCount) { - _this3._showUINotification(SidebarView.OUTLINE); - } else if (_this3.active === SidebarView.OUTLINE) { - _this3.switchView(SidebarView.THUMBS); - } - }); - - this.eventBus._on("attachmentsloaded", function (evt) { - if (evt.attachmentsCount) { - _this3.attachmentsButton.disabled = false; - - _this3._showUINotification(SidebarView.ATTACHMENTS); - - return; - } - - Promise.resolve().then(function () { - if (_this3.attachmentsView.hasChildNodes()) { - return; - } - - _this3.attachmentsButton.disabled = true; - - if (_this3.active === SidebarView.ATTACHMENTS) { - _this3.switchView(SidebarView.THUMBS); - } - }); - }); - - this.eventBus._on("presentationmodechanged", function (evt) { - if (!evt.active && !evt.switchInProgress && _this3.isThumbnailViewVisible) { - _this3._updateThumbnailViewer(); - } - }); - } - }, { - key: "visibleView", - get: function get() { - return this.isOpen ? this.active : SidebarView.NONE; - } - }, { - key: "isThumbnailViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.THUMBS; - } - }, { - key: "isOutlineViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.OUTLINE; - } - }, { - key: "isAttachmentsViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.ATTACHMENTS; - } - }]); - - return PDFSidebar; -}(); - -exports.PDFSidebar = PDFSidebar; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); +})); exports.OverlayManager = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OverlayManager = /*#__PURE__*/function () { - function OverlayManager() { - _classCallCheck(this, OverlayManager); - +class OverlayManager { + constructor() { this._overlays = {}; this._active = null; this._keyDownBound = this._keyDown.bind(this); } - _createClass(OverlayManager, [{ - key: "register", - value: function () { - var _register = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, element) { - var callerCloseMethod, - canForceClose, - container, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - callerCloseMethod = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - canForceClose = _args.length > 3 && _args[3] !== undefined ? _args[3] : false; + get active() { + return this._active; + } - if (!(!name || !element || !(container = element.parentNode))) { - _context.next = 6; - break; - } + async register(name, element, callerCloseMethod = null, canForceClose = false) { + let container; - throw new Error("Not enough parameters."); + if (!name || !element || !(container = element.parentNode)) { + throw new Error("Not enough parameters."); + } else if (this._overlays[name]) { + throw new Error("The overlay is already registered."); + } - case 6: - if (!this._overlays[name]) { - _context.next = 8; - break; - } + this._overlays[name] = { + element, + container, + callerCloseMethod, + canForceClose + }; + } - throw new Error("The overlay is already registered."); + async unregister(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active === name) { + throw new Error("The overlay cannot be removed while it is active."); + } - case 8: - this._overlays[name] = { - element: element, - container: container, - callerCloseMethod: callerCloseMethod, - canForceClose: canForceClose - }; + delete this._overlays[name]; + } - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function register(_x, _x2) { - return _register.apply(this, arguments); - } - - return register; - }() - }, { - key: "unregister", - value: function () { - var _unregister = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(name) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (this._overlays[name]) { - _context2.next = 4; - break; - } - - throw new Error("The overlay does not exist."); - - case 4: - if (!(this._active === name)) { - _context2.next = 6; - break; - } - - throw new Error("The overlay cannot be removed while it is active."); - - case 6: - delete this._overlays[name]; - - case 7: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function unregister(_x3) { - return _unregister.apply(this, arguments); - } - - return unregister; - }() - }, { - key: "open", - value: function () { - var _open = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (this._overlays[name]) { - _context3.next = 4; - break; - } - - throw new Error("The overlay does not exist."); - - case 4: - if (!this._active) { - _context3.next = 14; - break; - } - - if (!this._overlays[name].canForceClose) { - _context3.next = 9; - break; - } - - this._closeThroughCaller(); - - _context3.next = 14; - break; - - case 9: - if (!(this._active === name)) { - _context3.next = 13; - break; - } - - throw new Error("The overlay is already active."); - - case 13: - throw new Error("Another overlay is currently active."); - - case 14: - this._active = name; - - this._overlays[this._active].element.classList.remove("hidden"); - - this._overlays[this._active].container.classList.remove("hidden"); - - window.addEventListener("keydown", this._keyDownBound); - - case 18: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function open(_x4) { - return _open.apply(this, arguments); - } - - return open; - }() - }, { - key: "close", - value: function () { - var _close = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(name) { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - if (this._overlays[name]) { - _context4.next = 4; - break; - } - - throw new Error("The overlay does not exist."); - - case 4: - if (this._active) { - _context4.next = 8; - break; - } - - throw new Error("The overlay is currently not active."); - - case 8: - if (!(this._active !== name)) { - _context4.next = 10; - break; - } - - throw new Error("Another overlay is currently active."); - - case 10: - this._overlays[this._active].container.classList.add("hidden"); - - this._overlays[this._active].element.classList.add("hidden"); - - this._active = null; - window.removeEventListener("keydown", this._keyDownBound); - - case 14: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function close(_x5) { - return _close.apply(this, arguments); - } - - return close; - }() - }, { - key: "_keyDown", - value: function _keyDown(evt) { - if (this._active && evt.keyCode === 27) { + async open(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active) { + if (this._overlays[name].canForceClose) { this._closeThroughCaller(); - - evt.preventDefault(); + } else if (this._active === name) { + throw new Error("The overlay is already active."); + } else { + throw new Error("Another overlay is currently active."); } } - }, { - key: "_closeThroughCaller", - value: function _closeThroughCaller() { - if (this._overlays[this._active].callerCloseMethod) { - this._overlays[this._active].callerCloseMethod(); - } - if (this._active) { - this.close(this._active); - } - } - }, { - key: "active", - get: function get() { - return this._active; - } - }]); + this._active = name; - return OverlayManager; -}(); + this._overlays[this._active].element.classList.remove("hidden"); + + this._overlays[this._active].container.classList.remove("hidden"); + + window.addEventListener("keydown", this._keyDownBound); + } + + async close(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (!this._active) { + throw new Error("The overlay is currently not active."); + } else if (this._active !== name) { + throw new Error("Another overlay is currently active."); + } + + this._overlays[this._active].container.classList.add("hidden"); + + this._overlays[this._active].element.classList.add("hidden"); + + this._active = null; + window.removeEventListener("keydown", this._keyDownBound); + } + + _keyDown(evt) { + if (this._active && evt.keyCode === 27) { + this._closeThroughCaller(); + + evt.preventDefault(); + } + } + + _closeThroughCaller() { + if (this._overlays[this._active].callerCloseMethod) { + this._overlays[this._active].callerCloseMethod(); + } + + if (this._active) { + this.close(this._active); + } + } + +} exports.OverlayManager = OverlayManager; /***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 10 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PasswordPrompt = void 0; -var _ui_utils = __webpack_require__(5); - -var _pdfjsLib = __webpack_require__(7); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PasswordPrompt = /*#__PURE__*/function () { - function PasswordPrompt(options, overlayManager) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PasswordPrompt); +var _pdfjsLib = __webpack_require__(5); +class PasswordPrompt { + constructor(options, overlayManager, l10n, isViewerEmbedded = false) { this.overlayName = options.overlayName; this.container = options.container; this.label = options.label; @@ -6068,311 +4489,382 @@ var PasswordPrompt = /*#__PURE__*/function () { this.cancelButton = options.cancelButton; this.overlayManager = overlayManager; this.l10n = l10n; + this._isViewerEmbedded = isViewerEmbedded; this.updateCallback = null; this.reason = null; this.submitButton.addEventListener("click", this.verify.bind(this)); this.cancelButton.addEventListener("click", this.close.bind(this)); - this.input.addEventListener("keydown", function (e) { + this.input.addEventListener("keydown", e => { if (e.keyCode === 13) { - _this.verify(); + this.verify(); } }); this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); } - _createClass(PasswordPrompt, [{ - key: "open", - value: function open() { - var _this2 = this; + async open() { + await this.overlayManager.open(this.overlayName); + const passwordIncorrect = this.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD; - this.overlayManager.open(this.overlayName).then(function () { - _this2.input.focus(); - - var promptString; - - if (_this2.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) { - promptString = _this2.l10n.get("password_invalid", null, "Invalid password. Please try again."); - } else { - promptString = _this2.l10n.get("password_label", null, "Enter the password to open this PDF file."); - } - - promptString.then(function (msg) { - _this2.label.textContent = msg; - }); - }); + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); } - }, { - key: "close", - value: function close() { - var _this3 = this; - this.overlayManager.close(this.overlayName).then(function () { - _this3.input.value = ""; - }); - } - }, { - key: "verify", - value: function verify() { - var password = this.input.value; + this.label.textContent = await this.l10n.get(`password_${passwordIncorrect ? "invalid" : "label"}`); + } - if (password && password.length > 0) { - this.close(); - this.updateCallback(password); - } - } - }, { - key: "setUpdateCallback", - value: function setUpdateCallback(updateCallback, reason) { - this.updateCallback = updateCallback; - this.reason = reason; - } - }]); + close() { + this.overlayManager.close(this.overlayName).then(() => { + this.input.value = ""; + }); + } - return PasswordPrompt; -}(); + verify() { + const password = this.input.value; + + if (password?.length > 0) { + this.close(); + this.updateCallback(password); + } + } + + setUpdateCallback(updateCallback, reason) { + this.updateCallback = updateCallback; + this.reason = reason; + } + +} exports.PasswordPrompt = PasswordPrompt; /***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 11 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFAttachmentViewer = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _base_tree_viewer = __webpack_require__(12); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFAttachmentViewer = /*#__PURE__*/function () { - function PDFAttachmentViewer(_ref) { - var container = _ref.container, - eventBus = _ref.eventBus, - downloadManager = _ref.downloadManager; - - _classCallCheck(this, PDFAttachmentViewer); - - this.container = container; - this.eventBus = eventBus; - this.downloadManager = downloadManager; - this.reset(); +class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; this.eventBus._on("fileattachmentannotation", this._appendAttachment.bind(this)); } - _createClass(PDFAttachmentViewer, [{ - key: "reset", - value: function reset() { - var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.attachments = null; - this.container.textContent = ""; + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; - if (!keepRenderedCapability) { - this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - } + if (!keepRenderedCapability) { + this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(attachmentsCount) { - this._renderedCapability.resolve(); - this.eventBus.dispatch("attachmentsloaded", { - source: this, - attachmentsCount: attachmentsCount + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + } + + this._pendingDispatchEvent = null; + } + + _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + this._pendingDispatchEvent = null; + } + + if (attachmentsCount === 0) { + this._pendingDispatchEvent = setTimeout(() => { + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount: 0 + }); + this._pendingDispatchEvent = null; }); + return; } - }, { - key: "_bindPdfLink", - value: function _bindPdfLink(button, content, filename) { - if (this.downloadManager.disableCreateObjectURL) { - throw new Error('bindPdfLink: Unsupported "disableCreateObjectURL" value.'); - } - var blobUrl; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } - button.onclick = function () { - if (!blobUrl) { - blobUrl = (0, _pdfjsLib.createObjectURL)(content, "application/pdf"); - } + _bindLink(element, { + content, + filename + }) { + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, content, filename); + return false; + }; + } - var viewerUrl; - viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); - window.open(viewerUrl); - return false; - }; + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); } - }, { - key: "_bindLink", - value: function _bindLink(button, content, filename) { - var _this = this; - button.onclick = function () { - _this.downloadManager.downloadData(content, filename, ""); + this._attachments = attachments || null; - return false; - }; + if (!attachments) { + this._dispatchEvent(0); + + return; } - }, { - key: "render", - value: function render(_ref2) { - var attachments = _ref2.attachments, - _ref2$keepRenderedCap = _ref2.keepRenderedCapability, - keepRenderedCapability = _ref2$keepRenderedCap === void 0 ? false : _ref2$keepRenderedCap; - var attachmentsCount = 0; - if (this.attachments) { - this.reset(keepRenderedCapability === true); - } + const names = Object.keys(attachments).sort(function (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; - this.attachments = attachments || null; + for (const name of names) { + const item = attachments[name]; + const content = item.content, + filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); - if (!attachments) { - this._dispatchEvent(attachmentsCount); + this._bindLink(element, { + content, + filename + }); + element.textContent = this._normalizeTextContent(filename); + div.appendChild(element); + fragment.appendChild(div); + attachmentsCount++; + } + + this._finishRendering(fragment, attachmentsCount); + } + + _appendAttachment({ + id, + filename, + content + }) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { return; } - var names = Object.keys(attachments).sort(function (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - attachmentsCount = names.length; + let attachments = this._attachments; - for (var i = 0; i < attachmentsCount; i++) { - var item = attachments[names[i]]; - var filename = (0, _pdfjsLib.removeNullCharacters)((0, _pdfjsLib.getFilenameFromUrl)(item.filename)); - var div = document.createElement("div"); - div.className = "attachmentsItem"; - var button = document.createElement("button"); - button.textContent = filename; - - if (/\.pdf$/i.test(filename) && !this.downloadManager.disableCreateObjectURL) { - this._bindPdfLink(button, item.content, filename); - } else { - this._bindLink(button, item.content, filename); - } - - div.appendChild(button); - this.container.appendChild(div); - } - - this._dispatchEvent(attachmentsCount); - } - }, { - key: "_appendAttachment", - value: function _appendAttachment(_ref3) { - var _this2 = this; - - var id = _ref3.id, - filename = _ref3.filename, - content = _ref3.content; - - this._renderedCapability.promise.then(function () { - var attachments = _this2.attachments; - - if (!attachments) { - attachments = Object.create(null); - } else { - for (var name in attachments) { - if (id === name) { - return; - } + if (!attachments) { + attachments = Object.create(null); + } else { + for (const name in attachments) { + if (id === name) { + return; } } + } - attachments[id] = { - filename: filename, - content: content - }; - - _this2.render({ - attachments: attachments, - keepRenderedCapability: true - }); + attachments[id] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true }); - } - }]); + }); + } - return PDFAttachmentViewer; -}(); +} exports.PDFAttachmentViewer = PDFAttachmentViewer; /***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 12 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.BaseTreeViewer = void 0; + +var _pdfjsLib = __webpack_require__(5); + +const TREEITEM_OFFSET_TOP = -100; +const TREEITEM_SELECTED_CLASS = "selected"; + +class BaseTreeViewer { + constructor(options) { + if (this.constructor === BaseTreeViewer) { + throw new Error("Cannot initialize BaseTreeViewer."); + } + + this.container = options.container; + this.eventBus = options.eventBus; + this.reset(); + } + + reset() { + this._pdfDocument = null; + this._lastToggleIsShow = true; + this._currentTreeItem = null; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } + + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } + + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } + + _normalizeTextContent(str) { + return (0, _pdfjsLib.removeNullCharacters)(str) || "\u2013"; + } + + _addToggleButton(div, hidden = false) { + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; + + if (hidden) { + toggler.classList.add("treeItemsHidden"); + } + + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + + this._toggleTreeItem(div, shouldShowAll); + } + }; + + div.insertBefore(toggler, div.firstChild); + } + + _toggleTreeItem(root, show = false) { + this._lastToggleIsShow = show; + + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); + } + } + + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } + + _finishRendering(fragment, count, hasAnyNesting = false) { + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + } + + this.container.appendChild(fragment); + + this._dispatchEvent(count); + } + + render(params) { + throw new Error("Not implemented: render"); + } + + _updateCurrentTreeItem(treeItem = null) { + if (this._currentTreeItem) { + this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); + + this._currentTreeItem = null; + } + + if (treeItem) { + treeItem.classList.add(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = treeItem; + } + } + + _scrollToCurrentTreeItem(treeItem) { + if (!treeItem) { + return; + } + + let currentNode = treeItem.parentNode; + + while (currentNode && currentNode !== this.container) { + if (currentNode.classList.contains("treeItem")) { + const toggler = currentNode.firstElementChild; + toggler?.classList.remove("treeItemsHidden"); + } + + currentNode = currentNode.parentNode; + } + + this._updateCurrentTreeItem(treeItem); + + this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); + } + +} + +exports.BaseTreeViewer = BaseTreeViewer; + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFDocumentProperties = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_FIELD_CONTENT = "-"; -var NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; -var US_PAGE_NAMES = { +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { "8.5x11": "Letter", "8.5x14": "Legal" }; -var METRIC_PAGE_NAMES = { +const METRIC_PAGE_NAMES = { "297x420": "A3", "210x297": "A4" }; function getPageName(size, isPortrait, pageNames) { - var width = isPortrait ? size.width : size.height; - var height = isPortrait ? size.height : size.width; - return pageNames["".concat(width, "x").concat(height)]; + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; } -var PDFDocumentProperties = /*#__PURE__*/function () { - function PDFDocumentProperties(_ref, overlayManager, eventBus) { - var _this = this; - - var overlayName = _ref.overlayName, - fields = _ref.fields, - container = _ref.container, - closeButton = _ref.closeButton; - var l10n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFDocumentProperties); - +class PDFDocumentProperties { + constructor({ + overlayName, + fields, + container, + closeButton + }, overlayManager, eventBus, l10n) { this.overlayName = overlayName; this.fields = fields; this.container = container; @@ -6381,651 +4873,461 @@ var PDFDocumentProperties = /*#__PURE__*/function () { this._reset(); - if (closeButton) { - closeButton.addEventListener("click", this.close.bind(this)); - } - + closeButton.addEventListener("click", this.close.bind(this)); this.overlayManager.register(this.overlayName, this.container, this.close.bind(this)); - if (eventBus) { - eventBus._on("pagechanging", function (evt) { - _this._currentPageNumber = evt.pageNumber; - }); + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); - eventBus._on("rotationchanging", function (evt) { - _this._pagesRotation = evt.pagesRotation; - }); - } + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); this._isNonMetricLocale = true; - l10n.getLanguage().then(function (locale) { - _this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); + l10n.getLanguage().then(locale => { + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); }); } - _createClass(PDFDocumentProperties, [{ - key: "open", - value: function open() { - var _this2 = this; + async open() { + const freezeFieldData = data => { + Object.defineProperty(this, "fieldData", { + value: Object.freeze(data), + writable: false, + enumerable: true, + configurable: true + }); + }; - var freezeFieldData = function freezeFieldData(data) { - Object.defineProperty(_this2, "fieldData", { - value: Object.freeze(data), - writable: false, - enumerable: true, - configurable: true - }); + await Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]); + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; + + if (this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === this.fieldData._pagesRotation) { + this._updateUI(); + + return; + } + + const { + info, + contentDispositionFilename, + contentLength + } = await this.pdfDocument.getMetadata(); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url), this._parseFileSize(contentLength), this._parseDate(info.CreationDate), this._parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { + return this._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); + }), this._parseLinearization(info.IsLinearized)]); + freezeFieldData({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation + }); + + this._updateUI(); + + const { + length + } = await this.pdfDocument.getDownloadInfo(); + + if (contentLength === length) { + return; + } + + const data = Object.assign(Object.create(null), this.fieldData); + data.fileSize = await this._parseFileSize(length); + freezeFieldData(data); + + this._updateUI(); + } + + close() { + this.overlayManager.close(this.overlayName); + } + + setDocument(pdfDocument, url = null) { + if (this.pdfDocument) { + this._reset(); + + this._updateUI(true); + } + + if (!pdfDocument) { + return; + } + + this.pdfDocument = pdfDocument; + this.url = url; + + this._dataAvailableCapability.resolve(); + } + + _reset() { + this.pdfDocument = null; + this.url = null; + delete this.fieldData; + this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + + _updateUI(reset = false) { + if (reset || !this.fieldData) { + for (const id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + } + + return; + } + + if (this.overlayManager.active !== this.overlayName) { + return; + } + + for (const id in this.fields) { + const content = this.fieldData[id]; + this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } + } + + async _parseFileSize(fileSize = 0) { + const kb = fileSize / 1024, + mb = kb / 1024; + + if (!kb) { + return undefined; + } + + return this.l10n.get(`document_properties_${mb >= 1 ? "mb" : "kb"}`, { + size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), + size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }); + } + + async _parsePageSize(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + + const isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) }; - Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]).then(function () { - var currentPageNumber = _this2._currentPageNumber; - var pagesRotation = _this2._pagesRotation; + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (_this2.fieldData && currentPageNumber === _this2.fieldData["_currentPageNumber"] && pagesRotation === _this2.fieldData["_pagesRotation"]) { - _this2._updateUI(); - - return; + if (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; } - - _this2.pdfDocument.getMetadata().then(function (_ref2) { - var info = _ref2.info, - metadata = _ref2.metadata, - contentDispositionFilename = _ref2.contentDispositionFilename; - return Promise.all([info, metadata, contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(_this2.url || ""), _this2._parseFileSize(_this2.maybeFileSize), _this2._parseDate(info.CreationDate), _this2._parseDate(info.ModDate), _this2.pdfDocument.getPage(currentPageNumber).then(function (pdfPage) { - return _this2._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); - }), _this2._parseLinearization(info.IsLinearized)]); - }).then(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 8), - info = _ref4[0], - metadata = _ref4[1], - fileName = _ref4[2], - fileSize = _ref4[3], - creationDate = _ref4[4], - modDate = _ref4[5], - pageSize = _ref4[6], - isLinearized = _ref4[7]; - - freezeFieldData({ - fileName: fileName, - fileSize: fileSize, - title: info.Title, - author: info.Author, - subject: info.Subject, - keywords: info.Keywords, - creationDate: creationDate, - modificationDate: modDate, - creator: info.Creator, - producer: info.Producer, - version: info.PDFFormatVersion, - pageCount: _this2.pdfDocument.numPages, - pageSize: pageSize, - linearized: isLinearized, - _currentPageNumber: currentPageNumber, - _pagesRotation: pagesRotation - }); - - _this2._updateUI(); - - return _this2.pdfDocument.getDownloadInfo(); - }).then(function (_ref5) { - var length = _ref5.length; - _this2.maybeFileSize = length; - return _this2._parseFileSize(length); - }).then(function (fileSize) { - if (fileSize === _this2.fieldData["fileSize"]) { - return; - } - - var data = Object.assign(Object.create(null), _this2.fieldData); - data["fileSize"] = fileSize; - freezeFieldData(data); - - _this2._updateUI(); - }); - }); - } - }, { - key: "close", - value: function close() { - this.overlayManager.close(this.overlayName); - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (this.pdfDocument) { - this._reset(); - - this._updateUI(true); - } - - if (!pdfDocument) { - return; - } - - this.pdfDocument = pdfDocument; - this.url = url; - - this._dataAvailableCapability.resolve(); - } - }, { - key: "setFileSize", - value: function setFileSize(fileSize) { - if (Number.isInteger(fileSize) && fileSize > 0) { - this.maybeFileSize = fileSize; } } - }, { - key: "_reset", - value: function _reset() { - this.pdfDocument = null; - this.url = null; - this.maybeFileSize = 0; - delete this.fieldData; - this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._currentPageNumber = 1; - this._pagesRotation = 0; + + const [{ + width, + height + }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`document_properties_page_size_unit_${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`document_properties_page_size_name_${rawName.toLowerCase()}`), this.l10n.get(`document_properties_page_size_orientation_${isPortrait ? "portrait" : "landscape"}`)]); + return this.l10n.get(`document_properties_page_size_dimension_${name ? "name_" : ""}string`, { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit, + name, + orientation + }); + } + + async _parseDate(inputDate) { + const dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); + + if (!dateObject) { + return undefined; } - }, { - key: "_updateUI", - value: function _updateUI() { - var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (reset || !this.fieldData) { - for (var id in this.fields) { - this.fields[id].textContent = DEFAULT_FIELD_CONTENT; - } + return this.l10n.get("document_properties_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + } - return; - } + _parseLinearization(isLinearized) { + return this.l10n.get(`document_properties_linearized_${isLinearized ? "yes" : "no"}`); + } - if (this.overlayManager.active !== this.overlayName) { - return; - } - - for (var _id in this.fields) { - var content = this.fieldData[_id]; - this.fields[_id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; - } - } - }, { - key: "_parseFileSize", - value: function () { - var _parseFileSize2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var fileSize, - kb, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - fileSize = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0; - kb = fileSize / 1024; - - if (kb) { - _context.next = 6; - break; - } - - return _context.abrupt("return", undefined); - - case 6: - if (!(kb < 1024)) { - _context.next = 8; - break; - } - - return _context.abrupt("return", this.l10n.get("document_properties_kb", { - size_kb: (+kb.toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, "{{size_kb}} KB ({{size_b}} bytes)")); - - case 8: - return _context.abrupt("return", this.l10n.get("document_properties_mb", { - size_mb: (+(kb / 1024).toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, "{{size_mb}} MB ({{size_b}} bytes)")); - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _parseFileSize() { - return _parseFileSize2.apply(this, arguments); - } - - return _parseFileSize; - }() - }, { - key: "_parsePageSize", - value: function () { - var _parsePageSize2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(pageSizeInches, pagesRotation) { - var _this3 = this; - - var isPortrait, sizeInches, sizeMillimeters, pageName, rawName, exactMillimeters, intMillimeters; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (pageSizeInches) { - _context2.next = 2; - break; - } - - return _context2.abrupt("return", undefined); - - case 2: - if (pagesRotation % 180 !== 0) { - pageSizeInches = { - width: pageSizeInches.height, - height: pageSizeInches.width - }; - } - - isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); - sizeInches = { - width: Math.round(pageSizeInches.width * 100) / 100, - height: Math.round(pageSizeInches.height * 100) / 100 - }; - sizeMillimeters = { - width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, - height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 - }; - pageName = null; - rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { - exactMillimeters = { - width: pageSizeInches.width * 25.4, - height: pageSizeInches.height * 25.4 - }; - intMillimeters = { - width: Math.round(sizeMillimeters.width), - height: Math.round(sizeMillimeters.height) - }; - - if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { - rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (rawName) { - sizeInches = { - width: Math.round(intMillimeters.width / 25.4 * 100) / 100, - height: Math.round(intMillimeters.height / 25.4 * 100) / 100 - }; - sizeMillimeters = intMillimeters; - } - } - } - - if (rawName) { - pageName = this.l10n.get("document_properties_page_size_name_" + rawName.toLowerCase(), null, rawName); - } - - return _context2.abrupt("return", Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get("document_properties_page_size_unit_" + (this._isNonMetricLocale ? "inches" : "millimeters"), null, this._isNonMetricLocale ? "in" : "mm"), pageName, this.l10n.get("document_properties_page_size_orientation_" + (isPortrait ? "portrait" : "landscape"), null, isPortrait ? "portrait" : "landscape")]).then(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 4), - _ref7$ = _ref7[0], - width = _ref7$.width, - height = _ref7$.height, - unit = _ref7[1], - name = _ref7[2], - orientation = _ref7[3]; - - return _this3.l10n.get("document_properties_page_size_dimension_" + (name ? "name_" : "") + "string", { - width: width.toLocaleString(), - height: height.toLocaleString(), - unit: unit, - name: name, - orientation: orientation - }, "{{width}} × {{height}} {{unit}} (" + (name ? "{{name}}, " : "") + "{{orientation}})"); - })); - - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function _parsePageSize(_x, _x2) { - return _parsePageSize2.apply(this, arguments); - } - - return _parsePageSize; - }() - }, { - key: "_parseDate", - value: function () { - var _parseDate2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(inputDate) { - var dateObject; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); - - if (dateObject) { - _context3.next = 3; - break; - } - - return _context3.abrupt("return", undefined); - - case 3: - return _context3.abrupt("return", this.l10n.get("document_properties_date_string", { - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }, "{{date}}, {{time}}")); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function _parseDate(_x3) { - return _parseDate2.apply(this, arguments); - } - - return _parseDate; - }() - }, { - key: "_parseLinearization", - value: function _parseLinearization(isLinearized) { - return this.l10n.get("document_properties_linearized_" + (isLinearized ? "yes" : "no"), null, isLinearized ? "Yes" : "No"); - } - }]); - - return PDFDocumentProperties; -}(); +} exports.PDFDocumentProperties = PDFDocumentProperties; /***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 14 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFindBar = void 0; -var _ui_utils = __webpack_require__(5); +var _pdf_find_controller = __webpack_require__(15); -var _pdf_find_controller = __webpack_require__(18); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MATCHES_COUNT_LIMIT = 1000; - -var PDFFindBar = /*#__PURE__*/function () { - function PDFFindBar(options, eventBus) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFFindBar); +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + constructor(options, eventBus, l10n) { this.opened = false; - this.bar = options.bar || null; - this.toggleButton = options.toggleButton || null; - this.findField = options.findField || null; - this.highlightAll = options.highlightAllCheckbox || null; - this.caseSensitive = options.caseSensitiveCheckbox || null; - this.entireWord = options.entireWordCheckbox || null; - this.findMsg = options.findMsg || null; - this.findResultsCount = options.findResultsCount || null; - this.findPreviousButton = options.findPreviousButton || null; - this.findNextButton = options.findNextButton || null; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.entireWord = options.entireWordCheckbox; + this.findMsg = options.findMsg; + this.findResultsCount = options.findResultsCount; + this.findPreviousButton = options.findPreviousButton; + this.findNextButton = options.findNextButton; + this.eventBus = eventBus; this.l10n = l10n; - this.toggleButton.addEventListener("click", function () { - _this.toggle(); + this.toggleButton.addEventListener("click", () => { + this.toggle(); }); - this.findField.addEventListener("input", function () { - _this.dispatchEvent(""); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); }); - this.bar.addEventListener("keydown", function (e) { + this.bar.addEventListener("keydown", e => { switch (e.keyCode) { case 13: - if (e.target === _this.findField) { - _this.dispatchEvent("again", e.shiftKey); + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); } break; case 27: - _this.close(); - + this.close(); break; } }); - this.findPreviousButton.addEventListener("click", function () { - _this.dispatchEvent("again", true); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); }); - this.findNextButton.addEventListener("click", function () { - _this.dispatchEvent("again", false); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); }); - this.highlightAll.addEventListener("click", function () { - _this.dispatchEvent("highlightallchange"); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); }); - this.caseSensitive.addEventListener("click", function () { - _this.dispatchEvent("casesensitivitychange"); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); }); - this.entireWord.addEventListener("click", function () { - _this.dispatchEvent("entirewordchange"); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); }); this.eventBus._on("resize", this._adjustWidth.bind(this)); } - _createClass(PDFFindBar, [{ - key: "reset", - value: function reset() { - this.updateUIState(); + reset() { + this.updateUIState(); + } + + dispatchEvent(type, findPrev) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + phraseSearch: true, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev + }); + } + + updateUIState(state, previous, matchesCount) { + let findMsg = Promise.resolve(""); + let status = ""; + + switch (state) { + case _pdf_find_controller.FindState.FOUND: + break; + + case _pdf_find_controller.FindState.PENDING: + status = "pending"; + break; + + case _pdf_find_controller.FindState.NOT_FOUND: + findMsg = this.l10n.get("find_not_found"); + status = "notFound"; + break; + + case _pdf_find_controller.FindState.WRAPPED: + findMsg = this.l10n.get(`find_reached_${previous ? "top" : "bottom"}`); + break; } - }, { - key: "dispatchEvent", - value: function dispatchEvent(type, findPrev) { - this.eventBus.dispatch("find", { - source: this, - type: type, - query: this.findField.value, - phraseSearch: true, - caseSensitive: this.caseSensitive.checked, - entireWord: this.entireWord.checked, - highlightAll: this.highlightAll.checked, - findPrevious: findPrev - }); - } - }, { - key: "updateUIState", - value: function updateUIState(state, previous, matchesCount) { - var _this2 = this; - var notFound = false; - var findMsg = ""; - var status = ""; - - switch (state) { - case _pdf_find_controller.FindState.FOUND: - break; - - case _pdf_find_controller.FindState.PENDING: - status = "pending"; - break; - - case _pdf_find_controller.FindState.NOT_FOUND: - findMsg = this.l10n.get("find_not_found", null, "Phrase not found"); - notFound = true; - break; - - case _pdf_find_controller.FindState.WRAPPED: - if (previous) { - findMsg = this.l10n.get("find_reached_top", null, "Reached top of document, continued from bottom"); - } else { - findMsg = this.l10n.get("find_reached_bottom", null, "Reached end of document, continued from top"); - } - - break; - } - - this.findField.classList.toggle("notFound", notFound); - this.findField.setAttribute("data-status", status); - Promise.resolve(findMsg).then(function (msg) { - _this2.findMsg.textContent = msg; - - _this2._adjustWidth(); - }); - this.updateResultsCount(matchesCount); - } - }, { - key: "updateResultsCount", - value: function updateResultsCount() { - var _this3 = this; - - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$current = _ref.current, - current = _ref$current === void 0 ? 0 : _ref$current, - _ref$total = _ref.total, - total = _ref$total === void 0 ? 0 : _ref$total; - - if (!this.findResultsCount) { - return; - } - - var limit = MATCHES_COUNT_LIMIT; - var matchesCountMsg = ""; - - if (total > 0) { - if (total > limit) { - matchesCountMsg = this.l10n.get("find_match_count_limit", { - limit: limit - }, "More than {{limit}} match" + (limit !== 1 ? "es" : "")); - } else { - matchesCountMsg = this.l10n.get("find_match_count", { - current: current, - total: total - }, "{{current}} of {{total}} match" + (total !== 1 ? "es" : "")); - } - } - - Promise.resolve(matchesCountMsg).then(function (msg) { - _this3.findResultsCount.textContent = msg; - - _this3.findResultsCount.classList.toggle("hidden", !total); - - _this3._adjustWidth(); - }); - } - }, { - key: "open", - value: function open() { - if (!this.opened) { - this.opened = true; - this.toggleButton.classList.add("toggled"); - this.bar.classList.remove("hidden"); - } - - this.findField.select(); - this.findField.focus(); + this.findField.setAttribute("data-status", status); + findMsg.then(msg => { + this.findMsg.textContent = msg; this._adjustWidth(); - } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; - } + }); + this.updateResultsCount(matchesCount); + } - this.opened = false; - this.toggleButton.classList.remove("toggled"); - this.bar.classList.add("hidden"); - this.eventBus.dispatch("findbarclose", { - source: this - }); - } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); + updateResultsCount({ + current = 0, + total = 0 + } = {}) { + const limit = MATCHES_COUNT_LIMIT; + let matchCountMsg = Promise.resolve(""); + + if (total > 0) { + if (total > limit) { + let key = "find_match_count_limit"; + matchCountMsg = this.l10n.get(key, { + limit + }); } else { - this.open(); + let key = "find_match_count"; + matchCountMsg = this.l10n.get(key, { + current, + total + }); } } - }, { - key: "_adjustWidth", - value: function _adjustWidth() { - if (!this.opened) { - return; - } - this.bar.classList.remove("wrapContainers"); - var findbarHeight = this.bar.clientHeight; - var inputContainerHeight = this.bar.firstElementChild.clientHeight; + matchCountMsg.then(msg => { + this.findResultsCount.textContent = msg; + this.findResultsCount.classList.toggle("hidden", !total); - if (findbarHeight > inputContainerHeight) { - this.bar.classList.add("wrapContainers"); - } + this._adjustWidth(); + }); + } + + open() { + if (!this.opened) { + this.opened = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.bar.classList.remove("hidden"); } - }]); - return PDFFindBar; -}(); + this.findField.select(); + this.findField.focus(); + + this._adjustWidth(); + } + + close() { + if (!this.opened) { + return; + } + + this.opened = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.bar.classList.add("hidden"); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + + _adjustWidth() { + if (!this.opened) { + return; + } + + this.bar.classList.remove("wrapContainers"); + const findbarHeight = this.bar.clientHeight; + const inputContainerHeight = this.bar.firstElementChild.clientHeight; + + if (findbarHeight > inputContainerHeight) { + this.bar.classList.add("wrapContainers"); + } + } + +} exports.PDFFindBar = PDFFindBar; /***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 15 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFindController = exports.FindState = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _pdf_find_utils = __webpack_require__(16); -var _pdf_find_utils = __webpack_require__(19); +var _ui_utils = __webpack_require__(4); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var FindState = { +const FindState = { FOUND: 0, NOT_FOUND: 1, WRAPPED: 2, PENDING: 3 }; exports.FindState = FindState; -var FIND_TIMEOUT = 250; -var MATCH_SCROLL_OFFSET_TOP = -50; -var MATCH_SCROLL_OFFSET_LEFT = -400; -var CHARACTERS_TO_NORMALIZE = { +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", "\u2018": "'", "\u2019": "'", "\u201A": "'", @@ -7034,711 +5336,710 @@ var CHARACTERS_TO_NORMALIZE = { "\u201D": '"', "\u201E": '"', "\u201F": '"', - "\xBC": "1/4", - "\xBD": "1/2", - "\xBE": "3/4" + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" }; -var normalizationRegex = null; +let normalizationRegex = null; function normalize(text) { if (!normalizationRegex) { - var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); - normalizationRegex = new RegExp("[".concat(replace, "]"), "g"); + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + normalizationRegex = new RegExp(`[${replace}]`, "g"); } - return text.replace(normalizationRegex, function (ch) { - return CHARACTERS_TO_NORMALIZE[ch]; + let diffs = null; + const normalizedText = text.replace(normalizationRegex, function (ch, index) { + const normalizedCh = CHARACTERS_TO_NORMALIZE[ch], + diff = normalizedCh.length - ch.length; + + if (diff !== 0) { + (diffs || (diffs = [])).push([index, diff]); + } + + return normalizedCh; }); + return [normalizedText, diffs]; } -var PDFFindController = /*#__PURE__*/function () { - function PDFFindController(_ref) { - var linkService = _ref.linkService, - eventBus = _ref.eventBus; +function getOriginalIndex(matchIndex, diffs = null) { + if (!diffs) { + return matchIndex; + } - _classCallCheck(this, PDFFindController); + let totalDiff = 0; + for (const [index, diff] of diffs) { + const currentIndex = index + totalDiff; + + if (currentIndex >= matchIndex) { + break; + } + + if (currentIndex + diff > matchIndex) { + totalDiff += matchIndex - currentIndex; + break; + } + + totalDiff += diff; + } + + return matchIndex - totalDiff; +} + +class PDFFindController { + constructor({ + linkService, + eventBus + }) { this._linkService = linkService; - this._eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this._eventBus = eventBus; this._reset(); eventBus._on("findbarclose", this._onFindBarClose.bind(this)); } - _createClass(PDFFindController, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - if (this._pdfDocument) { - this._reset(); - } + get highlightMatches() { + return this._highlightMatches; + } - if (!pdfDocument) { - return; - } + get pageMatches() { + return this._pageMatches; + } - this._pdfDocument = pdfDocument; + get pageMatchesLength() { + return this._pageMatchesLength; + } - this._firstPageCapability.resolve(); + get selected() { + return this._selected; + } + + get state() { + return this._state; + } + + setDocument(pdfDocument) { + if (this._pdfDocument) { + this._reset(); } - }, { - key: "executeCommand", - value: function executeCommand(cmd, state) { - var _this = this; - if (!state) { + if (!pdfDocument) { + return; + } + + this._pdfDocument = pdfDocument; + + this._firstPageCapability.resolve(); + } + + executeCommand(cmd, state) { + if (!state) { + return; + } + + const pdfDocument = this._pdfDocument; + + if (this._state === null || this._shouldDirtyMatch(cmd, state)) { + this._dirtyMatch = true; + } + + this._state = state; + + if (cmd !== "findhighlightallchange") { + this._updateUIState(FindState.PENDING); + } + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { return; } - var pdfDocument = this._pdfDocument; + this._extractText(); - if (this._state === null || this._shouldDirtyMatch(cmd, state)) { - this._dirtyMatch = true; + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - this._state = state; + if (cmd === "find") { + this._findTimeout = setTimeout(() => { + this._nextMatch(); - if (cmd !== "findhighlightallchange") { - this._updateUIState(FindState.PENDING); - } + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this._nextMatch(); + } else if (cmd === "findagain") { + this._nextMatch(); - this._firstPageCapability.promise.then(function () { - if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) { - return; + if (findbarClosed && this._state.highlightAll) { + this._updateAllPages(); } - - _this._extractText(); - - var findbarClosed = !_this._highlightMatches; - var pendingTimeout = !!_this._findTimeout; - - if (_this._findTimeout) { - clearTimeout(_this._findTimeout); - _this._findTimeout = null; - } - - if (cmd === "find") { - _this._findTimeout = setTimeout(function () { - _this._nextMatch(); - - _this._findTimeout = null; - }, FIND_TIMEOUT); - } else if (_this._dirtyMatch) { - _this._nextMatch(); - } else if (cmd === "findagain") { - _this._nextMatch(); - - if (findbarClosed && _this._state.highlightAll) { - _this._updateAllPages(); - } - } else if (cmd === "findhighlightallchange") { - if (pendingTimeout) { - _this._nextMatch(); - } else { - _this._highlightMatches = true; - } - - _this._updateAllPages(); + } else if (cmd === "findhighlightallchange") { + if (pendingTimeout) { + this._nextMatch(); } else { - _this._nextMatch(); + this._highlightMatches = true; } - }); - } - }, { - key: "scrollMatchIntoView", - value: function scrollMatchIntoView(_ref2) { - var _ref2$element = _ref2.element, - element = _ref2$element === void 0 ? null : _ref2$element, - _ref2$pageIndex = _ref2.pageIndex, - pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex, - _ref2$matchIndex = _ref2.matchIndex, - matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex; - if (!this._scrollMatches || !element) { - return; - } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { - return; - } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { - return; + this._updateAllPages(); + } else { + this._nextMatch(); } + }); + } - this._scrollMatches = false; - var spot = { - top: MATCH_SCROLL_OFFSET_TOP, - left: MATCH_SCROLL_OFFSET_LEFT - }; - (0, _ui_utils.scrollIntoView)(element, spot, true); + scrollMatchIntoView({ + element = null, + selectedLeft = 0, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; } - }, { - key: "_reset", - value: function _reset() { - this._highlightMatches = false; - this._scrollMatches = false; - this._pdfDocument = null; - this._pageMatches = []; - this._pageMatchesLength = []; - this._state = null; - this._selected = { - pageIdx: -1, - matchIdx: -1 - }; - this._offset = { - pageIdx: null, - matchIdx: null, - wrapped: false - }; - this._extractTextPromises = []; - this._pageContents = []; - this._matchesCountTotal = 0; - this._pagesToSearch = null; - this._pendingFindMatches = Object.create(null); - this._resumePageIdx = null; - this._dirtyMatch = false; - clearTimeout(this._findTimeout); - this._findTimeout = null; - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } + + _reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + + get _query() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + [this._normalizedQuery] = normalize(this._state.query); } - }, { - key: "_shouldDirtyMatch", - value: function _shouldDirtyMatch(cmd, state) { - if (state.query !== this._state.query) { - return true; - } - switch (cmd) { - case "findagain": - var pageNumber = this._selected.pageIdx + 1; - var linkService = this._linkService; - - if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { - return true; - } - - return false; - - case "findhighlightallchange": - return false; - } + return this._normalizedQuery; + } + _shouldDirtyMatch(cmd, state) { + if (state.query !== this._state.query) { return true; } - }, { - key: "_prepareMatches", - value: function _prepareMatches(matchesWithLength, matches, matchesLength) { - function isSubTerm(currentIndex) { - var currentElem = matchesWithLength[currentIndex]; - var nextElem = matchesWithLength[currentIndex + 1]; - if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { - currentElem.skipped = true; + switch (cmd) { + case "findagain": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { return true; } - for (var i = currentIndex - 1; i >= 0; i--) { - var prevElem = matchesWithLength[i]; - - if (prevElem.skipped) { - continue; - } - - if (prevElem.match + prevElem.matchLength < currentElem.match) { - break; - } - - if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { - currentElem.skipped = true; - return true; - } - } - return false; - } - matchesWithLength.sort(function (a, b) { - return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; - }); - - for (var i = 0, len = matchesWithLength.length; i < len; i++) { - if (isSubTerm(i)) { - continue; - } - - matches.push(matchesWithLength[i].match); - matchesLength.push(matchesWithLength[i].matchLength); - } + case "findhighlightallchange": + return false; } - }, { - key: "_isEntireWord", - value: function _isEntireWord(content, startIdx, length) { - if (startIdx > 0) { - var first = content.charCodeAt(startIdx); - var limit = content.charCodeAt(startIdx - 1); - if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { - return false; - } - } + return true; + } - var endIdx = startIdx + length - 1; - - if (endIdx < content.length - 1) { - var last = content.charCodeAt(endIdx); - - var _limit = content.charCodeAt(endIdx + 1); - - if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) { - return false; - } - } - - return true; - } - }, { - key: "_calculatePhraseMatch", - value: function _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) { - var matches = []; - var queryLen = query.length; - var matchIdx = -queryLen; - - while (true) { - matchIdx = pageContent.indexOf(query, matchIdx + queryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { - continue; - } - - matches.push(matchIdx); - } - - this._pageMatches[pageIndex] = matches; - } - }, { - key: "_calculateWordMatch", - value: function _calculateWordMatch(query, pageIndex, pageContent, entireWord) { - var matchesWithLength = []; - var queryArray = query.match(/\S+/g); - - for (var i = 0, len = queryArray.length; i < len; i++) { - var subquery = queryArray[i]; - var subqueryLen = subquery.length; - var matchIdx = -subqueryLen; - - while (true) { - matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { - continue; - } - - matchesWithLength.push({ - match: matchIdx, - matchLength: subqueryLen, - skipped: false - }); - } - } - - this._pageMatchesLength[pageIndex] = []; - this._pageMatches[pageIndex] = []; - - this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); - } - }, { - key: "_calculateMatch", - value: function _calculateMatch(pageIndex) { - var pageContent = this._pageContents[pageIndex]; - var query = this._query; - var _this$_state = this._state, - caseSensitive = _this$_state.caseSensitive, - entireWord = _this$_state.entireWord, - phraseSearch = _this$_state.phraseSearch; - - if (query.length === 0) { - return; - } - - if (!caseSensitive) { - pageContent = pageContent.toLowerCase(); - query = query.toLowerCase(); - } - - if (phraseSearch) { - this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord); - } else { - this._calculateWordMatch(query, pageIndex, pageContent, entireWord); - } - - if (this._state.highlightAll) { - this._updatePage(pageIndex); - } - - if (this._resumePageIdx === pageIndex) { - this._resumePageIdx = null; - - this._nextPageMatch(); - } - - var pageMatchesCount = this._pageMatches[pageIndex].length; - - if (pageMatchesCount > 0) { - this._matchesCountTotal += pageMatchesCount; - - this._updateUIResultsCount(); - } - } - }, { - key: "_extractText", - value: function _extractText() { - var _this2 = this; - - if (this._extractTextPromises.length > 0) { - return; - } - - var promise = Promise.resolve(); - - var _loop = function _loop(i, ii) { - var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); - _this2._extractTextPromises[i] = extractTextCapability.promise; - promise = promise.then(function () { - return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) { - return pdfPage.getTextContent({ - normalizeWhitespace: true - }); - }).then(function (textContent) { - var textItems = textContent.items; - var strBuf = []; - - for (var j = 0, jj = textItems.length; j < jj; j++) { - strBuf.push(textItems[j].str); - } - - _this2._pageContents[i] = normalize(strBuf.join("")); - extractTextCapability.resolve(i); - }, function (reason) { - console.error("Unable to get text content for page ".concat(i + 1), reason); - _this2._pageContents[i] = ""; - extractTextCapability.resolve(i); - }); - }); - }; - - for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) { - _loop(i, ii); - } - } - }, { - key: "_updatePage", - value: function _updatePage(index) { - if (this._scrollMatches && this._selected.pageIdx === index) { - this._linkService.page = index + 1; - } - - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: index - }); - } - }, { - key: "_updateAllPages", - value: function _updateAllPages() { - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: -1 - }); - } - }, { - key: "_nextMatch", - value: function _nextMatch() { - var _this3 = this; - - var previous = this._state.findPrevious; - var currentPageIndex = this._linkService.page - 1; - var numPages = this._linkService.pagesCount; - this._highlightMatches = true; - - if (this._dirtyMatch) { - this._dirtyMatch = false; - this._selected.pageIdx = this._selected.matchIdx = -1; - this._offset.pageIdx = currentPageIndex; - this._offset.matchIdx = null; - this._offset.wrapped = false; - this._resumePageIdx = null; - this._pageMatches.length = 0; - this._pageMatchesLength.length = 0; - this._matchesCountTotal = 0; - - this._updateAllPages(); - - for (var i = 0; i < numPages; i++) { - if (this._pendingFindMatches[i] === true) { - continue; - } - - this._pendingFindMatches[i] = true; - - this._extractTextPromises[i].then(function (pageIdx) { - delete _this3._pendingFindMatches[pageIdx]; - - _this3._calculateMatch(pageIdx); - }); - } - } - - if (this._query === "") { - this._updateUIState(FindState.FOUND); - - return; - } - - if (this._resumePageIdx) { - return; - } - - var offset = this._offset; - this._pagesToSearch = numPages; - - if (offset.matchIdx !== null) { - var numPageMatches = this._pageMatches[offset.pageIdx].length; - - if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { - offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; - - this._updateMatch(true); - - return; - } - - this._advanceOffsetPage(previous); - } - - this._nextPageMatch(); - } - }, { - key: "_matchesReady", - value: function _matchesReady(matches) { - var offset = this._offset; - var numMatches = matches.length; - var previous = this._state.findPrevious; - - if (numMatches) { - offset.matchIdx = previous ? numMatches - 1 : 0; - - this._updateMatch(true); + _prepareMatches(matchesWithLength, matches, matchesLength) { + function isSubTerm(currentIndex) { + const currentElem = matchesWithLength[currentIndex]; + const nextElem = matchesWithLength[currentIndex + 1]; + if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { + currentElem.skipped = true; return true; } - this._advanceOffsetPage(previous); + for (let i = currentIndex - 1; i >= 0; i--) { + const prevElem = matchesWithLength[i]; - if (offset.wrapped) { - offset.matchIdx = null; + if (prevElem.skipped) { + continue; + } - if (this._pagesToSearch < 0) { - this._updateMatch(false); + if (prevElem.match + prevElem.matchLength < currentElem.match) { + break; + } + if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { + currentElem.skipped = true; return true; } } return false; } - }, { - key: "_nextPageMatch", - value: function _nextPageMatch() { - if (this._resumePageIdx !== null) { - console.error("There can only be one pending page."); + + matchesWithLength.sort(function (a, b) { + return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; + }); + + for (let i = 0, len = matchesWithLength.length; i < len; i++) { + if (isSubTerm(i)) { + continue; } - var matches = null; + matches.push(matchesWithLength[i].match); + matchesLength.push(matchesWithLength[i].matchLength); + } + } - do { - var pageIdx = this._offset.pageIdx; - matches = this._pageMatches[pageIdx]; + _isEntireWord(content, startIdx, length) { + if (startIdx > 0) { + const first = content.charCodeAt(startIdx); + const limit = content.charCodeAt(startIdx - 1); - if (!matches) { - this._resumePageIdx = pageIdx; + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + const endIdx = startIdx + length - 1; + + if (endIdx < content.length - 1) { + const last = content.charCodeAt(endIdx); + const limit = content.charCodeAt(endIdx + 1); + + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + return true; + } + + _calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord) { + const matches = [], + matchesLength = []; + const queryLen = query.length; + let matchIdx = -queryLen; + + while (true) { + matchIdx = pageContent.indexOf(query, matchIdx + queryLen); + + if (matchIdx === -1) { + break; + } + + if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { + continue; + } + + const originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs), + matchEnd = matchIdx + queryLen - 1, + originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1; + matches.push(originalMatchIdx); + matchesLength.push(originalQueryLen); + } + + this._pageMatches[pageIndex] = matches; + this._pageMatchesLength[pageIndex] = matchesLength; + } + + _calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord) { + const matchesWithLength = []; + const queryArray = query.match(/\S+/g); + + for (let i = 0, len = queryArray.length; i < len; i++) { + const subquery = queryArray[i]; + const subqueryLen = subquery.length; + let matchIdx = -subqueryLen; + + while (true) { + matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); + + if (matchIdx === -1) { break; } - } while (!this._matchesReady(matches)); - } - }, { - key: "_advanceOffsetPage", - value: function _advanceOffsetPage(previous) { - var offset = this._offset; - var numPages = this._linkService.pagesCount; - offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; - offset.matchIdx = null; - this._pagesToSearch--; - if (offset.pageIdx >= numPages || offset.pageIdx < 0) { - offset.pageIdx = previous ? numPages - 1 : 0; - offset.wrapped = true; + if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { + continue; + } + + const originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs), + matchEnd = matchIdx + subqueryLen - 1, + originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1; + matchesWithLength.push({ + match: originalMatchIdx, + matchLength: originalQueryLen, + skipped: false + }); } } - }, { - key: "_updateMatch", - value: function _updateMatch() { - var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var state = FindState.NOT_FOUND; - var wrapped = this._offset.wrapped; + + this._pageMatchesLength[pageIndex] = []; + this._pageMatches[pageIndex] = []; + + this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); + } + + _calculateMatch(pageIndex) { + let pageContent = this._pageContents[pageIndex]; + const pageDiffs = this._pageDiffs[pageIndex]; + let query = this._query; + const { + caseSensitive, + entireWord, + phraseSearch + } = this._state; + + if (query.length === 0) { + return; + } + + if (!caseSensitive) { + pageContent = pageContent.toLowerCase(); + query = query.toLowerCase(); + } + + if (phraseSearch) { + this._calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord); + } else { + this._calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord); + } + + if (this._state.highlightAll) { + this._updatePage(pageIndex); + } + + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + + this._nextPageMatch(); + } + + const pageMatchesCount = this._pageMatches[pageIndex].length; + + if (pageMatchesCount > 0) { + this._matchesCountTotal += pageMatchesCount; + + this._updateUIResultsCount(); + } + } + + _extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + + let promise = Promise.resolve(); + + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent({ + normalizeWhitespace: true + }); + }).then(textContent => { + const textItems = textContent.items; + const strBuf = []; + + for (let j = 0, jj = textItems.length; j < jj; j++) { + strBuf.push(textItems[j].str); + } + + [this._pageContents[i], this._pageDiffs[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(i); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + extractTextCapability.resolve(i); + }); + }); + } + } + + _updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); + } + + _updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); + } + + _nextMatch() { + const previous = this._state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this._matchesCountTotal = 0; - if (found) { - var previousPage = this._selected.pageIdx; - this._selected.pageIdx = this._offset.pageIdx; - this._selected.matchIdx = this._offset.matchIdx; - state = wrapped ? FindState.WRAPPED : FindState.FOUND; + this._updateAllPages(); - if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { - this._updatePage(previousPage); - } - } - - this._updateUIState(state, this._state.findPrevious); - - if (this._selected.pageIdx !== -1) { - this._scrollMatches = true; - - this._updatePage(this._selected.pageIdx); - } - } - }, { - key: "_onFindBarClose", - value: function _onFindBarClose(evt) { - var _this4 = this; - - var pdfDocument = this._pdfDocument; - - this._firstPageCapability.promise.then(function () { - if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) { - return; + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; } - if (_this4._findTimeout) { - clearTimeout(_this4._findTimeout); - _this4._findTimeout = null; - } + this._pendingFindMatches.add(i); - if (_this4._resumePageIdx) { - _this4._resumePageIdx = null; - _this4._dirtyMatch = true; - } + this._extractTextPromises[i].then(pageIdx => { + this._pendingFindMatches.delete(pageIdx); - _this4._updateUIState(FindState.FOUND); - - _this4._highlightMatches = false; - - _this4._updateAllPages(); - }); + this._calculateMatch(pageIdx); + }); + } } - }, { - key: "_requestMatchesCount", - value: function _requestMatchesCount() { - var _this$_selected = this._selected, - pageIdx = _this$_selected.pageIdx, - matchIdx = _this$_selected.matchIdx; - var current = 0, - total = this._matchesCountTotal; - if (matchIdx !== -1) { - for (var i = 0; i < pageIdx; i++) { - current += this._pageMatches[i] && this._pageMatches[i].length || 0; - } + if (this._query === "") { + this._updateUIState(FindState.FOUND); - current += matchIdx + 1; + return; + } + + if (this._resumePageIdx) { + return; + } + + const offset = this._offset; + this._pagesToSearch = numPages; + + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + + this._updateMatch(true); + + return; } - if (current < 1 || current > total) { - current = total = 0; + this._advanceOffsetPage(previous); + } + + this._nextPageMatch(); + } + + _matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this._state.findPrevious; + + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + + this._updateMatch(true); + + return true; + } + + this._advanceOffsetPage(previous); + + if (offset.wrapped) { + offset.matchIdx = null; + + if (this._pagesToSearch < 0) { + this._updateMatch(false); + + return true; + } + } + + return false; + } + + _nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + + let matches = null; + + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this._matchesReady(matches)); + } + + _advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + + _updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this._updatePage(previousPage); + } + } + + this._updateUIState(state, this._state.findPrevious); + + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + + this._updatePage(this._selected.pageIdx); + } + } + + _onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; } - return { - current: current, - total: total - }; - } - }, { - key: "_updateUIResultsCount", - value: function _updateUIResultsCount() { - this._eventBus.dispatch("updatefindmatchescount", { - source: this, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "_updateUIState", - value: function _updateUIState(state, previous) { - this._eventBus.dispatch("updatefindcontrolstate", { - source: this, - state: state, - previous: previous, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "highlightMatches", - get: function get() { - return this._highlightMatches; - } - }, { - key: "pageMatches", - get: function get() { - return this._pageMatches; - } - }, { - key: "pageMatchesLength", - get: function get() { - return this._pageMatchesLength; - } - }, { - key: "selected", - get: function get() { - return this._selected; - } - }, { - key: "state", - get: function get() { - return this._state; - } - }, { - key: "_query", - get: function get() { - if (this._state.query !== this._rawQuery) { - this._rawQuery = this._state.query; - this._normalizedQuery = normalize(this._state.query); + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - return this._normalizedQuery; - } - }]); + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } - return PDFFindController; -}(); + this._updateUIState(FindState.FOUND); + + this._highlightMatches = false; + + this._updateAllPages(); + }); + } + + _requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i]?.length || 0; + } + + current += matchIdx + 1; + } + + if (current < 1 || current > total) { + current = total = 0; + } + + return { + current, + total + }; + } + + _updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this._requestMatchesCount() + }); + } + + _updateUIState(state, previous) { + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this._requestMatchesCount(), + rawQuery: this._state?.query ?? null + }); + } + +} exports.PDFFindController = PDFFindController; /***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 16 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.getCharacterType = getCharacterType; exports.CharacterType = void 0; -var CharacterType = { +const CharacterType = { SPACE: 0, ALPHA_LETTER: 1, PUNCT: 2, @@ -7823,581 +6124,552 @@ function getCharacterType(charCode) { } /***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 17 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.isDestHashesEqual = isDestHashesEqual; +})); exports.isDestArraysEqual = isDestArraysEqual; +exports.isDestHashesEqual = isDestHashesEqual; exports.PDFHistory = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var HASH_CHANGE_TIMEOUT = 1000; -var POSITION_UPDATED_THRESHOLD = 50; -var UPDATE_VIEWAREA_TIMEOUT = 1000; +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; function getCurrentHash() { return document.location.hash; } -var PDFHistory = /*#__PURE__*/function () { - function PDFHistory(_ref) { - var _this = this; - - var linkService = _ref.linkService, - eventBus = _ref.eventBus; - - _classCallCheck(this, PDFHistory); - +class PDFHistory { + constructor({ + linkService, + eventBus + }) { this.linkService = linkService; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = eventBus; this._initialized = false; this._fingerprint = ""; this.reset(); this._boundEvents = null; this._isViewerInPresentationMode = false; - this.eventBus._on("presentationmodechanged", function (evt) { - _this._isViewerInPresentationMode = evt.active || evt.switchInProgress; + this.eventBus._on("presentationmodechanged", evt => { + this._isViewerInPresentationMode = evt.state !== _ui_utils.PresentationModeState.NORMAL; }); - this.eventBus._on("pagesinit", function () { - _this._isPagesLoaded = false; + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; - var onPagesLoaded = function onPagesLoaded(evt) { - _this.eventBus._off("pagesloaded", onPagesLoaded); - - _this._isPagesLoaded = !!evt.pagesCount; - }; - - _this.eventBus._on("pagesloaded", onPagesLoaded); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); }); } - _createClass(PDFHistory, [{ - key: "initialize", - value: function initialize(_ref2) { - var fingerprint = _ref2.fingerprint, - _ref2$resetHistory = _ref2.resetHistory, - resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory, - _ref2$updateUrl = _ref2.updateUrl, - updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl; - - if (!fingerprint || typeof fingerprint !== "string") { - console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); - return; - } - - if (this._initialized) { - this.reset(); - } - - var reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; - this._fingerprint = fingerprint; - this._updateUrl = updateUrl === true; - this._initialized = true; - - this._bindEvents(); - - var state = window.history.state; - this._popStateInProgress = false; - this._blockHashChange = 0; - this._currentHash = getCurrentHash(); - this._numPositionUpdates = 0; - this._uid = this._maxUid = 0; - this._destination = null; - this._position = null; - - if (!this._isValidState(state, true) || resetHistory) { - var _this$_parseCurrentHa = this._parseCurrentHash(), - hash = _this$_parseCurrentHa.hash, - page = _this$_parseCurrentHa.page, - rotation = _this$_parseCurrentHa.rotation; - - if (!hash || reInitialized || resetHistory) { - this._pushOrReplaceState(null, true); - - return; - } - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if (destination.rotation !== undefined) { - this._initialRotation = destination.rotation; - } - - if (destination.dest) { - this._initialBookmark = JSON.stringify(destination.dest); - this._destination.page = null; - } else if (destination.hash) { - this._initialBookmark = destination.hash; - } else if (destination.page) { - this._initialBookmark = "page=".concat(destination.page); - } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; } - }, { - key: "reset", - value: function reset() { - if (this._initialized) { - this._pageHide(); - this._initialized = false; - - this._unbindEvents(); - } - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - this._initialBookmark = null; - this._initialRotation = null; + if (this._initialized) { + this.reset(); } - }, { - key: "push", - value: function push(_ref3) { - var _this2 = this; - var _ref3$namedDest = _ref3.namedDest, - namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest, - explicitDest = _ref3.explicitDest, - pageNumber = _ref3.pageNumber; + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; - if (!this._initialized) { - return; - } + this._bindEvents(); - if (namedDest && typeof namedDest !== "string") { - console.error("PDFHistory.push: " + "\"".concat(namedDest, "\" is not a valid namedDest parameter.")); - return; - } else if (!Array.isArray(explicitDest)) { - console.error("PDFHistory.push: " + "\"".concat(explicitDest, "\" is not a valid explicitDest parameter.")); - return; - } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) { - if (pageNumber !== null || this._destination) { - console.error("PDFHistory.push: " + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; - } - } + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; - var hash = namedDest || JSON.stringify(explicitDest); + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); - if (!hash) { - return; - } + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); - var forceReplace = false; - - if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { - if (this._destination.page) { - return; - } - - forceReplace = true; - } - - if (this._popStateInProgress && !forceReplace) { return; } this._pushOrReplaceState({ - dest: explicitDest, - hash: hash, - page: pageNumber, - rotation: this.linkService.rotation - }, forceReplace); + hash, + page, + rotation + }, true); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(function () { - _this2._popStateInProgress = false; - }); + return; + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + + reset() { + if (this._initialized) { + this._pageHide(); + + this._initialized = false; + + this._unbindEvents(); + } + + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._initialBookmark = null; + this._initialRotation = null; + } + + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; + } + + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this._isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; } } - }, { - key: "pushCurrentPosition", - value: function pushCurrentPosition() { - if (!this._initialized || this._popStateInProgress) { - return; - } - this._tryPushCurrentPosition(); + const hash = namedDest || JSON.stringify(explicitDest); + + if (!hash) { + return; } - }, { - key: "back", - value: function back() { - if (!this._initialized || this._popStateInProgress) { + + let forceReplace = false; + + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { return; } - var state = window.history.state; - - if (this._isValidState(state) && state.uid > 0) { - window.history.back(); - } + forceReplace = true; } - }, { - key: "forward", - value: function forward() { - if (!this._initialized || this._popStateInProgress) { - return; - } - var state = window.history.state; - - if (this._isValidState(state) && state.uid < this._maxUid) { - window.history.forward(); - } + if (this._popStateInProgress && !forceReplace) { + return; } - }, { - key: "_pushOrReplaceState", - value: function _pushOrReplaceState(destination) { - var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var shouldReplace = forceReplace || !this._destination; - var newState = { - fingerprint: this._fingerprint, - uid: shouldReplace ? this._uid : this._uid + 1, - destination: destination - }; - this._updateInternalState(destination, newState.uid); - - var newUrl; - - if (this._updateUrl && destination && destination.hash) { - var baseUrl = document.location.href.split("#")[0]; - - if (!baseUrl.startsWith("file://")) { - newUrl = "".concat(baseUrl, "#").concat(destination.hash); - } - } - - if (shouldReplace) { - window.history.replaceState(newState, "", newUrl); - } else { - this._maxUid = this._uid; - window.history.pushState(newState, "", newUrl); - } - } - }, { - key: "_tryPushCurrentPosition", - value: function _tryPushCurrentPosition() { - var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this._position) { - return; - } - - var position = this._position; - - if (temporary) { - position = Object.assign(Object.create(null), this._position); - position.temporary = true; - } - - if (!this._destination) { - this._pushOrReplaceState(position); - - return; - } - - if (this._destination.temporary) { - this._pushOrReplaceState(position, true); - - return; - } - - if (this._destination.hash === position.hash) { - return; - } - - if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { - return; - } - - var forceReplace = false; - - if (this._destination.page >= position.first && this._destination.page <= position.page) { - if (this._destination.dest || !this._destination.first) { - return; - } - - forceReplace = true; - } - - this._pushOrReplaceState(position, forceReplace); - } - }, { - key: "_isValidState", - value: function _isValidState(state) { - var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!state) { - return false; - } - - if (state.fingerprint !== this._fingerprint) { - if (checkReload) { - if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { - return false; - } - - var _performance$getEntri = performance.getEntriesByType("navigation"), - _performance$getEntri2 = _slicedToArray(_performance$getEntri, 1), - perfEntry = _performance$getEntri2[0]; - - if (!perfEntry || perfEntry.type !== "reload") { - return false; - } - } else { - return false; - } - } - - if (!Number.isInteger(state.uid) || state.uid < 0) { - return false; - } - - if (state.destination === null || _typeof(state.destination) !== "object") { - return false; - } - - return true; - } - }, { - key: "_updateInternalState", - value: function _updateInternalState(destination, uid) { - var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - if (removeTemporary && destination && destination.temporary) { - delete destination.temporary; - } - - this._destination = destination; - this._uid = uid; - this._numPositionUpdates = 0; - } - }, { - key: "_parseCurrentHash", - value: function _parseCurrentHash() { - var hash = unescape(getCurrentHash()).substring(1); - var page = (0, _ui_utils.parseQueryString)(hash).page | 0; - - if (!(Number.isInteger(page) && page > 0 && page <= this.linkService.pagesCount)) { - page = null; - } - - return { - hash: hash, - page: page, - rotation: this.linkService.rotation - }; - } - }, { - key: "_updateViewarea", - value: function _updateViewarea(_ref4) { - var _this3 = this; - - var location = _ref4.location; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - this._position = { - hash: this._isViewerInPresentationMode ? "page=".concat(location.pageNumber) : location.pdfOpenParams.substring(1), - page: this.linkService.page, - first: location.pageNumber, - rotation: location.rotation - }; - - if (this._popStateInProgress) { - return; - } - - if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { - this._numPositionUpdates++; - } - - if (UPDATE_VIEWAREA_TIMEOUT > 0) { - this._updateViewareaTimeout = setTimeout(function () { - if (!_this3._popStateInProgress) { - _this3._tryPushCurrentPosition(true); - } - - _this3._updateViewareaTimeout = null; - }, UPDATE_VIEWAREA_TIMEOUT); - } - } - }, { - key: "_popState", - value: function _popState(_ref5) { - var _this4 = this; - - var state = _ref5.state; - var newHash = getCurrentHash(), - hashChanged = this._currentHash !== newHash; - this._currentHash = newHash; - - if (!state) { - this._uid++; - - var _this$_parseCurrentHa2 = this._parseCurrentHash(), - hash = _this$_parseCurrentHa2.hash, - page = _this$_parseCurrentHa2.page, - rotation = _this$_parseCurrentHa2.rotation; - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - if (!this._isValidState(state)) { - return; - } + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { this._popStateInProgress = true; - - if (hashChanged) { - this._blockHashChange++; - (0, _ui_utils.waitOnEventOrTimeout)({ - target: window, - name: "hashchange", - delay: HASH_CHANGE_TIMEOUT - }).then(function () { - _this4._blockHashChange--; - }); - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if ((0, _ui_utils.isValidRotation)(destination.rotation)) { - this.linkService.rotation = destination.rotation; - } - - if (destination.dest) { - this.linkService.navigateTo(destination.dest); - } else if (destination.hash) { - this.linkService.setHash(destination.hash); - } else if (destination.page) { - this.linkService.page = destination.page; - } - - Promise.resolve().then(function () { - _this4._popStateInProgress = false; + Promise.resolve().then(() => { + this._popStateInProgress = false; }); } - }, { - key: "_pageHide", - value: function _pageHide() { - if (!this._destination || this._destination.temporary) { - this._tryPushCurrentPosition(); + } + + pushPage(pageNumber) { + if (!this._initialized) { + return; + } + + if (!this._isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; + } + + if (this._destination?.page === pageNumber) { + return; + } + + if (this._popStateInProgress) { + return; + } + + this._pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation + }); + + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + this._tryPushCurrentPosition(); + } + + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + + _pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + + this._updateInternalState(destination, newState.uid); + + let newUrl; + + if (this._updateUrl && destination?.hash) { + const baseUrl = document.location.href.split("#")[0]; + + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; } } - }, { - key: "_bindEvents", - value: function _bindEvents() { - if (this._boundEvents) { + + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); + } + } + + _tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + + let position = this._position; + + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + + if (!this._destination) { + this._pushOrReplaceState(position); + + return; + } + + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + + return; + } + + if (this._destination.hash === position.hash) { + return; + } + + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + + let forceReplace = false; + + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { return; } - this._boundEvents = { - updateViewarea: this._updateViewarea.bind(this), - popState: this._popState.bind(this), - pageHide: this._pageHide.bind(this) - }; - - this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); - - window.addEventListener("popstate", this._boundEvents.popState); - window.addEventListener("pagehide", this._boundEvents.pageHide); + forceReplace = true; } - }, { - key: "_unbindEvents", - value: function _unbindEvents() { - if (!this._boundEvents) { - return; + + this._pushOrReplaceState(position, forceReplace); + } + + _isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + + _isValidState(state, checkReload = false) { + if (!state) { + return false; + } + + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; + } + + const [perfEntry] = performance.getEntriesByType("navigation"); + + if (perfEntry?.type !== "reload") { + return false; + } + } else { + return false; } + } - this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } - window.removeEventListener("popstate", this._boundEvents.popState); - window.removeEventListener("pagehide", this._boundEvents.pageHide); - this._boundEvents = null; + if (state.destination === null || typeof state.destination !== "object") { + return false; } - }, { - key: "popStateInProgress", - get: function get() { - return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); - } - }, { - key: "initialBookmark", - get: function get() { - return this._initialized ? this._initialBookmark : null; - } - }, { - key: "initialRotation", - get: function get() { - return this._initialized ? this._initialRotation : null; - } - }]); - return PDFHistory; -}(); + return true; + } + + _updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + if (removeTemporary && destination?.temporary) { + delete destination.temporary; + } + + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + + _parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = (0, _ui_utils.parseQueryString)(hash); + const nameddest = params.nameddest || ""; + let page = params.page | 0; + + if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; + } + + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + + _updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._position = { + hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + + if (this._popStateInProgress) { + return; + } + + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + + _popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + + if (!state) { + this._uid++; + + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + + return; + } + + if (!this._isValidState(state)) { + return; + } + + this._popStateInProgress = true; + + if (hashChanged) { + this._blockHashChange++; + (0, _ui_utils.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); + } + } + + _bindEvents() { + if (this._boundEvents) { + return; + } + + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + + _unbindEvents() { + if (!this._boundEvents) { + return; + } + + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; + } + +} exports.PDFHistory = PDFHistory; @@ -8410,8 +6682,9 @@ function isDestHashesEqual(destHash, pushHash) { return true; } - var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash), - nameddest = _parseQueryString.nameddest; + const { + nameddest + } = (0, _ui_utils.parseQueryString)(destHash); if (nameddest === pushHash) { return true; @@ -8422,7 +6695,7 @@ function isDestHashesEqual(destHash, pushHash) { function isDestArraysEqual(firstDest, secondDest) { function isEntryEqual(first, second) { - if (_typeof(first) !== _typeof(second)) { + if (typeof first !== typeof second) { return false; } @@ -8430,12 +6703,12 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - if (first !== null && _typeof(first) === "object" && second !== null) { + if (first !== null && typeof first === "object" && second !== null) { if (Object.keys(first).length !== Object.keys(second).length) { return false; } - for (var key in first) { + for (const key in first) { if (!isEntryEqual(first[key], second[key])) { return false; } @@ -8455,7 +6728,7 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - for (var i = 0, ii = firstDest.length; i < ii; i++) { + for (let i = 0, ii = firstDest.length; i < ii; i++) { if (!isEntryEqual(firstDest[i], secondDest[i])) { return false; } @@ -8465,46 +6738,213 @@ function isDestArraysEqual(firstDest, secondDest) { } /***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 18 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.PDFLayerViewer = void 0; + +var _base_tree_viewer = __webpack_require__(12); + +class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.l10n = options.l10n; + + this.eventBus._on("resetlayers", this._resetLayers.bind(this)); + + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + + reset() { + super.reset(); + this._optionalContentConfig = null; + } + + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + + async _setNestedName(element, { + name = null + }) { + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + + element.textContent = await this.l10n.get("additional_layers"); + element.style.fontStyle = "italic"; + } + + _addToggleButton(div, { + name = null + }) { + super._addToggleButton(div, name === null); + } + + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + + super._toggleAllTreeItems(); + } + + render({ + optionalContentConfig, + pdfDocument + }) { + if (this._optionalContentConfig) { + this.reset(); + } + + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig?.getOrder(); + + if (!groups) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.appendChild(element); + + if (typeof groupId === "object") { + hasAnyNesting = true; + + this._addToggleButton(div, groupId); + + this._setNestedName(element, groupId); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + + this._bindLink(element, { + groupId, + input + }); + + input.type = "checkbox"; + input.id = groupId; + input.checked = group.visible; + const label = document.createElement("label"); + label.setAttribute("for", groupId); + label.textContent = this._normalizeTextContent(group.name); + element.appendChild(input); + element.appendChild(label); + layersCount++; + } + + levelData.parent.appendChild(div); + } + } + + this._finishRendering(fragment, layersCount, hasAnyNesting); + } + + async _resetLayers() { + if (!this._optionalContentConfig) { + return; + } + + const optionalContentConfig = await this._pdfDocument.getOptionalContentConfig(); + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); + } + +} + +exports.PDFLayerViewer = PDFLayerViewer; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.SimpleLinkService = exports.PDFLinkService = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFLinkService = /*#__PURE__*/function () { - function PDFLinkService() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - eventBus = _ref.eventBus, - _ref$externalLinkTarg = _ref.externalLinkTarget, - externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg, - _ref$externalLinkRel = _ref.externalLinkRel, - externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel, - _ref$externalLinkEnab = _ref.externalLinkEnabled, - externalLinkEnabled = _ref$externalLinkEnab === void 0 ? true : _ref$externalLinkEnab, - _ref$ignoreDestinatio = _ref.ignoreDestinationZoom, - ignoreDestinationZoom = _ref$ignoreDestinatio === void 0 ? false : _ref$ignoreDestinatio; - - _classCallCheck(this, PDFLinkService); - - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); +class PDFLinkService { + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; this.externalLinkTarget = externalLinkTarget; this.externalLinkRel = externalLinkRel; - this.externalLinkEnabled = externalLinkEnabled; + this.externalLinkEnabled = true; this._ignoreDestinationZoom = ignoreDestinationZoom; this.baseUrl = null; this.pdfDocument = null; @@ -8513,312 +6953,309 @@ var PDFLinkService = /*#__PURE__*/function () { this._pagesRefCache = null; } - _createClass(PDFLinkService, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - this.baseUrl = baseUrl; - this.pdfDocument = pdfDocument; - this._pagesRefCache = Object.create(null); - } - }, { - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - }, { - key: "setHistory", - value: function setHistory(pdfHistory) { - this.pdfHistory = pdfHistory; - } - }, { - key: "navigateTo", - value: function navigateTo(dest) { - var _this = this; + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this._pagesRefCache = Object.create(null); + } - var goToDestination = function goToDestination(_ref2) { - var namedDest = _ref2.namedDest, - explicitDest = _ref2.explicitDest; - var destRef = explicitDest[0]; - var pageNumber; + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } - if (destRef instanceof Object) { - pageNumber = _this._cachedPageNumber(destRef); + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } - if (pageNumber === null) { - _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) { - _this.cachePageRef(pageIndex + 1, destRef); + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } - goToDestination({ - namedDest: namedDest, - explicitDest: explicitDest - }); - })["catch"](function () { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid page reference, for dest=\"".concat(dest, "\".")); - }); + get page() { + return this.pdfViewer.currentPageNumber; + } - return; - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } else { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid destination reference, for dest=\"".concat(dest, "\".")); - return; - } + set page(value) { + this.pdfViewer.currentPageNumber = value; + } - if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) { - console.error("PDFLinkService.navigateTo: \"".concat(pageNumber, "\" is not ") + "a valid page number, for dest=\"".concat(dest, "\".")); - return; - } + get rotation() { + return this.pdfViewer.pagesRotation; + } - if (_this.pdfHistory) { - _this.pdfHistory.pushCurrentPosition(); + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } - _this.pdfHistory.push({ - namedDest: namedDest, - explicitDest: explicitDest, - pageNumber: pageNumber - }); - } + _goToDestinationHelper(rawDest, namedDest = null, explicitDest) { + const destRef = explicitDest[0]; + let pageNumber; - _this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber, - destArray: explicitDest, - ignoreDestinationZoom: _this._ignoreDestinationZoom + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this._cachedPageNumber(destRef); + + if (pageNumber === null) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + + this._goToDestinationHelper(rawDest, namedDest, explicitDest); + }).catch(() => { + console.error(`PDFLinkService._goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); }); - }; + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error(`PDFLinkService._goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); + return; + } - new Promise(function (resolve, reject) { - if (typeof dest === "string") { - _this.pdfDocument.getDestination(dest).then(function (destArray) { - resolve({ - namedDest: dest, - explicitDest: destArray - }); - }); + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService._goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; + } - return; - } - - resolve({ - namedDest: "", - explicitDest: dest - }); - }).then(function (data) { - if (!Array.isArray(data.explicitDest)) { - console.error("PDFLinkService.navigateTo: \"".concat(data.explicitDest, "\" is") + " not a valid destination array, for dest=\"".concat(dest, "\".")); - return; - } - - goToDestination(data); + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber }); } - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - if (typeof dest === "string") { + + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + } + + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } + + let namedDest, explicitDest; + + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } + + if (!Array.isArray(explicitDest)) { + console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); + return; + } + + this._goToDestinationHelper(dest, namedDest, explicitDest); + } + + goToPage(val) { + if (!this.pdfDocument) { + return; + } + + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); + return; + } + + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); + } + + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); + } + + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { return this.getAnchorUrl("#" + escape(dest)); } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); - if (Array.isArray(dest)) { - var str = JSON.stringify(dest); + if (str.length > 0) { return this.getAnchorUrl("#" + escape(str)); } - - return this.getAnchorUrl(""); } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(anchor) { - return (this.baseUrl || "") + anchor; + + return this.getAnchorUrl(""); + } + + getAnchorUrl(anchor) { + return (this.baseUrl || "") + anchor; + } + + setHash(hash) { + if (!this.pdfDocument) { + return; } - }, { - key: "setHash", - value: function setHash(hash) { - var pageNumber, dest; - if (hash.includes("=")) { - var params = (0, _ui_utils.parseQueryString)(hash); + let pageNumber, dest; - if ("search" in params) { - this.eventBus.dispatch("findfromurlhash", { - source: this, - query: params["search"].replace(/"/g, ""), - phraseSearch: params["phrase"] === "true" - }); - } + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); - if ("nameddest" in params) { - this.navigateTo(params.nameddest); - return; - } + if ("search" in params) { + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: params.search.replace(/"/g, ""), + phraseSearch: params.phrase === "true" + }); + } - if ("page" in params) { - pageNumber = params.page | 0 || 1; - } + if ("page" in params) { + pageNumber = params.page | 0 || 1; + } - if ("zoom" in params) { - var zoomArgs = params.zoom.split(","); - var zoomArg = zoomArgs[0]; - var zoomArgNumber = parseFloat(zoomArg); + if ("zoom" in params) { + const zoomArgs = params.zoom.split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); - if (!zoomArg.includes("Fit")) { + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; + } else { + if (zoomArg === "Fit" || zoomArg === "FitB") { dest = [null, { - name: "XYZ" - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; - } else { - if (zoomArg === "Fit" || zoomArg === "FitB") { - dest = [null, { - name: zoomArg - }]; - } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { - dest = [null, { - name: zoomArg - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; - } else if (zoomArg === "FitR") { - if (zoomArgs.length !== 5) { - console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); - } else { - dest = [null, { - name: zoomArg - }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; - } + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); } else { - console.error("PDFLinkService.setHash: \"".concat(zoomArg, "\" is not ") + "a valid zoom value."); + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not ` + "a valid zoom value."); } } - - if (dest) { - this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber || this.page, - destArray: dest, - allowNegativeOffset: true - }); - } else if (pageNumber) { - this.page = pageNumber; - } - - if ("pagemode" in params) { - this.eventBus.dispatch("pagemode", { - source: this, - mode: params.pagemode - }); - } - } else { - dest = unescape(hash); - - try { - dest = JSON.parse(dest); - - if (!Array.isArray(dest)) { - dest = dest.toString(); - } - } catch (ex) {} - - if (typeof dest === "string" || isValidExplicitDestination(dest)) { - this.navigateTo(dest); - return; - } - - console.error("PDFLinkService.setHash: \"".concat(unescape(hash), "\" is not ") + "a valid destination."); - } - } - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) { - switch (action) { - case "GoBack": - if (this.pdfHistory) { - this.pdfHistory.back(); - } - - break; - - case "GoForward": - if (this.pdfHistory) { - this.pdfHistory.forward(); - } - - break; - - case "NextPage": - if (this.page < this.pagesCount) { - this.page++; - } - - break; - - case "PrevPage": - if (this.page > 1) { - this.page--; - } - - break; - - case "LastPage": - this.page = this.pagesCount; - break; - - case "FirstPage": - this.page = 1; - break; - - default: - break; } - this.eventBus.dispatch("namedaction", { - source: this, - action: action - }); - } - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) { - if (!pageRef) { + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + + if ("pagemode" in params) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.pagemode + }); + } + + if ("nameddest" in params) { + this.goToDestination(params.nameddest); + } + } else { + dest = unescape(hash); + + try { + dest = JSON.parse(dest); + + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + + if (typeof dest === "string" || isValidExplicitDestination(dest)) { + this.goToDestination(dest); return; } - var refStr = pageRef.gen === 0 ? "".concat(pageRef.num, "R") : "".concat(pageRef.num, "R").concat(pageRef.gen); - this._pagesRefCache[refStr] = pageNum; + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not ` + "a valid destination."); } - }, { - key: "_cachedPageNumber", - value: function _cachedPageNumber(pageRef) { - var refStr = pageRef.gen === 0 ? "".concat(pageRef.num, "R") : "".concat(pageRef.num, "R").concat(pageRef.gen); - return this._pagesRefCache && this._pagesRefCache[refStr] || null; - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return this.pdfViewer.isPageVisible(pageNumber); - } - }, { - key: "pagesCount", - get: function get() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; - } - }, { - key: "page", - get: function get() { - return this.pdfViewer.currentPageNumber; - }, - set: function set(value) { - this.pdfViewer.currentPageNumber = value; - } - }, { - key: "rotation", - get: function get() { - return this.pdfViewer.pagesRotation; - }, - set: function set(value) { - this.pdfViewer.pagesRotation = value; - } - }]); + } - return PDFLinkService; -}(); + executeNamedAction(action) { + switch (action) { + case "GoBack": + if (this.pdfHistory) { + this.pdfHistory.back(); + } + + break; + + case "GoForward": + if (this.pdfHistory) { + this.pdfHistory.forward(); + } + + break; + + case "NextPage": + this.pdfViewer.nextPage(); + break; + + case "PrevPage": + this.pdfViewer.previousPage(); + break; + + case "LastPage": + this.page = this.pagesCount; + break; + + case "FirstPage": + this.page = 1; + break; + + default: + break; + } + + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this._pagesRefCache[refStr] = pageNum; + } + + _cachedPageNumber(pageRef) { + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this._pagesRefCache?.[refStr] || null; + } + + isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + + isPageCached(pageNumber) { + return this.pdfViewer.isPageCached(pageNumber); + } + +} exports.PDFLinkService = PDFLinkService; @@ -8827,25 +7264,25 @@ function isValidExplicitDestination(dest) { return false; } - var destLength = dest.length; + const destLength = dest.length; if (destLength < 2) { return false; } - var page = dest[0]; + const page = dest[0]; - if (!(_typeof(page) === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { return false; } - var zoom = dest[1]; + const zoom = dest[1]; - if (!(_typeof(zoom) === "object" && typeof zoom.name === "string")) { + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { return false; } - var allowNull = true; + let allowNull = true; switch (zoom.name) { case "XYZ": @@ -8881,8 +7318,8 @@ function isValidExplicitDestination(dest) { return false; } - for (var i = 2; i < destLength; i++) { - var param = dest[i]; + for (let i = 2; i < destLength; i++) { + const param = dest[i]; if (!(typeof param === "number" || allowNull && param === null)) { return false; @@ -8892,363 +7329,428 @@ function isValidExplicitDestination(dest) { return true; } -var SimpleLinkService = /*#__PURE__*/function () { - function SimpleLinkService() { - _classCallCheck(this, SimpleLinkService); - +class SimpleLinkService { + constructor() { this.externalLinkTarget = null; this.externalLinkRel = null; this.externalLinkEnabled = true; this._ignoreDestinationZoom = false; } - _createClass(SimpleLinkService, [{ - key: "navigateTo", - value: function navigateTo(dest) {} - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - return "#"; - } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(hash) { - return "#"; - } - }, { - key: "setHash", - value: function setHash(hash) {} - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) {} - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) {} - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return true; - } - }, { - key: "pagesCount", - get: function get() { - return 0; - } - }, { - key: "page", - get: function get() { - return 0; - }, - set: function set(value) {} - }, { - key: "rotation", - get: function get() { - return 0; - }, - set: function set(value) {} - }]); + get pagesCount() { + return 0; + } - return SimpleLinkService; -}(); + get page() { + return 0; + } + + set page(value) {} + + get rotation() { + return 0; + } + + set rotation(value) {} + + async goToDestination(dest) {} + + goToPage(val) {} + + getDestinationHash(dest) { + return "#"; + } + + getAnchorUrl(hash) { + return "#"; + } + + setHash(hash) {} + + executeNamedAction(action) {} + + cachePageRef(pageNum, pageRef) {} + + isPageVisible(pageNumber) { + return true; + } + + isPageCached(pageNumber) { + return true; + } + +} exports.SimpleLinkService = SimpleLinkService; /***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 20 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFOutlineViewer = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _base_tree_viewer = __webpack_require__(12); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +var _ui_utils = __webpack_require__(4); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; -var DEFAULT_TITLE = "\u2013"; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); -var PDFOutlineViewer = /*#__PURE__*/function () { - function PDFOutlineViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - eventBus = _ref.eventBus; + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); - _classCallCheck(this, PDFOutlineViewer); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); - this.container = container; - this.linkService = linkService; - this.eventBus = eventBus; - this.reset(); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; - eventBus._on("toggleoutlinetree", this.toggleOutlineTree.bind(this)); + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + }); + + this.eventBus._on("sidebarviewchanged", evt => { + this._sidebarView = evt.view; + }); } - _createClass(PDFOutlineViewer, [{ - key: "reset", - value: function reset() { - this.outline = null; - this.lastToggleIsShow = true; - this.container.textContent = ""; - this.container.classList.remove("outlineWithDeepNesting"); + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = false; + + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(false); } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(outlineCount) { - this.eventBus.dispatch("outlineloaded", { - source: this, - outlineCount: outlineCount + + this._currentOutlineItemCapability = null; + } + + _dispatchEvent(outlineCount) { + this._currentOutlineItemCapability = (0, _pdfjsLib.createPromiseCapability)(); + + if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded) { + this._currentOutlineItemCapability.resolve(true); + } + + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + + _bindLink(element, { + url, + newWindow, + dest + }) { + const { + linkService + } = this; + + if (url) { + (0, _pdfjsLib.addLinkAttributes)(element, { + url, + target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled }); + return; } - }, { - key: "_bindLink", - value: function _bindLink(element, _ref2) { - var url = _ref2.url, - newWindow = _ref2.newWindow, - dest = _ref2.dest; - var linkService = this.linkService; - if (url) { - (0, _pdfjsLib.addLinkAttributes)(element, { - url: url, - target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel, - enabled: linkService.externalLinkEnabled - }); - return; + element.href = linkService.getDestinationHash(dest); + + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + + if (dest) { + linkService.goToDestination(dest); } - element.href = linkService.getDestinationHash(dest); + return false; + }; + } - element.onclick = function () { - if (dest) { - linkService.navigateTo(dest); - } - - return false; - }; + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; } - }, { - key: "_setStyles", - value: function _setStyles(element, _ref3) { - var bold = _ref3.bold, - italic = _ref3.italic; - if (bold) { - element.style.fontWeight = "bold"; - } - - if (italic) { - element.style.fontStyle = "italic"; - } + if (italic) { + element.style.fontStyle = "italic"; } - }, { - key: "_addToggleButton", - value: function _addToggleButton(div, _ref4) { - var _this = this; + } - var count = _ref4.count, - items = _ref4.items; - var toggler = document.createElement("div"); - toggler.className = "outlineItemToggler"; + _addToggleButton(div, { + count, + items + }) { + let hidden = false; - if (count < 0 && Math.abs(count) === items.length) { - toggler.classList.add("outlineItemsHidden"); - } + if (count < 0) { + let totalCount = items.length; - toggler.onclick = function (evt) { - evt.stopPropagation(); - toggler.classList.toggle("outlineItemsHidden"); + if (totalCount > 0) { + const queue = [...items]; - if (evt.shiftKey) { - var shouldShowAll = !toggler.classList.contains("outlineItemsHidden"); + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); - _this._toggleOutlineItem(div, shouldShowAll); - } - }; - - div.insertBefore(toggler, div.firstChild); - } - }, { - key: "_toggleOutlineItem", - value: function _toggleOutlineItem(root) { - var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.lastToggleIsShow = show; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = root.querySelectorAll(".outlineItemToggler")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var toggler = _step.value; - toggler.classList.toggle("outlineItemsHidden", !show); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); } } } + + if (Math.abs(count) === totalCount) { + hidden = true; + } } - }, { - key: "toggleOutlineTree", - value: function toggleOutlineTree() { - if (!this.outline) { - return; - } - this._toggleOutlineItem(this.container, !this.lastToggleIsShow); + super._addToggleButton(div, hidden); + } + + _toggleAllTreeItems() { + if (!this._outline) { + return; } - }, { - key: "render", - value: function render(_ref5) { - var outline = _ref5.outline; - var outlineCount = 0; - if (this.outline) { - this.reset(); + super._toggleAllTreeItems(); + } + + render({ + outline, + pdfDocument + }) { + if (this._outline) { + this.reset(); + } + + this._outline = outline || null; + this._pdfDocument = pdfDocument || null; + + if (!outline) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + + this._bindLink(element, item); + + this._setStyles(element, item); + + element.textContent = this._normalizeTextContent(item.title); + div.appendChild(element); + + if (item.items.length > 0) { + hasAnyNesting = true; + + this._addToggleButton(div, item); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + + levelData.parent.appendChild(div); + outlineCount++; + } + } + + this._finishRendering(fragment, outlineCount, hasAnyNesting); + } + + async _currentOutlineItem() { + if (!this._isPagesLoaded) { + throw new Error("_currentOutlineItem: All pages have not been loaded."); + } + + if (!this._outline || !this._pdfDocument) { + return; + } + + const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); + + if (!pageNumberToDestHash) { + return; + } + + this._updateCurrentTreeItem(null); + + if (this._sidebarView !== _ui_utils.SidebarView.OUTLINE) { + return; + } + + for (let i = this._currentPageNumber; i > 0; i--) { + const destHash = pageNumberToDestHash.get(i); + + if (!destHash) { + continue; } - this.outline = outline || null; + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); - if (!outline) { - this._dispatchEvent(outlineCount); - - return; + if (!linkElement) { + continue; } - var fragment = document.createDocumentFragment(); - var queue = [{ - parent: fragment, - items: this.outline - }]; - var hasAnyNesting = false; + this._scrollToCurrentTreeItem(linkElement.parentNode); - while (queue.length > 0) { - var levelData = queue.shift(); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + break; + } + } - try { - for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var item = _step2.value; - var div = document.createElement("div"); - div.className = "outlineItem"; - var element = document.createElement("a"); + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; + } - this._bindLink(element, item); + this._pageNumberToDestHashCapability = (0, _pdfjsLib.createPromiseCapability)(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; - this._setStyles(element, item); + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; - element.textContent = (0, _pdfjsLib.removeNullCharacters)(item.title) || DEFAULT_TITLE; - div.appendChild(element); + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; - if (item.items.length > 0) { - hasAnyNesting = true; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); - this._addToggleButton(div, item); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } - var itemsDiv = document.createElement("div"); - itemsDiv.className = "outlineItems"; - div.appendChild(itemsDiv); - queue.push({ - parent: itemsDiv, - items: item.items - }); + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this.linkService._cachedPageNumber(destRef); + + if (!pageNumber) { + try { + pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1; + + if (pdfDocument !== this._pdfDocument) { + return null; + } + + this.linkService.cachePageRef(pageNumber, destRef); + } catch (ex) {} } - - levelData.parent.appendChild(div); - outlineCount++; + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } + + if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { + const destHash = this.linkService.getDestinationHash(dest); + pageNumberToDestHash.set(pageNumber, destHash); + pageNumberNesting.set(pageNumber, currentNesting); } } + + if (items.length > 0) { + queue.push({ + nesting: currentNesting + 1, + items + }); + } } - - if (hasAnyNesting) { - this.container.classList.add("outlineWithDeepNesting"); - this.lastToggleIsShow = fragment.querySelectorAll(".outlineItemsHidden").length === 0; - } - - this.container.appendChild(fragment); - - this._dispatchEvent(outlineCount); } - }]); - return PDFOutlineViewer; -}(); + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + + return this._pageNumberToDestHashCapability.promise; + } + +} exports.PDFOutlineViewer = PDFOutlineViewer; /***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 21 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFPresentationMode = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; -var DELAY_BEFORE_HIDING_CONTROLS = 3000; -var ACTIVE_SELECTOR = "pdfPresentationMode"; -var CONTROLS_SELECTOR = "pdfPresentationModeControls"; -var MOUSE_SCROLL_COOLDOWN_TIME = 50; -var PAGE_SWITCH_THRESHOLD = 0.1; -var SWIPE_MIN_DISTANCE_THRESHOLD = 50; -var SWIPE_ANGLE_THRESHOLD = Math.PI / 6; - -var PDFPresentationMode = /*#__PURE__*/function () { - function PDFPresentationMode(_ref) { - var _this = this; - - var container = _ref.container, - pdfViewer = _ref.pdfViewer, - eventBus = _ref.eventBus, - _ref$contextMenuItems = _ref.contextMenuItems, - contextMenuItems = _ref$contextMenuItems === void 0 ? null : _ref$contextMenuItems; - - _classCallCheck(this, PDFPresentationMode); +const DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; +const DELAY_BEFORE_HIDING_CONTROLS = 3000; +const ACTIVE_SELECTOR = "pdfPresentationMode"; +const CONTROLS_SELECTOR = "pdfPresentationModeControls"; +const MOUSE_SCROLL_COOLDOWN_TIME = 50; +const PAGE_SWITCH_THRESHOLD = 0.1; +const SWIPE_MIN_DISTANCE_THRESHOLD = 50; +const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; +class PDFPresentationMode { + constructor({ + container, + pdfViewer, + eventBus + }) { this.container = container; this.pdfViewer = pdfViewer; this.eventBus = eventBus; @@ -9258,442 +7760,1152 @@ var PDFPresentationMode = /*#__PURE__*/function () { this.mouseScrollTimeStamp = 0; this.mouseScrollDelta = 0; this.touchSwipeState = null; - - if (contextMenuItems) { - contextMenuItems.contextFirstPage.addEventListener("click", function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch("firstpage", { - source: _this - }); - }); - contextMenuItems.contextLastPage.addEventListener("click", function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch("lastpage", { - source: _this - }); - }); - contextMenuItems.contextPageRotateCw.addEventListener("click", function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch("rotatecw", { - source: _this - }); - }); - contextMenuItems.contextPageRotateCcw.addEventListener("click", function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch("rotateccw", { - source: _this - }); - }); - } } - _createClass(PDFPresentationMode, [{ - key: "request", - value: function request() { - if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) { - return false; - } - - this._addFullscreenChangeListeners(); - - this._setSwitchInProgress(); - - this._notifyStateChange(); - - if (this.container.requestFullscreen) { - this.container.requestFullscreen(); - } else if (this.container.mozRequestFullScreen) { - this.container.mozRequestFullScreen(); - } else if (this.container.webkitRequestFullscreen) { - this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else if (this.container.msRequestFullscreen) { - this.container.msRequestFullscreen(); - } else { - return false; - } - - this.args = { - page: this.pdfViewer.currentPageNumber, - previousScale: this.pdfViewer.currentScaleValue - }; - return true; + request() { + if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) { + return false; } - }, { - key: "_mouseWheel", - value: function _mouseWheel(evt) { - if (!this.active) { - return; - } - evt.preventDefault(); - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var currentTime = new Date().getTime(); - var storedTime = this.mouseScrollTimeStamp; + this._addFullscreenChangeListeners(); - if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { - return; - } + this._setSwitchInProgress(); - if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { - this._resetMouseScrollState(); - } + this._notifyStateChange(); - this.mouseScrollDelta += delta; - - if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { - var totalDelta = this.mouseScrollDelta; - - this._resetMouseScrollState(); - - var success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage(); - - if (success) { - this.mouseScrollTimeStamp = currentTime; - } - } + if (this.container.requestFullscreen) { + this.container.requestFullscreen(); + } else if (this.container.mozRequestFullScreen) { + this.container.mozRequestFullScreen(); + } else if (this.container.webkitRequestFullscreen) { + this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + return false; } - }, { - key: "_goToPreviousPage", - value: function _goToPreviousPage() { - var page = this.pdfViewer.currentPageNumber; - if (page <= 1) { - return false; - } + this.args = { + page: this.pdfViewer.currentPageNumber, + previousScale: this.pdfViewer.currentScaleValue + }; + return true; + } - this.pdfViewer.currentPageNumber = page - 1; - return true; + _mouseWheel(evt) { + if (!this.active) { + return; } - }, { - key: "_goToNextPage", - value: function _goToNextPage() { - var page = this.pdfViewer.currentPageNumber; - if (page >= this.pdfViewer.pagesCount) { - return false; - } + evt.preventDefault(); + const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const currentTime = Date.now(); + const storedTime = this.mouseScrollTimeStamp; - this.pdfViewer.currentPageNumber = page + 1; - return true; + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; } - }, { - key: "_notifyStateChange", - value: function _notifyStateChange() { - this.eventBus.dispatch("presentationmodechanged", { - source: this, - active: this.active, - switchInProgress: !!this.switchInProgress - }); + + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this._resetMouseScrollState(); } - }, { - key: "_setSwitchInProgress", - value: function _setSwitchInProgress() { - var _this2 = this; - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - } + this.mouseScrollDelta += delta; - this.switchInProgress = setTimeout(function () { - _this2._removeFullscreenChangeListeners(); - - delete _this2.switchInProgress; - - _this2._notifyStateChange(); - }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); - } - }, { - key: "_resetSwitchInProgress", - value: function _resetSwitchInProgress() { - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - delete this.switchInProgress; - } - } - }, { - key: "_enter", - value: function _enter() { - var _this3 = this; - - this.active = true; - - this._resetSwitchInProgress(); - - this._notifyStateChange(); - - this.container.classList.add(ACTIVE_SELECTOR); - setTimeout(function () { - _this3.pdfViewer.currentPageNumber = _this3.args.page; - _this3.pdfViewer.currentScaleValue = "page-fit"; - }, 0); - - this._addWindowListeners(); - - this._showControls(); - - this.contextMenuOpen = false; - this.container.setAttribute("contextmenu", "viewerContextMenu"); - window.getSelection().removeAllRanges(); - } - }, { - key: "_exit", - value: function _exit() { - var _this4 = this; - - var page = this.pdfViewer.currentPageNumber; - this.container.classList.remove(ACTIVE_SELECTOR); - setTimeout(function () { - _this4.active = false; - - _this4._removeFullscreenChangeListeners(); - - _this4._notifyStateChange(); - - _this4.pdfViewer.currentScaleValue = _this4.args.previousScale; - _this4.pdfViewer.currentPageNumber = page; - _this4.args = null; - }, 0); - - this._removeWindowListeners(); - - this._hideControls(); + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; this._resetMouseScrollState(); - this.container.removeAttribute("contextmenu"); - this.contextMenuOpen = false; - } - }, { - key: "_mouseDown", - value: function _mouseDown(evt) { - if (this.contextMenuOpen) { - this.contextMenuOpen = false; - evt.preventDefault(); - return; + const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); + + if (success) { + this.mouseScrollTimeStamp = currentTime; } + } + } - if (evt.button === 0) { - var isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); + get isFullscreen() { + return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen); + } - if (!isInternalLink) { - evt.preventDefault(); + _notifyStateChange() { + let state = _ui_utils.PresentationModeState.NORMAL; - if (evt.shiftKey) { - this._goToPreviousPage(); - } else { - this._goToNextPage(); - } + if (this.switchInProgress) { + state = _ui_utils.PresentationModeState.CHANGING; + } else if (this.active) { + state = _ui_utils.PresentationModeState.FULLSCREEN; + } + + this.eventBus.dispatch("presentationmodechanged", { + source: this, + state + }); + } + + _setSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + } + + this.switchInProgress = setTimeout(() => { + this._removeFullscreenChangeListeners(); + + delete this.switchInProgress; + + this._notifyStateChange(); + }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); + } + + _resetSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + delete this.switchInProgress; + } + } + + _enter() { + this.active = true; + + this._resetSwitchInProgress(); + + this._notifyStateChange(); + + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.currentPageNumber = this.args.page; + this.pdfViewer.currentScaleValue = "page-fit"; + }, 0); + + this._addWindowListeners(); + + this._showControls(); + + this.contextMenuOpen = false; + window.getSelection().removeAllRanges(); + } + + _exit() { + const page = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + this.active = false; + + this._removeFullscreenChangeListeners(); + + this._notifyStateChange(); + + this.pdfViewer.currentScaleValue = this.args.previousScale; + this.pdfViewer.currentPageNumber = page; + this.args = null; + }, 0); + + this._removeWindowListeners(); + + this._hideControls(); + + this._resetMouseScrollState(); + + this.contextMenuOpen = false; + } + + _mouseDown(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + + if (evt.button === 0) { + const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); + + if (!isInternalLink) { + evt.preventDefault(); + + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); } } } - }, { - key: "_contextMenu", - value: function _contextMenu() { - this.contextMenuOpen = true; - } - }, { - key: "_showControls", - value: function _showControls() { - var _this5 = this; + } - if (this.controlsTimeout) { - clearTimeout(this.controlsTimeout); - } else { - this.container.classList.add(CONTROLS_SELECTOR); - } - - this.controlsTimeout = setTimeout(function () { - _this5.container.classList.remove(CONTROLS_SELECTOR); - - delete _this5.controlsTimeout; - }, DELAY_BEFORE_HIDING_CONTROLS); - } - }, { - key: "_hideControls", - value: function _hideControls() { - if (!this.controlsTimeout) { - return; - } + _contextMenu() { + this.contextMenuOpen = true; + } + _showControls() { + if (this.controlsTimeout) { clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); + } + + this.controlsTimeout = setTimeout(() => { this.container.classList.remove(CONTROLS_SELECTOR); delete this.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); + } + + _hideControls() { + if (!this.controlsTimeout) { + return; } - }, { - key: "_resetMouseScrollState", - value: function _resetMouseScrollState() { - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; + + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + } + + _resetMouseScrollState() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + } + + _touchSwipe(evt) { + if (!this.active) { + return; } - }, { - key: "_touchSwipe", - value: function _touchSwipe(evt) { - if (!this.active) { - return; - } - if (evt.touches.length > 1) { - this.touchSwipeState = null; - return; - } - - switch (evt.type) { - case "touchstart": - this.touchSwipeState = { - startX: evt.touches[0].pageX, - startY: evt.touches[0].pageY, - endX: evt.touches[0].pageX, - endY: evt.touches[0].pageY - }; - break; - - case "touchmove": - if (this.touchSwipeState === null) { - return; - } - - this.touchSwipeState.endX = evt.touches[0].pageX; - this.touchSwipeState.endY = evt.touches[0].pageY; - evt.preventDefault(); - break; - - case "touchend": - if (this.touchSwipeState === null) { - return; - } - - var delta = 0; - var dx = this.touchSwipeState.endX - this.touchSwipeState.startX; - var dy = this.touchSwipeState.endY - this.touchSwipeState.startY; - var absAngle = Math.abs(Math.atan2(dy, dx)); - - if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { - delta = dx; - } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { - delta = dy; - } - - if (delta > 0) { - this._goToPreviousPage(); - } else if (delta < 0) { - this._goToNextPage(); - } - - break; - } + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; } - }, { - key: "_addWindowListeners", - value: function _addWindowListeners() { - this.showControlsBind = this._showControls.bind(this); - this.mouseDownBind = this._mouseDown.bind(this); - this.mouseWheelBind = this._mouseWheel.bind(this); - this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); - this.contextMenuBind = this._contextMenu.bind(this); - this.touchSwipeBind = this._touchSwipe.bind(this); - window.addEventListener("mousemove", this.showControlsBind); - window.addEventListener("mousedown", this.mouseDownBind); - window.addEventListener("wheel", this.mouseWheelBind); - window.addEventListener("keydown", this.resetMouseScrollStateBind); - window.addEventListener("contextmenu", this.contextMenuBind); - window.addEventListener("touchstart", this.touchSwipeBind); - window.addEventListener("touchmove", this.touchSwipeBind); - window.addEventListener("touchend", this.touchSwipeBind); - } - }, { - key: "_removeWindowListeners", - value: function _removeWindowListeners() { - window.removeEventListener("mousemove", this.showControlsBind); - window.removeEventListener("mousedown", this.mouseDownBind); - window.removeEventListener("wheel", this.mouseWheelBind); - window.removeEventListener("keydown", this.resetMouseScrollStateBind); - window.removeEventListener("contextmenu", this.contextMenuBind); - window.removeEventListener("touchstart", this.touchSwipeBind); - window.removeEventListener("touchmove", this.touchSwipeBind); - window.removeEventListener("touchend", this.touchSwipeBind); - delete this.showControlsBind; - delete this.mouseDownBind; - delete this.mouseWheelBind; - delete this.resetMouseScrollStateBind; - delete this.contextMenuBind; - delete this.touchSwipeBind; - } - }, { - key: "_fullscreenChange", - value: function _fullscreenChange() { - if (this.isFullscreen) { - this._enter(); - } else { - this._exit(); - } - } - }, { - key: "_addFullscreenChangeListeners", - value: function _addFullscreenChangeListeners() { - this.fullscreenChangeBind = this._fullscreenChange.bind(this); - window.addEventListener("fullscreenchange", this.fullscreenChangeBind); - window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind); - window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind); - window.addEventListener("MSFullscreenChange", this.fullscreenChangeBind); - } - }, { - key: "_removeFullscreenChangeListeners", - value: function _removeFullscreenChangeListeners() { - window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); - window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind); - window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind); - window.removeEventListener("MSFullscreenChange", this.fullscreenChangeBind); - delete this.fullscreenChangeBind; - } - }, { - key: "isFullscreen", - get: function get() { - return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement); - } - }]); - return PDFPresentationMode; -}(); + switch (evt.type) { + case "touchstart": + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; + + case "touchmove": + if (this.touchSwipeState === null) { + return; + } + + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; + + case "touchend": + if (this.touchSwipeState === null) { + return; + } + + let delta = 0; + const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + const absAngle = Math.abs(Math.atan2(dy, dx)); + + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + + if (delta > 0) { + this.pdfViewer.previousPage(); + } else if (delta < 0) { + this.pdfViewer.nextPage(); + } + + break; + } + } + + _addWindowListeners() { + this.showControlsBind = this._showControls.bind(this); + this.mouseDownBind = this._mouseDown.bind(this); + this.mouseWheelBind = this._mouseWheel.bind(this); + this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); + this.contextMenuBind = this._contextMenu.bind(this); + this.touchSwipeBind = this._touchSwipe.bind(this); + window.addEventListener("mousemove", this.showControlsBind); + window.addEventListener("mousedown", this.mouseDownBind); + window.addEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.addEventListener("keydown", this.resetMouseScrollStateBind); + window.addEventListener("contextmenu", this.contextMenuBind); + window.addEventListener("touchstart", this.touchSwipeBind); + window.addEventListener("touchmove", this.touchSwipeBind); + window.addEventListener("touchend", this.touchSwipeBind); + } + + _removeWindowListeners() { + window.removeEventListener("mousemove", this.showControlsBind); + window.removeEventListener("mousedown", this.mouseDownBind); + window.removeEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.removeEventListener("keydown", this.resetMouseScrollStateBind); + window.removeEventListener("contextmenu", this.contextMenuBind); + window.removeEventListener("touchstart", this.touchSwipeBind); + window.removeEventListener("touchmove", this.touchSwipeBind); + window.removeEventListener("touchend", this.touchSwipeBind); + delete this.showControlsBind; + delete this.mouseDownBind; + delete this.mouseWheelBind; + delete this.resetMouseScrollStateBind; + delete this.contextMenuBind; + delete this.touchSwipeBind; + } + + _fullscreenChange() { + if (this.isFullscreen) { + this._enter(); + } else { + this._exit(); + } + } + + _addFullscreenChangeListeners() { + this.fullscreenChangeBind = this._fullscreenChange.bind(this); + window.addEventListener("fullscreenchange", this.fullscreenChangeBind); + window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + } + + _removeFullscreenChangeListeners() { + window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + delete this.fullscreenChangeBind; + } + +} exports.PDFPresentationMode = PDFPresentationMode; /***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 22 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.PDFScriptingManager = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); + +class PDFScriptingManager { + constructor({ + eventBus, + sandboxBundleSrc = null, + scriptingFactory = null, + docPropertiesLookup = null + }) { + this._pdfDocument = null; + this._pdfViewer = null; + this._closeCapability = null; + this._destroyCapability = null; + this._scripting = null; + this._mouseState = Object.create(null); + this._ready = false; + this._eventBus = eventBus; + this._sandboxBundleSrc = sandboxBundleSrc; + this._scriptingFactory = scriptingFactory; + this._docPropertiesLookup = docPropertiesLookup; + } + + setViewer(pdfViewer) { + this._pdfViewer = pdfViewer; + } + + async setDocument(pdfDocument) { + if (this._pdfDocument) { + await this._destroyScripting(); + } + + this._pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); + + if (!objects && !docActions) { + await this._destroyScripting(); + return; + } + + if (pdfDocument !== this._pdfDocument) { + return; + } + + try { + this._scripting = this._createScripting(); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); + await this._destroyScripting(); + return; + } + + this._internalEvents.set("updatefromsandbox", event => { + if (event?.source !== window) { + return; + } + + this._updateFromSandbox(event.detail); + }); + + this._internalEvents.set("dispatcheventinsandbox", event => { + this._scripting?.dispatchEventInSandbox(event.detail); + }); + + this._internalEvents.set("pagechanging", ({ + pageNumber, + previous + }) => { + if (pageNumber === previous) { + return; + } + + this._dispatchPageClose(previous); + + this._dispatchPageOpen(pageNumber); + }); + + this._internalEvents.set("pagerendered", ({ + pageNumber + }) => { + if (!this._pageOpenPending.has(pageNumber)) { + return; + } + + if (pageNumber !== this._pdfViewer.currentPageNumber) { + return; + } + + this._dispatchPageOpen(pageNumber); + }); + + this._internalEvents.set("pagesdestroy", async event => { + await this._dispatchPageClose(this._pdfViewer.currentPageNumber); + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + }); + this._closeCapability?.resolve(); + }); + + this._domEvents.set("mousedown", event => { + this._mouseState.isDown = true; + }); + + this._domEvents.set("mouseup", event => { + this._mouseState.isDown = false; + }); + + for (const [name, listener] of this._internalEvents) { + this._eventBus._on(name, listener); + } + + for (const [name, listener] of this._domEvents) { + window.addEventListener(name, listener); + } + + try { + const docProperties = await this._getDocProperties(); + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting.createSandbox({ + objects, + calculationOrder, + appInfo: { + platform: navigator.platform, + language: navigator.language + }, + docInfo: { ...docProperties, + actions: docActions + } + }); + + this._eventBus.dispatch("sandboxcreated", { + source: this + }); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); + await this._destroyScripting(); + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "Open" + }); + await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true); + Promise.resolve().then(() => { + if (pdfDocument === this._pdfDocument) { + this._ready = true; + } + }); + } + + async dispatchWillSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + + async dispatchDidSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + + async dispatchWillPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } + + async dispatchDidPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + + get mouseState() { + return this._mouseState; + } + + get destroyPromise() { + return this._destroyCapability?.promise || null; + } + + get ready() { + return this._ready; + } + + get _internalEvents() { + return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map()); + } + + get _domEvents() { + return (0, _pdfjsLib.shadow)(this, "_domEvents", new Map()); + } + + get _pageOpenPending() { + return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set()); + } + + get _visitedPages() { + return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map()); + } + + async _updateFromSandbox(detail) { + const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode; + const { + id, + siblings, + command, + value + } = detail; + + if (!id) { + switch (command) { + case "clear": + console.clear(); + break; + + case "error": + console.error(value); + break; + + case "layout": + this._pdfViewer.spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(value); + break; + + case "page-num": + this._pdfViewer.currentPageNumber = value + 1; + break; + + case "print": + await this._pdfViewer.pagesPromise; + + this._eventBus.dispatch("print", { + source: this + }); + + break; + + case "println": + console.log(value); + break; + + case "zoom": + if (isInPresentationMode) { + return; + } + + this._pdfViewer.currentScaleValue = value; + break; + } + + return; + } + + if (isInPresentationMode) { + if (detail.focus) { + return; + } + } + + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + + for (const elementId of ids) { + const element = document.getElementById(elementId); + + if (element) { + element.dispatchEvent(new CustomEvent("updatefromsandbox", { + detail + })); + } else { + this._pdfDocument?.annotationStorage.setValue(elementId, detail); + } + } + } + + async _dispatchPageOpen(pageNumber, initialize = false) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + + if (initialize) { + this._closeCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + + if (!this._closeCapability) { + return; + } + + const pageView = this._pdfViewer.getPageView(pageNumber - 1); + + if (pageView?.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pageOpenPending.add(pageNumber); + + return; + } + + this._pageOpenPending.delete(pageNumber); + + const actionsPromise = (async () => { + const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageOpen", + pageNumber, + actions + }); + })(); + + visitedPages.set(pageNumber, actionsPromise); + } + + async _dispatchPageClose(pageNumber) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + + if (!this._closeCapability) { + return; + } + + if (this._pageOpenPending.has(pageNumber)) { + return; + } + + const actionsPromise = visitedPages.get(pageNumber); + + if (!actionsPromise) { + return; + } + + visitedPages.set(pageNumber, null); + await actionsPromise; + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageClose", + pageNumber + }); + } + + async _getDocProperties() { + if (this._docPropertiesLookup) { + return this._docPropertiesLookup(this._pdfDocument); + } + + throw new Error("_getDocProperties: Unable to lookup properties."); + } + + _createScripting() { + this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)(); + + if (this._scripting) { + throw new Error("_createScripting: Scripting already exists."); + } + + if (this._scriptingFactory) { + return this._scriptingFactory.createScripting({ + sandboxBundleSrc: this._sandboxBundleSrc + }); + } + + throw new Error("_createScripting: Cannot create scripting."); + } + + async _destroyScripting() { + if (!this._scripting) { + this._pdfDocument = null; + this._destroyCapability?.resolve(); + return; + } + + if (this._closeCapability) { + await Promise.race([this._closeCapability.promise, new Promise(resolve => { + setTimeout(resolve, 1000); + })]).catch(reason => {}); + this._closeCapability = null; + } + + this._pdfDocument = null; + + try { + await this._scripting.destroySandbox(); + } catch (ex) {} + + for (const [name, listener] of this._internalEvents) { + this._eventBus._off(name, listener); + } + + this._internalEvents.clear(); + + for (const [name, listener] of this._domEvents) { + window.removeEventListener(name, listener); + } + + this._domEvents.clear(); + + this._pageOpenPending.clear(); + + this._visitedPages.clear(); + + this._scripting = null; + delete this._mouseState.isDown; + this._ready = false; + this._destroyCapability?.resolve(); + } + +} + +exports.PDFScriptingManager = PDFScriptingManager; + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSidebar = void 0; + +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); + +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; + +class PDFSidebar { + constructor({ + elements, + pdfViewer, + pdfThumbnailViewer, + eventBus, + l10n + }) { + this.isOpen = false; + this.active = _ui_utils.SidebarView.THUMBS; + this.isInitialViewSet = false; + this.onToggled = null; + this.pdfViewer = pdfViewer; + this.pdfThumbnailViewer = pdfThumbnailViewer; + this.outerContainer = elements.outerContainer; + this.viewerContainer = elements.viewerContainer; + this.toggleButton = elements.toggleButton; + this.thumbnailButton = elements.thumbnailButton; + this.outlineButton = elements.outlineButton; + this.attachmentsButton = elements.attachmentsButton; + this.layersButton = elements.layersButton; + this.thumbnailView = elements.thumbnailView; + this.outlineView = elements.outlineView; + this.attachmentsView = elements.attachmentsView; + this.layersView = elements.layersView; + this._outlineOptionsContainer = elements.outlineOptionsContainer; + this._currentOutlineItemButton = elements.currentOutlineItemButton; + this.eventBus = eventBus; + this.l10n = l10n; + + this._addEventListeners(); + } + + reset() { + this.isInitialViewSet = false; + + this._hideUINotification(true); + + this.switchView(_ui_utils.SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + this.layersButton.disabled = false; + this._currentOutlineItemButton.disabled = true; + } + + get visibleView() { + return this.isOpen ? this.active : _ui_utils.SidebarView.NONE; + } + + get isThumbnailViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.THUMBS; + } + + get isOutlineViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.OUTLINE; + } + + get isAttachmentsViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.ATTACHMENTS; + } + + get isLayersViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.LAYERS; + } + + setInitialView(view = _ui_utils.SidebarView.NONE) { + if (this.isInitialViewSet) { + return; + } + + this.isInitialViewSet = true; + + if (view === _ui_utils.SidebarView.NONE || view === _ui_utils.SidebarView.UNKNOWN) { + this._dispatchEvent(); + + return; + } + + if (!this._switchView(view, true)) { + this._dispatchEvent(); + } + } + + switchView(view, forceOpen = false) { + this._switchView(view, forceOpen); + } + + _switchView(view, forceOpen = false) { + const isViewChanged = view !== this.active; + let shouldForceRendering = false; + + switch (view) { + case _ui_utils.SidebarView.NONE: + if (this.isOpen) { + this.close(); + return true; + } + + return false; + + case _ui_utils.SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + shouldForceRendering = true; + } + + break; + + case _ui_utils.SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return false; + } + + break; + + case _ui_utils.SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return false; + } + + break; + + case _ui_utils.SidebarView.LAYERS: + if (this.layersButton.disabled) { + return false; + } + + break; + + default: + console.error(`PDFSidebar._switchView: "${view}" is not a valid view.`); + return false; + } + + this.active = view; + this.thumbnailButton.classList.toggle("toggled", view === _ui_utils.SidebarView.THUMBS); + this.outlineButton.classList.toggle("toggled", view === _ui_utils.SidebarView.OUTLINE); + this.attachmentsButton.classList.toggle("toggled", view === _ui_utils.SidebarView.ATTACHMENTS); + this.layersButton.classList.toggle("toggled", view === _ui_utils.SidebarView.LAYERS); + this.thumbnailView.classList.toggle("hidden", view !== _ui_utils.SidebarView.THUMBS); + this.outlineView.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE); + this.attachmentsView.classList.toggle("hidden", view !== _ui_utils.SidebarView.ATTACHMENTS); + this.layersView.classList.toggle("hidden", view !== _ui_utils.SidebarView.LAYERS); + + this._outlineOptionsContainer.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE); + + if (forceOpen && !this.isOpen) { + this.open(); + return true; + } + + if (shouldForceRendering) { + this._updateThumbnailViewer(); + + this._forceRendering(); + } + + if (isViewChanged) { + this._dispatchEvent(); + } + + return isViewChanged; + } + + open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + + if (this.active === _ui_utils.SidebarView.THUMBS) { + this._updateThumbnailViewer(); + } + + this._forceRendering(); + + this._dispatchEvent(); + + this._hideUINotification(); + } + + close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + + this._forceRendering(); + + this._dispatchEvent(); + } + + toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } + + _dispatchEvent() { + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); + } + + _forceRendering() { + if (this.onToggled) { + this.onToggled(); + } else { + this.pdfViewer.forceRendering(); + this.pdfThumbnailViewer.forceRendering(); + } + } + + _updateThumbnailViewer() { + const { + pdfViewer, + pdfThumbnailViewer + } = this; + const pagesCount = pdfViewer.pagesCount; + + for (let pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + const pageView = pdfViewer.getPageView(pageIndex); + + if (pageView?.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { + const thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + + pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + } + + _showUINotification() { + this.l10n.get("toggle_sidebar_notification2.title").then(msg => { + this.toggleButton.title = msg; + }); + + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } + } + + _hideUINotification(reset = false) { + if (this.isOpen || reset) { + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + } + + if (reset) { + this.l10n.get("toggle_sidebar.title").then(msg => { + this.toggleButton.title = msg; + }); + } + } + + _addEventListeners() { + this.viewerContainer.addEventListener("transitionend", evt => { + if (evt.target === this.viewerContainer) { + this.outerContainer.classList.remove("sidebarMoving"); + } + }); + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.thumbnailButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.THUMBS); + }); + this.outlineButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("toggleoutlinetree", { + source: this + }); + }); + this.attachmentsButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.ATTACHMENTS); + }); + this.layersButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.LAYERS); + }); + this.layersButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("resetlayers", { + source: this + }); + }); + + this._currentOutlineItemButton.addEventListener("click", () => { + this.eventBus.dispatch("currentoutlineitem", { + source: this + }); + }); + + const onTreeLoaded = (count, button, view) => { + button.disabled = !count; + + if (count) { + this._showUINotification(); + } else if (this.active === view) { + this.switchView(_ui_utils.SidebarView.THUMBS); + } + }; + + this.eventBus._on("outlineloaded", evt => { + onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils.SidebarView.OUTLINE); + evt.currentOutlineItemPromise.then(enabled => { + if (!this.isInitialViewSet) { + return; + } + + this._currentOutlineItemButton.disabled = !enabled; + }); + }); + + this.eventBus._on("attachmentsloaded", evt => { + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils.SidebarView.ATTACHMENTS); + }); + + this.eventBus._on("layersloaded", evt => { + onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils.SidebarView.LAYERS); + }); + + this.eventBus._on("presentationmodechanged", evt => { + if (evt.state === _ui_utils.PresentationModeState.NORMAL && this.isThumbnailViewVisible) { + this._updateThumbnailViewer(); + } + }); + } + +} + +exports.PDFSidebar = PDFSidebar; + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFSidebarResizer = void 0; +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; -var _ui_utils = __webpack_require__(5); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SIDEBAR_WIDTH_VAR = "--sidebar-width"; -var SIDEBAR_MIN_WIDTH = 200; -var SIDEBAR_RESIZING_CLASS = "sidebarResizing"; - -var PDFSidebarResizer = /*#__PURE__*/function () { - function PDFSidebarResizer(options, eventBus) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFSidebarResizer); - - this.enabled = false; +class PDFSidebarResizer { + constructor(options, eventBus, l10n) { this.isRTL = false; this.sidebarOpen = false; this.doc = document.documentElement; @@ -9703,173 +8915,140 @@ var PDFSidebarResizer = /*#__PURE__*/function () { this.outerContainer = options.outerContainer; this.resizer = options.resizer; this.eventBus = eventBus; - this.l10n = l10n; - - if (typeof CSS === "undefined" || typeof CSS.supports !== "function" || !CSS.supports(SIDEBAR_WIDTH_VAR, "calc(-1 * ".concat(SIDEBAR_MIN_WIDTH, "px)"))) { - console.warn("PDFSidebarResizer: " + "The browser does not support resizing of the sidebar."); - return; - } - - this.enabled = true; - this.resizer.classList.remove("hidden"); - this.l10n.getDirection().then(function (dir) { - _this.isRTL = dir === "rtl"; + l10n.getDirection().then(dir => { + this.isRTL = dir === "rtl"; }); this._addEventListeners(); } - _createClass(PDFSidebarResizer, [{ - key: "_updateWidth", - value: function _updateWidth() { - var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + get outerContainerWidth() { + return this._outerContainerWidth || (this._outerContainerWidth = this.outerContainer.clientWidth); + } - if (!this.enabled) { - return false; - } + _updateWidth(width = 0) { + const maxWidth = Math.floor(this.outerContainerWidth / 2); - var newWidth = (0, _ui_utils.clamp)(width, SIDEBAR_MIN_WIDTH, Math.floor(this.outerContainerWidth / 2)); - - if (newWidth === this._width) { - return false; - } - - this._width = newWidth; - this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(newWidth, "px")); - return true; + if (width > maxWidth) { + width = maxWidth; } - }, { - key: "_mouseMove", - value: function _mouseMove(evt) { - var width = evt.clientX; - if (this.isRTL) { - width = this.outerContainerWidth - width; - } - - this._updateWidth(width); + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; } - }, { - key: "_mouseUp", - value: function _mouseUp(evt) { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - this.eventBus.dispatch("resize", { - source: this - }); - var _boundEvents = this._boundEvents; - window.removeEventListener("mousemove", _boundEvents.mouseMove); - window.removeEventListener("mouseup", _boundEvents.mouseUp); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this2 = this; - if (!this.enabled) { + if (width === this._width) { + return false; + } + + this._width = width; + this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); + return true; + } + + _mouseMove(evt) { + let width = evt.clientX; + + if (this.isRTL) { + width = this.outerContainerWidth - width; + } + + this._updateWidth(width); + } + + _mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + const _boundEvents = this._boundEvents; + window.removeEventListener("mousemove", _boundEvents.mouseMove); + window.removeEventListener("mouseup", _boundEvents.mouseUp); + } + + _addEventListeners() { + const _boundEvents = this._boundEvents; + _boundEvents.mouseMove = this._mouseMove.bind(this); + _boundEvents.mouseUp = this._mouseUp.bind(this); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { return; } - var _boundEvents = this._boundEvents; - _boundEvents.mouseMove = this._mouseMove.bind(this); - _boundEvents.mouseUp = this._mouseUp.bind(this); - this.resizer.addEventListener("mousedown", function (evt) { - if (evt.button !== 0) { - return; - } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + window.addEventListener("mousemove", _boundEvents.mouseMove); + window.addEventListener("mouseup", _boundEvents.mouseUp); + }); - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + this.eventBus._on("sidebarviewchanged", evt => { + this.sidebarOpen = !!evt?.view; + }); - window.addEventListener("mousemove", _boundEvents.mouseMove); - window.addEventListener("mouseup", _boundEvents.mouseUp); - }); - - this.eventBus._on("sidebarviewchanged", function (evt) { - _this2.sidebarOpen = !!(evt && evt.view); - }); - - this.eventBus._on("resize", function (evt) { - if (!evt || evt.source !== window) { - return; - } - - _this2._outerContainerWidth = null; - - if (!_this2._width) { - return; - } - - if (!_this2.sidebarOpen) { - _this2._updateWidth(_this2._width); - - return; - } - - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - - var updated = _this2._updateWidth(_this2._width); - - Promise.resolve().then(function () { - _this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - - if (updated) { - _this2.eventBus.dispatch("resize", { - source: _this2 - }); - } - }); - }); - } - }, { - key: "outerContainerWidth", - get: function get() { - if (!this._outerContainerWidth) { - this._outerContainerWidth = this.outerContainer.clientWidth; + this.eventBus._on("resize", evt => { + if (evt?.source !== window) { + return; } - return this._outerContainerWidth; - } - }]); + this._outerContainerWidth = null; - return PDFSidebarResizer; -}(); + if (!this._width) { + return; + } + + if (!this.sidebarOpen) { + this._updateWidth(this._width); + + return; + } + + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + + const updated = this._updateWidth(this._width); + + Promise.resolve().then(() => { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + + if (updated) { + this.eventBus.dispatch("resize", { + source: this + }); + } + }); + }); + } + +} exports.PDFSidebarResizer = PDFSidebarResizer; /***/ }), /* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFThumbnailViewer = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); var _pdf_thumbnail_view = __webpack_require__(26); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _pdf_rendering_queue = __webpack_require__(8); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var THUMBNAIL_SCROLL_MARGIN = -19; -var THUMBNAIL_SELECTED_CLASS = "selected"; - -var PDFThumbnailViewer = /*#__PURE__*/function () { - function PDFThumbnailViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailViewer); +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + l10n + }) { this.container = container; this.linkService = linkService; this.renderingQueue = renderingQueue; @@ -9877,283 +9056,278 @@ var PDFThumbnailViewer = /*#__PURE__*/function () { this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); this._resetView(); + + eventBus._on("optionalcontentconfigchanged", () => { + this._setImageDisabled = true; + }); } - _createClass(PDFThumbnailViewer, [{ - key: "_scrollUpdated", - value: function _scrollUpdated() { - this.renderingQueue.renderHighestPriority(); + _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + + getThumbnail(index) { + return this._thumbnails[index]; + } + + _getVisibleThumbs() { + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views: this._thumbnails + }); + } + + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; } - }, { - key: "getThumbnail", - value: function getThumbnail(index) { - return this._thumbnails[index]; + + const thumbnailView = this._thumbnails[pageNumber - 1]; + + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; } - }, { - key: "_getVisibleThumbs", - value: function _getVisibleThumbs() { - return (0, _ui_utils.getVisibleElements)(this.container, this._thumbnails); + + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); } - }, { - key: "scrollThumbnailIntoView", - value: function scrollThumbnailIntoView(pageNumber) { - if (!this.pdfDocument) { - return; - } - var thumbnailView = this._thumbnails[pageNumber - 1]; + const visibleThumbs = this._getVisibleThumbs(); - if (!thumbnailView) { - console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); - return; - } + const numVisibleThumbs = visibleThumbs.views.length; - if (pageNumber !== this._currentPageNumber) { - var prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; - prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - } + if (numVisibleThumbs > 0) { + const first = visibleThumbs.first.id; + const last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; + let shouldScroll = false; - var visibleThumbs = this._getVisibleThumbs(); - - var numVisibleThumbs = visibleThumbs.views.length; - - if (numVisibleThumbs > 0) { - var first = visibleThumbs.first.id; - var last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; - var shouldScroll = false; - - if (pageNumber <= first || pageNumber >= last) { - shouldScroll = true; - } else { - visibleThumbs.views.some(function (view) { - if (view.id !== pageNumber) { - return false; - } - - shouldScroll = view.percent < 100; - return true; - }); - } - - if (shouldScroll) { - (0, _ui_utils.scrollIntoView)(thumbnailView.div, { - top: THUMBNAIL_SCROLL_MARGIN - }); - } - } - - this._currentPageNumber = pageNumber; - } - }, { - key: "cleanup", - value: function cleanup() { - _pdf_thumbnail_view.PDFThumbnailView.cleanup(); - } - }, { - key: "_resetView", - value: function _resetView() { - this._thumbnails = []; - this._currentPageNumber = 1; - this._pageLabels = null; - this._pagesRotation = 0; - this._pagesRequests = new WeakMap(); - this.container.textContent = ""; - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this = this; - - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - pdfDocument.getPage(1).then(function (firstPdfPage) { - var pagesCount = pdfDocument.numPages; - var viewport = firstPdfPage.getViewport({ - scale: 1 - }); - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ - container: _this.container, - id: pageNum, - defaultViewport: viewport.clone(), - linkService: _this.linkService, - renderingQueue: _this.renderingQueue, - disableCanvasToImageConversion: false, - l10n: _this.l10n - }); - - _this._thumbnails.push(thumbnail); - } - - var firstThumbnailView = _this._thumbnails[0]; - - if (firstThumbnailView) { - firstThumbnailView.setPdfPage(firstPdfPage); - } - - var thumbnailView = _this._thumbnails[_this._currentPageNumber - 1]; - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - })["catch"](function (reason) { - console.error("Unable to initialize thumbnail viewer", reason); - }); - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - if (this._thumbnails[i]) { - this._thumbnails[i].cancelRendering(); - } - } - } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + if (pageNumber <= first || pageNumber >= last) { + shouldScroll = true; } else { - this._pageLabels = labels; + visibleThumbs.views.some(function (view) { + if (view.id !== pageNumber) { + return false; + } + + shouldScroll = view.percent < 100; + return true; + }); } - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - var label = this._pageLabels && this._pageLabels[i]; - - this._thumbnails[i].setPageLabel(label); + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); } } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(thumbView) { - var _this2 = this; - if (thumbView.pdfPage) { - return Promise.resolve(thumbView.pdfPage); + this._currentPageNumber = pageNumber; + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].update(rotation); + } + } + + cleanup() { + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i] && this._thumbnails[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._thumbnails[i].reset(); } + } - if (this._pagesRequests.has(thumbView)) { - return this._pagesRequests.get(thumbView); - } + _pdf_thumbnail_view.TempImageFactory.destroyCanvas(); + } - var promise = this.pdfDocument.getPage(thumbView.id).then(function (pdfPage) { - if (!thumbView.pdfPage) { - thumbView.setPdfPage(pdfPage); - } + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._setImageDisabled = false; + this.container.textContent = ""; + } - _this2._pagesRequests["delete"](thumbView); + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); - return pdfPage; - })["catch"](function (reason) { - console.error("Unable to get page for thumb view", reason); + this._resetView(); + } - _this2._pagesRequests["delete"](thumbView); + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + firstPagePromise.then(firstPdfPage => { + this._optionalContentConfigPromise = optionalContentConfigPromise; + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 }); - this._pagesRequests.set(thumbView, promise); + const checkSetImageDisabled = () => { + return this._setImageDisabled; + }; - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering() { - var _this3 = this; - - var visibleThumbs = this._getVisibleThumbs(); - - var thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); - - if (thumbView) { - this._ensurePdfPageLoaded(thumbView).then(function () { - _this3.renderingQueue.renderView(thumbView); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: this.container, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + checkSetImageDisabled, + l10n: this.l10n }); - return true; + this._thumbnails.push(thumbnail); } - return false; - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; - }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error("Invalid thumbnails rotation angle."); + const firstThumbnailView = this._thumbnails[0]; + + if (firstThumbnailView) { + firstThumbnailView.setPdfPage(firstPdfPage); } - if (!this.pdfDocument) { - return; - } + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } - if (this._pagesRotation === rotation) { - return; - } - - this._pagesRotation = rotation; - - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - this._thumbnails[i].update(rotation); + _cancelRendering() { + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i]) { + this._thumbnails[i].cancelRendering(); } } - }]); + } - return PDFThumbnailViewer; -}(); + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; + } + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + + _ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return Promise.resolve(thumbView.pdfPage); + } + + if (this._pagesRequests.has(thumbView)) { + return this._pagesRequests.get(thumbView); + } + + const promise = this.pdfDocument.getPage(thumbView.id).then(pdfPage => { + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(thumbView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for thumb view", reason); + + this._pagesRequests.delete(thumbView); + }); + + this._pagesRequests.set(thumbView, promise); + + return promise; + } + + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); + + if (thumbView) { + this._ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + + return true; + } + + return false; + } + +} exports.PDFThumbnailViewer = PDFThumbnailViewer; /***/ }), /* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFThumbnailView = void 0; +})); +exports.TempImageFactory = exports.PDFThumbnailView = void 0; -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +const DRAW_UPSCALE_FACTOR = 2; +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_CANVAS_BORDER_WIDTH = 1; +const THUMBNAIL_WIDTH = 98; -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_NUM_SCALING_STEPS = 3; -var THUMBNAIL_CANVAS_BORDER_WIDTH = 1; -var THUMBNAIL_WIDTH = 98; - -var TempImageFactory = function TempImageFactoryClosure() { - var tempCanvasCache = null; +const TempImageFactory = function TempImageFactoryClosure() { + let tempCanvasCache = null; return { - getCanvas: function getCanvas(width, height) { - var tempCanvas = tempCanvasCache; + getCanvas(width, height) { + let tempCanvas = tempCanvasCache; if (!tempCanvas) { tempCanvas = document.createElement("canvas"); @@ -10163,17 +9337,18 @@ var TempImageFactory = function TempImageFactoryClosure() { tempCanvas.width = width; tempCanvas.height = height; tempCanvas.mozOpaque = true; - var ctx = tempCanvas.getContext("2d", { + const ctx = tempCanvas.getContext("2d", { alpha: false }); ctx.save(); ctx.fillStyle = "rgb(255, 255, 255)"; ctx.fillRect(0, 0, width, height); ctx.restore(); - return tempCanvas; + return [tempCanvas, tempCanvas.getContext("2d")]; }, - destroyCanvas: function destroyCanvas() { - var tempCanvas = tempCanvasCache; + + destroyCanvas() { + const tempCanvas = tempCanvasCache; if (tempCanvas) { tempCanvas.width = 0; @@ -10182,23 +9357,23 @@ var TempImageFactory = function TempImageFactoryClosure() { tempCanvasCache = null; } + }; }(); -var PDFThumbnailView = /*#__PURE__*/function () { - function PDFThumbnailView(_ref) { - var container = _ref.container, - id = _ref.id, - defaultViewport = _ref.defaultViewport, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$disableCanvasToI = _ref.disableCanvasToImageConversion, - disableCanvasToImageConversion = _ref$disableCanvasToI === void 0 ? false : _ref$disableCanvasToI, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailView); +exports.TempImageFactory = TempImageFactory; +class PDFThumbnailView { + constructor({ + container, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + checkSetImageDisabled, + l10n + }) { this.id = id; this.renderingId = "thumbnail" + id; this.pageLabel = null; @@ -10206,39 +9381,44 @@ var PDFThumbnailView = /*#__PURE__*/function () { this.rotation = 0; this.viewport = defaultViewport; this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = optionalContentConfigPromise || null; this.linkService = linkService; this.renderingQueue = renderingQueue; this.renderTask = null; this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; this.resume = null; - this.disableCanvasToImageConversion = disableCanvasToImageConversion; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; + + this._checkSetImageDisabled = checkSetImageDisabled || function () { + return false; + }; + + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; this.canvasWidth = THUMBNAIL_WIDTH; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; this.l10n = l10n; - var anchor = document.createElement("a"); + const anchor = document.createElement("a"); anchor.href = linkService.getAnchorUrl("#page=" + id); - this._thumbPageTitle.then(function (msg) { + this._thumbPageTitle.then(msg => { anchor.title = msg; }); anchor.onclick = function () { - linkService.page = id; + linkService.goToPage(id); return false; }; this.anchor = anchor; - var div = document.createElement("div"); + const div = document.createElement("div"); div.className = "thumbnail"; div.setAttribute("data-page-number", this.id); this.div = div; - var ring = document.createElement("div"); + const ring = document.createElement("div"); ring.className = "thumbnailSelectionRing"; - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; ring.style.width = this.canvasWidth + borderAdjustment + "px"; ring.style.height = this.canvasHeight + borderAdjustment + "px"; this.ring = ring; @@ -10247,502 +9427,409 @@ var PDFThumbnailView = /*#__PURE__*/function () { container.appendChild(anchor); } - _createClass(PDFThumbnailView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - }, { - key: "reset", - value: function reset() { - this.cancelRendering(); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; - this.div.removeAttribute("data-loaded"); - var ring = this.ring; - var childNodes = ring.childNodes; + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } - for (var i = childNodes.length - 1; i >= 0; i--) { - ring.removeChild(childNodes[i]); - } + reset() { + this.cancelRendering(); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; + this.div.removeAttribute("data-loaded"); + const ring = this.ring; + ring.textContent = ""; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + "px"; - ring.style.height = this.canvasHeight + borderAdjustment + "px"; - - if (this.canvas) { - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - if (this.image) { - this.image.removeAttribute("src"); - delete this.image; - } - } - }, { - key: "update", - value: function update(rotation) { - if (typeof rotation !== "undefined") { - this.rotation = rotation; - } - - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - }, { - key: "cancelRendering", - value: function cancelRendering() { - if (this.renderTask) { - this.renderTask.cancel(); - this.renderTask = null; - } - - this.resume = null; - } - }, { - key: "_getPageDrawContext", - value: function _getPageDrawContext() { - var noCtxScale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var canvas = document.createElement("canvas"); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext("2d", { - alpha: false - }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - canvas.width = this.canvasWidth * outputScale.sx | 0; - canvas.height = this.canvasHeight * outputScale.sy | 0; - canvas.style.width = this.canvasWidth + "px"; - canvas.style.height = this.canvasHeight + "px"; - - if (!noCtxScale && outputScale.scaled) { - ctx.scale(outputScale.sx, outputScale.sy); - } - - return ctx; - } - }, { - key: "_convertCanvasToImage", - value: function _convertCanvasToImage() { - var _this = this; - - if (!this.canvas) { - return; - } - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - var className = "thumbnailImage"; - - if (this.disableCanvasToImageConversion) { - this.canvas.className = className; - - this._thumbPageCanvas.then(function (msg) { - _this.canvas.setAttribute("aria-label", msg); - }); - - this.div.setAttribute("data-loaded", true); - this.ring.appendChild(this.canvas); - return; - } - - var image = document.createElement("img"); - image.className = className; - - this._thumbPageCanvas.then(function (msg) { - image.setAttribute("aria-label", msg); - }); - - image.style.width = this.canvasWidth + "px"; - image.style.height = this.canvasHeight + "px"; - image.src = this.canvas.toDataURL(); - this.image = image; - this.div.setAttribute("data-loaded", true); - this.ring.appendChild(image); + if (this.canvas) { this.canvas.width = 0; this.canvas.height = 0; delete this.canvas; } - }, { - key: "draw", - value: function draw() { - var _this2 = this; - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error("Must be in new state before drawing"); - return Promise.resolve(undefined); - } - - var pdfPage = this.pdfPage; - - if (!pdfPage) { - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - return Promise.reject(new Error("pdfPage is not loaded")); - } - - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - - var finishRenderTask = function finishRenderTask(error) { - if (renderTask === _this2.renderTask) { - _this2.renderTask = null; - } - - if (error instanceof _pdfjsLib.RenderingCancelledException) { - renderCapability.resolve(undefined); - return; - } - - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - _this2._convertCanvasToImage(); - - if (!error) { - renderCapability.resolve(undefined); - } else { - renderCapability.reject(error); - } - }; - - var ctx = this._getPageDrawContext(); - - var drawViewport = this.viewport.clone({ - scale: this.scale - }); - - var renderContinueCallback = function renderContinueCallback(cont) { - if (!_this2.renderingQueue.isHighestPriority(_this2)) { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this2.resume = function () { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - - return; - } - - cont(); - }; - - var renderContext = { - canvasContext: ctx, - viewport: drawViewport - }; - var renderTask = this.renderTask = pdfPage.render(renderContext); - renderTask.onContinue = renderContinueCallback; - renderTask.promise.then(function () { - finishRenderTask(null); - }, function (error) { - finishRenderTask(error); - }); - return renderCapability.promise; + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; } - }, { - key: "setImage", - value: function setImage(pageView) { - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - return; + } + + update(rotation) { + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + + cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + + this.resume = null; + } + + _getPageDrawContext(upscaleFactor = 1) { + const canvas = document.createElement("canvas"); + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; + canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + return { + ctx, + canvas, + transform + }; + } + + _convertCanvasToImage(canvas) { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + throw new Error("_convertCanvasToImage: Rendering has not finished."); + } + + const reducedCanvas = this._reduceImage(canvas); + + const image = document.createElement("img"); + image.className = "thumbnailImage"; + + this._thumbPageCanvas.then(msg => { + image.setAttribute("aria-label", msg); + }); + + image.style.width = this.canvasWidth + "px"; + image.style.height = this.canvasHeight + "px"; + image.src = reducedCanvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this.ring.appendChild(image); + reducedCanvas.width = 0; + reducedCanvas.height = 0; + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return Promise.resolve(undefined); + } + + const { + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + + const finishRenderTask = async (error = null) => { + if (renderTask === this.renderTask) { + this.renderTask = null; } - var img = pageView.canvas; - - if (!img) { + if (error instanceof _pdfjsLib.RenderingCancelledException) { return; } - if (!this.pdfPage) { - this.setPdfPage(pageView.pdfPage); - } - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - var ctx = this._getPageDrawContext(true); + this._convertCanvasToImage(canvas); - var canvas = ctx.canvas; + if (error) { + throw error; + } + }; - if (img.width <= 2 * canvas.width) { - ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + const { + ctx, + canvas, + transform + } = this._getPageDrawContext(DRAW_UPSCALE_FACTOR); - this._convertCanvasToImage(); + const drawViewport = this.viewport.clone({ + scale: DRAW_UPSCALE_FACTOR * this.scale + }); + + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; return; } - var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; - var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; - var reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight); - var reducedImageCtx = reducedImage.getContext("2d"); + cont(); + }; - while (reducedWidth > img.width || reducedHeight > img.height) { - reducedWidth >>= 1; - reducedHeight >>= 1; + const renderContext = { + canvasContext: ctx, + transform, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(function () { + return finishRenderTask(null); + }, function (error) { + return finishRenderTask(error); + }); + resultPromise.finally(() => { + canvas.width = 0; + canvas.height = 0; + const pageCached = this.linkService.isPageCached(this.id); + + if (!pageCached) { + this.pdfPage?.cleanup(); } + }); + return resultPromise; + } - reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); - - while (reducedWidth > 2 * canvas.width) { - reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); - reducedWidth >>= 1; - reducedHeight >>= 1; - } - - ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); - - this._convertCanvasToImage(); + setImage(pageView) { + if (this._checkSetImageDisabled()) { + return; } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - var _this3 = this; - this.pageLabel = typeof label === "string" ? label : null; - - this._thumbPageTitle.then(function (msg) { - _this3.anchor.title = msg; - }); - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - this._thumbPageCanvas.then(function (msg) { - if (_this3.image) { - _this3.image.setAttribute("aria-label", msg); - } else if (_this3.disableCanvasToImageConversion && _this3.canvas) { - _this3.canvas.setAttribute("aria-label", msg); - } - }); + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + return; } - }, { - key: "_thumbPageTitle", - get: function get() { - return this.l10n.get("thumb_page_title", { - page: this.pageLabel !== null ? this.pageLabel : this.id - }, "Page {{page}}"); - } - }, { - key: "_thumbPageCanvas", - get: function get() { - return this.l10n.get("thumb_page_canvas", { - page: this.pageLabel !== null ? this.pageLabel : this.id - }, "Thumbnail of Page {{page}}"); - } - }], [{ - key: "cleanup", - value: function cleanup() { - TempImageFactory.destroyCanvas(); - } - }]); - return PDFThumbnailView; -}(); + const { + canvas, + pdfPage + } = pageView; + + if (!canvas) { + return; + } + + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + this._convertCanvasToImage(canvas); + } + + _reduceImage(img) { + const { + ctx, + canvas + } = this._getPageDrawContext(); + + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + return canvas; + } + + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + return canvas; + } + + get _thumbPageTitle() { + return this.l10n.get("thumb_page_title", { + page: this.pageLabel ?? this.id + }); + } + + get _thumbPageCanvas() { + return this.l10n.get("thumb_page_canvas", { + page: this.pageLabel ?? this.id + }); + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + this._thumbPageTitle.then(msg => { + this.anchor.title = msg; + }); + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + this._thumbPageCanvas.then(msg => { + this.image?.setAttribute("aria-label", msg); + }); + } + +} exports.PDFThumbnailView = PDFThumbnailView; /***/ }), /* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFViewer = void 0; +var _ui_utils = __webpack_require__(4); + var _base_viewer = __webpack_require__(28); -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFViewer = /*#__PURE__*/function (_BaseViewer) { - _inherits(PDFViewer, _BaseViewer); - - function PDFViewer() { - _classCallCheck(this, PDFViewer); - - return _possibleConstructorReturn(this, _getPrototypeOf(PDFViewer).apply(this, arguments)); +class PDFViewer extends _base_viewer.BaseViewer { + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this.viewer); } - _createClass(PDFViewer, [{ - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (!pageSpot && !this.isInPresentationMode) { + const left = pageDiv.offsetLeft + pageDiv.clientLeft; + const right = left + pageDiv.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; - if (!pageSpot && !this.isInPresentationMode) { - var left = pageDiv.offsetLeft + pageDiv.clientLeft; - var right = left + pageDiv.clientWidth; - var _this$container = this.container, - scrollLeft = _this$container.scrollLeft, - clientWidth = _this$container.clientWidth; - - if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { - pageSpot = { - left: 0, - top: 0 - }; - } + if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; } - - _get(_getPrototypeOf(PDFViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber - }); } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - if (this.isInPresentationMode) { - return this._getCurrentVisiblePage(); - } - return _get(_getPrototypeOf(PDFViewer.prototype), "_getVisiblePages", this).call(this); + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + } + + _getVisiblePages() { + if (this.isInPresentationMode) { + return this._getCurrentVisiblePage(); } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - if (this.isInPresentationMode) { - return; - } - var currentId = this._currentPageNumber; - var stillFullyVisible = false; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + return super._getVisiblePages(); + } - try { - for (var _iterator = visiblePages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var page = _step.value; - - if (page.percent < 100) { - break; - } - - if (page.id === currentId) { - stillFullyVisible = true; - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - if (!stillFullyVisible) { - currentId = visiblePages[0].id; - } - - this._setCurrentPageNumber(currentId); + _updateHelper(visiblePages) { + if (this.isInPresentationMode) { + return; } - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "_setDocumentViewerElement", this.viewer); - } - }]); - return PDFViewer; -}(_base_viewer.BaseViewer); + let currentId = this._currentPageNumber; + let stillFullyVisible = false; + + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + + if (page.id === currentId && this._scrollMode === _ui_utils.ScrollMode.VERTICAL && this._spreadMode === _ui_utils.SpreadMode.NONE) { + stillFullyVisible = true; + break; + } + } + + if (!stillFullyVisible) { + currentId = visiblePages[0].id; + } + + this._setCurrentPageNumber(currentId); + } + +} exports.PDFViewer = PDFViewer; /***/ }), /* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.BaseViewer = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_rendering_queue = __webpack_require__(11); +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); var _annotation_layer_builder = __webpack_require__(29); -var _pdfjsLib = __webpack_require__(7); +var _l10n_utils = __webpack_require__(30); -var _pdf_page_view = __webpack_require__(30); +var _pdf_page_view = __webpack_require__(31); -var _pdf_link_service = __webpack_require__(21); +var _pdf_link_service = __webpack_require__(19); -var _text_layer_builder = __webpack_require__(31); +var _struct_tree_layer_builder = __webpack_require__(32); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _text_layer_builder = __webpack_require__(33); -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } +var _xfa_layer_builder = __webpack_require__(34); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_CACHE_SIZE = 10; +const DEFAULT_CACHE_SIZE = 10; function PDFPageViewBuffer(size) { - var data = []; + const data = []; this.push = function (view) { - var i = data.indexOf(view); + const i = data.indexOf(view); if (i >= 0) { data.splice(i, 1); @@ -10759,9 +9846,9 @@ function PDFPageViewBuffer(size) { size = newSize; if (pagesToKeep) { - var pageIdsToKeep = new Set(); + const pageIdsToKeep = new Set(); - for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { + for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { pageIdsToKeep.add(pagesToKeep[i].id); } @@ -10774,6 +9861,10 @@ function PDFPageViewBuffer(size) { data.shift().destroy(); } }; + + this.has = function (view) { + return data.includes(view); + }; } function isSameScale(oldScale, newScale) { @@ -10788,33 +9879,45 @@ function isSameScale(oldScale, newScale) { return false; } -var BaseViewer = /*#__PURE__*/function () { - function BaseViewer(options) { - var _this = this; - - _classCallCheck(this, BaseViewer); - +class BaseViewer { + constructor(options) { if (this.constructor === BaseViewer) { throw new Error("Cannot initialize BaseViewer."); } + const viewerVersion = '2.10.377'; + + if (_pdfjsLib.version !== viewerVersion) { + throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); + } + this._name = this.constructor.name; this.container = options.container; this.viewer = options.viewer || options.container.firstElementChild; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + + if (!(this.container?.tagName.toUpperCase() === "DIV" && this.viewer?.tagName.toUpperCase() === "DIV")) { + throw new Error("Invalid `container` and/or `viewer` option."); + } + + if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { + throw new Error("The `container` must be absolutely positioned."); + } + + this.eventBus = options.eventBus; this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); this.downloadManager = options.downloadManager || null; this.findController = options.findController || null; + this._scriptingManager = options.scriptingManager || null; this.removePageBorders = options.removePageBorders || false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; this.imageResourcesPath = options.imageResourcesPath || ""; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.renderInteractiveForms = options.renderInteractiveForms !== false; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.enableWebGL = options.enableWebGL || false; this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels; - this.l10n = options.l10n || _ui_utils.NullL10n; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.enableScripting = options.enableScripting === true && !!this._scriptingManager; this.defaultRenderingQueue = !options.renderingQueue; if (this.defaultRenderingQueue) { @@ -10834,1110 +9937,1324 @@ var BaseViewer = /*#__PURE__*/function () { this.viewer.classList.add("removePageBorders"); } - Promise.resolve().then(function () { - _this.eventBus.dispatch("baseviewerinit", { - source: _this + Promise.resolve().then(() => { + this.eventBus.dispatch("baseviewerinit", { + source: this }); }); } - _createClass(BaseViewer, [{ - key: "getPageView", - value: function getPageView(index) { - return this._pages[index]; + get pagesCount() { + return this._pages.length; + } + + getPageView(index) { + return this._pages[index]; + } + + get pageViewsReady() { + if (!this._pagesCapability.settled) { + return false; } - }, { - key: "_setCurrentPageNumber", - value: function _setCurrentPageNumber(val) { - var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (this._currentPageNumber === val) { - if (resetCurrentPageView) { - this._resetCurrentPageView(); - } + return this._pages.every(function (pageView) { + return pageView?.pdfPage; + }); + } - return true; - } + get currentPageNumber() { + return this._currentPageNumber; + } - if (!(0 < val && val <= this.pagesCount)) { - return false; - } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } - this._currentPageNumber = val; - this.eventBus.dispatch("pagechanging", { - source: this, - pageNumber: val, - pageLabel: this._pageLabels && this._pageLabels[val - 1] - }); + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`${this._name}.currentPageNumber: "${val}" is not a valid page.`); + } + } + + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { if (resetCurrentPageView) { this._resetCurrentPageView(); } return true; } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this2 = this; - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - - if (this.findController) { - this.findController.setDocument(null); - } - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - var pagesCount = pdfDocument.numPages; - var firstPagePromise = pdfDocument.getPage(1); - - this._pagesCapability.promise.then(function () { - _this2.eventBus.dispatch("pagesloaded", { - source: _this2, - pagesCount: pagesCount - }); - }); - - this._onBeforeDraw = function (evt) { - var pageView = _this2._pages[evt.pageNumber - 1]; - - if (!pageView) { - return; - } - - _this2._buffer.push(pageView); - }; - - this.eventBus._on("pagerender", this._onBeforeDraw); - - this._onAfterDraw = function (evt) { - if (evt.cssTransform || _this2._onePageRenderedCapability.settled) { - return; - } - - _this2._onePageRenderedCapability.resolve(); - - _this2.eventBus._off("pagerendered", _this2._onAfterDraw); - - _this2._onAfterDraw = null; - }; - - this.eventBus._on("pagerendered", this._onAfterDraw); - - firstPagePromise.then(function (firstPdfPage) { - _this2._firstPageCapability.resolve(firstPdfPage); - - var scale = _this2.currentScale; - var viewport = firstPdfPage.getViewport({ - scale: scale * _ui_utils.CSS_UNITS - }); - var textLayerFactory = _this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? _this2 : null; - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var pageView = new _pdf_page_view.PDFPageView({ - container: _this2._setDocumentViewerElement, - eventBus: _this2.eventBus, - id: pageNum, - scale: scale, - defaultViewport: viewport.clone(), - renderingQueue: _this2.renderingQueue, - textLayerFactory: textLayerFactory, - textLayerMode: _this2.textLayerMode, - annotationLayerFactory: _this2, - imageResourcesPath: _this2.imageResourcesPath, - renderInteractiveForms: _this2.renderInteractiveForms, - renderer: _this2.renderer, - enableWebGL: _this2.enableWebGL, - useOnlyCssZoom: _this2.useOnlyCssZoom, - maxCanvasPixels: _this2.maxCanvasPixels, - l10n: _this2.l10n - }); - - _this2._pages.push(pageView); - } - - var firstPageView = _this2._pages[0]; - - if (firstPageView) { - firstPageView.setPdfPage(firstPdfPage); - - _this2.linkService.cachePageRef(1, firstPdfPage.ref); - } - - if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) { - _this2._updateSpreadMode(); - } - - _this2._onePageRenderedCapability.promise.then(function () { - if (_this2.findController) { - _this2.findController.setDocument(pdfDocument); - } - - if (pdfDocument.loadingParams["disableAutoFetch"] || pagesCount > 7500) { - _this2._pagesCapability.resolve(); - - return; - } - - var getPagesLeft = pagesCount - 1; - - if (getPagesLeft <= 0) { - _this2._pagesCapability.resolve(); - - return; - } - - var _loop = function _loop(_pageNum) { - pdfDocument.getPage(_pageNum).then(function (pdfPage) { - var pageView = _this2._pages[_pageNum - 1]; - - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this2.linkService.cachePageRef(_pageNum, pdfPage.ref); - - if (--getPagesLeft === 0) { - _this2._pagesCapability.resolve(); - } - }, function (reason) { - console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason); - - if (--getPagesLeft === 0) { - _this2._pagesCapability.resolve(); - } - }); - }; - - for (var _pageNum = 2; _pageNum <= pagesCount; ++_pageNum) { - _loop(_pageNum); - } - }); - - _this2.eventBus.dispatch("pagesinit", { - source: _this2 - }); - - if (_this2.defaultRenderingQueue) { - _this2.update(); - } - })["catch"](function (reason) { - console.error("Unable to initialize viewer", reason); - }); + if (!(0 < val && val <= this.pagesCount)) { + return false; } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("".concat(this._name, ".setPageLabels: Invalid page labels.")); - } else { - this._pageLabels = labels; - } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels?.[val - 1] ?? null, + previous + }); - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - var label = this._pageLabels && this._pageLabels[i]; - pageView.setPageLabel(label); + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } + + return true; + } + + get currentPageLabel() { + return this._pageLabels?.[this._currentPageNumber - 1] ?? null; + } + + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + + let page = val | 0; + + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + + if (i >= 0) { + page = i + 1; } } - }, { - key: "_resetView", - value: function _resetView() { - this._pages = []; - this._currentPageNumber = 1; - this._currentScale = _ui_utils.UNKNOWN_SCALE; - this._currentScaleValue = null; - this._pageLabels = null; - this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); - this._location = null; - this._pagesRotation = 0; - this._pagesRequests = new WeakMap(); - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._scrollMode = _ui_utils.ScrollMode.VERTICAL; - this._spreadMode = _ui_utils.SpreadMode.NONE; - if (this._onBeforeDraw) { - this.eventBus._off("pagerender", this._onBeforeDraw); - - this._onBeforeDraw = null; - } - - if (this._onAfterDraw) { - this.eventBus._off("pagerendered", this._onAfterDraw); - - this._onAfterDraw = null; - } - - this.viewer.textContent = ""; - - this._updateScrollMode(); + if (!this._setCurrentPageNumber(page, true)) { + console.error(`${this._name}.currentPageLabel: "${val}" is not a valid page.`); } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this.pagesCount === 0) { - return; - } + } + get currentScale() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + } + + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get currentScaleValue() { + return this._currentScaleValue; + } + + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + rotation %= 360; + + if (rotation < 0) { + rotation += 360; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + const pageView = this._pages[i]; + pageView.update(pageView.scale, rotation); + } + + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, true); + } + + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + + if (this.defaultRenderingQueue) { this.update(); } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + + get _viewerElement() { + throw new Error("Not implemented: _viewerElement"); + } + + _onePageRenderedOrForceFetch() { + if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); } - }, { - key: "_setScaleUpdatePages", - value: function _setScaleUpdatePages(newScale, newValue) { - var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - this._currentScaleValue = newValue.toString(); - if (isSameScale(this._currentScale, newScale)) { - if (preset) { - this.eventBus.dispatch("scalechanging", { - source: this, - scale: newScale, - presetValue: newValue - }); - } + return this._onePageRenderedCapability.promise; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + + this._cancelRendering(); + + this._resetView(); + + if (this.findController) { + this.findController.setDocument(null); + } + + if (this._scriptingManager) { + this._scriptingManager.setDocument(null); + } + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const isPureXfa = pdfDocument.isPureXfa; + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }); + + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + + if (!pageView) { return; } - for (var i = 0, ii = this._pages.length; i < ii; i++) { - this._pages[i].update(newScale); + this._buffer.push(pageView); + }; + + this.eventBus._on("pagerender", this._onBeforeDraw); + + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; } - this._currentScale = newScale; + this._onePageRenderedCapability.resolve(); - if (!noScroll) { - var page = this._currentPageNumber, - dest; + this.eventBus._off("pagerendered", this._onAfterDraw); - if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { - page = this._location.pageNumber; - dest = [null, { - name: "XYZ" - }, this._location.left, this._location.top, null]; + this._onAfterDraw = null; + }; + + this.eventBus._on("pagerendered", this._onAfterDraw); + + firstPagePromise.then(firstPdfPage => { + this._firstPageCapability.resolve(firstPdfPage); + + this._optionalContentConfigPromise = optionalContentConfigPromise; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _ui_utils.CSS_UNITS + }); + const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null; + const xfaLayerFactory = isPureXfa ? this : null; + + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: this._viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerFactory, + textLayerMode: this.textLayerMode, + annotationLayerFactory: this, + xfaLayerFactory, + structTreeLayerFactory: this, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + renderer: this.renderer, + useOnlyCssZoom: this.useOnlyCssZoom, + maxCanvasPixels: this.maxCanvasPixels, + l10n: this.l10n + }); + + this._pages.push(pageView); + } + + const firstPageView = this._pages[0]; + + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + + if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + + this._onePageRenderedOrForceFetch().then(() => { + if (this.findController) { + this.findController.setDocument(pdfDocument); } - this.scrollPageIntoView({ - pageNumber: page, - destArray: dest, - allowNegativeOffset: true - }); - } + if (this.enableScripting) { + this._scriptingManager.setDocument(pdfDocument); + } - this.eventBus.dispatch("scalechanging", { - source: this, - scale: newScale, - presetValue: preset ? newValue : undefined + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) { + this._pagesCapability.resolve(); + + return; + } + + let getPagesLeft = pagesCount - 1; + + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + + return; + } + + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this.linkService.cachePageRef(pageNum, pdfPage.ref); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + } + }); + + this.eventBus.dispatch("pagesinit", { + source: this }); if (this.defaultRenderingQueue) { this.update(); } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + }); + } + + setPageLabels(labels) { + if (!this.pdfDocument) { + return; } - }, { - key: "_setScale", - value: function _setScale(value) { - var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var scale = parseFloat(value); - if (scale > 0) { - this._setScaleUpdatePages(scale, value, noScroll, false); - } else { - var currentPage = this._pages[this._currentPageNumber - 1]; - - if (!currentPage) { - return; - } - - var noPadding = this.isInPresentationMode || this.removePageBorders; - var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - - if (!noPadding && this._isScrollModeHorizontal) { - var _ref2 = [vPadding, hPadding]; - hPadding = _ref2[0]; - vPadding = _ref2[1]; - } - - var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale; - var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - - switch (value) { - case "page-actual": - scale = 1; - break; - - case "page-width": - scale = pageWidthScale; - break; - - case "page-height": - scale = pageHeightScale; - break; - - case "page-fit": - scale = Math.min(pageWidthScale, pageHeightScale); - break; - - case "auto": - var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); - scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); - break; - - default: - console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value.")); - return; - } - - this._setScaleUpdatePages(scale, value, noScroll, true); - } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`${this._name}.setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; } - }, { - key: "_resetCurrentPageView", - value: function _resetCurrentPageView() { - if (this.isInPresentationMode) { - this._setScale(this._currentScaleValue, true); + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._spreadMode = _ui_utils.SpreadMode.NONE; + + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + + this._onBeforeDraw = null; + } + + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + + this._onAfterDraw = null; + } + + this.viewer.textContent = ""; + + this._updateScrollMode(); + } + + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + + this.update(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) { + this._currentScaleValue = newValue.toString(); + + if (isSameScale(this._currentScale, newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); } - var pageView = this._pages[this._currentPageNumber - 1]; + return; + } - this._scrollIntoView({ - pageDiv: pageView.div + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].update(newScale); + } + + this._currentScale = newScale; + + if (!noScroll) { + let page = this._currentPageNumber, + dest; + + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true }); } - }, { - key: "scrollPageIntoView", - value: function scrollPageIntoView(_ref3) { - var pageNumber = _ref3.pageNumber, - _ref3$destArray = _ref3.destArray, - destArray = _ref3$destArray === void 0 ? null : _ref3$destArray, - _ref3$allowNegativeOf = _ref3.allowNegativeOffset, - allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf, - _ref3$ignoreDestinati = _ref3.ignoreDestinationZoom, - ignoreDestinationZoom = _ref3$ignoreDestinati === void 0 ? false : _ref3$ignoreDestinati; - if (!this.pdfDocument) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + + if (this.defaultRenderingQueue) { + this.update(); + } + } + + get _pageWidthScaleFactor() { + if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL && !this.isInPresentationMode) { + return 2; + } + + return 1; + } + + _setScale(value, noScroll = false) { + let scale = parseFloat(value); + + if (scale > 0) { + this._setScaleUpdatePages(scale, value, noScroll, false); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + + if (!currentPage) { return; } - var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + const noPadding = this.isInPresentationMode || this.removePageBorders; + let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; + let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - if (!pageView) { - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; + if (!noPadding && this._isScrollModeHorizontal) { + [hPadding, vPadding] = [vPadding, hPadding]; } - if (this.isInPresentationMode || !destArray) { - this._setCurrentPageNumber(pageNumber, true); + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - return; - } - - var x = 0, - y = 0; - var width = 0, - height = 0, - widthScale, - heightScale; - var changeOrientation = pageView.rotation % 180 !== 0; - var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; - var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; - var scale = 0; - - switch (destArray[1].name) { - case "XYZ": - x = destArray[2]; - y = destArray[3]; - scale = destArray[4]; - x = x !== null ? x : 0; - y = y !== null ? y : pageHeight; + switch (value) { + case "page-actual": + scale = 1; break; - case "Fit": - case "FitB": - scale = "page-fit"; + case "page-width": + scale = pageWidthScale; break; - case "FitH": - case "FitBH": - y = destArray[2]; - scale = "page-width"; - - if (y === null && this._location) { - x = this._location.left; - y = this._location.top; - } - + case "page-height": + scale = pageHeightScale; break; - case "FitV": - case "FitBV": - x = destArray[2]; - width = pageWidth; - height = pageHeight; - scale = "page-height"; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); break; - case "FitR": - x = destArray[2]; - y = destArray[3]; - width = destArray[4] - x; - height = destArray[5] - y; - var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; - widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; - heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; - scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + case "auto": + const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); break; default: - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type.")); + console.error(`${this._name}._setScale: "${value}" is an unknown zoom value.`); return; } - if (!ignoreDestinationZoom) { - if (scale && scale !== this._currentScale) { - this.currentScaleValue = scale; - } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { - this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this._setScaleUpdatePages(scale, value, noScroll, true); + } + } + + _resetCurrentPageView() { + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, true); + } + + const pageView = this._pages[this._currentPageNumber - 1]; + + this._scrollIntoView({ + pageDiv: pageView.div + }); + } + + pageLabelToPageNumber(label) { + if (!this._pageLabels) { + return null; + } + + const i = this._pageLabels.indexOf(label); + + if (i < 0) { + return null; + } + + return i + 1; + } + + scrollPageIntoView({ + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + }) { + if (!this.pdfDocument) { + return; + } + + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + + if (!pageView) { + console.error(`${this._name}.scrollPageIntoView: ` + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + + return; + } + + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; + let scale = 0; + + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + + case "Fit": + case "FitB": + scale = "page-fit"; + break; + + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } else if (typeof y !== "number") { + y = pageHeight; } - } - if (scale === "page-fit" && !destArray[4]) { - this._scrollIntoView({ - pageDiv: pageView.div, - pageNumber: pageNumber - }); + break; + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + + default: + console.error(`${this._name}.scrollPageIntoView: ` + `"${destArray[1].name}" is not a valid destination type.`); return; + } + + if (!ignoreDestinationZoom) { + if (scale && scale !== this._currentScale) { + this.currentScaleValue = scale; + } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { + this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } + } - var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; - var left = Math.min(boundingRect[0][0], boundingRect[1][0]); - var top = Math.min(boundingRect[0][1], boundingRect[1][1]); - - if (!allowNegativeOffset) { - left = Math.max(left, 0); - top = Math.max(top, 0); - } - + if (scale === "page-fit" && !destArray[4]) { this._scrollIntoView({ pageDiv: pageView.div, - pageSpot: { - left: left, - top: top - }, - pageNumber: pageNumber + pageNumber }); - } - }, { - key: "_updateLocation", - value: function _updateLocation(firstPage) { - var currentScale = this._currentScale; - var currentScaleValue = this._currentScaleValue; - var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; - var pageNumber = firstPage.id; - var pdfOpenParams = "#page=" + pageNumber; - pdfOpenParams += "&zoom=" + normalizedScaleValue; - var currentPageView = this._pages[pageNumber - 1]; - var container = this.container; - var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); - var intLeft = Math.round(topLeft[0]); - var intTop = Math.round(topLeft[1]); - pdfOpenParams += "," + intLeft + "," + intTop; - this._location = { - pageNumber: pageNumber, - scale: normalizedScaleValue, - top: intTop, - left: intLeft, - rotation: this._pagesRotation, - pdfOpenParams: pdfOpenParams - }; - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - throw new Error("Not implemented: _updateHelper"); - } - }, { - key: "update", - value: function update() { - var visible = this._getVisiblePages(); - var visiblePages = visible.views, + return; + } + + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + + this._scrollIntoView({ + pageDiv: pageView.div, + pageSpot: { + left, + top + }, + pageNumber + }); + } + + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + let pdfOpenParams = "#page=" + pageNumber; + pdfOpenParams += "&zoom=" + normalizedScaleValue; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + pdfOpenParams += "," + intLeft + "," + intTop; + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + + _updateHelper(visiblePages) { + throw new Error("Not implemented: _updateHelper"); + } + + update() { + const visible = this._getVisiblePages(); + + const visiblePages = visible.views, numVisiblePages = visiblePages.length; - if (numVisiblePages === 0) { - return; - } - - var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); - - this._buffer.resize(newCacheSize, visiblePages); - - this.renderingQueue.renderHighestPriority(visible); - - this._updateHelper(visiblePages); - - this._updateLocation(visible.first); - - this.eventBus.dispatch("updateviewarea", { - source: this, - location: this._location - }); + if (numVisiblePages === 0) { + return; } - }, { - key: "containsElement", - value: function containsElement(element) { - return this.container.contains(element); - } - }, { - key: "focus", - value: function focus() { - this.container.focus(); - } - }, { - key: "_getCurrentVisiblePage", - value: function _getCurrentVisiblePage() { - if (!this.pagesCount) { - return { - views: [] - }; - } - var pageView = this._pages[this._currentPageNumber - 1]; - var element = pageView.div; - var view = { - id: pageView.id, - x: element.offsetLeft + element.clientLeft, - y: element.offsetTop + element.clientTop, - view: pageView - }; + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + + this._buffer.resize(newCacheSize, visiblePages); + + this.renderingQueue.renderHighestPriority(visible); + + this._updateHelper(visiblePages); + + this._updateLocation(visible.first); + + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + + containsElement(element) { + return this.container.contains(element); + } + + focus() { + this.container.focus(); + } + + get _isScrollModeHorizontal() { + return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; + } + + get _isContainerRtl() { + return getComputedStyle(this.container).direction === "rtl"; + } + + get isInPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + + get isChangingPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + + _getCurrentVisiblePage() { + if (!this.pagesCount) { return { - first: view, - last: view, - views: [view] + views: [] }; } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal); - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - if (!this.pdfDocument) { - return false; - } - if (pageNumber < 1 || pageNumber > this.pagesCount) { - console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is out of bounds.")); - return false; - } + const pageView = this._pages[this._currentPageNumber - 1]; + const element = pageView.div; + const view = { + id: pageView.id, + x: element.offsetLeft + element.clientLeft, + y: element.offsetTop + element.clientTop, + view: pageView + }; + return { + first: view, + last: view, + views: [view] + }; + } - return this._getVisiblePages().views.some(function (view) { - return view.id === pageNumber; - }); - } - }, { - key: "cleanup", - value: function cleanup() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - this._pages[i].reset(); - } - } - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i]) { - this._pages[i].cancelRendering(); - } - } - } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(pageView) { - var _this3 = this; - - if (pageView.pdfPage) { - return Promise.resolve(pageView.pdfPage); - } - - if (this._pagesRequests.has(pageView)) { - return this._pagesRequests.get(pageView); - } - - var promise = this.pdfDocument.getPage(pageView.id).then(function (pdfPage) { - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this3._pagesRequests["delete"](pageView); - - return pdfPage; - })["catch"](function (reason) { - console.error("Unable to get page for page view", reason); - - _this3._pagesRequests["delete"](pageView); - }); - - this._pagesRequests.set(pageView, promise); - - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering(currentlyVisiblePages) { - var _this4 = this; - - var visiblePages = currentlyVisiblePages || this._getVisiblePages(); - - var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; - var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); - - if (pageView) { - this._ensurePdfPageLoaded(pageView).then(function () { - _this4.renderingQueue.renderView(pageView); - }); - - return true; - } + _getVisiblePages() { + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views: this._pages, + sortByVisibility: true, + horizontal: this._isScrollModeHorizontal, + rtl: this._isScrollModeHorizontal && this._isContainerRtl + }); + } + isPageVisible(pageNumber) { + if (!this.pdfDocument) { return false; } - }, { - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var eventBus = arguments.length > 4 ? arguments[4] : undefined; - return new _text_layer_builder.TextLayerBuilder({ - textLayerDiv: textLayerDiv, - eventBus: eventBus, - pageIndex: pageIndex, - viewport: viewport, - findController: this.isInPresentationMode ? null : this.findController, - enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection - }); + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`${this._name}.isPageVisible: "${pageNumber}" is not a valid page.`); + return false; } - }, { - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new _annotation_layer_builder.AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - l10n: l10n - }); + + return this._getVisiblePages().views.some(function (view) { + return view.id === pageNumber; + }); + } + + isPageCached(pageNumber) { + if (!this.pdfDocument || !this._buffer) { + return false; } - }, { - key: "getPagesOverview", - value: function getPagesOverview() { - var pagesOverview = this._pages.map(function (pageView) { - var viewport = pageView.pdfPage.getViewport({ - scale: 1 - }); + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`${this._name}.isPageCached: "${pageNumber}" is not a valid page.`); + return false; + } + + const pageView = this._pages[pageNumber - 1]; + + if (!pageView) { + return false; + } + + return this._buffer.has(pageView); + } + + cleanup() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pages[i].reset(); + } + } + } + + _cancelRendering() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i]) { + this._pages[i].cancelRendering(); + } + } + } + + _ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return Promise.resolve(pageView.pdfPage); + } + + if (this._pagesRequests.has(pageView)) { + return this._pagesRequests.get(pageView); + } + + const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => { + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(pageView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for page view", reason); + + this._pagesRequests.delete(pageView); + }); + + this._pagesRequests.set(pageView, promise); + + return promise; + } + + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + + const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); + + if (pageView) { + this._ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + + return true; + } + + return false; + } + + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new _text_layer_builder.TextLayerBuilder({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController: this.isInPresentationMode ? null : this.findController, + enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection + }); + } + + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = false, l10n = _l10n_utils.NullL10n, enableScripting = null, hasJSActionsPromise = null, mouseState = null) { + return new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage, + imageResourcesPath, + renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + l10n, + enableScripting: enableScripting ?? this.enableScripting, + hasJSActionsPromise: hasJSActionsPromise || this.pdfDocument?.hasJSActions(), + mouseState: mouseState || this._scriptingManager?.mouseState + }); + } + + createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null) { + return new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage + }); + } + + createStructTreeLayerBuilder(pdfPage) { + return new _struct_tree_layer_builder.StructTreeLayerBuilder({ + pdfPage + }); + } + + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + + return true; + } + + getPagesOverview() { + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + + if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) { return { width: viewport.width, height: viewport.height, rotation: viewport.rotation }; - }); - - if (!this.enablePrintAutoRotate) { - return pagesOverview; } - var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]); - return pagesOverview.map(function (size) { - if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) { - return size; - } + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + }); + } - return { - width: size.height, - height: size.width, - rotation: (size.rotation + 90) % 360 - }; - }); + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); } - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var scrollMode = this._scrollMode, + + if (!this._optionalContentConfigPromise) { + return this.pdfDocument.getOptionalContentConfig(); + } + + return this._optionalContentConfigPromise; + } + + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + + if (!this.pdfDocument) { + return; + } + + if (!this._optionalContentConfigPromise) { + return; + } + + this._optionalContentConfigPromise = promise; + + for (const pageView of this._pages) { + pageView.update(pageView.scale, pageView.rotation, promise); + } + + this.update(); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + + get scrollMode() { + return this._scrollMode; + } + + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + + this._updateScrollMode(this._currentPageNumber); + } + + _updateScrollMode(pageNumber = null) { + const scrollMode = this._scrollMode, viewer = this.viewer; - viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); - viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); - if (!this.pdfDocument || !pageNumber) { - return; - } - - if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this._setScale(this._currentScaleValue, true); - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); + if (!this.pdfDocument || !pageNumber) { + return; } - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - if (!this.pdfDocument) { - return; - } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } - var viewer = this.viewer, + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + + get spreadMode() { + return this._spreadMode; + } + + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + + this._updateSpreadMode(this._currentPageNumber); + } + + _updateSpreadMode(pageNumber = null) { + if (!this.pdfDocument) { + return; + } + + const viewer = this.viewer, pages = this._pages; - viewer.textContent = ""; + viewer.textContent = ""; - if (this._spreadMode === _ui_utils.SpreadMode.NONE) { - for (var i = 0, iMax = pages.length; i < iMax; ++i) { - viewer.appendChild(pages[i].div); + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + viewer.appendChild(pages[i].div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.appendChild(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.appendChild(spread); } - } else { - var parity = this._spreadMode - 1; - var spread = null; - for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) { - if (spread === null) { - spread = document.createElement("div"); - spread.className = "spread"; - viewer.appendChild(spread); - } else if (_i % 2 === parity) { - spread = spread.cloneNode(false); - viewer.appendChild(spread); + spread.appendChild(pages[i].div); + } + } + + if (!pageNumber) { + return; + } + + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + + _getPageAdvance(currentPageNumber, previous = false) { + if (this.isInPresentationMode) { + return 1; + } + + switch (this._scrollMode) { + case _ui_utils.ScrollMode.WRAPPED: + { + const { + views + } = this._getVisiblePages(), + pageLayout = new Map(); + + for (const { + id, + y, + percent, + widthPercent + } of views) { + if (percent === 0 || widthPercent < 100) { + continue; + } + + let yArray = pageLayout.get(y); + + if (!yArray) { + pageLayout.set(y, yArray || (yArray = [])); + } + + yArray.push(id); } - spread.appendChild(pages[_i].div); + for (const yArray of pageLayout.values()) { + const currentIndex = yArray.indexOf(currentPageNumber); + + if (currentIndex === -1) { + continue; + } + + const numPages = yArray.length; + + if (numPages === 1) { + break; + } + + if (previous) { + for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { + const currentId = yArray[i], + expectedId = yArray[i + 1] - 1; + + if (currentId < expectedId) { + return currentPageNumber - expectedId; + } + } + } else { + for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { + const currentId = yArray[i], + expectedId = yArray[i - 1] + 1; + + if (currentId > expectedId) { + return expectedId - currentPageNumber; + } + } + } + + if (previous) { + const firstId = yArray[0]; + + if (firstId < currentPageNumber) { + return currentPageNumber - firstId + 1; + } + } else { + const lastId = yArray[numPages - 1]; + + if (lastId > currentPageNumber) { + return lastId - currentPageNumber + 1; + } + } + + break; + } + + break; } - } - if (!pageNumber) { - return; - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); - } - }, { - key: "pagesCount", - get: function get() { - return this._pages.length; - } - }, { - key: "pageViewsReady", - get: function get() { - if (!this._pagesCapability.settled) { - return false; - } - - return this._pages.every(function (pageView) { - return pageView && pageView.pdfPage; - }); - } - }, { - key: "currentPageNumber", - get: function get() { - return this._currentPageNumber; - }, - set: function set(val) { - if (!Number.isInteger(val)) { - throw new Error("Invalid page number."); - } - - if (!this.pdfDocument) { - return; - } - - if (!this._setCurrentPageNumber(val, true)) { - console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentPageLabel", - get: function get() { - return this._pageLabels && this._pageLabels[this._currentPageNumber - 1]; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } - - var page = val | 0; - - if (this._pageLabels) { - var i = this._pageLabels.indexOf(val); - - if (i >= 0) { - page = i + 1; + case _ui_utils.ScrollMode.HORIZONTAL: + { + break; } - } - if (!this._setCurrentPageNumber(page, true)) { - console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentScale", - get: function get() { - return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; - }, - set: function set(val) { - if (isNaN(val)) { - throw new Error("Invalid numeric scale."); - } + case _ui_utils.ScrollMode.VERTICAL: + { + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + break; + } - if (!this.pdfDocument) { - return; - } + const parity = this._spreadMode - 1; - this._setScale(val, false); - } - }, { - key: "currentScaleValue", - get: function get() { - return this._currentScaleValue; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } - this._setScale(val, false); - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; - }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error("Invalid pages rotation angle."); - } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; - if (!this.pdfDocument) { - return; - } + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } - if (this._pagesRotation === rotation) { - return; - } + if (percent > 0 && widthPercent === 100) { + return 2; + } - this._pagesRotation = rotation; - var pageNumber = this._currentPageNumber; + break; + } - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - pageView.update(pageView.scale, rotation); - } - - if (this._currentScaleValue) { - this._setScale(this._currentScaleValue, true); - } - - this.eventBus.dispatch("rotationchanging", { - source: this, - pagesRotation: rotation, - pageNumber: pageNumber - }); - - if (this.defaultRenderingQueue) { - this.update(); - } - } - }, { - key: "firstPagePromise", - get: function get() { - return this.pdfDocument ? this._firstPageCapability.promise : null; - } - }, { - key: "onePageRendered", - get: function get() { - return this.pdfDocument ? this._onePageRenderedCapability.promise : null; - } - }, { - key: "pagesPromise", - get: function get() { - return this.pdfDocument ? this._pagesCapability.promise : null; - } - }, { - key: "_setDocumentViewerElement", - get: function get() { - throw new Error("Not implemented: _setDocumentViewerElement"); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; - } - }, { - key: "isInPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; - } - }, { - key: "isChangingPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; - } - }, { - key: "isHorizontalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; - } - }, { - key: "isVerticalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; - } - }, { - key: "hasEqualPageSizes", - get: function get() { - var firstPageView = this._pages[0]; - - for (var i = 1, ii = this._pages.length; i < ii; ++i) { - var pageView = this._pages[i]; - - if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { - return false; + break; } - } - - return true; } - }, { - key: "scrollMode", - get: function get() { - return this._scrollMode; - }, - set: function set(mode) { - if (this._scrollMode === mode) { - return; - } - if (!(0, _ui_utils.isValidScrollMode)(mode)) { - throw new Error("Invalid scroll mode: ".concat(mode)); - } + return 1; + } - this._scrollMode = mode; - this.eventBus.dispatch("scrollmodechanged", { - source: this, - mode: mode - }); + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; - this._updateScrollMode(this._currentPageNumber); + if (currentPageNumber >= pagesCount) { + return false; } - }, { - key: "spreadMode", - get: function get() { - return this._spreadMode; - }, - set: function set(mode) { - if (this._spreadMode === mode) { - return; - } - if (!(0, _ui_utils.isValidSpreadMode)(mode)) { - throw new Error("Invalid spread mode: ".concat(mode)); - } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } - this._spreadMode = mode; - this.eventBus.dispatch("spreadmodechanged", { - source: this, - mode: mode - }); + previousPage() { + const currentPageNumber = this._currentPageNumber; - this._updateSpreadMode(this._currentPageNumber); + if (currentPageNumber <= 1) { + return false; } - }]); - return BaseViewer; -}(); + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + +} exports.BaseViewer = BaseViewer; /***/ }), /* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(5); +var _l10n_utils = __webpack_require__(30); -var _pdf_link_service = __webpack_require__(21); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationLayerBuilder = /*#__PURE__*/function () { - function AnnotationLayerBuilder(_ref) { - var pageDiv = _ref.pageDiv, - pdfPage = _ref.pdfPage, - linkService = _ref.linkService, - downloadManager = _ref.downloadManager, - _ref$imageResourcesPa = _ref.imageResourcesPath, - imageResourcesPath = _ref$imageResourcesPa === void 0 ? "" : _ref$imageResourcesPa, - _ref$renderInteractiv = _ref.renderInteractiveForms, - renderInteractiveForms = _ref$renderInteractiv === void 0 ? false : _ref$renderInteractiv, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, AnnotationLayerBuilder); +var _pdf_link_service = __webpack_require__(19); +class AnnotationLayerBuilder { + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderInteractiveForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = false, + hasJSActionsPromise = null, + mouseState = null + }) { this.pageDiv = pageDiv; this.pdfPage = pdfPage; this.linkService = linkService; @@ -11945,146 +11262,249 @@ var AnnotationLayerBuilder = /*#__PURE__*/function () { this.imageResourcesPath = imageResourcesPath; this.renderInteractiveForms = renderInteractiveForms; this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise; + this._mouseState = mouseState; this.div = null; this._cancelled = false; } - _createClass(AnnotationLayerBuilder, [{ - key: "render", - value: function render(viewport) { - var _this = this; - - var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display"; - this.pdfPage.getAnnotations({ - intent: intent - }).then(function (annotations) { - if (_this._cancelled) { - return; - } - - var parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: _this.div, - annotations: annotations, - page: _this.pdfPage, - imageResourcesPath: _this.imageResourcesPath, - renderInteractiveForms: _this.renderInteractiveForms, - linkService: _this.linkService, - downloadManager: _this.downloadManager - }; - - if (_this.div) { - _pdfjsLib.AnnotationLayer.update(parameters); - } else { - if (annotations.length === 0) { - return; - } - - _this.div = document.createElement("div"); - _this.div.className = "annotationLayer"; - - _this.pageDiv.appendChild(_this.div); - - parameters.div = _this.div; - - _pdfjsLib.AnnotationLayer.render(parameters); - - _this.l10n.translate(_this.div); - } - }); - } - }, { - key: "cancel", - value: function cancel() { - this._cancelled = true; - } - }, { - key: "hide", - value: function hide() { - if (!this.div) { + render(viewport, intent = "display") { + return Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise]).then(([annotations, hasJSActions = false]) => { + if (this._cancelled) { return; } - this.div.setAttribute("hidden", "true"); - } - }]); + if (annotations.length === 0) { + return; + } - return AnnotationLayerBuilder; -}(); + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotations, + page: this.pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + mouseState: this._mouseState + }; + + if (this.div) { + _pdfjsLib.AnnotationLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.div.className = "annotationLayer"; + this.pageDiv.appendChild(this.div); + parameters.div = this.div; + + _pdfjsLib.AnnotationLayer.render(parameters); + + this.l10n.translate(this.div); + } + }); + } + + cancel() { + this._cancelled = true; + } + + hide() { + if (!this.div) { + return; + } + + this.div.hidden = true; + } + +} exports.AnnotationLayerBuilder = AnnotationLayerBuilder; -var DefaultAnnotationLayerFactory = /*#__PURE__*/function () { - function DefaultAnnotationLayerFactory() { - _classCallCheck(this, DefaultAnnotationLayerFactory); +class DefaultAnnotationLayerFactory { + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = _l10n_utils.NullL10n, enableScripting = false, hasJSActionsPromise = null, mouseState = null) { + return new AnnotationLayerBuilder({ + pageDiv, + pdfPage, + imageResourcesPath, + renderInteractiveForms, + linkService: new _pdf_link_service.SimpleLinkService(), + l10n, + annotationStorage, + enableScripting, + hasJSActionsPromise, + mouseState + }); } - _createClass(DefaultAnnotationLayerFactory, [{ - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ""; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: new _pdf_link_service.SimpleLinkService(), - l10n: l10n - }); - } - }]); - - return DefaultAnnotationLayerFactory; -}(); +} exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; /***/ }), /* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.fixupLangCode = fixupLangCode; +exports.getL10nFallback = getL10nFallback; +exports.NullL10n = void 0; +const DEFAULT_L10N_STRINGS = { + of_pages: "of {{pagesCount}}", + page_of_pages: "({{pageNumber}} of {{pagesCount}})", + document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)", + document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)", + document_properties_date_string: "{{date}}, {{time}}", + document_properties_page_size_unit_inches: "in", + document_properties_page_size_unit_millimeters: "mm", + document_properties_page_size_orientation_portrait: "portrait", + document_properties_page_size_orientation_landscape: "landscape", + document_properties_page_size_name_a3: "A3", + document_properties_page_size_name_a4: "A4", + document_properties_page_size_name_letter: "Letter", + document_properties_page_size_name_legal: "Legal", + document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})", + document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})", + document_properties_linearized_yes: "Yes", + document_properties_linearized_no: "No", + print_progress_percent: "{{progress}}%", + "toggle_sidebar.title": "Toggle Sidebar", + "toggle_sidebar_notification2.title": "Toggle Sidebar (document contains outline/attachments/layers)", + additional_layers: "Additional Layers", + page_landmark: "Page {{page}}", + thumb_page_title: "Page {{page}}", + thumb_page_canvas: "Thumbnail of Page {{page}}", + find_reached_top: "Reached top of document, continued from bottom", + find_reached_bottom: "Reached end of document, continued from top", + "find_match_count[one]": "{{current}} of {{total}} match", + "find_match_count[other]": "{{current}} of {{total}} matches", + "find_match_count_limit[one]": "More than {{limit}} match", + "find_match_count_limit[other]": "More than {{limit}} matches", + find_not_found: "Phrase not found", + error_version_info: "PDF.js v{{version}} (build: {{build}})", + error_message: "Message: {{message}}", + error_stack: "Stack: {{stack}}", + error_file: "File: {{file}}", + error_line: "Line: {{line}}", + rendering_error: "An error occurred while rendering the page.", + page_scale_width: "Page Width", + page_scale_fit: "Page Fit", + page_scale_auto: "Automatic Zoom", + page_scale_actual: "Actual Size", + page_scale_percent: "{{scale}}%", + loading: "Loading…", + loading_error: "An error occurred while loading the PDF.", + invalid_file_error: "Invalid or corrupted PDF file.", + missing_file_error: "Missing PDF file.", + unexpected_response_error: "Unexpected server response.", + printing_not_supported: "Warning: Printing is not fully supported by this browser.", + printing_not_ready: "Warning: The PDF is not fully loaded for printing.", + web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts." +}; + +function getL10nFallback(key, args) { + switch (key) { + case "find_match_count": + key = `find_match_count[${args.total === 1 ? "one" : "other"}]`; + break; + + case "find_match_count_limit": + key = `find_match_count_limit[${args.limit === 1 ? "one" : "other"}]`; + break; + } + + return DEFAULT_L10N_STRINGS[key] || ""; +} + +const PARTIAL_LANG_CODES = { + en: "en-US", + es: "es-ES", + fy: "fy-NL", + ga: "ga-IE", + gu: "gu-IN", + hi: "hi-IN", + hy: "hy-AM", + nb: "nb-NO", + ne: "ne-NP", + nn: "nn-NO", + pa: "pa-IN", + pt: "pt-PT", + sv: "sv-SE", + zh: "zh-CN" +}; + +function fixupLangCode(langCode) { + return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode; +} + +function formatL10nValue(text, args) { + if (!args) { + return text; + } + + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { + return name in args ? args[name] : "{{" + name + "}}"; + }); +} + +const NullL10n = { + async getLanguage() { + return "en-us"; + }, + + async getDirection() { + return "ltr"; + }, + + async get(key, args = null, fallback = getL10nFallback(key, args)) { + return formatL10nValue(fallback, args); + }, + + async translate(element) {} + +}; +exports.NullL10n = NullL10n; + +/***/ }), +/* 31 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFPageView = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _l10n_utils = __webpack_require__(30); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -var _viewer_compatibility = __webpack_require__(8); +var _viewer_compatibility = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +const MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; - -var PDFPageView = /*#__PURE__*/function () { - function PDFPageView(options) { - _classCallCheck(this, PDFPageView); - - var container = options.container; - var defaultViewport = options.defaultViewport; +class PDFPageView { + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; this.id = options.id; this.renderingId = "page" + this.id; this.pdfPage = null; @@ -12093,656 +11513,863 @@ var PDFPageView = /*#__PURE__*/function () { this.scale = options.scale || _ui_utils.DEFAULT_SCALE; this.viewport = defaultViewport; this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; this.hasRestrictedScaling = false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; this.imageResourcesPath = options.imageResourcesPath || ""; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.renderInteractiveForms = options.renderInteractiveForms !== false; this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = options.eventBus; this.renderingQueue = options.renderingQueue; this.textLayerFactory = options.textLayerFactory; this.annotationLayerFactory = options.annotationLayerFactory; + this.xfaLayerFactory = options.xfaLayerFactory; + this.structTreeLayerFactory = options.structTreeLayerFactory; this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.enableWebGL = options.enableWebGL || false; - this.l10n = options.l10n || _ui_utils.NullL10n; + this.l10n = options.l10n || _l10n_utils.NullL10n; this.paintTask = null; this.paintedViewportMap = new WeakMap(); this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; this.resume = null; - this.error = null; + this._renderError = null; this.annotationLayer = null; this.textLayer = null; this.zoomLayer = null; - var div = document.createElement("div"); + this.xfaLayer = null; + this.structTreeLayer = null; + const div = document.createElement("div"); div.className = "page"; div.style.width = Math.floor(this.viewport.width) + "px"; div.style.height = Math.floor(this.viewport.height) + "px"; div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + this.l10n.get("page_landmark", { + page: this.id + }).then(msg => { + div.setAttribute("aria-label", msg); + }); this.div = div; container.appendChild(div); } - _createClass(PDFPageView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + this.reset(); + } + + destroy() { + this.reset(); + + if (this.pdfPage) { + this.pdfPage.cleanup(); + } + } + + async _renderAnnotationLayer() { + let error = null; + + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error }); - this.stats = pdfPage.stats; - this.reset(); } - }, { - key: "destroy", - value: function destroy() { - this.reset(); + } - if (this.pdfPage) { - this.pdfPage.cleanup(); - } + async _renderXfaLayer() { + let error = null; + + try { + await this.xfaLayer.render(this.viewport, "display"); + } catch (ex) { + error = ex; + } finally { + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error + }); } - }, { - key: "_resetZoomLayer", - value: function _resetZoomLayer() { - var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + } - if (!this.zoomLayer) { - return; - } - - var zoomLayerCanvas = this.zoomLayer.firstChild; - this.paintedViewportMap["delete"](zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - - if (removeFromDOM) { - this.zoomLayer.remove(); - } - - this.zoomLayer = null; + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; } - }, { - key: "reset", - value: function reset() { - var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.cancelRendering(keepAnnotations); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - var div = this.div; - div.style.width = Math.floor(this.viewport.width) + "px"; - div.style.height = Math.floor(this.viewport.height) + "px"; - var childNodes = div.childNodes; - var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; - var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null; - for (var i = childNodes.length - 1; i >= 0; i--) { - var node = childNodes[i]; + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; - if (currentZoomLayerNode === node || currentAnnotationNode === node) { + if (removeFromDOM) { + this.zoomLayer.remove(); + } + + this.zoomLayer = null; + } + + reset({ + keepZoomLayer = false, + keepAnnotationLayer = false, + keepXfaLayer = false + } = {}) { + this.cancelRendering({ + keepAnnotationLayer, + keepXfaLayer + }); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + const div = this.div; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, + xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null; + + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case xfaLayerNode: continue; - } - - div.removeChild(node); } - div.removeAttribute("data-loaded"); - - if (currentAnnotationNode) { - this.annotationLayer.hide(); - } else if (this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - } - - if (!currentZoomLayerNode) { - if (this.canvas) { - this.paintedViewportMap["delete"](this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - this._resetZoomLayer(); - } - - if (this.svg) { - this.paintedViewportMap["delete"](this.svg); - delete this.svg; - } - - this.loadingIconDiv = document.createElement("div"); - this.loadingIconDiv.className = "loadingIcon"; - div.appendChild(this.loadingIconDiv); + div.removeChild(node); } - }, { - key: "update", - value: function update(scale, rotation) { - this.scale = scale || this.scale; - if (typeof rotation !== "undefined") { - this.rotation = rotation; + div.removeAttribute("data-loaded"); + + if (annotationLayerNode) { + this.annotationLayer.hide(); + } + + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + + if (!zoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; } - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation - }); + this._resetZoomLayer(); + } - if (this.svg) { - this.cssTransform(this.svg, true); + if (this.svg) { + this.paintedViewportMap.delete(this.svg); + delete this.svg; + } + + this.loadingIconDiv = document.createElement("div"); + this.loadingIconDiv.className = "loadingIcon"; + this.loadingIconDiv.setAttribute("role", "img"); + this.l10n.get("loading").then(msg => { + this.loadingIconDiv?.setAttribute("aria-label", msg); + }); + div.appendChild(this.loadingIconDiv); + } + + update(scale, rotation, optionalContentConfigPromise = null) { + this.scale = scale || this.scale; + + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + + if (this.svg) { + this.cssTransform({ + target: this.svg, + redrawAnnotationLayer: true, + redrawXfaLayer: true + }); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + + let isScalingRestricted = false; + + if (this.canvas && this.maxCanvasPixels > 0) { + const outputScale = this.outputScale; + + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + + if (this.canvas) { + if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawXfaLayer: true + }); this.eventBus.dispatch("pagerendered", { source: this, pageNumber: this.id, cssTransform: true, - timestamp: performance.now() + timestamp: performance.now(), + error: this._renderError }); return; } - var isScalingRestricted = false; + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } - if (this.canvas && this.maxCanvasPixels > 0) { - var outputScale = this.outputScale; + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } - if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { - isScalingRestricted = true; - } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepXfaLayer: true + }); + } + + cancelRendering({ + keepAnnotationLayer = false, + keepXfaLayer = false + } = {}) { + if (this.paintTask) { + this.paintTask.cancel(); + this.paintTask = null; + } + + this.resume = null; + + if (this.textLayer) { + this.textLayer.cancel(); + this.textLayer = null; + } + + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + this.xfaLayer.cancel(); + this.xfaLayer = null; + } + + if (this._onTextLayerRendered) { + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); + + this._onTextLayerRendered = null; + } + } + + cssTransform({ + target, + redrawAnnotationLayer = false, + redrawXfaLayer = false + }) { + const width = this.viewport.width; + const height = this.viewport.height; + const div = this.div; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; + const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + + if (absRotation === 90 || absRotation === 270) { + scaleX = height / width; + scaleY = width / height; + } + + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + + if (this.textLayer) { + const textLayerViewport = this.textLayer.viewport; + const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; + const textAbsRotation = Math.abs(textRelativeRotation); + let scale = width / textLayerViewport.width; + + if (textAbsRotation === 90 || textAbsRotation === 270) { + scale = width / textLayerViewport.height; } - if (this.canvas) { - if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { - this.cssTransform(this.canvas, true); - this.eventBus.dispatch("pagerendered", { - source: this, - pageNumber: this.id, - cssTransform: true, - timestamp: performance.now() - }); + const textLayerDiv = this.textLayer.textLayerDiv; + let transX, transY; + + switch (textAbsRotation) { + case 0: + transX = transY = 0; + break; + + case 90: + transX = 0; + transY = "-" + textLayerDiv.style.height; + break; + + case 180: + transX = "-" + textLayerDiv.style.width; + transY = "-" + textLayerDiv.style.height; + break; + + case 270: + transX = "-" + textLayerDiv.style.width; + transY = 0; + break; + + default: + console.error("Bad rotation value."); + break; + } + + textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`; + textLayerDiv.style.transformOrigin = "0% 0%"; + } + + if (redrawAnnotationLayer && this.annotationLayer) { + this._renderAnnotationLayer(); + } + + if (redrawXfaLayer && this.xfaLayer) { + this._renderXfaLayer(); + } + } + + get width() { + return this.viewport.width; + } + + get height() { + return this.viewport.height; + } + + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + + const { + div, + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; + } + + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.style.width = div.style.width; + canvasWrapper.style.height = div.style.height; + canvasWrapper.classList.add("canvasWrapper"); + + if (this.annotationLayer?.div) { + div.insertBefore(canvasWrapper, this.annotationLayer.div); + } else { + div.appendChild(canvasWrapper); + } + + let textLayer = null; + + if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { + const textLayerDiv = document.createElement("div"); + textLayerDiv.className = "textLayer"; + textLayerDiv.style.width = canvasWrapper.style.width; + textLayerDiv.style.height = canvasWrapper.style.height; + + if (this.annotationLayer?.div) { + div.insertBefore(textLayerDiv, this.annotationLayer.div); + } else { + div.appendChild(textLayerDiv); + } + + textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus); + } + + this.textLayer = textLayer; + + if (this.xfaLayer?.div) { + div.appendChild(this.xfaLayer.div); + } + + let renderContinueCallback = null; + + if (this.renderingQueue) { + renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + return; } - if (!this.zoomLayer && !this.canvas.hasAttribute("hidden")) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = "absolute"; - } - } - - if (this.zoomLayer) { - this.cssTransform(this.zoomLayer.firstChild); - } - - this.reset(true, true); + cont(); + }; } - }, { - key: "cancelRendering", - value: function cancelRendering() { - var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.paintTask) { - this.paintTask.cancel(); + const finishPaintTask = async (error = null) => { + if (paintTask === this.paintTask) { this.paintTask = null; } - this.resume = null; - - if (this.textLayer) { - this.textLayer.cancel(); - this.textLayer = null; + if (error instanceof _pdfjsLib.RenderingCancelledException) { + this._renderError = null; + return; } - if (!keepAnnotations && this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; + this._renderError = error; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; } + + this._resetZoomLayer(true); + + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this._renderError + }); + + if (error) { + throw error; + } + }; + + const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + const resultPromise = paintTask.promise.then(() => { + return finishPaintTask(null).then(() => { + if (textLayer) { + const readableStream = pdfPage.streamTextContent({ + normalizeWhitespace: true, + includeMarkedContent: true + }); + textLayer.setTextContentStream(readableStream); + textLayer.render(); + } + }); + }, function (reason) { + return finishPaintTask(reason); + }); + + if (this.annotationLayerFactory) { + if (!this.annotationLayer) { + this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, null, this.imageResourcesPath, this.renderInteractiveForms, this.l10n, null, null, null); + } + + this._renderAnnotationLayer(); } - }, { - key: "cssTransform", - value: function cssTransform(target) { - var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var width = this.viewport.width; - var height = this.viewport.height; - var div = this.div; - target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; - target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; - var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; - var absRotation = Math.abs(relativeRotation); - var scaleX = 1, - scaleY = 1; - if (absRotation === 90 || absRotation === 270) { - scaleX = height / width; - scaleY = width / height; + if (this.xfaLayerFactory) { + if (!this.xfaLayer) { + this.xfaLayer = this.xfaLayerFactory.createXfaLayerBuilder(div, pdfPage, null); } - var cssTransform = "rotate(" + relativeRotation + "deg) " + "scale(" + scaleX + "," + scaleY + ")"; - target.style.transform = cssTransform; - - if (this.textLayer) { - var textLayerViewport = this.textLayer.viewport; - var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; - var textAbsRotation = Math.abs(textRelativeRotation); - var scale = width / textLayerViewport.width; - - if (textAbsRotation === 90 || textAbsRotation === 270) { - scale = width / textLayerViewport.height; - } - - var textLayerDiv = this.textLayer.textLayerDiv; - var transX, transY; - - switch (textAbsRotation) { - case 0: - transX = transY = 0; - break; - - case 90: - transX = 0; - transY = "-" + textLayerDiv.style.height; - break; - - case 180: - transX = "-" + textLayerDiv.style.width; - transY = "-" + textLayerDiv.style.height; - break; - - case 270: - transX = "-" + textLayerDiv.style.width; - transY = 0; - break; - - default: - console.error("Bad rotation value."); - break; - } - - textLayerDiv.style.transform = "rotate(" + textAbsRotation + "deg) " + "scale(" + scale + ", " + scale + ") " + "translate(" + transX + ", " + transY + ")"; - textLayerDiv.style.transformOrigin = "0% 0%"; - } - - if (redrawAnnotations && this.annotationLayer) { - this.annotationLayer.render(this.viewport, "display"); - } + this._renderXfaLayer(); } - }, { - key: "getPagePoint", - value: function getPagePoint(x, y) { - return this.viewport.convertToPdfPoint(x, y); - } - }, { - key: "draw", - value: function draw() { - var _this = this; - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error("Must be in new state before drawing"); - this.reset(); - } - - var div = this.div, - pdfPage = this.pdfPage; - - if (!pdfPage) { - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - if (this.loadingIconDiv) { - div.removeChild(this.loadingIconDiv); - delete this.loadingIconDiv; + if (this.structTreeLayerFactory && this.textLayer && this.canvas) { + this._onTextLayerRendered = event => { + if (event.pageNumber !== this.id) { + return; } - return Promise.reject(new Error("pdfPage is not loaded")); - } + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var canvasWrapper = document.createElement("div"); - canvasWrapper.style.width = div.style.width; - canvasWrapper.style.height = div.style.height; - canvasWrapper.classList.add("canvasWrapper"); + this._onTextLayerRendered = null; - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(canvasWrapper, this.annotationLayer.div); - } else { - div.appendChild(canvasWrapper); - } - - var textLayer = null; - - if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { - var textLayerDiv = document.createElement("div"); - textLayerDiv.className = "textLayer"; - textLayerDiv.style.width = canvasWrapper.style.width; - textLayerDiv.style.height = canvasWrapper.style.height; - - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(textLayerDiv, this.annotationLayer.div); - } else { - div.appendChild(textLayerDiv); + if (!this.canvas) { + return; } - textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus); - } - - this.textLayer = textLayer; - var renderContinueCallback = null; - - if (this.renderingQueue) { - renderContinueCallback = function renderContinueCallback(cont) { - if (!_this.renderingQueue.isHighestPriority(_this)) { - _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this.resume = function () { - _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - + this.pdfPage.getStructTree().then(tree => { + if (!tree) { return; } - cont(); - }; - } - - var finishPaintTask = /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(error) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (paintTask === _this.paintTask) { - _this.paintTask = null; - } - - if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { - _context.next = 4; - break; - } - - _this.error = null; - return _context.abrupt("return"); - - case 4: - _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - if (_this.loadingIconDiv) { - div.removeChild(_this.loadingIconDiv); - delete _this.loadingIconDiv; - } - - _this._resetZoomLayer(true); - - _this.error = error; - _this.stats = pdfPage.stats; - - _this.eventBus.dispatch("pagerendered", { - source: _this, - pageNumber: _this.id, - cssTransform: false, - timestamp: performance.now() - }); - - if (!error) { - _context.next = 12; - break; - } - - throw error; - - case 12: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function finishPaintTask(_x) { - return _ref.apply(this, arguments); - }; - }(); - - var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); - paintTask.onRenderContinue = renderContinueCallback; - this.paintTask = paintTask; - var resultPromise = paintTask.promise.then(function () { - return finishPaintTask(null).then(function () { - if (textLayer) { - var readableStream = pdfPage.streamTextContent({ - normalizeWhitespace: true - }); - textLayer.setTextContentStream(readableStream); - textLayer.render(); + if (!this.canvas) { + return; } + + const treeDom = this.structTreeLayer.render(tree); + treeDom.classList.add("structTree"); + this.canvas.appendChild(treeDom); }); - }, function (reason) { - return finishPaintTask(reason); - }); + }; - if (this.annotationLayerFactory) { - if (!this.annotationLayer) { - this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n); - } + this.eventBus._on("textlayerrendered", this._onTextLayerRendered); - this.annotationLayer.render(this.viewport, "display"); - } - - div.setAttribute("data-loaded", true); - this.eventBus.dispatch("pagerender", { - source: this, - pageNumber: this.id - }); - return resultPromise; + this.structTreeLayer = this.structTreeLayerFactory.createStructTreeLayerBuilder(pdfPage); } - }, { - key: "paintOnCanvas", - value: function paintOnCanvas(canvasWrapper) { - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - var result = { - promise: renderCapability.promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - renderTask.cancel(); - } - }; - var viewport = this.viewport; - var canvas = document.createElement("canvas"); - this.l10n.get("page_canvas", { - page: this.id - }, "Page {{page}}").then(function (msg) { - canvas.setAttribute("aria-label", msg); - }); - canvas.setAttribute("hidden", "hidden"); - var isCanvasHidden = true; - var showCanvas = function showCanvas() { - if (isCanvasHidden) { - canvas.removeAttribute("hidden"); - isCanvasHidden = false; - } - }; + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } - canvasWrapper.appendChild(canvas); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext("2d", { - alpha: false - }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - this.outputScale = outputScale; + paintOnCanvas(canvasWrapper) { + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + const result = { + promise: renderCapability.promise, - if (this.useOnlyCssZoom) { - var actualSizeViewport = viewport.clone({ - scale: _ui_utils.CSS_UNITS - }); - outputScale.sx *= actualSizeViewport.width / viewport.width; - outputScale.sy *= actualSizeViewport.height / viewport.height; - outputScale.scaled = true; + onRenderContinue(cont) { + cont(); + }, + + cancel() { + renderTask.cancel(); } - if (this.maxCanvasPixels > 0) { - var pixelsInViewport = viewport.width * viewport.height; - var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + }; + const viewport = this.viewport; + const canvas = document.createElement("canvas"); + canvas.hidden = true; + let isCanvasHidden = true; - if (outputScale.sx > maxScale || outputScale.sy > maxScale) { - outputScale.sx = maxScale; - outputScale.sy = maxScale; - outputScale.scaled = true; - this.hasRestrictedScaling = true; - } else { - this.hasRestrictedScaling = false; - } + const showCanvas = function () { + if (isCanvasHidden) { + canvas.hidden = false; + isCanvasHidden = false; } + }; - var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); - var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); - canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); - canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); - canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; - canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; - this.paintedViewportMap.set(canvas, viewport); - var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; - var renderContext = { - canvasContext: ctx, - transform: transform, - viewport: this.viewport, - enableWebGL: this.enableWebGL, - renderInteractiveForms: this.renderInteractiveForms - }; - var renderTask = this.pdfPage.render(renderContext); + canvasWrapper.appendChild(canvas); + this.canvas = canvas; + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + this.outputScale = outputScale; - renderTask.onContinue = function (cont) { - showCanvas(); - - if (result.onRenderContinue) { - result.onRenderContinue(cont); - } else { - cont(); - } - }; - - renderTask.promise.then(function () { - showCanvas(); - renderCapability.resolve(undefined); - }, function (error) { - showCanvas(); - renderCapability.reject(error); - }); - return result; - } - }, { - key: "paintOnSvg", - value: function paintOnSvg(wrapper) { - var _this2 = this; - - var cancelled = false; - - var ensureNotCancelled = function ensureNotCancelled() { - if (cancelled) { - throw new _pdfjsLib.RenderingCancelledException("Rendering cancelled, page ".concat(_this2.id), "svg"); - } - }; - - var pdfPage = this.pdfPage; - var actualSizeViewport = this.viewport.clone({ + if (this.useOnlyCssZoom) { + const actualSizeViewport = viewport.clone({ scale: _ui_utils.CSS_UNITS }); - var promise = pdfPage.getOperatorList().then(function (opList) { - ensureNotCancelled(); - var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); - return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) { - ensureNotCancelled(); - _this2.svg = svg; - - _this2.paintedViewportMap.set(svg, actualSizeViewport); - - svg.style.width = wrapper.style.width; - svg.style.height = wrapper.style.height; - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - wrapper.appendChild(svg); - }); - }); - return { - promise: promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - cancelled = true; - } - }; + outputScale.sx *= actualSizeViewport.width / viewport.width; + outputScale.sy *= actualSizeViewport.height / viewport.height; + outputScale.scaled = true; } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - this.pageLabel = typeof label === "string" ? label : null; - if (this.pageLabel !== null) { - this.div.setAttribute("data-page-label", this.pageLabel); + if (this.maxCanvasPixels > 0) { + const pixelsInViewport = viewport.width * viewport.height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + outputScale.scaled = true; + this.hasRestrictedScaling = true; } else { - this.div.removeAttribute("data-page-label"); + this.hasRestrictedScaling = false; } } - }, { - key: "width", - get: function get() { - return this.viewport.width; - } - }, { - key: "height", - get: function get() { - return this.viewport.height; - } - }]); - return PDFPageView; -}(); + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; + canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; + this.paintedViewportMap.set(canvas, viewport); + const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; + const renderContext = { + canvasContext: ctx, + transform, + viewport: this.viewport, + renderInteractiveForms: this.renderInteractiveForms, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.pdfPage.render(renderContext); + + renderTask.onContinue = function (cont) { + showCanvas(); + + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(undefined); + }, function (error) { + showCanvas(); + renderCapability.reject(error); + }); + return result; + } + + paintOnSvg(wrapper) { + let cancelled = false; + + const ensureNotCancelled = () => { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); + } + }; + + const pdfPage = this.pdfPage; + const actualSizeViewport = this.viewport.clone({ + scale: _ui_utils.CSS_UNITS + }); + const promise = pdfPage.getOperatorList().then(opList => { + ensureNotCancelled(); + const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); + return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { + ensureNotCancelled(); + this.svg = svg; + this.paintedViewportMap.set(svg, actualSizeViewport); + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + wrapper.appendChild(svg); + }); + }); + return { + promise, + + onRenderContinue(cont) { + cont(); + }, + + cancel() { + cancelled = true; + } + + }; + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + +} exports.PDFPageView = PDFPageView; /***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 32 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0; +})); +exports.StructTreeLayerBuilder = exports.DefaultStructTreeLayerFactory = void 0; +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; -var _ui_utils = __webpack_require__(5); +class StructTreeLayerBuilder { + constructor({ + pdfPage + }) { + this.pdfPage = pdfPage; + } -var _pdfjsLib = __webpack_require__(7); + render(structTree) { + return this._walk(structTree); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + _setAttributes(structElement, htmlElement) { + if (structElement.alt !== undefined) { + htmlElement.setAttribute("aria-label", structElement.alt); + } -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + if (structElement.id !== undefined) { + htmlElement.setAttribute("aria-owns", structElement.id); + } + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + _walk(node) { + if (!node) { + return null; + } -var EXPAND_DIVS_TIMEOUT = 300; + const element = document.createElement("span"); -var TextLayerBuilder = /*#__PURE__*/function () { - function TextLayerBuilder(_ref) { - var textLayerDiv = _ref.textLayerDiv, - eventBus = _ref.eventBus, - pageIndex = _ref.pageIndex, - viewport = _ref.viewport, - _ref$findController = _ref.findController, - findController = _ref$findController === void 0 ? null : _ref$findController, - _ref$enhanceTextSelec = _ref.enhanceTextSelection, - enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec; + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); - _classCallCheck(this, TextLayerBuilder); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); + } + } + this._setAttributes(node, element); + + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this._setAttributes(node.children[0], element); + } else { + for (const kid of node.children) { + element.appendChild(this._walk(kid)); + } + } + } + + return element; + } + +} + +exports.StructTreeLayerBuilder = StructTreeLayerBuilder; + +class DefaultStructTreeLayerFactory { + createStructTreeLayerBuilder(pdfPage) { + return new StructTreeLayerBuilder({ + pdfPage + }); + } + +} + +exports.DefaultStructTreeLayerFactory = DefaultStructTreeLayerFactory; + +/***/ }), +/* 33 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerBuilder = exports.DefaultTextLayerFactory = void 0; + +var _pdfjsLib = __webpack_require__(5); + +const EXPAND_DIVS_TIMEOUT = 300; + +class TextLayerBuilder { + constructor({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController = null, + enhanceTextSelection = false + }) { this.textLayerDiv = textLayerDiv; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = eventBus; this.textContent = null; this.textContentItemsStr = []; this.textContentStream = null; @@ -12760,398 +12387,470 @@ var TextLayerBuilder = /*#__PURE__*/function () { this._bindMouse(); } - _createClass(TextLayerBuilder, [{ - key: "_finishRendering", - value: function _finishRendering() { - this.renderingDone = true; + _finishRendering() { + this.renderingDone = true; - if (!this.enhanceTextSelection) { - var endOfContent = document.createElement("div"); - endOfContent.className = "endOfContent"; - this.textLayerDiv.appendChild(endOfContent); - } - - this.eventBus.dispatch("textlayerrendered", { - source: this, - pageNumber: this.pageNumber, - numTextDivs: this.textDivs.length - }); + if (!this.enhanceTextSelection) { + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.textLayerDiv.appendChild(endOfContent); } - }, { - key: "render", - value: function render() { - var _this = this; - var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.pageNumber, + numTextDivs: this.textDivs.length + }); + } - if (!(this.textContent || this.textContentStream) || this.renderingDone) { - return; - } - - this.cancel(); - this.textDivs = []; - var textLayerFrag = document.createDocumentFragment(); - this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ - textContent: this.textContent, - textContentStream: this.textContentStream, - container: textLayerFrag, - viewport: this.viewport, - textDivs: this.textDivs, - textContentItemsStr: this.textContentItemsStr, - timeout: timeout, - enhanceTextSelection: this.enhanceTextSelection - }); - this.textLayerRenderTask.promise.then(function () { - _this.textLayerDiv.appendChild(textLayerFrag); - - _this._finishRendering(); - - _this._updateMatches(); - }, function (reason) {}); - - if (!this._onUpdateTextLayerMatches) { - this._onUpdateTextLayerMatches = function (evt) { - if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) { - _this._updateMatches(); - } - }; - - this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); - } + render(timeout = 0) { + if (!(this.textContent || this.textContentStream) || this.renderingDone) { + return; } - }, { - key: "cancel", - value: function cancel() { - if (this.textLayerRenderTask) { - this.textLayerRenderTask.cancel(); - this.textLayerRenderTask = null; - } - if (this._onUpdateTextLayerMatches) { - this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + this.cancel(); + this.textDivs = []; + const textLayerFrag = document.createDocumentFragment(); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContent: this.textContent, + textContentStream: this.textContentStream, + container: textLayerFrag, + viewport: this.viewport, + textDivs: this.textDivs, + textContentItemsStr: this.textContentItemsStr, + timeout, + enhanceTextSelection: this.enhanceTextSelection + }); + this.textLayerRenderTask.promise.then(() => { + this.textLayerDiv.appendChild(textLayerFrag); - this._onUpdateTextLayerMatches = null; - } - } - }, { - key: "setTextContentStream", - value: function setTextContentStream(readableStream) { - this.cancel(); - this.textContentStream = readableStream; - } - }, { - key: "setTextContent", - value: function setTextContent(textContent) { - this.cancel(); - this.textContent = textContent; - } - }, { - key: "_convertMatches", - value: function _convertMatches(matches, matchesLength) { - if (!matches) { - return []; - } + this._finishRendering(); - var findController = this.findController, - textContentItemsStr = this.textContentItemsStr; - var i = 0, - iIndex = 0; - var end = textContentItemsStr.length - 1; - var queryLen = findController.state.query.length; - var result = []; + this._updateMatches(); + }, function (reason) {}); - for (var m = 0, mm = matches.length; m < mm; m++) { - var matchIdx = matches[m]; - - while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); } - - if (i === textContentItemsStr.length) { - console.error("Could not find a matching mapping"); - } - - var match = { - begin: { - divIdx: i, - offset: matchIdx - iIndex - } - }; - - if (matchesLength) { - matchIdx += matchesLength[m]; - } else { - matchIdx += queryLen; - } - - while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; - } - - match.end = { - divIdx: i, - offset: matchIdx - iIndex - }; - result.push(match); - } - - return result; - } - }, { - key: "_renderMatches", - value: function _renderMatches(matches) { - if (matches.length === 0) { - return; - } - - var findController = this.findController, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var isSelectedPage = pageIdx === findController.selected.pageIdx; - var selectedMatchIdx = findController.selected.matchIdx; - var highlightAll = findController.state.highlightAll; - var prevEnd = null; - var infinity = { - divIdx: -1, - offset: undefined }; - function beginText(begin, className) { - var divIdx = begin.divIdx; - textDivs[divIdx].textContent = ""; - appendTextToDiv(divIdx, 0, begin.offset, className); + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + } + + cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + + this._onUpdateTextLayerMatches = null; + } + } + + setTextContentStream(readableStream) { + this.cancel(); + this.textContentStream = readableStream; + } + + setTextContent(textContent) { + this.cancel(); + this.textContent = textContent; + } + + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + + const { + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const result = []; + + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; } - function appendTextToDiv(divIdx, fromOffset, toOffset, className) { - var div = textDivs[divIdx]; - var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); - var node = document.createTextNode(content); + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } - if (className) { - var span = document.createElement("span"); - span.className = className; - span.appendChild(node); - div.appendChild(span); - return; + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + matchIdx += matchesLength[m]; + + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; + } + + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } + + return result; + } + + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + + const { + findController, + pageIdx, + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + return appendTextToDiv(divIdx, 0, begin.offset, className); + } + + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + const div = textDivs[divIdx]; + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + + if (className) { + const span = document.createElement("span"); + span.className = `${className} appended`; + span.appendChild(node); + div.appendChild(span); + return className.includes("selected") ? span.offsetLeft : 0; + } + + div.appendChild(node); + return 0; + } + + let i0 = selectedMatchIdx, + i1 = i0 + 1; + + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + let selectedLeft = 0; + + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); } - div.appendChild(node); + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); } - var i0 = selectedMatchIdx, - i1 = i0 + 1; + if (begin.divIdx === end.divIdx) { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + + beginText(end, "highlight end" + highlightSuffix); + } + + prevEnd = end; + + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + selectedLeft, + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + } + + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + + _updateMatches() { + if (!this.renderingDone) { + return; + } + + const { + findController, + matches, + pageIdx, + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + + for (let i = 0, ii = matches.length; i < ii; i++) { + const match = matches[i]; + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + + clearedUntilDivIdx = match.end.divIdx + 1; + } + + if (!findController?.highlightMatches) { + return; + } + + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + + this._renderMatches(this.matches); + } + + _bindMouse() { + const div = this.textLayerDiv; + let expandDivsTimer = null; + div.addEventListener("mousedown", evt => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(true); + + if (expandDivsTimer) { + clearTimeout(expandDivsTimer); + expandDivsTimer = null; + } - if (highlightAll) { - i0 = 0; - i1 = matches.length; - } else if (!isSelectedPage) { return; } - for (var i = i0; i < i1; i++) { - var match = matches[i]; - var begin = match.begin; - var end = match.end; - var isSelected = isSelectedPage && i === selectedMatchIdx; - var highlightSuffix = isSelected ? " selected" : ""; + const end = div.querySelector(".endOfContent"); - if (isSelected) { - findController.scrollMatchIntoView({ - element: textDivs[begin.divIdx], - pageIndex: pageIdx, - matchIndex: selectedMatchIdx - }); - } - - if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { - if (prevEnd !== null) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - - beginText(begin); - } else { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); - } - - if (begin.divIdx === end.divIdx) { - appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); - } else { - appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); - - for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { - textDivs[n0].className = "highlight middle" + highlightSuffix; - } - - beginText(end, "highlight end" + highlightSuffix); - } - - prevEnd = end; - } - - if (prevEnd) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - } - }, { - key: "_updateMatches", - value: function _updateMatches() { - if (!this.renderingDone) { + if (!end) { return; } - var findController = this.findController, - matches = this.matches, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var clearedUntilDivIdx = -1; + let adjustTop = evt.target !== div; + adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; - for (var i = 0, ii = matches.length; i < ii; i++) { - var match = matches[i]; - var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); - - for (var n = begin, end = match.end.divIdx; n <= end; n++) { - var div = textDivs[n]; - div.textContent = textContentItemsStr[n]; - div.className = ""; - } - - clearedUntilDivIdx = match.end.divIdx + 1; + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; } - if (!findController || !findController.highlightMatches) { + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + expandDivsTimer = setTimeout(() => { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(false); + } + + expandDivsTimer = null; + }, EXPAND_DIVS_TIMEOUT); return; } - var pageMatches = findController.pageMatches[pageIdx] || null; - var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; - this.matches = this._convertMatches(pageMatches, pageMatchesLength); + const end = div.querySelector(".endOfContent"); - this._renderMatches(this.matches); - } - }, { - key: "_bindMouse", - value: function _bindMouse() { - var _this2 = this; + if (!end) { + return; + } - var div = this.textLayerDiv; - var expandDivsTimer = null; - div.addEventListener("mousedown", function (evt) { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(true); + end.style.top = ""; + end.classList.remove("active"); + }); + } - if (expandDivsTimer) { - clearTimeout(expandDivsTimer); - expandDivsTimer = null; - } - - return; - } - - var end = div.querySelector(".endOfContent"); - - if (!end) { - return; - } - - var adjustTop = evt.target !== div; - adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; - - if (adjustTop) { - var divBounds = div.getBoundingClientRect(); - var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); - end.style.top = (r * 100).toFixed(2) + "%"; - } - - end.classList.add("active"); - }); - div.addEventListener("mouseup", function () { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - expandDivsTimer = setTimeout(function () { - if (_this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(false); - } - - expandDivsTimer = null; - }, EXPAND_DIVS_TIMEOUT); - return; - } - - var end = div.querySelector(".endOfContent"); - - if (!end) { - return; - } - - end.style.top = ""; - end.classList.remove("active"); - }); - } - }]); - - return TextLayerBuilder; -}(); +} exports.TextLayerBuilder = TextLayerBuilder; -var DefaultTextLayerFactory = /*#__PURE__*/function () { - function DefaultTextLayerFactory() { - _classCallCheck(this, DefaultTextLayerFactory); +class DefaultTextLayerFactory { + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new TextLayerBuilder({ + textLayerDiv, + pageIndex, + viewport, + enhanceTextSelection, + eventBus + }); } - _createClass(DefaultTextLayerFactory, [{ - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var eventBus = arguments.length > 4 ? arguments[4] : undefined; - return new TextLayerBuilder({ - textLayerDiv: textLayerDiv, - pageIndex: pageIndex, - viewport: viewport, - enhanceTextSelection: enhanceTextSelection, - eventBus: eventBus - }); - } - }]); - - return DefaultTextLayerFactory; -}(); +} exports.DefaultTextLayerFactory = DefaultTextLayerFactory; /***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 34 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.XfaLayerBuilder = exports.DefaultXfaLayerFactory = void 0; + +var _pdfjsLib = __webpack_require__(5); + +class XfaLayerBuilder { + constructor({ + pageDiv, + pdfPage, + xfaHtml, + annotationStorage + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.xfaHtml = xfaHtml; + this.annotationStorage = annotationStorage; + this.div = null; + this._cancelled = false; + } + + render(viewport, intent = "display") { + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfa: this.xfaHtml, + page: null, + annotationStorage: this.annotationStorage, + intent + }; + const div = document.createElement("div"); + this.pageDiv.appendChild(div); + parameters.div = div; + + _pdfjsLib.XfaLayer.render(parameters); + + return Promise.resolve(); + } + + return this.pdfPage.getXfa().then(xfa => { + if (this._cancelled) { + return; + } + + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfa, + page: this.pdfPage, + annotationStorage: this.annotationStorage, + intent + }; + + if (this.div) { + _pdfjsLib.XfaLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.pageDiv.appendChild(this.div); + parameters.div = this.div; + + _pdfjsLib.XfaLayer.render(parameters); + } + }).catch(error => { + console.error(error); + }); + } + + cancel() { + this._cancelled = true; + } + + hide() { + if (!this.div) { + return; + } + + this.div.hidden = true; + } + +} + +exports.XfaLayerBuilder = XfaLayerBuilder; + +class DefaultXfaLayerFactory { + createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null, xfaHtml = null) { + return new XfaLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage, + xfaHtml + }); + } + +} + +exports.DefaultXfaLayerFactory = DefaultXfaLayerFactory; + +/***/ }), +/* 35 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.SecondaryToolbar = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -var _pdf_cursor_tools = __webpack_require__(9); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_single_page_viewer = __webpack_require__(33); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SecondaryToolbar = /*#__PURE__*/function () { - function SecondaryToolbar(options, mainContainer, eventBus) { - var _this = this; - - _classCallCheck(this, SecondaryToolbar); +var _pdf_single_page_viewer = __webpack_require__(36); +class SecondaryToolbar { + constructor(options, mainContainer, eventBus) { this.toolbar = options.toolbar; this.toggleButton = options.toggleButton; this.toolbarButtonContainer = options.toolbarButtonContainer; @@ -13275,429 +12974,331 @@ var SecondaryToolbar = /*#__PURE__*/function () { this.eventBus._on("resize", this._setMaxHeight.bind(this)); - this.eventBus._on("baseviewerinit", function (evt) { + this.eventBus._on("baseviewerinit", evt => { if (evt.source instanceof _pdf_single_page_viewer.PDFSinglePageViewer) { - _this.toolbarButtonContainer.classList.add("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); + this.toolbarButtonContainer.classList.add("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } else { - _this.toolbarButtonContainer.classList.remove("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); + this.toolbarButtonContainer.classList.remove("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } }); } - _createClass(SecondaryToolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber) { - this.pageNumber = pageNumber; + get isOpen() { + return this.opened; + } - this._updateUIState(); - } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount) { - this.pagesCount = pagesCount; + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; - this._updateUIState(); - } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pagesCount = 0; + this._updateUIState(); + } - this._updateUIState(); + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; - this.eventBus.dispatch("secondarytoolbarreset", { - source: this - }); - } - }, { - key: "_updateUIState", - value: function _updateUIState() { - this.items.firstPage.disabled = this.pageNumber <= 1; - this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; - this.items.pageRotateCw.disabled = this.pagesCount === 0; - this.items.pageRotateCcw.disabled = this.pagesCount === 0; - } - }, { - key: "_bindClickListeners", - value: function _bindClickListeners() { - var _this2 = this; + this._updateUIState(); + } - this.toggleButton.addEventListener("click", this.toggle.bind(this)); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + reset() { + this.pageNumber = 0; + this.pagesCount = 0; - try { - var _loop = function _loop() { - var _step$value = _step.value, - element = _step$value.element, - eventName = _step$value.eventName, - close = _step$value.close, - eventDetails = _step$value.eventDetails; - element.addEventListener("click", function (evt) { - if (eventName !== null) { - var details = { - source: _this2 - }; + this._updateUIState(); - for (var property in eventDetails) { - details[property] = eventDetails[property]; - } + this.eventBus.dispatch("secondarytoolbarreset", { + source: this + }); + } - _this2.eventBus.dispatch(eventName, details); - } + _updateUIState() { + this.items.firstPage.disabled = this.pageNumber <= 1; + this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; + this.items.pageRotateCw.disabled = this.pagesCount === 0; + this.items.pageRotateCcw.disabled = this.pagesCount === 0; + } - if (close) { - _this2.close(); - } - }); - }; + _bindClickListeners() { + this.toggleButton.addEventListener("click", this.toggle.bind(this)); - for (var _iterator = this.buttons[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - _loop(); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; + for (const { + element, + eventName, + close, + eventDetails + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + const details = { + source: this + }; + + for (const property in eventDetails) { + details[property] = eventDetails[property]; } + + this.eventBus.dispatch(eventName, details); } - } - } - }, { - key: "_bindCursorToolsListener", - value: function _bindCursorToolsListener(buttons) { - this.eventBus._on("cursortoolchanged", function (_ref) { - var tool = _ref.tool; - buttons.cursorSelectToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.SELECT); - buttons.cursorHandToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.HAND); - }); - } - }, { - key: "_bindScrollModeListener", - value: function _bindScrollModeListener(buttons) { - var _this3 = this; - function scrollModeChanged(_ref2) { - var mode = _ref2.mode; - buttons.scrollVerticalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.VERTICAL); - buttons.scrollHorizontalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.HORIZONTAL); - buttons.scrollWrappedButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.WRAPPED); - var isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; - buttons.spreadNoneButton.disabled = isScrollModeHorizontal; - buttons.spreadOddButton.disabled = isScrollModeHorizontal; - buttons.spreadEvenButton.disabled = isScrollModeHorizontal; - } - - this.eventBus._on("scrollmodechanged", scrollModeChanged); - - this.eventBus._on("secondarytoolbarreset", function (evt) { - if (evt.source === _this3) { - scrollModeChanged({ - mode: _ui_utils.ScrollMode.VERTICAL - }); + if (close) { + this.close(); } }); } - }, { - key: "_bindSpreadModeListener", - value: function _bindSpreadModeListener(buttons) { - var _this4 = this; + } - function spreadModeChanged(_ref3) { - var mode = _ref3.mode; - buttons.spreadNoneButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.NONE); - buttons.spreadOddButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.ODD); - buttons.spreadEvenButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.EVEN); - } + _bindCursorToolsListener(buttons) { + this.eventBus._on("cursortoolchanged", function ({ + tool + }) { + buttons.cursorSelectToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.SELECT); + buttons.cursorHandToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.HAND); + }); + } - this.eventBus._on("spreadmodechanged", spreadModeChanged); - - this.eventBus._on("secondarytoolbarreset", function (evt) { - if (evt.source === _this4) { - spreadModeChanged({ - mode: _ui_utils.SpreadMode.NONE - }); - } - }); + _bindScrollModeListener(buttons) { + function scrollModeChanged({ + mode + }) { + buttons.scrollVerticalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.VERTICAL); + buttons.scrollHorizontalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.HORIZONTAL); + buttons.scrollWrappedButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.WRAPPED); + const isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; + buttons.spreadNoneButton.disabled = isScrollModeHorizontal; + buttons.spreadOddButton.disabled = isScrollModeHorizontal; + buttons.spreadEvenButton.disabled = isScrollModeHorizontal; } - }, { - key: "open", - value: function open() { - if (this.opened) { - return; + + this.eventBus._on("scrollmodechanged", scrollModeChanged); + + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL + }); } + }); + } - this.opened = true; - - this._setMaxHeight(); - - this.toggleButton.classList.add("toggled"); - this.toolbar.classList.remove("hidden"); + _bindSpreadModeListener(buttons) { + function spreadModeChanged({ + mode + }) { + buttons.spreadNoneButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.NONE); + buttons.spreadOddButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.ODD); + buttons.spreadEvenButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.EVEN); } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; + + this.eventBus._on("spreadmodechanged", spreadModeChanged); + + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + spreadModeChanged({ + mode: _ui_utils.SpreadMode.NONE + }); } + }); + } - this.opened = false; - this.toolbar.classList.add("hidden"); - this.toggleButton.classList.remove("toggled"); + open() { + if (this.opened) { + return; } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } + + this.opened = true; + + this._setMaxHeight(); + + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.toolbar.classList.remove("hidden"); + } + + close() { + if (!this.opened) { + return; } - }, { - key: "_setMaxHeight", - value: function _setMaxHeight() { - if (!this.opened) { - return; - } - this.containerHeight = this.mainContainer.clientHeight; + this.opened = false; + this.toolbar.classList.add("hidden"); + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + } - if (this.containerHeight === this.previousContainerHeight) { - return; - } - - this.toolbarButtonContainer.style.maxHeight = "".concat(this.containerHeight - _ui_utils.SCROLLBAR_PADDING, "px"); - this.previousContainerHeight = this.containerHeight; + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); } - }, { - key: "isOpen", - get: function get() { - return this.opened; - } - }]); + } - return SecondaryToolbar; -}(); + _setMaxHeight() { + if (!this.opened) { + return; + } + + this.containerHeight = this.mainContainer.clientHeight; + + if (this.containerHeight === this.previousContainerHeight) { + return; + } + + this.toolbarButtonContainer.style.maxHeight = `${this.containerHeight - _ui_utils.SCROLLBAR_PADDING}px`; + this.previousContainerHeight = this.containerHeight; + } + +} exports.SecondaryToolbar = SecondaryToolbar; /***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 36 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFSinglePageViewer = void 0; var _base_viewer = __webpack_require__(28); -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +class PDFSinglePageViewer extends _base_viewer.BaseViewer { + constructor(options) { + super(options); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFSinglePageViewer = /*#__PURE__*/function (_BaseViewer) { - _inherits(PDFSinglePageViewer, _BaseViewer); - - function PDFSinglePageViewer(options) { - var _this; - - _classCallCheck(this, PDFSinglePageViewer); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFSinglePageViewer).call(this, options)); - - _this.eventBus._on("pagesinit", function (evt) { - _this._ensurePageViewVisible(); + this.eventBus._on("pagesinit", evt => { + this._ensurePageViewVisible(); }); - - return _this; } - _createClass(PDFSinglePageViewer, [{ - key: "_resetView", - value: function _resetView() { - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_resetView", this).call(this); + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this._shadowViewer); + } - this._previousPageNumber = 1; - this._shadowViewer = document.createDocumentFragment(); + get _pageWidthScaleFactor() { + return 1; + } + + _resetView() { + super._resetView(); + + this._previousPageNumber = 1; + this._shadowViewer = document.createDocumentFragment(); + this._updateScrollDown = null; + } + + _ensurePageViewVisible() { + const pageView = this._pages[this._currentPageNumber - 1]; + const previousPageView = this._pages[this._previousPageNumber - 1]; + const viewerNodes = this.viewer.childNodes; + + switch (viewerNodes.length) { + case 0: + this.viewer.appendChild(pageView.div); + break; + + case 1: + if (viewerNodes[0] !== previousPageView.div) { + throw new Error("_ensurePageViewVisible: Unexpected previously visible page."); + } + + if (pageView === previousPageView) { + break; + } + + this._shadowViewer.appendChild(previousPageView.div); + + this.viewer.appendChild(pageView.div); + this.container.scrollTop = 0; + break; + + default: + throw new Error("_ensurePageViewVisible: Only one page should be visible at a time."); + } + + this._previousPageNumber = this._currentPageNumber; + } + + _scrollUpdate() { + if (this._updateScrollDown) { + this._updateScrollDown(); + } + + super._scrollUpdate(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (pageNumber) { + this._setCurrentPageNumber(pageNumber); + } + + const scrolledDown = this._currentPageNumber >= this._previousPageNumber; + + this._ensurePageViewVisible(); + + this.update(); + + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + + this._updateScrollDown = () => { + this.scroll.down = scrolledDown; this._updateScrollDown = null; - } - }, { - key: "_ensurePageViewVisible", - value: function _ensurePageViewVisible() { - var pageView = this._pages[this._currentPageNumber - 1]; - var previousPageView = this._pages[this._previousPageNumber - 1]; - var viewerNodes = this.viewer.childNodes; + }; + } - switch (viewerNodes.length) { - case 0: - this.viewer.appendChild(pageView.div); - break; + _getVisiblePages() { + return this._getCurrentVisiblePage(); + } - case 1: - if (viewerNodes[0] !== previousPageView.div) { - throw new Error("_ensurePageViewVisible: Unexpected previously visible page."); - } + _updateHelper(visiblePages) {} - if (pageView === previousPageView) { - break; - } + get _isScrollModeHorizontal() { + return (0, _pdfjsLib.shadow)(this, "_isScrollModeHorizontal", false); + } - this._shadowViewer.appendChild(previousPageView.div); + _updateScrollMode() {} - this.viewer.appendChild(pageView.div); - this.container.scrollTop = 0; - break; + _updateSpreadMode() {} - default: - throw new Error("_ensurePageViewVisible: Only one page should be visible at a time."); - } + _getPageAdvance() { + return 1; + } - this._previousPageNumber = this._currentPageNumber; - } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this._updateScrollDown) { - this._updateScrollDown(); - } - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollUpdate", this).call(this); - } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var _this2 = this; - - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - - if (pageNumber) { - this._setCurrentPageNumber(pageNumber); - } - - var scrolledDown = this._currentPageNumber >= this._previousPageNumber; - - this._ensurePageViewVisible(); - - this.update(); - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber - }); - - this._updateScrollDown = function () { - _this2.scroll.down = scrolledDown; - _this2._updateScrollDown = null; - }; - } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return this._getCurrentVisiblePage(); - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) {} - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() {} - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() {} - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "_setDocumentViewerElement", this._shadowViewer); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return (0, _pdfjsLib.shadow)(this, "_isScrollModeHorizontal", false); - } - }]); - - return PDFSinglePageViewer; -}(_base_viewer.BaseViewer); +} exports.PDFSinglePageViewer = PDFSinglePageViewer; /***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 37 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.Toolbar = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; -var SCALE_SELECT_CONTAINER_WIDTH = 140; -var SCALE_SELECT_WIDTH = 162; - -var Toolbar = /*#__PURE__*/function () { - function Toolbar(options, eventBus) { - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, Toolbar); +const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; +const SCALE_SELECT_CONTAINER_WIDTH = 140; +const SCALE_SELECT_WIDTH = 162; +class Toolbar { + constructor(options, eventBus, l10n) { this.toolbar = options.container; this.eventBus = eventBus; this.l10n = l10n; @@ -13746,1101 +13347,522 @@ var Toolbar = /*#__PURE__*/function () { this._bindListeners(); } - _createClass(Toolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber, pageLabel) { - this.pageNumber = pageNumber; - this.pageLabel = pageLabel; + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; - this._updateUIState(false); - } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount, hasPageLabels) { - this.pagesCount = pagesCount; - this.hasPageLabels = hasPageLabels; + this._updateUIState(false); + } - this._updateUIState(true); - } - }, { - key: "setPageScale", - value: function setPageScale(pageScaleValue, pageScale) { - this.pageScaleValue = (pageScaleValue || pageScale).toString(); - this.pageScale = pageScale; + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; - this._updateUIState(false); - } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pageLabel = null; - this.hasPageLabels = false; - this.pagesCount = 0; - this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; - this.pageScale = _ui_utils.DEFAULT_SCALE; + this._updateUIState(true); + } - this._updateUIState(true); + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; - this.updateLoadingIndicatorState(); - } - }, { - key: "_bindListeners", - value: function _bindListeners() { - var _this = this; + this._updateUIState(false); + } - var _this$items = this.items, - pageNumber = _this$items.pageNumber, - scaleSelect = _this$items.scaleSelect; - var self = this; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils.DEFAULT_SCALE; - try { - var _loop = function _loop() { - var _step$value = _step.value, - element = _step$value.element, - eventName = _step$value.eventName; - element.addEventListener("click", function (evt) { - if (eventName !== null) { - _this.eventBus.dispatch(eventName, { - source: _this - }); - } + this._updateUIState(true); + + this.updateLoadingIndicatorState(); + } + + _bindListeners() { + const { + pageNumber, + scaleSelect + } = this.items; + const self = this; + + for (const { + element, + eventName + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + this.eventBus.dispatch(eventName, { + source: this }); - }; - - for (var _iterator = this.buttons[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - _loop(); } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - pageNumber.addEventListener("click", function () { - this.select(); - }); - pageNumber.addEventListener("change", function () { - self.eventBus.dispatch("pagenumberchanged", { - source: self, - value: this.value - }); - }); - scaleSelect.addEventListener("change", function () { - if (this.value === "custom") { - return; - } - - self.eventBus.dispatch("scalechanged", { - source: self, - value: this.value - }); - }); - scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; - - this.eventBus._on("localized", function () { - _this._wasLocalized = true; - - _this._adjustScaleWidth(); - - _this._updateUIState(true); }); } - }, { - key: "_updateUIState", - value: function _updateUIState() { - var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (!this._wasLocalized) { + pageNumber.addEventListener("click", function () { + this.select(); + }); + pageNumber.addEventListener("change", function () { + self.eventBus.dispatch("pagenumberchanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("change", function () { + if (this.value === "custom") { return; } - var pageNumber = this.pageNumber, - pagesCount = this.pagesCount, - pageScaleValue = this.pageScaleValue, - pageScale = this.pageScale, - items = this.items; + self.eventBus.dispatch("scalechanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("click", function (evt) { + const target = evt.target; - if (resetNumPages) { - if (this.hasPageLabels) { - items.pageNumber.type = "text"; - } else { - items.pageNumber.type = "number"; - this.l10n.get("of_pages", { - pagesCount: pagesCount - }, "of {{pagesCount}}").then(function (msg) { - items.numPages.textContent = msg; - }); - } - - items.pageNumber.max = pagesCount; + if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { + this.blur(); } + }); + scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; + this.eventBus._on("localized", () => { + this._wasLocalized = true; + + this._adjustScaleWidth(); + + this._updateUIState(true); + }); + } + + _updateUIState(resetNumPages = false) { + if (!this._wasLocalized) { + return; + } + + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale, + items + } = this; + + if (resetNumPages) { if (this.hasPageLabels) { - items.pageNumber.value = this.pageLabel; - this.l10n.get("page_of_pages", { - pageNumber: pageNumber, - pagesCount: pagesCount - }, "({{pageNumber}} of {{pagesCount}})").then(function (msg) { + items.pageNumber.type = "text"; + } else { + items.pageNumber.type = "number"; + this.l10n.get("of_pages", { + pagesCount + }).then(msg => { items.numPages.textContent = msg; }); - } else { - items.pageNumber.value = pageNumber; } - items.previous.disabled = pageNumber <= 1; - items.next.disabled = pageNumber >= pagesCount; - items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; - items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; - var customScale = Math.round(pageScale * 10000) / 100; - this.l10n.get("page_scale_percent", { - scale: customScale - }, "{{scale}}%").then(function (msg) { - var predefinedValueFound = false; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + items.pageNumber.max = pagesCount; + } - try { - for (var _iterator2 = items.scaleSelect.options[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var option = _step2.value; - - if (option.value !== pageScaleValue) { - option.selected = false; - continue; - } - - option.selected = true; - predefinedValueFound = true; - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - if (!predefinedValueFound) { - items.customScaleOption.textContent = msg; - items.customScaleOption.selected = true; - } + if (this.hasPageLabels) { + items.pageNumber.value = this.pageLabel; + this.l10n.get("page_of_pages", { + pageNumber, + pagesCount + }).then(msg => { + items.numPages.textContent = msg; }); + } else { + items.pageNumber.value = pageNumber; } - }, { - key: "updateLoadingIndicatorState", - value: function updateLoadingIndicatorState() { - var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var pageNumberInput = this.items.pageNumber; - pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); - } - }, { - key: "_adjustScaleWidth", - value: function () { - var _adjustScaleWidth2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var items, l10n, predefinedValuesPromise, canvas, ctx, _getComputedStyle, fontSize, fontFamily, maxWidth, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, predefinedValue, _ctx$measureText, width, overflow; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - items = this.items, l10n = this.l10n; - predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto", null, "Automatic Zoom"), l10n.get("page_scale_actual", null, "Actual Size"), l10n.get("page_scale_fit", null, "Page Fit"), l10n.get("page_scale_width", null, "Page Width")]); - canvas = document.createElement("canvas"); - canvas.mozOpaque = true; - ctx = canvas.getContext("2d", { - alpha: false - }); - _context.next = 7; - return _ui_utils.animationStarted; + items.previous.disabled = pageNumber <= 1; + items.next.disabled = pageNumber >= pagesCount; + items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; + items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; + this.l10n.get("page_scale_percent", { + scale: Math.round(pageScale * 10000) / 100 + }).then(msg => { + let predefinedValueFound = false; - case 7: - _getComputedStyle = getComputedStyle(items.scaleSelect), fontSize = _getComputedStyle.fontSize, fontFamily = _getComputedStyle.fontFamily; - ctx.font = "".concat(fontSize, " ").concat(fontFamily); - maxWidth = 0; - _iteratorNormalCompletion3 = true; - _didIteratorError3 = false; - _iteratorError3 = undefined; - _context.prev = 13; - _context.next = 16; - return predefinedValuesPromise; + for (const option of items.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; + } - case 16: - _context.t0 = Symbol.iterator; - _iterator3 = _context.sent[_context.t0](); - - case 18: - if (_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) { - _context.next = 25; - break; - } - - predefinedValue = _step3.value; - _ctx$measureText = ctx.measureText(predefinedValue), width = _ctx$measureText.width; - - if (width > maxWidth) { - maxWidth = width; - } - - case 22: - _iteratorNormalCompletion3 = true; - _context.next = 18; - break; - - case 25: - _context.next = 31; - break; - - case 27: - _context.prev = 27; - _context.t1 = _context["catch"](13); - _didIteratorError3 = true; - _iteratorError3 = _context.t1; - - case 31: - _context.prev = 31; - _context.prev = 32; - - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - - case 34: - _context.prev = 34; - - if (!_didIteratorError3) { - _context.next = 37; - break; - } - - throw _iteratorError3; - - case 37: - return _context.finish(34); - - case 38: - return _context.finish(31); - - case 39: - overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH; - maxWidth += 1.5 * overflow; - - if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) { - items.scaleSelect.style.width = "".concat(maxWidth + overflow, "px"); - items.scaleSelectContainer.style.width = "".concat(maxWidth, "px"); - } - - canvas.width = 0; - canvas.height = 0; - canvas = ctx = null; - - case 45: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[13, 27, 31, 39], [32,, 34, 38]]); - })); - - function _adjustScaleWidth() { - return _adjustScaleWidth2.apply(this, arguments); + option.selected = true; + predefinedValueFound = true; } - return _adjustScaleWidth; - }() - }]); + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); + } - return Toolbar; -}(); + updateLoadingIndicatorState(loading = false) { + const pageNumberInput = this.items.pageNumber; + pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); + } + + async _adjustScaleWidth() { + const { + items, + l10n + } = this; + const predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto"), l10n.get("page_scale_actual"), l10n.get("page_scale_fit"), l10n.get("page_scale_width")]); + let canvas = document.createElement("canvas"); + canvas.mozOpaque = true; + let ctx = canvas.getContext("2d", { + alpha: false + }); + await _ui_utils.animationStarted; + const { + fontSize, + fontFamily + } = getComputedStyle(items.scaleSelect); + ctx.font = `${fontSize} ${fontFamily}`; + let maxWidth = 0; + + for (const predefinedValue of await predefinedValuesPromise) { + const { + width + } = ctx.measureText(predefinedValue); + + if (width > maxWidth) { + maxWidth = width; + } + } + + const overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH; + maxWidth += 2 * overflow; + + if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) { + items.scaleSelect.style.width = `${maxWidth + overflow}px`; + items.scaleSelectContainer.style.width = `${maxWidth}px`; + } + + canvas.width = 0; + canvas.height = 0; + canvas = ctx = null; + } + +} exports.Toolbar = Toolbar; /***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 38 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.ViewHistory = void 0; +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; - -var ViewHistory = /*#__PURE__*/function () { - function ViewHistory(fingerprint) { - var _this = this; - - var cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE; - - _classCallCheck(this, ViewHistory); - +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { this.fingerprint = fingerprint; this.cacheSize = cacheSize; - this._initializedPromise = this._readFromStorage().then(function (databaseStr) { - var database = JSON.parse(databaseStr || "{}"); + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; - if (!("files" in database)) { + if (!Array.isArray(database.files)) { database.files = []; } else { - while (database.files.length >= _this.cacheSize) { + while (database.files.length >= this.cacheSize) { database.files.shift(); } - } - var index = -1; + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; - for (var i = 0, length = database.files.length; i < length; i++) { - var branch = database.files[i]; - - if (branch.fingerprint === _this.fingerprint) { - index = i; - break; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } } } if (index === -1) { index = database.files.push({ - fingerprint: _this.fingerprint + fingerprint: this.fingerprint }) - 1; } - _this.file = database.files[index]; - _this.database = database; + this.file = database.files[index]; + this.database = database; }); } - _createClass(ViewHistory, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var databaseStr; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - databaseStr = JSON.stringify(this.database); - localStorage.setItem("pdfjs.history", databaseStr); + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } - case 2: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } - function _writeToStorage() { - return _writeToStorage2.apply(this, arguments); - } + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", localStorage.getItem("pdfjs.history")); + async setMultiple(properties) { + await this._initializedPromise; - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); + for (const name in properties) { + this.file[name] = properties[name]; + } - function _readFromStorage() { - return _readFromStorage2.apply(this, arguments); - } + return this._writeToStorage(); + } - return _readFromStorage; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name, val) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } - case 2: - this.file[name] = val; - return _context3.abrupt("return", this._writeToStorage()); + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } - function set(_x, _x2) { - return _set.apply(this, arguments); - } + return values; + } - return set; - }() - }, { - key: "setMultiple", - value: function () { - var _setMultiple = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(properties) { - var name; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; - - case 2: - for (name in properties) { - this.file[name] = properties[name]; - } - - return _context4.abrupt("return", this._writeToStorage()); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function setMultiple(_x3) { - return _setMultiple.apply(this, arguments); - } - - return setMultiple; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name, defaultValue) { - var val; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - val = this.file[name]; - return _context5.abrupt("return", val !== undefined ? val : defaultValue); - - case 4: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x4, _x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getMultiple", - value: function () { - var _getMultiple = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6(properties) { - var values, name, val; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - values = Object.create(null); - - for (name in properties) { - val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - - return _context6.abrupt("return", values); - - case 5: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getMultiple(_x6) { - return _getMultiple.apply(this, arguments); - } - - return getMultiple; - }() - }]); - - return ViewHistory; -}(); +} exports.ViewHistory = ViewHistory; /***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 39 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GenericCom = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _app = __webpack_require__(3); -var _app = __webpack_require__(1); +var _preferences = __webpack_require__(40); -var _preferences = __webpack_require__(37); +var _download_manager = __webpack_require__(41); -var _download_manager = __webpack_require__(38); +var _genericl10n = __webpack_require__(42); -var _genericl10n = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _generic_scripting = __webpack_require__(44); ; -var GenericCom = {}; +const GenericCom = {}; exports.GenericCom = GenericCom; -var GenericPreferences = /*#__PURE__*/function (_BasePreferences) { - _inherits(GenericPreferences, _BasePreferences); - - function GenericPreferences() { - _classCallCheck(this, GenericPreferences); - - return _possibleConstructorReturn(this, _getPrototypeOf(GenericPreferences).apply(this, arguments)); +class GenericPreferences extends _preferences.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); } - _createClass(GenericPreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); - } - - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", JSON.parse(localStorage.getItem("pdfjs.preferences"))); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); - } - - return _readFromStorage; - }() - }]); - - return GenericPreferences; -}(_preferences.BasePreferences); - -var GenericExternalServices = /*#__PURE__*/function (_DefaultExternalServi) { - _inherits(GenericExternalServices, _DefaultExternalServi); - - function GenericExternalServices() { - _classCallCheck(this, GenericExternalServices); - - return _possibleConstructorReturn(this, _getPrototypeOf(GenericExternalServices).apply(this, arguments)); + async _readFromStorage(prefObj) { + return JSON.parse(localStorage.getItem("pdfjs.preferences")); } - _createClass(GenericExternalServices, null, [{ - key: "createDownloadManager", - value: function createDownloadManager(options) { - return new _download_manager.DownloadManager(options); - } - }, { - key: "createPreferences", - value: function createPreferences() { - return new GenericPreferences(); - } - }, { - key: "createL10n", - value: function createL10n(_ref) { - var _ref$locale = _ref.locale, - locale = _ref$locale === void 0 ? "en-US" : _ref$locale; - return new _genericl10n.GenericL10n(locale); - } - }]); +} - return GenericExternalServices; -}(_app.DefaultExternalServices); +class GenericExternalServices extends _app.DefaultExternalServices { + static createDownloadManager(options) { + return new _download_manager.DownloadManager(); + } + + static createPreferences() { + return new GenericPreferences(); + } + + static createL10n({ + locale = "en-US" + }) { + return new _genericl10n.GenericL10n(locale); + } + + static createScripting({ + sandboxBundleSrc + }) { + return new _generic_scripting.GenericScripting(sandboxBundleSrc); + } + +} _app.PDFViewerApplication.externalServices = GenericExternalServices; /***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 40 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.BasePreferences = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var defaultPreferences = null; - -function getDefaultPreferences() { - if (!defaultPreferences) { - defaultPreferences = Promise.resolve({ - "cursorToolOnLoad": 0, - "defaultZoomValue": "", - "disablePageLabels": false, - "enablePrintAutoRotate": false, - "enableWebGL": false, - "eventBusDispatchToDOM": false, - "externalLinkTarget": 0, - "historyUpdateUrl": false, - "ignoreDestinationZoom": false, - "pdfBugEnabled": false, - "renderer": "canvas", - "renderInteractiveForms": false, - "sidebarViewOnLoad": -1, - "scrollModeOnLoad": -1, - "spreadModeOnLoad": -1, - "textLayerMode": 1, - "useOnlyCssZoom": false, - "viewOnLoad": 0, - "disableAutoFetch": false, - "disableFontFace": false, - "disableRange": false, - "disableStream": false - }); - } - - return defaultPreferences; -} - -var BasePreferences = /*#__PURE__*/function () { - function BasePreferences() { - var _this = this; - - _classCallCheck(this, BasePreferences); +var _app_options = __webpack_require__(1); +class BasePreferences { + constructor() { if (this.constructor === BasePreferences) { throw new Error("Cannot initialize BasePreferences."); } - this.prefs = null; - this._initializedPromise = getDefaultPreferences().then(function (defaults) { - Object.defineProperty(_this, "defaults", { - value: Object.freeze(defaults), - writable: false, - enumerable: true, - configurable: false - }); - _this.prefs = Object.assign(Object.create(null), defaults); - return _this._readFromStorage(defaults); - }).then(function (prefs) { - if (!prefs) { - return; - } + Object.defineProperty(this, "defaults", { + value: Object.freeze({ + "cursorToolOnLoad": 0, + "defaultZoomValue": "", + "disablePageLabels": false, + "enablePermissions": false, + "enablePrintAutoRotate": true, + "enableScripting": true, + "externalLinkTarget": 0, + "historyUpdateUrl": false, + "ignoreDestinationZoom": false, + "pdfBugEnabled": false, + "renderer": "canvas", + "renderInteractiveForms": true, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "useOnlyCssZoom": false, + "viewerCssTheme": 0, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false, + "enableXfa": false + }), + writable: false, + enumerable: true, + configurable: false + }); + this.prefs = Object.create(null); + this._initializedPromise = this._readFromStorage(this.defaults).then(prefs => { + for (const name in this.defaults) { + const prefValue = prefs?.[name]; - for (var name in prefs) { - var defaultValue = _this.defaults[name], - prefValue = prefs[name]; - - if (defaultValue === undefined || _typeof(prefValue) !== _typeof(defaultValue)) { - continue; + if (typeof prefValue === typeof this.defaults[name]) { + this.prefs[name] = prefValue; } - - _this.prefs[name] = prefValue; } }); } - _createClass(BasePreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - throw new Error("Not implemented: _writeToStorage"); + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); + async reset() { + await this._initializedPromise; + this.prefs = Object.create(null); + return this._writeToStorage(this.defaults); + } + + async set(name, value) { + await this._initializedPromise; + const defaultValue = this.defaults[name]; + + if (defaultValue === undefined) { + throw new Error(`Set preference: "${name}" is undefined.`); + } else if (value === undefined) { + throw new Error("Set preference: no value is specified."); + } + + const valueType = typeof value; + const defaultType = typeof defaultValue; + + if (valueType !== defaultType) { + if (valueType === "number" && defaultType === "string") { + value = value.toString(); + } else { + throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); } - - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - throw new Error("Not implemented: _readFromStorage"); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); + } else { + if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); } + } - return _readFromStorage; - }() - }, { - key: "reset", - value: function () { - var _reset = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; + this.prefs[name] = value; + return this._writeToStorage(this.prefs); + } - case 2: - this.prefs = Object.assign(Object.create(null), this.defaults); - return _context3.abrupt("return", this._writeToStorage(this.defaults)); + async get(name) { + await this._initializedPromise; + const defaultValue = this.defaults[name], + prefValue = this.prefs[name]; - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); + } - function reset() { - return _reset.apply(this, arguments); - } + return prefValue !== undefined ? prefValue : defaultValue; + } - return reset; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(name, value) { - var defaultValue, valueType, defaultType; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; + async getAll() { + await this._initializedPromise; + const obj = Object.create(null); - case 2: - defaultValue = this.defaults[name]; + for (const name in this.defaults) { + const prefValue = this.prefs[name]; + obj[name] = prefValue !== undefined ? prefValue : this.defaults[name]; + } - if (!(defaultValue === undefined)) { - _context4.next = 7; - break; - } + return obj; + } - throw new Error("Set preference: \"".concat(name, "\" is undefined.")); - - case 7: - if (!(value === undefined)) { - _context4.next = 9; - break; - } - - throw new Error("Set preference: no value is specified."); - - case 9: - valueType = _typeof(value); - defaultType = _typeof(defaultValue); - - if (!(valueType !== defaultType)) { - _context4.next = 19; - break; - } - - if (!(valueType === "number" && defaultType === "string")) { - _context4.next = 16; - break; - } - - value = value.toString(); - _context4.next = 17; - break; - - case 16: - throw new Error("Set preference: \"".concat(value, "\" is a ").concat(valueType, ", ") + "expected a ".concat(defaultType, ".")); - - case 17: - _context4.next = 21; - break; - - case 19: - if (!(valueType === "number" && !Number.isInteger(value))) { - _context4.next = 21; - break; - } - - throw new Error("Set preference: \"".concat(value, "\" must be an integer.")); - - case 21: - this.prefs[name] = value; - return _context4.abrupt("return", this._writeToStorage(this.prefs)); - - case 23: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function set(_x3, _x4) { - return _set.apply(this, arguments); - } - - return set; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name) { - var defaultValue, prefValue; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - defaultValue = this.defaults[name]; - - if (!(defaultValue === undefined)) { - _context5.next = 7; - break; - } - - throw new Error("Get preference: \"".concat(name, "\" is undefined.")); - - case 7: - prefValue = this.prefs[name]; - - if (!(prefValue !== undefined)) { - _context5.next = 10; - break; - } - - return _context5.abrupt("return", prefValue); - - case 10: - return _context5.abrupt("return", defaultValue); - - case 11: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getAll", - value: function () { - var _getAll = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6() { - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - return _context6.abrupt("return", Object.assign(Object.create(null), this.defaults, this.prefs)); - - case 3: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getAll() { - return _getAll.apply(this, arguments); - } - - return getAll; - }() - }]); - - return BasePreferences; -}(); +} exports.BasePreferences = BasePreferences; /***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 41 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.DownloadManager = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _viewer_compatibility = __webpack_require__(2); ; -var DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false; -function _download(blobUrl, filename) { - var a = document.createElement("a"); +function download(blobUrl, filename) { + const a = document.createElement("a"); if (!a.click) { throw new Error('DownloadManager: "a.click()" is not supported.'); @@ -14858,240 +13880,126 @@ function _download(blobUrl, filename) { a.remove(); } -var DownloadManager = /*#__PURE__*/function () { - function DownloadManager(_ref) { - var _ref$disableCreateObj = _ref.disableCreateObjectURL, - disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj; - - _classCallCheck(this, DownloadManager); - - this.disableCreateObjectURL = disableCreateObjectURL; +class DownloadManager { + constructor() { + this._openBlobUrls = new WeakMap(); } - _createClass(DownloadManager, [{ - key: "downloadUrl", - value: function downloadUrl(url, filename) { - if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { - return; - } - - _download(url + "#pdfjs.action=download", filename); + downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + return; } - }, { - key: "downloadData", - value: function downloadData(data, filename, contentType) { - if (navigator.msSaveBlob) { - navigator.msSaveBlob(new Blob([data], { + + download(url + "#pdfjs.action=download", filename); + } + + downloadData(data, filename, contentType) { + const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); + download(blobUrl, filename); + } + + openOrDownloadData(element, data, filename) { + const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + + if (isPdfData && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + let blobUrl = this._openBlobUrls.get(element); + + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { type: contentType - }), filename); - return; + })); + + this._openBlobUrls.set(element, blobUrl); } - var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL); + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); - _download(blobUrl, filename); + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + + this._openBlobUrls.delete(element); + } } - }, { - key: "download", - value: function download(blob, url, filename) { - if (navigator.msSaveBlob) { - if (!navigator.msSaveBlob(blob, filename)) { - this.downloadUrl(url, filename); - } - return; - } + this.downloadData(data, filename, contentType); + return false; + } - if (this.disableCreateObjectURL) { - this.downloadUrl(url, filename); - return; - } - - var blobUrl = URL.createObjectURL(blob); - - _download(blobUrl, filename); + download(blob, url, filename, sourceEventType = "download") { + if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + this.downloadUrl(url, filename); + return; } - }]); - return DownloadManager; -}(); + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } + +} exports.DownloadManager = DownloadManager; /***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 42 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GenericL10n = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +__webpack_require__(43); -__webpack_require__(40); +var _l10n_utils = __webpack_require__(30); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var webL10n = document.webL10n; - -var GenericL10n = /*#__PURE__*/function () { - function GenericL10n(lang) { - _classCallCheck(this, GenericL10n); +const webL10n = document.webL10n; +class GenericL10n { + constructor(lang) { this._lang = lang; - this._ready = new Promise(function (resolve, reject) { - webL10n.setLanguage(lang, function () { + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage((0, _l10n_utils.fixupLangCode)(lang), () => { resolve(webL10n); }); }); } - _createClass(GenericL10n, [{ - key: "getLanguage", - value: function () { - var _getLanguage = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() { - var l10n; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._ready; + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } - case 2: - l10n = _context.sent; - return _context.abrupt("return", l10n.getLanguage()); + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) { + const l10n = await this._ready; + return l10n.get(key, args, fallback); + } - function getLanguage() { - return _getLanguage.apply(this, arguments); - } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } - return getLanguage; - }() - }, { - key: "getDirection", - value: function () { - var _getDirection = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { - var l10n; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._ready; - - case 2: - l10n = _context2.sent; - return _context2.abrupt("return", l10n.getDirection()); - - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function getDirection() { - return _getDirection.apply(this, arguments); - } - - return getDirection; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(property, args, fallback) { - var l10n; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._ready; - - case 2: - l10n = _context3.sent; - return _context3.abrupt("return", l10n.get(property, args, fallback)); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function get(_x, _x2, _x3) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "translate", - value: function () { - var _translate = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(element) { - var l10n; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._ready; - - case 2: - l10n = _context4.sent; - return _context4.abrupt("return", l10n.translate(element)); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function translate(_x4) { - return _translate.apply(this, arguments); - } - - return translate; - }() - }]); - - return GenericL10n; -}(); +} exports.GenericL10n = GenericL10n; /***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { +/* 43 */ +/***/ (() => { -"use strict"; document.webL10n = function (window, document, undefined) { @@ -15321,7 +14229,7 @@ document.webL10n = function (window, document, undefined) { var onResourceLoaded = null; var gResourceCount = 0; - onResourceLoaded = function onResourceLoaded() { + onResourceLoaded = function () { gResourceCount++; if (gResourceCount >= langCount) { @@ -15538,10 +14446,10 @@ document.webL10n = function (window, document, undefined) { } var pluralRules = { - '0': function _(n) { + '0': function (n) { return 'other'; }, - '1': function _(n) { + '1': function (n) { if (isBetween(n % 100, 3, 10)) return 'few'; if (n === 0) return 'zero'; if (isBetween(n % 100, 11, 99)) return 'many'; @@ -15549,85 +14457,85 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '2': function _(n) { + '2': function (n) { if (n !== 0 && n % 10 === 0) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '3': function _(n) { + '3': function (n) { if (n == 1) return 'one'; return 'other'; }, - '4': function _(n) { + '4': function (n) { if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '5': function _(n) { + '5': function (n) { if (isBetween(n, 0, 2) && n != 2) return 'one'; return 'other'; }, - '6': function _(n) { + '6': function (n) { if (n === 0) return 'zero'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '7': function _(n) { + '7': function (n) { if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '8': function _(n) { + '8': function (n) { if (isBetween(n, 3, 6)) return 'few'; if (isBetween(n, 7, 10)) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '9': function _(n) { + '9': function (n) { if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '10': function _(n) { + '10': function (n) { if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; return 'other'; }, - '11': function _(n) { + '11': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '12': function _(n) { + '12': function (n) { if (isBetween(n, 2, 4)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '13': function _(n) { + '13': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '14': function _(n) { + '14': function (n) { if (isBetween(n % 100, 3, 4)) return 'few'; if (n % 100 == 2) return 'two'; if (n % 100 == 1) return 'one'; return 'other'; }, - '15': function _(n) { + '15': function (n) { if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; if (isBetween(n % 100, 11, 19)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '16': function _(n) { + '16': function (n) { if (n % 10 == 1 && n != 11) return 'one'; return 'other'; }, - '17': function _(n) { + '17': function (n) { if (n == 3) return 'few'; if (n === 0) return 'zero'; if (n == 6) return 'many'; @@ -15635,37 +14543,37 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '18': function _(n) { + '18': function (n) { if (n === 0) return 'zero'; if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; return 'other'; }, - '19': function _(n) { + '19': function (n) { if (isBetween(n, 2, 10)) return 'few'; if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '20': function _(n) { + '20': function (n) { if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; if (n % 1000000 === 0 && n !== 0) return 'many'; if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; return 'other'; }, - '21': function _(n) { + '21': function (n) { if (n === 0) return 'zero'; if (n == 1) return 'one'; return 'other'; }, - '22': function _(n) { + '22': function (n) { if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; return 'other'; }, - '23': function _(n) { + '23': function (n) { if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; return 'other'; }, - '24': function _(n) { + '24': function (n) { if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; if (isIn(n, [2, 12])) return 'two'; if (isIn(n, [1, 11])) return 'one'; @@ -15846,7 +14754,7 @@ document.webL10n = function (window, document, undefined) { } return { - get: function get(key, args, fallbackString) { + get: function (key, args, fallbackString) { var index = key.lastIndexOf('.'); var prop = gTextProp; @@ -15870,30 +14778,30 @@ document.webL10n = function (window, document, undefined) { return '{{' + key + '}}'; }, - getData: function getData() { + getData: function () { return gL10nData; }, - getText: function getText() { + getText: function () { return gTextData; }, - getLanguage: function getLanguage() { + getLanguage: function () { return gLanguage; }, - setLanguage: function setLanguage(lang, callback) { + setLanguage: function (lang, callback) { loadLocale(lang, function () { if (callback) callback(); }); }, - getDirection: function getDirection() { + getDirection: function () { var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; var shortCode = gLanguage.split('-', 1)[0]; return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; }, translate: translateFragment, - getReadyState: function getReadyState() { + getReadyState: function () { return gReadyState; }, - ready: function ready(callback) { + ready: function (callback) { if (!callback) { return; } else if (gReadyState == 'complete' || gReadyState == 'interactive') { @@ -15911,74 +14819,136 @@ document.webL10n = function (window, document, undefined) { }(window, document); /***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 44 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.docPropertiesLookup = docPropertiesLookup; +exports.GenericScripting = void 0; + +var _pdfjsLib = __webpack_require__(5); + +async function docPropertiesLookup(pdfDocument) { + const url = "", + baseUrl = url.split("#")[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + + return { ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url), + metadata: metadata?.getRaw(), + authors: metadata?.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; +} + +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => { + return window.pdfjsSandbox.QuickJSSandbox(); + }); + } + + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + sandbox.dispatchEvent(event); + } + + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } + +} + +exports.GenericScripting = GenericScripting; + +/***/ }), +/* 45 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFPrintService = PDFPrintService; -var _ui_utils = __webpack_require__(5); +var _app = __webpack_require__(3); -var _app = __webpack_require__(1); +var _print_utils = __webpack_require__(46); -var _app_options = __webpack_require__(6); +var _viewer_compatibility = __webpack_require__(2); -var activeService = null; -var overlayManager = null; +let activeService = null; +let overlayManager = null; -function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) { - var scratchCanvas = activeService.scratchCanvas; - var PRINT_RESOLUTION = _app_options.AppOptions.get("printResolution") || 150; - var PRINT_UNITS = PRINT_RESOLUTION / 72.0; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / 72.0; scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); - var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + "px"; - var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + "px"; - var ctx = scratchCanvas.getContext("2d"); + const ctx = scratchCanvas.getContext("2d"); ctx.save(); ctx.fillStyle = "rgb(255, 255, 255)"; ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); ctx.restore(); return pdfDocument.getPage(pageNumber).then(function (pdfPage) { - var renderContext = { + const renderContext = { canvasContext: ctx, transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], viewport: pdfPage.getViewport({ scale: 1, rotation: size.rotation }), - intent: "print" + intent: "print", + includeAnnotationStorage: true, + optionalContentConfigPromise }; return pdfPage.render(renderContext).promise; - }).then(function () { - return { - width: width, - height: height - }; }); } -function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) { +function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, l10n) { this.pdfDocument = pdfDocument; this.pagesOverview = pagesOverview; this.printContainer = printContainer; - this.l10n = l10n || _ui_utils.NullL10n; - this.disableCreateObjectURL = pdfDocument.loadingParams["disableCreateObjectURL"]; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); + this.l10n = l10n; this.currentPage = -1; this.scratchCanvas = document.createElement("canvas"); } PDFPrintService.prototype = { - layout: function layout() { + layout() { this.throwIfInactive(); - var body = document.querySelector("body"); + const body = document.querySelector("body"); body.setAttribute("data-pdfjsprinting", true); - var hasEqualPageSizes = this.pagesOverview.every(function (size) { + const hasEqualPageSizes = this.pagesOverview.every(function (size) { return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; }, this); @@ -15987,17 +14957,18 @@ PDFPrintService.prototype = { } this.pageStyleSheet = document.createElement("style"); - var pageSize = this.pagesOverview[0]; - this.pageStyleSheet.textContent = "@supports ((size:A4) and (size:1pt 1pt)) {" + "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}" + "}"; + const pageSize = this.pagesOverview[0]; + this.pageStyleSheet.textContent = "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}"; body.appendChild(this.pageStyleSheet); }, - destroy: function destroy() { + + destroy() { if (activeService !== this) { return; } this.printContainer.textContent = ""; - var body = document.querySelector("body"); + const body = document.querySelector("body"); body.removeAttribute("data-pdfjsprinting"); if (this.pageStyleSheet) { @@ -16016,37 +14987,40 @@ PDFPrintService.prototype = { overlayManager.close("printServiceOverlay"); }); }, - renderPages: function renderPages() { - var _this = this; - var pageCount = this.pagesOverview.length; + renderPages() { + if (this.pdfDocument.isPureXfa) { + (0, _print_utils.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); + return Promise.resolve(); + } - var renderNextPage = function renderNextPage(resolve, reject) { - _this.throwIfInactive(); + const pageCount = this.pagesOverview.length; - if (++_this.currentPage >= pageCount) { - renderProgress(pageCount, pageCount, _this.l10n); + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); + + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, this.l10n); resolve(); return; } - var index = _this.currentPage; - renderProgress(index, pageCount, _this.l10n); - renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () { + const index = this.currentPage; + renderProgress(index, pageCount, this.l10n); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise).then(this.useRenderedPage.bind(this)).then(function () { renderNextPage(resolve, reject); }, reject); }; return new Promise(renderNextPage); }, - useRenderedPage: function useRenderedPage(printItem) { - this.throwIfInactive(); - var img = document.createElement("img"); - img.style.width = printItem.width; - img.style.height = printItem.height; - var scratchCanvas = this.scratchCanvas; - if ("toBlob" in scratchCanvas && !this.disableCreateObjectURL) { + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + const scratchCanvas = this.scratchCanvas; + + if ("toBlob" in scratchCanvas && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { scratchCanvas.toBlob(function (blob) { img.src = URL.createObjectURL(blob); }); @@ -16054,7 +15028,8 @@ PDFPrintService.prototype = { img.src = scratchCanvas.toDataURL(); } - var wrapper = document.createElement("div"); + const wrapper = document.createElement("div"); + wrapper.className = "printedPage"; wrapper.appendChild(img); this.printContainer.appendChild(wrapper); return new Promise(function (resolve, reject) { @@ -16062,13 +15037,12 @@ PDFPrintService.prototype = { img.onerror = reject; }); }, - performPrint: function performPrint() { - var _this2 = this; + performPrint() { this.throwIfInactive(); - return new Promise(function (resolve) { - setTimeout(function () { - if (!_this2.active) { + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { resolve(); return; } @@ -16083,13 +15057,14 @@ PDFPrintService.prototype = { return this === activeService; }, - throwIfInactive: function throwIfInactive() { + throwIfInactive() { if (!this.active) { throw new Error("This print request was cancelled or completed."); } } + }; -var print = window.print; +const print = window.print; window.print = function () { if (activeService) { @@ -16116,10 +15091,10 @@ window.print = function () { return; } - var activeServiceOnEntry = activeService; + const activeServiceOnEntry = activeService; activeService.renderPages().then(function () { return activeServiceOnEntry.performPrint(); - })["catch"](function () {}).then(function () { + }).catch(function () {}).then(function () { if (activeServiceOnEntry.active) { abort(); } @@ -16128,7 +15103,7 @@ window.print = function () { }; function dispatchEvent(eventType) { - var event = document.createEvent("CustomEvent"); + const event = document.createEvent("CustomEvent"); event.initCustomEvent(eventType, false, false, "custom"); window.dispatchEvent(event); } @@ -16141,14 +15116,14 @@ function abort() { } function renderProgress(index, total, l10n) { - var progressContainer = document.getElementById("printServiceOverlay"); - var progress = Math.round(100 * index / total); - var progressBar = progressContainer.querySelector("progress"); - var progressPerc = progressContainer.querySelector(".relative-progress"); + const progressContainer = document.getElementById("printServiceOverlay"); + const progress = Math.round(100 * index / total); + const progressBar = progressContainer.querySelector("progress"); + const progressPerc = progressContainer.querySelector(".relative-progress"); progressBar.value = progress; l10n.get("print_progress_percent", { - progress: progress - }, progress + "%").then(function (msg) { + progress + }).then(msg => { progressPerc.textContent = msg; }); } @@ -16167,7 +15142,7 @@ window.addEventListener("keydown", function (event) { }, true); if ("onbeforeprint" in window) { - var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) { + const stopPropagationIfNeeded = function (event) { if (event.detail !== "custom" && event.stopImmediatePropagation) { event.stopImmediatePropagation(); } @@ -16177,7 +15152,7 @@ if ("onbeforeprint" in window) { window.addEventListener("afterprint", stopPropagationIfNeeded); } -var overlayPromise; +let overlayPromise; function ensureOverlay() { if (!overlayPromise) { @@ -16196,16 +15171,271 @@ function ensureOverlay() { _app.PDFPrintServiceFactory.instance = { supportsPrinting: true, - createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) { + + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n) { if (activeService) { throw new Error("The print service is created and active."); } - activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n); + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n); return activeService; } + }; +/***/ }), +/* 46 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getXfaHtmlForPrinting = getXfaHtmlForPrinting; + +var _ui_utils = __webpack_require__(4); + +var _xfa_layer_builder = __webpack_require__(34); + +var _pdfjsLib = __webpack_require__(5); + +function getXfaHtmlForPrinting(printContainer, pdfDocument) { + const xfaHtml = pdfDocument.allXfaHtml; + const factory = new _xfa_layer_builder.DefaultXfaLayerFactory(); + const scale = Math.round(_ui_utils.CSS_UNITS * 100) / 100; + + for (const xfaPage of xfaHtml.children) { + const page = document.createElement("div"); + page.className = "xfaPrintedPage"; + printContainer.appendChild(page); + const builder = factory.createXfaLayerBuilder(page, null, pdfDocument.annotationStorage, xfaPage); + const viewport = (0, _pdfjsLib.getXfaPageViewport)(xfaPage, { + scale + }); + builder.render(viewport, "print"); + } +} + /***/ }) -/******/ ]); +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "PDFViewerApplicationOptions", ({ + enumerable: true, + get: function () { + return _app_options.AppOptions; + } +})); +Object.defineProperty(exports, "PDFViewerApplication", ({ + enumerable: true, + get: function () { + return _app.PDFViewerApplication; + } +})); + +var _app_options = __webpack_require__(1); + +var _app = __webpack_require__(3); + +const pdfjsVersion = '2.10.377'; +const pdfjsBuild = '156762c48'; +window.PDFViewerApplication = _app.PDFViewerApplication; +window.PDFViewerApplicationOptions = _app_options.AppOptions; +; +; +{ + __webpack_require__(39); +} +; +{ + __webpack_require__(45); +} + +function getViewerConfiguration() { + let errorWrapper = null; + errorWrapper = { + container: document.getElementById("errorWrapper"), + errorMessage: document.getElementById("errorMessage"), + closeButton: document.getElementById("errorClose"), + errorMoreInfo: document.getElementById("errorMoreInfo"), + moreInfoButton: document.getElementById("errorShowMore"), + lessInfoButton: document.getElementById("errorShowLess") + }; + return { + appContainer: document.body, + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), + eventBus: null, + toolbar: { + container: document.getElementById("toolbarViewer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + scaleSelectContainer: document.getElementById("scaleSelectContainer"), + scaleSelect: document.getElementById("scaleSelect"), + customScaleOption: document.getElementById("customScaleOption"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + zoomIn: document.getElementById("zoomIn"), + zoomOut: document.getElementById("zoomOut"), + viewFind: document.getElementById("viewFind"), + openFile: document.getElementById("openFile"), + print: document.getElementById("print"), + presentationModeButton: document.getElementById("presentationMode"), + download: document.getElementById("download"), + viewBookmark: document.getElementById("viewBookmark") + }, + secondaryToolbar: { + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggle"), + toolbarButtonContainer: document.getElementById("secondaryToolbarButtonContainer"), + presentationModeButton: document.getElementById("secondaryPresentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("secondaryViewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollVerticalButton: document.getElementById("scrollVertical"), + scrollHorizontalButton: document.getElementById("scrollHorizontal"), + scrollWrappedButton: document.getElementById("scrollWrapped"), + spreadNoneButton: document.getElementById("spreadNone"), + spreadOddButton: document.getElementById("spreadOdd"), + spreadEvenButton: document.getElementById("spreadEven"), + documentPropertiesButton: document.getElementById("documentProperties") + }, + sidebar: { + outerContainer: document.getElementById("outerContainer"), + viewerContainer: document.getElementById("viewerContainer"), + toggleButton: document.getElementById("sidebarToggle"), + thumbnailButton: document.getElementById("viewThumbnail"), + outlineButton: document.getElementById("viewOutline"), + attachmentsButton: document.getElementById("viewAttachments"), + layersButton: document.getElementById("viewLayers"), + thumbnailView: document.getElementById("thumbnailView"), + outlineView: document.getElementById("outlineView"), + attachmentsView: document.getElementById("attachmentsView"), + layersView: document.getElementById("layersView"), + outlineOptionsContainer: document.getElementById("outlineOptionsContainer"), + currentOutlineItemButton: document.getElementById("currentOutlineItem") + }, + sidebarResizer: { + outerContainer: document.getElementById("outerContainer"), + resizer: document.getElementById("sidebarResizer") + }, + findBar: { + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFind"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPrevious"), + findNextButton: document.getElementById("findNext") + }, + passwordOverlay: { + overlayName: "passwordOverlay", + container: document.getElementById("passwordOverlay"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") + }, + documentProperties: { + overlayName: "documentPropertiesOverlay", + container: document.getElementById("documentPropertiesOverlay"), + closeButton: document.getElementById("documentPropertiesClose"), + fields: { + fileName: document.getElementById("fileNameField"), + fileSize: document.getElementById("fileSizeField"), + title: document.getElementById("titleField"), + author: document.getElementById("authorField"), + subject: document.getElementById("subjectField"), + keywords: document.getElementById("keywordsField"), + creationDate: document.getElementById("creationDateField"), + modificationDate: document.getElementById("modificationDateField"), + creator: document.getElementById("creatorField"), + producer: document.getElementById("producerField"), + version: document.getElementById("versionField"), + pageCount: document.getElementById("pageCountField"), + pageSize: document.getElementById("pageSizeField"), + linearized: document.getElementById("linearizedField") + } + }, + errorWrapper, + printContainer: document.getElementById("printContainer"), + openFileInputName: "fileInput", + debuggerScriptPath: "./debugger.js" + }; +} + +function webViewerLoad() { + const config = getViewerConfiguration(); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent("webviewerloaded", true, true, { + source: window + }); + + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + + _app.PDFViewerApplication.run(config); +} + +if (document.blockUnblockOnload) { + document.blockUnblockOnload(true); +} + +if (document.readyState === "interactive" || document.readyState === "complete") { + webViewerLoad(); +} else { + document.addEventListener("DOMContentLoaded", webViewerLoad, true); +} +})(); + +/******/ })() +; //# sourceMappingURL=viewer.js.map \ No newline at end of file diff --git a/server/src/main/resources/static/pdfjs/web/viewer.js.map b/server/src/main/resources/static/pdfjs/web/viewer.js.map index eff7b023..bbdcb31b 100644 --- a/server/src/main/resources/static/pdfjs/web/viewer.js.map +++ b/server/src/main/resources/static/pdfjs/web/viewer.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///web/viewer.js","webpack:///web/app.js","webpack:///node_modules/@babel/runtime/regenerator/index.js","webpack:///node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack:///node_modules/webpack/buildin/module.js","webpack:///web/ui_utils.js","webpack:///web/app_options.js","webpack:///web/pdfjs.js","webpack:///web/viewer_compatibility.js","webpack:///web/pdf_cursor_tools.js","webpack:///web/grab_to_pan.js","webpack:///web/pdf_rendering_queue.js","webpack:///web/pdf_sidebar.js","webpack:///web/overlay_manager.js","webpack:///web/password_prompt.js","webpack:///web/pdf_attachment_viewer.js","webpack:///web/pdf_document_properties.js","webpack:///web/pdf_find_bar.js","webpack:///web/pdf_find_controller.js","webpack:///web/pdf_find_utils.js","webpack:///web/pdf_history.js","webpack:///web/pdf_link_service.js","webpack:///web/pdf_outline_viewer.js","webpack:///web/pdf_presentation_mode.js","webpack:///web/pdf_sidebar_resizer.js","webpack:///web/pdf_thumbnail_viewer.js","webpack:///web/pdf_thumbnail_view.js","webpack:///web/pdf_viewer.js","webpack:///web/base_viewer.js","webpack:///web/annotation_layer_builder.js","webpack:///web/pdf_page_view.js","webpack:///web/text_layer_builder.js","webpack:///web/secondary_toolbar.js","webpack:///web/pdf_single_page_viewer.js","webpack:///web/toolbar.js","webpack:///web/view_history.js","webpack:///web/genericcom.js","webpack:///web/preferences.js","webpack:///web/download_manager.js","webpack:///web/genericl10n.js","webpack:///external/webL10n/l10n.js","webpack:///web/pdf_print_service.js"],"names":["pdfjsWebApp","require","pdfjsWebAppOptions","appContainer","document","mainContainer","viewerContainer","eventBus","toolbar","container","numPages","pageNumber","scaleSelectContainer","scaleSelect","customScaleOption","previous","next","zoomIn","zoomOut","viewFind","openFile","print","presentationModeButton","download","viewBookmark","secondaryToolbar","toggleButton","toolbarButtonContainer","openFileButton","printButton","downloadButton","viewBookmarkButton","firstPageButton","lastPageButton","pageRotateCwButton","pageRotateCcwButton","cursorSelectToolButton","cursorHandToolButton","scrollVerticalButton","scrollHorizontalButton","scrollWrappedButton","spreadNoneButton","spreadOddButton","spreadEvenButton","documentPropertiesButton","fullscreen","contextFirstPage","contextLastPage","contextPageRotateCw","contextPageRotateCcw","sidebar","outerContainer","thumbnailButton","outlineButton","attachmentsButton","thumbnailView","outlineView","attachmentsView","sidebarResizer","resizer","findBar","bar","findField","highlightAllCheckbox","caseSensitiveCheckbox","entireWordCheckbox","findMsg","findResultsCount","findPreviousButton","findNextButton","passwordOverlay","overlayName","label","input","submitButton","cancelButton","documentProperties","closeButton","fields","fileName","fileSize","title","author","subject","keywords","creationDate","modificationDate","creator","producer","version","pageCount","pageSize","linearized","errorWrapper","errorMessage","errorMoreInfo","moreInfoButton","lessInfoButton","printContainer","openFileInputName","debuggerScriptPath","config","getViewerConfiguration","window","event","webViewerLoad","DEFAULT_SCALE_DELTA","DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT","FORCE_PAGES_LOADED_TIMEOUT","WHEEL_ZOOM_DISABLED_TIMEOUT","ViewOnLoad","UNKNOWN","PREVIOUS","INITIAL","constructor","shadow","ctrlKey","metaKey","PDFViewerApplication","initialBookmark","_initializedCapability","fellback","appConfig","pdfDocument","pdfLoadingTask","printService","pdfViewer","pdfThumbnailViewer","pdfRenderingQueue","pdfPresentationMode","pdfDocumentProperties","pdfLinkService","pdfHistory","pdfSidebar","pdfSidebarResizer","pdfOutlineViewer","pdfAttachmentViewer","pdfCursorTools","store","downloadManager","overlayManager","preferences","l10n","isInitialViewSet","downloadComplete","isViewerEmbedded","url","baseUrl","externalServices","_boundEvents","contentDispositionFilename","AppOptions","LinkTarget","source","prefs","console","reason","hash","hashParams","parseQueryString","waitOn","loadFakeWorker","TextLayerMode","viewer","enabled","loadAndEnablePDFBug","locale","dir","dispatchToDOM","externalLinkTarget","externalLinkRel","ignoreDestinationZoom","disableCreateObjectURL","findController","linkService","renderingQueue","renderer","enableWebGL","textLayerMode","imageResourcesPath","renderInteractiveForms","enablePrintAutoRotate","useOnlyCssZoom","maxCanvasPixels","cursorToolOnLoad","contextMenuItems","elements","run","newScale","Math","zoomReset","PDFPrintServiceFactory","doc","support","initPassiveLoading","setTitleUsingUrl","getPDFFileNameFromURL","decodeURIComponent","getFilenameFromUrl","setTitle","promise","PDFBug","workerParameters","OptionKind","GlobalWorkerOptions","parameters","Object","file","apiParameters","value","key","args","loadingTask","getDocument","loaded","exception","message","loadingErrorMessage","msg","filename","err","downloadByUrl","blob","type","fallback","featureId","error","moreInfoText","build","moreInfo","stack","line","errorWrapperConfig","Promise","parts","progress","percent","level","isNaN","disableAutoFetch","clearTimeout","load","firstPagePromise","pageLayoutPromise","pageModePromise","openActionPromise","baseDocumentUrl","pdfPage","storePromise","page","zoom","scrollLeft","scrollTop","rotation","sidebarView","SidebarView","scrollMode","ScrollMode","spreadMode","SpreadMode","values","viewOnLoad","fingerprint","initialDest","openAction","parseInt","pageMode","apiPageModeToSidebarView","pageLayout","apiPageLayoutToSpreadMode","resolve","setTimeout","labels","numLabels","i","pagesPromise","triggerAutoPrint","javaScript","js","UNSUPPORTED_FEATURES","AutoPrintRegExp","onePageRendered","outline","attachments","info","infoTitle","pdfTitle","metadataTitle","metadata","versionId","KNOWN_VERSIONS","generatorId","KNOWN_GENERATORS","generator","formType","_initializePdfHistory","resetHistory","updateUrl","JSON","explicitDest","setInitialView","setRotation","angle","isValidRotation","setViewerModes","isValidScrollMode","isValidSpreadMode","cleanup","RendererType","forceRendering","beforePrint","printMessage","notReadyMessage","pagesOverview","afterPrint","rotatePages","newRotation","requestPresentationMode","bindEvents","bindWindowEvents","passive","unbindEvents","unbindWindowEvents","HOSTED_VIEWER_ORIGINS","validateFileURL","viewerOrigin","origin","protocol","ex","loadScript","PDFWorker","OPS","queryString","params","fileInput","files","evt","webViewerOpenFileViaURL","xhr","pageIndex","pageView","Stats","timestamp","stats","view","action","state","PresentationModeState","location","href","currentPage","loading","RenderingStates","currentScaleValue","webViewerFileInputChange","URL","originalUrl","fileReader","buffer","webViewerOpenFile","query","phraseSearch","caseSensitive","entireWord","highlightAll","findPrevious","result","matchesCount","setZoomDisabledTimeout","zoomDisabledTimeout","supportedMouseWheelZoomModifierKeys","previousScale","delta","normalizeWheelEventDelta","MOUSE_WHEEL_DELTA_PER_PAGE_SCALE","ticks","currentScale","scaleCorrectionFactor","rect","dx","dy","handled","ensureViewerFocused","cmd","isViewerInPresentationMode","findState","curElement","curElementTagName","turnPage","turnOnlyIfPageFit","CursorTool","instance","supportsPrinting","createPrintService","module","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","context","tryLocsList","makeInvokeMethod","exports","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","ctor","genFun","__await","record","tryCatch","reject","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","PromiseImpl","iter","wrap","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","entry","tryLoc","locs","keys","iteratorMethod","iterable","Context","reset","name","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","enumerable","get","CSS_UNITS","DEFAULT_SCALE_VALUE","DEFAULT_SCALE","MIN_SCALE","MAX_SCALE","UNKNOWN_SCALE","MAX_AUTO_SCALE","SCROLLBAR_PADDING","VERTICAL_PADDING","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","NONE","ODD","EVEN","NullL10n","formatL10nValue","devicePixelRatio","backingStoreRatio","ctx","pixelRatio","sx","sy","scaled","skipOverflowHiddenElements","parent","element","offsetY","offsetX","getComputedStyle","spot","debounceScroll","rAF","currentX","viewAreaElement","lastX","currentY","lastY","callback","right","down","_eventHandler","ii","param","minIndex","maxIndex","items","condition","currentIndex","currentItem","xinv","limit","x_","x","a","b","c","d","p","q","r","changeOrientation","rotate","width","height","index","elt","views","pageTop","sortByVisibility","horizontal","top","scrollEl","bottom","left","elementBottom","elementRight","visible","numViews","firstVisibleElementInd","binarySearchFirstItem","backtrackBeforeAllVisibleElements","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","id","y","first","last","pc","defaultFilename","isDataSchema","reURI","reFilename","splitURI","suggestedFilename","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","Number","mode","size","WaitOnType","EVENT","TIMEOUT","delay","target","eventHandler","handler","timeoutHandler","timeout","animationStarted","details","obj","on","external","off","dispatch","eventListeners","Array","dispatchDOMEvent","externalListeners","listener","_on","options","_off","globalEventBus","units","progressSize","setWidth","scrollbarWidth","clamp","moved","len","arr","write","read","VIEWER","API","WORKER","PREFERENCE","defaultOptions","kind","defaultUrl","defaultZoomValue","disableHistory","disablePageLabels","eventBusDispatchToDOM","historyUpdateUrl","compatibility","viewerCompatibilityParams","pdfBugEnabled","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","cMapPacked","cMapUrl","apiCompatibilityParams","disableFontFace","disableRange","disableStream","docBaseUrl","isEvalSupported","maxImageSize","pdfBug","verbosity","workerPort","workerSrc","navigator","userOptions","userOption","defaultOption","valueType","pdfjsLib","__non_webpack_require__","compatibilityParams","userAgent","platform","maxTouchPoints","isAndroid","isIOS","SELECT","HAND","ZOOM","switchTool","tool","disableActiveTool","previouslyActive","overlay","GrabToPan","CSS_CLASS_GRAB","activate","deactivate","toggle","ignoreTarget","node","_onmousedown","focusedElement","_onmousemove","isLeftMouseReleased","xDiff","yDiff","behavior","_endPan","prefix","matchesSelector","isNotIEorIsIE10plus","chrome","isChrome15OrOpera15plus","isSafari6plus","CLEANUP_TIMEOUT","RUNNING","PAUSED","FINISHED","setViewer","setThumbnailViewer","isHighestPriority","renderHighestPriority","getHighestPriority","visibleViews","numVisible","nextPageIndex","previousPageIndex","isViewFinished","renderView","UI_NOTIFICATION_CLASS","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","disableNotification","switchView","forceOpen","_switchView","isViewChanged","shouldForceRendering","pagesCount","_showUINotification","_hideUINotification","removeNotification","outlineCount","callerCloseMethod","canForceClose","_keyDown","e","PasswordResponses","promptString","password","setUpdateCallback","keepRenderedCapability","_dispatchEvent","attachmentsCount","_bindPdfLink","button","blobUrl","createObjectURL","viewerUrl","encodeURIComponent","_bindLink","render","names","item","removeNullCharacters","div","_appendAttachment","content","DEFAULT_FIELD_CONTENT","NON_METRIC_LOCALES","US_PAGE_NAMES","METRIC_PAGE_NAMES","isPortrait","pageNames","freezeFieldData","data","writable","configurable","currentPageNumber","pagesRotation","getPageSizeInches","_currentPageNumber","_pagesRotation","setDocument","setFileSize","_updateUI","kb","size_kb","size_b","size_mb","pageSizeInches","isPortraitOrientation","sizeInches","sizeMillimeters","pageName","rawName","getPageName","exactMillimeters","intMillimeters","unit","orientation","dateObject","PDFDateString","date","time","_parseLinearization","isLinearized","MATCHES_COUNT_LIMIT","dispatchEvent","updateUIState","notFound","status","FindState","updateResultsCount","current","total","matchesCountMsg","findbarHeight","inputContainerHeight","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","replace","executeCommand","findbarClosed","pendingTimeout","matchIndex","scrollMatchIntoView","scrollIntoView","pageIdx","matchIdx","wrapped","_shouldDirtyMatch","_prepareMatches","currentElem","matchesWithLength","nextElem","prevElem","isSubTerm","matches","matchesLength","_isEntireWord","startIdx","getCharacterType","endIdx","_calculatePhraseMatch","queryLen","pageContent","_calculateWordMatch","queryArray","subquery","subqueryLen","match","matchLength","skipped","_calculateMatch","pageMatchesCount","extractTextCapability","normalizeWhitespace","textContent","textItems","strBuf","j","jj","normalize","_updatePage","currentPageIndex","offset","numPageMatches","_matchesReady","numMatches","_advanceOffsetPage","found","_updateMatch","previousPage","_onFindBarClose","_updateUIState","CharacterType","SPACE","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","isAsciiAlpha","isAsciiDigit","isThai","isHan","isKatakana","isHiragana","isHalfwidthKatakana","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","onPagesLoaded","initialize","reInitialized","getCurrentHash","destination","namedDest","push","forceReplace","isDestArraysEqual","dest","_pushOrReplaceState","shouldReplace","newState","uid","newUrl","temporary","_tryPushCurrentPosition","position","_isValidState","checkReload","performance","perfEntry","_updateInternalState","removeTemporary","unescape","_updateViewarea","_popState","newHash","hashChanged","waitOnEventOrTimeout","updateViewarea","popState","pageHide","destHash","nameddest","second","isEntryEqual","firstDest","secondDest","externalLinkEnabled","setHistory","navigateTo","goToDestination","destRef","destArray","getDestinationHash","escape","str","getAnchorUrl","setHash","zoomArgs","zoomArg","zoomArgNumber","parseFloat","allowNegativeOffset","isValidExplicitDestination","executeNamedAction","cachePageRef","refStr","pageRef","_cachedPageNumber","isPageVisible","destLength","allowNull","DEFAULT_TITLE","addLinkAttributes","newWindow","rel","_setStyles","_addToggleButton","toggler","count","shouldShowAll","_toggleOutlineItem","show","root","fragment","queue","hasAnyNesting","levelData","itemsDiv","DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS","DELAY_BEFORE_HIDING_CONTROLS","ACTIVE_SELECTOR","CONTROLS_SELECTOR","MOUSE_SCROLL_COOLDOWN_TIME","PAGE_SWITCH_THRESHOLD","SWIPE_MIN_DISTANCE_THRESHOLD","SWIPE_ANGLE_THRESHOLD","Element","_mouseWheel","currentTime","storedTime","totalDelta","success","active","switchInProgress","_mouseDown","isInternalLink","_touchSwipe","startX","startY","endX","endY","absAngle","SIDEBAR_WIDTH_VAR","SIDEBAR_MIN_WIDTH","SIDEBAR_RESIZING_CLASS","CSS","_updateWidth","newWidth","_mouseMove","_mouseUp","updated","THUMBNAIL_SCROLL_MARGIN","THUMBNAIL_SELECTED_CLASS","watchScroll","getThumbnail","getVisibleElements","scrollThumbnailIntoView","prevThumbnailView","visibleThumbs","numVisibleThumbs","shouldScroll","PDFThumbnailView","firstPdfPage","viewport","scale","pageNum","thumbnail","defaultViewport","disableCanvasToImageConversion","firstThumbnailView","setPageLabels","_ensurePdfPageLoaded","thumbView","MAX_NUM_SCALING_STEPS","THUMBNAIL_CANVAS_BORDER_WIDTH","THUMBNAIL_WIDTH","TempImageFactory","tempCanvasCache","getCanvas","tempCanvas","alpha","destroyCanvas","anchor","ring","borderAdjustment","setPdfPage","totalRotation","childNodes","update","noCtxScale","_getPageDrawContext","canvas","outputScale","getOutputScale","className","image","renderCapability","finishRenderTask","renderTask","drawViewport","renderContinueCallback","cont","renderContext","canvasContext","setImage","img","reducedWidth","reducedHeight","reducedImage","reducedImageCtx","setPageLabel","pageSpot","_scrollIntoView","pageDiv","_updateHelper","currentId","stillFullyVisible","visiblePages","DEFAULT_CACHE_SIZE","pageIdsToKeep","iMax","pagesToKeep","moveToEndOfArray","getPageView","_setCurrentPageNumber","resetCurrentPageView","val","pageLabel","textLayerFactory","annotationLayerFactory","firstPageView","getPagesLeft","_setScaleUpdatePages","noScroll","preset","newValue","isSameScale","presetValue","_setScale","noPadding","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","scrollPageIntoView","pageWidth","pageHeight","widthScale","heightScale","boundingRect","_updateLocation","normalizedScaleValue","firstPage","pdfOpenParams","currentPageView","topLeft","intLeft","intTop","numVisiblePages","newCacheSize","containsElement","currentlyVisiblePages","scrollAhead","createTextLayerBuilder","enhanceTextSelection","textLayerDiv","createAnnotationLayerBuilder","isFirstPagePortrait","_updateScrollMode","_updateSpreadMode","pages","parity","spread","intent","annotations","dontFlip","AnnotationLayer","MAX_CANVAS_PIXELS","removeFromDOM","_resetZoomLayer","zoomLayerCanvas","keepZoomLayer","keepAnnotations","currentZoomLayerNode","currentAnnotationNode","cssTransform","isScalingRestricted","cancelRendering","redrawAnnotations","relativeRotation","absRotation","scaleX","scaleY","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","getPagePoint","canvasWrapper","textLayer","finishPaintTask","paintTask","resultPromise","readableStream","paintOnCanvas","onRenderContinue","cancel","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","approximateFraction","sfy","roundToDivide","transform","paintOnSvg","cancelled","ensureNotCancelled","opList","svgGfx","svg","wrapper","EXPAND_DIVS_TIMEOUT","endOfContent","numTextDivs","textLayerFrag","textContentStream","textDivs","textContentItemsStr","setTextContentStream","setTextContent","_convertMatches","iIndex","end","m","mm","begin","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","infinity","appendTextToDiv","span","i0","i1","isSelected","highlightSuffix","beginText","n0","n1","clearedUntilDivIdx","n","pageMatches","pageMatchesLength","expandDivsTimer","adjustTop","divBounds","eventName","close","eventDetails","lastPage","pageRotateCw","pageRotateCcw","setPageNumber","setPagesCount","_bindCursorToolsListener","buttons","_bindScrollModeListener","isScrollModeHorizontal","scrollModeChanged","_bindSpreadModeListener","spreadModeChanged","previousPageView","viewerNodes","scrolledDown","PAGE_NUMBER_LOADING_INDICATOR","SCALE_SELECT_CONTAINER_WIDTH","SCALE_SELECT_WIDTH","setPageScale","self","resetNumPages","pageScale","customScale","predefinedValueFound","option","updateLoadingIndicatorState","pageNumberInput","predefinedValuesPromise","maxWidth","overflow","DEFAULT_VIEW_HISTORY_CACHE_SIZE","cacheSize","databaseStr","database","length","branch","localStorage","properties","GenericCom","defaultPreferences","defaults","defaultValue","prefValue","defaultType","DISABLE_CREATE_OBJECT_URL","downloadUrl","createValidAbsoluteUrl","downloadData","webL10n","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","script","l10nId","l10nArgs","onSuccess","onFailure","baseURL","text","dictionary","reBlank","reComment","reSection","reImport","reSplit","entries","rawText","currentLang","genericLang","lang","skipLang","parsedRawLinesCallback","loadImport","tmp","evalString","nextEntry","xhrLoadText","parseRawLines","parsedPropertiesCallback","parseProperties","prop","successCallback","clear","langLinks","getL10nResourceLinks","langCount","dict","getL10nDictionary","defaultLocale","anyCaseLang","onResourceLoaded","gResourceCount","link","parseResource","resource","locales2rules","list","start","pluralRules","isBetween","getPluralRules","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","getL10nAttributes","getL10nData","getChildElementCount","children","l","textNode","getTranslatableChildren","elementCount","translateElement","getData","getText","getLanguage","setLanguage","loadLocale","getDirection","rtlList","shortCode","translate","getReadyState","ready","activeService","scratchCanvas","PRINT_RESOLUTION","PRINT_UNITS","PDFPrintService","layout","body","hasEqualPageSizes","destroy","ensureOverlay","renderPages","renderNextPage","renderProgress","renderPage","useRenderedPage","printItem","performPrint","throwIfInactive","activeServiceOnEntry","abort","progressContainer","progressBar","progressPerc","stopPropagationIfNeeded","overlayPromise"],"mappings":"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","file":"viewer.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\"use strict\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n var defaultUrl; // eslint-disable-line no-var\n\n (function rewriteUrlClosure() {\n // Run this code outside DOMContentLoaded to make sure that the URL\n // is rewritten as soon as possible.\n const queryString = document.location.search.slice(1);\n const m = /(^|&)file=([^&]*)/.exec(queryString);\n defaultUrl = m ? decodeURIComponent(m[2]) : \"\";\n\n // Example: chrome-extension://.../http://example.com/file.pdf\n const humanReadableUrl = \"/\" + defaultUrl + location.hash;\n history.replaceState(history.state, \"\", humanReadableUrl);\n if (top === window) {\n // eslint-disable-next-line no-undef\n chrome.runtime.sendMessage(\"showPageAction\");\n }\n })();\n}\n\nlet pdfjsWebApp, pdfjsWebAppOptions;\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"PRODUCTION\")) {\n pdfjsWebApp = require(\"./app.js\");\n pdfjsWebAppOptions = require(\"./app_options.js\");\n}\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n require(\"./firefoxcom.js\");\n require(\"./firefox_print_service.js\");\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n require(\"./genericcom.js\");\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n require(\"./chromecom.js\");\n}\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME || GENERIC\")) {\n require(\"./pdf_print_service.js\");\n}\n\nfunction getViewerConfiguration() {\n return {\n appContainer: document.body,\n mainContainer: document.getElementById(\"viewerContainer\"),\n viewerContainer: document.getElementById(\"viewer\"),\n eventBus: null,\n toolbar: {\n container: document.getElementById(\"toolbarViewer\"),\n numPages: document.getElementById(\"numPages\"),\n pageNumber: document.getElementById(\"pageNumber\"),\n scaleSelectContainer: document.getElementById(\"scaleSelectContainer\"),\n scaleSelect: document.getElementById(\"scaleSelect\"),\n customScaleOption: document.getElementById(\"customScaleOption\"),\n previous: document.getElementById(\"previous\"),\n next: document.getElementById(\"next\"),\n zoomIn: document.getElementById(\"zoomIn\"),\n zoomOut: document.getElementById(\"zoomOut\"),\n viewFind: document.getElementById(\"viewFind\"),\n openFile: document.getElementById(\"openFile\"),\n print: document.getElementById(\"print\"),\n presentationModeButton: document.getElementById(\"presentationMode\"),\n download: document.getElementById(\"download\"),\n viewBookmark: document.getElementById(\"viewBookmark\"),\n },\n secondaryToolbar: {\n toolbar: document.getElementById(\"secondaryToolbar\"),\n toggleButton: document.getElementById(\"secondaryToolbarToggle\"),\n toolbarButtonContainer: document.getElementById(\n \"secondaryToolbarButtonContainer\"\n ),\n presentationModeButton: document.getElementById(\n \"secondaryPresentationMode\"\n ),\n openFileButton: document.getElementById(\"secondaryOpenFile\"),\n printButton: document.getElementById(\"secondaryPrint\"),\n downloadButton: document.getElementById(\"secondaryDownload\"),\n viewBookmarkButton: document.getElementById(\"secondaryViewBookmark\"),\n firstPageButton: document.getElementById(\"firstPage\"),\n lastPageButton: document.getElementById(\"lastPage\"),\n pageRotateCwButton: document.getElementById(\"pageRotateCw\"),\n pageRotateCcwButton: document.getElementById(\"pageRotateCcw\"),\n cursorSelectToolButton: document.getElementById(\"cursorSelectTool\"),\n cursorHandToolButton: document.getElementById(\"cursorHandTool\"),\n scrollVerticalButton: document.getElementById(\"scrollVertical\"),\n scrollHorizontalButton: document.getElementById(\"scrollHorizontal\"),\n scrollWrappedButton: document.getElementById(\"scrollWrapped\"),\n spreadNoneButton: document.getElementById(\"spreadNone\"),\n spreadOddButton: document.getElementById(\"spreadOdd\"),\n spreadEvenButton: document.getElementById(\"spreadEven\"),\n documentPropertiesButton: document.getElementById(\"documentProperties\"),\n },\n fullscreen: {\n contextFirstPage: document.getElementById(\"contextFirstPage\"),\n contextLastPage: document.getElementById(\"contextLastPage\"),\n contextPageRotateCw: document.getElementById(\"contextPageRotateCw\"),\n contextPageRotateCcw: document.getElementById(\"contextPageRotateCcw\"),\n },\n sidebar: {\n // Divs (and sidebar button)\n outerContainer: document.getElementById(\"outerContainer\"),\n viewerContainer: document.getElementById(\"viewerContainer\"),\n toggleButton: document.getElementById(\"sidebarToggle\"),\n // Buttons\n thumbnailButton: document.getElementById(\"viewThumbnail\"),\n outlineButton: document.getElementById(\"viewOutline\"),\n attachmentsButton: document.getElementById(\"viewAttachments\"),\n // Views\n thumbnailView: document.getElementById(\"thumbnailView\"),\n outlineView: document.getElementById(\"outlineView\"),\n attachmentsView: document.getElementById(\"attachmentsView\"),\n },\n sidebarResizer: {\n outerContainer: document.getElementById(\"outerContainer\"),\n resizer: document.getElementById(\"sidebarResizer\"),\n },\n findBar: {\n bar: document.getElementById(\"findbar\"),\n toggleButton: document.getElementById(\"viewFind\"),\n findField: document.getElementById(\"findInput\"),\n highlightAllCheckbox: document.getElementById(\"findHighlightAll\"),\n caseSensitiveCheckbox: document.getElementById(\"findMatchCase\"),\n entireWordCheckbox: document.getElementById(\"findEntireWord\"),\n findMsg: document.getElementById(\"findMsg\"),\n findResultsCount: document.getElementById(\"findResultsCount\"),\n findPreviousButton: document.getElementById(\"findPrevious\"),\n findNextButton: document.getElementById(\"findNext\"),\n },\n passwordOverlay: {\n overlayName: \"passwordOverlay\",\n container: document.getElementById(\"passwordOverlay\"),\n label: document.getElementById(\"passwordText\"),\n input: document.getElementById(\"password\"),\n submitButton: document.getElementById(\"passwordSubmit\"),\n cancelButton: document.getElementById(\"passwordCancel\"),\n },\n documentProperties: {\n overlayName: \"documentPropertiesOverlay\",\n container: document.getElementById(\"documentPropertiesOverlay\"),\n closeButton: document.getElementById(\"documentPropertiesClose\"),\n fields: {\n fileName: document.getElementById(\"fileNameField\"),\n fileSize: document.getElementById(\"fileSizeField\"),\n title: document.getElementById(\"titleField\"),\n author: document.getElementById(\"authorField\"),\n subject: document.getElementById(\"subjectField\"),\n keywords: document.getElementById(\"keywordsField\"),\n creationDate: document.getElementById(\"creationDateField\"),\n modificationDate: document.getElementById(\"modificationDateField\"),\n creator: document.getElementById(\"creatorField\"),\n producer: document.getElementById(\"producerField\"),\n version: document.getElementById(\"versionField\"),\n pageCount: document.getElementById(\"pageCountField\"),\n pageSize: document.getElementById(\"pageSizeField\"),\n linearized: document.getElementById(\"linearizedField\"),\n },\n },\n errorWrapper: {\n container: document.getElementById(\"errorWrapper\"),\n errorMessage: document.getElementById(\"errorMessage\"),\n closeButton: document.getElementById(\"errorClose\"),\n errorMoreInfo: document.getElementById(\"errorMoreInfo\"),\n moreInfoButton: document.getElementById(\"errorShowMore\"),\n lessInfoButton: document.getElementById(\"errorShowLess\"),\n },\n printContainer: document.getElementById(\"printContainer\"),\n openFileInputName: \"fileInput\",\n debuggerScriptPath: \"./debugger.js\",\n };\n}\n\nfunction webViewerLoad() {\n const config = getViewerConfiguration();\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"PRODUCTION\")) {\n Promise.all([\n SystemJS.import(\"pdfjs-web/app.js\"),\n SystemJS.import(\"pdfjs-web/app_options.js\"),\n SystemJS.import(\"pdfjs-web/genericcom.js\"),\n SystemJS.import(\"pdfjs-web/pdf_print_service.js\"),\n ]).then(function([app, appOptions, ...otherModules]) {\n window.PDFViewerApplication = app.PDFViewerApplication;\n window.PDFViewerApplicationOptions = appOptions.AppOptions;\n app.PDFViewerApplication.run(config);\n });\n } else {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"CHROME\")) {\n pdfjsWebAppOptions.AppOptions.set(\"defaultUrl\", defaultUrl);\n }\n\n window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication;\n window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions;\n\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\")) {\n // Give custom implementations of the default viewer a simpler way to\n // set various `AppOptions`, by dispatching an event once all viewer\n // files are loaded but *before* the viewer initialization has run.\n const event = document.createEvent(\"CustomEvent\");\n event.initCustomEvent(\"webviewerloaded\", true, true, {});\n document.dispatchEvent(event);\n }\n\n pdfjsWebApp.PDFViewerApplication.run(config);\n }\n}\n\nif (\n document.readyState === \"interactive\" ||\n document.readyState === \"complete\"\n) {\n webViewerLoad();\n} else {\n document.addEventListener(\"DOMContentLoaded\", webViewerLoad, true);\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals PDFBug, Stats */\n\nimport {\n animationStarted,\n AutoPrintRegExp,\n DEFAULT_SCALE_VALUE,\n EventBus,\n getPDFFileNameFromURL,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n MAX_SCALE,\n MIN_SCALE,\n noContextMenuHandler,\n normalizeWheelEventDelta,\n parseQueryString,\n PresentationModeState,\n ProgressBar,\n RendererType,\n ScrollMode,\n SpreadMode,\n TextLayerMode,\n} from \"./ui_utils.js\";\nimport { AppOptions, OptionKind } from \"./app_options.js\";\nimport {\n build,\n createPromiseCapability,\n getDocument,\n getFilenameFromUrl,\n GlobalWorkerOptions,\n InvalidPDFException,\n LinkTarget,\n loadScript,\n MissingPDFException,\n OPS,\n PDFWorker,\n shadow,\n UnexpectedResponseException,\n UNSUPPORTED_FEATURES,\n version,\n} from \"pdfjs-lib\";\nimport { CursorTool, PDFCursorTools } from \"./pdf_cursor_tools.js\";\nimport { PDFRenderingQueue, RenderingStates } from \"./pdf_rendering_queue.js\";\nimport { PDFSidebar, SidebarView } from \"./pdf_sidebar.js\";\nimport { OverlayManager } from \"./overlay_manager.js\";\nimport { PasswordPrompt } from \"./password_prompt.js\";\nimport { PDFAttachmentViewer } from \"./pdf_attachment_viewer.js\";\nimport { PDFDocumentProperties } from \"./pdf_document_properties.js\";\nimport { PDFFindBar } from \"./pdf_find_bar.js\";\nimport { PDFFindController } from \"./pdf_find_controller.js\";\nimport { PDFHistory } from \"./pdf_history.js\";\nimport { PDFLinkService } from \"./pdf_link_service.js\";\nimport { PDFOutlineViewer } from \"./pdf_outline_viewer.js\";\nimport { PDFPresentationMode } from \"./pdf_presentation_mode.js\";\nimport { PDFSidebarResizer } from \"./pdf_sidebar_resizer.js\";\nimport { PDFThumbnailViewer } from \"./pdf_thumbnail_viewer.js\";\nimport { PDFViewer } from \"./pdf_viewer.js\";\nimport { SecondaryToolbar } from \"./secondary_toolbar.js\";\nimport { Toolbar } from \"./toolbar.js\";\nimport { ViewHistory } from \"./view_history.js\";\n\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; // ms\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000; // ms\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\n\nconst ViewOnLoad = {\n UNKNOWN: -1,\n PREVIOUS: 0, // Default value.\n INITIAL: 1,\n};\n\nclass DefaultExternalServices {\n constructor() {\n throw new Error(\"Cannot initialize DefaultExternalServices.\");\n }\n\n static updateFindControlState(data) {}\n\n static updateFindMatchesCount(data) {}\n\n static initPassiveLoading(callbacks) {}\n\n static fallback(data, callback) {}\n\n static reportTelemetry(data) {}\n\n static createDownloadManager(options) {\n throw new Error(\"Not implemented: createDownloadManager\");\n }\n\n static createPreferences() {\n throw new Error(\"Not implemented: createPreferences\");\n }\n\n static createL10n(options) {\n throw new Error(\"Not implemented: createL10n\");\n }\n\n static get supportsIntegratedFind() {\n return shadow(this, \"supportsIntegratedFind\", false);\n }\n\n static get supportsDocumentFonts() {\n return shadow(this, \"supportsDocumentFonts\", true);\n }\n\n static get supportedMouseWheelZoomModifierKeys() {\n return shadow(this, \"supportedMouseWheelZoomModifierKeys\", {\n ctrlKey: true,\n metaKey: true,\n });\n }\n}\n\nconst PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n _initializedCapability: createPromiseCapability(),\n fellback: false,\n appConfig: null,\n pdfDocument: null,\n pdfLoadingTask: null,\n printService: null,\n /** @type {PDFViewer} */\n pdfViewer: null,\n /** @type {PDFThumbnailViewer} */\n pdfThumbnailViewer: null,\n /** @type {PDFRenderingQueue} */\n pdfRenderingQueue: null,\n /** @type {PDFPresentationMode} */\n pdfPresentationMode: null,\n /** @type {PDFDocumentProperties} */\n pdfDocumentProperties: null,\n /** @type {PDFLinkService} */\n pdfLinkService: null,\n /** @type {PDFHistory} */\n pdfHistory: null,\n /** @type {PDFSidebar} */\n pdfSidebar: null,\n /** @type {PDFSidebarResizer} */\n pdfSidebarResizer: null,\n /** @type {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {ViewHistory} */\n store: null,\n /** @type {DownloadManager} */\n downloadManager: null,\n /** @type {OverlayManager} */\n overlayManager: null,\n /** @type {Preferences} */\n preferences: null,\n /** @type {Toolbar} */\n toolbar: null,\n /** @type {SecondaryToolbar} */\n secondaryToolbar: null,\n /** @type {EventBus} */\n eventBus: null,\n /** @type {IL10n} */\n l10n: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: window.parent !== window,\n url: \"\",\n baseUrl: \"\",\n externalServices: DefaultExternalServices,\n _boundEvents: {},\n contentDispositionFilename: null,\n\n // Called once when the document is loaded.\n async initialize(appConfig) {\n this.preferences = this.externalServices.createPreferences();\n this.appConfig = appConfig;\n\n await this._readPreferences();\n await this._parseHashParameters();\n await this._initializeL10n();\n\n if (\n this.isViewerEmbedded &&\n AppOptions.get(\"externalLinkTarget\") === LinkTarget.NONE\n ) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an