| Index: client/html/generated/html/frog/Element.dart
|
| diff --git a/client/html/generated/html/frog/Element.dart b/client/html/generated/html/frog/Element.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..46363ba280e18f67f8c0afe413dd9f41dc5805e5
|
| --- /dev/null
|
| +++ b/client/html/generated/html/frog/Element.dart
|
| @@ -0,0 +1,752 @@
|
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +// TODO(jacobr): use _Lists.dart to remove some of the duplicated
|
| +// functionality.
|
| +class _ChildrenElementList implements ElementList {
|
| + // Raw Element.
|
| + final _ElementImpl _element;
|
| + final _HTMLCollectionImpl _childElements;
|
| +
|
| + _ChildrenElementList._wrap(_ElementImpl element)
|
| + : _childElements = element._children,
|
| + _element = element;
|
| +
|
| + List<Element> _toList() {
|
| + final output = new List(_childElements.length);
|
| + for (int i = 0, len = _childElements.length; i < len; i++) {
|
| + output[i] = _childElements[i];
|
| + }
|
| + return output;
|
| + }
|
| +
|
| + _ElementImpl get first() {
|
| + return _element._firstElementChild;
|
| + }
|
| +
|
| + void forEach(void f(Element element)) {
|
| + for (_ElementImpl element in _childElements) {
|
| + f(element);
|
| + }
|
| + }
|
| +
|
| + ElementList filter(bool f(Element element)) {
|
| + final output = <Element>[];
|
| + forEach((Element element) {
|
| + if (f(element)) {
|
| + output.add(element);
|
| + }
|
| + });
|
| + return new _FrozenElementList._wrap(output);
|
| + }
|
| +
|
| + bool every(bool f(Element element)) {
|
| + for(Element element in this) {
|
| + if (!f(element)) {
|
| + return false;
|
| + }
|
| + };
|
| + return true;
|
| + }
|
| +
|
| + bool some(bool f(Element element)) {
|
| + for(Element element in this) {
|
| + if (f(element)) {
|
| + return true;
|
| + }
|
| + };
|
| + return false;
|
| + }
|
| +
|
| + bool isEmpty() {
|
| + return _element._firstElementChild == null;
|
| + }
|
| +
|
| + int get length() {
|
| + return _childElements.length;
|
| + }
|
| +
|
| + _ElementImpl operator [](int index) {
|
| + return _childElements[index];
|
| + }
|
| +
|
| + void operator []=(int index, _ElementImpl value) {
|
| + _element._replaceChild(value, _childElements[index]);
|
| + }
|
| +
|
| + void set length(int newLength) {
|
| + // TODO(jacobr): remove children when length is reduced.
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + Element add(_ElementImpl value) {
|
| + _element._appendChild(value);
|
| + return value;
|
| + }
|
| +
|
| + Element addLast(_ElementImpl value) => add(value);
|
| +
|
| + Iterator<Element> iterator() => _toList().iterator();
|
| +
|
| + void addAll(Collection<_ElementImpl> collection) {
|
| + for (_ElementImpl element in collection) {
|
| + _element._appendChild(element);
|
| + }
|
| + }
|
| +
|
| + void sort(int compare(Element a, Element b)) {
|
| + throw const UnsupportedOperationException('TODO(jacobr): should we impl?');
|
| + }
|
| +
|
| + void copyFrom(List<Object> src, int srcStart, int dstStart, int count) {
|
| + throw 'Not impl yet. todo(jacobr)';
|
| + }
|
| +
|
| + void setRange(int start, int length, List from, [int startFrom = 0]) {
|
| + throw const NotImplementedException();
|
| + }
|
| +
|
| + void removeRange(int start, int length) {
|
| + throw const NotImplementedException();
|
| + }
|
| +
|
| + void insertRange(int start, int length, [initialValue = null]) {
|
| + throw const NotImplementedException();
|
| + }
|
| +
|
| + List getRange(int start, int length) =>
|
| + new _FrozenElementList._wrap(_Lists.getRange(this, start, length,
|
| + <Element>[]));
|
| +
|
| + int indexOf(Element element, [int start = 0]) {
|
| + return _Lists.indexOf(this, element, start, this.length);
|
| + }
|
| +
|
| + int lastIndexOf(Element element, [int start = null]) {
|
| + if (start === null) start = length - 1;
|
| + return _Lists.lastIndexOf(this, element, start);
|
| + }
|
| +
|
| + void clear() {
|
| + // It is unclear if we want to keep non element nodes?
|
| + _element.text = '';
|
| + }
|
| +
|
| + Element removeLast() {
|
| + final last = this.last();
|
| + if (last != null) {
|
| + _element._removeChild(last);
|
| + }
|
| + return last;
|
| + }
|
| +
|
| + Element last() {
|
| + return _element.lastElementChild;
|
| + }
|
| +}
|
| +
|
| +// TODO(jacobr): this is an inefficient implementation but it is hard to see
|
| +// a better option given that we cannot quite force NodeList to be an
|
| +// ElementList as there are valid cases where a NodeList JavaScript object
|
| +// contains Node objects that are not Elements.
|
| +class _FrozenElementList implements ElementList {
|
| + final List<Node> _nodeList;
|
| +
|
| + _FrozenElementList._wrap(this._nodeList);
|
| +
|
| + Element get first() {
|
| + return _nodeList.first;
|
| + }
|
| +
|
| + void forEach(void f(Element element)) {
|
| + for (Element el in this) {
|
| + f(el);
|
| + }
|
| + }
|
| +
|
| + Collection map(f(Element element)) {
|
| + final out = [];
|
| + for (Element el in this) {
|
| + out.add(f(el));
|
| + }
|
| + return out;
|
| + }
|
| +
|
| + ElementList filter(bool f(Element element)) {
|
| + final out = new _ElementList([]);
|
| + for (Element el in this) {
|
| + if (f(el)) out.add(el);
|
| + }
|
| + return out;
|
| + }
|
| +
|
| + bool every(bool f(Element element)) {
|
| + for(Element element in this) {
|
| + if (!f(element)) {
|
| + return false;
|
| + }
|
| + };
|
| + return true;
|
| + }
|
| +
|
| + bool some(bool f(Element element)) {
|
| + for(Element element in this) {
|
| + if (f(element)) {
|
| + return true;
|
| + }
|
| + };
|
| + return false;
|
| + }
|
| +
|
| + bool isEmpty() => _nodeList.isEmpty();
|
| +
|
| + int get length() => _nodeList.length;
|
| +
|
| + Element operator [](int index) => _nodeList[index];
|
| +
|
| + void operator []=(int index, Element value) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void set length(int newLength) {
|
| + _nodeList.length = newLength;
|
| + }
|
| +
|
| + void add(Element value) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void addLast(Element value) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + Iterator<Element> iterator() => new _FrozenElementListIterator(this);
|
| +
|
| + void addAll(Collection<Element> collection) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void sort(int compare(Element a, Element b)) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void setRange(int start, int length, List from, [int startFrom = 0]) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void removeRange(int start, int length) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + void insertRange(int start, int length, [initialValue = null]) {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + ElementList getRange(int start, int length) =>
|
| + new _FrozenElementList._wrap(_nodeList.getRange(start, length));
|
| +
|
| + int indexOf(Element element, [int start = 0]) =>
|
| + _nodeList.indexOf(element, start);
|
| +
|
| + int lastIndexOf(Element element, [int start = null]) =>
|
| + _nodeList.lastIndexOf(element, start);
|
| +
|
| + void clear() {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + Element removeLast() {
|
| + throw const UnsupportedOperationException('');
|
| + }
|
| +
|
| + Element last() => _nodeList.last();
|
| +}
|
| +
|
| +class _FrozenElementListIterator implements Iterator<Element> {
|
| + final _FrozenElementList _list;
|
| + int _index = 0;
|
| +
|
| + _FrozenElementListIterator(this._list);
|
| +
|
| + /**
|
| + * Gets the next element in the iteration. Throws a
|
| + * [NoMoreElementsException] if no element is left.
|
| + */
|
| + Element next() {
|
| + if (!hasNext()) {
|
| + throw const NoMoreElementsException();
|
| + }
|
| +
|
| + return _list[_index++];
|
| + }
|
| +
|
| + /**
|
| + * Returns whether the [Iterator] has elements left.
|
| + */
|
| + bool hasNext() => _index < _list.length;
|
| +}
|
| +
|
| +class _ElementList extends _ListWrapper<Element> implements ElementList {
|
| + _ElementList(List<Element> list) : super(list);
|
| +
|
| + ElementList filter(bool f(Element element)) =>
|
| + new _ElementList(super.filter(f));
|
| +
|
| + ElementList getRange(int start, int length) =>
|
| + new _ElementList(super.getRange(start, length));
|
| +}
|
| +
|
| +class ElementAttributeMap implements Map<String, String> {
|
| +
|
| + final _ElementImpl _element;
|
| +
|
| + ElementAttributeMap._wrap(this._element);
|
| +
|
| + bool containsValue(String value) {
|
| + final attributes = _element._attributes;
|
| + for (int i = 0, len = attributes.length; i < len; i++) {
|
| + if(value == attributes[i].value) {
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + bool containsKey(String key) {
|
| + return _element._hasAttribute(key);
|
| + }
|
| +
|
| + String operator [](String key) {
|
| + return _element._getAttribute(key);
|
| + }
|
| +
|
| + void operator []=(String key, String value) {
|
| + _element._setAttribute(key, value);
|
| + }
|
| +
|
| + String putIfAbsent(String key, String ifAbsent()) {
|
| + if (!containsKey(key)) {
|
| + this[key] = ifAbsent();
|
| + }
|
| + }
|
| +
|
| + String remove(String key) {
|
| + _element._removeAttribute(key);
|
| + }
|
| +
|
| + void clear() {
|
| + final attributes = _element._attributes;
|
| + for (int i = attributes.length - 1; i >= 0; i--) {
|
| + remove(attributes[i].name);
|
| + }
|
| + }
|
| +
|
| + void forEach(void f(String key, String value)) {
|
| + final attributes = _element._attributes;
|
| + for (int i = 0, len = attributes.length; i < len; i++) {
|
| + final item = attributes[i];
|
| + f(item.name, item.value);
|
| + }
|
| + }
|
| +
|
| + Collection<String> getKeys() {
|
| + // TODO(jacobr): generate a lazy collection instead.
|
| + final attributes = _element._attributes;
|
| + final keys = new List<String>(attributes.length);
|
| + for (int i = 0, len = attributes.length; i < len; i++) {
|
| + keys[i] = attributes[i].name;
|
| + }
|
| + return keys;
|
| + }
|
| +
|
| + Collection<String> getValues() {
|
| + // TODO(jacobr): generate a lazy collection instead.
|
| + final attributes = _element._attributes;
|
| + final values = new List<String>(attributes.length);
|
| + for (int i = 0, len = attributes.length; i < len; i++) {
|
| + values[i] = attributes[i].value;
|
| + }
|
| + return values;
|
| + }
|
| +
|
| + /**
|
| + * The number of {key, value} pairs in the map.
|
| + */
|
| + int get length() {
|
| + return _element._attributes.length;
|
| + }
|
| +
|
| + /**
|
| + * Returns true if there is no {key, value} pair in the map.
|
| + */
|
| + bool isEmpty() {
|
| + return length == 0;
|
| + }
|
| +}
|
| +
|
| +class _SimpleClientRect implements ClientRect {
|
| + final num left;
|
| + final num top;
|
| + final num width;
|
| + final num height;
|
| + num get right() => left + width;
|
| + num get bottom() => top + height;
|
| +
|
| + const _SimpleClientRect(this.left, this.top, this.width, this.height);
|
| +
|
| + bool operator ==(ClientRect other) {
|
| + return other !== null && left == other.left && top == other.top
|
| + && width == other.width && height == other.height;
|
| + }
|
| +
|
| + String toString() => "($left, $top, $width, $height)";
|
| +}
|
| +
|
| +// TODO(jacobr): we cannot currently be lazy about calculating the client
|
| +// rects as we must perform all measurement queries at a safe point to avoid
|
| +// triggering unneeded layouts.
|
| +/**
|
| + * All your element measurement needs in one place
|
| + * @domName none
|
| + */
|
| +class _ElementRectImpl implements ElementRect {
|
| + final ClientRect client;
|
| + final ClientRect offset;
|
| + final ClientRect scroll;
|
| +
|
| + // TODO(jacobr): should we move these outside of ElementRect to avoid the
|
| + // overhead of computing them every time even though they are rarely used.
|
| + final _ClientRectImpl _boundingClientRect;
|
| + final _ClientRectListImpl _clientRects;
|
| +
|
| + _ElementRectImpl(_ElementImpl element) :
|
| + client = new _SimpleClientRect(element._clientLeft,
|
| + element._clientTop,
|
| + element._clientWidth,
|
| + element._clientHeight),
|
| + offset = new _SimpleClientRect(element._offsetLeft,
|
| + element._offsetTop,
|
| + element._offsetWidth,
|
| + element._offsetHeight),
|
| + scroll = new _SimpleClientRect(element._scrollLeft,
|
| + element._scrollTop,
|
| + element._scrollWidth,
|
| + element._scrollHeight),
|
| + _boundingClientRect = element._getBoundingClientRect(),
|
| + _clientRects = element._getClientRects();
|
| +
|
| + _ClientRectImpl get bounding() => _boundingClientRect;
|
| +
|
| + // TODO(jacobr): cleanup.
|
| + List<ClientRect> get clientRects() {
|
| + final out = new List(_clientRects.length);
|
| + for (num i = 0; i < _clientRects.length; i++) {
|
| + out[i] = _clientRects.item(i);
|
| + }
|
| + return out;
|
| + }
|
| +}
|
| +
|
| +class _ElementImpl extends _NodeImpl implements Element native "*Element" {
|
| +
|
| + // TODO(jacobr): caching these may hurt performance.
|
| + ElementAttributeMap _elementAttributeMap;
|
| + _CssClassSet _cssClassSet;
|
| + _DataAttributeMap _dataAttributes;
|
| +
|
| + /**
|
| + * @domName Element.hasAttribute, Element.getAttribute, Element.setAttribute,
|
| + * Element.removeAttribute
|
| + */
|
| + Map<String, String> get attributes() {
|
| + if (_elementAttributeMap === null) {
|
| + _elementAttributeMap = new ElementAttributeMap._wrap(this);
|
| + }
|
| + return _elementAttributeMap;
|
| + }
|
| +
|
| + void set attributes(Map<String, String> value) {
|
| + Map<String, String> attributes = this.attributes;
|
| + attributes.clear();
|
| + for (String key in value.getKeys()) {
|
| + attributes[key] = value[key];
|
| + }
|
| + }
|
| +
|
| + void set elements(Collection<Element> value) {
|
| + final elements = this.elements;
|
| + elements.clear();
|
| + elements.addAll(value);
|
| + }
|
| +
|
| + ElementList get elements() => new _ChildrenElementList._wrap(this);
|
| +
|
| + ElementList queryAll(String selectors) =>
|
| + new _FrozenElementList._wrap(_querySelectorAll(selectors));
|
| +
|
| + Set<String> get classes() {
|
| + if (_cssClassSet === null) {
|
| + _cssClassSet = new _CssClassSet(this);
|
| + }
|
| + return _cssClassSet;
|
| + }
|
| +
|
| + void set classes(Collection<String> value) {
|
| + _CssClassSet classSet = classes;
|
| + classSet.clear();
|
| + classSet.addAll(value);
|
| + }
|
| +
|
| + Map<String, String> get dataAttributes() {
|
| + if (_dataAttributes === null) {
|
| + _dataAttributes = new _DataAttributeMap(attributes);
|
| + }
|
| + return _dataAttributes;
|
| + }
|
| +
|
| + void set dataAttributes(Map<String, String> value) {
|
| + Map<String, String> dataAttributes = this.dataAttributes;
|
| + dataAttributes.clear();
|
| + for (String key in value.getKeys()) {
|
| + dataAttributes[key] = value[key];
|
| + }
|
| + }
|
| +
|
| + Future<ElementRect> get rect() {
|
| + return _createMeasurementFuture(
|
| + () => new _ElementRectImpl(this),
|
| + new Completer<ElementRect>());
|
| + }
|
| +
|
| + Future<CSSStyleDeclaration> get computedStyle() {
|
| + // TODO(jacobr): last param should be null, see b/5045788
|
| + return getComputedStyle('');
|
| + }
|
| +
|
| + Future<CSSStyleDeclaration> getComputedStyle(String pseudoElement) {
|
| + return _createMeasurementFuture(() =>
|
| + window._getComputedStyle(this, pseudoElement),
|
| + new Completer<CSSStyleDeclaration>());
|
| + }
|
| +
|
| + static final int ALLOW_KEYBOARD_INPUT = 1;
|
| +
|
| + int get _childElementCount() native "return this.childElementCount;";
|
| +
|
| + _HTMLCollectionImpl get _children() native "return this.children;";
|
| +
|
| + final _DOMTokenListImpl classList;
|
| +
|
| + String get _className() native "return this.className;";
|
| +
|
| + void set _className(String value) native "this.className = value;";
|
| +
|
| + int get _clientHeight() native "return this.clientHeight;";
|
| +
|
| + int get _clientLeft() native "return this.clientLeft;";
|
| +
|
| + int get _clientTop() native "return this.clientTop;";
|
| +
|
| + int get _clientWidth() native "return this.clientWidth;";
|
| +
|
| + String contentEditable;
|
| +
|
| + String dir;
|
| +
|
| + bool draggable;
|
| +
|
| + _ElementImpl get _firstElementChild() native "return this.firstElementChild;";
|
| +
|
| + bool hidden;
|
| +
|
| + String id;
|
| +
|
| + String innerHTML;
|
| +
|
| + final bool isContentEditable;
|
| +
|
| + String lang;
|
| +
|
| + final _ElementImpl lastElementChild;
|
| +
|
| + final _ElementImpl nextElementSibling;
|
| +
|
| + int get _offsetHeight() native "return this.offsetHeight;";
|
| +
|
| + int get _offsetLeft() native "return this.offsetLeft;";
|
| +
|
| + final _ElementImpl offsetParent;
|
| +
|
| + int get _offsetTop() native "return this.offsetTop;";
|
| +
|
| + int get _offsetWidth() native "return this.offsetWidth;";
|
| +
|
| + final String outerHTML;
|
| +
|
| + final _ElementImpl previousElementSibling;
|
| +
|
| + int get _scrollHeight() native "return this.scrollHeight;";
|
| +
|
| + int get _scrollLeft() native "return this.scrollLeft;";
|
| +
|
| + void set _scrollLeft(int value) native "this.scrollLeft = value;";
|
| +
|
| + int get _scrollTop() native "return this.scrollTop;";
|
| +
|
| + void set _scrollTop(int value) native "this.scrollTop = value;";
|
| +
|
| + int get _scrollWidth() native "return this.scrollWidth;";
|
| +
|
| + bool spellcheck;
|
| +
|
| + final _CSSStyleDeclarationImpl style;
|
| +
|
| + int tabIndex;
|
| +
|
| + final String tagName;
|
| +
|
| + final String webkitRegionOverflow;
|
| +
|
| + String webkitdropzone;
|
| +
|
| + _ElementEventsImpl get on() =>
|
| + new _ElementEventsImpl(this);
|
| +
|
| + void blur() native;
|
| +
|
| + void click() native;
|
| +
|
| + void focus() native;
|
| +
|
| + String _getAttribute(String name) native "return this.getAttribute(name);";
|
| +
|
| + _ClientRectImpl _getBoundingClientRect() native "return this.getBoundingClientRect();";
|
| +
|
| + _ClientRectListImpl _getClientRects() native "return this.getClientRects();";
|
| +
|
| + bool _hasAttribute(String name) native "return this.hasAttribute(name);";
|
| +
|
| + _ElementImpl insertAdjacentElement(String where, _ElementImpl element) native;
|
| +
|
| + void insertAdjacentHTML(String where, String html) native;
|
| +
|
| + void insertAdjacentText(String where, String text) native;
|
| +
|
| + _ElementImpl query(String selectors) native "return this.querySelector(selectors);";
|
| +
|
| + _NodeListImpl _querySelectorAll(String selectors) native "return this.querySelectorAll(selectors);";
|
| +
|
| + void _removeAttribute(String name) native "this.removeAttribute(name);";
|
| +
|
| + void scrollByLines(int lines) native;
|
| +
|
| + void scrollByPages(int pages) native;
|
| +
|
| + void scrollIntoView([bool centerIfNeeded = null]) native "this.scrollIntoViewIfNeeded(centerIfNeeded);";
|
| +
|
| + void _setAttribute(String name, String value) native "this.setAttribute(name, value);";
|
| +
|
| + bool matchesSelector(String selectors) native "return this.webkitMatchesSelector(selectors);";
|
| +
|
| + void webkitRequestFullScreen(int flags) native;
|
| +
|
| +}
|
| +
|
| +class _ElementEventsImpl extends _EventsImpl implements ElementEvents {
|
| + _ElementEventsImpl(_ptr) : super(_ptr);
|
| +
|
| + EventListenerList get abort() => _get('abort');
|
| +
|
| + EventListenerList get beforeCopy() => _get('beforecopy');
|
| +
|
| + EventListenerList get beforeCut() => _get('beforecut');
|
| +
|
| + EventListenerList get beforePaste() => _get('beforepaste');
|
| +
|
| + EventListenerList get blur() => _get('blur');
|
| +
|
| + EventListenerList get change() => _get('change');
|
| +
|
| + EventListenerList get click() => _get('click');
|
| +
|
| + EventListenerList get contextMenu() => _get('contextmenu');
|
| +
|
| + EventListenerList get copy() => _get('copy');
|
| +
|
| + EventListenerList get cut() => _get('cut');
|
| +
|
| + EventListenerList get doubleClick() => _get('dblclick');
|
| +
|
| + EventListenerList get drag() => _get('drag');
|
| +
|
| + EventListenerList get dragEnd() => _get('dragend');
|
| +
|
| + EventListenerList get dragEnter() => _get('dragenter');
|
| +
|
| + EventListenerList get dragLeave() => _get('dragleave');
|
| +
|
| + EventListenerList get dragOver() => _get('dragover');
|
| +
|
| + EventListenerList get dragStart() => _get('dragstart');
|
| +
|
| + EventListenerList get drop() => _get('drop');
|
| +
|
| + EventListenerList get error() => _get('error');
|
| +
|
| + EventListenerList get focus() => _get('focus');
|
| +
|
| + EventListenerList get fullscreenChange() => _get('webkitfullscreenchange');
|
| +
|
| + EventListenerList get fullscreenError() => _get('webkitfullscreenerror');
|
| +
|
| + EventListenerList get input() => _get('input');
|
| +
|
| + EventListenerList get invalid() => _get('invalid');
|
| +
|
| + EventListenerList get keyDown() => _get('keydown');
|
| +
|
| + EventListenerList get keyPress() => _get('keypress');
|
| +
|
| + EventListenerList get keyUp() => _get('keyup');
|
| +
|
| + EventListenerList get load() => _get('load');
|
| +
|
| + EventListenerList get mouseDown() => _get('mousedown');
|
| +
|
| + EventListenerList get mouseMove() => _get('mousemove');
|
| +
|
| + EventListenerList get mouseOut() => _get('mouseout');
|
| +
|
| + EventListenerList get mouseOver() => _get('mouseover');
|
| +
|
| + EventListenerList get mouseUp() => _get('mouseup');
|
| +
|
| + EventListenerList get mouseWheel() => _get('mousewheel');
|
| +
|
| + EventListenerList get paste() => _get('paste');
|
| +
|
| + EventListenerList get reset() => _get('reset');
|
| +
|
| + EventListenerList get scroll() => _get('scroll');
|
| +
|
| + EventListenerList get search() => _get('search');
|
| +
|
| + EventListenerList get select() => _get('select');
|
| +
|
| + EventListenerList get selectStart() => _get('selectstart');
|
| +
|
| + EventListenerList get submit() => _get('submit');
|
| +
|
| + EventListenerList get touchCancel() => _get('touchcancel');
|
| +
|
| + EventListenerList get touchEnd() => _get('touchend');
|
| +
|
| + EventListenerList get touchLeave() => _get('touchleave');
|
| +
|
| + EventListenerList get touchMove() => _get('touchmove');
|
| +
|
| + EventListenerList get touchStart() => _get('touchstart');
|
| +
|
| + EventListenerList get transitionEnd() => _get('webkitTransitionEnd');
|
| +}
|
|
|