Advanced frame thumbnail handling

This commit is contained in:
alonso.torres 2022-04-19 16:19:14 +02:00
parent b576ef02af
commit 6a3a460203
19 changed files with 613 additions and 662 deletions

View file

@ -341,17 +341,41 @@
{:pre [(blob? b)]}
(js/URL.createObjectURL b))
(defn make-node
([namespace name]
(.createElementNS globals/document namespace name))
([name]
(.createElement globals/document name)))
(defn node->xml
[node]
(-> (js/XMLSerializer.)
(.serializeToString node)))
(defn svg->data-uri
[svg]
(assert (string? svg))
(let [b64 (-> svg
js/encodeURIComponent
js/unescape
js/btoa)]
(dm/str "data:image/svg+xml;base64," b64)))
(defn set-property! [^js node property value]
(when (some? node)
(.setAttribute node property value)))
(.setAttribute node property value))
node)
(defn set-text! [^js node text]
(when (some? node)
(set! (.-textContent node) text)))
(set! (.-textContent node) text))
node)
(defn set-css-property! [^js node property value]
(when (some? node)
(.setProperty (.-style ^js node) property value)))
(.setProperty (.-style ^js node) property value))
node)
(defn capture-pointer [^js event]
(when (some? event)
@ -382,7 +406,8 @@
(defn add-class! [^js node class-name]
(when (some? node)
(let [class-list (.-classList ^js node)]
(.add ^js class-list class-name))))
(.add ^js class-list class-name)))
node)
(defn remove-class! [^js node class-name]
(when (some? node)