Forráskód Böngészése

fix(pdf): add extern hints for pdfjs apis

charlie 1 hete
szülő
commit
b107535024

+ 2 - 0
externs.js

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

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

@@ -125,11 +125,6 @@
        #(.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)
         ^js cnt (.-container viewer)
         ^js body (some-> (.-ownerDocument cnt) (.-body))

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

@@ -32,27 +32,22 @@
 
 (defn vw-to-scaled-pos
   [^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)
      :rects    (for [rect rects] (viewport-to-scaled rect viewport))
      :page     page}))
 
 (defn scaled-to-vw-pos
   [^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)
      :rects    (for [rect rects] (scaled-to-viewport rect viewport))
      :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!
   [^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"
           doc js/document
           layer (.querySelector cnt (str "." cls))]