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

Function processRules

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

Source from the content-addressed store, hash-verified

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