MCPcopy
hub / github.com/angular/angular / processRules

Function processRules

packages/compiler/src/shadow_css.ts:1043–1061  ·  view source on GitHub ↗
(input: string, ruleCallback: (rule: CssRule) => CssRule)

Source from the content-addressed store, hash-verified

1041}
1042
1043export function processRules(input: string, ruleCallback: (rule: CssRule) => CssRule): string {
1044 const escaped = escapeInStrings(input);
1045 const inputWithEscapedBlocks = escapeBlocks(escaped, CONTENT_PAIRS, BLOCK_PLACEHOLDER);
1046 let nextBlockIndex = 0;
1047 const escapedResult = inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m: string[]) => {
1048 const selector = m[2];
1049 let content = '';
1050 let suffix = m[4];
1051 let contentPrefix = '';
1052 if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {
1053 content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
1054 suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
1055 contentPrefix = '{';
1056 }
1057 const rule = ruleCallback(new CssRule(selector, content));
1058 return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;
1059 });
1060 return unescapeInStrings(escapedResult);
1061}
1062
1063class StringWithEscapedBlocks {
1064 constructor(

Callers 5

captureRulesFunction · 0.90
_scopeSelectorsMethod · 0.85

Calls 4

escapeInStringsFunction · 0.85
escapeBlocksFunction · 0.85
unescapeInStringsFunction · 0.85
replaceMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…