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

Function processRules

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

Source from the content-addressed store, hash-verified

1073}
1074
1075export function processRules(input: string, ruleCallback: (rule: CssRule) => CssRule): string {
1076 const escaped = escapeInStrings(input);
1077 const inputWithEscapedBlocks = escapeBlocks(escaped, CONTENT_PAIRS, BLOCK_PLACEHOLDER);
1078 let nextBlockIndex = 0;
1079 const escapedResult = inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m: string[]) => {
1080 const selector = m[2];
1081 let content = '';
1082 let suffix = m[4];
1083 let contentPrefix = '';
1084 if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {
1085 content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
1086 suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
1087 contentPrefix = '{';
1088 }
1089 const rule = ruleCallback(new CssRule(selector, content));
1090 return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;
1091 });
1092 return unescapeInStrings(escapedResult);
1093}
1094
1095class StringWithEscapedBlocks {
1096 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