{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# OPTIONS_GHC -Wall #-}
module Web.Rep.Html.Input
( Input (..),
InputType (..),
)
where
import Data.Bool
import Data.Maybe
import Data.Text (Text, pack, split)
import GHC.Generics
import Lucid
import Lucid.Base
import Web.Rep.Html
data Input a = Input
{
forall a. Input a -> a
inputVal :: a,
forall a. Input a -> Maybe Text
inputLabel :: Maybe Text,
forall a. Input a -> Text
inputId :: Text,
forall a. Input a -> InputType
inputType :: InputType
}
deriving (Input a -> Input a -> Bool
forall a. Eq a => Input a -> Input a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Input a -> Input a -> Bool
$c/= :: forall a. Eq a => Input a -> Input a -> Bool
== :: Input a -> Input a -> Bool
$c== :: forall a. Eq a => Input a -> Input a -> Bool
Eq, Int -> Input a -> ShowS
forall a. Show a => Int -> Input a -> ShowS
forall a. Show a => [Input a] -> ShowS
forall a. Show a => Input a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Input a] -> ShowS
$cshowList :: forall a. Show a => [Input a] -> ShowS
show :: Input a -> String
$cshow :: forall a. Show a => Input a -> String
showsPrec :: Int -> Input a -> ShowS
$cshowsPrec :: forall a. Show a => Int -> Input a -> ShowS
Show, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall a x. Rep (Input a) x -> Input a
forall a x. Input a -> Rep (Input a) x
$cto :: forall a x. Rep (Input a) x -> Input a
$cfrom :: forall a x. Input a -> Rep (Input a) x
Generic)
data InputType
= Slider [Attribute]
| SliderV [Attribute]
| TextBox
| TextBox'
| TextArea Int
| ColorPicker
| ChooseFile
| Dropdown [Text]
| DropdownMultiple [Text] Char
| DropdownSum [Text]
| Datalist [Text] Text
| Checkbox Bool
| Toggle Bool (Maybe Text)
| Button
deriving (InputType -> InputType -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InputType -> InputType -> Bool
$c/= :: InputType -> InputType -> Bool
== :: InputType -> InputType -> Bool
$c== :: InputType -> InputType -> Bool
Eq, Int -> InputType -> ShowS
[InputType] -> ShowS
InputType -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InputType] -> ShowS
$cshowList :: [InputType] -> ShowS
show :: InputType -> String
$cshow :: InputType -> String
showsPrec :: Int -> InputType -> ShowS
$cshowsPrec :: Int -> InputType -> ShowS
Show, forall x. Rep InputType x -> InputType
forall x. InputType -> Rep InputType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InputType x -> InputType
$cfrom :: forall x. InputType -> Rep InputType x
Generic)
instance (ToHtml a) => ToHtml (Input a) where
toHtml :: forall (m :: * -> *). Monad m => Input a -> HtmlT m ()
toHtml (Input a
v Maybe Text
l Text
i (Slider [Attribute]
satts)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
( [ Text -> Attribute
type_ Text
"range",
Text -> Attribute
class__ Text
" form-control-range form-control-sm custom-range jsbClassEventChange",
Text -> Attribute
id_ Text
i,
Text -> Attribute
value_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show forall a b. (a -> b) -> a -> b
$ forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v)
]
forall a. Semigroup a => a -> a -> a
<> [Attribute]
satts
)
)
toHtml (Input a
v Maybe Text
l Text
i (SliderV [Attribute]
satts)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
( [ Text -> Attribute
type_ Text
"range",
Text -> Attribute
class__ Text
" form-control-range form-control-sm custom-range jsbClassEventChange",
Text -> Attribute
id_ Text
i,
Text -> Attribute
value_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show forall a b. (a -> b) -> a -> b
$ forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v),
Text -> Attribute
oninput_ (Text
"$('#sliderv" forall a. Semigroup a => a -> a -> a
<> Text
i forall a. Semigroup a => a -> a -> a
<> Text
"').html($(this).val())")
]
forall a. Semigroup a => a -> a -> a
<> [Attribute]
satts
)
forall a. Semigroup a => a -> a -> a
<> forall arg result. Term arg result => arg -> result
span_ [Text -> Attribute
id_ (Text
"sliderv" forall a. Semigroup a => a -> a -> a
<> Text
i)] (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v)
)
toHtml (Input a
v Maybe Text
l Text
i InputType
TextBox) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"text",
Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput",
Text -> Attribute
id_ Text
i,
Text -> Attribute
value_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show forall a b. (a -> b) -> a -> b
$ forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtmlRaw a
v)
]
)
toHtml (Input a
v Maybe Text
l Text
i InputType
TextBox') =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"text",
Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventFocusout",
Text -> Attribute
id_ Text
i,
Text -> Attribute
value_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show forall a b. (a -> b) -> a -> b
$ forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtmlRaw a
v)
]
)
toHtml (Input a
v Maybe Text
l Text
i (TextArea Int
rows)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
textarea_
[ Text -> Attribute
rows_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show Int
rows),
Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput",
Text -> Attribute
id_ Text
i
]
(forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtmlRaw a
v)
)
toHtml (Input a
v Maybe Text
l Text
i InputType
ColorPicker) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"color",
Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput",
Text -> Attribute
id_ Text
i,
Text -> Attribute
value_ (String -> Text
pack forall a b. (a -> b) -> a -> b
$ forall a. Show a => a -> String
show forall a b. (a -> b) -> a -> b
$ forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v)
]
)
toHtml (Input a
_ Maybe Text
l Text
i InputType
ChooseFile) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
(forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l)
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"file",
Text -> Attribute
class__ Text
"form-control-file form-control-sm jsbClassEventChooseFile",
Text -> Attribute
id_ Text
i
]
toHtml (Input a
v Maybe Text
l Text
i (Dropdown [Text]
opts)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
select_
[ Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput",
Text -> Attribute
id_ Text
i
]
HtmlT m ()
opts'
)
where
opts' :: HtmlT m ()
opts' =
forall a. Monoid a => [a] -> a
mconcat forall a b. (a -> b) -> a -> b
$
( \Text
o ->
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
option_
( forall a. a -> a -> Bool -> a
bool
[]
[Text -> Attribute
selected_ Text
"selected"]
(forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o) forall a. Eq a => a -> a -> Bool
== forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v))
)
(forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o)
)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Text]
opts
toHtml (Input a
vs Maybe Text
l Text
i (DropdownMultiple [Text]
opts Char
sep)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
select_
[ Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventChangeMultiple",
Text -> Attribute
multiple_ Text
"multiple",
Text -> Attribute
id_ Text
i
]
HtmlT m ()
opts'
)
where
opts' :: HtmlT m ()
opts' =
forall a. Monoid a => [a] -> a
mconcat forall a b. (a -> b) -> a -> b
$
( \Text
o ->
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
option_
( forall a. a -> a -> Bool -> a
bool
[]
[Text -> Attribute
selected_ Text
"selected"]
(forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any (\Text
v -> forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o) forall a. Eq a => a -> a -> Bool
== forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
v)) ((Char -> Bool) -> Text -> [Text]
Data.Text.split (forall a. Eq a => a -> a -> Bool
== Char
sep) (forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
vs))))
)
(forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o)
)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Text]
opts
toHtml (Input a
v Maybe Text
l Text
i (DropdownSum [Text]
opts)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm sumtype-group"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
select_
[ Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput jsbClassEventShowSum",
Text -> Attribute
id_ Text
i
]
HtmlT m ()
opts'
)
where
opts' :: HtmlT m ()
opts' =
forall a. Monoid a => [a] -> a
mconcat forall a b. (a -> b) -> a -> b
$
( \Text
o ->
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
option_
(forall a. a -> a -> Bool -> a
bool [] [Text -> Attribute
selected_ Text
"selected"] (forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o) forall a. Eq a => a -> a -> Bool
== forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v)))
(forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o)
)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Text]
opts
toHtml (Input a
v Maybe Text
l Text
i (Datalist [Text]
opts Text
listId)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"text",
Text -> Attribute
class__ Text
"form-control form-control-sm jsbClassEventInput",
Text -> Attribute
id_ Text
i,
Text -> Attribute
list_ Text
listId
]
forall a. Semigroup a => a -> a -> a
<> forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
datalist_
[Text -> Attribute
id_ Text
listId]
( forall a. Monoid a => [a] -> a
mconcat forall a b. (a -> b) -> a -> b
$
( \Text
o ->
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
option_
( forall a. a -> a -> Bool -> a
bool
[]
[Text -> Attribute
selected_ Text
"selected"]
(forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o) forall a. Eq a => a -> a -> Bool
== forall a. Html a -> Text
toText (forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml a
v))
)
(forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml Text
o)
)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [Text]
opts
)
)
toHtml (Input a
_ Maybe Text
l Text
i (Checkbox Bool
checked)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-check form-check-sm"]
( forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
( [ Text -> Attribute
type_ Text
"checkbox",
Text -> Attribute
class__ Text
"form-check-input jsbClassEventCheckbox",
Text -> Attribute
id_ Text
i
]
forall a. Semigroup a => a -> a -> a
<> forall a. a -> a -> Bool -> a
bool [] [Attribute
checked_] Bool
checked
)
forall a. Semigroup a => a -> a -> a
<> forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"form-check-label mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
)
toHtml (Input a
_ Maybe Text
l Text
i (Toggle Bool
pushed Maybe Text
lab)) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. Monoid a => a
mempty (forall a. With a => a -> [Attribute] -> a
with forall arg result. Term arg result => arg -> result
label_ [Text -> Attribute
for_ Text
i, Text -> Attribute
class__ Text
"mb-0"] forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml) Maybe Text
l
forall a. Semigroup a => a -> a -> a
<> forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
( [ Text -> Attribute
type_ Text
"button",
Text -> Attribute
class__ Text
"btn btn-primary btn-sm jsbClassEventToggle",
Text -> Text -> Attribute
data_ Text
"bs-toggle" Text
"button",
Text -> Attribute
id_ Text
i,
Text -> Text -> Attribute
makeAttribute Text
"aria-pressed" (forall a. a -> a -> Bool -> a
bool Text
"false" Text
"true" Bool
pushed)
]
forall a. Semigroup a => a -> a -> a
<> forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] (\Text
l' -> [Text -> Attribute
value_ Text
l']) Maybe Text
lab
forall a. Semigroup a => a -> a -> a
<> forall a. a -> a -> Bool -> a
bool [] [Attribute
checked_] Bool
pushed
)
)
toHtml (Input a
_ Maybe Text
l Text
i InputType
Button) =
forall a. With a => a -> [Attribute] -> a
with
forall arg result. Term arg result => arg -> result
div_
[Text -> Attribute
class__ Text
"form-group-sm"]
( forall (m :: * -> *). Monad m => [Attribute] -> HtmlT m ()
input_
[ Text -> Attribute
type_ Text
"button",
Text -> Attribute
id_ Text
i,
Text -> Attribute
class__ Text
"btn btn-primary btn-sm jsbClassEventButton",
Text -> Attribute
value_ (forall a. a -> Maybe a -> a
fromMaybe Text
"button" Maybe Text
l)
]
)
toHtmlRaw :: forall (m :: * -> *). Monad m => Input a -> HtmlT m ()
toHtmlRaw = forall a (m :: * -> *). (ToHtml a, Monad m) => a -> HtmlT m ()
toHtml