MCPcopy Create free account
hub / github.com/angular/angular / createCssSelectorFromNode

Function createCssSelectorFromNode

packages/compiler/src/render3/view/util.ts:170–190  ·  view source on GitHub ↗
(node: t.Element | t.Template)

Source from the content-addressed store, hash-verified

168 * Creates a `CssSelector` from an AST node.
169 */
170export function createCssSelectorFromNode(node: t.Element | t.Template): CssSelector {
171 const elementName = node instanceof t.Element ? node.name : 'ng-template';
172 const attributes = getAttrsForDirectiveMatching(node);
173 const cssSelector = new CssSelector();
174 const elementNameNoNs = splitNsName(elementName)[1];
175
176 cssSelector.setElement(elementNameNoNs);
177
178 Object.getOwnPropertyNames(attributes).forEach((name) => {
179 const nameNoNs = splitNsName(name)[1];
180 const value = attributes[name];
181
182 cssSelector.addAttribute(nameNoNs, value);
183 if (name.toLowerCase() === 'class') {
184 const classes = value.trim().split(/\s+/);
185 classes.forEach((className) => cssSelector.addClassName(className));
186 }
187 });
188
189 return cssSelector;
190}
191
192/**
193 * Extract a map of properties to values for a given element or template node, which can be used

Callers 2

executeMethod · 0.90

Calls 6

setElementMethod · 0.95
addAttributeMethod · 0.95
addClassNameMethod · 0.95
splitNsNameFunction · 0.90
forEachMethod · 0.45

Tested by

no test coverage detected