| Index: third_party/pkg/angular/lib/change_detection/change_detection.dart
 | 
| diff --git a/third_party/pkg/angular/lib/change_detection/change_detection.dart b/third_party/pkg/angular/lib/change_detection/change_detection.dart
 | 
| deleted file mode 100644
 | 
| index 5db6300cdf864d5773920e7640df7fbceadaa443..0000000000000000000000000000000000000000
 | 
| --- a/third_party/pkg/angular/lib/change_detection/change_detection.dart
 | 
| +++ /dev/null
 | 
| @@ -1,258 +0,0 @@
 | 
| -library change_detection;
 | 
| -
 | 
| -typedef EvalExceptionHandler(error, stack);
 | 
| -
 | 
| -/**
 | 
| - * An interface for [ChangeDetectorGroup] groups related watches together. It
 | 
| - * guarantees that within the group all watches will be reported in the order in
 | 
| - * which they were registered. It also provides an efficient way of removing the
 | 
| - * watch group.
 | 
| - */
 | 
| -abstract class ChangeDetectorGroup<H> {
 | 
| -  /**
 | 
| -   * Watch a specific [field] on an [object].
 | 
| -   *
 | 
| -   * If the [field] is:
 | 
| -   *   - _name_ - Name of the property to watch. (If the [object] is a Map then
 | 
| -   *   treat the name as a key.)
 | 
| -   *   - _[]_ - Watch all items in an array.
 | 
| -   *   - _{}_ - Watch all items in a Map.
 | 
| -   *   - _._ - Watch the actual object identity.
 | 
| -   *
 | 
| -   *
 | 
| -   * Parameters:
 | 
| -   * - [object] to watch.
 | 
| -   * - [field] to watch on the [object].
 | 
| -   * - [handler] an opaque object passed on to [ChangeRecord].
 | 
| -   */
 | 
| -  WatchRecord<H> watch(Object object, String field, H handler);
 | 
| -
 | 
| -  /** Use to remove all watches in the group in an efficient manner. */
 | 
| -  void remove();
 | 
| -
 | 
| -  /** Create a child [ChangeDetectorGroup] */
 | 
| -  ChangeDetectorGroup<H> newGroup();
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * An interface for [ChangeDetector]. An application can have multiple instances
 | 
| - * of the [ChangeDetector] to be used for checking different application domains.
 | 
| - *
 | 
| - * [ChangeDetector] works by comparing the identity of the objects not by
 | 
| - * calling the `.equals()` method. This is because ChangeDetector needs to have
 | 
| - * predictable performance, and the developer can implement `.equals()` on top
 | 
| - * of identity checks.
 | 
| - *
 | 
| - * - [H] A [ChangeRecord] has associated handler object. The handler object is
 | 
| - * opaque to the [ChangeDetector] but it is meaningful to the code which
 | 
| - * registered the watcher. It can be a data structure, an object, or a function.
 | 
| - * It is up to the developer to attach meaning to it.
 | 
| - */
 | 
| -abstract class ChangeDetector<H> extends ChangeDetectorGroup<H> {
 | 
| -  /**
 | 
| -   * This method does the work of collecting the changes and returns them as a
 | 
| -   * linked list of [ChangeRecord]s. The [ChangeRecord]s are returned in the
 | 
| -   * same order as they were registered.
 | 
| -   */
 | 
| -  ChangeRecord<H> collectChanges({ EvalExceptionHandler exceptionHandler,
 | 
| -                                   AvgStopwatch stopwatch });
 | 
| -}
 | 
| -
 | 
| -abstract class Record<H> {
 | 
| -  /** The observed object. */
 | 
| -  Object get object;
 | 
| -
 | 
| -  /**
 | 
| -   * The field which is being watched:
 | 
| -   *   - _name_ - Name of the field to watch.
 | 
| -   *   - _[]_ - Watch all items in an array.
 | 
| -   *   - _{}_ - Watch all items in a Map.
 | 
| -   *   - _._ - Watch the actual object identity.
 | 
| -   */
 | 
| -  String get field;
 | 
| -
 | 
| -  /**
 | 
| -   * An application provided object which contains the specific logic which
 | 
| -   * needs to be applied when the change is detected. The handler is opaque to
 | 
| -   * the ChangeDetector and as such can be anything the application desires.
 | 
| -   */
 | 
| -  H get handler;
 | 
| -
 | 
| -  /** Current value of the [field] on the [object] */
 | 
| -  get currentValue;
 | 
| -  /** Previous value of the [field] on the [object] */
 | 
| -  get previousValue;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * [WatchRecord] API which allows changing what object is being watched and
 | 
| - * manually triggering the checking.
 | 
| - */
 | 
| -abstract class WatchRecord<H> extends Record<H> {
 | 
| -  /** Set a new object for checking */
 | 
| -  set object(value);
 | 
| -
 | 
| -  /**
 | 
| -   * Check to see if the field on the object has changed. Returns [null] if no
 | 
| -   * change, or a [ChangeRecord] if a change has been detected.
 | 
| -   */
 | 
| -  ChangeRecord<H> check();
 | 
| -
 | 
| -  void remove();
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * Provides information about the changes which were detected in objects.
 | 
| - *
 | 
| - * It exposes a `nextChange` method for traversing all of the changes.
 | 
| - */
 | 
| -abstract class ChangeRecord<H> extends Record<H> {
 | 
| -  /** Next [ChangeRecord] */
 | 
| -  ChangeRecord<H> get nextChange;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * If the [ChangeDetector] is watching a [Map] then the [currentValue] of
 | 
| - * [Record] will contain an instance of this object. A [MapChangeRecord]
 | 
| - * contains the changes to the map since the last execution. The changes are
 | 
| - * reported as a list of [MapKeyValue]s which contain the key as well as its
 | 
| - * current and previous value.
 | 
| - */
 | 
| -abstract class MapChangeRecord<K, V> {
 | 
| -  /// The underlying iterable object
 | 
| -  Map get map;
 | 
| -
 | 
| -  /// A list of [CollectionKeyValue]s which are in the iteration order. */
 | 
| -  KeyValue<K, V> get mapHead;
 | 
| -  /// A list of changed items.
 | 
| -  ChangedKeyValue<K, V> get changesHead;
 | 
| -  /// A list of new added items.
 | 
| -  AddedKeyValue<K, V> get additionsHead;
 | 
| -  /// A list of removed items
 | 
| -  RemovedKeyValue<K, V> get removalsHead;
 | 
| -
 | 
| -  void forEachChange(void f(ChangedKeyValue<K, V> change));
 | 
| -  void forEachAddition(void f(AddedKeyValue<K, V> addition));
 | 
| -  void forEachRemoval(void f(RemovedKeyValue<K, V> removal));
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * Each item in map is wrapped in [MapKeyValue], which can track
 | 
| - * the [item]s [currentValue] and [previousValue] location.
 | 
| - */
 | 
| -abstract class MapKeyValue<K, V> {
 | 
| -  /// The item.
 | 
| -  K get key;
 | 
| -
 | 
| -  /// Previous item location in the list or [null] if addition.
 | 
| -  V get previousValue;
 | 
| -
 | 
| -  /// Current item location in the list or [null] if removal.
 | 
| -  V get currentValue;
 | 
| -}
 | 
| -
 | 
| -abstract class KeyValue<K, V> extends MapKeyValue<K, V> {
 | 
| -  KeyValue<K, V> get nextKeyValue;
 | 
| -}
 | 
| -
 | 
| -abstract class AddedKeyValue<K, V> extends MapKeyValue<K, V> {
 | 
| -  AddedKeyValue<K, V> get nextAddedKeyValue;
 | 
| -}
 | 
| -
 | 
| -abstract class RemovedKeyValue<K, V> extends MapKeyValue<K, V> {
 | 
| -  RemovedKeyValue<K, V> get nextRemovedKeyValue;
 | 
| -}
 | 
| -
 | 
| -abstract class ChangedKeyValue<K, V> extends MapKeyValue<K, V> {
 | 
| -  ChangedKeyValue<K, V> get nextChangedKeyValue;
 | 
| -}
 | 
| -
 | 
| -
 | 
| -/**
 | 
| - * If the [ChangeDetector] is watching an [Iterable] then the [currentValue] of
 | 
| - * [Record] will contain this object. The [CollectionChangeRecord] contains the
 | 
| - * changes to the collection since the last execution. The changes are reported
 | 
| - * as a list of [CollectionChangeItem]s which contain the item as well as its
 | 
| - * current and previous position in the list.
 | 
| - */
 | 
| -abstract class CollectionChangeRecord<V> {
 | 
| -  /** The underlying iterable object */
 | 
| -  Iterable get iterable;
 | 
| -
 | 
| -  /** A list of [CollectionItem]s which are in the iteration order. */
 | 
| -  CollectionItem<V> get collectionHead;
 | 
| -  /** A list of new [AddedItem]s. */
 | 
| -  AddedItem<V> get additionsHead;
 | 
| -  /** A list of [MovedItem]s. */
 | 
| -  MovedItem<V> get movesHead;
 | 
| -  /** A list of [RemovedItem]s. */
 | 
| -  RemovedItem<V> get removalsHead;
 | 
| -
 | 
| -  void forEachAddition(void f(AddedItem<V> addition));
 | 
| -  void forEachMove(void f(MovedItem<V> move));
 | 
| -  void forEachRemoval(void f(RemovedItem<V> removal));
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * Each changed item in the collection is wrapped in a [CollectionChangeItem],
 | 
| - * which tracks the [item]s [currentKey] and [previousKey] location.
 | 
| - */
 | 
| -abstract class CollectionChangeItem<V> {
 | 
| -  /** Previous item location in the list or [null] if addition. */
 | 
| -  int get previousIndex;
 | 
| -
 | 
| -  /** Current item location in the list or [null] if removal. */
 | 
| -  int get currentIndex;
 | 
| -
 | 
| -  /** The item. */
 | 
| -  V get item;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * Used to create a linked list of collection items. These items are always in
 | 
| - * the iteration order of the collection.
 | 
| - */
 | 
| -abstract class CollectionItem<V> extends CollectionChangeItem<V> {
 | 
| -  CollectionItem<V> get nextCollectionItem;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * A linked list of new items added to the collection. These items are always in
 | 
| - * the iteration order of the collection.
 | 
| - */
 | 
| -abstract class AddedItem<V> extends CollectionChangeItem<V> {
 | 
| -  AddedItem<V> get nextAddedItem;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * A linked list of items  moved in the collection. These items are always in
 | 
| - * the iteration order of the collection.
 | 
| - */
 | 
| -abstract class MovedItem<V> extends CollectionChangeItem<V> {
 | 
| -  MovedItem<V> get nextMovedItem;
 | 
| -}
 | 
| -
 | 
| -/**
 | 
| - * A linked list of items removed  from the collection. These items are always
 | 
| - * in the iteration order of the collection.
 | 
| - */
 | 
| -abstract class RemovedItem<V> extends CollectionChangeItem<V> {
 | 
| -  RemovedItem<V> get nextRemovedItem;
 | 
| -}
 | 
| -
 | 
| -class AvgStopwatch extends Stopwatch {
 | 
| -  int _count = 0;
 | 
| -
 | 
| -  int get count => _count;
 | 
| -
 | 
| -  void reset() {
 | 
| -    _count = 0;
 | 
| -    super.reset();
 | 
| -  }
 | 
| -
 | 
| -  int increment(int count) => _count += count;
 | 
| -
 | 
| -  double get ratePerMs => elapsedMicroseconds == 0
 | 
| -      ? 0.0
 | 
| -      : _count / elapsedMicroseconds * 1000;
 | 
| -}
 | 
| 
 |