| Index: third_party/pkg/angular/lib/core_dom/compiler.dart
|
| diff --git a/third_party/pkg/angular/lib/core_dom/compiler.dart b/third_party/pkg/angular/lib/core_dom/compiler.dart
|
| deleted file mode 100644
|
| index 6a52ac8d1ceed75eb0ed728f72f150833bd00042..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/core_dom/compiler.dart
|
| +++ /dev/null
|
| @@ -1,234 +0,0 @@
|
| -part of angular.core.dom;
|
| -
|
| -@NgInjectableService()
|
| -class Compiler {
|
| - final Profiler _perf;
|
| - final Parser _parser;
|
| - final Expando _expando;
|
| -
|
| - Compiler(this._perf, this._parser, this._expando);
|
| -
|
| - _compileBlock(NodeCursor domCursor, NodeCursor templateCursor,
|
| - List<DirectiveRef> useExistingDirectiveRefs,
|
| - DirectiveMap directives) {
|
| - if (domCursor.nodeList().length == 0) return null;
|
| -
|
| - var directivePositions = null; // don't pre-create to create sparse tree and prevent GC pressure.
|
| - var cursorAlreadyAdvanced;
|
| -
|
| - do {
|
| - var declaredDirectiveRefs = useExistingDirectiveRefs == null
|
| - ? directives.selector(domCursor.nodeList()[0])
|
| - : useExistingDirectiveRefs;
|
| - var children = NgAnnotation.COMPILE_CHILDREN;
|
| - var childDirectivePositions = null;
|
| - List<DirectiveRef> usableDirectiveRefs = null;
|
| -
|
| - cursorAlreadyAdvanced = false;
|
| -
|
| - for (var j = 0; j < declaredDirectiveRefs.length; j++) {
|
| - DirectiveRef directiveRef = declaredDirectiveRefs[j];
|
| - NgAnnotation annotation = directiveRef.annotation;
|
| - var blockFactory = null;
|
| -
|
| - if (annotation.children != children &&
|
| - children == NgAnnotation.COMPILE_CHILDREN) {
|
| - children = annotation.children;
|
| - }
|
| -
|
| - if (children == NgAnnotation.TRANSCLUDE_CHILDREN) {
|
| - var remainingDirectives = declaredDirectiveRefs.sublist(j + 1);
|
| - blockFactory = compileTransclusion(
|
| - domCursor, templateCursor,
|
| - directiveRef, remainingDirectives, directives);
|
| -
|
| - // stop processing further directives since they belong to
|
| - // transclusion
|
| - j = declaredDirectiveRefs.length;
|
| - }
|
| - if (usableDirectiveRefs == null) usableDirectiveRefs = [];
|
| - directiveRef.blockFactory = blockFactory;
|
| - createMappings(directiveRef);
|
| - usableDirectiveRefs.add(directiveRef);
|
| - }
|
| -
|
| - if (children == NgAnnotation.COMPILE_CHILDREN && domCursor.descend()) {
|
| - templateCursor.descend();
|
| -
|
| - childDirectivePositions =
|
| - _compileBlock(domCursor, templateCursor, null, directives);
|
| -
|
| - domCursor.ascend();
|
| - templateCursor.ascend();
|
| - }
|
| -
|
| - if (childDirectivePositions != null || usableDirectiveRefs != null) {
|
| - if (directivePositions == null) directivePositions = [];
|
| - var directiveOffsetIndex = templateCursor.index;
|
| -
|
| - directivePositions
|
| - ..add(directiveOffsetIndex)
|
| - ..add(usableDirectiveRefs)
|
| - ..add(childDirectivePositions);
|
| - }
|
| - } while (templateCursor.microNext() && domCursor.microNext());
|
| -
|
| - return directivePositions;
|
| - }
|
| -
|
| - BlockFactory compileTransclusion(
|
| - NodeCursor domCursor, NodeCursor templateCursor,
|
| - DirectiveRef directiveRef,
|
| - List<DirectiveRef> transcludedDirectiveRefs,
|
| - DirectiveMap directives) {
|
| - var anchorName = directiveRef.annotation.selector + (directiveRef.value != null ? '=' + directiveRef.value : '');
|
| - var blockFactory;
|
| - var blocks;
|
| -
|
| - var transcludeCursor = templateCursor.replaceWithAnchor(anchorName);
|
| - var domCursorIndex = domCursor.index;
|
| - var directivePositions =
|
| - _compileBlock(domCursor, transcludeCursor, transcludedDirectiveRefs, directives);
|
| - if (directivePositions == null) directivePositions = [];
|
| -
|
| - blockFactory = new BlockFactory(transcludeCursor.elements, directivePositions, _perf, _expando);
|
| - domCursor.index = domCursorIndex;
|
| -
|
| - if (domCursor.isInstance()) {
|
| - domCursor.insertAnchorBefore(anchorName);
|
| - blocks = [blockFactory(domCursor.nodeList())];
|
| - domCursor.macroNext();
|
| - templateCursor.macroNext();
|
| - while (domCursor.isValid() && domCursor.isInstance()) {
|
| - blocks.add(blockFactory(domCursor.nodeList()));
|
| - domCursor.macroNext();
|
| - templateCursor.remove();
|
| - }
|
| - } else {
|
| - domCursor.replaceWithAnchor(anchorName);
|
| - }
|
| -
|
| - return blockFactory;
|
| - }
|
| -
|
| - BlockFactory call(List<dom.Node> elements, DirectiveMap directives) {
|
| - var timerId;
|
| - assert((timerId = _perf.startTimer('ng.compile', _html(elements))) != false);
|
| - List<dom.Node> domElements = elements;
|
| - List<dom.Node> templateElements = cloneElements(domElements);
|
| - var directivePositions = _compileBlock(
|
| - new NodeCursor(domElements), new NodeCursor(templateElements),
|
| - null, directives);
|
| -
|
| - var blockFactory = new BlockFactory(templateElements,
|
| - directivePositions == null ? [] : directivePositions, _perf, _expando);
|
| -
|
| - assert(_perf.stopTimer(timerId) != false);
|
| - return blockFactory;
|
| - }
|
| -
|
| - static RegExp _MAPPING = new RegExp(r'^(\@|=\>\!|\=\>|\<\=\>|\&)\s*(.*)$');
|
| -
|
| - createMappings(DirectiveRef ref) {
|
| - NgAnnotation annotation = ref.annotation;
|
| - if (annotation.map != null) annotation.map.forEach((attrName, mapping) {
|
| - Match match = _MAPPING.firstMatch(mapping);
|
| - if (match == null) {
|
| - throw "Unknown mapping '$mapping' for attribute '$attrName'.";
|
| - }
|
| - var mode = match[1];
|
| - var dstPath = match[2];
|
| -
|
| - String dstExpression = dstPath.isEmpty ? attrName : dstPath;
|
| - Expression dstPathFn = _parser(dstExpression);
|
| - if (!dstPathFn.isAssignable) {
|
| - throw "Expression '$dstPath' is not assignable in mapping '$mapping' for attribute '$attrName'.";
|
| - }
|
| - ApplyMapping mappingFn;
|
| - switch (mode) {
|
| - case '@':
|
| - mappingFn = (NodeAttrs attrs, Scope scope, Object controller, FilterMap filters, notify()) {
|
| - attrs.observe(attrName, (value) {
|
| - dstPathFn.assign(controller, value);
|
| - notify();
|
| - });
|
| - };
|
| - break;
|
| - case '<=>':
|
| - mappingFn = (NodeAttrs attrs, Scope scope, Object controller, FilterMap filters, notify()) {
|
| - if (attrs[attrName] == null) return notify();
|
| - String expression = attrs[attrName];
|
| - Expression expressionFn = _parser(expression);
|
| - var blockOutbound = false;
|
| - var blockInbound = false;
|
| - scope.watch(
|
| - expression,
|
| - (inboundValue, _) {
|
| - if (!blockInbound) {
|
| - blockOutbound = true;
|
| - scope.rootScope.runAsync(() => blockOutbound = false);
|
| - var value = dstPathFn.assign(controller, inboundValue);
|
| - notify();
|
| - return value;
|
| - }
|
| - },
|
| - filters: filters
|
| - );
|
| - if (expressionFn.isAssignable) {
|
| - scope.watch(
|
| - dstExpression,
|
| - (outboundValue, _) {
|
| - if (!blockOutbound) {
|
| - blockInbound = true;
|
| - scope.rootScope.runAsync(() => blockInbound = false);
|
| - expressionFn.assign(scope.context, outboundValue);
|
| - notify();
|
| - }
|
| - },
|
| - context: controller,
|
| - filters: filters
|
| - );
|
| - }
|
| - };
|
| - break;
|
| - case '=>':
|
| - mappingFn = (NodeAttrs attrs, Scope scope, Object controller, FilterMap filters, notify()) {
|
| - if (attrs[attrName] == null) return notify();
|
| - Expression attrExprFn = _parser(attrs[attrName]);
|
| - var shadowValue = null;
|
| - scope.watch(attrs[attrName],
|
| - (v, _) {
|
| - dstPathFn.assign(controller, shadowValue = v);
|
| - notify();
|
| - },
|
| - filters: filters);
|
| - };
|
| - break;
|
| - case '=>!':
|
| - mappingFn = (NodeAttrs attrs, Scope scope, Object controller, FilterMap filters, notify()) {
|
| - if (attrs[attrName] == null) return notify();
|
| - Expression attrExprFn = _parser(attrs[attrName]);
|
| - var watch;
|
| - watch = scope.watch(
|
| - attrs[attrName],
|
| - (value, _) {
|
| - if (dstPathFn.assign(controller, value) != null) {
|
| - watch.remove();
|
| - }
|
| - },
|
| - filters: filters);
|
| - notify();
|
| - };
|
| - break;
|
| - case '&':
|
| - mappingFn = (NodeAttrs attrs, Scope scope, Object dst, FilterMap filters, notify()) {
|
| - dstPathFn.assign(dst, _parser(attrs[attrName]).bind(scope.context, ScopeLocals.wrapper));
|
| - notify();
|
| - };
|
| - break;
|
| - }
|
| - ref.mappings.add(mappingFn);
|
| - });
|
| - }
|
| -}
|
| -
|
|
|