def css.tree

gralha-css-style@0.1.0.1 · css.bend:451

import gralha-css-style@0.1.0.1/css.bend as Css
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-xml-doc@0.1.0.1/xml.bend as XML

451def css.tree(+xs: List<&2, XML.Element>, +rules: List<&2, CSSRule>, +parents: List<&2, CSSContext>, +previous: List<&2, CSSContext>, +index: U32, +count: U32) -> List<&2, XML.Element>:
452  match xs:
453    case Nil{}: Nil{}
454    case Con{XML.Element{n, as, kids, txt}, rest}:
455      +tagname = n
456      +children = kids
457      +node = {XML.Element{tagname, as, children, txt} : XML.Element}
458      +context = {CSSContext{node, parents, previous, index, count} : CSSContext}
459      U.branch(List<&2, XML.Element>, U.string.equal(tagname, "#text"),
460        _ => Con{node, css.tree(rest, rules, parents, previous, index, count)},
461        _ => Con{XML.Element{tagname, css.styled(context, rules), css.tree(children, rules, Con{context, parents}, Nil{}, 1, css.element.count(children)), txt},
462          css.tree(rest, rules, parents, Con{context, previous}, U32.inc(index), count)})

Uses (10)

Used by (2)