wupengfei 2 роки тому
батько
коміт
c1550063f8

+ 2 - 5
.idea/workspace.xml

@@ -1,10 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ChangeListManager">
-    <list default="true" id="1a36929e-c054-4875-a943-593a74e55fa4" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/application/api/controller/Report.php" beforeDir="false" afterPath="$PROJECT_DIR$/application/api/controller/Report.php" afterDir="false" />
-    </list>
+    <list default="true" id="1a36929e-c054-4875-a943-593a74e55fa4" name="Default Changelist" comment="" />
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -262,7 +259,7 @@
       <workItem from="1678495559564" duration="25187000" />
       <workItem from="1678668116151" duration="24851000" />
       <workItem from="1678754950693" duration="24679000" />
-      <workItem from="1678842152059" duration="19448000" />
+      <workItem from="1678842152059" duration="20125000" />
     </task>
     <servers />
   </component>

BIN
public/dist/Pig.pdf


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/css/chunk-2a2c19e8.64866a76.css


+ 1 - 0
public/dist/css/chunk-2cbfe8d2.02567503.css

@@ -0,0 +1 @@
+.warp[data-v-9abf0e58]{width:100vw;height:100%;position:relative}.box[data-v-9abf0e58]{width:100vw;height:100%;border:none;margin:0;padding:0;overflow:hidden}.loading[data-v-9abf0e58]{width:100%;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:999999999;display:flex;flex-direction:column;justify-content:center;align-items:center}.wrap[data-v-6032b4f3]{width:100%;height:100vh;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}iframe[data-v-6032b4f3]{width:100%;height:100vh;border:none}.watermark[data-v-6032b4f3]{position:absolute;bottom:1.333333rem;right:.533333rem;font-size:.533333rem;line-height:.8rem;padding:0 .266667rem;border-radius:.4rem;background-color:#f1f1f1;opacity:.8;pointer-events:none;z-index:999999}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/css/chunk-60c2dd9b.403e774b.css


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/css/chunk-67b2f0bf.4ff6485d.css


+ 1 - 0
public/dist/css/chunk-8cd907ea.f87e6b5d.css

@@ -0,0 +1 @@
+.warp[data-v-9abf0e58]{width:100vw;height:100%;position:relative}.box[data-v-9abf0e58]{width:100vw;height:100%;border:none;margin:0;padding:0;overflow:hidden}.loading[data-v-9abf0e58]{width:100%;height:100%;background:#fff;position:absolute;top:0;left:0;z-index:999999999;display:flex;flex-direction:column;justify-content:center;align-items:center}.pdf-box[data-v-307cbf80]{height:100vh;overflow:hidden}

Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/index.html


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/app.e2a71210.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/app.e2a71210.js.map


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-2a2c19e8.bf0565c9.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-2a2c19e8.bf0565c9.js.map


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-2cbfe8d2.e0d0331b.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-2cbfe8d2.e0d0331b.js.map


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-60c2dd9b.104236de.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-60c2dd9b.104236de.js.map


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-67b2f0bf.13c90d1d.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-67b2f0bf.13c90d1d.js.map


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-8cd907ea.4fe5007d.js


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
public/dist/js/chunk-8cd907ea.4fe5007d.js.map


BIN
public/dist/pdf/web/img/icon-115.png


BIN
public/dist/pdf/web/img/icon-116.png


BIN
public/dist/pdf/web/img/icon-117.png


BIN
public/dist/pdf/web/img/icon-118.png


BIN
public/dist/pdf/web/img/icon-119.png


BIN
public/dist/pdf/web/img/icon-128.png


+ 765 - 403
public/dist/pdf/web/viewer.html

@@ -23,336 +23,695 @@ See https://github.com/adobe-type-tools/cmap-resources
 <html dir="ltr" mozdisallowselectionprint>
 
 <head>
-  <meta charset="utf-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
-  <meta name="google" content="notranslate">
-  <meta http-equiv="Content-Type" content="text/html" charset="gb2312">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge" charset="utf-8" />
-  <title>PDF.js viewer</title>
-
-  <link rel="stylesheet" href="viewer.css">
-
-  <!-- This snippet is used in production (included from viewer.html) -->
-  <link rel="resource" type="application/l10n" href="locale/locale.properties">
-  <script src="../build/pdf.js"></script>
-  <script>console.log('63783876')</script>
-  <script src="wasm_exec.js"></script>
-  <script src="viewer.js"></script>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <meta name="google" content="notranslate">
+    <meta http-equiv="Content-Type" content="text/html" charset="gb2312">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" charset="utf-8"/>
+    <title>PDF.js viewer</title>
+
+    <link rel="stylesheet" href="viewer.css">
+
+    <!-- This snippet is used in production (included from viewer.html) -->
+    <link rel="resource" type="application/l10n" href="locale/locale.properties">
+    <script>
+        const isNoCopy = false;
+        // 禁止右键菜单
+        document.oncontextmenu = function () {
+            return isNoCopy;
+        };
+        // 禁止文字选择
+        document.onselectstart = function () {
+            return isNoCopy;
+        };
+        // 禁止复制
+        document.oncopy = function () {
+            return isNoCopy;
+        };
+        // 禁止剪切
+        document.oncut = function () {
+            return isNoCopy;
+        };
+
+        window.onkeydown = window.onkeyup = window.onkeypress = function (event) {
+            // 禁止使用F12,判断是否按下F12,F12键码为123
+            if (event.keyCode === 123) {
+                // 阻止默认事件
+                event.preventDefault();
+                window.event.returnValue = false;
+            }
+            // 禁用 ctrl + s 与 command + s
+            if ((event.ctrlKey || event.metaKey) && event.key === 's') {
+                // 阻止默认事件
+                event.preventDefault()
+                window.event.returnValue = false;
+            }
+        };
+
+        function disableContextMenu(e) {
+            e.preventDefault();
+        }
+
+        document.addEventListener("visibilitychange", function () {
+            if (document.hidden) {
+                // 取消禁用鼠标右键事件
+                document.removeEventListener("contextmenu", disableContextMenu);
+            } else {
+                // 禁用鼠标右键事件
+                document.addEventListener("contextmenu", disableContextMenu);
+            }
+        });
+
+        function formatQueryString(query) {
+            const params = new Map();
+            for (const [key, value] of new URLSearchParams(query)) {
+                params.set(key.toLowerCase(), value);
+            }
+            return params;
+        }
+
+        var watermarkText = formatQueryString(location.search).get('watermark_text');
+
+    </script>
+    <script src="../build/pdf.js"></script>
+    <script>console.log('63783876')</script>
+    <script src="wasm_exec.js"></script>
+    <script src="viewer.js"></script>
+
+    <style>
+        .search-wrap {
+            width: 100%;
+            height: 58px;
+            display: flex;
+            align-items: center;
+            padding: 0 12px;
+            box-sizing: border-box;
+            background: #FFFFFF;
+            position: relative;
+            z-index: 900;
+        }
+
+        .search-box {
+            flex: 1;
+            height: 38px;
+            display: flex;
+            align-items: center;
+            background-color: #F3F3F3;
+            border-radius: 40px;
+            padding: 0 7px 0 14px;
+            box-sizing: border-box;
+            position: relative;
+        }
+
+        .historical-search {
+            width: 100%;
+            position: absolute;
+            left: 0;
+            top: 45px;
+            background-color: #F3F3F3;
+            border-radius: 10px;
+            padding: 10px;
+            box-sizing: border-box;
+            display: flex;
+            flex-wrap: wrap;
+            /*display: none;*/
+            z-index: 999;
+        }
+
+        .historical-search-mask {
+            position: fixed;
+            left: 0;
+            top: 58px;
+            width: 100%;
+            height: 100%;
+            /*background: rgba(0, 0, 0, .2);*/
+        }
+
+        .historical-search label {
+            -webkit-user-select: none;
+            -moz-user-select: none;
+            user-select: none;
+            margin-right: 40px;
+            display: block;
+        }
+
+        .historical-search label:hover,
+        .historical-search input:focus-visible + label {
+            color: var(--toggled-btn-color);
+            background-color: var(--button-hover-color);
+        }
+
+        .historical-search .toolbarField[type="checkbox"]:checked + .toolbarLabel {
+            background-color: var(--toggled-btn-bg-color) !important;
+            color: var(--toggled-btn-color);
+        }
+
+        .search-icon {
+            width: 24px;
+            margin-right: 10px;
+        }
+
+        .search-input {
+            width: auto !important;
+            flex: 1 !important;
+            height: 38px;
+            display: block;
+            border: none;
+            background: none;
+            font-size: 14px;
+            outline-style: none;
+        }
+
+        .search-input::placeholder {
+            color: #A7A7A7;
+        }
+
+        .direction-box {
+            width: 53px;
+            height: 24px;
+            border: 1px solid #979797;
+            border-radius: 40px;
+            display: flex;
+            align-items: center;
+        }
+
+        .direction-box > button {
+            flex: 1;
+            display: flex;
+            border: none;
+            margin: 0;
+            padding: 0;
+            justify-content: center;
+            align-items: center;
+            border-right: 1px solid #D8D8D8;
+            box-sizing: border-box;
+            background: none;
+        }
+
+        .direction-box > button:last-child {
+            border-right: none;
+        }
+
+        .direction-box > button > img {
+            width: 16px;
+        }
+
+        .tool-box {
+            margin-left: 3px;
+            display: flex;
+            align-items: center;
+        }
+
+        .tool-box > button {
+            border: none;
+            padding: 0 6px;
+            border-right: 1px solid #D8D8D8;
+            box-sizing: border-box;
+            background: none;
+        }
+
+        .tool-box > button:last-child {
+            padding-right: 0;
+        }
+
+        .tool-box > button:last-child {
+            border-right: none;
+        }
+
+        .tool-box > button > img {
+            width: 26px;
+        }
+
+        .catalogue-btn {
+            color: #FFFFFF;
+            font-size: 13px;
+            font-weight: bold;
+            width: 72px;
+            height: 28px;
+            background-color: #2A63F3;
+            border-radius: 40px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            position: fixed;
+            top: 70%;
+            left: 12px;
+            z-index: 901;
+            border: none;
+        }
+
+        .catalogue-btn > img {
+            width: 14px;
+            margin-right: 3px;
+        }
+
+        #sidebarContainer {
+            /*position: fixed;*/
+            top: 0;
+            z-index: 903;
+        }
+
+        #sidebarContainerMask {
+            position: fixed;
+            top: 0;
+            left: 0;
+            width: 100%;
+            height: 100%;
+            /*background: rgba(0, 0, 0, .2);*/
+            z-index: 902;
+            display: none;
+        }
+
+        .sidebarOpen #sidebarContainerMask {
+            display: block;
+        }
+
+        .search-box .historical-search,
+        .search-box .historical-search-mask {
+            display: none;
+        }
+
+        .search-box.focus .historical-search,
+        .search-box.focus .historical-search-mask {
+            display: flex;
+        }
+    </style>
 
 </head>
 
 <body tabindex="1">
