# MindFusionDoc Documentation Map This is a unified documentation resource optimized for LLMs. The high-level guides, architectural overviews, and tutorials are inlined directly below in Section 1. All class references are merged into single files per class/struct and linked in Section 2. # Section 1: High-Level Guides and Overviews ## Untitled Topic -1 ## Introduction MindFusion.Diagramming for JavaScript (JsDiagram for short) is a flow diagramming class library that can be used to display and edit graphs and diagrams on a web page. It is implemented entirely in JavaScript and renders graphics objects using the HTML 5 Canvas element. JsDiagram is written in modern JavaScript as a set of ES6 modules, and transpiled to also provide support for CommonJS, UMD and ES5. For Canvas support and heavy-duty geometric and layout calculations done in JavaScript, JsDiagram requires latest-generation browsers. JsDiagram can give graphical representation to: - Workflow processes - Class relationships - Graphs and networks - Entity-relationship / database diagrams - IVR systems - Industrial automation processes - Genealogy trees - Algorithms and flowcharts - Organizational charts - Classification hierarchies - And much more The library provides intuitive user-interaction model for creating or editing diagrams. In addition, its programmatic interface places at your disposal many useful functions, ranging from event handling and JSON serialization to link-routing and automatic layout algorithms. The control has been tested with the most popular modern browsers on desktop and mobile systems, and is used by companies from all around the world to create applications for various web-development platforms. ## General Information ### The JsDiagram Component - Includes ES6, CommonJs and UMD modules - Redistribution is royalty free - Can be purchased with source code - Is written in JavaScript - Draws via the HTML5 Canvas element ### User Interaction - Several user interaction modes - Scrolling and zooming - Copy and paste support - Panning - Automatic scrolling while dragging items with the mouse - Magnification - Alignment to grid - Multiple selection - Tool-tips - Docking points can be defined for nodes - Undo / redo support - Links can auto-snap to nearest node ### Programming - Model / view architecture - Programmatic access to the diagram elements - Rich event set - Numerous properties for customizing appearance and behavior - Numerous utility methods - Builder classes for fluent API ### Diagram Elements - More than 100 predefined node shapes - Rotation of shapes at arbitrary angles - Container nodes - Tables with unlimited number of rows and columns - Table cells can span several columns and rows - Display SVG drawings in nodes - Links can comprise multiple segments - Link segments can be straight lines or curves - Display multiple labels per link - Support for custom node and link types - Video nodes - Display hierarchical data in TreeView nodes - Host HTML contents in nodes ### Automatic Layout - Layered graph layout - Spring-Embedder graph layout - Fractal tree layout - Directional tree layout - Radial tree layout - Topological ordering layout - Flowchart layout - Orthogonal graph layout - Automatic link routing ### Appearance - Nodes can display images and text - Z-order - Multiple text labels per item - Various text alignment styles - Glass visual effects - Customizable fonts and colors - Custom painting of nodes - Shadows - Transparent nodes - Invisible nodes - A background swimlane grid ### Behavior - Lock diagram elements - Read-only mode supported - Tables can be scrolled - Collapse and expand hierarchy branches - In-place text editing - Dynamic positioning of links relative to connected nodes ### Link Diagram Items - Nodes to nodes - Table rows to table rows - Nodes to table rows - Unconnected links ### Auxiliary Controls - Overview control - NodeListView control - Ruler control - ZoomControl control ### Import and Export - Export Scalable Vector Graphics (SVG) files - Printing and print preview ### Front-end integration - React component - Vue.js component - Angular component ## Getting Started This guide provides a step-by-step walkthrough of setting up and using the diagram library. It is divided into five main parts. 1. (#loading-the-library) Learn the different ways to include the diagramming library in your project. This section covers loading via simple