[
    {
        "name": "Editable.WebData",
        "comment": " An EditableWebDataWrapper represents an Editable value, along with WebData.\n\n`EditableWebDataWrapper` is a wrapper type around [Editable](http://package.elm-lang.org/packages/stoeffel/editable/latest)\nand [WebData](http://package.elm-lang.org/packages/krisajenkins/remotedata/latest)\n\nIt is used in order to keep track of the state of the Editable upon saving. That is,\nas we change the `Editable` value, and send it to the backend, we can keep track of their state\n(e.g. `RemoteData.Success` or `RemoteData.Failure`).\n\n@docs EditableWebData, EditableWebDataWrapper, create, map, toEditable, state, toWebData\n\n",
        "unions": [
            {
                "name": "EditableWebDataWrapper",
                "comment": " A wrapper for `Editable`, that allows provides the means to track saving\nback to the backend via `WebData`.\n\nIf there is not value for WebData to track (i.e. it doesn't need to hold the\nsuccess value), you can pass a unit value (`()`).\n\n    import Editable\n\n    view : EditableWebDataWrapper String -> Html msg\n    view editableWebData =\n        let\n            value =\n                Editable.WebData.toEditable |> Editable.value\n\n            toWebData =\n                Editable.WebData.toWebData\n        in\n        text <| \"Editable value is: \" ++ toString value ++ \" with a WebDataValue of \" ++ toString toWebData\n\n",
                "args": [
                    "a",
                    "b"
                ],
                "cases": []
            }
        ],
        "aliases": [
            {
                "name": "EditableWebData",
                "comment": " Most typical use case, is to wrap an `Editable` value, and have a unit (`()`)\nact the the value of the WebData.\n",
                "args": [
                    "a"
                ],
                "type": "EditableWebDataWrapper a ()"
            }
        ],
        "values": [
            {
                "name": "create",
                "comment": " Creates a new `EditableWebDataWrapper`.\n\nThis will create the `EditableWebDataWrapper` with the default values `ReadOnly` for\nthe `Editable` and `NotAsked` for the WebData, as those are the values you are\nlikely to begin with. You can of course later updated it, for example:\n\n    import Editable\n    import RemoteData\n\n    -- Change the `Editable` value\n    Editable.WebData.create \"old\"\n        |> Editable.WebData.map (Editable.edit)\n        |> Editable.WebData.map (Editable.update \"new\")\n        |> Editable.WebData.toEditable\n        |> Editable.value --> \"new\"\n\n    -- Change the `WebData` state\n    Editable.WebData.create \"original\"\n        |> Editable.WebData.state RemoteData.Loading\n        |> Editable.WebData.toWebData --> RemoteData.Loading\n\n",
                "type": "a -> EditableWebDataWrapper a b"
            },
            {
                "name": "map",
                "comment": " Maps function to the `Editable`.\n\n    import Editable\n\n    Editable.WebData.create \"old\"\n        -- Convert to `Editable` and update the value in one go.\n        |> Editable.WebData.map (Editable.edit >> Editable.map (always \"new\"))\n        |> Editable.WebData.toEditable\n        |> Editable.value --> \"new\"\n\n    Editable.WebData.create \"old\"\n        -- Convert to `Editable` and update the value in one go.\n        |> Editable.WebData.map (Editable.edit >> Editable.map (\\val -> val ++ \" is now new\"))\n        |> Editable.WebData.toEditable\n        |> Editable.value --> \"old is now new\"\n\n",
                "type": "(Editable a -> Editable a) -> EditableWebDataWrapper a b -> EditableWebDataWrapper a b"
            },
            {
                "name": "state",
                "comment": " Updates the `WebData` value.\n\nFor updating the value of the `Editable` itself, see the example of `map`.\n\n    import RemoteData\n\n    Editable.WebData.create \"new\"\n        |> Editable.WebData.state RemoteData.Loading\n        |> Editable.WebData.toWebData --> RemoteData.Loading\n\n    Editable.WebData.create \"new\"\n        |> Editable.WebData.state (RemoteData.Success ())\n        |> Editable.WebData.toWebData --> RemoteData.Success ()\n\n",
                "type": "WebData b -> EditableWebDataWrapper a b -> EditableWebDataWrapper a b"
            },
            {
                "name": "toEditable",
                "comment": " Extracts the `Editable` value.\n\n    import Editable\n\n    Editable.WebData.create \"new\"\n        |> Editable.WebData.toEditable --> Editable.ReadOnly \"new\"\n\n    Editable.WebData.create \"old\"\n        |> Editable.WebData.map(Editable.edit)\n        |> Editable.WebData.map(Editable.update \"new\")\n        |> Editable.WebData.toEditable --> Editable.Editable \"old\" \"new\"\n\n",
                "type": "EditableWebDataWrapper a b -> Editable a"
            },
            {
                "name": "toWebData",
                "comment": " Extracts the `WebData` value.\n\n    import RemoteData\n\n    Editable.WebData.create \"new\"\n        |> Editable.WebData.toWebData --> RemoteData.NotAsked\n\n    Editable.WebData.create \"new\"\n        |> Editable.WebData.state RemoteData.Loading\n        |> Editable.WebData.toWebData --> RemoteData.Loading\n\n",
                "type": "EditableWebDataWrapper a b -> WebData b"
            }
        ],
        "binops": []
    }
]