-  <div id="outerContainer">
 
-    <div id="sidebarContainer">
-      <div id="toolbarSidebar">
-        <div id="toolbarSidebarLeft">
-          <div id="sidebarViewButtons" class="splitToolbarButton toggled" role="radiogroup">
-            <button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2"
-              data-l10n-id="thumbs" role="radio" aria-checked="true" aria-controls="thumbnailView">
-              <span data-l10n-id="thumbs_label">Thumbnails</span>
-            </button>
-            <button id="viewOutline" class="toolbarButton"
-              title="Show Document Outline (double-click to expand/collapse all items)" tabindex="3"
-              data-l10n-id="document_outline" role="radio" aria-checked="false" aria-controls="outlineView">
-              <span data-l10n-id="document_outline_label">Document Outline</span>
-            </button>
-            <button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4"
-              data-l10n-id="attachments" role="radio" aria-checked="false" aria-controls="attachmentsView">
-              <span data-l10n-id="attachments_label">Attachments</span>
+<div id="outerContainer">
+    <button
+            type="button"
+            class="catalogue-btn"
+            id="sidebarToggle"
+            data-l10n-id="toggle_sidebar"
+            aria-expanded="false"
+            aria-controls="sidebarContainer"
+    >
+        <img src="./img/icon-128.png" alt="">
+        目录
+    </button>
+    <div class="search-wrap">
+        <div class="search-box" id="search-box">
+            <img src="./img/icon-115.png" class="search-icon" alt="">
+            <input
+                    type="text"
+                    id="findInput"
+                    class="search-input"
+                    placeholder="在文档中查找…"
+                    data-l10n-id="find_input"
+                    aria-invalid="false"
+            />
+            <div class="direction-box">
+                <button type="button" id="findPrevious" data-l10n-id="find_input">
+                    <img src="./img/icon-116.png" alt="">
+                </button>
+                <button type="button" id="findNext" data-l10n-id="find_next">
+                    <img src="./img/icon-117.png" alt="">
+                </button>
+            </div>
+            <div class="historical-search-mask" id="historical-search-mask"></div>
+            <div class="historical-search">
+                <div id="findbarOptionsOneContainer">
+                    <input type="checkbox" id="findHighlightAll" class="toolbarField" tabindex="94">
+                    <label for="findHighlightAll" class="toolbarLabel" data-l10n-id="find_highlight">Highlight
+                        All</label>
+                    <input type="checkbox" id="findMatchCase" class="toolbarField" tabindex="95">
+                    <label for="findMatchCase" class="toolbarLabel" data-l10n-id="find_match_case_label">Match
+                        Case</label>
+                </div>
+                <div id="findbarOptionsTwoContainer">
+                    <input type="checkbox" id="findMatchDiacritics" class="toolbarField" tabindex="96">
+                    <label for="findMatchDiacritics" class="toolbarLabel" data-l10n-id="find_match_diacritics_label">Match
+                        Diacritics</label>
+                    <input type="checkbox" id="findEntireWord" class="toolbarField" tabindex="97">
+                    <label for="findEntireWord" class="toolbarLabel" data-l10n-id="find_entire_word_label">Whole
+                        Words</label>
+                </div>
+                <div id="findbarMessageContainer" aria-live="polite">
+                    <span id="findResultsCount" class="toolbarLabel"></span>
+                    <span id="findMsg" class="toolbarLabel"></span>
+                </div>
+            </div>
+        </div>
+        <div class="tool-box">
+            <button type="button" id="zoomOut">
+                <img src="./img/icon-118.png" alt="">
             </button>
