def filter.chain
gralha-svg-render@0.1.0.1 · svg.bend:5012
import gralha-svg-render@0.1.0.1/svg.bend as Svg
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
import gralha-css-style@0.1.0.1/css.bend as CSS
5012def filter.chain(+xs: List<&2, XML.Element>, +format: Raster, +source: FilterInput, +previous: FilterInput, +results: List<&2, FilterResult>, +region: Bounds, +units: Matrix, +viewport: Point, +aa: U32) -> FilterInput:
5013 match xs:
5014 case Nil{}: previous
5015 case Con{XML.Element{name, attrs, kids, txt}, rest}:
5016 +as = CSS.properties(attrs)
5017 +next = filter.primitive(name, as, kids, format, source, previous, results, region, units, viewport, aa)
5018 U.branch(FilterInput, U.prefix(name, "fe"), _ => filter.chain(rest, format, source, next, Con{FilterResult{XML.attr.get(as, "result", ""), next}, results}, region, units, viewport, aa), _ => filter.chain(rest, format, source, previous, results, region, units, viewport, aa))