angular2
Version:
Angular 2 - a web framework for modern web apps
159 lines • 5.29 kB
JavaScript
import { isPresent } from 'angular2/src/facade/lang';
export class TextAst {
constructor(value, ngContentIndex, sourceInfo) {
this.value = value;
this.ngContentIndex = ngContentIndex;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) { return visitor.visitText(this, context); }
}
export class BoundTextAst {
constructor(value, ngContentIndex, sourceInfo) {
this.value = value;
this.ngContentIndex = ngContentIndex;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitBoundText(this, context);
}
}
export class AttrAst {
constructor(name, value, sourceInfo) {
this.name = name;
this.value = value;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) { return visitor.visitAttr(this, context); }
}
export class BoundElementPropertyAst {
constructor(name, type, value, unit, sourceInfo) {
this.name = name;
this.type = type;
this.value = value;
this.unit = unit;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitElementProperty(this, context);
}
}
export class BoundEventAst {
constructor(name, target, handler, sourceInfo) {
this.name = name;
this.target = target;
this.handler = handler;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitEvent(this, context);
}
get fullName() {
if (isPresent(this.target)) {
return `${this.target}:${this.name}`;
}
else {
return this.name;
}
}
}
export class VariableAst {
constructor(name, value, sourceInfo) {
this.name = name;
this.value = value;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitVariable(this, context);
}
}
export class ElementAst {
constructor(name, attrs, inputs, outputs, exportAsVars, directives, children, ngContentIndex, sourceInfo) {
this.name = name;
this.attrs = attrs;
this.inputs = inputs;
this.outputs = outputs;
this.exportAsVars = exportAsVars;
this.directives = directives;
this.children = children;
this.ngContentIndex = ngContentIndex;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitElement(this, context);
}
isBound() {
return (this.inputs.length > 0 || this.outputs.length > 0 || this.exportAsVars.length > 0 ||
this.directives.length > 0);
}
getComponent() {
return this.directives.length > 0 && this.directives[0].directive.isComponent ?
this.directives[0].directive :
null;
}
}
export class EmbeddedTemplateAst {
constructor(attrs, outputs, vars, directives, children, ngContentIndex, sourceInfo) {
this.attrs = attrs;
this.outputs = outputs;
this.vars = vars;
this.directives = directives;
this.children = children;
this.ngContentIndex = ngContentIndex;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitEmbeddedTemplate(this, context);
}
}
export class BoundDirectivePropertyAst {
constructor(directiveName, templateName, value, sourceInfo) {
this.directiveName = directiveName;
this.templateName = templateName;
this.value = value;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitDirectiveProperty(this, context);
}
}
export class DirectiveAst {
constructor(directive, inputs, hostProperties, hostEvents, exportAsVars, sourceInfo) {
this.directive = directive;
this.inputs = inputs;
this.hostProperties = hostProperties;
this.hostEvents = hostEvents;
this.exportAsVars = exportAsVars;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitDirective(this, context);
}
}
export class NgContentAst {
constructor(index, ngContentIndex, sourceInfo) {
this.index = index;
this.ngContentIndex = ngContentIndex;
this.sourceInfo = sourceInfo;
}
visit(visitor, context) {
return visitor.visitNgContent(this, context);
}
}
export var PropertyBindingType;
(function (PropertyBindingType) {
PropertyBindingType[PropertyBindingType["Property"] = 0] = "Property";
PropertyBindingType[PropertyBindingType["Attribute"] = 1] = "Attribute";
PropertyBindingType[PropertyBindingType["Class"] = 2] = "Class";
PropertyBindingType[PropertyBindingType["Style"] = 3] = "Style";
})(PropertyBindingType || (PropertyBindingType = {}));
export function templateVisitAll(visitor, asts, context = null) {
var result = [];
asts.forEach(ast => {
var astResult = ast.visit(visitor, context);
if (isPresent(astResult)) {
result.push(astResult);
}
});
return result;
}
//# sourceMappingURL=template_ast.js.map