{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Reflex.Dom.Builder.InputDisabled where
import Control.Monad.Fix
import Control.Monad.Primitive
import Control.Monad.Ref
import Control.Monad.Trans
import Control.Monad.Trans.Control
import Data.Coerce
import qualified Data.Map as Map
#ifndef ghcjs_HOST_OS
import GHCJS.DOM.Types (MonadJSM (..))
#endif
import Reflex
import Reflex.Dom.Builder.Class
import Reflex.Host.Class
newtype InputDisabledT m a = InputDisabledT { forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT :: m a } deriving ((forall a b. (a -> b) -> InputDisabledT m a -> InputDisabledT m b)
-> (forall a b. a -> InputDisabledT m b -> InputDisabledT m a)
-> Functor (InputDisabledT m)
forall a b. a -> InputDisabledT m b -> InputDisabledT m a
forall a b. (a -> b) -> InputDisabledT m a -> InputDisabledT m b
forall (m :: * -> *) a b.
Functor m =>
a -> InputDisabledT m b -> InputDisabledT m a
forall (m :: * -> *) a b.
Functor m =>
(a -> b) -> InputDisabledT m a -> InputDisabledT m b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall (m :: * -> *) a b.
Functor m =>
(a -> b) -> InputDisabledT m a -> InputDisabledT m b
fmap :: forall a b. (a -> b) -> InputDisabledT m a -> InputDisabledT m b
$c<$ :: forall (m :: * -> *) a b.
Functor m =>
a -> InputDisabledT m b -> InputDisabledT m a
<$ :: forall a b. a -> InputDisabledT m b -> InputDisabledT m a
Functor, Functor (InputDisabledT m)
Functor (InputDisabledT m) =>
(forall a. a -> InputDisabledT m a)
-> (forall a b.
InputDisabledT m (a -> b)
-> InputDisabledT m a -> InputDisabledT m b)
-> (forall a b c.
(a -> b -> c)
-> InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m c)
-> (forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b)
-> (forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m a)
-> Applicative (InputDisabledT m)
forall a. a -> InputDisabledT m a
forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m a
forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
forall a b.
InputDisabledT m (a -> b)
-> InputDisabledT m a -> InputDisabledT m b
forall a b c.
(a -> b -> c)
-> InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m c
forall (f :: * -> *).
Functor f =>
(forall a. a -> f a)
-> (forall a b. f (a -> b) -> f a -> f b)
-> (forall a b c. (a -> b -> c) -> f a -> f b -> f c)
-> (forall a b. f a -> f b -> f b)
-> (forall a b. f a -> f b -> f a)
-> Applicative f
forall (m :: * -> *). Applicative m => Functor (InputDisabledT m)
forall (m :: * -> *) a. Applicative m => a -> InputDisabledT m a
forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m a
forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m (a -> b)
-> InputDisabledT m a -> InputDisabledT m b
forall (m :: * -> *) a b c.
Applicative m =>
(a -> b -> c)
-> InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m c
$cpure :: forall (m :: * -> *) a. Applicative m => a -> InputDisabledT m a
pure :: forall a. a -> InputDisabledT m a
$c<*> :: forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m (a -> b)
-> InputDisabledT m a -> InputDisabledT m b
<*> :: forall a b.
InputDisabledT m (a -> b)
-> InputDisabledT m a -> InputDisabledT m b
$cliftA2 :: forall (m :: * -> *) a b c.
Applicative m =>
(a -> b -> c)
-> InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m c
liftA2 :: forall a b c.
(a -> b -> c)
-> InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m c
$c*> :: forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
*> :: forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
$c<* :: forall (m :: * -> *) a b.
Applicative m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m a
<* :: forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m a
Applicative, Applicative (InputDisabledT m)
Applicative (InputDisabledT m) =>
(forall a b.
InputDisabledT m a
-> (a -> InputDisabledT m b) -> InputDisabledT m b)
-> (forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b)
-> (forall a. a -> InputDisabledT m a)
-> Monad (InputDisabledT m)
forall a. a -> InputDisabledT m a
forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
forall a b.
InputDisabledT m a
-> (a -> InputDisabledT m b) -> InputDisabledT m b
forall (m :: * -> *). Monad m => Applicative (InputDisabledT m)
forall (m :: * -> *) a. Monad m => a -> InputDisabledT m a
forall (m :: * -> *) a b.
Monad m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
forall (m :: * -> *) a b.
Monad m =>
InputDisabledT m a
-> (a -> InputDisabledT m b) -> InputDisabledT m b
forall (m :: * -> *).
Applicative m =>
(forall a b. m a -> (a -> m b) -> m b)
-> (forall a b. m a -> m b -> m b)
-> (forall a. a -> m a)
-> Monad m
$c>>= :: forall (m :: * -> *) a b.
Monad m =>
InputDisabledT m a
-> (a -> InputDisabledT m b) -> InputDisabledT m b
>>= :: forall a b.
InputDisabledT m a
-> (a -> InputDisabledT m b) -> InputDisabledT m b
$c>> :: forall (m :: * -> *) a b.
Monad m =>
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
>> :: forall a b.
InputDisabledT m a -> InputDisabledT m b -> InputDisabledT m b
$creturn :: forall (m :: * -> *) a. Monad m => a -> InputDisabledT m a
return :: forall a. a -> InputDisabledT m a
Monad, MonadRef (InputDisabledT m)
MonadRef (InputDisabledT m) =>
(forall a b.
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b)
-> (forall a b.
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b)
-> MonadAtomicRef (InputDisabledT m)
forall a b.
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
forall (m :: * -> *).
MonadAtomicRef m =>
MonadRef (InputDisabledT m)
forall (m :: * -> *) a b.
MonadAtomicRef m =>
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
forall (m :: * -> *).
MonadRef m =>
(forall a b. Ref m a -> (a -> (a, b)) -> m b)
-> (forall a b. Ref m a -> (a -> (a, b)) -> m b)
-> MonadAtomicRef m
$catomicModifyRef :: forall (m :: * -> *) a b.
MonadAtomicRef m =>
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
atomicModifyRef :: forall a b.
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
$catomicModifyRef' :: forall (m :: * -> *) a b.
MonadAtomicRef m =>
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
atomicModifyRef' :: forall a b.
Ref (InputDisabledT m) a -> (a -> (a, b)) -> InputDisabledT m b
MonadAtomicRef, Monad (InputDisabledT m)
Monad (InputDisabledT m) =>
(forall a. (a -> InputDisabledT m a) -> InputDisabledT m a)
-> MonadFix (InputDisabledT m)
forall a. (a -> InputDisabledT m a) -> InputDisabledT m a
forall (m :: * -> *).
Monad m =>
(forall a. (a -> m a) -> m a) -> MonadFix m
forall (m :: * -> *). MonadFix m => Monad (InputDisabledT m)
forall (m :: * -> *) a.
MonadFix m =>
(a -> InputDisabledT m a) -> InputDisabledT m a
$cmfix :: forall (m :: * -> *) a.
MonadFix m =>
(a -> InputDisabledT m a) -> InputDisabledT m a
mfix :: forall a. (a -> InputDisabledT m a) -> InputDisabledT m a
MonadFix, Monad (InputDisabledT m)
Monad (InputDisabledT m) =>
(forall a. IO a -> InputDisabledT m a)
-> MonadIO (InputDisabledT m)
forall a. IO a -> InputDisabledT m a
forall (m :: * -> *).
Monad m =>
(forall a. IO a -> m a) -> MonadIO m
forall (m :: * -> *). MonadIO m => Monad (InputDisabledT m)
forall (m :: * -> *) a. MonadIO m => IO a -> InputDisabledT m a
$cliftIO :: forall (m :: * -> *) a. MonadIO m => IO a -> InputDisabledT m a
liftIO :: forall a. IO a -> InputDisabledT m a
MonadIO)
#ifndef ghcjs_HOST_OS
instance MonadJSM m => MonadJSM (InputDisabledT m) where
liftJSM' :: forall a. JSM a -> InputDisabledT m a
liftJSM' = m a -> InputDisabledT m a
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m a -> InputDisabledT m a)
-> (JSM a -> m a) -> JSM a -> InputDisabledT m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. JSM a -> m a
forall a. JSM a -> m a
forall (m :: * -> *) a. MonadJSM m => JSM a -> m a
liftJSM'
#endif
deriving instance MonadSample t m => MonadSample t (InputDisabledT m)
deriving instance MonadHold t m => MonadHold t (InputDisabledT m)
instance MonadTrans InputDisabledT where
lift :: forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
lift = m a -> InputDisabledT m a
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT
instance MonadTransControl InputDisabledT where
type StT InputDisabledT a = a
liftWith :: forall (m :: * -> *) a.
Monad m =>
(Run InputDisabledT -> m a) -> InputDisabledT m a
liftWith Run InputDisabledT -> m a
f = m a -> InputDisabledT m a
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m a -> InputDisabledT m a) -> m a -> InputDisabledT m a
forall a b. (a -> b) -> a -> b
$ Run InputDisabledT -> m a
f InputDisabledT n b -> n b
InputDisabledT n b -> n (StT InputDisabledT b)
Run InputDisabledT
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT
restoreT :: forall (m :: * -> *) a.
Monad m =>
m (StT InputDisabledT a) -> InputDisabledT m a
restoreT = m a -> InputDisabledT m a
m (StT InputDisabledT a) -> InputDisabledT m a
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT
instance MonadRef m => MonadRef (InputDisabledT m) where
type Ref (InputDisabledT m) = Ref m
newRef :: forall a. a -> InputDisabledT m (Ref (InputDisabledT m) a)
newRef = m (Ref m a) -> InputDisabledT m (Ref m a)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (Ref m a) -> InputDisabledT m (Ref m a))
-> (a -> m (Ref m a)) -> a -> InputDisabledT m (Ref m a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> m (Ref m a)
forall a. a -> m (Ref m a)
forall (m :: * -> *) a. MonadRef m => a -> m (Ref m a)
newRef
readRef :: forall a. Ref (InputDisabledT m) a -> InputDisabledT m a
readRef = m a -> InputDisabledT m a
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m a -> InputDisabledT m a)
-> (Ref m a -> m a) -> Ref m a -> InputDisabledT m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ref m a -> m a
forall a. Ref m a -> m a
forall (m :: * -> *) a. MonadRef m => Ref m a -> m a
readRef
writeRef :: forall a. Ref (InputDisabledT m) a -> a -> InputDisabledT m ()
writeRef Ref (InputDisabledT m) a
ref = m () -> InputDisabledT m ()
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m () -> InputDisabledT m ())
-> (a -> m ()) -> a -> InputDisabledT m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ref m a -> a -> m ()
forall a. Ref m a -> a -> m ()
forall (m :: * -> *) a. MonadRef m => Ref m a -> a -> m ()
writeRef Ref m a
Ref (InputDisabledT m) a
ref
instance PerformEvent t m => PerformEvent t (InputDisabledT m) where
type Performable (InputDisabledT m) = Performable m
performEvent_ :: Event t (Performable (InputDisabledT m) ()) -> InputDisabledT m ()
performEvent_ = m () -> InputDisabledT m ()
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m () -> InputDisabledT m ())
-> (Event t (Performable m ()) -> m ())
-> Event t (Performable m ())
-> InputDisabledT m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event t (Performable m ()) -> m ()
forall t (m :: * -> *).
PerformEvent t m =>
Event t (Performable m ()) -> m ()
performEvent_
performEvent :: forall a.
Event t (Performable (InputDisabledT m) a)
-> InputDisabledT m (Event t a)
performEvent = m (Event t a) -> InputDisabledT m (Event t a)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (Event t a) -> InputDisabledT m (Event t a))
-> (Event t (Performable m a) -> m (Event t a))
-> Event t (Performable m a)
-> InputDisabledT m (Event t a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event t (Performable m a) -> m (Event t a)
forall a. Event t (Performable m a) -> m (Event t a)
forall t (m :: * -> *) a.
PerformEvent t m =>
Event t (Performable m a) -> m (Event t a)
performEvent
instance PrimMonad m => PrimMonad (InputDisabledT m) where
type PrimState (InputDisabledT m) = PrimState m
primitive :: forall a.
(State# (PrimState (InputDisabledT m))
-> (# State# (PrimState (InputDisabledT m)), a #))
-> InputDisabledT m a
primitive = m a -> InputDisabledT m a
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m a -> InputDisabledT m a)
-> ((State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a)
-> (State# (PrimState m) -> (# State# (PrimState m), a #))
-> InputDisabledT m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a
forall a.
(State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a
forall (m :: * -> *) a.
PrimMonad m =>
(State# (PrimState m) -> (# State# (PrimState m), a #)) -> m a
primitive
disableElementConfig :: Reflex t => ElementConfig er t m -> ElementConfig er t m
disableElementConfig :: forall t (er :: EventTag -> *) m.
Reflex t =>
ElementConfig er t m -> ElementConfig er t m
disableElementConfig ElementConfig er t m
cfg = ElementConfig er t m
cfg
{ _elementConfig_initialAttributes = Map.insert "disabled" "disabled" $ _elementConfig_initialAttributes cfg
, _elementConfig_modifyAttributes = fmap (Map.delete "disabled") <$> _elementConfig_modifyAttributes cfg
}
instance PostBuild t m => PostBuild t (InputDisabledT m) where
getPostBuild :: InputDisabledT m (Event t ())
getPostBuild = m (Event t ()) -> InputDisabledT m (Event t ())
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m (Event t ())
forall t (m :: * -> *). PostBuild t m => m (Event t ())
getPostBuild
deriving instance TriggerEvent t m => TriggerEvent t (InputDisabledT m)
instance MonadReflexCreateTrigger t m => MonadReflexCreateTrigger t (InputDisabledT m) where
newEventWithTrigger :: forall a.
(EventTrigger t a -> IO (IO ())) -> InputDisabledT m (Event t a)
newEventWithTrigger = m (Event t a) -> InputDisabledT m (Event t a)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (Event t a) -> InputDisabledT m (Event t a))
-> ((EventTrigger t a -> IO (IO ())) -> m (Event t a))
-> (EventTrigger t a -> IO (IO ()))
-> InputDisabledT m (Event t a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (EventTrigger t a -> IO (IO ())) -> m (Event t a)
forall a. (EventTrigger t a -> IO (IO ())) -> m (Event t a)
forall t (m :: * -> *) a.
MonadReflexCreateTrigger t m =>
(EventTrigger t a -> IO (IO ())) -> m (Event t a)
newEventWithTrigger
newFanEventWithTrigger :: forall (k :: * -> *).
GCompare k =>
(forall a. k a -> EventTrigger t a -> IO (IO ()))
-> InputDisabledT m (EventSelector t k)
newFanEventWithTrigger forall a. k a -> EventTrigger t a -> IO (IO ())
f = m (EventSelector t k) -> InputDisabledT m (EventSelector t k)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (EventSelector t k) -> InputDisabledT m (EventSelector t k))
-> m (EventSelector t k) -> InputDisabledT m (EventSelector t k)
forall a b. (a -> b) -> a -> b
$ (forall a. k a -> EventTrigger t a -> IO (IO ()))
-> m (EventSelector t k)
forall t (m :: * -> *) (k :: * -> *).
(MonadReflexCreateTrigger t m, GCompare k) =>
(forall a. k a -> EventTrigger t a -> IO (IO ()))
-> m (EventSelector t k)
forall (k :: * -> *).
GCompare k =>
(forall a. k a -> EventTrigger t a -> IO (IO ()))
-> m (EventSelector t k)
newFanEventWithTrigger k a -> EventTrigger t a -> IO (IO ())
forall a. k a -> EventTrigger t a -> IO (IO ())
f
instance Adjustable t m => Adjustable t (InputDisabledT m) where
runWithReplace :: forall a b.
InputDisabledT m a
-> Event t (InputDisabledT m b) -> InputDisabledT m (a, Event t b)
runWithReplace InputDisabledT m a
a0 Event t (InputDisabledT m b)
a' = m (a, Event t b) -> InputDisabledT m (a, Event t b)
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m (a, Event t b) -> InputDisabledT m (a, Event t b))
-> m (a, Event t b) -> InputDisabledT m (a, Event t b)
forall a b. (a -> b) -> a -> b
$ m a -> Event t (m b) -> m (a, Event t b)
forall a b. m a -> Event t (m b) -> m (a, Event t b)
forall t (m :: * -> *) a b.
Adjustable t m =>
m a -> Event t (m b) -> m (a, Event t b)
runWithReplace (InputDisabledT m a -> m a
forall a b. Coercible a b => a -> b
coerce InputDisabledT m a
a0) (Event t (InputDisabledT m b) -> Event t (m b)
forall {k} (t :: k) a b.
(Reflex t, Coercible a b) =>
Event t a -> Event t b
coerceEvent Event t (InputDisabledT m b)
a')
traverseDMapWithKeyWithAdjust :: forall (k :: * -> *) (v :: * -> *) (v' :: * -> *).
GCompare k =>
(forall a. k a -> v a -> InputDisabledT m (v' a))
-> DMap k v
-> Event t (PatchDMap k v)
-> InputDisabledT m (DMap k v', Event t (PatchDMap k v'))
traverseDMapWithKeyWithAdjust forall a. k a -> v a -> InputDisabledT m (v' a)
f DMap k v
dm0 Event t (PatchDMap k v)
dm' = m (DMap k v', Event t (PatchDMap k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMap k v'))
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m (DMap k v', Event t (PatchDMap k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMap k v')))
-> m (DMap k v', Event t (PatchDMap k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMap k v'))
forall a b. (a -> b) -> a -> b
$ (forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMap k v)
-> m (DMap k v', Event t (PatchDMap k v'))
forall t (m :: * -> *) (k :: * -> *) (v :: * -> *) (v' :: * -> *).
(Adjustable t m, GCompare k) =>
(forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMap k v)
-> m (DMap k v', Event t (PatchDMap k v'))
forall (k :: * -> *) (v :: * -> *) (v' :: * -> *).
GCompare k =>
(forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMap k v)
-> m (DMap k v', Event t (PatchDMap k v'))
traverseDMapWithKeyWithAdjust (\k a
k v a
v -> InputDisabledT m (v' a) -> m (v' a)
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT (InputDisabledT m (v' a) -> m (v' a))
-> InputDisabledT m (v' a) -> m (v' a)
forall a b. (a -> b) -> a -> b
$ k a -> v a -> InputDisabledT m (v' a)
forall a. k a -> v a -> InputDisabledT m (v' a)
f k a
k v a
v) (DMap k v -> DMap k v
forall a b. Coercible a b => a -> b
coerce DMap k v
dm0) (Event t (PatchDMap k v) -> Event t (PatchDMap k v)
forall {k} (t :: k) a b.
(Reflex t, Coercible a b) =>
Event t a -> Event t b
coerceEvent Event t (PatchDMap k v)
dm')
traverseDMapWithKeyWithAdjustWithMove :: forall (k :: * -> *) (v :: * -> *) (v' :: * -> *).
GCompare k =>
(forall a. k a -> v a -> InputDisabledT m (v' a))
-> DMap k v
-> Event t (PatchDMapWithMove k v)
-> InputDisabledT m (DMap k v', Event t (PatchDMapWithMove k v'))
traverseDMapWithKeyWithAdjustWithMove forall a. k a -> v a -> InputDisabledT m (v' a)
f DMap k v
dm0 Event t (PatchDMapWithMove k v)
dm' = m (DMap k v', Event t (PatchDMapWithMove k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMapWithMove k v'))
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m (DMap k v', Event t (PatchDMapWithMove k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMapWithMove k v')))
-> m (DMap k v', Event t (PatchDMapWithMove k v'))
-> InputDisabledT m (DMap k v', Event t (PatchDMapWithMove k v'))
forall a b. (a -> b) -> a -> b
$ (forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMapWithMove k v)
-> m (DMap k v', Event t (PatchDMapWithMove k v'))
forall t (m :: * -> *) (k :: * -> *) (v :: * -> *) (v' :: * -> *).
(Adjustable t m, GCompare k) =>
(forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMapWithMove k v)
-> m (DMap k v', Event t (PatchDMapWithMove k v'))
forall (k :: * -> *) (v :: * -> *) (v' :: * -> *).
GCompare k =>
(forall a. k a -> v a -> m (v' a))
-> DMap k v
-> Event t (PatchDMapWithMove k v)
-> m (DMap k v', Event t (PatchDMapWithMove k v'))
traverseDMapWithKeyWithAdjustWithMove (\k a
k v a
v -> InputDisabledT m (v' a) -> m (v' a)
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT (InputDisabledT m (v' a) -> m (v' a))
-> InputDisabledT m (v' a) -> m (v' a)
forall a b. (a -> b) -> a -> b
$ k a -> v a -> InputDisabledT m (v' a)
forall a. k a -> v a -> InputDisabledT m (v' a)
f k a
k v a
v) (DMap k v -> DMap k v
forall a b. Coercible a b => a -> b
coerce DMap k v
dm0) (Event t (PatchDMapWithMove k v) -> Event t (PatchDMapWithMove k v)
forall {k} (t :: k) a b.
(Reflex t, Coercible a b) =>
Event t a -> Event t b
coerceEvent Event t (PatchDMapWithMove k v)
dm')
traverseIntMapWithKeyWithAdjust :: forall v v'.
(Key -> v -> InputDisabledT m v')
-> IntMap v
-> Event t (PatchIntMap v)
-> InputDisabledT m (IntMap v', Event t (PatchIntMap v'))
traverseIntMapWithKeyWithAdjust Key -> v -> InputDisabledT m v'
f IntMap v
m0 Event t (PatchIntMap v)
m' = m (IntMap v', Event t (PatchIntMap v'))
-> InputDisabledT m (IntMap v', Event t (PatchIntMap v'))
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m (IntMap v', Event t (PatchIntMap v'))
-> InputDisabledT m (IntMap v', Event t (PatchIntMap v')))
-> m (IntMap v', Event t (PatchIntMap v'))
-> InputDisabledT m (IntMap v', Event t (PatchIntMap v'))
forall a b. (a -> b) -> a -> b
$ (Key -> v -> m v')
-> IntMap v
-> Event t (PatchIntMap v)
-> m (IntMap v', Event t (PatchIntMap v'))
forall v v'.
(Key -> v -> m v')
-> IntMap v
-> Event t (PatchIntMap v)
-> m (IntMap v', Event t (PatchIntMap v'))
forall t (m :: * -> *) v v'.
Adjustable t m =>
(Key -> v -> m v')
-> IntMap v
-> Event t (PatchIntMap v)
-> m (IntMap v', Event t (PatchIntMap v'))
traverseIntMapWithKeyWithAdjust (\Key
k v
v -> InputDisabledT m v' -> m v'
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT (InputDisabledT m v' -> m v') -> InputDisabledT m v' -> m v'
forall a b. (a -> b) -> a -> b
$ Key -> v -> InputDisabledT m v'
f Key
k v
v) (IntMap v -> IntMap v
forall a b. Coercible a b => a -> b
coerce IntMap v
m0) (Event t (PatchIntMap v) -> Event t (PatchIntMap v)
forall {k} (t :: k) a b.
(Reflex t, Coercible a b) =>
Event t a -> Event t b
coerceEvent Event t (PatchIntMap v)
m')
instance NotReady t m => NotReady t (InputDisabledT m) where
notReadyUntil :: forall a. Event t a -> InputDisabledT m ()
notReadyUntil = m () -> InputDisabledT m ()
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m () -> InputDisabledT m ())
-> (Event t a -> m ()) -> Event t a -> InputDisabledT m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event t a -> m ()
forall a. Event t a -> m ()
forall t (m :: * -> *) a. NotReady t m => Event t a -> m ()
notReadyUntil
notReady :: InputDisabledT m ()
notReady = m () -> InputDisabledT m ()
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift m ()
forall t (m :: * -> *). NotReady t m => m ()
notReady
instance DomBuilder t m => DomBuilder t (InputDisabledT m) where
type DomBuilderSpace (InputDisabledT m) = DomBuilderSpace m
inputElement :: forall (er :: EventTag -> *).
InputElementConfig er t (DomBuilderSpace (InputDisabledT m))
-> InputDisabledT
m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
inputElement InputElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg = m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (InputElement er (DomBuilderSpace (InputDisabledT m)) t))
-> m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (InputElement er (DomBuilderSpace (InputDisabledT m)) t)
forall a b. (a -> b) -> a -> b
$ InputElementConfig er t (DomBuilderSpace m)
-> m (InputElement er (DomBuilderSpace m) t)
forall t (m :: * -> *) (er :: EventTag -> *).
DomBuilder t m =>
InputElementConfig er t (DomBuilderSpace m)
-> m (InputElement er (DomBuilderSpace m) t)
forall (er :: EventTag -> *).
InputElementConfig er t (DomBuilderSpace m)
-> m (InputElement er (DomBuilderSpace m) t)
inputElement (InputElementConfig er t (DomBuilderSpace m)
-> m (InputElement er (DomBuilderSpace m) t))
-> InputElementConfig er t (DomBuilderSpace m)
-> m (InputElement er (DomBuilderSpace m) t)
forall a b. (a -> b) -> a -> b
$ InputElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg
{ _inputElementConfig_elementConfig = disableElementConfig $ _inputElementConfig_elementConfig cfg
}
textAreaElement :: forall (er :: EventTag -> *).
TextAreaElementConfig er t (DomBuilderSpace (InputDisabledT m))
-> InputDisabledT
m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
textAreaElement TextAreaElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg = m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t))
-> m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
-> InputDisabledT
m (TextAreaElement er (DomBuilderSpace (InputDisabledT m)) t)
forall a b. (a -> b) -> a -> b
$ TextAreaElementConfig er t (DomBuilderSpace m)
-> m (TextAreaElement er (DomBuilderSpace m) t)
forall t (m :: * -> *) (er :: EventTag -> *).
DomBuilder t m =>
TextAreaElementConfig er t (DomBuilderSpace m)
-> m (TextAreaElement er (DomBuilderSpace m) t)
forall (er :: EventTag -> *).
TextAreaElementConfig er t (DomBuilderSpace m)
-> m (TextAreaElement er (DomBuilderSpace m) t)
textAreaElement (TextAreaElementConfig er t (DomBuilderSpace m)
-> m (TextAreaElement er (DomBuilderSpace m) t))
-> TextAreaElementConfig er t (DomBuilderSpace m)
-> m (TextAreaElement er (DomBuilderSpace m) t)
forall a b. (a -> b) -> a -> b
$ TextAreaElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg
{ _textAreaElementConfig_elementConfig = disableElementConfig $ _textAreaElementConfig_elementConfig cfg
}
selectElement :: forall (er :: EventTag -> *) a.
SelectElementConfig er t (DomBuilderSpace (InputDisabledT m))
-> InputDisabledT m a
-> InputDisabledT
m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
selectElement SelectElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg InputDisabledT m a
child = do
let cfg' :: SelectElementConfig er t (DomBuilderSpace m)
cfg' = SelectElementConfig er t (DomBuilderSpace (InputDisabledT m))
cfg
{ _selectElementConfig_elementConfig = disableElementConfig $ _selectElementConfig_elementConfig cfg
}
m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
-> InputDisabledT
m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
forall (m :: * -> *) a. Monad m => m a -> InputDisabledT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
-> InputDisabledT
m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a))
-> m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
-> InputDisabledT
m (SelectElement er (DomBuilderSpace (InputDisabledT m)) t, a)
forall a b. (a -> b) -> a -> b
$ SelectElementConfig er t (DomBuilderSpace m)
-> m a -> m (SelectElement er (DomBuilderSpace m) t, a)
forall t (m :: * -> *) (er :: EventTag -> *) a.
DomBuilder t m =>
SelectElementConfig er t (DomBuilderSpace m)
-> m a -> m (SelectElement er (DomBuilderSpace m) t, a)
forall (er :: EventTag -> *) a.
SelectElementConfig er t (DomBuilderSpace m)
-> m a -> m (SelectElement er (DomBuilderSpace m) t, a)
selectElement SelectElementConfig er t (DomBuilderSpace m)
cfg' (m a -> m (SelectElement er (DomBuilderSpace m) t, a))
-> m a -> m (SelectElement er (DomBuilderSpace m) t, a)
forall a b. (a -> b) -> a -> b
$ InputDisabledT m a -> m a
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT InputDisabledT m a
child
instance HasDocument m => HasDocument (InputDisabledT m)
instance DomRenderHook t m => DomRenderHook t (InputDisabledT m) where
withRenderHook :: forall a.
(forall x. JSM x -> JSM x)
-> InputDisabledT m a -> InputDisabledT m a
withRenderHook forall x. JSM x -> JSM x
f = m a -> InputDisabledT m a
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m a -> InputDisabledT m a)
-> (InputDisabledT m a -> m a)
-> InputDisabledT m a
-> InputDisabledT m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall x. JSM x -> JSM x) -> m a -> m a
forall a. (forall x. JSM x -> JSM x) -> m a -> m a
forall {k} (t :: k) (m :: * -> *) a.
DomRenderHook t m =>
(forall x. JSM x -> JSM x) -> m a -> m a
withRenderHook JSM x -> JSM x
forall x. JSM x -> JSM x
f (m a -> m a)
-> (InputDisabledT m a -> m a) -> InputDisabledT m a -> m a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. InputDisabledT m a -> m a
forall (m :: * -> *) a. InputDisabledT m a -> m a
runInputDisabledT
requestDomAction :: forall a. Event t (JSM a) -> InputDisabledT m (Event t a)
requestDomAction = m (Event t a) -> InputDisabledT m (Event t a)
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m (Event t a) -> InputDisabledT m (Event t a))
-> (Event t (JSM a) -> m (Event t a))
-> Event t (JSM a)
-> InputDisabledT m (Event t a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event t (JSM a) -> m (Event t a)
forall a. Event t (JSM a) -> m (Event t a)
forall {k} (t :: k) (m :: * -> *) a.
DomRenderHook t m =>
Event t (JSM a) -> m (Event t a)
requestDomAction
requestDomAction_ :: forall a. Event t (JSM a) -> InputDisabledT m ()
requestDomAction_ = m () -> InputDisabledT m ()
forall (m :: * -> *) a. m a -> InputDisabledT m a
InputDisabledT (m () -> InputDisabledT m ())
-> (Event t (JSM a) -> m ())
-> Event t (JSM a)
-> InputDisabledT m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event t (JSM a) -> m ()
forall a. Event t (JSM a) -> m ()
forall {k} (t :: k) (m :: * -> *) a.
DomRenderHook t m =>
Event t (JSM a) -> m ()
requestDomAction_