-            <button id="viewLayers" class="toolbarButton"
-              title="Show Layers (double-click to reset all layers to the default state)" tabindex="5"
-              data-l10n-id="layers" role="radio" aria-checked="false" aria-controls="layersView">
-              <span data-l10n-id="layers_label">Layers</span>
+            <button type="button" id="zoomIn">
+                <img src="./img/icon-119.png" alt="">
             </button>
-          </div>
         </div>
+    </div>
+    <script>
+        const searchBox = document.getElementById('search-box');
+        const findInput = document.getElementById("findInput");
+        const historicalSearchMask = document.getElementById('historical-search-mask');
+        findInput.addEventListener('focus', function () {
+            searchBox.classList.add('focus');
+        });
+        historicalSearchMask.addEventListener('click', function () {
+            searchBox.classList.remove('focus');
+        });
+    </script>
+    <div id="sidebarContainerMask"></div>
+    <div id="sidebarContainer">
+        <div id="toolbarSidebar">
+            <div id="toolbarSidebarLeft">
+                <div id="sidebarViewButtons" class="splitToolbarButton toggled" role="radiogroup">
+                    <button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2"
+                            data-l10n-id="thumbs" role="radio" aria-checked="true" aria-controls="thumbnailView">
+                        <span data-l10n-id="thumbs_label">Thumbnails</span>
+                    </button>
+                    <button id="viewOutline" class="toolbarButton"
+                            title="Show Document Outline (double-click to expand/collapse all items)" tabindex="3"
+                            data-l10n-id="document_outline" role="radio" aria-checked="false"
+                            aria-controls="outlineView">
+                        <span data-l10n-id="document_outline_label">Document Outline</span>
+                    </button>
+                    <button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4"
+                            data-l10n-id="attachments" role="radio" aria-checked="false"
+                            aria-controls="attachmentsView">
+                        <span data-l10n-id="attachments_label">Attachments</span>
+                    </button>
+                    <button id="viewLayers" class="toolbarButton"
+                            title="Show Layers (double-click to reset all layers to the default state)" tabindex="5"
+                            data-l10n-id="layers" role="radio" aria-checked="false" aria-controls="layersView">
+                        <span data-l10n-id="layers_label">Layers</span>
+                    </button>
+                </div>
+            </div>
 
-        <div id="toolbarSidebarRight">
-          <div id="outlineOptionsContainer" class="hidden">
-            <div class="verticalToolbarSeparator"></div>
+            <div id="toolbarSidebarRight">
+                <div id="outlineOptionsContainer" class="hidden">
+                    <div class="verticalToolbarSeparator"></div>
 
-            <button id="currentOutlineItem" class="toolbarButton" disabled="disabled" title="Find Current Outline Item"
-              tabindex="6" data-l10n-id="current_outline_item">
-              <span data-l10n-id="current_outline_item_label">Current Outline Item</span>
-            </button>
-          </div>
-        </div>
-      </div>
-      <div id="sidebarContent">
-        <div id="thumbnailView">
-        </div>
-        <div id="outlineView" class="hidden">
-        </div>
-        <div id="attachmentsView" class="hidden">
+                    <button id="currentOutlineItem" class="toolbarButton" disabled="disabled"
+                            title="Find Current Outline Item"
+                            tabindex="6" data-l10n-id="current_outline_item">
+                        <span data-l10n-id="current_outline_item_label">Current Outline Item</span>
+                    </button>
+                </div>
+            </div>
         </div>
-        <div id="layersView" class="hidden">
+        <div id="sidebarContent">
+            <div id="thumbnailView">
+            </div>
+            <div id="outlineView" class="hidden">
+            </div>
+            <div id="attachmentsView" class="hidden">
+            </div>
+            <div id="layersView" class="hidden">
+            </div>
         </div>
-      </div>
-      <div id="sidebarResizer"></div>
+        <div id="sidebarResizer"></div>
     </div> <!-- sidebarContainer -->
 
     <div id="mainContainer">
-      <div class="findbar hidden doorHanger" id="findbar">
-        <div id="findbarInputContainer">
-          <input id="findInput" class="toolbarField" title="Find" placeholder="Find in document…" tabindex="91"
-            data-l10n-id="find_input" aria-invalid="false">
-          <div class="splitToolbarButton">
-            <button id="findPrevious" class="toolbarButton" title="Find the previous occurrence of the phrase"
-              tabindex="92" data-l10n-id="find_previous">
-              <span data-l10n-id="find_previous_label">Previous</span>
-            </button>
-            <div class="splitToolbarButtonSeparator"></div>
-            <button id="findNext" class="toolbarButton" title="Find the next occurrence of the phrase" tabindex="93"
-              data-l10n-id="find_next">
-              <span data-l10n-id="find_next_label">Next</span>
-            </button>
-          </div>
-        </div>
+        <div class="findbar hidden doorHanger" id="findbar">
+            <div id="findbarInputContainer">
+                <input id="findInput" class="toolbarField" title="Find" placeholder="Find in document…" tabindex="91"
+                       data-l10n-id="find_input" aria-invalid="false">
+                <div class="splitToolbarButton">
+                    <button id="findPrevious" class="toolbarButton" title="Find the previous occurrence of the phrase"
+                            tabindex="92" data-l10n-id="find_previous">
+                        <span data-l10n-id="find_previous_label">Previous</span>
+                    </button>
+                    <div class="splitToolbarButtonSeparator"></div>
+                    <button id="findNext" class="toolbarButton" title="Find the next occurrence of the phrase"
+                            tabindex="93"
+                            data-l10n-id="find_next">
+                        <span data-l10n-id="find_next_label">Next</span>
+                    </button>
+                </div>
+            </div>
 
-        <div id="findbarOptionsOneContainer">
-          <input type="checkbox" id="findHighlightAll" class="toolbarField" tabindex="94">
-          <label for="findHighlightAll" class="toolbarLabel" data-l10n-id="find_highlight">Highlight All</label>
-          <input type="checkbox" id="findMatchCase" class="toolbarField" tabindex="95">
-          <label for="findMatchCase" class="toolbarLabel" data-l10n-id="find_match_case_label">Match Case</label>
-        </div>
-        <div id="findbarOptionsTwoContainer">
-          <input type="checkbox" id="findMatchDiacritics" class="toolbarField" tabindex="96">
-          <label for="findMatchDiacritics" class="toolbarLabel" data-l10n-id="find_match_diacritics_label">Match
-            Diacritics</label>
-          <input type="checkbox" id="findEntireWord" class="toolbarField" tabindex="97">
-          <label for="findEntireWord" class="toolbarLabel" data-l10n-id="find_entire_word_label">Whole Words</label>
-        </div>
+            <div id="findbarOptionsOneContainer">
+                <input type="checkbox" id="findHighlightAll" class="toolbarField" tabindex="94">
+                <label for="findHighlightAll" class="toolbarLabel" data-l10n-id="find_highlight">Highlight All</label>
+                <input type="checkbox" id="findMatchCase" class="toolbarField" tabindex="95">
+                <label for="findMatchCase" class="toolbarLabel" data-l10n-id="find_match_case_label">Match Case</label>
+            </div>
+            <div id="findbarOptionsTwoContainer">
+                <input type="checkbox" id="findMatchDiacritics" class="toolbarField" tabindex="96">
+                <label for="findMatchDiacritics" class="toolbarLabel" data-l10n-id="find_match_diacritics_label">Match
+                    Diacritics</label>
+                <input type="checkbox" id="findEntireWord" class="toolbarField" tabindex="97">
+                <label for="findEntireWord" class="toolbarLabel" data-l10n-id="find_entire_word_label">Whole
+                    Words</label>
+            </div>
 
