mirror of
https://github.com/penpot/penpot.git
synced 2025-06-08 16:11:38 +02:00
✨ Add relative positioning
This commit is contained in:
parent
67d48435e7
commit
e30c21a71f
1 changed files with 56 additions and 0 deletions
|
@ -107,6 +107,62 @@
|
||||||
(let [id (get-data self :id)]
|
(let [id (get-data self :id)]
|
||||||
(st/emit! (udw/update-position id {:y value}))))}
|
(st/emit! (udw/update-position id {:y value}))))}
|
||||||
|
|
||||||
|
{:name "parentX"
|
||||||
|
:get (fn [self]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
parent-id (get-state self :parent-id)
|
||||||
|
parent-x (dm/get-in @st/state [:workspace-data :pages-index page-id :objects parent-id :x])]
|
||||||
|
(- (get-state self :x) parent-x)))
|
||||||
|
:set
|
||||||
|
(fn [self value]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
id (get-data self :id)
|
||||||
|
parent-id (get-state self :parent-id)
|
||||||
|
parent-x (dm/get-in @st/state [:workspace-data :pages-index page-id :objects parent-id :x])]
|
||||||
|
(st/emit! (udw/update-position id {:x (+ parent-x value)}))))}
|
||||||
|
|
||||||
|
{:name "parentY"
|
||||||
|
:get (fn [self]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
parent-id (get-state self :parent-id)
|
||||||
|
parent-y (dm/get-in @st/state [:workspace-data :pages-index page-id :objects parent-id :y])]
|
||||||
|
(- (get-state self :y) parent-y)))
|
||||||
|
:set
|
||||||
|
(fn [self value]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
id (get-data self :id)
|
||||||
|
parent-id (get-state self :parent-id)
|
||||||
|
parent-y (dm/get-in @st/state [:workspace-data :pages-index page-id :objects parent-id :y])]
|
||||||
|
(st/emit! (udw/update-position id {:y (+ parent-y value)}))))}
|
||||||
|
|
||||||
|
{:name "frameX"
|
||||||
|
:get (fn [self]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
frame-id (get-state self :frame-id)
|
||||||
|
frame-x (dm/get-in @st/state [:workspace-data :pages-index page-id :objects frame-id :x])]
|
||||||
|
(- (get-state self :x) frame-x)))
|
||||||
|
:set
|
||||||
|
(fn [self value]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
id (get-data self :id)
|
||||||
|
frame-id (get-state self :frame-id)
|
||||||
|
frame-x (dm/get-in @st/state [:workspace-data :pages-index page-id :objects frame-id :x])]
|
||||||
|
(st/emit! (udw/update-position id {:x (+ frame-x value)}))))}
|
||||||
|
|
||||||
|
{:name "frameY"
|
||||||
|
:get (fn [self]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
frame-id (get-state self :frame-id)
|
||||||
|
frame-y (dm/get-in @st/state [:workspace-data :pages-index page-id :objects frame-id :y])]
|
||||||
|
(- (get-state self :y) frame-y)))
|
||||||
|
:set
|
||||||
|
(fn [self value]
|
||||||
|
(let [page-id (:current-page-id @st/state)
|
||||||
|
id (get-data self :id)
|
||||||
|
frame-id (get-state self :frame-id)
|
||||||
|
frame-y (dm/get-in @st/state [:workspace-data :pages-index page-id :objects frame-id :y])]
|
||||||
|
(st/emit! (udw/update-position id {:y (+ frame-y value)}))))}
|
||||||
|
|
||||||
{:name "width"
|
{:name "width"
|
||||||
:get #(get-state % :width)}
|
:get #(get-state % :width)}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue