mirror of
https://github.com/penpot/penpot.git
synced 2025-06-06 04:21:39 +02:00
✨ SVG import enhancements
This commit is contained in:
parent
92e07c3b54
commit
c380400578
4 changed files with 584 additions and 181 deletions
|
@ -32,20 +32,24 @@
|
|||
mask (when show-mask? (first childs))
|
||||
childs (if show-mask? (rest childs) childs)
|
||||
|
||||
props (-> (attrs/extract-style-attrs shape)
|
||||
(obj/merge!
|
||||
#js {:pointerEvents pointer-events
|
||||
:clipPath (when (and mask (not expand-mask)) (clip-str mask))
|
||||
:mask (when (and mask (not expand-mask)) (mask-str mask))}))]
|
||||
mask-props (when (and mask (not expand-mask))
|
||||
#js {:clipPath (clip-str mask)
|
||||
:mask (mask-str mask)})
|
||||
mask-wrapper (if (and mask (not expand-mask))
|
||||
"g"
|
||||
mf/Fragment)
|
||||
|
||||
[:> :g props
|
||||
(when mask
|
||||
[:> render-mask #js {:frame frame :mask mask}])
|
||||
props (-> (attrs/extract-style-attrs shape))]
|
||||
|
||||
(for [item childs]
|
||||
[:& shape-wrapper {:frame frame
|
||||
:shape item
|
||||
:key (:id item)}])]))))
|
||||
[:> mask-wrapper mask-props
|
||||
[:> :g (attrs/extract-style-attrs shape)
|
||||
(when mask
|
||||
[:> render-mask #js {:frame frame :mask mask}])
|
||||
|
||||
(for [item childs]
|
||||
[:& shape-wrapper {:frame frame
|
||||
:shape item
|
||||
:key (:id item)}])]]))))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -60,15 +60,19 @@
|
|||
transform-filter? (and (contains? usvg/filter-tags tag)
|
||||
(= "userSpaceOnUse" (get attrs :filterUnits "objectBoundingBox")))
|
||||
|
||||
transform-mask? (and (= :mask tag)
|
||||
(= "userSpaceOnUse" (get attrs :maskUnits "objectBoundingBox")))
|
||||
|
||||
attrs (-> attrs
|
||||
(usvg/update-attr-ids prefix-id)
|
||||
(usvg/clean-attrs)
|
||||
|
||||
(cond->
|
||||
transform-gradient? (add-matrix :gradientTransform transform)
|
||||
transform-pattern? (add-matrix :patternTransform transform)
|
||||
transform-clippath? (add-matrix :transform transform)
|
||||
transform-filter? (transform-region transform)))
|
||||
transform-gradient? (add-matrix :gradientTransform transform)
|
||||
transform-pattern? (add-matrix :patternTransform transform)
|
||||
transform-clippath? (add-matrix :transform transform)
|
||||
(or transform-filter?
|
||||
transform-mask?) (transform-region transform)))
|
||||
|
||||
[wrapper wrapper-props] (if (= tag :mask)
|
||||
["g" #js {:transform (str transform)}]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue