pdfjs-viewer-highlight-echo 5.4.456 → 5.4.457

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pdfjs-viewer-highlight-echo",
3
- "version": "5.4.456",
3
+ "version": "5.4.457",
4
4
  "main": "build/pdf.mjs",
5
5
  "types": "types/src/pdf.d.ts",
6
6
  "description": "Dafu custom PDF.js distribution",
@@ -1,12 +1,12 @@
1
1
  [
2
2
  {
3
3
  "location": [
4
- 32,
5
- 456,
6
- 258,
7
- 428
4
+ 22,
5
+ 500,
6
+ 563,
7
+ 267
8
8
  ],
9
- "page": 10,
9
+ "page": 1,
10
10
  "text": "Environmental Progress Report"
11
11
  },
12
12
  {
@@ -21,8 +21,8 @@
21
21
  */
22
22
 
23
23
  /**
24
- * pdfjsVersion = 5.4.456
25
- * pdfjsBuild = 01b61ef1d
24
+ * pdfjsVersion = 5.4.457
25
+ * pdfjsBuild = d53d4404b
26
26
  */
27
27
  /******/ // The require scope
28
28
  /******/ var __webpack_require__ = {};
@@ -7655,7 +7655,7 @@ class PDFViewer {
7655
7655
  #textLayerMode = TextLayerMode.ENABLE;
7656
7656
  #viewerAlert = null;
7657
7657
  constructor(options) {
7658
- const viewerVersion = "5.4.456";
7658
+ const viewerVersion = "5.4.457";
7659
7659
  if (version !== viewerVersion) {
7660
7660
  throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`);
7661
7661
  }
package/web/viewer.mjs CHANGED
@@ -21,8 +21,8 @@
21
21
  */
22
22
 
23
23
  /**
24
- * pdfjsVersion = 5.4.456
25
- * pdfjsBuild = 01b61ef1d
24
+ * pdfjsVersion = 5.4.457
25
+ * pdfjsBuild = d53d4404b
26
26
  */
27
27
  /******/ // The require scope
28
28
  /******/ var __webpack_require__ = {};
@@ -7603,7 +7603,7 @@ class FilterHighlightOverlay {
7603
7603
  this.#uiManager = uiManager;
7604
7604
  });
7605
7605
  }
7606
- showHighlight(pageNumber, location) {
7606
+ async showHighlight(pageNumber, location) {
7607
7607
  this.clearHighlight();
7608
7608
  const uiManager = this.#uiManager || window.PDFViewerApplication?.pdfViewer?.annotationEditorUIManager;
7609
7609
  if (!uiManager) {
@@ -7615,9 +7615,10 @@ class FilterHighlightOverlay {
7615
7615
  console.error("Page view not found for page", pageNumber);
7616
7616
  return;
7617
7617
  }
7618
- if (!pageView.textLayer) {
7619
- console.warn("Text layer not ready, waiting...");
7620
- setTimeout(() => this.showHighlight(pageNumber, location), 100);
7618
+ try {
7619
+ await this.#waitForTextLayer(pageView);
7620
+ } catch (error) {
7621
+ console.error("Failed to load text layer:", error);
7621
7622
  return;
7622
7623
  }
7623
7624
  const textLayer = pageView.textLayer.div;
@@ -7648,6 +7649,40 @@ class FilterHighlightOverlay {
7648
7649
  selection.removeAllRanges();
7649
7650
  }
7650
7651
  }
7652
+ async #waitForTextLayer(pageView) {
7653
+ if (pageView.textLayer?.div) {
7654
+ return;
7655
+ }
7656
+ if (pageView.renderingState < 3) {
7657
+ await new Promise(resolve => {
7658
+ const checkRendering = () => {
7659
+ if (pageView.renderingState >= 3) {
7660
+ resolve();
7661
+ } else {
7662
+ setTimeout(checkRendering, 50);
7663
+ }
7664
+ };
7665
+ checkRendering();
7666
+ });
7667
+ }
7668
+ if (pageView.textLayer?.renderingDone) {
7669
+ await pageView.textLayer.renderingDone;
7670
+ return;
7671
+ }
7672
+ return new Promise((resolve, reject) => {
7673
+ const timeout = setTimeout(() => {
7674
+ reject(new Error("Text layer rendering timeout"));
7675
+ }, 5000);
7676
+ const handler = evt => {
7677
+ if (evt.pageNumber === pageView.id) {
7678
+ clearTimeout(timeout);
7679
+ this.#eventBus._off("textlayerrendered", handler);
7680
+ resolve();
7681
+ }
7682
+ };
7683
+ this.#eventBus._on("textlayerrendered", handler);
7684
+ });
7685
+ }
7651
7686
  #convertLocationToBoxes(pageView, location) {
7652
7687
  if (!pageView.div) {
7653
7688
  return null;
@@ -13288,7 +13323,7 @@ class PDFViewer {
13288
13323
  #textLayerMode = TextLayerMode.ENABLE;
13289
13324
  #viewerAlert = null;
13290
13325
  constructor(options) {
13291
- const viewerVersion = "5.4.456";
13326
+ const viewerVersion = "5.4.457";
13292
13327
  if (version !== viewerVersion) {
13293
13328
  throw new Error(`The API version "${version}" does not match the Viewer version "${viewerVersion}".`);
13294
13329
  }