Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function attributeValueCompletions(info, position, attr) {
var path = utils_1.findTemplateAstAt(info.templateAst, position);
var mostSpecific = path.tail;
var dinfo = utils_1.diagnosticInfoFromTemplateInfo(info);
if (mostSpecific) {
var visitor = new ExpressionVisitor(info, position, attr, function () { return language_services_1.getExpressionScope(dinfo, path, false); });
mostSpecific.visit(visitor, null);
if (!visitor.result || !visitor.result.length) {
// Try allwoing widening the path
var widerPath_1 = utils_1.findTemplateAstAt(info.templateAst, position, /* allowWidening */ true);
if (widerPath_1.tail) {
var widerVisitor = new ExpressionVisitor(info, position, attr, function () { return language_services_1.getExpressionScope(dinfo, widerPath_1, false); });
widerPath_1.tail.visit(widerVisitor, null);
return widerVisitor.result;
}
}
return visitor.result;
}
}
function elementCompletions(info, path) {
var visitor = new ExpressionVisitor(info, position, undefined, function () { return language_services_1.getExpressionScope(utils_1.diagnosticInfoFromTemplateInfo(info), templatePath, false); });
mostSpecific.visit(visitor, null);
var attributeValueSymbol_1 = function (ast, inEvent) {
if (inEvent === void 0) { inEvent = false; }
var attribute = findAttribute(info);
if (attribute) {
if (utils_1.inSpan(templatePosition, utils_1.spanOf(attribute.valueSpan))) {
var dinfo = utils_1.diagnosticInfoFromTemplateInfo(info);
var scope = language_services_1.getExpressionScope(dinfo, path, inEvent);
if (attribute.valueSpan) {
var expressionOffset = attribute.valueSpan.start.offset + 1;
var result = expressions_1.getExpressionSymbol(scope, ast, templatePosition - expressionOffset, info.template.query);
if (result) {
symbol_1 = result.symbol;
span_1 = utils_1.offsetSpan(result.span, expressionOffset);
}
}
return true;
}
}
return false;
};
path.tail.visit({