Skip to main content

syncfusion-javascript-diagram

Create and edit visual diagrams with Syncfusion JavaScript Diagram (flowcharts, BPMN, swimlanes, UML, org charts, network topologies). Trigger for diagram rendering, node/connector modeling, layouts, data binding, palettes, interactive tools, exporting, and workflow visualization tasks.

소스 정보

저장소
syncfusion/javascript-ui-controls-skills
최근 소스 활동
2026년 7월 28일 05:08
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
20 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
syncfusion-javascript-diagram
description
Create and edit visual diagrams with Syncfusion JavaScript Diagram (flowcharts, BPMN, swimlanes, UML, org charts, network topologies). Trigger for diagram rendering, node/connector modeling, layouts, data binding, palettes, interactive tools, exporting, and workflow visualization tasks.
metadata
{"author":"Syncfusion Inc","version":"34.1.29","category":"Data Visualization"}
# ⚠️ STRICT USAGE RULES — MANDATORY FOR ALL CODE GENERATION These rules are **non-negotiable** and must be followed for **every** code generation request. ## Rule A — Use Only Provided Reference Files 1. **Always read** `references/getting-started.md` for every request 2. Read **additional** reference files **only if they match the user's query** (see Navigation Guide below) 3. **No external knowledge** allowed: - ❌ Do NOT use internet documentation - ❌ Do NOT use training-data assumptions about Syncfusion APIs - ❌ Do NOT reference older EJ1 APIs or deprecated syntax - ✅ If a feature cannot be confirmed from reference files, apply Rule B ## Rule B — No Guessing, No Inference If a feature, property, API, or behavior is **not explicitly documented** in the reference files: **You must NOT:** - Invent class properties, subclasses, or constructor overloads - Infer JavaScript/TypeScript callback signatures or method names - Assume module injections exist beyond those documented - Generalize from other Syncfusion components - Use deprecated or undocumented shape types **Instead, respond with:** ``` ⚠️ NOT DOCUMENTED: [feature name] is not covered in the reference files. Skipping this feature to avoid generating incorrect code. ``` ## Rule C — Enforce Required Module Injections Before generating code for these features, **always include** the corresponding injection: | Feature | Required Injection | |---|---| | Entity Relationship Diagrams | `Diagram.Inject(ErDiagrams)` | | BPMN diagrams | `Diagram.Inject(BpmnDiagrams)` | | Export / Print | `Diagram.Inject(PrintAndExport)` | | Mind Map layout | `Diagram.Inject(MindMap)` | | Complex Hierarchical layout | `Diagram.Inject(ComplexHierarchicalTree)` | | Hierarchical or Organizational layout | `Diagram.Inject(HierarchicalTree)` | | UML Sequence Diagrams | No additional injection required | | Undo/Redo | `Diagram.Inject(UndoRedo)` | | Line Distribution | `Diagram.Inject(LineDistribution)` | | Line Routing | `Diagram.Inject(LineRouting)` | | Mermaid Syntax | `Diagram.Inject(FlowchartLayout, DataBinding)` or `Diagram.Inject(MindMap, DataBinding)` | Do **NOT** assume any other injections exist unless confirmed in reference files. --- # Diagram Component Overview The Diagram control is a feature-rich component for creating interactive, editable diagrams in TypeScript/JavaScript applications. ## Core Elements | Element | Purpose | Common Properties | |---|---|---| | **Nodes** | Graphical shapes representing entities | `id`, `offsetX`, `offsetY`, `width`, `height`, `shape`, `style` | | **Connectors** | Lines/arrows connecting nodes | `id`, `sourceID`, `targetID`, `type`, `style`, `targetDecorator` | | **Labels** | Text annotations on nodes/connectors | `content`, `font`, `alignment`, `offset` | ## Key Features ✅ Automatic Layout (flowchart, hierarchical, organizational) ✅ Data Binding (JSON, parent-child relationships) ✅ Interactive Tools (drawing, selection, pan, zoom, drag-drop) ✅ Styling (CSS customization, themes, conditional styles) ✅ Serialization (save/load as JSON) ✅ Export (PNG, JPG, SVG, PDF) ✅ User Interactions (events, constraints, undo/redo) --- # Navigation Guide **Always read `references/getting-started.md` first**, then read only files relevant to the request. | Reference File | Read When the Query Involves | |---|---| | 📄 [getting-started.md](references/getting-started.md) | **Every request** — Package installation, imports, first diagram, initialization | | 📄 [nodes-and-shapes.md](references/nodes-and-shapes.md) | Creating/styling nodes, shapes, positioning, BPMN/UML shapes, annotations | | 📄 [connectors-and-connections.md](references/connectors-and-connections.md) | Lines (Straight/Orthogonal/Bezier), arrows, routing, sourceID/targetID, segments | | 📄 [labels-and-annotations.md](references/labels-and-annotations.md) | Text labels, font, alignment, hyperlinks on nodes/connectors | | 📄 [ports.md](references/ports.md) | Connection points, port positioning, port constraints | | 📄 [shapes-and-styles.md](references/shapes-and-styles.md) | Flow/Basic/Path/Image/HTML/Native shapes, fill, stroke, gradient, opacity | | 📄 [data-binding-and-loading.md](references/data-binding-and-loading.md) | DataSourceSettings, JSON loading, parent-child mapping, dynamic updates | | 📄 [layout-and-automation.md](references/layout-and-automation.md) | Hierarchical, org chart, mind map, radial, symmetric layouts, orientation | | 📄 [bpmn-diagrams.md](references/bpmn-diagrams.md) | BPMN module injection, events, gateways, activities, data objects, annotations | | 📄 [uml-diagrams.md](references/uml-diagrams.md) | UML class diagrams, UML sequence diagrams, classifiers, relationships, participants, messages, fragments | | 📄 [entity-relationship-diagrams.md](references/entity-relationship-diagrams.md) | ER entities, entity fields, data types, primary/foreign keys, relationships, Crow's Foot multiplicity, ERD styling | | 📄 [swimlanes.md](references/swimlanes.md) | Swimlane structure, lanes, phases, header config, interaction | | 📄 [groups-and-containers.md](references/groups-and-containers.md) | Grouping nodes, Canvas/Stack/Grid containers, nesting, boundaries | | 📄 [symbol-palette.md](references/symbol-palette.md) | SymbolPaletteComponent, drag-drop, categories, custom symbols, search | | 📄 [interaction-and-tools.md](references/interaction-and-tools.md) | Drawing tools, selection, constraints, pan/zoom, events, undo/redo | | 📄 [styling-and-appearance.md](references/styling-and-appearance.md) | CSS theming, colors, fonts, accessibility, responsive design | | 📄 [serialization-and-export.md](references/serialization-and-export.md) | Save/load diagrams as JSON, prevent defaults, detect unsaved changes, export to image/PDF/Visio, Mermaid syntax, uploader support | | 📄 [diagram-settings.md](references/diagram-settings.md) | Layers, virtualization, grid, ruler, scroll, page settings, tooltip, localization | | 📄 [advanced-features.md](references/advanced-features.md) | Undo/redo, custom commands, toolbars, performance optimization | --- # Quick Start ## 1. Install Package ```bash npm install @syncfusion/ej2-diagrams ``` ## 2. Import Required Modules ```ts import { Diagram, NodeModel, ConnectorModel } from '@syncfusion/ej2-diagrams'; ``` ## 3. Create Diagram with Nodes & Connectors ```ts // Define nodes let nodes: NodeModel[] = [ { id: 'node1', offsetX: 250, offsetY: 250, width: 100, height: 100, style: { fill: '#6BA5D7' }, annotations: [{ content: 'Start' }] }, { id: 'node2', offsetX: 400, offsetY: 250, width: 100, height: 100, style: { fill: '#FFD700' }, annotations: [{ content: 'Process' }] } ]; // Define connector between nodes let connectors: ConnectorModel[] = [ { id: 'connector1', sourceID: 'node1', targetID: 'node2', style: { strokeColor: '#6BA5D7' }, targetDecorator: { shape: 'Arrow' } } ]; // Create diagram let diagram: Diagram = new Diagram({ width: '100%', height: '500px', nodes: nodes, connectors: connectors }); diagram.appendTo('#diagram-container'); ``` **HTML:** ```html <div id="diagram-container"></div> ``` --- # Common Patterns ## Flowchart Pattern Creating a simple flowchart with decision points: - Use rectangle shapes for processes - Use diamond shapes for decisions - Connect with arrows - Apply Flowchart auto-layout ## Organizational Chart Pattern Creating hierarchical structures: - Use data binding with parent-child relationships - Apply HierarchicalTree layout - Define employee nodes with names/photos - Show reporting relationships via connectors ## Network Diagram Pattern Creating system architecture diagrams: - Use predefined shapes (server, database, client) - Connect with labeled lines showing data flow - Organize using grid-based positioning - Add icons and styling for clarity ## Interactive Diagram Pattern Building user-editable diagrams: - Enable drawing tools - Allow node/connector creation and deletion - Add context menus for operations - Implement save/load with serialization - Handle user events (selection, drag, resize) --- ## When to Use This Skill ✅ Creating any diagram type in TypeScript/JavaScript ✅ Building flowcharts, process flows, or hierarchies ✅ Implementing BPMN or UML diagrams ✅ Configuring node/connector shapes, styles, annotations ✅ Setting up automatic layouts ✅ Adding symbol palettes for drag-and-drop ✅ Binding diagram data from APIs or JSON ✅ Exporting diagrams or printing ✅ Enabling drawing tools, undo/redo, layers **Do NOT use for:** Simple static charts or graphs (use Chart component), data tables (use Grid component) --- ## Key TypeScript Interfaces | Interface | Purpose | Key Properties | |---|---|---| | `NodeModel` | Node configuration | `id`, `offsetX`, `offsetY`, `width`, `height`, `shape`, `style`, `annotations` | | `ConnectorModel` | Connector configuration | `id`, `sourceID`, `targetID`, `type`, `style`, `targetDecorator` | | `ShapeModel` | Shape definition | `type` (Basic/BPMN/UML/Flow), `shape` name | | `AnnotationModel` | Label on node/connector | `content`, `font`, `alignment`, `offset` | | `PortModel` | Connection point | `id`, `offset`, `shape`, `visibility`, `constraints` | --- ## Common Shape Types ### Flow Shapes `Terminator`, `Process`, `Decision`, `Document`, `DirectData`, `MultiDocument`, `PreDefinedProcess`, `Delay`, `Annotation`, `ManualOperation`, `ManualInput`, `Card`, `Or`, `SummingJunction`, `Extract`, `Merge`, `Sort`, `OffPageReference` **Usage:** ```ts shape: { type: 'Flow', shape: 'Process' } ``` ### Basic Shapes `Rectangle`, `Ellipse`, `Triangle`, `Pentagon`, `Hexagon`, `Heptagon`, `Octagon`, `Star`, `Cross`, `Diamond`, `CylindricalShape`, `Trapezoid`, `Parallelogram`, `Rhombus` **Usage:** ```ts shape: { type: 'Basic', shape: 'Rectangle' } ```
GitHub에서 보기