Ir al contenido

API: render

@mosaicoo/svg-engine/render convierte un árbol de nodos en SVG real en pantalla. Es read-only — sin selección, edición ni interacción (eso vive en svg-engine/edit) — lo que lo hace ideal como visor embebible en una app de terceros. Headless: sin Angular Material/CDK.

import { SvgeRenderer, projectDocumentToRenderer } from '@mosaicoo/svg-engine/render';
APIDescripciónÚsalo para
SvgeRendererEl componente <svge-renderer>. Inputs: tree (SvgNode obligatorio), viewBox, width, height, ariaLabel, defs. Expone svgElement() para acceder al <svg> renderizado.Mostrar un documento (o cualquier subárbol) como visor embebible de solo lectura.
projectDocumentToRenderer(doc)Devuelve { tree, viewBox } de un SvgDocument, listo para enlazar al renderer.Conectar un SvgDocument al <svge-renderer> en un solo paso.
<svge-renderer [tree]="proj().tree" [viewBox]="proj().viewBox" [defs]="doc().defs ?? null" />
APIDescripción
ViewportServiceEstado reactivo de pan/zoom sobre una content box base, como signals de Angular: contentBox, zoom, panX, panY, minZoom, maxZoom, viewBox, fitScale, displayScale. Métodos setContentBox(), zoomIn(), zoomOut(), pan().

viewBox es la ventana visible derivada de contentBox/zoom/pan; usa displayScale (píxeles CSS por unidad de documento) cuando necesites la escala física 1:1 en pantalla, p. ej. para mostrar el porcentaje de zoom.

APIDescripciónÚsalo para
NodeRendererRegistryRegistry de componentes de renderizado personalizados, indexados por el type del nodo: register(type, component), unregister(type), resolve(type), registeredTypes(). Los 10 tipos integrados se despachan directamente; este es el punto de extensión para tipos nuevos.Renderizar tipos de nodo personalizados introducidos por un plugin.
APIDescripción
screenToDoc(svg, clientX, clientY)Proyecta un píxel de pantalla al espacio de usuario del documento invirtiendo el getScreenCTM() en vivo (maneja bien SSR/jsdom/CTM ausente). Devuelve un Point o null.
renderTransformAttr(transform)Serializa un Transform para el atributo transform de SVG (p. ej. matrix(1 0 0 1 10 20)); devuelve null en la identidad.