/
Clamp.purs
36 lines (29 loc) · 894 Bytes
/
Clamp.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
module Mathbox.Class.Operator.Clamp where
import Prelude (map, ($))
import Data.Maybe (Maybe(Nothing))
import Data.Nullable (Nullable, toNullable)
import Mathbox.Field
import Mathbox.Types as T
type ClampG a b =
{ id :: b String
, classes :: a T.Classes
, source :: a T.Select
}
type Clamp = ClampG Field MaybeField
type JsClamp =
{ id :: Nullable (Field String)
, classes :: Field T.JsClasses
, source :: Field T.JsSelect
}
mkClamp :: Clamp
mkClamp =
{ id : Nothing
, classes : Val $ T.mkClasses0
, source : Val $ T.mkSelect0
}
clampToJs :: Clamp -> JsClamp
clampToJs c =
{ id : toNullable c.id
, classes : map T.classesToJs c.classes
, source : map T.selectToJs c.source
}