| Index: pkg/third_party/html5lib/lib/src/css_class_set.dart
|
| diff --git a/sdk/lib/html/html_common/css_class_set.dart b/pkg/third_party/html5lib/lib/src/css_class_set.dart
|
| similarity index 69%
|
| copy from sdk/lib/html/html_common/css_class_set.dart
|
| copy to pkg/third_party/html5lib/lib/src/css_class_set.dart
|
| index a81497e401f08207a316f332de3962bba0dc4049..03136a7877f139a3a6da0b88cef1f32905ab7447 100644
|
| --- a/sdk/lib/html/html_common/css_class_set.dart
|
| +++ b/pkg/third_party/html5lib/lib/src/css_class_set.dart
|
| @@ -1,8 +1,115 @@
|
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| +// Copyright (c) 2014, 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.
|
|
|
| -part of html_common;
|
| +// TODO(jmesserly): everything in this file is copied straight from "dart:html".
|
| +library html5lib.dom.src;
|
| +
|
| +import 'dart:collection';
|
| +import 'package:html5lib/dom.dart';
|
| +
|
| +class ElementCssClassSet extends CssClassSetImpl {
|
| +
|
| + final Element _element;
|
| +
|
| + ElementCssClassSet(this._element);
|
| +
|
| + Set<String> readClasses() {
|
| + var s = new LinkedHashSet<String>();
|
| + var classname = _element.className;
|
| +
|
| + for (String name in classname.split(' ')) {
|
| + String trimmed = name.trim();
|
| + if (!trimmed.isEmpty) {
|
| + s.add(trimmed);
|
| + }
|
| + }
|
| + return s;
|
| + }
|
| +
|
| + void writeClasses(Set<String> s) {
|
| + List list = new List.from(s);
|
| + _element.className = s.join(' ');
|
| + }
|
| +}
|
| +
|
| +
|
| +/** A Set that stores the CSS class names for an element. */
|
| +abstract class CssClassSet implements Set<String> {
|
| +
|
| + /**
|
| + * Adds the class [value] to the element if it is not on it, removes it if it
|
| + * is.
|
| + *
|
| + * If [shouldAdd] is true, then we always add that [value] to the element. If
|
| + * [shouldAdd] is false then we always remove [value] from the element.
|
| + */
|
| + bool toggle(String value, [bool shouldAdd]);
|
| +
|
| + /**
|
| + * Returns [:true:] if classes cannot be added or removed from this
|
| + * [:CssClassSet:].
|
| + */
|
| + bool get frozen;
|
| +
|
| + /**
|
| + * Determine if this element contains the class [value].
|
| + *
|
| + * This is the Dart equivalent of jQuery's
|
| + * [hasClass](http://api.jquery.com/hasClass/).
|
| + */
|
| + bool contains(String value);
|
| +
|
| + /**
|
| + * Add the class [value] to element.
|
| + *
|
| + * This is the Dart equivalent of jQuery's
|
| + * [addClass](http://api.jquery.com/addClass/).
|
| + *
|
| + * If this corresponds to one element. Returns true if [value] was added to
|
| + * the set, otherwise false.
|
| + *
|
| + * If this corresponds to many elements, null is always returned.
|
| + */
|
| + bool add(String value);
|
| +
|
| + /**
|
| + * Remove the class [value] from element, and return true on successful
|
| + * removal.
|
| + *
|
| + * This is the Dart equivalent of jQuery's
|
| + * [removeClass](http://api.jquery.com/removeClass/).
|
| + */
|
| + bool remove(Object value);
|
| +
|
| + /**
|
| + * Add all classes specified in [iterable] to element.
|
| + *
|
| + * This is the Dart equivalent of jQuery's
|
| + * [addClass](http://api.jquery.com/addClass/).
|
| + */
|
| + void addAll(Iterable<String> iterable);
|
| +
|
| + /**
|
| + * Remove all classes specified in [iterable] from element.
|
| + *
|
| + * This is the Dart equivalent of jQuery's
|
| + * [removeClass](http://api.jquery.com/removeClass/).
|
| + */
|
| + void removeAll(Iterable<String> iterable);
|
| +
|
| + /**
|
| + * Toggles all classes specified in [iterable] on element.
|
| + *
|
| + * Iterate through [iterable]'s items, and add it if it is not on it, or
|
| + * remove it if it is. This is the Dart equivalent of jQuery's
|
| + * [toggleClass](http://api.jquery.com/toggleClass/).
|
| + * If [shouldAdd] is true, then we always add all the classes in [iterable]
|
| + * element. If [shouldAdd] is false then we always remove all the classes in
|
| + * [iterable] from the element.
|
| + */
|
| + void toggleAll(Iterable<String> iterable, [bool shouldAdd]);
|
| +}
|
|
|
| abstract class CssClassSetImpl implements CssClassSet {
|
|
|
|
|