Index: client/dom/templates/html/interface/interface_Element.darttemplate |
=================================================================== |
--- client/dom/templates/html/interface/interface_Element.darttemplate (revision 5796) |
+++ client/dom/templates/html/interface/interface_Element.darttemplate (working copy) |
@@ -1,300 +0,0 @@ |
-// Copyright (c) 2011, 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. |
- |
-// WARNING: Do not edit - generated code. |
- |
-/** |
- * Provides a Map abstraction on top of data-* attributes, similar to the |
- * dataSet in the old DOM. |
- */ |
-class _DataAttributeMap implements Map<String, String> { |
- |
- final Map<String, String> _attributes; |
- |
- _DataAttributeMap(this._attributes); |
- |
- // interface Map |
- |
- // TODO: Use lazy iterator when it is available on Map. |
- bool containsValue(String value) => getValues().some((v) => v == value); |
- |
- bool containsKey(String key) => _attributes.containsKey(_attr(key)); |
- |
- String operator [](String key) => _attributes[_attr(key)]; |
- |
- void operator []=(String key, String value) { |
- _attributes[_attr(key)] = value; |
- } |
- |
- String putIfAbsent(String key, String ifAbsent()) { |
- if (!containsKey(key)) { |
- return this[key] = ifAbsent(); |
- } |
- return this[key]; |
- } |
- |
- String remove(String key) => _attributes.remove(_attr(key)); |
- |
- void clear() { |
- // Needs to operate on a snapshot since we are mutatiting the collection. |
- for (String key in getKeys()) { |
- remove(key); |
- } |
- } |
- |
- void forEach(void f(String key, String value)) { |
- _attributes.forEach((String key, String value) { |
- if (_matches(key)) { |
- f(_strip(key), value); |
- } |
- }); |
- } |
- |
- Collection<String> getKeys() { |
- final keys = new List<String>(); |
- _attributes.forEach((String key, String value) { |
- if (_matches(key)) { |
- keys.add(_strip(key)); |
- } |
- }); |
- return keys; |
- } |
- |
- Collection<String> getValues() { |
- final values = new List<String>(); |
- _attributes.forEach((String key, String value) { |
- if (_matches(key)) { |
- values.add(value); |
- } |
- }); |
- return values; |
- } |
- |
- int get length() => getKeys().length; |
- |
- // TODO: Use lazy iterator when it is available on Map. |
- bool isEmpty() => length == 0; |
- |
- // Helpers. |
- String _attr(String key) => 'data-$key'; |
- bool _matches(String key) => key.startsWith('data-'); |
- String _strip(String key) => key.substring(5); |
-} |
- |
-class _CssClassSet implements Set<String> { |
- |
- final _ElementImpl _element; |
- |
- _CssClassSet(this._element); |
- |
- String toString() { |
- return _formatSet(_read()); |
- } |
- |
- // interface Iterable - BEGIN |
- Iterator<String> iterator() { |
- return _read().iterator(); |
- } |
- // interface Iterable - END |
- |
- // interface Collection - BEGIN |
- void forEach(void f(String element)) { |
- _read().forEach(f); |
- } |
- |
- Collection map(f(String element)) { |
- return _read().map(f); |
- } |
- |
- Collection<String> filter(bool f(String element)) { |
- return _read().filter(f); |
- } |
- |
- bool every(bool f(String element)) { |
- return _read().every(f); |
- } |
- |
- bool some(bool f(String element)) { |
- return _read().some(f); |
- } |
- |
- bool isEmpty() { |
- return _read().isEmpty(); |
- } |
- |
- int get length() { |
- return _read().length; |
- } |
- // interface Collection - END |
- |
- // interface Set - BEGIN |
- bool contains(String value) { |
- return _read().contains(value); |
- } |
- |
- void add(String value) { |
- // TODO - figure out if we need to do any validation here |
- // or if the browser natively does enough |
- _modify((s) => s.add(value)); |
- } |
- |
- bool remove(String value) { |
- Set<String> s = _read(); |
- bool result = s.remove(value); |
- _write(s); |
- return result; |
- } |
- |
- void addAll(Collection<String> collection) { |
- // TODO - see comment above about validation |
- _modify((s) => s.addAll(collection)); |
- } |
- |
- void removeAll(Collection<String> collection) { |
- _modify((s) => s.removeAll(collection)); |
- } |
- |
- bool isSubsetOf(Collection<String> collection) { |
- return _read().isSubsetOf(collection); |
- } |
- |
- bool containsAll(Collection<String> collection) { |
- return _read().containsAll(collection); |
- } |
- |
- Set<String> intersection(Collection<String> other) { |
- return _read().intersection(other); |
- } |
- |
- void clear() { |
- _modify((s) => s.clear()); |
- } |
- // interface Set - END |
- |
- /** |
- * Helper method used to modify the set of css classes on this element. |
- * |
- * f - callback with: |
- * s - a Set of all the css class name currently on this element. |
- * |
- * After f returns, the modified set is written to the |
- * className property of this element. |
- */ |
- void _modify( f(Set<String> s)) { |
- Set<String> s = _read(); |
- f(s); |
- _write(s); |
- } |
- |
- /** |
- * Read the class names from the Element class property, |
- * and put them into a set (duplicates are discarded). |
- */ |
- Set<String> _read() { |
- // TODO(mattsh) simplify this once split can take regex. |
- Set<String> s = new Set<String>(); |
- for (String name in _className().split(' ')) { |
- String trimmed = name.trim(); |
- if (!trimmed.isEmpty()) { |
- s.add(trimmed); |
- } |
- } |
- return s; |
- } |
- |
- /** |
- * Read the class names as a space-separated string. This is meant to be |
- * overridden by subclasses. |
- */ |
- String _className() => _element._className; |
- |
- /** |
- * Join all the elements of a set into one string and write |
- * back to the element. |
- */ |
- void _write(Set s) { |
- _element._className = _formatSet(s); |
- } |
- |
- String _formatSet(Set<String> s) { |
- // TODO(mattsh) should be able to pass Set to String.joins http:/b/5398605 |
- List list = new List.from(s); |
- return Strings.join(list, ' '); |
- } |
-} |
- |
-interface ElementList extends List<Element> { |
- // TODO(jacobr): add element batch manipulation methods. |
- ElementList filter(bool f(Element element)); |
- |
- ElementList getRange(int start, int length); |
- |
- Element get first(); |
- // TODO(jacobr): add insertAt |
-} |
- |
-/** |
- * All your element measurement needs in one place |
- */ |
-interface ElementRect { |
- // Relative to offsetParent |
- ClientRect get client(); |
- ClientRect get offset(); |
- ClientRect get scroll(); |
- // In global coords |
- ClientRect get bounding(); |
- // In global coords |
- List<ClientRect> get clientRects(); |
-} |
- |
-interface Element extends Node, NodeSelector default _$(ID)FactoryProvider { |
-// TODO(jacobr): switch back to: |
-// interface $ID$EXTENDS default _ElementImpl { |
- Element.html(String html); |
- Element.tag(String tag); |
- |
- Map<String, String> get attributes(); |
- void set attributes(Map<String, String> value); |
- |
- /** |
- * @domName querySelectorAll, getElementsByClassName, getElementsByTagName, |
- * getElementsByTagNameNS |
- */ |
- ElementList queryAll(String selectors); |
- |
- /** |
- * @domName childElementCount, firstElementChild, lastElementChild, |
- * children, Node.nodes.add |
- */ |
- ElementList get elements(); |
- |
- void set elements(Collection<Element> value); |
- |
- /** @domName className, classList */ |
- Set<String> get classes(); |
- |
- void set classes(Collection<String> value); |
- |
- Map<String, String> get dataAttributes(); |
- void set dataAttributes(Map<String, String> value); |
- |
- /** |
- * @domName getClientRects, getBoundingClientRect, clientHeight, clientWidth, |
- * clientTop, clientLeft, offsetHeight, offsetWidth, offsetTop, offsetLeft, |
- * scrollHeight, scrollWidth, scrollTop, scrollLeft |
- */ |
- Future<ElementRect> get rect(); |
- |
- /** @domName Window.getComputedStyle */ |
- Future<CSSStyleDeclaration> get computedStyle(); |
- |
- /** @domName Window.getComputedStyle */ |
- Future<CSSStyleDeclaration> getComputedStyle(String pseudoElement); |
- |
- Element clone(bool deep); |
- |
- Element get parent(); |
- |
-$!MEMBERS |
-} |