Chromium Code Reviews| Index: sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate |
| diff --git a/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate b/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate |
| index a4c4e9a6383271f581b1aadf59ff0dbeacaf9d68..1d58723c835933435fff3233241cd827635f7f70 100644 |
| --- a/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate |
| +++ b/sdk/lib/html/templates/html/impl/impl_HTMLInputElement.darttemplate |
| @@ -29,6 +29,19 @@ class $CLASSNAME$EXTENDS implements |
| ResetButtonInputElement, |
| ButtonInputElement |
| $NATIVESPEC { |
| + |
| + ///@docsEditable true |
| + factory InputElement({String type}) { |
| + var e = document.$dom_createElement("input"); |
| + if (type != null) { |
| + try { |
| + // IE throws an exception for unknown types. |
| + e.type = type; |
| + } catch(_) {} |
| + } |
| + return e; |
| + } |
| + |
|
Emily Fortuna
2012/12/28 01:42:33
delete the whitespace here. that's what's adding t
|
| $!MEMBERS |
| } |
| @@ -251,7 +264,11 @@ abstract class RangeInputElementBase implements InputElementBase { |
| /** |
| * A date and time (year, month, day, hour, minute, second, fraction of a |
| * second) with the time zone set to UTC. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME, '25') |
| +@Experimental() |
| abstract class DateTimeInputElement implements RangeInputElementBase { |
| factory DateTimeInputElement() => new InputElement(type: 'datetime'); |
| @@ -263,11 +280,20 @@ abstract class DateTimeInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'datetime')).type == 'datetime'; |
| + } |
| } |
| /** |
| * A date (year, month, day) with no time zone. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME, '25') |
| +@Experimental() |
| abstract class DateInputElement implements RangeInputElementBase { |
| factory DateInputElement() => new InputElement(type: 'date'); |
| @@ -279,11 +305,20 @@ abstract class DateInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'date')).type == 'date'; |
| + } |
| } |
| /** |
| * A date consisting of a year and a month with no time zone. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME, '25') |
| +@Experimental() |
| abstract class MonthInputElement implements RangeInputElementBase { |
| factory MonthInputElement() => new InputElement(type: 'month'); |
| @@ -295,11 +330,20 @@ abstract class MonthInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'month')).type == 'month'; |
| + } |
| } |
| /** |
| * A date consisting of a week-year number and a week number with no time zone. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME, '25') |
| +@Experimental() |
| abstract class WeekInputElement implements RangeInputElementBase { |
| factory WeekInputElement() => new InputElement(type: 'week'); |
| @@ -311,11 +355,20 @@ abstract class WeekInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'week')).type == 'week'; |
| + } |
| } |
| /** |
| * A time (hour, minute, seconds, fractional seconds) with no time zone. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME) |
| +@Experimental() |
| abstract class TimeInputElement implements RangeInputElementBase { |
| factory TimeInputElement() => new InputElement(type: 'time'); |
| @@ -327,12 +380,21 @@ abstract class TimeInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'time')).type == 'time'; |
| + } |
| } |
| /** |
| * A date and time (year, month, day, hour, minute, second, fraction of a |
| * second) with no time zone. |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME, '25') |
| +@Experimental() |
| abstract class LocalDateTimeInputElement implements RangeInputElementBase { |
| factory LocalDateTimeInputElement() => |
| new InputElement(type: 'datetime-local'); |
| @@ -342,11 +404,20 @@ abstract class LocalDateTimeInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'datetime-local')).type == 'datetime-local'; |
| + } |
| } |
| /** |
| * A numeric editor control. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME) |
| +@SupportedBrowser(SupportedBrowser.IE) |
| +@SupportedBrowser(SupportedBrowser.SAFARI) |
| +@Experimental() |
| abstract class NumberInputElement implements RangeInputElementBase { |
| factory NumberInputElement() => new InputElement(type: 'number'); |
| @@ -358,14 +429,29 @@ abstract class NumberInputElement implements RangeInputElementBase { |
| /// @domName HTMLInputElement.required |
| bool required; |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'number')).type == 'number'; |
| + } |
| } |
| /** |
| * Similar to [NumberInputElement] but the browser may provide more optimal |
| * styling (such as a slider control). |
| + * |
| + * Use [supported] to check if this is supported on the current platform. |
| */ |
| +@SupportedBrowser(SupportedBrowser.CHROME) |
| +@SupportedBrowser(SupportedBrowser.IE, '10') |
| +@Experimental() |
| abstract class RangeInputElement implements RangeInputElementBase { |
| factory RangeInputElement() => new InputElement(type: 'range'); |
| + |
| + /// Returns true if this input type is supported on the current platform. |
| + static bool get supported { |
| + return (new InputElement(type: 'range')).type == 'range'; |
| + } |
| } |
| /** |