@anaralabs/lector 3.12.6 → 3.12.8
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/dist/index.js +57 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -999,7 +999,12 @@ var defaultAnnotationLayerParams = {
|
|
|
999
999
|
var useAnnotationLayer = (params) => {
|
|
1000
1000
|
const mergedParams = useMemo(() => {
|
|
1001
1001
|
return { ...defaultAnnotationLayerParams, ...params };
|
|
1002
|
-
}, [
|
|
1002
|
+
}, [
|
|
1003
|
+
params.renderForms,
|
|
1004
|
+
params.externalLinksEnabled,
|
|
1005
|
+
params.jumpOptions?.behavior,
|
|
1006
|
+
params.jumpOptions?.align
|
|
1007
|
+
]);
|
|
1003
1008
|
const annotationLayerRef = useRef(null);
|
|
1004
1009
|
const annotationLayerObjectRef = useRef(null);
|
|
1005
1010
|
const linkService = usePDFLinkService();
|
|
@@ -2663,11 +2668,13 @@ var createTextSelectionManager = () => {
|
|
|
2663
2668
|
};
|
|
2664
2669
|
var bindMouseEvents = createTextSelectionManager();
|
|
2665
2670
|
var TEXT_BUILD_IDLE_MS = 300;
|
|
2671
|
+
var TEXT_SCROLL_SETTLE_MS = 160;
|
|
2666
2672
|
var useTextLayer = () => {
|
|
2667
2673
|
const textContainerRef = useRef(null);
|
|
2668
2674
|
const textLayerRef = useRef(null);
|
|
2669
2675
|
const pageNumber = usePDFPageNumber();
|
|
2670
2676
|
const pdfPageProxy = usePdf((state) => state.getPdfPageProxy(pageNumber));
|
|
2677
|
+
const viewportRef = usePdf((state) => state.viewportRef);
|
|
2671
2678
|
useEffect(() => {
|
|
2672
2679
|
const textContainer = textContainerRef.current;
|
|
2673
2680
|
if (!textContainer) {
|
|
@@ -2717,6 +2724,55 @@ var useTextLayer = () => {
|
|
|
2717
2724
|
}
|
|
2718
2725
|
};
|
|
2719
2726
|
}, [pdfPageProxy.streamTextContent, pdfPageProxy.getViewport]);
|
|
2727
|
+
useEffect(() => {
|
|
2728
|
+
const textContainer = textContainerRef.current;
|
|
2729
|
+
const viewport = viewportRef?.current;
|
|
2730
|
+
if (!textContainer || !viewport) return;
|
|
2731
|
+
let settleTimer = null;
|
|
2732
|
+
let pointerDown = false;
|
|
2733
|
+
let selecting = false;
|
|
2734
|
+
const show = () => {
|
|
2735
|
+
textContainer.style.visibility = "";
|
|
2736
|
+
};
|
|
2737
|
+
const onScroll = () => {
|
|
2738
|
+
if (selecting) return;
|
|
2739
|
+
textContainer.style.visibility = "hidden";
|
|
2740
|
+
if (settleTimer) clearTimeout(settleTimer);
|
|
2741
|
+
settleTimer = setTimeout(show, TEXT_SCROLL_SETTLE_MS);
|
|
2742
|
+
};
|
|
2743
|
+
const onPointerDown = () => {
|
|
2744
|
+
pointerDown = true;
|
|
2745
|
+
selecting = false;
|
|
2746
|
+
if (settleTimer) {
|
|
2747
|
+
clearTimeout(settleTimer);
|
|
2748
|
+
settleTimer = null;
|
|
2749
|
+
}
|
|
2750
|
+
show();
|
|
2751
|
+
};
|
|
2752
|
+
const onSelectionChange = () => {
|
|
2753
|
+
if (pointerDown) selecting = true;
|
|
2754
|
+
};
|
|
2755
|
+
const clearPointer = () => {
|
|
2756
|
+
pointerDown = false;
|
|
2757
|
+
selecting = false;
|
|
2758
|
+
};
|
|
2759
|
+
const unsubscribe = subscribeToViewportInvalidation(viewport, onScroll);
|
|
2760
|
+
document.addEventListener("pointerdown", onPointerDown, true);
|
|
2761
|
+
document.addEventListener("pointerup", clearPointer, true);
|
|
2762
|
+
document.addEventListener("pointercancel", clearPointer, true);
|
|
2763
|
+
document.addEventListener("selectionchange", onSelectionChange);
|
|
2764
|
+
window.addEventListener("blur", clearPointer);
|
|
2765
|
+
return () => {
|
|
2766
|
+
unsubscribe();
|
|
2767
|
+
document.removeEventListener("pointerdown", onPointerDown, true);
|
|
2768
|
+
document.removeEventListener("pointerup", clearPointer, true);
|
|
2769
|
+
document.removeEventListener("pointercancel", clearPointer, true);
|
|
2770
|
+
document.removeEventListener("selectionchange", onSelectionChange);
|
|
2771
|
+
window.removeEventListener("blur", clearPointer);
|
|
2772
|
+
if (settleTimer) clearTimeout(settleTimer);
|
|
2773
|
+
show();
|
|
2774
|
+
};
|
|
2775
|
+
}, [viewportRef]);
|
|
2720
2776
|
return {
|
|
2721
2777
|
textContainerRef,
|
|
2722
2778
|
pageNumber: pdfPageProxy.pageNumber
|