| Index: third_party/pkg/angular/lib/tools/selector.dart
|
| diff --git a/third_party/pkg/angular/lib/tools/selector.dart b/third_party/pkg/angular/lib/tools/selector.dart
|
| deleted file mode 100644
|
| index 01cb503c656c412ff8f07d7e3dc5314fff11e7aa..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/tools/selector.dart
|
| +++ /dev/null
|
| @@ -1,122 +0,0 @@
|
| -library selector;
|
| -
|
| -import 'package:html5lib/dom.dart';
|
| -
|
| -class ContainsSelector {
|
| - String selector;
|
| - RegExp regexp;
|
| -
|
| - ContainsSelector(this.selector, regexp) {
|
| - this.regexp = new RegExp(regexp);
|
| - }
|
| -}
|
| -
|
| -RegExp _SELECTOR_REGEXP = new RegExp(r'^(?:([\w\-]+)|(?:\.([\w\-]+))|(?:\[([\w\-\*]+)(?:=([^\]]*))?\]))');
|
| -RegExp _COMMENT_COMPONENT_REGEXP = new RegExp(r'^\[([\w\-]+)(?:\=(.*))?\]$');
|
| -RegExp _CONTAINS_REGEXP = new RegExp(r'^:contains\(\/(.+)\/\)$'); //
|
| -RegExp _ATTR_CONTAINS_REGEXP = new RegExp(r'^\[\*=\/(.+)\/\]$'); //
|
| -
|
| -class _SelectorPart {
|
| - final String element;
|
| - final String className;
|
| - final String attrName;
|
| - final String attrValue;
|
| -
|
| - const _SelectorPart.fromElement(String this.element)
|
| - : className = null, attrName = null, attrValue = null;
|
| -
|
| - const _SelectorPart.fromClass(String this.className)
|
| - : element = null, attrName = null, attrValue = null;
|
| -
|
| -
|
| - const _SelectorPart.fromAttribute(String this.attrName, String this.attrValue)
|
| - : element = null, className = null;
|
| -
|
| - toString() =>
|
| - element == null
|
| - ? (className == null
|
| - ? (attrValue == '' ? '[$attrName]' : '[$attrName=$attrValue]')
|
| - : '.$className')
|
| - : element;
|
| -}
|
| -
|
| -List<_SelectorPart> _splitCss(String selector) {
|
| - List<_SelectorPart> parts = [];
|
| - var remainder = selector;
|
| - var match;
|
| - while (!remainder.isEmpty) {
|
| - if ((match = _SELECTOR_REGEXP.firstMatch(remainder)) != null) {
|
| - if (match[1] != null) {
|
| - parts.add(new _SelectorPart.fromElement(match[1].toLowerCase()));
|
| - } else if (match[2] != null) {
|
| - parts.add(new _SelectorPart.fromClass(match[2].toLowerCase()));
|
| - } else if (match[3] != null) {
|
| - var attrValue = match[4] == null ? '' : match[4].toLowerCase();
|
| - parts.add(new _SelectorPart.fromAttribute(match[3].toLowerCase(),
|
| - attrValue));
|
| - } else {
|
| - throw "Missmatched RegExp $_SELECTOR_REGEXP on $remainder";
|
| - }
|
| - } else {
|
| - throw "Unknown selector format '$remainder'.";
|
| - }
|
| - remainder = remainder.substring(match.end);
|
| - }
|
| - return parts;
|
| -}
|
| -
|
| -bool matchesNode(Node node, String selector) {
|
| - var match, selectorParts;
|
| - if ((match = _CONTAINS_REGEXP.firstMatch(selector)) != null) {
|
| - if (node is! Text) {
|
| - return false;
|
| - }
|
| - return new RegExp(match.group(1)).hasMatch((node as Text).value);
|
| - } else if ((match = _ATTR_CONTAINS_REGEXP.firstMatch(selector)) != null) {
|
| - if (node is! Element) {
|
| - return false;
|
| - }
|
| - var regexp = new RegExp(match.group(1));
|
| - for (String attrName in node.attributes.keys) {
|
| - if (regexp.hasMatch(node.attributes[attrName])) {
|
| - return true;
|
| - }
|
| - }
|
| - return false;
|
| - } else if ((selectorParts = _splitCss(selector)) != null) {
|
| - if (node is! Element) {
|
| - return false;
|
| - }
|
| - String nodeName = node.tagName.toLowerCase();
|
| -
|
| - bool stillGood = true;
|
| - selectorParts.forEach((_SelectorPart part) {
|
| - if (part.element != null) {
|
| - if (nodeName != part.element) {
|
| - stillGood = false;
|
| - }
|
| - } else if (part.className != null) {
|
| - if (node.attributes['class'] == null ||
|
| - !node.attributes['class'].split(' ').contains(part.className)) {
|
| - stillGood = false;
|
| - }
|
| - } else if (part.attrName != null) {
|
| - String matchingKey = _matchingKey(node.attributes.keys, part.attrName);
|
| - if (matchingKey == null || part.attrValue == '' ?
|
| - node.attributes[matchingKey] == null :
|
| - node.attributes[matchingKey] != part.attrValue) {
|
| - stillGood = false;
|
| - }
|
| - }
|
| - });
|
| -
|
| - return stillGood;
|
| - }
|
| -
|
| - throw new ArgumentError('Unsupported Selector: $selector');
|
| -}
|
| -
|
| -String _matchingKey(Iterable keys, String attrName) =>
|
| - keys.firstWhere(
|
| - (key) => new RegExp('^${attrName.replaceAll('*', r'[\w\-]+')}\$').hasMatch(key.toString()),
|
| - orElse: () => null);
|
|
|