-- 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.2.0.0 module Glazier.React.Widgets.List data Command key itemWidget RenderCommand :: (SuperModel (Model key itemWidget) Plan) -> [Property] -> JSVal -> Command key itemWidget DisposeCommand :: SomeDisposable -> Command key itemWidget MakerCommand :: (F (Maker (Action key itemWidget)) (Action key itemWidget)) -> Command key itemWidget ItemCommand :: key -> (WidgetCommand itemWidget) -> Command key itemWidget data Action key itemWidget ComponentRefAction :: JSVal -> Action key itemWidget RenderAction :: Action key itemWidget ComponentDidUpdateAction :: Action key itemWidget DestroyItemAction :: key -> Action key itemWidget MakeItemAction :: (key -> key) -> (key -> F (Maker (WidgetAction itemWidget)) (WidgetModel itemWidget)) -> Action key itemWidget AddItemAction :: key -> (WidgetSuperModel itemWidget) -> Action key itemWidget ItemAction :: key -> (WidgetAction itemWidget) -> Action key itemWidget SetFilterAction :: (WidgetSuperModel itemWidget -> Bool) -> Action key itemWidget class AsAction r_acqq key_a9Du itemWidget_a9Dv | r_acqq -> key_a9Du itemWidget_a9Dv 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_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq (Action key_a9Du itemWidget_a9Dv) _ComponentRefAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq JSVal _RenderAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq () _ComponentDidUpdateAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq () _DestroyItemAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq key_a9Du _MakeItemAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq (key_a9Du -> key_a9Du, key_a9Du -> F (Maker (WidgetAction itemWidget_a9Dv)) (WidgetModel itemWidget_a9Dv)) _AddItemAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq (key_a9Du, WidgetSuperModel itemWidget_a9Dv) _ItemAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq (key_a9Du, WidgetAction itemWidget_a9Dv) _SetFilterAction :: AsAction r_acqq key_a9Du itemWidget_a9Dv => Prism' r_acqq (WidgetSuperModel itemWidget_a9Dv -> 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_acLo where component = (.) plan component onComponentDidUpdate = (.) plan onComponentDidUpdate onComponentRef = (.) plan onComponentRef onRender = (.) plan onRender plan :: HasPlan c_acLo => Lens' c_acLo Plan component :: HasPlan c_acLo => Lens' c_acLo ReactComponent onComponentDidUpdate :: HasPlan c_acLo => Lens' c_acLo (Callback (JSVal -> IO ())) onComponentRef :: HasPlan c_acLo => Lens' c_acLo (Callback (JSVal -> IO ())) onRender :: HasPlan c_acLo => Lens' c_acLo (Callback (JSVal -> IO JSVal)) mkPlan :: WindowT (WidgetDesign itemWidget) (ReactMlT Identity) () -> ReactMlT Identity () -> Replica key itemWidget -> F (Maker (Action key itemWidget)) Plan data Model key itemWidget Model :: JSString -> JSVal -> Int -> DList (Command key itemWidget) -> JSString -> key -> Map key (WidgetSuperModel itemWidget) -> (WidgetSuperModel itemWidget -> Bool) -> Model key itemWidget [_uid] :: Model key itemWidget -> JSString [_componentRef] :: Model key itemWidget -> JSVal [_frameNum] :: Model key itemWidget -> Int [_deferredCommands] :: Model key itemWidget -> DList (Command key itemWidget) [_className] :: Model key itemWidget -> JSString [_itemKey] :: Model key itemWidget -> key [_itemsModel] :: Model key itemWidget -> Map key (WidgetSuperModel itemWidget) [_itemsFilter] :: Model key itemWidget -> WidgetSuperModel itemWidget -> Bool class HasModel c_acPD key_a9vn itemWidget_a9vo | c_acPD -> key_a9vn itemWidget_a9vo where className = (.) model className componentRef = (.) model componentRef deferredCommands = (.) model deferredCommands frameNum = (.) model frameNum itemKey = (.) model itemKey itemsFilter = (.) model itemsFilter itemsModel = (.) model itemsModel uid = (.) model uid model :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD (Model key_a9vn itemWidget_a9vo) className :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD JSString componentRef :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD JSVal deferredCommands :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD (DList (Command key_a9vn itemWidget_a9vo)) frameNum :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD Int itemKey :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD key_a9vn itemsFilter :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD (WidgetSuperModel itemWidget_a9vo -> Bool) itemsModel :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD (Map key_a9vn (WidgetSuperModel itemWidget_a9vo)) uid :: HasModel c_acPD key_a9vn itemWidget_a9vo => Lens' c_acPD JSString mkSuperModel :: WindowT (WidgetDesign itemWidget) (ReactMlT Identity) () -> ReactMlT Identity () -> Model key itemWidget -> F (Maker (Action key itemWidget)) (SuperModel key itemWidget) data Widget key itemWidget type Design key itemWidget = WidgetDesign (Widget key itemWidget) type Replica key itemWidget = WidgetReplica (Widget key itemWidget) type SuperModel key itemWidget = WidgetSuperModel (Widget key itemWidget) -- | This is used by parent components to render this component window :: Monad m => WindowT (Design key itemWidget) (ReactMlT m) () gadget :: (Ord key, Monad m, Disposing (WidgetModel itemWidget), Disposing (WidgetPlan itemWidget)) => (WidgetModel itemWidget -> F (Maker (WidgetAction itemWidget)) (WidgetSuperModel itemWidget)) -> GadgetT (WidgetAction itemWidget) (WidgetSuperModel itemWidget) m (DList (WidgetCommand itemWidget)) -> GadgetT (Action key itemWidget) (SuperModel key itemWidget) m (DList (Command key itemWidget)) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Widgets.List.Model key0 itemWidget0) key0 itemWidget0 instance (Control.Disposable.Disposing (Glazier.React.Widget.WidgetPlan itemWidget), Control.Disposable.Disposing (Glazier.React.Widget.WidgetModel itemWidget)) => Control.Disposable.Disposing (Glazier.React.Widgets.List.Model key itemWidget) instance Glazier.React.Widget.IsWidget (Glazier.React.Widgets.List.Widget key itemWidget) instance Control.Disposable.Disposing Glazier.React.Widgets.List.Plan instance Glazier.React.Widgets.List.HasPlan (Glazier.React.Widget.Design (Glazier.React.Widgets.List.Model key itemWidget) Glazier.React.Widgets.List.Plan) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Widget.Design (Glazier.React.Widgets.List.Model key itemWidget) Glazier.React.Widgets.List.Plan) key itemWidget instance Glazier.React.Widgets.List.HasPlan (Glazier.React.Widget.SuperModel (Glazier.React.Widgets.List.Model key itemWidget) Glazier.React.Widgets.List.Plan) instance Glazier.React.Widgets.List.HasModel (Glazier.React.Widget.SuperModel (Glazier.React.Widgets.List.Model key itemWidget) Glazier.React.Widgets.List.Plan) key itemWidget instance Glazier.React.Widgets.List.HasPlan Glazier.React.Widgets.List.Plan instance Glazier.React.Widgets.List.AsAction (Glazier.React.Widgets.List.Action key0 itemWidget0) key0 itemWidget0 instance GHC.Generics.Generic Glazier.React.Widgets.List.Plan module Glazier.React.Widgets.List.Run run :: (key -> WidgetCommand itemWidget -> IO ()) -> ReactComponent -> Output (Action key itemWidget) -> Command key itemWidget -> IO () module Glazier.React.Widgets.Input data Command act SetPropertyCommand :: Property -> JSVal -> Command act GetPropertyCommand :: JSString -> JSVal -> (JSVal -> act) -> Command act data Action act SendCommandsAction :: [Command act] -> Action act SubmitAction :: JSString -> Action act InputRefAction :: JSVal -> Action act GetPropertyAction :: JSString -> (JSVal -> act) -> Action act class AsAction r_aq4Q act_apXn | r_aq4Q -> act_apXn where _SendCommandsAction = (.) _Action _SendCommandsAction _SubmitAction = (.) _Action _SubmitAction _InputRefAction = (.) _Action _InputRefAction _GetPropertyAction = (.) _Action _GetPropertyAction _Action :: AsAction r_aq4Q act_apXn => Prism' r_aq4Q (Action act_apXn) _SendCommandsAction :: AsAction r_aq4Q act_apXn => Prism' r_aq4Q [Command act_apXn] _SubmitAction :: AsAction r_aq4Q act_apXn => Prism' r_aq4Q JSString _InputRefAction :: AsAction r_aq4Q act_apXn => Prism' r_aq4Q JSVal _GetPropertyAction :: AsAction r_aq4Q act_apXn => Prism' r_aq4Q (JSString, JSVal -> act_apXn) 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_aqaO where component = (.) plan component onInputRef = (.) plan onInputRef onKeyDown = (.) plan onKeyDown onRender = (.) plan onRender plan :: HasPlan c_aqaO => Lens' c_aqaO Plan component :: HasPlan c_aqaO => Lens' c_aqaO ReactComponent onInputRef :: HasPlan c_aqaO => Lens' c_aqaO (Callback (JSVal -> IO ())) onKeyDown :: HasPlan c_aqaO => Lens' c_aqaO (Callback (JSVal -> IO ())) onRender :: HasPlan c_aqaO => Lens' c_aqaO (Callback (JSVal -> IO JSVal)) mkPlan :: Replica Model Plan -> F (Maker (Action act)) Plan data Model Model :: JSString -> JSVal -> JSString -> JSString -> Model [_uid] :: Model -> JSString [_inputRef] :: Model -> JSVal [_placeholder] :: Model -> JSString [_className] :: Model -> JSString class HasModel c_aqeQ where className = (.) model className inputRef = (.) model inputRef placeholder = (.) model placeholder uid = (.) model uid model :: HasModel c_aqeQ => Lens' c_aqeQ Model className :: HasModel c_aqeQ => Lens' c_aqeQ JSString inputRef :: HasModel c_aqeQ => Lens' c_aqeQ JSVal placeholder :: HasModel c_aqeQ => Lens' c_aqeQ JSString uid :: HasModel c_aqeQ => Lens' c_aqeQ JSString mkSuperModel :: Model -> F (Maker (Action act)) (SuperModel act) data Widget act type Design act = WidgetDesign (Widget act) type Replica act = WidgetReplica (Widget act) type SuperModel act = WidgetSuperModel (Widget act) -- | This is used by parent components to render this component window :: Monad m => WindowT (Design act) (ReactMlT m) () -- | 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 :: Monad m => GadgetT (Action act) (SuperModel act) m (DList (Command act)) 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.Model instance Glazier.React.Widget.IsWidget (Glazier.React.Widgets.Input.Widget act) instance Control.Disposable.Disposing Glazier.React.Widgets.Input.Plan instance Glazier.React.Widgets.Input.HasPlan (Glazier.React.Widget.Design Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasModel (Glazier.React.Widget.Design Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasPlan (Glazier.React.Widget.SuperModel Glazier.React.Widgets.Input.Model Glazier.React.Widgets.Input.Plan) instance Glazier.React.Widgets.Input.HasModel (Glazier.React.Widget.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 act0) act0 instance GHC.Generics.Generic Glazier.React.Widgets.Input.Plan instance GHC.Base.Functor Glazier.React.Widgets.Input.Action instance GHC.Base.Functor Glazier.React.Widgets.Input.Command module Glazier.React.Widgets.Input.Run run :: Output act -> Command act -> IO ()