refactor(ivy): code simplification (#22082)

PR Close #22082
This commit is contained in:
Victor Berchet 2018-02-07 22:57:11 -08:00 committed by Miško Hevery
parent 61341b2791
commit 62e7b9da1e

View File

@ -506,11 +506,11 @@ export function createTView(): TView {
function setUpAttributes(native: RElement, attrs: string[]): void { function setUpAttributes(native: RElement, attrs: string[]): void {
ngDevMode && assertEqual(attrs.length % 2, 0, 'attrs.length % 2'); ngDevMode && assertEqual(attrs.length % 2, 0, 'attrs.length % 2');
const isProceduralRenderer = (renderer as ProceduralRenderer3).setAttribute;
const isProc = isProceduralRenderer(renderer);
for (let i = 0; i < attrs.length; i += 2) { for (let i = 0; i < attrs.length; i += 2) {
isProceduralRenderer ? isProc ? (renderer as ProceduralRenderer3).setAttribute(native, attrs[i], attrs[i | 1]) :
(renderer as ProceduralRenderer3).setAttribute !(native, attrs[i], attrs[i | 1]) : native.setAttribute(attrs[i], attrs[i | 1]);
native.setAttribute(attrs[i], attrs[i | 1]);
} }
} }
@ -530,9 +530,9 @@ export function locateHostElement(
rendererFactory = factory; rendererFactory = factory;
const defaultRenderer = factory.createRenderer(null, null); const defaultRenderer = factory.createRenderer(null, null);
const rNode = typeof elementOrSelector === 'string' ? const rNode = typeof elementOrSelector === 'string' ?
((defaultRenderer as ProceduralRenderer3).selectRootElement ? (isProceduralRenderer(defaultRenderer) ?
(defaultRenderer as ProceduralRenderer3).selectRootElement(elementOrSelector) : defaultRenderer.selectRootElement(elementOrSelector) :
(defaultRenderer as ObjectOrientedRenderer3).querySelector !(elementOrSelector)) : defaultRenderer.querySelector(elementOrSelector)) :
elementOrSelector; elementOrSelector;
if (ngDevMode && !rNode) { if (ngDevMode && !rNode) {
if (typeof elementOrSelector === 'string') { if (typeof elementOrSelector === 'string') {
@ -634,13 +634,11 @@ export function elementAttribute(index: number, attrName: string, value: any): v
if (value !== NO_CHANGE) { if (value !== NO_CHANGE) {
const element = data[index] as LElementNode; const element = data[index] as LElementNode;
if (value == null) { if (value == null) {
(renderer as ProceduralRenderer3).removeAttribute ? isProceduralRenderer(renderer) ? renderer.removeAttribute(element.native, attrName) :
(renderer as ProceduralRenderer3).removeAttribute(element.native, attrName) : element.native.removeAttribute(attrName);
element.native.removeAttribute(attrName);
} else { } else {
(renderer as ProceduralRenderer3).setAttribute ? isProceduralRenderer(renderer) ?
(renderer as ProceduralRenderer3) renderer.setAttribute(element.native, attrName, stringify(value)) :
.setAttribute(element.native, attrName, stringify(value)) :
element.native.setAttribute(attrName, stringify(value)); element.native.setAttribute(attrName, stringify(value));
} }
} }
@ -676,10 +674,9 @@ export function elementProperty<T>(index: number, propName: string, value: T | N
setInputsForProperty(dataValue, value); setInputsForProperty(dataValue, value);
} else { } else {
const native = node.native; const native = node.native;
(renderer as ProceduralRenderer3).setProperty ? isProceduralRenderer(renderer) ? renderer.setProperty(native, propName, value) :
(renderer as ProceduralRenderer3).setProperty(native, propName, value) : (native.setProperty ? native.setProperty(propName, value) :
native.setProperty ? native.setProperty(propName, value) : (native as any)[propName] = value);
(native as any)[propName] = value;
} }
} }
@ -764,14 +761,12 @@ export function elementClass<T>(index: number, className: string, value: T | NO_
if (value !== NO_CHANGE) { if (value !== NO_CHANGE) {
const lElement = data[index] as LElementNode; const lElement = data[index] as LElementNode;
if (value) { if (value) {
(renderer as ProceduralRenderer3).addClass ? isProceduralRenderer(renderer) ? renderer.addClass(lElement.native, className) :
(renderer as ProceduralRenderer3).addClass(lElement.native, className) : lElement.native.classList.add(className);
lElement.native.classList.add(className);
} else { } else {
(renderer as ProceduralRenderer3).removeClass ? isProceduralRenderer(renderer) ? renderer.removeClass(lElement.native, className) :
(renderer as ProceduralRenderer3).removeClass(lElement.native, className) : lElement.native.classList.remove(className);
lElement.native.classList.remove(className);
} }
} }
} }
@ -790,18 +785,14 @@ export function elementStyle<T>(
if (value !== NO_CHANGE) { if (value !== NO_CHANGE) {
const lElement = data[index] as LElementNode; const lElement = data[index] as LElementNode;
if (value == null) { if (value == null) {
(renderer as ProceduralRenderer3).removeStyle ? isProceduralRenderer(renderer) ?
(renderer as ProceduralRenderer3) renderer.removeStyle(lElement.native, styleName, RendererStyleFlags3.DashCase) :
.removeStyle(lElement.native, styleName, RendererStyleFlags3.DashCase) :
lElement.native.style.removeProperty(styleName); lElement.native.style.removeProperty(styleName);
} else { } else {
(renderer as ProceduralRenderer3).setStyle ? const strValue = suffix ? stringify(value) + suffix : stringify(value);
(renderer as ProceduralRenderer3) isProceduralRenderer(renderer) ?
.setStyle( renderer.setStyle(lElement.native, styleName, strValue, RendererStyleFlags3.DashCase) :
lElement.native, styleName, suffix ? stringify(value) + suffix : stringify(value), lElement.native.style.setProperty(styleName, strValue);
RendererStyleFlags3.DashCase) :
lElement.native.style.setProperty(
styleName, suffix ? stringify(value) + suffix : stringify(value));
} }
} }
} }
@ -821,9 +812,8 @@ export function elementStyle<T>(
export function text(index: number, value?: any): void { export function text(index: number, value?: any): void {
ngDevMode && assertEqual(currentView.bindingStartIndex, null, 'bindingStartIndex'); ngDevMode && assertEqual(currentView.bindingStartIndex, null, 'bindingStartIndex');
const textNode = value != null ? const textNode = value != null ?
((renderer as ProceduralRenderer3).createText ? (isProceduralRenderer(renderer) ? renderer.createText(stringify(value)) :
(renderer as ProceduralRenderer3).createText(stringify(value)) : renderer.createTextNode(stringify(value))) :
(renderer as ObjectOrientedRenderer3).createTextNode !(stringify(value))) :
null; null;
const node = createLNode(index, LNodeFlags.Element, textNode); const node = createLNode(index, LNodeFlags.Element, textNode);
// Text nodes are self closing. // Text nodes are self closing.
@ -845,15 +835,13 @@ export function textBinding<T>(index: number, value: T | NO_CHANGE): void {
if (existingNode.native) { if (existingNode.native) {
// If DOM node exists and value changed, update textContent // If DOM node exists and value changed, update textContent
value !== NO_CHANGE && value !== NO_CHANGE &&
((renderer as ProceduralRenderer3).setValue ? (isProceduralRenderer(renderer) ? renderer.setValue(existingNode.native, stringify(value)) :
(renderer as ProceduralRenderer3).setValue(existingNode.native, stringify(value)) : existingNode.native.textContent = stringify(value));
existingNode.native.textContent = stringify(value));
} else { } else {
// Node was created but DOM node creation was delayed. Create and append now. // Node was created but DOM node creation was delayed. Create and append now.
existingNode.native = existingNode.native = isProceduralRenderer(renderer) ?
((renderer as ProceduralRenderer3).createText ? renderer.createText(stringify(value)) :
(renderer as ProceduralRenderer3).createText(stringify(value)) : renderer.createTextNode(stringify(value));
(renderer as ObjectOrientedRenderer3).createTextNode !(stringify(value)));
insertChild(existingNode, currentView); insertChild(existingNode, currentView);
} }
} }