/
Q.purs
38 lines (33 loc) · 852 Bytes
/
Q.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.Q 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 Q_
q
:: forall lock payload
. Event (Attribute Q_)
-> Array (Domable lock payload)
-> Domable lock payload
q attributes kids = Domable
( Element'
( DC.elementify "q" attributes
( (coerce :: Domable' lock payload -> Domable lock payload)
(fixed (coerce (mapWithIndex unsafeSetPos kids)))
)
)
)
q_
:: forall lock payload
. Array (Domable lock payload)
-> Domable lock payload
q_ = q empty
q__
:: forall lock payload
. String
-> Domable lock payload
q__ t = q_ [ DC.text_ t ]