Skip to content
GRAPHIC WALKER
API-Referenz
GraphicWalker

GraphicWalker

GraphicWalker ist die primaere Komponente, die eine vollstaendige interaktive Datenexplorations-Oberflaeche mit Drag-and-Drop-Diagrammerstellung, Feldverwaltung und mehreren Diagramm-Tabs bietet.

import { GraphicWalker } from '@kanaries/graphic-walker';

Props

Daten-Props

PropTypErforderlichBeschreibung
dataRecord<string, any>[]Ja*Array von Datensaetzen. Wird fuer clientseitige Berechnung verwendet.
fieldsIMutField[]JaFelddefinitionen, die jede Spalte in Ihren Daten beschreiben.
computationIComputationFunctionJa*Serverseitige Berechnungsfunktion. Alternative zu data.
computationTimeoutnumberNeinTimeout in ms fuer Berechnungsanfragen.

*Geben Sie entweder data (clientseitig) oder computation (serverseitig) an, nicht beides.

Diagrammkonfigurations-Props

PropTypStandardBeschreibung
chartIChart[]undefinedVorkonfigurierte Diagrammspezifikationen zum Laden.
defaultConfig{ config?: Partial<IVisualConfigNew>; layout?: Partial<IVisualLayout> }undefinedStandardkonfiguration fuer neue Diagramme.
defaultRenderer'vega-lite' | 'observable-plot''vega-lite'Standard-Rendering-Engine fuer neue Diagramme.

Erscheinungsbild-Props

PropTypStandardBeschreibung
appearance'media' | 'light' | 'dark''media'Dark-Mode-Einstellung. 'media' folgt der Systemeinstellung.
vizThemeConfigIThemeKey | GWGlobalConfigundefinedDiagramm-Rendering-Theme. Integrierte Optionen: 'vega', 'g2', 'streamlit'.
uiThemeIUIThemeConfigundefinedBenutzerdefiniertes UI-Farbschema fuer hellen und dunklen Modus.

UI-Steuerungs-Props

PropTypStandardBeschreibung
hideChartNavbooleanfalseBlendet die Diagramm-Tab-Navigation aus, beschraenkt auf ein einzelnes Diagramm.
hideSegmentNavbooleanfalseBlendet die Daten-/Visualisierungs-Segmentnavigation aus.
hideProfilingbooleanfalseBlendet Feld-Profiling (Verteilungsvorschauen) aus.
toolbar{ extra?: ToolbarItemProps[]; exclude?: string[] }undefinedToolbar anpassen -- zusaetzliche Schaltflaechen hinzufuegen oder integrierte ausblenden.

Datenfunktions-Props

PropTypStandardBeschreibung
scalesIChannelScalesundefinedBenutzerdefinierte Skalierungskonfigurationen fuer visuelle Kanaele.
geographicDataIGeographicData & { key: string }undefinedGeoJSON/TopoJSON-Daten fuer geografische Visualisierungen.
geoListIGeoDataItem[]undefinedListe der verfuegbaren geografischen Datensaetze zur Auswahl.
experimentalFeatures{ computedField?: boolean }undefinedExperimentelle Funktionen wie berechnete Felder aktivieren.

i18n-Props

PropTypStandardBeschreibung
i18nLangstringundefinedSprachcode (z.B. 'en-US', 'zh-CN', 'ja-JP').
i18nResourcesRecord<string, Record<string, string>>undefinedBenutzerdefinierte Uebersetzungsressourcen.

Ref- & Zustands-Props

PropTypBeschreibung
refReact.Ref<IGWHandler>Ref zum Zugriff auf die Handler-API (Diagramme exportieren, Tabs navigieren usw.).
storeRefReact.RefObject<CommonStore>Ref zum internen Zustandsspeicher.
keepAliveboolean | stringKomponentenzustand beim Aushängen beibehalten. Uebergeben Sie einen String als eindeutigen Schluessel fuer mehrere Instanzen.
onMetaChange(fid: string, meta: Partial<IMutField>) => voidCallback bei Aenderungen der Feldmetadaten.

Fehlerbehandlung

PropTypBeschreibung
onError(err: Error) => voidCallback zur Fehlerbehandlung.

Styling

PropTypBeschreibung
classNamestringCSS-Klasse fuer das Wurzelelement.
styleReact.CSSPropertiesInline-Styles fuer das Wurzelelement.

Ref-Handler (IGWHandler)

Greifen Sie ueber eine React-Ref auf den Handler zu, um die Komponente programmatisch zu steuern:

import { useRef } from 'react';
import { GraphicWalker } from '@kanaries/graphic-walker';
import type { IGWHandler } from '@kanaries/graphic-walker';
 
function App() {
  const gwRef = useRef<IGWHandler>(null);
 
  return <GraphicWalker ref={gwRef} data={data} fields={fields} />;
}

Handler-Eigenschaften und -Methoden

MitgliedTypBeschreibung
chartCountnumberGesamtanzahl der Diagramm-Tabs.
chartIndexnumberAktuell ausgewaehlter Diagramm-Tab-Index.
openChart(index)(index: number) => voidZu einem bestimmten Diagramm-Tab wechseln.
renderStatus'computing' | 'rendering' | 'idle' | 'error'Aktueller Render-Status des aktiven Diagramms.
onRenderStatusChange(cb)(cb: Function) => () => voidAuf Render-Statusaenderungen lauschen. Gibt eine Dispose-Funktion zurueck.
exportChart(mode?)(mode?: 'svg' | 'data-url') => Promise<IChartExportResult>Das aktuelle Diagramm exportieren. Standard ist 'svg'.
exportChartList(mode?)(mode?: 'svg' | 'data-url') => AsyncGeneratorAsync-Generator, der die Exportdaten jedes Diagramms liefert.

Export-Beispiel

async function handleExport() {
  if (!gwRef.current) return;
 
  // Export current chart as SVG
  const result = await gwRef.current.exportChart('svg');
  console.log(result.title, result.charts);
 
  // Export all charts
  for await (const item of gwRef.current.exportChartList('data-url')) {
    console.log(`Chart ${item.index + 1}/${item.total}:`, item.data.title);
  }
}

Beispiele

Einfacher Explorer

import { GraphicWalker } from '@kanaries/graphic-walker';
 
function Explorer({ data, fields }) {
  return <GraphicWalker data={data} fields={fields} />;
}

Mit Dark Mode und Theme

<GraphicWalker
  data={data}
  fields={fields}
  appearance="dark"
  vizThemeConfig="streamlit"
/>

Mit Toolbar-Anpassung

<GraphicWalker
  data={data}
  fields={fields}
  toolbar={{
    exclude: ['export_chart'],
    extra: [
      {
        key: 'custom-save',
        label: 'Save',
        icon: SaveIcon,
        onClick: handleSave,
      },
    ],
  }}
/>

Serverseitige Berechnung

import { GraphicWalker } from '@kanaries/graphic-walker';
import type { IComputationFunction } from '@kanaries/graphic-walker';
 
const computation: IComputationFunction = async (payload) => {
  const response = await fetch('/api/compute', {
    method: 'POST',
    body: JSON.stringify(payload),
    headers: { 'Content-Type': 'application/json' },
  });
  return response.json();
};
 
function App() {
  return (
    <GraphicWalker
      computation={computation}
      fields={fields}
    />
  );
}