Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: third_party/pkg/angular/lib/core_dom/view_factory.dart

Issue 256553002: Revert "Update all Angular libs (run update_all.sh)." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/pkg/angular/lib/core_dom/view_factory.dart
diff --git a/third_party/pkg/angular/lib/core_dom/view_factory.dart b/third_party/pkg/angular/lib/core_dom/view_factory.dart
deleted file mode 100644
index 97a525fa62de1b6b59acdd06e389f054b9caca08..0000000000000000000000000000000000000000
--- a/third_party/pkg/angular/lib/core_dom/view_factory.dart
+++ /dev/null
@@ -1,188 +0,0 @@
-part of angular.core.dom_internal;
-
-
-/**
- * BoundViewFactory is a [ViewFactory] which does not need Injector because
- * it is pre-bound to an injector from the parent. This means that this
- * BoundViewFactory can only be used from within a specific Directive such
- * as [NgRepeat], but it can not be stored in a cache.
- *
- * The BoundViewFactory needs [Scope] to be created.
- */
-class BoundViewFactory {
- ViewFactory viewFactory;
- Injector injector;
-
- BoundViewFactory(this.viewFactory, this.injector);
-
- View call(Scope scope) =>
- viewFactory(injector.createChild([new Module()..value(Scope, scope)]));
-}
-
-abstract class ViewFactory implements Function {
- BoundViewFactory bind(Injector injector);
-
- View call(Injector injector, [List<dom.Node> elements]);
-}
-
-/**
- * [WalkingViewFactory] is used to create new [View]s. WalkingViewFactory is
- * created by the [Compiler] as a result of compiling a template.
- */
-class WalkingViewFactory implements ViewFactory {
- final List<ElementBinderTreeRef> elementBinders;
- final List<dom.Node> templateElements;
- final Profiler _perf;
- final Expando _expando;
-
- WalkingViewFactory(this.templateElements, this.elementBinders, this._perf,
- this._expando) {
- assert(elementBinders.every((ElementBinderTreeRef eb) =>
- eb is ElementBinderTreeRef));
- }
-
- BoundViewFactory bind(Injector injector) =>
- new BoundViewFactory(this, injector);
-
- View call(Injector injector, [List<dom.Node> nodes]) {
- if (nodes == null) nodes = cloneElements(templateElements);
- var timerId;
- try {
- assert((timerId = _perf.startTimer('ng.view')) != false);
- var view = new View(nodes, injector.get(EventHandler));
- _link(view, nodes, elementBinders, injector);
- return view;
- } finally {
- assert(_perf.stopTimer(timerId) != false);
- }
- }
-
- View _link(View view, List<dom.Node> nodeList, List elementBinders,
- Injector parentInjector) {
-
- var preRenderedIndexOffset = 0;
- var directiveDefsByName = {};
-
- for (int i = 0; i < elementBinders.length; i++) {
- // querySelectorAll('.ng-binding') should return a list of nodes in the
- // same order as the elementBinders list.
-
- // keep a injector array --
-
- var eb = elementBinders[i];
- int index = eb.offsetIndex;
-
- ElementBinderTree tree = eb.subtree;
-
- //List childElementBinders = eb.childElementBinders;
- int nodeListIndex = index + preRenderedIndexOffset;
- dom.Node node = nodeList[nodeListIndex];
- var binder = tree.binder;
-
- var timerId;
- try {
- assert((timerId = _perf.startTimer('ng.view.link', _html(node))) != false);
- // if node isn't attached to the DOM, create a parent for it.
- var parentNode = node.parentNode;
- var fakeParent = false;
- if (parentNode == null) {
- fakeParent = true;
- parentNode = new dom.DivElement()..append(node);
- }
-
- var childInjector = binder != null ?
- binder.bind(view, parentInjector, node) :
- parentInjector;
-
- if (fakeParent) {
- // extract the node from the parentNode.
- nodeList[nodeListIndex] = parentNode.nodes[0];
- }
-
- if (tree.subtrees != null) {
- _link(view, node.nodes, tree.subtrees, childInjector);
- }
- } finally {
- assert(_perf.stopTimer(timerId) != false);
- }
- }
- return view;
- }
-}
-
-/**
- * ViewCache is used to cache the compilation of templates into [View]s.
- * It can be used synchronously if HTML is known or asynchronously if the
- * template HTML needs to be looked up from the URL.
- */
-@Injectable()
-class ViewCache {
- // _viewFactoryCache is unbounded
- final _viewFactoryCache = new LruCache<String, ViewFactory>(capacity: 0);
- final Http http;
- final TemplateCache templateCache;
- final Compiler compiler;
- final dom.NodeTreeSanitizer treeSanitizer;
-
- ViewCache(this.http, this.templateCache, this.compiler, this.treeSanitizer);
-
- ViewFactory fromHtml(String html, DirectiveMap directives) {
- ViewFactory viewFactory = _viewFactoryCache.get(html);
- if (viewFactory == null) {
- var div = new dom.DivElement();
- div.setInnerHtml(html, treeSanitizer: treeSanitizer);
- viewFactory = compiler(div.nodes, directives);
- _viewFactoryCache.put(html, viewFactory);
- }
- return viewFactory;
- }
-
- async.Future<ViewFactory> fromUrl(String url, DirectiveMap directives) {
- return http.get(url, cache: templateCache).then(
- (resp) => fromHtml(resp.responseText, directives));
- }
-}
-
-class _AnchorAttrs extends NodeAttrs {
- DirectiveRef _directiveRef;
-
- _AnchorAttrs(DirectiveRef this._directiveRef): super(null);
-
- String operator [](name) => name == '.' ? _directiveRef.value : null;
-
- void observe(String attributeName, _AttributeChanged notifyFn) {
- notifyFn(attributeName == '.' ? _directiveRef.value : null);
- }
-}
-
-String _html(obj) {
- if (obj is String) {
- return obj;
- }
- if (obj is List) {
- return (obj as List).map((e) => _html(e)).join();
- }
- if (obj is dom.Element) {
- var text = (obj as dom.Element).outerHtml;
- return text.substring(0, text.indexOf('>') + 1);
- }
- return obj.nodeName;
-}
-
-/**
- * [ElementProbe] is attached to each [Element] in the DOM. Its sole purpose is
- * to allow access to the [Injector], [Scope], and Directives for debugging and
- * automated test purposes. The information here is not used by Angular in any
- * way.
- *
- * see: [ngInjector], [ngScope], [ngDirectives]
- */
-class ElementProbe {
- final ElementProbe parent;
- final dom.Node element;
- final Injector injector;
- final Scope scope;
- final directives = [];
-
- ElementProbe(this.parent, this.element, this.injector, this.scope);
-}
« no previous file with comments | « third_party/pkg/angular/lib/core_dom/view.dart ('k') | third_party/pkg/angular/lib/core_dom/walking_compiler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698