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

Unified Diff: third_party/pkg/angular/lib/core_dom/shadow_dom_component_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/shadow_dom_component_factory.dart
diff --git a/third_party/pkg/angular/lib/core_dom/shadow_dom_component_factory.dart b/third_party/pkg/angular/lib/core_dom/shadow_dom_component_factory.dart
deleted file mode 100644
index 8cfe4132ee93c8c603eae5a7e2c3cae8e42fc3e1..0000000000000000000000000000000000000000
--- a/third_party/pkg/angular/lib/core_dom/shadow_dom_component_factory.dart
+++ /dev/null
@@ -1,146 +0,0 @@
-part of angular.core.dom_internal;
-
-abstract class ComponentFactory {
- FactoryFn call(dom.Node node, DirectiveRef ref);
-
- static async.Future<ViewFactory> _viewFuture(
- Component component, ViewCache viewCache, DirectiveMap directives) {
- if (component.template != null) {
- return new async.Future.value(viewCache.fromHtml(component.template, directives));
- }
- if (component.templateUrl != null) {
- return viewCache.fromUrl(component.templateUrl, directives);
- }
- return null;
- }
-
- static TemplateLoader _setupOnShadowDomAttach(controller, templateLoader, shadowScope) {
- if (controller is ShadowRootAware) {
- templateLoader.template.then((shadowDom) {
- if (!shadowScope.isAttached) return;
- (controller as ShadowRootAware).onShadowRoot(shadowDom);
- });
- }
- }
-}
-
-class ShadowDomComponentFactory implements ComponentFactory {
- final Expando _expando;
-
- ShadowDomComponentFactory(this._expando);
-
- FactoryFn call(dom.Node node, DirectiveRef ref) {
- return (Injector injector) {
- var component = ref.annotation as Component;
- Scope scope = injector.get(Scope);
- ViewCache viewCache = injector.get(ViewCache);
- Http http = injector.get(Http);
- TemplateCache templateCache = injector.get(TemplateCache);
- DirectiveMap directives = injector.get(DirectiveMap);
- NgBaseCss baseCss = injector.get(NgBaseCss);
- // This is a bit of a hack since we are returning different type then we are.
- var componentFactory = new _ComponentFactory(node, ref.type, component,
- injector.get(dom.NodeTreeSanitizer), _expando, baseCss);
- var controller = componentFactory.call(injector, scope, viewCache, http, templateCache,
- directives);
-
- componentFactory.shadowScope.context[component.publishAs] = controller;
- return controller;
- };
- }
-}
-
-
-/**
- * ComponentFactory is responsible for setting up components. This includes
- * the shadowDom, fetching template, importing styles, setting up attribute
- * mappings, publishing the controller, and compiling and caching the template.
- */
-class _ComponentFactory implements Function {
-
- final dom.Element element;
- final Type type;
- final Component component;
- final dom.NodeTreeSanitizer treeSanitizer;
- final Expando _expando;
- final NgBaseCss _baseCss;
-
- dom.ShadowRoot shadowDom;
- Scope shadowScope;
- Injector shadowInjector;
- var controller;
-
- _ComponentFactory(this.element, this.type, this.component, this.treeSanitizer,
- this._expando, this._baseCss);
-
- dynamic call(Injector injector, Scope scope,
- ViewCache viewCache, Http http, TemplateCache templateCache,
- DirectiveMap directives) {
- shadowDom = element.createShadowRoot()
- ..applyAuthorStyles = component.applyAuthorStyles
- ..resetStyleInheritance = component.resetStyleInheritance;
-
- shadowScope = scope.createChild({}); // Isolate
- // TODO(pavelgj): fetching CSS with Http is mainly an attempt to
- // work around an unfiled Chrome bug when reloading same CSS breaks
- // styles all over the page. We shouldn't be doing browsers work,
- // so change back to using @import once Chrome bug is fixed or a
- // better work around is found.
- List<async.Future<String>> cssFutures = new List();
- var cssUrls = []..addAll(_baseCss.urls)..addAll(component.cssUrls);
- if (cssUrls.isNotEmpty) {
- cssUrls.forEach((css) => cssFutures.add(http
- .get(css, cache: templateCache).then(
- (resp) => resp.responseText,
- onError: (e) => '/*\n$e\n*/\n')
- ));
- } else {
- cssFutures.add(new async.Future.value(null));
- }
- var viewFuture = ComponentFactory._viewFuture(component, viewCache, directives);
- TemplateLoader templateLoader = new TemplateLoader(
- async.Future.wait(cssFutures).then((Iterable<String> cssList) {
- if (cssList != null) {
- shadowDom.setInnerHtml(
- cssList
- .where((css) => css != null)
- .map((css) => '<style>$css</style>')
- .join(''),
- treeSanitizer: treeSanitizer);
- }
- if (viewFuture != null) {
- return viewFuture.then((ViewFactory viewFactory) {
- return (!shadowScope.isAttached) ?
- shadowDom :
- attachViewToShadowDom(viewFactory);
- });
- }
- return shadowDom;
- }));
- controller = createShadowInjector(injector, templateLoader).get(type);
- ComponentFactory._setupOnShadowDomAttach(controller, templateLoader, shadowScope);
- return controller;
- }
-
- dom.ShadowRoot attachViewToShadowDom(ViewFactory viewFactory) {
- var view = viewFactory(shadowInjector);
- shadowDom.nodes.addAll(view.nodes);
- return shadowDom;
- }
-
- Injector createShadowInjector(injector, TemplateLoader templateLoader) {
- var probe;
- var shadowModule = new Module()
- ..type(type)
- ..type(NgElement)
- ..type(EventHandler, implementedBy: ShadowRootEventHandler)
- ..value(Scope, shadowScope)
- ..value(TemplateLoader, templateLoader)
- ..value(dom.ShadowRoot, shadowDom)
- ..factory(ElementProbe, (_) => probe);
- shadowInjector = injector.createChild([shadowModule], name: SHADOW_DOM_INJECTOR_NAME);
- probe = _expando[shadowDom] = new ElementProbe(
- injector.get(ElementProbe), shadowDom, shadowInjector, shadowScope);
- return shadowInjector;
- }
-}
« no previous file with comments | « third_party/pkg/angular/lib/core_dom/selector.dart ('k') | third_party/pkg/angular/lib/core_dom/shadowless_shadow_root.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698