-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generic widget library using glazier-react -- -- Generic widget library using glazier-react @package glazier-react-widget @version 0.4.0.0 module Glazier.React.Widgets.List data Command k itemWidget RenderCommand :: (SuperModel (Model k itemWidget) Plan) -> [Property] -> JSVal -> Command k itemWidget DisposeCommand :: SomeDisposable -> Command k itemWidget MakerCommand :: (F (Maker (Action k itemWidget)) (Action k itemWidget)) -> Command k itemWidget ItemCommand :: k -> (CommandOf itemWidget) -> Command k itemWidget data Action k itemWidget ComponentRefAction :: JSVal -> Action k itemWidget RenderAction :: Action k itemWidget ComponentDidUpdateAction :: Action k itemWidget DestroyItemAction :: k -> Action k itemWidget MakeItemAction :: (k -> k) -> (k -> F (Maker (ActionOf itemWidget)) (ModelOf itemWidget)) -> Action k itemWidget AddItemAction :: k -> (SuperModelOf itemWidget) -> Action k itemWidget ItemAction :: k -> (ActionOf itemWidget) -> Action k itemWidget SetFilterAction :: (SuperModelOf itemWidget -> Bool) -> Action k itemWidget class AsAction r_acst k_a9Fz itemWidget_a9FA | r_acst -> k_a9Fz itemWidget_a9FA where _ComponentRefAction = (.) _Action _ComponentRefAction _RenderAction = (.) _Action _RenderAction _ComponentDidUpdateAction = (.) _Action _ComponentDidUpdateAction _DestroyItemAction = (.) _Action _DestroyItemAction _MakeItemAction = (.) _Action _MakeItemAction _AddItemAction = (.) _Action _AddItemAction _ItemAction = (.) _Action _ItemAction _SetFilterAction = (.) _Action _SetFilterAction _Action :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst (Action k_a9Fz itemWidget_a9FA) _ComponentRefAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst JSVal _RenderAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst () _ComponentDidUpdateAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst () _DestroyItemAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst k_a9Fz _MakeItemAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst (k_a9Fz -> k_a9Fz, k_a9Fz -> F (Maker (ActionOf itemWidget_a9FA)) (ModelOf itemWidget_a9FA)) _AddItemAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst (k_a9Fz, SuperModelOf itemWidget_a9FA) _ItemAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst (k_a9Fz, ActionOf itemWidget_a9FA) _SetFilterAction :: AsAction r_acst k_a9Fz itemWidget_a9FA => Prism' r_acst (SuperModelOf itemWidget_a9FA -> Bool) data Plan Plan :: ReactComponent -> Callback (JSVal -> IO JSVal) -> Callback (JSVal -> IO ()) -> Callback (JSVal -> IO ()) -> Plan [_component] :: Plan -> ReactComponent [_onRender] :: Plan -> Callback (JSVal -> IO JSVal) [_onComponentRef] :: Plan -> Callback (JSVal -> IO ()) [_onComponentDidUpdate] :: Plan -> Callback (JSVal -> IO ()) class HasPlan c_acNJ where component = (.) plan component onComponentDidUpdate = (.) plan onComponentDidUpdate onComponentRef = (.) plan onComponentRef onRender = (.) plan onRender plan :: HasPlan c_acNJ => Lens' c_acNJ Plan component :: HasPlan c_acNJ => Lens' c_acNJ ReactComponent onComponentDidUpdate :: HasPlan c_acNJ => Lens' c_acNJ (Callback (JSVal -> IO ())) onComponentRef :: HasPlan c_acNJ => Lens' c_acNJ (Callback (JSVal -> IO ())) onRender :: HasPlan c_acNJ => Lens' c_acNJ (Callback (JSVal -> IO JSVal)) mkPlan :: ReactMlT Identity () -> WindowT (DesignOf itemWidget) (ReactMlT Identity) () -> Frame (Model k itemWidget) Plan -> F (Maker (Action k itemWidget)) Plan data Model k itemWidget Model :: JSString -> JSVal -> Int -> DList SomeDisposable -> JSString -> k -> Map k (SuperModelOf itemWidget) -> (SuperModelOf itemWidget -> Bool) -> Model k itemWidget [_key] :: Model k itemWidget -> JSString [_componentRef] :: Model k itemWidget -> JSVal [_frameNum] :: Model k itemWidget -> Int [_deferredDisposables] :: Model k itemWidget -> DList SomeDisposable [_className] :: Model k itemWidget -> JSString [_itemKey] :: Model k itemWidget -> k [_itemsModel] :: Model k itemWidget -> Map k (SuperModelOf itemWidget) [_itemsFilter] :: Model k itemWidget -> SuperModelOf itemWidget -> Bool class HasModel c_acRY k_a9xs itemWidget_a9xt | c_acRY -> k_a9xs itemWidget_a9xt where className = (.) model className componentRef = (.) model componentRef deferredDisposables = (.) model deferredDisposables frameNum = (.) model frameNum itemKey = (.) model itemKey itemsFilter = (.) model itemsFilter itemsModel = (.) model itemsModel key = (.) model key model :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY (Model k_a9xs itemWidget_a9xt) className :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY JSString componentRef :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY JSVal deferredDisposables :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY (DList SomeDisposable) frameNum :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY Int itemKey :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY k_a9xs itemsFilter :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY (SuperModelOf itemWidget_a9xt -> Bool) itemsModel :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY (Map k_a9xs (SuperModelOf itemWidget_a9xt)) key :: HasModel c_acRY k_a9xs itemWidget_a9xt => Lens' c_acRY JSString type Design k itemWidget = Design (Model k itemWidget) Plan type Frame k itemWidget = Frame (Model k itemWidget) Plan type SuperModel k itemWidget = SuperModel (Model k itemWidget) Plan type Widget k itemWidget = Widget (Command k itemWidget) (Action k itemWidget) (Model k itemWidget) Plan widget :: (IsWidget itemWidget, Ord k) => ReactMlT Identity () -> itemWidget -> Widget (Command k itemWidget) (Action k itemWidget) (Model k itemWidget) Plan -- | Exposed to parent components to render this component window :: WindowT (Design (Model k itemWidget) Plan) (ReactMlT Identity) () gadget :: (Ord k, IsWidget itemWidget) => (ModelOf itemWidget -> F (Maker (ActionOf itemWidget)) (SuperModelOf itemWidget)) -> GadgetT (ActionOf itemWidget) (SuperModelOf itemWidget) Identity (DList (CommandOf itemWidget)) -> GadgetT (Action k itemWidget) (SuperModel (Model k itemWidget) Plan) Identity (DList (Command k itemWidget)) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Widgets.List.Model k0 itemWidget0) k0 itemWidget0 instance Control.Disposable.Disposing Glazier.React.Widgets.List.Plan instance Control.Disposable.Disposing (Glazier.React.Widget.SuperModelOf itemWidget) => Control.Disposable.Disposing (Glazier.React.Widgets.List.Model k itemWidget) instance Glazier.React.Widgets.List.HasPlan (Glazier.React.Model.Design (Glazier.React.Widgets.List.Model k itemWidget) Glazier.React.Widgets.List.Plan) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Model.Design (Glazier.React.Widgets.List.Model k itemWidget) Glazier.React.Widgets.List.Plan) k itemWidget instance Glazier.React.Widgets.List.HasPlan (Glazier.React.Model.SuperModel (Glazier.React.Widgets.List.Model k itemWidget) Glazier.React.Widgets.List.Plan) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Model.SuperModel (Glazier.React.Widgets.List.Model k itemWidget) Glazier.React.Widgets.List.Plan) k itemWidget instance Glazier.React.Widgets.List.HasPlan Glazier.React.Widgets.List.Plan instance Glazier.React.Widgets.List.AsAction (Glazier.React.Widgets.List.Action k0 itemWidget0) k0 itemWidget0 instance GHC.Generics.Generic Glazier.React.Widgets.List.Plan module Glazier.React.Widgets.List.Run run :: (k -> CommandOf itemWidget -> IO ()) -> MVar Int -> ReactComponent -> Output (Action k itemWidget) -> Command k itemWidget -> IO () module Glazier.React.Widgets.Input data Command SetPropertyCommand :: Property -> JSVal -> Command data Action SendCommandsAction :: [Command] -> Action SubmitAction :: JSString -> Action InputRefAction :: JSVal -> Action class AsAction r_aq9f where _SendCommandsAction = (.) _Action _SendCommandsAction _SubmitAction = (.) _Action _SubmitAction _InputRefAction = (.) _Action _InputRefAction _Action :: AsAction r_aq9f => Prism' r_aq9f Action _SendCommandsAction :: AsAction r_aq9f => Prism' r_aq9f [Command] _SubmitAction :: AsAction r_aq9f => Prism' r_aq9f JSString _InputRefAction :: AsAction r_aq9f => Prism' r_aq9f JSVal data Plan Plan :: ReactComponent -> Callback (JSVal -> IO JSVal) -> Callback (JSVal -> IO ()) -> Callback (JSVal -> IO ()) -> Plan [_component] :: Plan -> ReactComponent [_onRender] :: Plan -> Callback (JSVal -> IO JSVal) [_onInputRef] :: Plan -> Callback (JSVal -> IO ()) [_onKeyDown] :: Plan -> Callback (JSVal -> IO ()) class HasPlan c_aqdr where component = (.) plan component onInputRef = (.) plan onInputRef onKeyDown = (.) plan onKeyDown onRender = (.) plan onRender plan :: HasPlan c_aqdr => Lens' c_aqdr Plan component :: HasPlan c_aqdr => Lens' c_aqdr ReactComponent onInputRef :: HasPlan c_aqdr => Lens' c_aqdr (Callback (JSVal -> IO ())) onKeyDown :: HasPlan c_aqdr => Lens' c_aqdr (Callback (JSVal -> IO ())) onRender :: HasPlan c_aqdr => Lens' c_aqdr (Callback (JSVal -> IO JSVal)) mkPlan :: Frame Model Plan -> F (Maker Action) Plan data Model Model :: JSString -> JSVal -> JSString -> JSString -> Model [_key] :: Model -> JSString [_inputRef] :: Model -> JSVal [_placeholder] :: Model -> JSString [_className] :: Model -> JSString class HasModel c_aqht where className = (.) model className inputRef = (.) model inputRef key = (.) model key placeholder = (.) model placeholder model :: HasModel c_aqht => Lens' c_aqht Model className :: HasModel c_aqht => Lens' c_aqht JSString inputRef :: HasModel c_aqht => Lens' c_aqht JSVal key :: HasModel c_aqht => Lens' c_aqht JSString placeholder :: HasModel c_aqht => Lens' c_aqht JSString type Design = Design Model Plan type Frame = Frame Model Plan type SuperModel = SuperModel Model Plan type Widget = Widget Command Action Model Plan widget :: Widget Command Action Model Plan -- | Exposed to parent components to render this component window :: WindowT (Design Model Plan) (ReactMlT Identity) () -- | State update logic. The best practice is to leave this in general -- Monad m (eg, not MonadIO). This allows gadget to use STM as the base -- monad which allows for combining concurrently with other stateful STM -- effects and still maintain a single source of truth. gadget :: GadgetT Action (SuperModel Model Plan) Identity (DList Command) whenKeyDown :: JSVal -> MaybeT IO (Maybe JSString, JSVal) instance Glazier.React.Widgets.Input.HasModel Glazier.React.Widgets.Input.Model instance Control.Disposable.Disposing Glazier.React.Widgets.Input.Plan instance Control.Disposable.Disposing Glazier.React.Widgets.Input.Model instance Glazier.React.Widgets.Input.HasPlan (Glazier.React.Model.Design Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasModel (Glazier.React.Model.Design Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasPlan (Glazier.React.Model.SuperModel Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasModel (Glazier.React.Model.SuperModel Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasPlan Glazier.React.Widgets.Input.Plan instance Glazier.React.Widgets.Input.AsAction Glazier.React.Widgets.Input.Action instance GHC.Generics.Generic Glazier.React.Widgets.Input.Plan module Glazier.React.Widgets.Input.Run run :: Command -> IO ()