Program
Elements
Documents
Application
Platform.Program elmFlags (FrameworkModel appAddresses appModel) (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)
All of the functions in this module will return a Program. A Program describes an Elm program! How does it react to input? Does it show anything on screen? Etc.
element : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output -> Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) } -> Program elmFlags appFlags appAddresses appActors appModel appMsg
Create an HTML element managed by Elm. The resulting elements are easy to embed in larger JavaScript projects, and lots of companies that use Elm started with this approach! Try it out on something small. If it works, great, do more! If not, revert, no big deal.
document : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output -> List (Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)) } -> Program elmFlags appFlags appAddresses appActors appModel appMsg
Create an HTML document managed by Elm. This expands upon what element can do in that view now gives you control over the
application : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), init : elmFlags -> Url -> Browser.Navigation.Key -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, view : List output -> List (Html (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg)), onUrlRequest : Browser.UrlRequest -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg, onUrlChange : Url -> Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg } -> Program elmFlags appFlags appAddresses appActors appModel appMsg
Create an application that manages Url changes.
Framework.Internal.Model.FrameworkModel appAddresses appModel
An alias for the Internal Framework Model
toProgramRecord : { factory : appActors -> ( Framework.Internal.Pid.Pid, appFlags ) -> ( appModel, Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg ), apply : appModel -> Framework.Internal.Actor.Process appModel output (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) } -> { init : Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg -> ( FrameworkModel appAddresses appModel, Platform.Cmd.Cmd (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) ), update : Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg -> FrameworkModel appAddresses appModel -> ( FrameworkModel appAddresses appModel, Platform.Cmd.Cmd (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg) ), subscriptions : FrameworkModel appAddresses appModel -> Platform.Sub.Sub (Framework.Internal.Message.FrameworkMessage appFlags appAddresses appActors appModel appMsg), view : (List output -> List (Html msg)) -> FrameworkModel appAddresses appModel -> Browser.Document msg }
Returns a record that is ready to be used on one of the elm/browsers creation functions.
This can be used to roll your own Program
getInstance : Framework.Internal.Pid.Pid -> FrameworkModel appAddresses appModel -> Maybe appModel