{"version":3,"sources":["compile_pipeline.js"],"names":[],"mappings":"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","file":"angular2/src/render/dom/compiler/compile_pipeline.js","sourcesContent":["import {isPresent} from 'angular2/src/facade/lang';\nimport {List, ListWrapper} from 'angular2/src/facade/collection';\nimport {DOM} from 'angular2/src/dom/dom_adapter';\nimport {CompileElement} from './compile_element';\nimport {CompileControl} from './compile_control';\nimport {CompileStep} from './compile_step';\nimport {ProtoViewBuilder} from '../view/proto_view_builder';\n\n/**\n * CompilePipeline for executing CompileSteps recursively for\n * all elements in a template.\n */\nexport class CompilePipeline {\n  _control:CompileControl;\n  constructor(steps:List<CompileStep>) {\n    this._control = new CompileControl(steps);\n  }\n\n  process(rootElement, compilationCtxtDescription:string = ''):List {\n    var results = ListWrapper.create();\n    var rootCompileElement = new CompileElement(rootElement, compilationCtxtDescription);\n    rootCompileElement.inheritedProtoView = new ProtoViewBuilder(rootElement);\n    rootCompileElement.isViewRoot = true;\n    this._process(results, null, rootCompileElement,\n      compilationCtxtDescription\n    );\n    return results;\n  }\n\n  _process(results, parent:CompileElement, current:CompileElement, compilationCtxtDescription:string = '') {\n    var additionalChildren = this._control.internalProcess(results, 0, parent, current);\n\n    if (current.compileChildren) {\n      var node = DOM.firstChild(DOM.templateAwareRoot(current.element));\n      while (isPresent(node)) {\n        // compiliation can potentially move the node, so we need to store the\n        // next sibling before recursing.\n        var nextNode = DOM.nextSibling(node);\n        if (DOM.isElementNode(node)) {\n          var childCompileElement = new CompileElement(node, compilationCtxtDescription);\n          childCompileElement.inheritedProtoView = current.inheritedProtoView;\n          childCompileElement.inheritedElementBinder = current.inheritedElementBinder;\n          childCompileElement.distanceToInheritedBinder = current.distanceToInheritedBinder+1;\n          this._process(results, current, childCompileElement);\n        }\n        node = nextNode;\n      }\n    }\n\n    if (isPresent(additionalChildren)) {\n      for (var i=0; i<additionalChildren.length; i++) {\n        this._process(results, current, additionalChildren[i]);\n      }\n    }\n  }\n}\n"]}