# Chart-Integration mit ApexCharts Dieses Dokument beschreibt die Integration von ApexCharts in die MYP-Plattform zur Visualisierung von Daten. ## Übersicht Die MYP-Plattform nutzt [ApexCharts](https://apexcharts.com/) für die Darstellung von Diagrammen und Visualisierungen. ApexCharts ist eine moderne JavaScript-Bibliothek zur Erstellung interaktiver Diagramme mit einem einfachen API und reaktionsfähigem Design. ## Dateien und Struktur Die Chart-Integration besteht aus folgenden Komponenten: 1. **ApexCharts-Bibliothek**: `static/js/charts/apexcharts.min.js` 2. **Konfigurationsdatei**: `static/js/charts/chart-config.js` 3. **Renderer**: `static/js/charts/chart-renderer.js` 4. **Adapter**: `static/js/charts/chart-adapter.js` ### Funktionsweise 1. Die **Chart-Konfiguration** definiert Standardstile, Farben und Optionen für alle Diagrammtypen. 2. Der **Chart-Renderer** verwaltet die Erstellung, Aktualisierung und Zerstörung von Diagrammen. 3. Der **Chart-Adapter** verbindet die bestehende `renderChart`-Funktion mit der neuen ApexCharts-Implementierung. ## Verwendung in Templates Um ein Diagramm in einer Template-Datei anzuzeigen: ```html
``` ### Verfügbare Attribute: - `data-chart`: Markiert das Element als Diagramm-Container - `data-api-endpoint`: Der API-Endpunkt, von dem Daten geladen werden - `data-chart-type`: Der Diagrammtyp (optional, wird sonst automatisch bestimmt) ## Unterstützte Diagrammtypen Die folgenden Diagrammtypen werden unterstützt: - `line`: Liniendiagramm - `area`: Flächendiagramm - `bar`: Balkendiagramm - `pie`: Kreisdiagramm - `donut`: Ringdiagramm - `radial`: Radialdiagramm ## Datenformat Die API-Endpunkte sollten Daten in einem der folgenden Formate zurückgeben: ### Für Kreisdiagramme (pie/donut): ```json { "scheduled": 12, "active": 5, "completed": 25, "cancelled": 3 } ``` ### Für Balkendiagramme: ```json [ { "printer_name": "Drucker 1", "job_count": 25, "print_hours": 124.5 }, { "printer_name": "Drucker 2", "job_count": 18, "print_hours": 85.2 } ] ``` ### Für Linien- und Flächendiagramme: ```json [ { "date": "2023-01-01", "value": 42 }, { "date": "2023-01-02", "value": 58 } ] ``` ## Theme-Unterstützung Die Diagramme unterstützen automatisch das Light- und Dark-Mode-Theme der MYP-Plattform. Bei einem Themenwechsel werden alle aktiven Diagramme mit den passenden Farben aktualisiert. ## Anpassung Um die Diagramme anzupassen: 1. **Farben**: Anpassungen in `MYP_CHART_COLORS` in `chart-config.js` 2. **Standardoptionen**: Änderungen in `getBaseChartOptions()` in `chart-config.js` 3. **Spezifische Diagrammtypen**: Anpassungen in den jeweiligen Funktionen (`getLineChartConfig`, `getPieChartConfig`, etc.) ## Erweiterung Um weitere Diagrammtypen oder Funktionen hinzuzufügen: 1. Fügen Sie eine neue Konfigurationsfunktion in `chart-config.js` hinzu 2. Erweitern Sie die `createChart`-Funktion in `chart-renderer.js`, um den neuen Diagrammtyp zu unterstützen 3. Aktualisieren Sie den `chart-adapter.js`, um die Datentransformation für den neuen Diagrammtyp zu unterstützen