elm-pages 3.0.0-beta.4 → 3.0.0-beta.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/adapter/netlify.js +207 -0
- package/codegen/{elm-pages-codegen.js → elm-pages-codegen.cjs} +2828 -2933
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmi +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateData.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-DeadCodeEliminateDataTest.elmo +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1447 -342
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/Runner.elm.js +17004 -13817
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/dead-code-review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/dead-code-review/elm.json +9 -7
- package/generator/dead-code-review/src/Pages/Review/DeadCodeEliminateData.elm +59 -10
- package/generator/dead-code-review/tests/Pages/Review/DeadCodeEliminateDataTest.elm +52 -36
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Internal-RoutePattern.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmi +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/Pages-Review-NoContractViolations.elmo +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/d.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/i.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm-stuff/0.19.1/o.dat +0 -0
- package/generator/review/elm-stuff/tests-0.19.1/elm.json +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/Reporter.elm.js +1447 -342
- package/generator/review/elm-stuff/tests-0.19.1/js/Runner.elm.js +25025 -21739
- package/generator/review/elm-stuff/tests-0.19.1/js/node_runner.js +1 -1
- package/generator/review/elm-stuff/tests-0.19.1/js/node_supervisor.js +4 -4
- package/generator/review/elm.json +10 -10
- package/generator/src/RouteBuilder.elm +121 -114
- package/generator/src/SharedTemplate.elm +8 -7
- package/generator/src/SiteConfig.elm +3 -2
- package/generator/src/basepath-middleware.js +3 -3
- package/generator/src/build.js +209 -92
- package/generator/src/cli.js +292 -88
- package/generator/src/codegen.js +29 -27
- package/generator/src/compatibility-key.js +3 -0
- package/generator/src/compile-elm.js +43 -26
- package/generator/src/config.js +39 -0
- package/generator/src/copy-dir.js +2 -2
- package/generator/src/dev-server.js +176 -138
- package/generator/src/dir-helpers.js +9 -26
- package/generator/src/elm-codegen.js +5 -4
- package/generator/src/elm-file-constants.js +2 -3
- package/generator/src/error-formatter.js +12 -11
- package/generator/src/file-helpers.js +3 -4
- package/generator/src/generate-template-module-connector.js +23 -23
- package/generator/src/init.js +9 -8
- package/generator/src/pre-render-html.js +39 -28
- package/generator/src/render-test.js +109 -0
- package/generator/src/render-worker.js +25 -28
- package/generator/src/render.js +321 -142
- package/generator/src/request-cache.js +265 -162
- package/generator/src/resolve-elm-module.js +64 -0
- package/generator/src/rewrite-client-elm-json.js +6 -5
- package/generator/src/rewrite-elm-json-help.js +56 -0
- package/generator/src/rewrite-elm-json.js +17 -7
- package/generator/src/route-codegen-helpers.js +16 -31
- package/generator/src/seo-renderer.js +12 -7
- package/generator/src/vite-utils.js +77 -0
- package/generator/static-code/elm-pages.js +10 -0
- package/generator/static-code/hmr.js +79 -13
- package/generator/template/app/Api.elm +6 -5
- package/generator/template/app/Effect.elm +123 -0
- package/generator/template/app/ErrorPage.elm +37 -6
- package/generator/template/app/Route/Index.elm +17 -10
- package/generator/template/app/Shared.elm +24 -47
- package/generator/template/app/Site.elm +19 -6
- package/generator/template/app/View.elm +1 -8
- package/generator/template/elm-tooling.json +0 -3
- package/generator/template/elm.json +32 -24
- package/generator/template/package.json +10 -4
- package/package.json +30 -27
- package/src/ApiRoute.elm +199 -61
- package/src/BackendTask/Custom.elm +325 -0
- package/src/BackendTask/Env.elm +90 -0
- package/src/{DataSource → BackendTask}/File.elm +171 -56
- package/src/{DataSource → BackendTask}/Glob.elm +136 -125
- package/src/BackendTask/Http.elm +679 -0
- package/src/{DataSource → BackendTask}/Internal/Glob.elm +1 -1
- package/src/BackendTask/Internal/Request.elm +69 -0
- package/src/BackendTask/Random.elm +79 -0
- package/src/BackendTask/Time.elm +47 -0
- package/src/BackendTask.elm +531 -0
- package/src/FatalError.elm +90 -0
- package/src/Head/Seo.elm +4 -4
- package/src/Head.elm +237 -7
- package/src/HtmlPrinter.elm +7 -3
- package/src/Internal/ApiRoute.elm +7 -5
- package/src/PageServerResponse.elm +6 -1
- package/src/Pages/ConcurrentSubmission.elm +127 -0
- package/src/Pages/Form.elm +340 -0
- package/src/Pages/FormData.elm +18 -0
- package/src/Pages/GeneratorProgramConfig.elm +15 -0
- package/src/Pages/Internal/FatalError.elm +5 -0
- package/src/Pages/Internal/Msg.elm +93 -0
- package/src/Pages/Internal/NotFoundReason.elm +4 -4
- package/src/Pages/Internal/Platform/Cli.elm +617 -768
- package/src/Pages/Internal/Platform/CompatibilityKey.elm +6 -0
- package/src/Pages/Internal/Platform/Effect.elm +1 -2
- package/src/Pages/Internal/Platform/GeneratorApplication.elm +379 -0
- package/src/Pages/Internal/Platform/StaticResponses.elm +65 -276
- package/src/Pages/Internal/Platform/ToJsPayload.elm +6 -9
- package/src/Pages/Internal/Platform.elm +359 -225
- package/src/Pages/Internal/ResponseSketch.elm +2 -2
- package/src/Pages/Internal/Script.elm +17 -0
- package/src/Pages/Internal/StaticHttpBody.elm +35 -1
- package/src/Pages/Manifest.elm +52 -11
- package/src/Pages/Navigation.elm +87 -0
- package/src/Pages/PageUrl.elm +26 -12
- package/src/Pages/ProgramConfig.elm +35 -23
- package/src/Pages/Script.elm +166 -0
- package/src/Pages/SiteConfig.elm +3 -2
- package/src/Pages/StaticHttp/Request.elm +2 -2
- package/src/Pages/StaticHttpRequest.elm +23 -99
- package/src/Pages/Url.elm +3 -3
- package/src/PagesMsg.elm +88 -0
- package/src/QueryParams.elm +21 -172
- package/src/RenderRequest.elm +7 -7
- package/src/RequestsAndPending.elm +37 -20
- package/src/Result/Extra.elm +26 -0
- package/src/Scaffold/Form.elm +569 -0
- package/src/Scaffold/Route.elm +1411 -0
- package/src/Server/Request.elm +74 -72
- package/src/Server/Session.elm +62 -42
- package/src/Server/SetCookie.elm +80 -32
- package/src/Stub.elm +53 -0
- package/src/Test/Html/Internal/ElmHtml/ToString.elm +8 -9
- package/src/{Path.elm → UrlPath.elm} +33 -36
- package/src/DataSource/Env.elm +0 -38
- package/src/DataSource/Http.elm +0 -446
- package/src/DataSource/Internal/Request.elm +0 -20
- package/src/DataSource/Port.elm +0 -90
- package/src/DataSource.elm +0 -538
- package/src/Form/Field.elm +0 -717
- package/src/Form/FieldStatus.elm +0 -36
- package/src/Form/FieldView.elm +0 -417
- package/src/Form/FormData.elm +0 -22
- package/src/Form/Validation.elm +0 -391
- package/src/Form/Value.elm +0 -118
- package/src/Form.elm +0 -1683
- package/src/FormDecoder.elm +0 -102
- package/src/Pages/FormState.elm +0 -256
- package/src/Pages/Generate.elm +0 -800
- package/src/Pages/Internal/Form.elm +0 -17
- package/src/Pages/Msg.elm +0 -79
- package/src/Pages/Transition.elm +0 -70
package/src/Form/FieldStatus.elm
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Form.FieldStatus exposing (FieldStatus(..), fieldStatusToString)
|
|
2
|
-
|
|
3
|
-
{-| elm-pages manages the client-side state of fields, including Status which you can use to determine when
|
|
4
|
-
in the user's workflow to show validation errors.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Field Status
|
|
8
|
-
|
|
9
|
-
@docs FieldStatus, fieldStatusToString
|
|
10
|
-
|
|
11
|
-
-}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
{-| -}
|
|
15
|
-
type FieldStatus
|
|
16
|
-
= NotVisited
|
|
17
|
-
| Focused
|
|
18
|
-
| Changed
|
|
19
|
-
| Blurred
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
{-| -}
|
|
23
|
-
fieldStatusToString : FieldStatus -> String
|
|
24
|
-
fieldStatusToString fieldStatus =
|
|
25
|
-
case fieldStatus of
|
|
26
|
-
NotVisited ->
|
|
27
|
-
"NotVisited"
|
|
28
|
-
|
|
29
|
-
Focused ->
|
|
30
|
-
"Focused"
|
|
31
|
-
|
|
32
|
-
Changed ->
|
|
33
|
-
"Changed"
|
|
34
|
-
|
|
35
|
-
Blurred ->
|
|
36
|
-
"Blurred"
|
package/src/Form/FieldView.elm
DELETED
|
@@ -1,417 +0,0 @@
|
|
|
1
|
-
module Form.FieldView exposing
|
|
2
|
-
( Input(..), InputType(..), Options(..), input, inputTypeToString, radio, toHtmlProperties, Hidden(..), select
|
|
3
|
-
, radioStyled, inputStyled
|
|
4
|
-
)
|
|
5
|
-
|
|
6
|
-
{-|
|
|
7
|
-
|
|
8
|
-
@docs Input, InputType, Options, input, inputTypeToString, radio, toHtmlProperties, Hidden, select
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Html.Styled Helpers
|
|
12
|
-
|
|
13
|
-
@docs radioStyled, inputStyled
|
|
14
|
-
|
|
15
|
-
-}
|
|
16
|
-
|
|
17
|
-
import Form.Validation
|
|
18
|
-
import Html exposing (Html)
|
|
19
|
-
import Html.Attributes as Attr
|
|
20
|
-
import Html.Styled
|
|
21
|
-
import Html.Styled.Attributes as StyledAttr
|
|
22
|
-
import Json.Encode as Encode
|
|
23
|
-
import Pages.Internal.Form exposing (Validation(..), ViewField)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{-| -}
|
|
27
|
-
type InputType
|
|
28
|
-
= Text
|
|
29
|
-
| Number
|
|
30
|
-
-- TODO should range have arguments for initial, min, and max?
|
|
31
|
-
| Range
|
|
32
|
-
| Radio
|
|
33
|
-
-- TODO should submit be a special type, or an Input type?
|
|
34
|
-
-- TODO have an option for a submit with a name/value?
|
|
35
|
-
| Date
|
|
36
|
-
| Time
|
|
37
|
-
| Checkbox
|
|
38
|
-
| Tel
|
|
39
|
-
| Search
|
|
40
|
-
| Password
|
|
41
|
-
| Email
|
|
42
|
-
| Url
|
|
43
|
-
| Textarea
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{-| -}
|
|
47
|
-
inputTypeToString : InputType -> String
|
|
48
|
-
inputTypeToString inputType =
|
|
49
|
-
case inputType of
|
|
50
|
-
Text ->
|
|
51
|
-
"text"
|
|
52
|
-
|
|
53
|
-
Textarea ->
|
|
54
|
-
"text"
|
|
55
|
-
|
|
56
|
-
Number ->
|
|
57
|
-
"number"
|
|
58
|
-
|
|
59
|
-
Range ->
|
|
60
|
-
"range"
|
|
61
|
-
|
|
62
|
-
Radio ->
|
|
63
|
-
"radio"
|
|
64
|
-
|
|
65
|
-
Date ->
|
|
66
|
-
"date"
|
|
67
|
-
|
|
68
|
-
Time ->
|
|
69
|
-
"time"
|
|
70
|
-
|
|
71
|
-
Checkbox ->
|
|
72
|
-
"checkbox"
|
|
73
|
-
|
|
74
|
-
Tel ->
|
|
75
|
-
"tel"
|
|
76
|
-
|
|
77
|
-
Search ->
|
|
78
|
-
"search"
|
|
79
|
-
|
|
80
|
-
Password ->
|
|
81
|
-
"password"
|
|
82
|
-
|
|
83
|
-
Email ->
|
|
84
|
-
"email"
|
|
85
|
-
|
|
86
|
-
Url ->
|
|
87
|
-
"url"
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
{-| -}
|
|
91
|
-
type Input
|
|
92
|
-
= Input InputType
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
{-| There are no render helpers for hidden fields because the `Form.renderHtml` helper functions automatically render hidden fields for you.
|
|
96
|
-
-}
|
|
97
|
-
type Hidden
|
|
98
|
-
= Hidden
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
{-| -}
|
|
102
|
-
type Options a
|
|
103
|
-
= Options (String -> Maybe a) (List String)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
{-| -}
|
|
107
|
-
input :
|
|
108
|
-
List (Html.Attribute msg)
|
|
109
|
-
-> Form.Validation.Field error parsed Input
|
|
110
|
-
-> Html msg
|
|
111
|
-
input attrs (Validation viewField fieldName _) =
|
|
112
|
-
let
|
|
113
|
-
justViewField : ViewField Input
|
|
114
|
-
justViewField =
|
|
115
|
-
expectViewField viewField
|
|
116
|
-
|
|
117
|
-
rawField : { name : String, value : Maybe String, kind : ( Input, List ( String, Encode.Value ) ) }
|
|
118
|
-
rawField =
|
|
119
|
-
{ name = fieldName |> Maybe.withDefault ""
|
|
120
|
-
, value = justViewField.value
|
|
121
|
-
, kind = justViewField.kind
|
|
122
|
-
}
|
|
123
|
-
in
|
|
124
|
-
case rawField.kind of
|
|
125
|
-
( Input Textarea, properties ) ->
|
|
126
|
-
Html.textarea
|
|
127
|
-
(attrs
|
|
128
|
-
++ toHtmlProperties properties
|
|
129
|
-
++ [ Attr.value (rawField.value |> Maybe.withDefault "")
|
|
130
|
-
, Attr.name rawField.name
|
|
131
|
-
]
|
|
132
|
-
)
|
|
133
|
-
[]
|
|
134
|
-
|
|
135
|
-
( Input inputType, properties ) ->
|
|
136
|
-
Html.input
|
|
137
|
-
(attrs
|
|
138
|
-
++ toHtmlProperties properties
|
|
139
|
-
++ [ (case inputType of
|
|
140
|
-
Checkbox ->
|
|
141
|
-
Attr.checked ((rawField.value |> Maybe.withDefault "") == "on")
|
|
142
|
-
|
|
143
|
-
_ ->
|
|
144
|
-
Attr.value (rawField.value |> Maybe.withDefault "")
|
|
145
|
-
-- TODO is this an okay default?
|
|
146
|
-
)
|
|
147
|
-
, Attr.name rawField.name
|
|
148
|
-
, inputType |> inputTypeToString |> Attr.type_
|
|
149
|
-
]
|
|
150
|
-
)
|
|
151
|
-
[]
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
{-| -}
|
|
155
|
-
inputStyled :
|
|
156
|
-
List (Html.Styled.Attribute msg)
|
|
157
|
-
-> Form.Validation.Field error parsed Input
|
|
158
|
-
-> Html.Styled.Html msg
|
|
159
|
-
inputStyled attrs (Validation viewField fieldName _) =
|
|
160
|
-
let
|
|
161
|
-
justViewField : ViewField Input
|
|
162
|
-
justViewField =
|
|
163
|
-
expectViewField viewField
|
|
164
|
-
|
|
165
|
-
rawField : { name : String, value : Maybe String, kind : ( Input, List ( String, Encode.Value ) ) }
|
|
166
|
-
rawField =
|
|
167
|
-
{ name = fieldName |> Maybe.withDefault ""
|
|
168
|
-
, value = justViewField.value
|
|
169
|
-
, kind = justViewField.kind
|
|
170
|
-
}
|
|
171
|
-
in
|
|
172
|
-
case rawField.kind of
|
|
173
|
-
( Input Textarea, properties ) ->
|
|
174
|
-
Html.Styled.textarea
|
|
175
|
-
(attrs
|
|
176
|
-
++ (toHtmlProperties properties |> List.map StyledAttr.fromUnstyled)
|
|
177
|
-
++ ([ Attr.value (rawField.value |> Maybe.withDefault "")
|
|
178
|
-
, Attr.name rawField.name
|
|
179
|
-
]
|
|
180
|
-
|> List.map StyledAttr.fromUnstyled
|
|
181
|
-
)
|
|
182
|
-
)
|
|
183
|
-
[]
|
|
184
|
-
|
|
185
|
-
( Input inputType, properties ) ->
|
|
186
|
-
Html.Styled.input
|
|
187
|
-
(attrs
|
|
188
|
-
++ (toHtmlProperties properties |> List.map StyledAttr.fromUnstyled)
|
|
189
|
-
++ ([ (case inputType of
|
|
190
|
-
Checkbox ->
|
|
191
|
-
Attr.checked ((rawField.value |> Maybe.withDefault "") == "on")
|
|
192
|
-
|
|
193
|
-
_ ->
|
|
194
|
-
Attr.value (rawField.value |> Maybe.withDefault "")
|
|
195
|
-
-- TODO is this an okay default?
|
|
196
|
-
)
|
|
197
|
-
, Attr.name rawField.name
|
|
198
|
-
, inputType |> inputTypeToString |> Attr.type_
|
|
199
|
-
]
|
|
200
|
-
|> List.map StyledAttr.fromUnstyled
|
|
201
|
-
)
|
|
202
|
-
)
|
|
203
|
-
[]
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
{-| -}
|
|
207
|
-
select :
|
|
208
|
-
List (Html.Attribute msg)
|
|
209
|
-
->
|
|
210
|
-
(parsed
|
|
211
|
-
->
|
|
212
|
-
( List (Html.Attribute msg)
|
|
213
|
-
, String
|
|
214
|
-
)
|
|
215
|
-
)
|
|
216
|
-
-> Form.Validation.Field error parsed2 (Options parsed)
|
|
217
|
-
-> Html msg
|
|
218
|
-
select selectAttrs enumToOption (Validation viewField fieldName _) =
|
|
219
|
-
let
|
|
220
|
-
justViewField : ViewField (Options parsed)
|
|
221
|
-
justViewField =
|
|
222
|
-
viewField |> expectViewField
|
|
223
|
-
|
|
224
|
-
rawField : { name : String, value : Maybe String, kind : ( Options parsed, List ( String, Encode.Value ) ) }
|
|
225
|
-
rawField =
|
|
226
|
-
{ name = fieldName |> Maybe.withDefault ""
|
|
227
|
-
, value = justViewField.value
|
|
228
|
-
, kind = justViewField.kind
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
(Options parseValue possibleValues) =
|
|
232
|
-
rawField.kind |> Tuple.first
|
|
233
|
-
in
|
|
234
|
-
Html.select
|
|
235
|
-
(selectAttrs
|
|
236
|
-
++ [ Attr.value (rawField.value |> Maybe.withDefault "")
|
|
237
|
-
, Attr.name rawField.name
|
|
238
|
-
]
|
|
239
|
-
)
|
|
240
|
-
(possibleValues
|
|
241
|
-
|> List.filterMap
|
|
242
|
-
(\possibleValue ->
|
|
243
|
-
let
|
|
244
|
-
parsed : Maybe parsed
|
|
245
|
-
parsed =
|
|
246
|
-
possibleValue
|
|
247
|
-
|> parseValue
|
|
248
|
-
in
|
|
249
|
-
case parsed of
|
|
250
|
-
Just justParsed ->
|
|
251
|
-
let
|
|
252
|
-
( optionAttrs, content ) =
|
|
253
|
-
enumToOption justParsed
|
|
254
|
-
in
|
|
255
|
-
Html.option (Attr.value possibleValue :: optionAttrs) [ Html.text content ]
|
|
256
|
-
|> Just
|
|
257
|
-
|
|
258
|
-
Nothing ->
|
|
259
|
-
Nothing
|
|
260
|
-
)
|
|
261
|
-
)
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
{-| -}
|
|
265
|
-
radio :
|
|
266
|
-
List (Html.Attribute msg)
|
|
267
|
-
->
|
|
268
|
-
(parsed
|
|
269
|
-
-> (List (Html.Attribute msg) -> Html msg)
|
|
270
|
-
-> Html msg
|
|
271
|
-
)
|
|
272
|
-
-> Form.Validation.Field error parsed2 (Options parsed)
|
|
273
|
-
-> Html msg
|
|
274
|
-
radio selectAttrs enumToOption (Validation viewField fieldName _) =
|
|
275
|
-
let
|
|
276
|
-
justViewField : ViewField (Options parsed)
|
|
277
|
-
justViewField =
|
|
278
|
-
viewField |> expectViewField
|
|
279
|
-
|
|
280
|
-
rawField : { name : String, value : Maybe String, kind : ( Options parsed, List ( String, Encode.Value ) ) }
|
|
281
|
-
rawField =
|
|
282
|
-
{ name = fieldName |> Maybe.withDefault ""
|
|
283
|
-
, value = justViewField.value
|
|
284
|
-
, kind = justViewField.kind
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
(Options parseValue possibleValues) =
|
|
288
|
-
rawField.kind |> Tuple.first
|
|
289
|
-
in
|
|
290
|
-
Html.fieldset
|
|
291
|
-
(selectAttrs
|
|
292
|
-
++ [ Attr.value (rawField.value |> Maybe.withDefault "")
|
|
293
|
-
, Attr.name rawField.name
|
|
294
|
-
]
|
|
295
|
-
)
|
|
296
|
-
(possibleValues
|
|
297
|
-
|> List.filterMap
|
|
298
|
-
(\possibleValue ->
|
|
299
|
-
let
|
|
300
|
-
parsed : Maybe parsed
|
|
301
|
-
parsed =
|
|
302
|
-
possibleValue
|
|
303
|
-
|> parseValue
|
|
304
|
-
in
|
|
305
|
-
case parsed of
|
|
306
|
-
Just justParsed ->
|
|
307
|
-
let
|
|
308
|
-
renderedElement : Html msg
|
|
309
|
-
renderedElement =
|
|
310
|
-
enumToOption justParsed
|
|
311
|
-
(\userHtmlAttrs ->
|
|
312
|
-
Html.input
|
|
313
|
-
([ Attr.type_ "radio"
|
|
314
|
-
, Attr.value possibleValue
|
|
315
|
-
, Attr.name rawField.name
|
|
316
|
-
, Attr.checked (rawField.value == Just possibleValue)
|
|
317
|
-
]
|
|
318
|
-
++ userHtmlAttrs
|
|
319
|
-
)
|
|
320
|
-
[]
|
|
321
|
-
)
|
|
322
|
-
in
|
|
323
|
-
Just renderedElement
|
|
324
|
-
|
|
325
|
-
Nothing ->
|
|
326
|
-
Nothing
|
|
327
|
-
)
|
|
328
|
-
)
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
expectViewField : Maybe (ViewField kind) -> ViewField kind
|
|
332
|
-
expectViewField viewField =
|
|
333
|
-
case viewField of
|
|
334
|
-
Just justViewField ->
|
|
335
|
-
justViewField
|
|
336
|
-
|
|
337
|
-
Nothing ->
|
|
338
|
-
expectViewField viewField
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
{-| -}
|
|
342
|
-
radioStyled :
|
|
343
|
-
List (Html.Styled.Attribute msg)
|
|
344
|
-
->
|
|
345
|
-
(parsed
|
|
346
|
-
-> (List (Html.Styled.Attribute msg) -> Html.Styled.Html msg)
|
|
347
|
-
-> Html.Styled.Html msg
|
|
348
|
-
)
|
|
349
|
-
-> Form.Validation.Field error parsed2 (Options parsed)
|
|
350
|
-
-> Html.Styled.Html msg
|
|
351
|
-
radioStyled selectAttrs enumToOption (Validation viewField fieldName _) =
|
|
352
|
-
let
|
|
353
|
-
justViewField : ViewField (Options parsed)
|
|
354
|
-
justViewField =
|
|
355
|
-
viewField |> expectViewField
|
|
356
|
-
|
|
357
|
-
rawField : { name : String, value : Maybe String, kind : ( Options parsed, List ( String, Encode.Value ) ) }
|
|
358
|
-
rawField =
|
|
359
|
-
{ name = fieldName |> Maybe.withDefault ""
|
|
360
|
-
, value = justViewField.value
|
|
361
|
-
, kind = justViewField.kind
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
(Options parseValue possibleValues) =
|
|
365
|
-
rawField.kind |> Tuple.first
|
|
366
|
-
in
|
|
367
|
-
Html.Styled.fieldset
|
|
368
|
-
(selectAttrs
|
|
369
|
-
++ [ StyledAttr.value (rawField.value |> Maybe.withDefault "")
|
|
370
|
-
, StyledAttr.name rawField.name
|
|
371
|
-
]
|
|
372
|
-
)
|
|
373
|
-
(possibleValues
|
|
374
|
-
|> List.filterMap
|
|
375
|
-
(\possibleValue ->
|
|
376
|
-
let
|
|
377
|
-
parsed : Maybe parsed
|
|
378
|
-
parsed =
|
|
379
|
-
possibleValue
|
|
380
|
-
|> parseValue
|
|
381
|
-
in
|
|
382
|
-
case parsed of
|
|
383
|
-
Just justParsed ->
|
|
384
|
-
let
|
|
385
|
-
renderedElement : Html.Styled.Html msg
|
|
386
|
-
renderedElement =
|
|
387
|
-
enumToOption justParsed
|
|
388
|
-
(\userHtmlAttrs ->
|
|
389
|
-
Html.Styled.input
|
|
390
|
-
(([ Attr.type_ "radio"
|
|
391
|
-
, Attr.value possibleValue
|
|
392
|
-
, Attr.name rawField.name
|
|
393
|
-
, Attr.checked (rawField.value == Just possibleValue)
|
|
394
|
-
]
|
|
395
|
-
|> List.map StyledAttr.fromUnstyled
|
|
396
|
-
)
|
|
397
|
-
++ userHtmlAttrs
|
|
398
|
-
)
|
|
399
|
-
[]
|
|
400
|
-
)
|
|
401
|
-
in
|
|
402
|
-
Just renderedElement
|
|
403
|
-
|
|
404
|
-
Nothing ->
|
|
405
|
-
Nothing
|
|
406
|
-
)
|
|
407
|
-
)
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
{-| -}
|
|
411
|
-
toHtmlProperties : List ( String, Encode.Value ) -> List (Html.Attribute msg)
|
|
412
|
-
toHtmlProperties properties =
|
|
413
|
-
properties
|
|
414
|
-
|> List.map
|
|
415
|
-
(\( key, value ) ->
|
|
416
|
-
Attr.property key value
|
|
417
|
-
)
|
package/src/Form/FormData.elm
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
module Form.FormData exposing (FormData, Method(..))
|
|
2
|
-
|
|
3
|
-
{-|
|
|
4
|
-
|
|
5
|
-
@docs FormData, Method
|
|
6
|
-
|
|
7
|
-
-}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{-| -}
|
|
11
|
-
type alias FormData =
|
|
12
|
-
{ fields : List ( String, String )
|
|
13
|
-
, method : Method
|
|
14
|
-
, action : String
|
|
15
|
-
, id : Maybe String
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{-| -}
|
|
20
|
-
type Method
|
|
21
|
-
= Get
|
|
22
|
-
| Post
|