feat: parse CSS contain values in geometry normalization
- Add CONTAIN_MAP with bitfield flags matching CDP extractor schema (layout=1, paint=2, size=4, style=8, strict=15, content=7, inline-size=16) - Parse space-separated contain keywords in normalizeStyles() - Replace containFlags[i]=0 TODO with actual value lookup - Unknown contain keywords map to 0 gracefully
This commit is contained in:
@@ -322,6 +322,16 @@ const VISIBILITY_MAP: Record<string, VisibilityValue> = {
|
|||||||
collapse: VisibilityValue.Collapse,
|
collapse: VisibilityValue.Collapse,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CONTAIN_MAP: Record<string, number> = {
|
||||||
|
none: 0,
|
||||||
|
layout: 1,
|
||||||
|
paint: 2,
|
||||||
|
size: 4,
|
||||||
|
style: 8,
|
||||||
|
strict: 15,
|
||||||
|
content: 7,
|
||||||
|
'inline-size': 16,
|
||||||
|
}
|
||||||
const CLIP_KIND_MAP: Record<string, ClipKind> = {
|
const CLIP_KIND_MAP: Record<string, ClipKind> = {
|
||||||
overflow: ClipKind.Overflow,
|
overflow: ClipKind.Overflow,
|
||||||
clipPath: ClipKind.ClipPath,
|
clipPath: ClipKind.ClipPath,
|
||||||
@@ -648,7 +658,11 @@ export function normalizeStyles(raw: RawStyle[], strings: StringTable): Styles {
|
|||||||
overflowY[i] = OVERFLOW_MAP[s.overflowY] ?? OverflowValue.Visible
|
overflowY[i] = OVERFLOW_MAP[s.overflowY] ?? OverflowValue.Visible
|
||||||
opacity[i] = s.opacity
|
opacity[i] = s.opacity
|
||||||
visibility[i] = VISIBILITY_MAP[s.visibility] ?? VisibilityValue.Visible
|
visibility[i] = VISIBILITY_MAP[s.visibility] ?? VisibilityValue.Visible
|
||||||
containFlags[i] = 0 // TODO: parse contain values
|
if (s.contain) {
|
||||||
|
for (const part of s.contain.split(/\s+/)) {
|
||||||
|
containFlags[i] |= CONTAIN_MAP[part.toLowerCase()] ?? 0
|
||||||
|
}
|
||||||
|
}
|
||||||
pointerEvents[i] = internString(strings, s.pointerEvents)
|
pointerEvents[i] = internString(strings, s.pointerEvents)
|
||||||
lineHeight[i] = s.lineHeight
|
lineHeight[i] = s.lineHeight
|
||||||
fontFamilyStringId[i] = internString(strings, s.fontFamily)
|
fontFamilyStringId[i] = internString(strings, s.fontFamily)
|
||||||
|
|||||||
Reference in New Issue
Block a user