mirror of
https://github.com/penpot/penpot.git
synced 2025-05-17 17:36:12 +02:00
✨ Adds flip,proportion and rotation
This commit is contained in:
parent
a106c728ba
commit
d6e009ce78
7 changed files with 189 additions and 40 deletions
|
@ -7,14 +7,65 @@
|
|||
(ns app.libs.file-builder
|
||||
(:require
|
||||
[app.common.data :as d]
|
||||
[app.common.file-builder :as fb]))
|
||||
[app.common.file-builder :as fb]
|
||||
[cuerdas.core :as str]))
|
||||
|
||||
(defn parse-data [data]
|
||||
(as-> data $
|
||||
(js->clj $ :keywordize-keys true)
|
||||
;; Transforms camelCase to kebab-case
|
||||
(d/deep-mapm
|
||||
(fn [[k v]]
|
||||
[(-> k d/name str/kebab keyword) v]) $)))
|
||||
|
||||
(deftype File [^:mutable file]
|
||||
Object
|
||||
(addPage [self name]
|
||||
(set! file (fb/add-page file name))
|
||||
(str (:current-page-id file))))
|
||||
|
||||
(addPage
|
||||
([self name]
|
||||
(addPage self name nil))
|
||||
|
||||
([self name options]
|
||||
(set! file (fb/add-page file {:name name :options options}))
|
||||
(str (:current-page-id file))))
|
||||
|
||||
(closePage [self]
|
||||
(set! file (fb/close-page file)))
|
||||
|
||||
(addArtboard [self data]
|
||||
(set! file (fb/add-artboard file (parse-data data)))
|
||||
(str (:last-id file)))
|
||||
|
||||
(closeArtboard [self data]
|
||||
(set! file (fb/close-artboard file)))
|
||||
|
||||
(addGroup [self data]
|
||||
(set! file (fb/add-group file (parse-data data)))
|
||||
(str (:last-id file)))
|
||||
|
||||
(closeGroup [self]
|
||||
(set! file (fb/close-group file)))
|
||||
|
||||
(createRect [self data]
|
||||
(set! file (fb/create-rect file (parse-data data))))
|
||||
|
||||
(createCircle [self data]
|
||||
(set! file (fb/create-circle file (parse-data data))))
|
||||
|
||||
(createPath [self data]
|
||||
(set! file (fb/create-path file (parse-data data))))
|
||||
|
||||
(createText [self data]
|
||||
(set! file (fb/create-text file (parse-data data))))
|
||||
|
||||
(createImage [self data]
|
||||
(set! file (fb/create-image file (parse-data data))))
|
||||
|
||||
(createSVG [self data]
|
||||
(set! file (fb/create-svg-raw file (parse-data data))))
|
||||
|
||||
(closeSVG [self]
|
||||
(set! file (fb/close-svg-raw file))))
|
||||
|
||||
(defn create-file-export [^string name]
|
||||
(File. (fb/create-file name)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue