diff --git a/modules/@angular/compiler/core_private.ts b/modules/@angular/compiler/core_private.ts index 9151e5de27..388b313161 100644 --- a/modules/@angular/compiler/core_private.ts +++ b/modules/@angular/compiler/core_private.ts @@ -84,3 +84,4 @@ export var balanceAnimationKeyframes: typeof t.balanceAnimationKeyframes = r.bal export var flattenStyles: typeof t.flattenStyles = r.flattenStyles; export var clearStyles: typeof t.clearStyles = r.clearStyles; export var collectAndResolveStyles: typeof r.collectAndResolveStyles = r.collectAndResolveStyles; +export var renderStyles: typeof t.renderStyles = r.renderStyles; diff --git a/modules/@angular/compiler/src/animation/animation_compiler.ts b/modules/@angular/compiler/src/animation/animation_compiler.ts index e29e2c12ac..c75900a15f 100644 --- a/modules/@angular/compiler/src/animation/animation_compiler.ts +++ b/modules/@angular/compiler/src/animation/animation_compiler.ts @@ -243,12 +243,16 @@ class _AnimationBuilder implements AnimationAstVisitor { _ANIMATION_END_STATE_STYLES_VAR.set(EMPTY_MAP).toStmt() ])); + + var RENDER_STYLES_FN = o.importExpr(Identifiers.renderStyles); + // before we start any animation we want to clear out the starting // styles from the element's style property (since they were placed // there at the end of the last animation statements.push( - _ANIMATION_FACTORY_RENDERER_VAR.callMethod('setElementStyles', [ + RENDER_STYLES_FN.callFn([ _ANIMATION_FACTORY_ELEMENT_VAR, + _ANIMATION_FACTORY_RENDERER_VAR, o.importExpr(Identifiers.clearStyles).callFn([_ANIMATION_START_STATE_STYLES_VAR]) ]).toStmt()); @@ -269,8 +273,9 @@ class _AnimationBuilder implements AnimationAstVisitor { statements.push( _ANIMATION_PLAYER_VAR.callMethod('onDone', [ o.fn([], [ - _ANIMATION_FACTORY_RENDERER_VAR.callMethod('setElementStyles', [ + RENDER_STYLES_FN.callFn([ _ANIMATION_FACTORY_ELEMENT_VAR, + _ANIMATION_FACTORY_RENDERER_VAR, o.importExpr(Identifiers.balanceAnimationStyles).callFn([ _ANIMATION_START_STATE_STYLES_VAR, _ANIMATION_END_STATE_STYLES_VAR diff --git a/modules/@angular/compiler/src/identifiers.ts b/modules/@angular/compiler/src/identifiers.ts index a880f9abf9..b6d9a0028f 100644 --- a/modules/@angular/compiler/src/identifiers.ts +++ b/modules/@angular/compiler/src/identifiers.ts @@ -49,6 +49,7 @@ import { balanceAnimationKeyframes as impBalanceAnimationKeyframes, clearStyles as impClearStyles, collectAndResolveStyles as impCollectAndResolveStyles, + renderStyles as impRenderStyles, SecurityContext } from '../core_private'; @@ -260,6 +261,11 @@ export class Identifiers { moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, runtime: impClearStyles }); + static renderStyles = new CompileIdentifierMetadata({ + name: 'renderStyles', + moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, + runtime: impRenderStyles + }); static collectAndResolveStyles = new CompileIdentifierMetadata({ name: 'collectAndResolveStyles', moduleUrl: ANIMATION_STYLE_UTIL_ASSET_URL, diff --git a/modules/@angular/core/private_export.ts b/modules/@angular/core/private_export.ts index 5a72553425..77906c4817 100644 --- a/modules/@angular/core/private_export.ts +++ b/modules/@angular/core/private_export.ts @@ -125,6 +125,7 @@ export declare namespace __core_private_types__ { export var balanceAnimationKeyframes: typeof animationUtils.balanceAnimationKeyframes; export var flattenStyles: typeof animationUtils.flattenStyles; export var clearStyles: typeof animationUtils.clearStyles; + export var renderStyles: typeof animationUtils.renderStyles; export var collectAndResolveStyles: typeof animationUtils.collectAndResolveStyles; export type AnimationStyles = AnimationStyles_; export var AnimationStyles: typeof AnimationStyles_; @@ -194,6 +195,7 @@ export var __core_private__ = { balanceAnimationKeyframes: animationUtils.balanceAnimationKeyframes, flattenStyles: animationUtils.flattenStyles, clearStyles: animationUtils.clearStyles, + renderStyles: animationUtils.renderStyles, collectAndResolveStyles: animationUtils.collectAndResolveStyles, AnimationStyles: AnimationStyles_, ANY_STATE: ANY_STATE_, diff --git a/modules/@angular/core/src/animation/animation_style_util.ts b/modules/@angular/core/src/animation/animation_style_util.ts index c05dbed583..71ca75feee 100644 --- a/modules/@angular/core/src/animation/animation_style_util.ts +++ b/modules/@angular/core/src/animation/animation_style_util.ts @@ -101,6 +101,12 @@ export function collectAndResolveStyles(collection: {[key: string]: string|numbe }); } +export function renderStyles(element: any, renderer: any, styles: {[key: string]: string|number}): void { + StringMapWrapper.forEach(styles, (value, prop) => { + renderer.setElementStyle(element, prop, value); + }); +} + export function flattenStyles(styles: {[key: string]: string|number}[]) { var finalStyles = {}; styles.forEach(entry => { diff --git a/modules/@angular/core/src/debug/debug_renderer.ts b/modules/@angular/core/src/debug/debug_renderer.ts index 690b5b2466..62139c6cce 100644 --- a/modules/@angular/core/src/debug/debug_renderer.ts +++ b/modules/@angular/core/src/debug/debug_renderer.ts @@ -134,17 +134,6 @@ export class DebugDomRenderer implements Renderer { this._delegate.setElementClass(renderElement, className, isAdd); } - setElementStyles(renderElement: any, styles: {[key: string]: string}) { - var debugEl = getDebugNode(renderElement); - if (isPresent(debugEl) && debugEl instanceof DebugElement) { - var elStyles = debugEl.styles; - StringMapWrapper.forEach(styles, (value, prop) => { - elStyles[prop] = value; - }); - } - this._delegate.setElementStyles(renderElement, styles); - } - setElementStyle(renderElement: any, styleName: string, styleValue: string) { var debugEl = getDebugNode(renderElement); if (isPresent(debugEl) && debugEl instanceof DebugElement) { diff --git a/modules/@angular/core/src/render/api.ts b/modules/@angular/core/src/render/api.ts index 6d3d868618..53d11de08b 100644 --- a/modules/@angular/core/src/render/api.ts +++ b/modules/@angular/core/src/render/api.ts @@ -61,8 +61,6 @@ export abstract class Renderer { abstract setElementClass(renderElement: any, className: string, isAdd: boolean); - abstract setElementStyles(renderElement: any, styles: {[key: string]: string}); - abstract setElementStyle(renderElement: any, styleName: string, styleValue: string); abstract invokeElementMethod(renderElement: any, methodName: string, args?: any[]); diff --git a/modules/@angular/platform-browser/src/dom/dom_renderer.ts b/modules/@angular/platform-browser/src/dom/dom_renderer.ts index 1b11d4348e..de25c9bd71 100644 --- a/modules/@angular/platform-browser/src/dom/dom_renderer.ts +++ b/modules/@angular/platform-browser/src/dom/dom_renderer.ts @@ -228,11 +228,6 @@ export class DomRenderer implements Renderer { } } - setElementStyles(renderElement: any, styles: {[key: string]: string}) { - StringMapWrapper.forEach(styles, - (value, prop) => this.setElementStyle(renderElement, prop, value)); - } - setElementStyle(renderElement: any, styleName: string, styleValue: string): void { if (isPresent(styleValue)) { getDOM().setStyle(renderElement, styleName, stringify(styleValue)); diff --git a/modules/@angular/platform-browser/src/web_workers/ui/renderer.ts b/modules/@angular/platform-browser/src/web_workers/ui/renderer.ts index 0a1700ec46..f7269225dd 100644 --- a/modules/@angular/platform-browser/src/web_workers/ui/renderer.ts +++ b/modules/@angular/platform-browser/src/web_workers/ui/renderer.ts @@ -59,9 +59,6 @@ export class MessageBasedRenderer { broker.registerMethod("setElementStyle", [RenderStoreObject, RenderStoreObject, PRIMITIVE, PRIMITIVE], FunctionWrapper.bind(this._setElementStyle, this)); - broker.registerMethod("setElementStyles", - [RenderStoreObject, RenderStoreObject, PRIMITIVE], - FunctionWrapper.bind(this._setElementStyles, this)); broker.registerMethod("invokeElementMethod", [RenderStoreObject, RenderStoreObject, PRIMITIVE, PRIMITIVE], FunctionWrapper.bind(this._invokeElementMethod, this)); @@ -147,11 +144,6 @@ export class MessageBasedRenderer { renderer.setElementStyle(renderElement, styleName, styleValue); } - private _setElementStyles(renderer: Renderer, renderElement: any, - styles: {[key: string]: string}) { - renderer.setElementStyles(renderElement, styles); - } - private _invokeElementMethod(renderer: Renderer, renderElement: any, methodName: string, args: any[]) { renderer.invokeElementMethod(renderElement, methodName, args); diff --git a/modules/@angular/platform-browser/src/web_workers/worker/renderer.ts b/modules/@angular/platform-browser/src/web_workers/worker/renderer.ts index ca0fae90ee..f402fb313b 100644 --- a/modules/@angular/platform-browser/src/web_workers/worker/renderer.ts +++ b/modules/@angular/platform-browser/src/web_workers/worker/renderer.ts @@ -191,11 +191,6 @@ export class WebWorkerRenderer implements Renderer, RenderStoreObject { ]); } - setElementStyles(renderElement: any, styles: {[key: string]: string}) { - this._runOnService('setElementStyles', - [new FnArg(renderElement, RenderStoreObject), new FnArg(styles, null)]); - } - setElementStyle(renderElement: any, styleName: string, styleValue: string) { this._runOnService('setElementStyle', [ new FnArg(renderElement, RenderStoreObject), diff --git a/modules/@angular/platform-browser/test/web_workers/worker/renderer_integration_spec.ts b/modules/@angular/platform-browser/test/web_workers/worker/renderer_integration_spec.ts index 5eb51d712e..f7e9bdb492 100644 --- a/modules/@angular/platform-browser/test/web_workers/worker/renderer_integration_spec.ts +++ b/modules/@angular/platform-browser/test/web_workers/worker/renderer_integration_spec.ts @@ -156,15 +156,6 @@ export function main() { renderer.setElementStyle(workerEl, 'width', null); expect(getDOM().getStyle(el, 'width')).toEqual(''); - renderer.setElementStyles(workerEl, {'height': '999px', 'opacity': '0.5'}) - expect(getDOM().getStyle(el, 'height')) - .toEqual('999px'); - expect(getDOM().getStyle(el, 'opacity')).toEqual('0.5'); - renderer.setElementStyles(workerEl, {'height': '999px', 'opacity': null}); - expect(getDOM().getStyle(el, 'height')) - .toEqual('999px'); - expect(getDOM().getStyle(el, 'opacity')).toEqual(''); - renderer.setElementAttribute(workerEl, 'someattr', 'someValue'); expect(getDOM().getAttribute(el, 'someattr')).toEqual('someValue'); }; diff --git a/tools/public_api_guard/public_api_spec.ts b/tools/public_api_guard/public_api_spec.ts index 6111ee943f..3aa82865aa 100644 --- a/tools/public_api_guard/public_api_spec.ts +++ b/tools/public_api_guard/public_api_spec.ts @@ -457,7 +457,6 @@ const CORE = [ 'Renderer.setElementClass(renderElement:any, className:string, isAdd:boolean):any', 'Renderer.setElementProperty(renderElement:any, propertyName:string, propertyValue:any):void', 'Renderer.setElementStyle(renderElement:any, styleName:string, styleValue:string):any', - 'Renderer.setElementStyles(renderElement:any, styles:{[key:string]:string}):any', 'Renderer.setText(renderNode:any, text:string):any', 'ResolvedReflectiveBinding', 'ResolvedReflectiveFactory',