-        <div id="findbarMessageContainer" aria-live="polite">
-          <span id="findResultsCount" class="toolbarLabel"></span>
-          <span id="findMsg" class="toolbarLabel"></span>
-        </div>
-      </div> <!-- findbar -->
-
-      <div class="editorParamsToolbar hidden doorHangerRight" id="editorFreeTextParamsToolbar">
-        <div class="editorParamsToolbarContainer">
-          <div class="editorParamsSetter">
-            <label for="editorFreeTextColor" class="editorParamsLabel"
-              data-l10n-id="editor_free_text_color">Color</label>
-            <input type="color" id="editorFreeTextColor" class="editorParamsColor" tabindex="100">
-          </div>
-          <div class="editorParamsSetter">
-            <label for="editorFreeTextFontSize" class="editorParamsLabel"
-              data-l10n-id="editor_free_text_size">Size</label>
-            <input type="range" id="editorFreeTextFontSize" class="editorParamsSlider" value="10" min="5" max="100"
-              step="1" tabindex="101">
-          </div>
-        </div>
-      </div>
-
-      <div class="editorParamsToolbar hidden doorHangerRight" id="editorInkParamsToolbar">
-        <div class="editorParamsToolbarContainer">
-          <div class="editorParamsSetter">
-            <label for="editorInkColor" class="editorParamsLabel" data-l10n-id="editor_ink_color">Color</label>
-            <input type="color" id="editorInkColor" class="editorParamsColor" tabindex="102">
-          </div>
-          <div class="editorParamsSetter">
-            <label for="editorInkThickness" class="editorParamsLabel"
-              data-l10n-id="editor_ink_thickness">Thickness</label>
-            <input type="range" id="editorInkThickness" class="editorParamsSlider" value="1" min="1" max="20" step="1"
-              tabindex="103">
-          </div>
-          <div class="editorParamsSetter">
-            <label for="editorInkOpacity" class="editorParamsLabel" data-l10n-id="editor_ink_opacity">Opacity</label>
-            <input type="range" id="editorInkOpacity" class="editorParamsSlider" value="100" min="1" max="100" step="1"
-              tabindex="104">
-          </div>
+            <div id="findbarMessageContainer" aria-live="polite">
+                <span id="findResultsCount" class="toolbarLabel"></span>
+                <span id="findMsg" class="toolbarLabel"></span>
+            </div>
+        </div> <!-- findbar -->
+
+        <div class="editorParamsToolbar hidden doorHangerRight" id="editorFreeTextParamsToolbar">
+            <div class="editorParamsToolbarContainer">
+                <div class="editorParamsSetter">
+                    <label for="editorFreeTextColor" class="editorParamsLabel"
+                           data-l10n-id="editor_free_text_color">Color</label>
+                    <input type="color" id="editorFreeTextColor" class="editorParamsColor" tabindex="100">
+                </div>
+                <div class="editorParamsSetter">
+                    <label for="editorFreeTextFontSize" class="editorParamsLabel"
+                           data-l10n-id="editor_free_text_size">Size</label>
+                    <input type="range" id="editorFreeTextFontSize" class="editorParamsSlider" value="10" min="5"
+                           max="100"
+                           step="1" tabindex="101">
+                </div>
+            </div>
         </div>
-      </div>
-
-      <div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
-        <div id="secondaryToolbarButtonContainer">
-          <button id="secondaryOpenFile" class="secondaryToolbarButton visibleLargeView" title="Open File" tabindex="51"
-            data-l10n-id="open_file">
-            <span data-l10n-id="open_file_label">Open</span>
-          </button>
-
-          <button id="secondaryPrint" class="secondaryToolbarButton visibleMediumView" title="Print" tabindex="52"
-            data-l10n-id="print">
-            <span data-l10n-id="print_label">Print</span>
-          </button>
-
-          <button id="secondaryDownload" class="secondaryToolbarButton visibleMediumView" title="Save" tabindex="53"
-            data-l10n-id="save">
-            <span data-l10n-id="save_label">Save</span>
-          </button>
-
-          <div class="horizontalToolbarSeparator visibleLargeView"></div>
-
-          <button id="presentationMode" class="secondaryToolbarButton" title="Switch to Presentation Mode" tabindex="54"
-            data-l10n-id="presentation_mode">
-            <span data-l10n-id="presentation_mode_label">Presentation Mode</span>
-          </button>
-
-          <a href="#" id="viewBookmark" class="secondaryToolbarButton" title="Current view (copy or open in new window)"
-            tabindex="55" data-l10n-id="bookmark">
-            <span data-l10n-id="bookmark_label">Current View</span>
-          </a>
-
-          <div class="horizontalToolbarSeparator"></div>
-
-          <button id="firstPage" class="secondaryToolbarButton" title="Go to First Page" tabindex="56"
-            data-l10n-id="first_page">
-            <span data-l10n-id="first_page_label">Go to First Page</span>
-          </button>
-          <button id="lastPage" class="secondaryToolbarButton" title="Go to Last Page" tabindex="57"
-            data-l10n-id="last_page">
-            <span data-l10n-id="last_page_label">Go to Last Page</span>
-          </button>
-
-          <div class="horizontalToolbarSeparator"></div>
-
-          <button id="pageRotateCw" class="secondaryToolbarButton" title="Rotate Clockwise" tabindex="58"
-            data-l10n-id="page_rotate_cw">
-            <span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
-          </button>
-          <button id="pageRotateCcw" class="secondaryToolbarButton" title="Rotate Counterclockwise" tabindex="59"
-            data-l10n-id="page_rotate_ccw">
-            <span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
-          </button>
-
-          <div class="horizontalToolbarSeparator"></div>
-
-          <div id="cursorToolButtons" role="radiogroup">
-            <button id="cursorSelectTool" class="secondaryToolbarButton toggled" title="Enable Text Selection Tool"
-              tabindex="60" data-l10n-id="cursor_text_select_tool" role="radio" aria-checked="true">
-              <span data-l10n-id="cursor_text_select_tool_label">Text Selection Tool</span>
-            </button>
-            <button id="cursorHandTool" class="secondaryToolbarButton" title="Enable Hand Tool" tabindex="61"
-              data-l10n-id="cursor_hand_tool" role="radio" aria-checked="false">
-              <span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>
-            </button>
-          </div>
 
-          <div class="horizontalToolbarSeparator"></div>
+        <div class="editorParamsToolbar hidden doorHangerRight" id="editorInkParamsToolbar">
+            <div class="editorParamsToolbarContainer">
+                <div class="editorParamsSetter">
+                    <label for="editorInkColor" class="editorParamsLabel" data-l10n-id="editor_ink_color">Color</label>
+                    <input type="color" id="editorInkColor" class="editorParamsColor" tabindex="102">
+                </div>
+                <div class="editorParamsSetter">
+                    <label for="editorInkThickness" class="editorParamsLabel"
+                           data-l10n-id="editor_ink_thickness">Thickness</label>
+                    <input type="range" id="editorInkThickness" class="editorParamsSlider" value="1" min="1" max="20"
+                           step="1"
+                           tabindex="103">
+                </div>
+                <div class="editorParamsSetter">
+                    <label for="editorInkOpacity" class="editorParamsLabel"
+                           data-l10n-id="editor_ink_opacity">Opacity</label>
+                    <input type="range" id="editorInkOpacity" class="editorParamsSlider" value="100" min="1" max="100"
+                           step="1"
+                           tabindex="104">
+                </div>
+            </div>
+        </div>
 
