Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var querySlot = this.allocateDataSlot();
var predicate = util_2.getQueryPredicate(query, this.constantPool);
var args = [
o.literal(querySlot, o.INFERRED_TYPE),
predicate,
o.literal(query.descendants, o.INFERRED_TYPE),
];
if (query.read) {
args.push(query.read);
}
this.instruction.apply(this, tslib_1.__spread([this._creationCode, null, r3_identifiers_1.Identifiers.query], args));
// (r3.qR(tmp = r3.ɵld(0)) && (ctx.someDir = tmp));
var temporary = this._temporary();
var getQueryList = o.importExpr(r3_identifiers_1.Identifiers.load).callFn([o.literal(querySlot)]);
var refresh = o.importExpr(r3_identifiers_1.Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]);
var updateDirective = o.variable(util_2.CONTEXT_NAME)
.prop(query.propertyName)
.set(query.first ? temporary.prop('first') : temporary);
this._bindingCode.push(refresh.and(updateDirective).toStmt());
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_d = _b.return)) _d.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
t.visitAll(this, nodes);
if (this._pureFunctionSlots > 0) {
this.instruction(this._creationCode, null, r3_identifiers_1.Identifiers.reserveSlots, o.literal(this._pureFunctionSlots));
}
type: meta.type,
deps: meta.deps,
injectFn: r3_identifiers_1.Identifiers.directiveInject,
});
definitionMap.set('factory', result.factory);
definitionMap.set('contentQueries', createContentQueriesFunction(meta, constantPool));
definitionMap.set('contentQueriesRefresh', createContentQueriesRefreshFunction(meta));
// Initialize hostVarsCount to number of bound host properties (interpolations illegal),
// except 'style' and 'class' properties, since they should *not* allocate host var slots
var hostVarsCount = Object.keys(meta.host.properties)
.filter(function (name) {
var prefix = getStylingPrefix(name);
return prefix !== 'style' && prefix !== 'class';
})
.length;
var elVarExp = o.variable('elIndex');
var contextVarExp = o.variable(util_3.CONTEXT_NAME);
var styleBuilder = new styling_builder_1.StylingBuilder(elVarExp, contextVarExp);
var allOtherAttributes = {};
var attrNames = Object.getOwnPropertyNames(meta.host.attributes);
for (var i = 0; i < attrNames.length; i++) {
var attr = attrNames[i];
var value = meta.host.attributes[attr];
switch (attr) {
// style attributes are handled in the styling context
case 'style':
styleBuilder.registerStyleAttr(value);
break;
// class attributes are handled in the styling context
case 'class':
styleBuilder.registerClassAttr(value);
break;
template.attributes.forEach(function (a) {
attributeNames.push(util_2.asLiteral(a.name), util_2.asLiteral(''));
attributeMap[a.name] = a.value;
});
// Match directives on template attributes
if (this.directiveMatcher) {
var selector = createCssSelector('ng-template', attributeMap);
this.directiveMatcher.match(selector, function (cssSelector, staticType) { _this.directives.add(staticType); });
}
if (attributeNames.length) {
parameters.push(this.constantPool.getConstLiteral(o.literalArr(attributeNames), true));
}
// e.g. C(1, C1Template)
this.instruction.apply(this, tslib_1.__spread([this._creationCode, template.sourceSpan, r3_identifiers_1.Identifiers.containerCreate], util_2.trimTrailingNulls(parameters)));
// e.g. p(1, 'forOf', ɵb(ctx.items));
var context = o.variable(util_2.CONTEXT_NAME);
template.inputs.forEach(function (input) {
var convertedBinding = _this.convertPropertyBinding(context, input.value);
_this.instruction(_this._bindingCode, template.sourceSpan, r3_identifiers_1.Identifiers.elementProperty, o.literal(templateIndex), o.literal(input.name), convertedBinding);
});
// Create the template function
var templateVisitor = new TemplateDefinitionBuilder(this.constantPool, templateContext, this._bindingScope, this.level + 1, contextName, templateName, [], this.directiveMatcher, this.directives, this.pipeTypeByName, this.pipes);
var templateFunctionExpr = templateVisitor.buildTemplateFunction(template.children, template.variables);
this._postfixCode.push(templateFunctionExpr.toDeclStmt(templateName, null));
};
TemplateDefinitionBuilder.prototype.visitBoundText = function (text) {
function compileFactoryFunction(meta) {
var t = o.variable('t');
var statements = [];
// The type to instantiate via constructor invocation. If there is no delegated factory, meaning
// this type is always created by constructor invocation, then this is the type-to-create
// parameter provided by the user (t) if specified, or the current type if not. If there is a
// delegated factory (which is used to create the current type) then this is only the type-to-
// create parameter (t).
var typeForCtor = !isDelegatedMetadata(meta) ? new o.BinaryOperatorExpr(o.BinaryOperator.Or, t, meta.type) : t;
var ctorExpr = null;
if (meta.deps !== null) {
// There is a constructor (either explicitly or implicitly defined).
ctorExpr = new o.InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.injectFn));
}
else {
var baseFactory = o.variable("\u0275" + meta.name + "_BaseFactory");
var getInheritedFactory = o.importExpr(r3_identifiers_1.Identifiers.getInheritedFactory);
var baseFactoryStmt = baseFactory.set(getInheritedFactory.callFn([meta.type])).toDeclStmt(o.INFERRED_TYPE, [
o.StmtModifier.Exported, o.StmtModifier.Final
]);
statements.push(baseFactoryStmt);
// There is no constructor, use the base class' factory to construct typeForCtor.
ctorExpr = baseFactory.callFn([typeForCtor]);
}
var ctorExprFinal = ctorExpr;
var body = [];
var retExpr = null;
function makeConditionalFactory(nonCtorExpr) {
var r = o.variable('r');
body.push(r.set(o.NULL_EXPR).toDeclStmt());
body.push(o.ifStmt(t, [r.set(ctorExprFinal).toStmt()], [r.set(nonCtorExpr).toStmt()]));
return r;
TemplateDefinitionBuilder.prototype.visitTemplate = function (template) {
var _this = this;
var templateIndex = this.allocateDataSlot();
var elName = '';
if (template.children.length === 1 && template.children[0] instanceof t.Element) {
// When the template as a single child, derive the context name from the tag
elName = compile_metadata_1.sanitizeIdentifier(template.children[0].name);
}
var contextName = elName ? this.contextName + "_" + elName : '';
var templateName = contextName ? contextName + "_Template_" + templateIndex : "Template_" + templateIndex;
var templateContext = "ctx" + this.level;
var parameters = [
o.literal(templateIndex),
o.variable(templateName),
o.TYPED_NULL_EXPR,
];
var attributeNames = [];
var attributeMap = {};
template.attributes.forEach(function (a) {
attributeNames.push(util_2.asLiteral(a.name), util_2.asLiteral(''));
attributeMap[a.name] = a.value;
});
// Match directives on template attributes
if (this.directiveMatcher) {
var selector = createCssSelector('ng-template', attributeMap);
this.directiveMatcher.match(selector, function (cssSelector, staticType) { _this.directives.add(staticType); });
}
if (attributeNames.length) {
parameters.push(this.constantPool.getConstLiteral(o.literalArr(attributeNames), true));
}
// reference to a constant.
return literal;
}
var key = this.keyOf(literal);
var fixup = this.literals.get(key);
var newValue = false;
if (!fixup) {
fixup = new FixupExpression(literal);
this.literals.set(key, fixup);
newValue = true;
}
if ((!newValue && !fixup.shared) || (newValue && forceShared)) {
// Replace the expression with a variable
var name_1 = this.freshName();
this.statements.push(o.variable(name_1).set(literal).toDeclStmt(o.INFERRED_TYPE, [o.StmtModifier.Final]));
fixup.fixup(o.variable(name_1));
}
return fixup;
};
ConstantPool.prototype.getDeferredTranslationConst = function (suffix) {
function compileFactoryFunction(meta) {
var t = o.variable('t');
var statements = [];
// The type to instantiate via constructor invocation. If there is no delegated factory, meaning
// this type is always created by constructor invocation, then this is the type-to-create
// parameter provided by the user (t) if specified, or the current type if not. If there is a
// delegated factory (which is used to create the current type) then this is only the type-to-
// create parameter (t).
var typeForCtor = !isDelegatedMetadata(meta) ? new o.BinaryOperatorExpr(o.BinaryOperator.Or, t, meta.type) : t;
var ctorExpr = null;
if (meta.deps !== null) {
// There is a constructor (either explicitly or implicitly defined).
ctorExpr = new o.InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.injectFn));
}
else {
var baseFactory = o.variable("\u0275" + meta.name + "_BaseFactory");
var getInheritedFactory = o.importExpr(r3_identifiers_1.Identifiers.getInheritedFactory);
var baseFactoryStmt = baseFactory.set(getInheritedFactory.callFn([meta.type])).toDeclStmt(o.INFERRED_TYPE, [
ConstantPool.prototype.getDefinition = function (type, kind, ctx, forceShared) {
if (forceShared === void 0) { forceShared = false; }
var definitions = this.definitionsOf(kind);
var fixup = definitions.get(type);
var newValue = false;
if (!fixup) {
var property = this.propertyNameOf(kind);
fixup = new FixupExpression(ctx.importExpr(type).prop(property));
definitions.set(type, fixup);
newValue = true;
}
if ((!newValue && !fixup.shared) || (newValue && forceShared)) {
var name_2 = this.freshName();
this.statements.push(o.variable(name_2).set(fixup.resolved).toDeclStmt(o.INFERRED_TYPE, [o.StmtModifier.Final]));
fixup.fixup(o.variable(name_2));
}
return fixup;
};
ConstantPool.prototype.getLiteralFactory = function (literal) {
this.updates.forEach(function (expression) {
var _a = _this.preprocessUpdateExpression(expression), sourceSpan = _a.sourceSpan, context = _a.context, value = _a.value;
var bindingId = "" + bindingCount++;
var nameResolver = context === _this.component ? _this : defaultResolver;
var _b = expression_converter_1.convertPropertyBinding(nameResolver, o.variable(_this.getOutputVar(context)), value, bindingId, expression_converter_1.BindingForm.General), stmts = _b.stmts, currValExpr = _b.currValExpr;
stmts.push(new o.ExpressionStatement(currValExpr));
viewStmts.push.apply(viewStmts, tslib_1.__spread(stmts.map(function (stmt) { return o.applySourceSpanToStatementIfNeeded(stmt, sourceSpan); })));
});
this.actions.forEach(function (_a) {
NgModuleCompiler.prototype._createNgModuleFactory = function (ctx, reference, value) {
var ngModuleFactoryVar = compile_metadata_1.identifierName({ reference: reference }) + "NgFactory";
var ngModuleFactoryStmt = o.variable(ngModuleFactoryVar)
.set(value)
.toDeclStmt(o.importType(identifiers_1.Identifiers.NgModuleFactory, [o.expressionType(ctx.importExpr(reference))], [o.TypeModifier.Const]), [o.StmtModifier.Final, o.StmtModifier.Exported]);
ctx.statements.push(ngModuleFactoryStmt);
};
return NgModuleCompiler;