| Index: third_party/pkg/angular/lib/filter/order_by.dart
|
| diff --git a/third_party/pkg/angular/lib/filter/order_by.dart b/third_party/pkg/angular/lib/filter/order_by.dart
|
| deleted file mode 100644
|
| index b31b22651dac6053ea66738df71e08a826b7c7fe..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/filter/order_by.dart
|
| +++ /dev/null
|
| @@ -1,180 +0,0 @@
|
| -part of angular.filter;
|
| -
|
| -typedef dynamic Mapper(dynamic e);
|
| -
|
| -/**
|
| - * Orders the provided [Iterable] by the `expression` predicate.
|
| - *
|
| - * Example 1: Simple array and single/empty expression.
|
| - *
|
| - * Assume that you have an array on scope called `colors` and that it has a list
|
| - * of these strings – `['red', 'blue', 'green']`. You might sort these in
|
| - * ascending order this way:
|
| - *
|
| - * Colors: <ul>
|
| - * <li ng-repeat="color in colors | orderBy:''">{{color}}</li>
|
| - * </ul>
|
| - *
|
| - * That would result in:
|
| - *
|
| - * <ul>
|
| - * <li>blue</li>
|
| - * <li>green</li>
|
| - * <li>red</li>
|
| - * <ul>
|
| - *
|
| - * The empty string expression, `''`, here signifies sorting in ascending order
|
| - * using the default comparator. Using `'+'` would also work as the `+` prefix
|
| - * is implied.
|
| - *
|
| - * To sort in descending order, you would use the `'-'` prefix.
|
| - *
|
| - * Colors: <ul>
|
| - * <li ng-repeat="color in colors | orderBy:'-'">{{color}}</li>
|
| - * </ul>
|
| - *
|
| - * For this simple example, you could have also provided `true` as the addition
|
| - * optional parameter which requests a reverse order sort to get the same
|
| - * result.
|
| - *
|
| - * <!-- Same result (descending order) as previous snippet. -->
|
| - * Colors: <ul>
|
| - * <li ng-repeat="color in colors | orderBy:'':true">{{color}}</li>
|
| - * </ul>
|
| - *
|
| - * Example 2: Complex objects, single expression.
|
| - *
|
| - * You may provide a more complex expression to sort non-primitives values or
|
| - * if you want to sort on a decorated/transformed value.
|
| - *
|
| - * e.g. Support you have a list `users` that looks like this:
|
| - *
|
| - * authors = [
|
| - * {firstName: 'Emily', lastName: 'Bronte'},
|
| - * {firstName: 'Mark', lastName: 'Twain'},
|
| - * {firstName: 'Jeffrey', lastName: 'Archer'},
|
| - * {firstName: 'Isaac', lastName: 'Asimov'},
|
| - * {firstName: 'Oscar', lastName: 'Wilde'},
|
| - * ];
|
| - *
|
| - * If you want to list the authors sorted by `lastName`, you would use
|
| - *
|
| - * <li ng-repeat="author in authors | orderBy:'lastName'">
|
| - * {{author.lastName}}, {{author.firstName
|
| - * </li>
|
| - *
|
| - * The string expression, `'lastName'`, indicates that the sort should be on the
|
| - * `lastName` property of each item.
|
| - *
|
| - * Using the lesson from the previous example, you may sort in reverse order of
|
| - * lastName using either of the two methods.
|
| - *
|
| - * <!-- reverse order of last names -->
|
| - * <li ng-repeat="author in authors | orderBy:'-lastName'">
|
| - * <!-- also does the same thing -->
|
| - * <li ng-repeat="author in authors | orderBy:'lastName':true">
|
| - *
|
| - * Note that, while we only discussed string expressions, such as `"lastName"`
|
| - * or the empty string, you can also directly provide a custom callable that
|
| - * will be called to transform the element before a sort.
|
| - *
|
| - * <li ng-repeat="author in authors | orderBy:getAuthorId">
|
| - *
|
| - * In the previous snippet, `getAuthorId` would evaluate to a callable when
|
| - * evaluated on the [Scope] of the `<li>` element. That callable is called once
|
| - * for each element in the list (i.e. each author object) and the sort order is
|
| - * determined by the sort order of the value mapped by the callable.
|
| - *
|
| - * Example 3: List expressions
|
| - *
|
| - * Both a string expression and the callable expression are simple versions of
|
| - * the more general list expression. You may pass a list as the orderBy
|
| - * expression and this list may consist of either of the string or callable
|
| - * expressions you saw in the previous examples. A list expression indicates
|
| - * a list of fallback expressions to use when a comparision results in the items
|
| - * being equal.
|
| - *
|
| - * For example, one might want to sort the authors list, first by last name and
|
| - * then by first name when the last names are equal. You would do that like
|
| - * this:
|
| - *
|
| - * <li ng-repeat="author in authors | orderBy:['lastName', 'firstName']">
|
| - *
|
| - * The items in such a list may either be string expressions or callables. The
|
| - * list itself might be provided as an expression that is looked up on the scope
|
| - * chain.
|
| - */
|
| -@NgFilter(name: 'orderBy')
|
| -class OrderByFilter {
|
| - Parser _parser;
|
| -
|
| - OrderByFilter(this._parser);
|
| -
|
| - static _nop(e) => e;
|
| - static bool _isNonZero(int n) => (n != 0);
|
| - static int _returnZero() => 0;
|
| - static int _defaultComparator(a, b) => Comparable.compare(a, b);
|
| - static int _reverseComparator(a, b) => _defaultComparator(b, a);
|
| -
|
| - static int _compareLists(List a, List b, List<Comparator> comparators) {
|
| - return new Iterable.generate(a.length, (i) => comparators[i](a[i], b[i]))
|
| - .firstWhere(_isNonZero, orElse: _returnZero);
|
| - }
|
| -
|
| - static List _sorted(
|
| - List items, List<Mapper> mappers, List<Comparator> comparators, bool descending) {
|
| - // Do the standard decorate-sort-undecorate aka Schwartzian dance since Dart
|
| - // doesn't support a key/transform parameter to sort().
|
| - // Ref: http://en.wikipedia.org/wiki/Schwartzian_transform
|
| - mapper(e) => mappers.map((m) => m(e)).toList(growable: false);
|
| - List decorated = items.map(mapper).toList(growable: false);
|
| - List<int> indices = new Iterable.generate(decorated.length, _nop).toList(growable: false);
|
| - comparator(i, j) => _compareLists(decorated[i], decorated[j], comparators);
|
| - indices.sort((descending) ? (i, j) => comparator(j, i) : comparator);
|
| - return indices.map((i) => items[i]).toList(growable: false);
|
| - }
|
| -
|
| - /**
|
| - * expression: String/Function or Array of String/Function.
|
| - */
|
| - List call(List items, var expression, [bool descending=false]) {
|
| - if (items == null) {
|
| - return null;
|
| - }
|
| - List expressions = null;
|
| - if (expression is String || expression is Mapper) {
|
| - expressions = [expression];
|
| - } else if (expression is List) {
|
| - expressions = expression as List;
|
| - }
|
| - if (expressions == null || expressions.length == 0) {
|
| - // AngularJS behavior. You must have an expression to get any work done.
|
| - return items;
|
| - }
|
| - int numExpressions = expressions.length;
|
| - List<Mapper> mappers = new List(numExpressions);
|
| - List<Comparator> comparators = new List<Comparator>(numExpressions);
|
| - for (int i = 0; i < numExpressions; i++) {
|
| - expression = expressions[i];
|
| - if (expression is String) {
|
| - var strExp = expression as String;
|
| - var desc = false;
|
| - if (strExp.startsWith('-') || strExp.startsWith('+')) {
|
| - desc = strExp.startsWith('-');
|
| - strExp = strExp.substring(1);
|
| - }
|
| - comparators[i] = desc ? _reverseComparator : _defaultComparator;
|
| - if (strExp == '') {
|
| - mappers[i] = _nop;
|
| - } else {
|
| - Expression parsed = _parser(strExp);
|
| - mappers[i] = (e) => parsed.eval(e);
|
| - }
|
| - } else if (expression is Mapper) {
|
| - mappers[i] = (expression as Mapper);
|
| - comparators[i] = _defaultComparator;
|
| - }
|
| - }
|
| - return _sorted(items, mappers, comparators, descending);
|
| - }
|
| -}
|
|
|