-          <div id="scrollModeButtons" role="radiogroup">
-            <button id="scrollPage" class="secondaryToolbarButton" title="Use Page Scrolling" tabindex="62"
-              data-l10n-id="scroll_page" role="radio" aria-checked="false">
-              <span data-l10n-id="scroll_page_label">Page Scrolling</span>
-            </button>
-            <button id="scrollVertical" class="secondaryToolbarButton toggled" title="Use Vertical Scrolling"
-              tabindex="63" data-l10n-id="scroll_vertical" role="radio" aria-checked="true">
-              <span data-l10n-id="scroll_vertical_label">Vertical Scrolling</span>
-            </button>
-            <button id="scrollHorizontal" class="secondaryToolbarButton" title="Use Horizontal Scrolling" tabindex="64"
-              data-l10n-id="scroll_horizontal" role="radio" aria-checked="false">
-              <span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
-            </button>
-            <button id="scrollWrapped" class="secondaryToolbarButton" title="Use Wrapped Scrolling" tabindex="65"
-              data-l10n-id="scroll_wrapped" role="radio" aria-checked="false">
-              <span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
-            </button>
-          </div>
+        <div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
+            <div id="secondaryToolbarButtonContainer">
+                <button id="secondaryOpenFile" class="secondaryToolbarButton visibleLargeView" title="Open File"
+                        tabindex="51"
+                        data-l10n-id="open_file">
+                    <span data-l10n-id="open_file_label">Open</span>
+                </button>
 
-          <div class="horizontalToolbarSeparator"></div>
+                <button id="secondaryPrint" class="secondaryToolbarButton visibleMediumView" title="Print" tabindex="52"
+                        data-l10n-id="print">
+                    <span data-l10n-id="print_label">Print</span>
+                </button>
 
-          <div id="spreadModeButtons" role="radiogroup">
-            <button id="spreadNone" class="secondaryToolbarButton toggled" title="Do not join page spreads"
-              tabindex="66" data-l10n-id="spread_none" role="radio" aria-checked="true">
-              <span data-l10n-id="spread_none_label">No Spreads</span>
-            </button>
-            <button id="spreadOdd" class="secondaryToolbarButton"
-              title="Join page spreads starting with odd-numbered pages" tabindex="67" data-l10n-id="spread_odd"
-              role="radio" aria-checked="false">
-              <span data-l10n-id="spread_odd_label">Odd Spreads</span>
-            </button>
-            <button id="spreadEven" class="secondaryToolbarButton"
-              title="Join page spreads starting with even-numbered pages" tabindex="68" data-l10n-id="spread_even"
-              role="radio" aria-checked="false">
-              <span data-l10n-id="spread_even_label">Even Spreads</span>
-            </button>
-          </div>
+                <button id="secondaryDownload" class="secondaryToolbarButton visibleMediumView" title="Save"
+                        tabindex="53"
+                        data-l10n-id="save">
+                    <span data-l10n-id="save_label">Save</span>
+                </button>
 
-          <div class="horizontalToolbarSeparator"></div>
+                <div class="horizontalToolbarSeparator visibleLargeView"></div>
 
-          <button id="documentProperties" class="secondaryToolbarButton" title="Document Properties…" tabindex="69"
-            data-l10n-id="document_properties" aria-controls="documentPropertiesDialog">
-            <span data-l10n-id="document_properties_label">Document Properties…</span>
-          </button>
-        </div>
-      </div> <!-- secondaryToolbar -->
-
-      <div class="toolbar">
-        <div id="toolbarContainer">
-          <div id="toolbarViewer">
-            <div id="toolbarViewerLeft">
-              <button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11"
-                data-l10n-id="toggle_sidebar" aria-expanded="false" aria-controls="sidebarContainer">
-                <span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
-              </button>
-              <div class="toolbarButtonSpacer"></div>
-              <button id="viewFind" class="toolbarButton" title="Find in Document" tabindex="12" data-l10n-id="findbar"
-                aria-expanded="false" aria-controls="findbar">
-                <span data-l10n-id="findbar_label">Find</span>
-              </button>
-              <div class="splitToolbarButton hiddenSmallView">
-                <button class="toolbarButton" title="Previous Page" id="previous" tabindex="13" data-l10n-id="previous">
-                  <span data-l10n-id="previous_label">Previous</span>
-                </button>
-                <div class="splitToolbarButtonSeparator"></div>
-                <button class="toolbarButton" title="Next Page" id="next" tabindex="14" data-l10n-id="next">
-                  <span data-l10n-id="next_label">Next</span>
+                <button id="presentationMode" class="secondaryToolbarButton" title="Switch to Presentation Mode"
+                        tabindex="54"
+                        data-l10n-id="presentation_mode">
+                    <span data-l10n-id="presentation_mode_label">Presentation Mode</span>
                 </button>
-              </div>
-              <input type="number" id="pageNumber" class="toolbarField" title="Page" value="1" min="1" tabindex="15"
-                data-l10n-id="page" autocomplete="off">
-              <span id="numPages" class="toolbarLabel"></span>
-            </div>
-            <div id="toolbarViewerRight" style="display: none;">
-              <button id="openFile" class="toolbarButton hiddenLargeView" title="Open File" tabindex="31"
-                data-l10n-id="open_file">
-                <span data-l10n-id="open_file_label">Open</span>
-              </button>
-
-              <button id="print" class="toolbarButton hiddenMediumView" title="Print" tabindex="32"
-                data-l10n-id="print">
-                <span data-l10n-id="print_label">Print</span>
-              </button>
-
-              <button id="download" class="toolbarButton hiddenMediumView" title="Save" tabindex="33"
-                data-l10n-id="save">
-                <span data-l10n-id="save_label">Save</span>
-              </button>
-
-              <div class="verticalToolbarSeparator hiddenMediumView"></div>
-
-              <div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
-                <button id="editorFreeText" class="toolbarButton" disabled="disabled" title="Text" role="radio"
-                  aria-checked="false" tabindex="34" data-l10n-id="editor_free_text2">
-                  <span data-l10n-id="editor_free_text2_label">Text</span>
+
+                <a href="#" id="viewBookmark" class="secondaryToolbarButton"
+                   title="Current view (copy or open in new window)"
+                   tabindex="55" data-l10n-id="bookmark">
+                    <span data-l10n-id="bookmark_label">Current View</span>
+                </a>
+
+                <div class="horizontalToolbarSeparator"></div>
+
+                <button id="firstPage" class="secondaryToolbarButton" title="Go to First Page" tabindex="56"
+                        data-l10n-id="first_page">
+                    <span data-l10n-id="first_page_label">Go to First Page</span>
                 </button>
