OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of $LIBRARYNAME; | 5 part of $LIBRARYNAME; |
6 | 6 $ANNOTATIONS |
7 /// @domName $DOMNAME | |
8 class $CLASSNAME$EXTENDS implements | 7 class $CLASSNAME$EXTENDS implements |
9 HiddenInputElement, | 8 HiddenInputElement, |
10 SearchInputElement, | 9 SearchInputElement, |
11 TextInputElement, | 10 TextInputElement, |
12 UrlInputElement, | 11 UrlInputElement, |
13 TelephoneInputElement, | 12 TelephoneInputElement, |
14 EmailInputElement, | 13 EmailInputElement, |
15 PasswordInputElement, | 14 PasswordInputElement, |
16 DateTimeInputElement, | 15 DateTimeInputElement, |
17 DateInputElement, | 16 DateInputElement, |
18 MonthInputElement, | 17 MonthInputElement, |
19 WeekInputElement, | 18 WeekInputElement, |
20 TimeInputElement, | 19 TimeInputElement, |
21 LocalDateTimeInputElement, | 20 LocalDateTimeInputElement, |
22 NumberInputElement, | 21 NumberInputElement, |
23 RangeInputElement, | 22 RangeInputElement, |
24 CheckboxInputElement, | 23 CheckboxInputElement, |
25 RadioButtonInputElement, | 24 RadioButtonInputElement, |
26 FileUploadInputElement, | 25 FileUploadInputElement, |
27 SubmitButtonInputElement, | 26 SubmitButtonInputElement, |
28 ImageButtonInputElement, | 27 ImageButtonInputElement, |
29 ResetButtonInputElement, | 28 ResetButtonInputElement, |
30 ButtonInputElement | 29 ButtonInputElement |
31 $NATIVESPEC { | 30 $NATIVESPEC { |
32 | 31 |
33 ///@docsEditable true | 32 /// @docsEditable true |
34 factory InputElement({String type}) { | 33 factory InputElement({String type}) { |
35 var e = document.$dom_createElement("input"); | 34 var e = document.$dom_createElement("input"); |
36 if (type != null) { | 35 if (type != null) { |
37 try { | 36 try { |
38 // IE throws an exception for unknown types. | 37 // IE throws an exception for unknown types. |
39 e.type = type; | 38 e.type = type; |
40 } catch(_) {} | 39 } catch(_) {} |
41 } | 40 } |
42 return e; | 41 return e; |
43 } | 42 } |
44 $!MEMBERS | 43 $!MEMBERS |
45 } | 44 } |
46 | 45 |
47 | 46 |
48 // Interfaces representing the InputElement APIs which are supported | 47 // Interfaces representing the InputElement APIs which are supported |
49 // for the various types of InputElement. | 48 // for the various types of InputElement. |
50 // From http://dev.w3.org/html5/spec/the-input-element.html#the-input-element. | 49 // From http://dev.w3.org/html5/spec/the-input-element.html#the-input-element. |
51 | 50 |
52 /** | 51 /** |
53 * Exposes the functionality common between all InputElement types. | 52 * Exposes the functionality common between all InputElement types. |
54 */ | 53 */ |
55 abstract class InputElementBase implements Element { | 54 abstract class InputElementBase implements Element { |
56 /// @domName HTMLInputElement.autofocus | 55 @DomName('HTMLInputElement.autofocus') |
57 bool autofocus; | 56 bool autofocus; |
58 | 57 |
59 /// @domName HTMLInputElement.disabled | 58 @DomName('HTMLInputElement.disabled') |
60 bool disabled; | 59 bool disabled; |
61 | 60 |
62 /// @domName HTMLInputElement.incremental | 61 @DomName('HTMLInputElement.incremental') |
63 bool incremental; | 62 bool incremental; |
64 | 63 |
65 /// @domName HTMLInputElement.indeterminate | 64 @DomName('HTMLInputElement.indeterminate') |
66 bool indeterminate; | 65 bool indeterminate; |
67 | 66 |
68 /// @domName HTMLInputElement.labels | 67 @DomName('HTMLInputElement.labels') |
69 List<Node> get labels; | 68 List<Node> get labels; |
70 | 69 |
71 /// @domName HTMLInputElement.name | 70 @DomName('HTMLInputElement.name') |
72 String name; | 71 String name; |
73 | 72 |
74 /// @domName HTMLInputElement.validationMessage | 73 @DomName('HTMLInputElement.validationMessage') |
75 String get validationMessage; | 74 String get validationMessage; |
76 | 75 |
77 /// @domName HTMLInputElement.validity | 76 @DomName('HTMLInputElement.validity') |
78 ValidityState get validity; | 77 ValidityState get validity; |
79 | 78 |
80 /// @domName HTMLInputElement.value | 79 @DomName('HTMLInputElement.value') |
81 String value; | 80 String value; |
82 | 81 |
83 /// @domName HTMLInputElement.willValidate | 82 @DomName('HTMLInputElement.willValidate') |
84 bool get willValidate; | 83 bool get willValidate; |
85 | 84 |
86 /// @domName HTMLInputElement.checkValidity | 85 @DomName('HTMLInputElement.checkValidity') |
87 bool checkValidity(); | 86 bool checkValidity(); |
88 | 87 |
89 /// @domName HTMLInputElement.setCustomValidity | 88 @DomName('HTMLInputElement.setCustomValidity') |
90 void setCustomValidity(String error); | 89 void setCustomValidity(String error); |
91 } | 90 } |
92 | 91 |
93 /** | 92 /** |
94 * Hidden input which is not intended to be seen or edited by the user. | 93 * Hidden input which is not intended to be seen or edited by the user. |
95 */ | 94 */ |
96 abstract class HiddenInputElement implements Element { | 95 abstract class HiddenInputElement implements Element { |
97 factory HiddenInputElement() => new InputElement(type: 'hidden'); | 96 factory HiddenInputElement() => new InputElement(type: 'hidden'); |
98 } | 97 } |
99 | 98 |
100 | 99 |
101 /** | 100 /** |
102 * Base interface for all inputs which involve text editing. | 101 * Base interface for all inputs which involve text editing. |
103 */ | 102 */ |
104 abstract class TextInputElementBase implements InputElementBase { | 103 abstract class TextInputElementBase implements InputElementBase { |
105 /// @domName HTMLInputElement.autocomplete | 104 @DomName('HTMLInputElement.autocomplete') |
106 String autocomplete; | 105 String autocomplete; |
107 | 106 |
108 /// @domName HTMLInputElement.maxLength | 107 @DomName('HTMLInputElement.maxLength') |
109 int maxLength; | 108 int maxLength; |
110 | 109 |
111 /// @domName HTMLInputElement.pattern | 110 @DomName('HTMLInputElement.pattern') |
112 String pattern; | 111 String pattern; |
113 | 112 |
114 /// @domName HTMLInputElement.placeholder | 113 @DomName('HTMLInputElement.placeholder') |
115 String placeholder; | 114 String placeholder; |
116 | 115 |
117 /// @domName HTMLInputElement.readOnly | 116 @DomName('HTMLInputElement.readOnly') |
118 bool readOnly; | 117 bool readOnly; |
119 | 118 |
120 /// @domName HTMLInputElement.required | 119 @DomName('HTMLInputElement.required') |
121 bool required; | 120 bool required; |
122 | 121 |
123 /// @domName HTMLInputElement.size | 122 @DomName('HTMLInputElement.size') |
124 int size; | 123 int size; |
125 | 124 |
126 /// @domName HTMLInputElement.select | 125 @DomName('HTMLInputElement.select') |
127 void select(); | 126 void select(); |
128 | 127 |
129 /// @domName HTMLInputElement.selectionDirection | 128 @DomName('HTMLInputElement.selectionDirection') |
130 String selectionDirection; | 129 String selectionDirection; |
131 | 130 |
132 /// @domName HTMLInputElement.selectionEnd | 131 @DomName('HTMLInputElement.selectionEnd') |
133 int selectionEnd; | 132 int selectionEnd; |
134 | 133 |
135 /// @domName HTMLInputElement.selectionStart | 134 @DomName('HTMLInputElement.selectionStart') |
136 int selectionStart; | 135 int selectionStart; |
137 | 136 |
138 /// @domName HTMLInputElement.setSelectionRange | 137 @DomName('HTMLInputElement.setSelectionRange') |
139 void setSelectionRange(int start, int end, [String direction]); | 138 void setSelectionRange(int start, int end, [String direction]); |
140 } | 139 } |
141 | 140 |
142 /** | 141 /** |
143 * Similar to [TextInputElement], but on platforms where search is styled | 142 * Similar to [TextInputElement], but on platforms where search is styled |
144 * differently this will get the search style. | 143 * differently this will get the search style. |
145 * | 144 * |
146 * Use [supported] to check if this is supported on the current platform. | 145 * Use [supported] to check if this is supported on the current platform. |
147 */ | 146 */ |
148 @SupportedBrowser(SupportedBrowser.CHROME) | 147 @SupportedBrowser(SupportedBrowser.CHROME) |
149 @SupportedBrowser(SupportedBrowser.FIREFOX) | 148 @SupportedBrowser(SupportedBrowser.FIREFOX) |
150 @SupportedBrowser(SupportedBrowser.IE, '10') | 149 @SupportedBrowser(SupportedBrowser.IE, '10') |
151 @SupportedBrowser(SupportedBrowser.SAFARI) | 150 @SupportedBrowser(SupportedBrowser.SAFARI) |
152 abstract class SearchInputElement implements TextInputElementBase { | 151 abstract class SearchInputElement implements TextInputElementBase { |
153 factory SearchInputElement() => new InputElement(type: 'search'); | 152 factory SearchInputElement() => new InputElement(type: 'search'); |
154 | 153 |
155 /// @domName HTMLInputElement.dirName; | 154 @DomName('HTMLInputElement.dirName') |
156 String dirName; | 155 String dirName; |
157 | 156 |
158 /// @domName HTMLInputElement.list; | 157 @DomName('HTMLInputElement.list') |
159 Element get list; | 158 Element get list; |
160 | 159 |
161 /// Returns true if this input type is supported on the current platform. | 160 /// Returns true if this input type is supported on the current platform. |
162 static bool get supported { | 161 static bool get supported { |
163 return (new InputElement(type: 'search')).type == 'search'; | 162 return (new InputElement(type: 'search')).type == 'search'; |
164 } | 163 } |
165 } | 164 } |
166 | 165 |
167 /** | 166 /** |
168 * A basic text input editor control. | 167 * A basic text input editor control. |
169 */ | 168 */ |
170 abstract class TextInputElement implements TextInputElementBase { | 169 abstract class TextInputElement implements TextInputElementBase { |
171 factory TextInputElement() => new InputElement(type: 'text'); | 170 factory TextInputElement() => new InputElement(type: 'text'); |
172 | 171 |
173 /// @domName HTMLInputElement.dirName; | 172 @DomName('HTMLInputElement.dirName') |
174 String dirName; | 173 String dirName; |
175 | 174 |
176 /// @domName HTMLInputElement.list; | 175 @DomName('HTMLInputElement.list') |
177 Element get list; | 176 Element get list; |
178 } | 177 } |
179 | 178 |
180 /** | 179 /** |
181 * A control for editing an absolute URL. | 180 * A control for editing an absolute URL. |
182 * | 181 * |
183 * Use [supported] to check if this is supported on the current platform. | 182 * Use [supported] to check if this is supported on the current platform. |
184 */ | 183 */ |
185 @SupportedBrowser(SupportedBrowser.CHROME) | 184 @SupportedBrowser(SupportedBrowser.CHROME) |
186 @SupportedBrowser(SupportedBrowser.FIREFOX) | 185 @SupportedBrowser(SupportedBrowser.FIREFOX) |
187 @SupportedBrowser(SupportedBrowser.IE, '10') | 186 @SupportedBrowser(SupportedBrowser.IE, '10') |
188 @SupportedBrowser(SupportedBrowser.SAFARI) | 187 @SupportedBrowser(SupportedBrowser.SAFARI) |
189 abstract class UrlInputElement implements TextInputElementBase { | 188 abstract class UrlInputElement implements TextInputElementBase { |
190 factory UrlInputElement() => new InputElement(type: 'url'); | 189 factory UrlInputElement() => new InputElement(type: 'url'); |
191 | 190 |
192 /// @domName HTMLInputElement.list; | 191 @DomName('HTMLInputElement.list') |
193 Element get list; | 192 Element get list; |
194 | 193 |
195 /// Returns true if this input type is supported on the current platform. | 194 /// Returns true if this input type is supported on the current platform. |
196 static bool get supported { | 195 static bool get supported { |
197 return (new InputElement(type: 'url')).type == 'url'; | 196 return (new InputElement(type: 'url')).type == 'url'; |
198 } | 197 } |
199 } | 198 } |
200 | 199 |
201 /** | 200 /** |
202 * Represents a control for editing a telephone number. | 201 * Represents a control for editing a telephone number. |
203 * | 202 * |
204 * This provides a single line of text with minimal formatting help since | 203 * This provides a single line of text with minimal formatting help since |
205 * there is a wide variety of telephone numbers. | 204 * there is a wide variety of telephone numbers. |
206 * | 205 * |
207 * Use [supported] to check if this is supported on the current platform. | 206 * Use [supported] to check if this is supported on the current platform. |
208 */ | 207 */ |
209 @SupportedBrowser(SupportedBrowser.CHROME) | 208 @SupportedBrowser(SupportedBrowser.CHROME) |
210 @SupportedBrowser(SupportedBrowser.FIREFOX) | 209 @SupportedBrowser(SupportedBrowser.FIREFOX) |
211 @SupportedBrowser(SupportedBrowser.IE, '10') | 210 @SupportedBrowser(SupportedBrowser.IE, '10') |
212 @SupportedBrowser(SupportedBrowser.SAFARI) | 211 @SupportedBrowser(SupportedBrowser.SAFARI) |
213 abstract class TelephoneInputElement implements TextInputElementBase { | 212 abstract class TelephoneInputElement implements TextInputElementBase { |
214 factory TelephoneInputElement() => new InputElement(type: 'tel'); | 213 factory TelephoneInputElement() => new InputElement(type: 'tel'); |
215 | 214 |
216 /// @domName HTMLInputElement.list; | 215 @DomName('HTMLInputElement.list') |
217 Element get list; | 216 Element get list; |
218 | 217 |
219 /// Returns true if this input type is supported on the current platform. | 218 /// Returns true if this input type is supported on the current platform. |
220 static bool get supported { | 219 static bool get supported { |
221 return (new InputElement(type: 'tel')).type == 'tel'; | 220 return (new InputElement(type: 'tel')).type == 'tel'; |
222 } | 221 } |
223 } | 222 } |
224 | 223 |
225 /** | 224 /** |
226 * An e-mail address or list of e-mail addresses. | 225 * An e-mail address or list of e-mail addresses. |
227 * | 226 * |
228 * Use [supported] to check if this is supported on the current platform. | 227 * Use [supported] to check if this is supported on the current platform. |
229 */ | 228 */ |
230 @SupportedBrowser(SupportedBrowser.CHROME) | 229 @SupportedBrowser(SupportedBrowser.CHROME) |
231 @SupportedBrowser(SupportedBrowser.FIREFOX) | 230 @SupportedBrowser(SupportedBrowser.FIREFOX) |
232 @SupportedBrowser(SupportedBrowser.IE, '10') | 231 @SupportedBrowser(SupportedBrowser.IE, '10') |
233 @SupportedBrowser(SupportedBrowser.SAFARI) | 232 @SupportedBrowser(SupportedBrowser.SAFARI) |
234 abstract class EmailInputElement implements TextInputElementBase { | 233 abstract class EmailInputElement implements TextInputElementBase { |
235 factory EmailInputElement() => new InputElement(type: 'email'); | 234 factory EmailInputElement() => new InputElement(type: 'email'); |
236 | 235 |
237 /// @domName HTMLInputElement.autocomplete | 236 @DomName('HTMLInputElement.autocomplete') |
238 String autocomplete; | 237 String autocomplete; |
239 | 238 |
240 /// @domName HTMLInputElement.autofocus | 239 @DomName('HTMLInputElement.autofocus') |
241 bool autofocus; | 240 bool autofocus; |
242 | 241 |
243 /// @domName HTMLInputElement.list; | 242 @DomName('HTMLInputElement.list') |
244 Element get list; | 243 Element get list; |
245 | 244 |
246 /// @domName HTMLInputElement.maxLength | 245 @DomName('HTMLInputElement.maxLength') |
247 int maxLength; | 246 int maxLength; |
248 | 247 |
249 /// @domName HTMLInputElement.multiple; | 248 @DomName('HTMLInputElement.multiple') |
250 bool multiple; | 249 bool multiple; |
251 | 250 |
252 /// @domName HTMLInputElement.pattern | 251 @DomName('HTMLInputElement.pattern') |
253 String pattern; | 252 String pattern; |
254 | 253 |
255 /// @domName HTMLInputElement.placeholder | 254 @DomName('HTMLInputElement.placeholder') |
256 String placeholder; | 255 String placeholder; |
257 | 256 |
258 /// @domName HTMLInputElement.readOnly | 257 @DomName('HTMLInputElement.readOnly') |
259 bool readOnly; | 258 bool readOnly; |
260 | 259 |
261 /// @domName HTMLInputElement.required | 260 @DomName('HTMLInputElement.required') |
262 bool required; | 261 bool required; |
263 | 262 |
264 /// @domName HTMLInputElement.size | 263 @DomName('HTMLInputElement.size') |
265 int size; | 264 int size; |
266 | 265 |
267 /// Returns true if this input type is supported on the current platform. | 266 /// Returns true if this input type is supported on the current platform. |
268 static bool get supported { | 267 static bool get supported { |
269 return (new InputElement(type: 'email')).type == 'email'; | 268 return (new InputElement(type: 'email')).type == 'email'; |
270 } | 269 } |
271 } | 270 } |
272 | 271 |
273 /** | 272 /** |
274 * Text with no line breaks (sensitive information). | 273 * Text with no line breaks (sensitive information). |
275 */ | 274 */ |
276 abstract class PasswordInputElement implements TextInputElementBase { | 275 abstract class PasswordInputElement implements TextInputElementBase { |
277 factory PasswordInputElement() => new InputElement(type: 'password'); | 276 factory PasswordInputElement() => new InputElement(type: 'password'); |
278 } | 277 } |
279 | 278 |
280 /** | 279 /** |
281 * Base interface for all input element types which involve ranges. | 280 * Base interface for all input element types which involve ranges. |
282 */ | 281 */ |
283 abstract class RangeInputElementBase implements InputElementBase { | 282 abstract class RangeInputElementBase implements InputElementBase { |
284 | 283 |
285 /// @domName HTMLInputElement.list | 284 @DomName('HTMLInputElement.list') |
286 Element get list; | 285 Element get list; |
287 | 286 |
288 /// @domName HTMLInputElement.max | 287 @DomName('HTMLInputElement.max') |
289 String max; | 288 String max; |
290 | 289 |
291 /// @domName HTMLInputElement.min | 290 @DomName('HTMLInputElement.min') |
292 String min; | 291 String min; |
293 | 292 |
294 /// @domName HTMLInputElement.step | 293 @DomName('HTMLInputElement.step') |
295 String step; | 294 String step; |
296 | 295 |
297 /// @domName HTMLInputElement.valueAsNumber | 296 @DomName('HTMLInputElement.valueAsNumber') |
298 num valueAsNumber; | 297 num valueAsNumber; |
299 | 298 |
300 /// @domName HTMLInputElement.stepDown | 299 @DomName('HTMLInputElement.stepDown') |
301 void stepDown([int n]); | 300 void stepDown([int n]); |
302 | 301 |
303 /// @domName HTMLInputElement.stepUp | 302 @DomName('HTMLInputElement.stepUp') |
304 void stepUp([int n]); | 303 void stepUp([int n]); |
305 } | 304 } |
306 | 305 |
307 /** | 306 /** |
308 * A date and time (year, month, day, hour, minute, second, fraction of a | 307 * A date and time (year, month, day, hour, minute, second, fraction of a |
309 * second) with the time zone set to UTC. | 308 * second) with the time zone set to UTC. |
310 * | 309 * |
311 * Use [supported] to check if this is supported on the current platform. | 310 * Use [supported] to check if this is supported on the current platform. |
312 */ | 311 */ |
313 @SupportedBrowser(SupportedBrowser.CHROME, '25') | 312 @SupportedBrowser(SupportedBrowser.CHROME, '25') |
314 @Experimental() | 313 @Experimental() |
315 abstract class DateTimeInputElement implements RangeInputElementBase { | 314 abstract class DateTimeInputElement implements RangeInputElementBase { |
316 factory DateTimeInputElement() => new InputElement(type: 'datetime'); | 315 factory DateTimeInputElement() => new InputElement(type: 'datetime'); |
317 | 316 |
318 /// @domName HTMLInputElement.valueAsDate | 317 @DomName('HTMLInputElement.valueAsDate') |
319 Date valueAsDate; | 318 Date valueAsDate; |
320 | 319 |
321 /// @domName HTMLInputElement.readOnly | 320 @DomName('HTMLInputElement.readOnly') |
322 bool readOnly; | 321 bool readOnly; |
323 | 322 |
324 /// @domName HTMLInputElement.required | 323 @DomName('HTMLInputElement.required') |
325 bool required; | 324 bool required; |
326 | 325 |
327 /// Returns true if this input type is supported on the current platform. | 326 /// Returns true if this input type is supported on the current platform. |
328 static bool get supported { | 327 static bool get supported { |
329 return (new InputElement(type: 'datetime')).type == 'datetime'; | 328 return (new InputElement(type: 'datetime')).type == 'datetime'; |
330 } | 329 } |
331 } | 330 } |
332 | 331 |
333 /** | 332 /** |
334 * A date (year, month, day) with no time zone. | 333 * A date (year, month, day) with no time zone. |
335 * | 334 * |
336 * Use [supported] to check if this is supported on the current platform. | 335 * Use [supported] to check if this is supported on the current platform. |
337 */ | 336 */ |
338 @SupportedBrowser(SupportedBrowser.CHROME, '25') | 337 @SupportedBrowser(SupportedBrowser.CHROME, '25') |
339 @Experimental() | 338 @Experimental() |
340 abstract class DateInputElement implements RangeInputElementBase { | 339 abstract class DateInputElement implements RangeInputElementBase { |
341 factory DateInputElement() => new InputElement(type: 'date'); | 340 factory DateInputElement() => new InputElement(type: 'date'); |
342 | 341 |
343 /// @domName HTMLInputElement.valueAsDate | 342 @DomName('HTMLInputElement.valueAsDate') |
344 Date valueAsDate; | 343 Date valueAsDate; |
345 | 344 |
346 /// @domName HTMLInputElement.readOnly | 345 @DomName('HTMLInputElement.readOnly') |
347 bool readOnly; | 346 bool readOnly; |
348 | 347 |
349 /// @domName HTMLInputElement.required | 348 @DomName('HTMLInputElement.required') |
350 bool required; | 349 bool required; |
351 | 350 |
352 /// Returns true if this input type is supported on the current platform. | 351 /// Returns true if this input type is supported on the current platform. |
353 static bool get supported { | 352 static bool get supported { |
354 return (new InputElement(type: 'date')).type == 'date'; | 353 return (new InputElement(type: 'date')).type == 'date'; |
355 } | 354 } |
356 } | 355 } |
357 | 356 |
358 /** | 357 /** |
359 * A date consisting of a year and a month with no time zone. | 358 * A date consisting of a year and a month with no time zone. |
360 * | 359 * |
361 * Use [supported] to check if this is supported on the current platform. | 360 * Use [supported] to check if this is supported on the current platform. |
362 */ | 361 */ |
363 @SupportedBrowser(SupportedBrowser.CHROME, '25') | 362 @SupportedBrowser(SupportedBrowser.CHROME, '25') |
364 @Experimental() | 363 @Experimental() |
365 abstract class MonthInputElement implements RangeInputElementBase { | 364 abstract class MonthInputElement implements RangeInputElementBase { |
366 factory MonthInputElement() => new InputElement(type: 'month'); | 365 factory MonthInputElement() => new InputElement(type: 'month'); |
367 | 366 |
368 /// @domName HTMLInputElement.valueAsDate | 367 @DomName('HTMLInputElement.valueAsDate') |
369 Date valueAsDate; | 368 Date valueAsDate; |
370 | 369 |
371 /// @domName HTMLInputElement.readOnly | 370 @DomName('HTMLInputElement.readOnly') |
372 bool readOnly; | 371 bool readOnly; |
373 | 372 |
374 /// @domName HTMLInputElement.required | 373 @DomName('HTMLInputElement.required') |
375 bool required; | 374 bool required; |
376 | 375 |
377 /// Returns true if this input type is supported on the current platform. | 376 /// Returns true if this input type is supported on the current platform. |
378 static bool get supported { | 377 static bool get supported { |
379 return (new InputElement(type: 'month')).type == 'month'; | 378 return (new InputElement(type: 'month')).type == 'month'; |
380 } | 379 } |
381 } | 380 } |
382 | 381 |
383 /** | 382 /** |
384 * A date consisting of a week-year number and a week number with no time zone. | 383 * A date consisting of a week-year number and a week number with no time zone. |
385 * | 384 * |
386 * Use [supported] to check if this is supported on the current platform. | 385 * Use [supported] to check if this is supported on the current platform. |
387 */ | 386 */ |
388 @SupportedBrowser(SupportedBrowser.CHROME, '25') | 387 @SupportedBrowser(SupportedBrowser.CHROME, '25') |
389 @Experimental() | 388 @Experimental() |
390 abstract class WeekInputElement implements RangeInputElementBase { | 389 abstract class WeekInputElement implements RangeInputElementBase { |
391 factory WeekInputElement() => new InputElement(type: 'week'); | 390 factory WeekInputElement() => new InputElement(type: 'week'); |
392 | 391 |
393 /// @domName HTMLInputElement.valueAsDate | 392 @DomName('HTMLInputElement.valueAsDate') |
394 Date valueAsDate; | 393 Date valueAsDate; |
395 | 394 |
396 /// @domName HTMLInputElement.readOnly | 395 @DomName('HTMLInputElement.readOnly') |
397 bool readOnly; | 396 bool readOnly; |
398 | 397 |
399 /// @domName HTMLInputElement.required | 398 @DomName('HTMLInputElement.required') |
400 bool required; | 399 bool required; |
401 | 400 |
402 /// Returns true if this input type is supported on the current platform. | 401 /// Returns true if this input type is supported on the current platform. |
403 static bool get supported { | 402 static bool get supported { |
404 return (new InputElement(type: 'week')).type == 'week'; | 403 return (new InputElement(type: 'week')).type == 'week'; |
405 } | 404 } |
406 } | 405 } |
407 | 406 |
408 /** | 407 /** |
409 * A time (hour, minute, seconds, fractional seconds) with no time zone. | 408 * A time (hour, minute, seconds, fractional seconds) with no time zone. |
410 * | 409 * |
411 * Use [supported] to check if this is supported on the current platform. | 410 * Use [supported] to check if this is supported on the current platform. |
412 */ | 411 */ |
413 @SupportedBrowser(SupportedBrowser.CHROME) | 412 @SupportedBrowser(SupportedBrowser.CHROME) |
414 @Experimental() | 413 @Experimental() |
415 abstract class TimeInputElement implements RangeInputElementBase { | 414 abstract class TimeInputElement implements RangeInputElementBase { |
416 factory TimeInputElement() => new InputElement(type: 'time'); | 415 factory TimeInputElement() => new InputElement(type: 'time'); |
417 | 416 |
418 /// @domName HTMLInputElement.valueAsDate | 417 @DomName('HTMLInputElement.valueAsDate') |
419 Date valueAsDate; | 418 Date valueAsDate; |
420 | 419 |
421 /// @domName HTMLInputElement.readOnly | 420 @DomName('HTMLInputElement.readOnly') |
422 bool readOnly; | 421 bool readOnly; |
423 | 422 |
424 /// @domName HTMLInputElement.required | 423 @DomName('HTMLInputElement.required') |
425 bool required; | 424 bool required; |
426 | 425 |
427 /// Returns true if this input type is supported on the current platform. | 426 /// Returns true if this input type is supported on the current platform. |
428 static bool get supported { | 427 static bool get supported { |
429 return (new InputElement(type: 'time')).type == 'time'; | 428 return (new InputElement(type: 'time')).type == 'time'; |
430 } | 429 } |
431 } | 430 } |
432 | 431 |
433 /** | 432 /** |
434 * A date and time (year, month, day, hour, minute, second, fraction of a | 433 * A date and time (year, month, day, hour, minute, second, fraction of a |
435 * second) with no time zone. | 434 * second) with no time zone. |
436 * | 435 * |
437 * Use [supported] to check if this is supported on the current platform. | 436 * Use [supported] to check if this is supported on the current platform. |
438 */ | 437 */ |
439 @SupportedBrowser(SupportedBrowser.CHROME, '25') | 438 @SupportedBrowser(SupportedBrowser.CHROME, '25') |
440 @Experimental() | 439 @Experimental() |
441 abstract class LocalDateTimeInputElement implements RangeInputElementBase { | 440 abstract class LocalDateTimeInputElement implements RangeInputElementBase { |
442 factory LocalDateTimeInputElement() => | 441 factory LocalDateTimeInputElement() => |
443 new InputElement(type: 'datetime-local'); | 442 new InputElement(type: 'datetime-local'); |
444 | 443 |
445 /// @domName HTMLInputElement.readOnly | 444 @DomName('HTMLInputElement.readOnly') |
446 bool readOnly; | 445 bool readOnly; |
447 | 446 |
448 /// @domName HTMLInputElement.required | 447 @DomName('HTMLInputElement.required') |
449 bool required; | 448 bool required; |
450 | 449 |
451 /// Returns true if this input type is supported on the current platform. | 450 /// Returns true if this input type is supported on the current platform. |
452 static bool get supported { | 451 static bool get supported { |
453 return (new InputElement(type: 'datetime-local')).type == 'datetime-local'; | 452 return (new InputElement(type: 'datetime-local')).type == 'datetime-local'; |
454 } | 453 } |
455 } | 454 } |
456 | 455 |
457 /** | 456 /** |
458 * A numeric editor control. | 457 * A numeric editor control. |
459 */ | 458 */ |
460 @SupportedBrowser(SupportedBrowser.CHROME) | 459 @SupportedBrowser(SupportedBrowser.CHROME) |
461 @SupportedBrowser(SupportedBrowser.IE) | 460 @SupportedBrowser(SupportedBrowser.IE) |
462 @SupportedBrowser(SupportedBrowser.SAFARI) | 461 @SupportedBrowser(SupportedBrowser.SAFARI) |
463 @Experimental() | 462 @Experimental() |
464 abstract class NumberInputElement implements RangeInputElementBase { | 463 abstract class NumberInputElement implements RangeInputElementBase { |
465 factory NumberInputElement() => new InputElement(type: 'number'); | 464 factory NumberInputElement() => new InputElement(type: 'number'); |
466 | 465 |
467 /// @domName HTMLInputElement.placeholder | 466 @DomName('HTMLInputElement.placeholder') |
468 String placeholder; | 467 String placeholder; |
469 | 468 |
470 /// @domName HTMLInputElement.readOnly | 469 @DomName('HTMLInputElement.readOnly') |
471 bool readOnly; | 470 bool readOnly; |
472 | 471 |
473 /// @domName HTMLInputElement.required | 472 @DomName('HTMLInputElement.required') |
474 bool required; | 473 bool required; |
475 | 474 |
476 /// Returns true if this input type is supported on the current platform. | 475 /// Returns true if this input type is supported on the current platform. |
477 static bool get supported { | 476 static bool get supported { |
478 return (new InputElement(type: 'number')).type == 'number'; | 477 return (new InputElement(type: 'number')).type == 'number'; |
479 } | 478 } |
480 } | 479 } |
481 | 480 |
482 /** | 481 /** |
483 * Similar to [NumberInputElement] but the browser may provide more optimal | 482 * Similar to [NumberInputElement] but the browser may provide more optimal |
(...skipping 15 matching lines...) Expand all Loading... |
499 | 498 |
500 /** | 499 /** |
501 * A boolean editor control. | 500 * A boolean editor control. |
502 * | 501 * |
503 * Note that if [indeterminate] is set then this control is in a third | 502 * Note that if [indeterminate] is set then this control is in a third |
504 * indeterminate state. | 503 * indeterminate state. |
505 */ | 504 */ |
506 abstract class CheckboxInputElement implements InputElementBase { | 505 abstract class CheckboxInputElement implements InputElementBase { |
507 factory CheckboxInputElement() => new InputElement(type: 'checkbox'); | 506 factory CheckboxInputElement() => new InputElement(type: 'checkbox'); |
508 | 507 |
509 /// @domName HTMLInputElement.checked | 508 @DomName('HTMLInputElement.checked') |
510 bool checked; | 509 bool checked; |
511 | 510 |
512 /// @domName HTMLInputElement.required | 511 @DomName('HTMLInputElement.required') |
513 bool required; | 512 bool required; |
514 } | 513 } |
515 | 514 |
516 | 515 |
517 /** | 516 /** |
518 * A control that when used with other [ReadioButtonInputElement] controls | 517 * A control that when used with other [ReadioButtonInputElement] controls |
519 * forms a radio button group in which only one control can be checked at a | 518 * forms a radio button group in which only one control can be checked at a |
520 * time. | 519 * time. |
521 * | 520 * |
522 * Radio buttons are considered to be in the same radio button group if: | 521 * Radio buttons are considered to be in the same radio button group if: |
523 * | 522 * |
524 * * They are all of type 'radio'. | 523 * * They are all of type 'radio'. |
525 * * They all have either the same [FormElement] owner, or no owner. | 524 * * They all have either the same [FormElement] owner, or no owner. |
526 * * Their name attributes contain the same name. | 525 * * Their name attributes contain the same name. |
527 */ | 526 */ |
528 abstract class RadioButtonInputElement implements InputElementBase { | 527 abstract class RadioButtonInputElement implements InputElementBase { |
529 factory RadioButtonInputElement() => new InputElement(type: 'radio'); | 528 factory RadioButtonInputElement() => new InputElement(type: 'radio'); |
530 | 529 |
531 /// @domName HTMLInputElement.checked | 530 @DomName('HTMLInputElement.checked') |
532 bool checked; | 531 bool checked; |
533 | 532 |
534 /// @domName HTMLInputElement.required | 533 @DomName('HTMLInputElement.required') |
535 bool required; | 534 bool required; |
536 } | 535 } |
537 | 536 |
538 /** | 537 /** |
539 * A control for picking files from the user's computer. | 538 * A control for picking files from the user's computer. |
540 */ | 539 */ |
541 abstract class FileUploadInputElement implements InputElementBase { | 540 abstract class FileUploadInputElement implements InputElementBase { |
542 factory FileUploadInputElement() => new InputElement(type: 'file'); | 541 factory FileUploadInputElement() => new InputElement(type: 'file'); |
543 | 542 |
544 /// @domName HTMLInputElement.accept | 543 @DomName('HTMLInputElement.accept') |
545 String accept; | 544 String accept; |
546 | 545 |
547 /// @domName HTMLInputElement.multiple | 546 @DomName('HTMLInputElement.multiple') |
548 bool multiple; | 547 bool multiple; |
549 | 548 |
550 /// @domName HTMLInputElement.required | 549 @DomName('HTMLInputElement.required') |
551 bool required; | 550 bool required; |
552 | 551 |
553 /// @domName HTMLInputElement.files | 552 @DomName('HTMLInputElement.files') |
554 List<File> files; | 553 List<File> files; |
555 } | 554 } |
556 | 555 |
557 /** | 556 /** |
558 * A button, which when clicked, submits the form. | 557 * A button, which when clicked, submits the form. |
559 */ | 558 */ |
560 abstract class SubmitButtonInputElement implements InputElementBase { | 559 abstract class SubmitButtonInputElement implements InputElementBase { |
561 factory SubmitButtonInputElement() => new InputElement(type: 'submit'); | 560 factory SubmitButtonInputElement() => new InputElement(type: 'submit'); |
562 | 561 |
563 /// @domName HTMLInputElement.formAction | 562 @DomName('HTMLInputElement.formAction') |
564 String formAction; | 563 String formAction; |
565 | 564 |
566 /// @domName HTMLInputElement.formEnctype | 565 @DomName('HTMLInputElement.formEnctype') |
567 String formEnctype; | 566 String formEnctype; |
568 | 567 |
569 /// @domName HTMLInputElement.formMethod | 568 @DomName('HTMLInputElement.formMethod') |
570 String formMethod; | 569 String formMethod; |
571 | 570 |
572 /// @domName HTMLInputElement.formNoValidate | 571 @DomName('HTMLInputElement.formNoValidate') |
573 bool formNoValidate; | 572 bool formNoValidate; |
574 | 573 |
575 /// @domName HTMLInputElement.formTarget | 574 @DomName('HTMLInputElement.formTarget') |
576 String formTarget; | 575 String formTarget; |
577 } | 576 } |
578 | 577 |
579 /** | 578 /** |
580 * Either an image which the user can select a coordinate to or a form | 579 * Either an image which the user can select a coordinate to or a form |
581 * submit button. | 580 * submit button. |
582 */ | 581 */ |
583 abstract class ImageButtonInputElement implements InputElementBase { | 582 abstract class ImageButtonInputElement implements InputElementBase { |
584 factory ImageButtonInputElement() => new InputElement(type: 'image'); | 583 factory ImageButtonInputElement() => new InputElement(type: 'image'); |
585 | 584 |
586 /// @domName HTMLInputElement.alt | 585 @DomName('HTMLInputElement.alt') |
587 String alt; | 586 String alt; |
588 | 587 |
589 /// @domName HTMLInputElement.formAction | 588 @DomName('HTMLInputElement.formAction') |
590 String formAction; | 589 String formAction; |
591 | 590 |
592 /// @domName HTMLInputElement.formEnctype | 591 @DomName('HTMLInputElement.formEnctype') |
593 String formEnctype; | 592 String formEnctype; |
594 | 593 |
595 /// @domName HTMLInputElement.formMethod | 594 @DomName('HTMLInputElement.formMethod') |
596 String formMethod; | 595 String formMethod; |
597 | 596 |
598 /// @domName HTMLInputElement.formNoValidate | 597 @DomName('HTMLInputElement.formNoValidate') |
599 bool formNoValidate; | 598 bool formNoValidate; |
600 | 599 |
601 /// @domName HTMLInputElement.formTarget | 600 @DomName('HTMLInputElement.formTarget') |
602 String formTarget; | 601 String formTarget; |
603 | 602 |
604 /// @domName HTMLInputElement.height | 603 @DomName('HTMLInputElement.height') |
605 int height; | 604 int height; |
606 | 605 |
607 /// @domName HTMLInputElement.src | 606 @DomName('HTMLInputElement.src') |
608 String src; | 607 String src; |
609 | 608 |
610 /// @domName HTMLInputElement.width | 609 @DomName('HTMLInputElement.width') |
611 int width; | 610 int width; |
612 } | 611 } |
613 | 612 |
614 /** | 613 /** |
615 * A button, which when clicked, resets the form. | 614 * A button, which when clicked, resets the form. |
616 */ | 615 */ |
617 abstract class ResetButtonInputElement implements InputElementBase { | 616 abstract class ResetButtonInputElement implements InputElementBase { |
618 factory ResetButtonInputElement() => new InputElement(type: 'reset'); | 617 factory ResetButtonInputElement() => new InputElement(type: 'reset'); |
619 } | 618 } |
620 | 619 |
621 /** | 620 /** |
622 * A button, with no default behavior. | 621 * A button, with no default behavior. |
623 */ | 622 */ |
624 abstract class ButtonInputElement implements InputElementBase { | 623 abstract class ButtonInputElement implements InputElementBase { |
625 factory ButtonInputElement() => new InputElement(type: 'button'); | 624 factory ButtonInputElement() => new InputElement(type: 'button'); |
626 } | 625 } |
627 | 626 |
OLD | NEW |