/
AnimateMotion.purs
38 lines (33 loc) · 996 Bytes
/
AnimateMotion.purs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module Deku.DOM.Elt.AnimateMotion where
import Bolson.Core (Entity(..), fixed)
import Control.Plus (empty)
import Data.Array (mapWithIndex)
import Deku.Attribute (Attribute)
import Deku.Control as DC
import Deku.Core (Domable(..), Domable', unsafeSetPos)
import FRP.Event (Event)
import Safe.Coerce (coerce)
data AnimateMotion_
animateMotion
:: forall lock payload
. Event (Attribute AnimateMotion_)
-> Array (Domable lock payload)
-> Domable lock payload
animateMotion attributes kids = Domable
( Element'
( DC.elementify "animateMotion" attributes
( (coerce :: Domable' lock payload -> Domable lock payload)
(fixed (coerce (mapWithIndex unsafeSetPos kids)))
)
)
)
animateMotion_
:: forall lock payload
. Array (Domable lock payload)
-> Domable lock payload
animateMotion_ = animateMotion empty
animateMotion__
:: forall lock payload
. String
-> Domable lock payload
animateMotion__ t = animateMotion_ [ DC.text_ t ]