-                <button id="editorInk" class="toolbarButton" disabled="disabled" title="Draw" role="radio"
-                  aria-checked="false" tabindex="35" data-l10n-id="editor_ink2">
-                  <span data-l10n-id="editor_ink2_label">Draw</span>
+                <button id="lastPage" class="secondaryToolbarButton" title="Go to Last Page" tabindex="57"
+                        data-l10n-id="last_page">
+                    <span data-l10n-id="last_page_label">Go to Last Page</span>
                 </button>
-              </div>
 
-              <div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
+                <div class="horizontalToolbarSeparator"></div>
 
-              <button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="48" data-l10n-id="tools"
-                aria-expanded="false" aria-controls="secondaryToolbar">
-                <span data-l10n-id="tools_label">Tools</span>
-              </button>
-            </div>
-            <div id="toolbarViewerMiddle">
-              <div class="splitToolbarButton">
-                <button id="zoomOut" class="toolbarButton" title="Zoom Out" tabindex="21" data-l10n-id="zoom_out">
-                  <span data-l10n-id="zoom_out_label">Zoom Out</span>
+                <button id="pageRotateCw" class="secondaryToolbarButton" title="Rotate Clockwise" tabindex="58"
+                        data-l10n-id="page_rotate_cw">
+                    <span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
+                </button>
+                <button id="pageRotateCcw" class="secondaryToolbarButton" title="Rotate Counterclockwise" tabindex="59"
+                        data-l10n-id="page_rotate_ccw">
+                    <span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
                 </button>
-                <div class="splitToolbarButtonSeparator"></div>
-                <button id="zoomIn" class="toolbarButton" title="Zoom In" tabindex="22" data-l10n-id="zoom_in">
-                  <span data-l10n-id="zoom_in_label">Zoom In</span>
+
+                <div class="horizontalToolbarSeparator"></div>
+
+                <div id="cursorToolButtons" role="radiogroup">
+                    <button id="cursorSelectTool" class="secondaryToolbarButton toggled"
+                            title="Enable Text Selection Tool"
+                            tabindex="60" data-l10n-id="cursor_text_select_tool" role="radio" aria-checked="true">
+                        <span data-l10n-id="cursor_text_select_tool_label">Text Selection Tool</span>
+                    </button>
+                    <button id="cursorHandTool" class="secondaryToolbarButton" title="Enable Hand Tool" tabindex="61"
+                            data-l10n-id="cursor_hand_tool" role="radio" aria-checked="false">
+                        <span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>
+                    </button>
+                </div>
+
+                <div class="horizontalToolbarSeparator"></div>
+
+                <div id="scrollModeButtons" role="radiogroup">
+                    <button id="scrollPage" class="secondaryToolbarButton" title="Use Page Scrolling" tabindex="62"
+                            data-l10n-id="scroll_page" role="radio" aria-checked="false">
+                        <span data-l10n-id="scroll_page_label">Page Scrolling</span>
+                    </button>
+                    <button id="scrollVertical" class="secondaryToolbarButton toggled" title="Use Vertical Scrolling"
+                            tabindex="63" data-l10n-id="scroll_vertical" role="radio" aria-checked="true">
+                        <span data-l10n-id="scroll_vertical_label">Vertical Scrolling</span>
+                    </button>
+                    <button id="scrollHorizontal" class="secondaryToolbarButton" title="Use Horizontal Scrolling"
+                            tabindex="64"
+                            data-l10n-id="scroll_horizontal" role="radio" aria-checked="false">
+                        <span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
+                    </button>
+                    <button id="scrollWrapped" class="secondaryToolbarButton" title="Use Wrapped Scrolling"
+                            tabindex="65"
+                            data-l10n-id="scroll_wrapped" role="radio" aria-checked="false">
+                        <span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
+                    </button>
+                </div>
+
+                <div class="horizontalToolbarSeparator"></div>
+
+                <div id="spreadModeButtons" role="radiogroup">
+                    <button id="spreadNone" class="secondaryToolbarButton toggled" title="Do not join page spreads"
+                            tabindex="66" data-l10n-id="spread_none" role="radio" aria-checked="true">
+                        <span data-l10n-id="spread_none_label">No Spreads</span>
+                    </button>
+                    <button id="spreadOdd" class="secondaryToolbarButton"
+                            title="Join page spreads starting with odd-numbered pages" tabindex="67"
+                            data-l10n-id="spread_odd"
+                            role="radio" aria-checked="false">
+                        <span data-l10n-id="spread_odd_label">Odd Spreads</span>
+                    </button>
+                    <button id="spreadEven" class="secondaryToolbarButton"
+                            title="Join page spreads starting with even-numbered pages" tabindex="68"
+                            data-l10n-id="spread_even"
+                            role="radio" aria-checked="false">
+                        <span data-l10n-id="spread_even_label">Even Spreads</span>
+                    </button>
+                </div>
+
+                <div class="horizontalToolbarSeparator"></div>
+
+                <button id="documentProperties" class="secondaryToolbarButton" title="Document Properties…"
+                        tabindex="69"
+                        data-l10n-id="document_properties" aria-controls="documentPropertiesDialog">
+                    <span data-l10n-id="document_properties_label">Document Properties…</span>
                 </button>
-              </div>
-              <span id="scaleSelectContainer" class="dropdownToolbarButton">
+            </div>
+        </div> <!-- secondaryToolbar -->
+
+        <div class="toolbar">
+            <div id="toolbarContainer" style="display: none">
+                <div id="toolbarViewer">
+                    <div id="toolbarViewerLeft">
+                        <!--                        <button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11"-->
+                        <!--                                data-l10n-id="toggle_sidebar" aria-expanded="false" aria-controls="sidebarContainer">-->
+                        <!--                            <span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>-->
+                        <!--                        </button>-->
+                        <div class="toolbarButtonSpacer"></div>
+                        <button id="viewFind" class="toolbarButton" title="Find in Document" tabindex="12"
+                                data-l10n-id="findbar"
+                                aria-expanded="false" aria-controls="findbar">
+                            <span data-l10n-id="findbar_label">Find</span>
+                        </button>
+                        <div class="splitToolbarButton hiddenSmallView">
+                            <button class="toolbarButton" title="Previous Page" id="previous" tabindex="13"
+                                    data-l10n-id="previous">
+                                <span data-l10n-id="previous_label">Previous</span>
+                            </button>
+                            <div class="splitToolbarButtonSeparator"></div>
+                            <button class="toolbarButton" title="Next Page" id="next" tabindex="14" data-l10n-id="next">
+                                <span data-l10n-id="next_label">Next</span>
+                            </button>
+                        </div>
+                        <input type="number" id="pageNumber" class="toolbarField" title="Page" value="1" min="1"
+                               tabindex="15"
+                               data-l10n-id="page" autocomplete="off">
+                        <span id="numPages" class="toolbarLabel"></span>
+                    </div>
+                    <div id="toolbarViewerRight" style="display: none;">
+                        <button id="openFile" class="toolbarButton hiddenLargeView" title="Open File" tabindex="31"
+                                data-l10n-id="open_file">
+                            <span data-l10n-id="open_file_label">Open</span>
+                        </button>
+
+                        <button id="print" class="toolbarButton hiddenMediumView" title="Print" tabindex="32"
+                                data-l10n-id="print">
+                            <span data-l10n-id="print_label">Print</span>
+                        </button>
+
+                        <button id="download" class="toolbarButton hiddenMediumView" title="Save" tabindex="33"
+                                data-l10n-id="save">
+                            <span data-l10n-id="save_label">Save</span>
+                        </button>
+
+                        <div class="verticalToolbarSeparator hiddenMediumView"></div>
+
+                        <div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
+                            <button id="editorFreeText" class="toolbarButton" disabled="disabled" title="Text"
+                                    role="radio"
+                                    aria-checked="false" tabindex="34" data-l10n-id="editor_free_text2">
+                                <span data-l10n-id="editor_free_text2_label">Text</span>
+                            </button>
+                            <button id="editorInk" class="toolbarButton" disabled="disabled" title="Draw" role="radio"
+                                    aria-checked="false" tabindex="35" data-l10n-id="editor_ink2">
+                                <span data-l10n-id="editor_ink2_label">Draw</span>
+                            </button>
+                        </div>
+
+                        <div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
+
+                        <button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="48"
+                                data-l10n-id="tools"
+                                aria-expanded="false" aria-controls="secondaryToolbar">
+                            <span data-l10n-id="tools_label">Tools</span>
+                        </button>
+                    </div>
+                    <div id="toolbarViewerMiddle">
+                        <div class="splitToolbarButton">
+                            <button id="zoomOut" class="toolbarButton" title="Zoom Out" tabindex="21"
+                                    data-l10n-id="zoom_out">
+                                <span data-l10n-id="zoom_out_label">Zoom Out</span>
+                            </button>
+                            <div class="splitToolbarButtonSeparator"></div>
+                            <button id="zoomIn" class="toolbarButton" title="Zoom In" tabindex="22"
+                                    data-l10n-id="zoom_in">
+                                <span data-l10n-id="zoom_in_label">Zoom In</span>
+                            </button>
+                        </div>
+                        <span id="scaleSelectContainer" class="dropdownToolbarButton">
                 <select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
                   <option id="pageAutoOption" title="" value="auto" selected="selected" data-l10n-id="page_scale_auto">
                     Automatic Zoom</option>
@@ -380,121 +739,124 @@ See https://github.com/adobe-type-tools/cmap-resources
                   </option>
                 </select>
               </span>
+                    </div>
+                </div>
+                <div id="loadingBar">
+                    <div class="progress">
+                        <div class="glimmer">
+                        </div>
+                    </div>
+                </div>
             </div>
-          </div>
-          <div id="loadingBar">
-            <div class="progress">
-              <div class="glimmer">
-              </div>
-            </div>
-          </div>
         </div>
-      </div>
 
-      <div id="viewerContainer" tabindex="0">
-        <div id="viewer" class="pdfViewer"></div>
-      </div>
+        <div id="viewerContainer" tabindex="0" style="top: 58px">
+            <div id="viewer" class="pdfViewer"></div>
+        </div>
     </div> <!-- mainContainer -->
 
     <div id="dialogContainer">
-      <dialog id="passwordDialog">
-        <div class="row">
-          <label for="password" id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF
-            file:</label>
-        </div>
-        <div class="row">
-          <input type="password" id="password" class="toolbarField">
-        </div>
-        <div class="buttonRow">
-          <button id="passwordCancel" class="dialogButton"><span data-l10n-id="password_cancel">Cancel</span></button>
-          <button id="passwordSubmit" class="dialogButton"><span data-l10n-id="password_ok">OK</span></button>
-        </div>
-      </dialog>
-      <dialog id="documentPropertiesDialog">
-        <div class="row">
-          <span id="fileNameLabel" data-l10n-id="document_properties_file_name">File name:</span>
-          <p id="fileNameField" aria-labelledby="fileNameLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="fileSizeLabel" data-l10n-id="document_properties_file_size">File size:</span>
-          <p id="fileSizeField" aria-labelledby="fileSizeLabel">-</p>
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-          <span id="titleLabel" data-l10n-id="document_properties_title">Title:</span>
-          <p id="titleField" aria-labelledby="titleLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="authorLabel" data-l10n-id="document_properties_author">Author:</span>
-          <p id="authorField" aria-labelledby="authorLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="subjectLabel" data-l10n-id="document_properties_subject">Subject:</span>
-          <p id="subjectField" aria-labelledby="subjectLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="keywordsLabel" data-l10n-id="document_properties_keywords">Keywords:</span>
-          <p id="keywordsField" aria-labelledby="keywordsLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="creationDateLabel" data-l10n-id="document_properties_creation_date">Creation Date:</span>
-          <p id="creationDateField" aria-labelledby="creationDateLabel">-</p>
-        </div>
-        <div class="row">
+        <dialog id="passwordDialog">
+            <div class="row">
+                <label for="password" id="passwordText" data-l10n-id="password_label">Enter the password to open this
+                    PDF
+                    file:</label>
+            </div>
+            <div class="row">
+                <input type="password" id="password" class="toolbarField">
+            </div>
+            <div class="buttonRow">
+                <button id="passwordCancel" class="dialogButton"><span data-l10n-id="password_cancel">Cancel</span>
+                </button>
+                <button id="passwordSubmit" class="dialogButton"><span data-l10n-id="password_ok">OK</span></button>
+            </div>
+        </dialog>
+        <dialog id="documentPropertiesDialog">
+            <div class="row">
+                <span id="fileNameLabel" data-l10n-id="document_properties_file_name">File name:</span>
+                <p id="fileNameField" aria-labelledby="fileNameLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="fileSizeLabel" data-l10n-id="document_properties_file_size">File size:</span>
+                <p id="fileSizeField" aria-labelledby="fileSizeLabel">-</p>
+            </div>
+            <div class="separator"></div>
+            <div class="row">
+                <span id="titleLabel" data-l10n-id="document_properties_title">Title:</span>
+                <p id="titleField" aria-labelledby="titleLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="authorLabel" data-l10n-id="document_properties_author">Author:</span>
+                <p id="authorField" aria-labelledby="authorLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="subjectLabel" data-l10n-id="document_properties_subject">Subject:</span>
+                <p id="subjectField" aria-labelledby="subjectLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="keywordsLabel" data-l10n-id="document_properties_keywords">Keywords:</span>
+                <p id="keywordsField" aria-labelledby="keywordsLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="creationDateLabel" data-l10n-id="document_properties_creation_date">Creation Date:</span>
+                <p id="creationDateField" aria-labelledby="creationDateLabel">-</p>
+            </div>
+            <div class="row">
           <span id="modificationDateLabel" data-l10n-id="document_properties_modification_date">Modification
             Date:</span>
