createSvgTree method

  1. @override
SvgTreeNode createSvgTree(
  1. ChantContext ctxt, [
  2. ChantLayoutElement? source
])
override

Generates a lightweight in-memory SVG-like tree.

Implementation

@override
SvgTreeNode createSvgTree(ChantContext ctxt, [ChantLayoutElement? source]) {
  final spansTree = spans
      .map(
        (span) => QuickSvg.createSvgTree(
          'tspan',
          getSpanOptions(span, ctxt, true),
          span.text,
        ),
      )
      .toList();
  final options = getSvgProps();
  final extraStyleProperties = getExtraStyleProperties(ctxt);
  options['style'] = extraStyleProperties;
  if (extraStyleProperties['class'] != null) {
    options['class'] = '${extraStyleProperties['class']} ${options['class']}';
  }
  return QuickSvg.createSvgTree('text', options, spansTree);
}