/
HTMLInputElement.purs
340 lines (262 loc) · 10.4 KB
/
HTMLInputElement.purs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
module Web.HTML.HTMLInputElement
( HTMLInputElement
, fromHTMLElement
, fromElement
, fromNode
, fromChildNode
, fromNonDocumentTypeChildNode
, fromParentNode
, fromEventTarget
, toHTMLElement
, toElement
, toNode
, toChildNode
, toNonDocumentTypeChildNode
, toParentNode
, toEventTarget
, accept
, setAccept
, alt
, setAlt
, autocomplete
, setAutocomplete
, autofocus
, setAutofocus
, defaultChecked
, setDefaultChecked
, checked
, setChecked
, dirName
, setDirName
, disabled
, setDisabled
, form
, files
, formAction
, setFormAction
, formEnctype
, setFormEnctype
, formMethod
, setFormMethod
, formNoValidate
, setFormNoValidate
, formTarget
, setFormTarget
, height
, setHeight
, indeterminate
, setIndeterminate
, list
, max
, setMax
, maxLength
, setMaxLength
, min
, setMin
, minLength
, setMinLength
, multiple
, setMultiple
, name
, setName
, pattern
, setPattern
, placeholder
, setPlaceholder
, readOnly
, setReadOnly
, required
, setRequired
, size
, setSize
, src
, setSrc
, step
, setStep
, type_
, setType
, defaultValue
, setDefaultValue
, value
, setValue
, valueAsDate
, setValueAsDate
, valueAsNumber
, setValueAsNumber
, width
, setWidth
, stepUp
, stepUp'
, stepDown
, stepDown'
, willValidate
, validity
, validationMessage
, checkValidity
, reportValidity
, setCustomValidity
, labels
, select
, selectionStart
, setSelectionStart
, selectionEnd
, setSelectionEnd
, selectionDirection
, setSelectionDirection
, setRangeText
, setRangeText'
, setSelectionRange
) where
import Prelude
import Data.JSDate (JSDate)
import Data.Maybe (Maybe)
import Data.Nullable (Nullable, toMaybe)
import Effect (Effect)
import Effect.Uncurried (EffectFn5, runEffectFn5)
import Unsafe.Coerce (unsafeCoerce)
import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode)
import Web.DOM.NodeList (NodeList)
import Web.Event.EventTarget (EventTarget)
import Web.File.FileList (FileList)
import Web.HTML.HTMLElement (HTMLElement)
import Web.HTML.HTMLFormElement (HTMLFormElement)
import Web.HTML.SelectionMode (SelectionMode)
import Web.HTML.SelectionMode as SelectionMode
import Web.HTML.ValidityState (ValidityState)
import Web.Internal.FFI (unsafeReadProtoTagged)
foreign import data HTMLInputElement :: Type
fromHTMLElement :: HTMLElement -> Maybe HTMLInputElement
fromHTMLElement = unsafeReadProtoTagged "HTMLInputElement"
fromElement :: Element -> Maybe HTMLInputElement
fromElement = unsafeReadProtoTagged "HTMLInputElement"
fromNode :: Node -> Maybe HTMLInputElement
fromNode = unsafeReadProtoTagged "HTMLInputElement"
fromChildNode :: ChildNode -> Maybe HTMLInputElement
fromChildNode = unsafeReadProtoTagged "HTMLInputElement"
fromNonDocumentTypeChildNode :: NonDocumentTypeChildNode -> Maybe HTMLInputElement
fromNonDocumentTypeChildNode = unsafeReadProtoTagged "HTMLInputElement"
fromParentNode :: ParentNode -> Maybe HTMLInputElement
fromParentNode = unsafeReadProtoTagged "HTMLInputElement"
fromEventTarget :: EventTarget -> Maybe HTMLInputElement
fromEventTarget = unsafeReadProtoTagged "HTMLInputElement"
toHTMLElement :: HTMLInputElement -> HTMLElement
toHTMLElement = unsafeCoerce
toElement :: HTMLInputElement -> Element
toElement = unsafeCoerce
toNode :: HTMLInputElement -> Node
toNode = unsafeCoerce
toChildNode :: HTMLInputElement -> ChildNode
toChildNode = unsafeCoerce
toNonDocumentTypeChildNode :: HTMLInputElement -> NonDocumentTypeChildNode
toNonDocumentTypeChildNode = unsafeCoerce
toParentNode :: HTMLInputElement -> ParentNode
toParentNode = unsafeCoerce
toEventTarget :: HTMLInputElement -> EventTarget
toEventTarget = unsafeCoerce
foreign import accept :: HTMLInputElement -> Effect String
foreign import setAccept :: String -> HTMLInputElement -> Effect Unit
foreign import alt :: HTMLInputElement -> Effect Boolean
foreign import setAlt :: Boolean -> HTMLInputElement -> Effect Unit
foreign import autocomplete :: HTMLInputElement -> Effect String
foreign import setAutocomplete :: String -> HTMLInputElement -> Effect Unit
foreign import autofocus :: HTMLInputElement -> Effect Boolean
foreign import setAutofocus :: Boolean -> HTMLInputElement -> Effect Unit
foreign import defaultChecked :: HTMLInputElement -> Effect Boolean
foreign import setDefaultChecked :: Boolean -> HTMLInputElement -> Effect Unit
foreign import checked :: HTMLInputElement -> Effect Boolean
foreign import setChecked :: Boolean -> HTMLInputElement -> Effect Unit
foreign import dirName :: HTMLInputElement -> Effect String
foreign import setDirName :: String -> HTMLInputElement -> Effect Unit
foreign import disabled :: HTMLInputElement -> Effect Boolean
foreign import setDisabled :: Boolean -> HTMLInputElement -> Effect Unit
form :: HTMLInputElement -> Effect (Maybe HTMLFormElement)
form = map toMaybe <<< _form
foreign import _form :: HTMLInputElement -> Effect (Nullable HTMLFormElement)
files :: HTMLInputElement -> Effect (Maybe FileList)
files = map toMaybe <<< _files
foreign import _files :: HTMLInputElement -> Effect (Nullable FileList)
foreign import formAction :: HTMLInputElement -> Effect String
foreign import setFormAction :: String -> HTMLInputElement -> Effect Unit
foreign import formEnctype :: HTMLInputElement -> Effect String
foreign import setFormEnctype :: String -> HTMLInputElement -> Effect Unit
foreign import formMethod :: HTMLInputElement -> Effect String
foreign import setFormMethod :: String -> HTMLInputElement -> Effect Unit
foreign import formNoValidate :: HTMLInputElement -> Effect Boolean
foreign import setFormNoValidate :: Boolean -> HTMLInputElement -> Effect Unit
foreign import formTarget :: HTMLInputElement -> Effect String
foreign import setFormTarget :: String -> HTMLInputElement -> Effect Unit
foreign import height :: HTMLInputElement -> Effect Int
foreign import setHeight :: Int -> HTMLInputElement -> Effect Unit
foreign import indeterminate :: HTMLInputElement -> Effect Boolean
foreign import setIndeterminate :: Boolean -> HTMLInputElement -> Effect Unit
list :: HTMLInputElement -> Effect (Maybe HTMLElement)
list = map toMaybe <<< _list
foreign import _list :: HTMLInputElement -> Effect (Nullable HTMLElement)
foreign import max :: HTMLInputElement -> Effect String
foreign import setMax :: String -> HTMLInputElement -> Effect Unit
foreign import maxLength :: HTMLInputElement -> Effect Int
foreign import setMaxLength :: Int -> HTMLInputElement -> Effect Unit
foreign import min :: HTMLInputElement -> Effect String
foreign import setMin :: String -> HTMLInputElement -> Effect Unit
foreign import minLength :: HTMLInputElement -> Effect Int
foreign import setMinLength :: Int -> HTMLInputElement -> Effect Unit
foreign import multiple :: HTMLInputElement -> Effect Boolean
foreign import setMultiple :: Boolean -> HTMLInputElement -> Effect Unit
foreign import name :: HTMLInputElement -> Effect String
foreign import setName :: String -> HTMLInputElement -> Effect Unit
foreign import pattern :: HTMLInputElement -> Effect String
foreign import setPattern :: String -> HTMLInputElement -> Effect Unit
foreign import placeholder :: HTMLInputElement -> Effect String
foreign import setPlaceholder :: String -> HTMLInputElement -> Effect Unit
foreign import readOnly :: HTMLInputElement -> Effect Boolean
foreign import setReadOnly :: Boolean -> HTMLInputElement -> Effect Unit
foreign import required :: HTMLInputElement -> Effect Boolean
foreign import setRequired :: Boolean -> HTMLInputElement -> Effect Unit
foreign import size :: HTMLInputElement -> Effect Int
foreign import setSize :: Int -> HTMLInputElement -> Effect Unit
foreign import src :: HTMLInputElement -> Effect String
foreign import setSrc :: String -> HTMLInputElement -> Effect Unit
foreign import step :: HTMLInputElement -> Effect String
foreign import setStep :: String -> HTMLInputElement -> Effect Unit
foreign import type_ :: HTMLInputElement -> Effect String
foreign import setType :: String -> HTMLInputElement -> Effect Unit
foreign import defaultValue :: HTMLInputElement -> Effect String
foreign import setDefaultValue :: String -> HTMLInputElement -> Effect Unit
foreign import value :: HTMLInputElement -> Effect String
foreign import setValue :: String -> HTMLInputElement -> Effect Unit
foreign import valueAsDate :: HTMLInputElement -> Effect JSDate
foreign import setValueAsDate :: JSDate -> HTMLInputElement -> Effect Unit
foreign import valueAsNumber :: HTMLInputElement -> Effect Number
foreign import setValueAsNumber :: Number -> HTMLInputElement -> Effect Unit
foreign import width :: HTMLInputElement -> Effect Int
foreign import setWidth :: Int -> HTMLInputElement -> Effect Unit
stepUp :: HTMLInputElement -> Effect Unit
stepUp = stepUp' 1
foreign import stepUpBy :: Int -> HTMLInputElement -> Effect Unit
stepUp' :: Int -> HTMLInputElement -> Effect Unit
stepUp' = stepUpBy
stepDown :: HTMLInputElement -> Effect Unit
stepDown = stepDown' 1
foreign import stepDownBy :: Int -> HTMLInputElement -> Effect Unit
stepDown' :: Int -> HTMLInputElement -> Effect Unit
stepDown' = stepDownBy
foreign import willValidate :: HTMLInputElement -> Effect Boolean
foreign import validity :: HTMLInputElement -> Effect ValidityState
foreign import validationMessage :: HTMLInputElement -> Effect String
foreign import checkValidity :: HTMLInputElement -> Effect Boolean
foreign import reportValidity :: HTMLInputElement -> Effect Boolean
foreign import setCustomValidity :: String -> HTMLInputElement -> Effect Unit
foreign import labels :: HTMLInputElement -> Effect NodeList
foreign import select :: HTMLInputElement -> Effect Unit
foreign import selectionStart :: HTMLInputElement -> Effect Int
foreign import setSelectionStart :: Int -> HTMLInputElement -> Effect Unit
foreign import selectionEnd :: HTMLInputElement -> Effect Int
foreign import setSelectionEnd :: Int -> HTMLInputElement -> Effect Unit
foreign import selectionDirection :: HTMLInputElement -> Effect String
foreign import setSelectionDirection :: String -> HTMLInputElement -> Effect Unit
foreign import setRangeText :: String -> HTMLInputElement -> Effect Unit
setRangeText' :: String -> Int -> Int -> SelectionMode -> HTMLInputElement -> Effect Unit
setRangeText' rpl s e mode area =
runEffectFn5 _setRangeText rpl s e (SelectionMode.print mode) area
foreign import _setRangeText :: EffectFn5 String Int Int String HTMLInputElement Unit
foreign import setSelectionRange :: Int -> Int -> String -> HTMLInputElement -> Effect Unit