Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
createElementCssSelector(element) :
createElementCssSelector(new compiler_1.Element(elementName, [], [], null, null, null));
var matcher = new compiler_1.SelectorMatcher();
matcher.addSelectables(selectors);
matcher.match(elementSelector, function (selector) {
var directive = selectorMap.get(selector);
if (directive) {
attrs_1.push.apply(attrs_1, tslib_1.__spread(Object.keys(directive.inputs).map(function (name) { return ({ name: name, input: true }); })));
attrs_1.push.apply(attrs_1, tslib_1.__spread(Object.keys(directive.outputs).map(function (name) { return ({ name: name, output: true }); })));
}
});
// If a name shows up twice, fold it into a single value.
attrs_1 = foldAttrs(attrs_1);
// Now expand them back out to ensure that input/output shows up as well as input and
// output.
attributes.push.apply(attributes, tslib_1.__spread(utils_1.flatten(attrs_1.map(expandedAttr))));
}
return attributes;
}
function attributeValueCompletions(info, position, attr) {
// Add html properties
var htmlProperties = html_info_1.propertyNames(elementName);
if (htmlProperties) {
attributes.push.apply(attributes, tslib_1.__spread(htmlProperties.map(function (name) { return ({ name: name, input: true }); })));
}
// Add html events
var htmlEvents = html_info_1.eventNames(elementName);
if (htmlEvents) {
attributes.push.apply(attributes, tslib_1.__spread(htmlEvents.map(function (name) { return ({ name: name, output: true }); })));
}
var _a = utils_1.getSelectors(info), selectors = _a.selectors, selectorMap = _a.map;
if (selectors && selectors.length) {
// All the attributes that are selectable should be shown.
var applicableSelectors = selectors.filter(function (selector) { return !selector.element || selector.element == elementName; });
var selectorAndAttributeNames = applicableSelectors.map(function (selector) { return ({ selector: selector, attrs: selector.attrs.filter(function (a) { return !!a; }) }); });
var attrs_1 = utils_1.flatten(selectorAndAttributeNames.map(function (selectorAndAttr) {
var directive = selectorMap.get(selectorAndAttr.selector);
var result = selectorAndAttr.attrs.map(function (name) { return ({ name: name, input: name in directive.inputs, output: name in directive.outputs }); });
return result;
}));
// Add template attribute if a directive contains a template reference
selectorAndAttributeNames.forEach(function (selectorAndAttr) {
var selector = selectorAndAttr.selector;
var directive = selectorMap.get(selector);
if (directive && utils_1.hasTemplateReference(directive.type) && selector.attrs.length &&
selector.attrs[0]) {
attrs_1.push({ name: selector.attrs[0], template: true });
}
});
// All input and output properties of the matching directives should be added.
var elementSelector = element ?
createElementCssSelector(element) :