瀏覽代碼

fix(pdf): add extern hints for pdfjs apis

charlie 1 周之前
父節點
當前提交
b107535024
共有 3 個文件被更改,包括 6 次插入14 次删除
  1. 2 0
      externs.js
  2. 0 5
      src/main/frontend/extensions/pdf/core.cljs
  3. 4 9
      src/main/frontend/extensions/pdf/utils.cljs

+ 2 - 0
externs.js

@@ -116,6 +116,8 @@ dummy.bounding = function() {};
 dummy.getPageView = function() {};
 dummy.getPageView = function() {};
 dummy.convertToPdfPoint = function() {};
 dummy.convertToPdfPoint = function() {};
 dummy.scrollPageIntoView = function() {};
 dummy.scrollPageIntoView = function() {};
+dummy.textLayer = function() {};
+dummy.viewport = function() {};
 dummy.convertToViewportRectangle = function() {};
 dummy.convertToViewportRectangle = function() {};
 dummy.init = function() {};
 dummy.init = function() {};
 dummy.commit = function() {};
 dummy.commit = function() {};

+ 0 - 5
src/main/frontend/extensions/pdf/core.cljs

@@ -125,11 +125,6 @@
        #(.removeEventListener doc "click" cb)))
        #(.removeEventListener doc "click" cb)))
    [])
    [])
 
 
-  ;; TODO: precise position
-  ;;(when-let [
-  ;;page-bounding (and highlight (pdf-utils/get-page-bounding viewer (:page highlight)))
-  ;;])
-
   (let [*el (rum/use-ref nil)
   (let [*el (rum/use-ref nil)
         ^js cnt (.-container viewer)
         ^js cnt (.-container viewer)
         ^js body (some-> (.-ownerDocument cnt) (.-body))
         ^js body (some-> (.-ownerDocument cnt) (.-body))

+ 4 - 9
src/main/frontend/extensions/pdf/utils.cljs

@@ -32,27 +32,22 @@
 
 
 (defn vw-to-scaled-pos
 (defn vw-to-scaled-pos
   [^js viewer {:keys [page bounding rects]}]
   [^js viewer {:keys [page bounding rects]}]
-  (when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
+  (when-let [^js viewport (some-> viewer ^js (.getPageView (dec page)) (.-viewport))]
     {:bounding (viewport-to-scaled bounding viewport)
     {:bounding (viewport-to-scaled bounding viewport)
      :rects    (for [rect rects] (viewport-to-scaled rect viewport))
      :rects    (for [rect rects] (viewport-to-scaled rect viewport))
      :page     page}))
      :page     page}))
 
 
 (defn scaled-to-vw-pos
 (defn scaled-to-vw-pos
   [^js viewer {:keys [page bounding rects]}]
   [^js viewer {:keys [page bounding rects]}]
-  (when-let [^js viewport (some-> viewer (.getPageView (dec page)) (.-viewport))]
+  (when-let [^js viewport (some-> viewer ^js (.getPageView (dec page)) (.-viewport))]
     {:bounding (scaled-to-viewport bounding viewport)
     {:bounding (scaled-to-viewport bounding viewport)
      :rects    (for [rect rects] (scaled-to-viewport rect viewport))
      :rects    (for [rect rects] (scaled-to-viewport rect viewport))
      :page     page}))
      :page     page}))
 
 
-(defn get-page-bounding
-  [^js viewer page-number]
-  (when-let [^js el (and page-number (.. viewer (getPageView (dec page-number)) -div))]
-    (bean/->clj (.toJSON (.getBoundingClientRect el)))))
-
 (defn resolve-hls-layer!
 (defn resolve-hls-layer!
   [^js viewer page]
   [^js viewer page]
-  (when-let [^js text-layer (some-> viewer (.getPageView (dec page)) (.-textLayer))]
-    (let [cnt (.-div text-layer)
+  (when-let [^js text-layer (some-> viewer ^js (.getPageView (dec page)) (.-textLayer))]
+    (let [^js cnt (.-div text-layer)
           cls "extensions__pdf-hls-layer"
           cls "extensions__pdf-hls-layer"
           doc js/document
           doc js/document
           layer (.querySelector cnt (str "." cls))]
           layer (.querySelector cnt (str "." cls))]