-          <p id="modificationDateField" aria-labelledby="modificationDateLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="creatorLabel" data-l10n-id="document_properties_creator">Creator:</span>
-          <p id="creatorField" aria-labelledby="creatorLabel">-</p>
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-          <span id="producerLabel" data-l10n-id="document_properties_producer">PDF Producer:</span>
-          <p id="producerField" aria-labelledby="producerLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="versionLabel" data-l10n-id="document_properties_version">PDF Version:</span>
-          <p id="versionField" aria-labelledby="versionLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="pageCountLabel" data-l10n-id="document_properties_page_count">Page Count:</span>
-          <p id="pageCountField" aria-labelledby="pageCountLabel">-</p>
-        </div>
-        <div class="row">
-          <span id="pageSizeLabel" data-l10n-id="document_properties_page_size">Page Size:</span>
-          <p id="pageSizeField" aria-labelledby="pageSizeLabel">-</p>
-        </div>
-        <div class="separator"></div>
-        <div class="row">
-          <span id="linearizedLabel" data-l10n-id="document_properties_linearized">Fast Web View:</span>
-          <p id="linearizedField" aria-labelledby="linearizedLabel">-</p>
-        </div>
-        <div class="buttonRow">
-          <button id="documentPropertiesClose" class="dialogButton"><span
-              data-l10n-id="document_properties_close">Close</span></button>
-        </div>
-      </dialog>
-      <dialog id="printServiceDialog" style="min-width: 200px;">
-        <div class="row">
-          <span data-l10n-id="print_progress_message">Preparing document for printing…</span>
-        </div>
-        <div class="row">
-          <progress value="0" max="100"></progress>
-          <span data-l10n-id="print_progress_percent" data-l10n-args='{ "progress": 0 }'
-            class="relative-progress">0%</span>
-        </div>
-        <div class="buttonRow">
-          <button id="printCancel" class="dialogButton"><span data-l10n-id="print_progress_close">Cancel</span></button>
-        </div>
-      </dialog>
+                <p id="modificationDateField" aria-labelledby="modificationDateLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="creatorLabel" data-l10n-id="document_properties_creator">Creator:</span>
+                <p id="creatorField" aria-labelledby="creatorLabel">-</p>
+            </div>
+            <div class="separator"></div>
+            <div class="row">
+                <span id="producerLabel" data-l10n-id="document_properties_producer">PDF Producer:</span>
+                <p id="producerField" aria-labelledby="producerLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="versionLabel" data-l10n-id="document_properties_version">PDF Version:</span>
+                <p id="versionField" aria-labelledby="versionLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="pageCountLabel" data-l10n-id="document_properties_page_count">Page Count:</span>
+                <p id="pageCountField" aria-labelledby="pageCountLabel">-</p>
+            </div>
+            <div class="row">
+                <span id="pageSizeLabel" data-l10n-id="document_properties_page_size">Page Size:</span>
+                <p id="pageSizeField" aria-labelledby="pageSizeLabel">-</p>
+            </div>
+            <div class="separator"></div>
+            <div class="row">
+                <span id="linearizedLabel" data-l10n-id="document_properties_linearized">Fast Web View:</span>
+                <p id="linearizedField" aria-labelledby="linearizedLabel">-</p>
+            </div>
+            <div class="buttonRow">
+                <button id="documentPropertiesClose" class="dialogButton"><span
+                        data-l10n-id="document_properties_close">Close</span></button>
+            </div>
+        </dialog>
+        <dialog id="printServiceDialog" style="min-width: 200px;">
+            <div class="row">
+                <span data-l10n-id="print_progress_message">Preparing document for printing…</span>
+            </div>
+            <div class="row">
+                <progress value="0" max="100"></progress>
+                <span data-l10n-id="print_progress_percent" data-l10n-args='{ "progress": 0 }'
+                      class="relative-progress">0%</span>
+            </div>
+            <div class="buttonRow">
+                <button id="printCancel" class="dialogButton"><span data-l10n-id="print_progress_close">Cancel</span>
+                </button>
+            </div>
+        </dialog>
     </div> <!-- dialogContainer -->
 
-  </div> <!-- outerContainer -->
-  <div id="printContainer"></div>
+</div> <!-- outerContainer -->
+<div id="printContainer"></div>
 
-  <input type="file" id="fileInput" class="hidden">
+<input type="file" id="fileInput" class="hidden">
 </body>
 
 </html>

+ 28 - 17
public/dist/pdf/web/viewer.js

@@ -7222,6 +7222,7 @@ class PDFSidebar {
     this.pdfThumbnailViewer = pdfThumbnailViewer;
     this.outerContainer = elements.outerContainer;
     this.sidebarContainer = elements.sidebarContainer;
+    this.sidebarContainerMask = elements.sidebarContainerMask;
     this.toggleButton = elements.toggleButton;
     this.thumbnailButton = elements.thumbnailButton;
     this.outlineButton = elements.outlineButton;
@@ -7415,6 +7416,9 @@ class PDFSidebar {
         this.outerContainer.classList.remove("sidebarMoving");
       }
     });
+    this.sidebarContainerMask.addEventListener("click", () => {
+      this.close();
+    });
     this.toggleButton.addEventListener("click", () => {
       this.toggle();
     });
@@ -10420,23 +10424,30 @@ class PDFPageView {
       // } else {
       //   div.append(textLayerDiv);
       // }
-      //
+      //---------------------水印开始---------------------
+      const fontSize = parseInt(canvasWrapper.style.width) / 12;
       var cover = document.createElement('div');
       cover.className = "cover";
-      for (var y = 0; y < 5; y++) {
-        for (var x = 0; x < 4; x++) {
-          let c = document.createElement('div')
-          c.className = "cover"
-          c.style.position = 'absolute';
-          c.style.left = (10+x/4*100)+'%';
-          c.style.top = (10+y/5*100)+'%';
-          c.style.transform = "rotate(315deg) translateY(-50%)";
-          c.style.color = "rgba(0, 191, 255, 0.2)";
-          // c.innerText = text;//text为水印内容,可以在viewer.html中传入,也可以直接替换成固定的字符串如:c.innerText = "这是一个水印";
-          c.innerText = "这是一个水印";
-          cover.appendChild(c);
-        }
-      }
+      cover.style.height = fontSize + 'px';
+      cover.style.lineHeight = fontSize + 'px';
+      cover.style.position = 'absolute';
+      cover.style.left = '50%';
+      cover.style.top = `calc(50% - ${fontSize}px)`;
+      cover.style.display = 'flex';
+      cover.style.alignItems = 'center';
+      cover.style.justifyContent = 'center';
+      cover.style.transform = 'translateX(-50%)';
+      cover.style.pointerEvents = 'none' // 取消所有事件
+      let c = document.createElement('div')
+      c.className = "cover"
+      c.style.width = 'max-content';
+      c.style.fontSize = fontSize + 'px';
+      c.style.transform = "rotateZ(315deg)";
+      c.style.color = "rgba(0, 0, 0, 0.20)";
+      c.style.fontWeight = 'bold';
+      c.innerText = watermarkText;
+      c.style.pointerEvents = 'none' // 取消所有事件
+      cover.appendChild(c);
       if (this.annotationLayer?.div) {
         div.insertBefore(textLayerDiv, this.annotationLayer.div);
         div.appendChild(cover);
@@ -10444,8 +10455,7 @@ class PDFPageView {
         div.appendChild(textLayerDiv);
         div.appendChild(cover);
       }
-
-      //
+      //---------------------水印结束---------------------
       textLayer = this.textLayerFactory.createTextLayerBuilder({
         textLayerDiv,
         pageIndex: this.id - 1,
@@ -13554,6 +13564,7 @@ function getViewerConfiguration() {
     sidebar: {
       outerContainer: document.getElementById("outerContainer"),
       sidebarContainer: document.getElementById("sidebarContainer"),
+      sidebarContainerMask: document.getElementById("sidebarContainerMask"),
       toggleButton: document.getElementById("sidebarToggle"),
       thumbnailButton: document.getElementById("viewThumbnail"),
       outlineButton: document.getElementById("viewOutline"),

Деякі файли не було показано, через те що забагато файлів було змінено