@petrarca/sonnet-graph 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +344 -8
- package/dist/index.js +1578 -395
- package/dist/index.js.map +1 -1
- package/package.json +19 -18
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import * as zustand from 'zustand';
|
|
|
4
4
|
import { UseBoundStore, StoreApi } from 'zustand';
|
|
5
5
|
import { GraphEdge, GraphNode } from 'reagraph';
|
|
6
6
|
import cytoscape from 'cytoscape';
|
|
7
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
7
|
import { z } from 'zod';
|
|
9
8
|
import { JsonSchema, UISchema } from '@petrarca/sonnet-core/schema';
|
|
10
9
|
import { WidgetRegistry } from '@petrarca/sonnet-forms';
|
|
@@ -981,23 +980,23 @@ interface GraphVisualizerProps {
|
|
|
981
980
|
/** Fetch distinct edge types for a node (for expand options panel). */
|
|
982
981
|
getNodeEdgeTypes?: (id: number) => Promise<string[]>;
|
|
983
982
|
}
|
|
984
|
-
declare function GraphVisualizer({ onCopyNode, extraToolbarContent, getNodeEdgeTypes, }: GraphVisualizerProps):
|
|
983
|
+
declare function GraphVisualizer({ onCopyNode, extraToolbarContent, getNodeEdgeTypes, }: GraphVisualizerProps): React.JSX.Element;
|
|
985
984
|
|
|
986
985
|
interface ActionPanelProps {
|
|
987
986
|
/** Optional actions rendered at the top of the panel (e.g. CRUD buttons) */
|
|
988
987
|
actions?: ReactNode;
|
|
989
988
|
}
|
|
990
|
-
declare function ActionPanel({ actions }: ActionPanelProps):
|
|
989
|
+
declare function ActionPanel({ actions }: ActionPanelProps): React.JSX.Element;
|
|
991
990
|
|
|
992
991
|
type Props$1 = {
|
|
993
992
|
node: VisualGraphNode;
|
|
994
993
|
};
|
|
995
|
-
declare function NodeInfoCard({ node }: Props$1):
|
|
994
|
+
declare function NodeInfoCard({ node }: Props$1): React.JSX.Element;
|
|
996
995
|
|
|
997
996
|
type Props = {
|
|
998
997
|
edge: VisualGraphEdge;
|
|
999
998
|
};
|
|
1000
|
-
declare function EdgeInfoCard({ edge }: Props):
|
|
999
|
+
declare function EdgeInfoCard({ edge }: Props): React.JSX.Element;
|
|
1001
1000
|
|
|
1002
1001
|
/** A named group of node labels shown as its own legend sub-section. */
|
|
1003
1002
|
interface NodeLabelBucket {
|
|
@@ -1011,7 +1010,22 @@ interface OverviewProps {
|
|
|
1011
1010
|
/** Heading for the edge (arrow) section. Default "Relations". */
|
|
1012
1011
|
edgeSectionTitle?: string;
|
|
1013
1012
|
}
|
|
1014
|
-
declare function Overview({ nodeBuckets, edgeSectionTitle }?: OverviewProps):
|
|
1013
|
+
declare function Overview({ nodeBuckets, edgeSectionTitle }?: OverviewProps): React.JSX.Element | null;
|
|
1014
|
+
|
|
1015
|
+
/**
|
|
1016
|
+
* CenteredMessage -- a message centered in the pane it fills: empty states,
|
|
1017
|
+
* "cannot display" notices, loading placeholders, and error text. One component
|
|
1018
|
+
* so every graph pane (and host apps' own loading/error states) look the same.
|
|
1019
|
+
*/
|
|
1020
|
+
|
|
1021
|
+
declare const TONE: {
|
|
1022
|
+
readonly muted: "text-muted-foreground";
|
|
1023
|
+
readonly destructive: "text-destructive";
|
|
1024
|
+
};
|
|
1025
|
+
declare function CenteredMessage({ children, tone, }: {
|
|
1026
|
+
children: React__default.ReactNode;
|
|
1027
|
+
tone?: keyof typeof TONE;
|
|
1028
|
+
}): React__default.ReactElement;
|
|
1015
1029
|
|
|
1016
1030
|
interface GraphA11yListProps {
|
|
1017
1031
|
/** Render on-screen instead of visually-hidden (still a11y-present). */
|
|
@@ -1022,7 +1036,7 @@ interface GraphA11yListProps {
|
|
|
1022
1036
|
maxHeight?: number;
|
|
1023
1037
|
className?: string;
|
|
1024
1038
|
}
|
|
1025
|
-
declare function GraphA11yList({ visible, rowHeight, maxHeight, className, }: GraphA11yListProps):
|
|
1039
|
+
declare function GraphA11yList({ visible, rowHeight, maxHeight, className, }: GraphA11yListProps): React.JSX.Element;
|
|
1026
1040
|
|
|
1027
1041
|
/**
|
|
1028
1042
|
* Graph model (metamodel) types.
|
|
@@ -2262,4 +2276,326 @@ interface FlattenedGraphData {
|
|
|
2262
2276
|
/** Flatten normalized graph data. Pure function -- no React hooks. */
|
|
2263
2277
|
declare function flattenGraphData(normalized: NormalizedGraph): FlattenedGraphData;
|
|
2264
2278
|
|
|
2265
|
-
|
|
2279
|
+
/**
|
|
2280
|
+
* Tabular result types.
|
|
2281
|
+
*
|
|
2282
|
+
* Transport-agnostic shapes for rendering a query result as a table. A host
|
|
2283
|
+
* app maps its own query response onto {@link TabularResult}; the visualizer
|
|
2284
|
+
* never fetches -- data and paging arrive as props.
|
|
2285
|
+
*/
|
|
2286
|
+
|
|
2287
|
+
/** One result row: positional cells, a record, or a bare scalar. */
|
|
2288
|
+
type TabularRow = Record<string, unknown> | unknown[] | unknown;
|
|
2289
|
+
/** How rows are interpreted when deriving columns. */
|
|
2290
|
+
type TabularMode = "record" | "array" | "value";
|
|
2291
|
+
/** Resolved header list plus the row interpretation it implies. */
|
|
2292
|
+
interface TabularHeaders {
|
|
2293
|
+
headers: string[];
|
|
2294
|
+
mode: TabularMode;
|
|
2295
|
+
}
|
|
2296
|
+
/**
|
|
2297
|
+
* Window metadata for a server-paged result. ``total`` is null when the
|
|
2298
|
+
* backend cannot cheaply count (then rely on ``has_more``); ``truncated``
|
|
2299
|
+
* means the result was capped before counting.
|
|
2300
|
+
*/
|
|
2301
|
+
interface TabularPageInfo {
|
|
2302
|
+
offset: number;
|
|
2303
|
+
limit: number;
|
|
2304
|
+
returned?: number;
|
|
2305
|
+
total?: number | null;
|
|
2306
|
+
has_more: boolean;
|
|
2307
|
+
truncated?: boolean;
|
|
2308
|
+
}
|
|
2309
|
+
/** A query result to render as a table. */
|
|
2310
|
+
interface TabularResult {
|
|
2311
|
+
/** Result rows (tabular cells in RETURN-column order, or records). */
|
|
2312
|
+
rows: TabularRow[];
|
|
2313
|
+
/** Column-name metadata from the server (RETURN argument -> name). */
|
|
2314
|
+
colNames?: Record<string, string> | null;
|
|
2315
|
+
/** Present when the result is one server-paged window. */
|
|
2316
|
+
page?: TabularPageInfo | null;
|
|
2317
|
+
}
|
|
2318
|
+
/** A graph node/edge found inside a table cell (``{node}``/``{edge}``-wrapped). */
|
|
2319
|
+
type GraphCell = {
|
|
2320
|
+
kind: "node";
|
|
2321
|
+
data: RawGraphNode;
|
|
2322
|
+
} | {
|
|
2323
|
+
kind: "edge";
|
|
2324
|
+
data: RawGraphEdge;
|
|
2325
|
+
};
|
|
2326
|
+
|
|
2327
|
+
/**
|
|
2328
|
+
* PaginationFooter -- "Showing a-b of total" plus page-size and prev/next
|
|
2329
|
+
* controls for a server-paged tabular result. Renders nothing when unpaged.
|
|
2330
|
+
*/
|
|
2331
|
+
|
|
2332
|
+
interface PaginationControls {
|
|
2333
|
+
pageIndex: number;
|
|
2334
|
+
pageSize?: number;
|
|
2335
|
+
pageSizeOptions?: readonly number[];
|
|
2336
|
+
onPageChange?: (index: number) => void;
|
|
2337
|
+
onPageSizeChange?: (size: number) => void;
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
/**
|
|
2341
|
+
* TabularVisualizer -- render a query result as a table.
|
|
2342
|
+
*
|
|
2343
|
+
* Pure and transport-agnostic: the host passes the result (and, for server
|
|
2344
|
+
* paging, the page state + callbacks); nothing is fetched here. Graph node/edge
|
|
2345
|
+
* cells render as label-colored chips that open an inspector sheet; other
|
|
2346
|
+
* values render as syntax-highlighted JSON. Offers sort (disabled while
|
|
2347
|
+
* server-paged, since it would only reorder the current page), column resize,
|
|
2348
|
+
* row virtualization, CSV/TSV/JSON export and copy, and a pagination footer.
|
|
2349
|
+
*/
|
|
2350
|
+
|
|
2351
|
+
interface TabularVisualizerProps extends Partial<PaginationControls> {
|
|
2352
|
+
/** The result to render; undefined = nothing run yet. */
|
|
2353
|
+
result?: TabularResult;
|
|
2354
|
+
/** Optional schema display config for node/edge captions. */
|
|
2355
|
+
labelDisplayMap?: LabelDisplayMap;
|
|
2356
|
+
/** Base file name for exports (default "query-result"). */
|
|
2357
|
+
exportFileName?: string;
|
|
2358
|
+
}
|
|
2359
|
+
declare function TabularVisualizer({ result, labelDisplayMap, exportFileName, pageIndex, ...controls }: TabularVisualizerProps): React__default.ReactElement;
|
|
2360
|
+
|
|
2361
|
+
/**
|
|
2362
|
+
* Graph | Table result view switch.
|
|
2363
|
+
*
|
|
2364
|
+
* useResultView carries cypher-graphdb's ViewContext intent without its URL
|
|
2365
|
+
* coupling. The rule, per result:
|
|
2366
|
+
*
|
|
2367
|
+
* keep the current view if it can display the result; otherwise switch to a
|
|
2368
|
+
* view that can.
|
|
2369
|
+
*
|
|
2370
|
+
* In practice the only automatic switch is Graph -> Table when a graph result
|
|
2371
|
+
* is replaced by a scalar/aggregate (which Graph cannot draw). A graph or empty
|
|
2372
|
+
* result never forces a switch (both views can show it), so the operator's
|
|
2373
|
+
* choice -- including a manual one -- is preserved. The first result (no view
|
|
2374
|
+
* chosen yet) opens in its natural view, or in ``initialView`` if given.
|
|
2375
|
+
*
|
|
2376
|
+
* Routing/URL sync stays in the host app (ResultWorkspace's view/onViewChange).
|
|
2377
|
+
*/
|
|
2378
|
+
type ResultView = "graph" | "table";
|
|
2379
|
+
/** Result shape: a graph (nodes/edges), tabular rows (scalars/aggregates), or empty. */
|
|
2380
|
+
type ResultKind = "graph" | "tabular" | "empty";
|
|
2381
|
+
/** Classify a result from whether it holds graph elements and how many rows it has. */
|
|
2382
|
+
declare function classifyResult(isGraph: boolean, rowCount: number): ResultKind;
|
|
2383
|
+
/**
|
|
2384
|
+
* Whether a view can display a result kind. Graph can show graph + empty (an
|
|
2385
|
+
* empty canvas) but not tabular rows; Table can show anything.
|
|
2386
|
+
*/
|
|
2387
|
+
declare function isViewValid(view: ResultView, kind: ResultKind): boolean;
|
|
2388
|
+
/** The view a fresh result opens in: graph for a graph result, table otherwise. */
|
|
2389
|
+
declare function naturalView(kind: ResultKind): ResultView;
|
|
2390
|
+
interface ResultViewOptions {
|
|
2391
|
+
/** View to open the FIRST result in (e.g. read from the URL). Honored once. */
|
|
2392
|
+
initialView?: ResultView;
|
|
2393
|
+
}
|
|
2394
|
+
/**
|
|
2395
|
+
* Active result view for the current result (identified by ``resultKey``).
|
|
2396
|
+
* Adjusts during render, not in an effect, so a view that would be invalid for
|
|
2397
|
+
* a new result never paints before correcting.
|
|
2398
|
+
*/
|
|
2399
|
+
declare function useResultView(kind: ResultKind, resultKey: unknown, { initialView }?: ResultViewOptions): [ResultView, (view: ResultView) => void];
|
|
2400
|
+
|
|
2401
|
+
/** Graph | Table result view switch (controlled). See resultView.ts for the view state. */
|
|
2402
|
+
|
|
2403
|
+
declare function ResultViewTabs({ value, onChange, }: {
|
|
2404
|
+
value: ResultView;
|
|
2405
|
+
onChange: (view: ResultView) => void;
|
|
2406
|
+
}): React__default.ReactElement;
|
|
2407
|
+
|
|
2408
|
+
/**
|
|
2409
|
+
* GraphInspector -- right-side sheet inspecting a node/edge from a table cell:
|
|
2410
|
+
* header (color, label, id, caption), copy actions, then Properties and JSON tabs.
|
|
2411
|
+
*/
|
|
2412
|
+
|
|
2413
|
+
interface GraphInspectorProps {
|
|
2414
|
+
cell: GraphCell | null;
|
|
2415
|
+
open: boolean;
|
|
2416
|
+
onOpenChange: (open: boolean) => void;
|
|
2417
|
+
palette?: ColorPalette;
|
|
2418
|
+
labelDisplayMap?: LabelDisplayMap;
|
|
2419
|
+
}
|
|
2420
|
+
declare function GraphInspector({ cell, open, onOpenChange, palette, labelDisplayMap, }: GraphInspectorProps): React__default.ReactElement;
|
|
2421
|
+
|
|
2422
|
+
/**
|
|
2423
|
+
* GraphChip -- compact single-line chip for a node/edge in a table cell:
|
|
2424
|
+
* label-colored dot (node) or arrow (edge), label, caption, "+N" properties.
|
|
2425
|
+
* Activating it opens the inspector.
|
|
2426
|
+
*/
|
|
2427
|
+
|
|
2428
|
+
declare function GraphChipImpl({ cell }: {
|
|
2429
|
+
cell: GraphCell;
|
|
2430
|
+
}): React__default.ReactElement;
|
|
2431
|
+
declare const GraphChip: React__default.MemoExoticComponent<typeof GraphChipImpl>;
|
|
2432
|
+
|
|
2433
|
+
/**
|
|
2434
|
+
* Table cell renderers: graph node/edge values become a GraphChip, everything
|
|
2435
|
+
* else renders as syntax-highlighted JSON (colors from the --json-* tokens).
|
|
2436
|
+
*/
|
|
2437
|
+
|
|
2438
|
+
/** Syntax-highlighted rendering of any JSON value. */
|
|
2439
|
+
declare function JsonRenderer({ value, className, }: {
|
|
2440
|
+
value: unknown;
|
|
2441
|
+
className?: string;
|
|
2442
|
+
}): React__default.ReactElement;
|
|
2443
|
+
/**
|
|
2444
|
+
* One table cell. Memoized on ``value`` so the recursive JSON formatting is
|
|
2445
|
+
* not recomputed on sort/resize/scroll re-renders (cell values are stable).
|
|
2446
|
+
*/
|
|
2447
|
+
declare function JsonCellImpl({ value }: {
|
|
2448
|
+
value: unknown;
|
|
2449
|
+
}): React__default.ReactElement;
|
|
2450
|
+
declare const JsonCell: React__default.MemoExoticComponent<typeof JsonCellImpl>;
|
|
2451
|
+
|
|
2452
|
+
/**
|
|
2453
|
+
* Helpers for graph node/edge values inside table cells.
|
|
2454
|
+
*
|
|
2455
|
+
* A tabular cell holding a graph object is wrapped as ``{ node: {...} }`` or
|
|
2456
|
+
* ``{ edge: {...} }`` (the cypher-graphdb serialization convention also used by
|
|
2457
|
+
* extractGraphFromRows). These helpers detect that shape and derive a caption
|
|
2458
|
+
* and label color, reusing the graph view's enrichment so they match.
|
|
2459
|
+
*/
|
|
2460
|
+
|
|
2461
|
+
/** Detect a graph node/edge wrapped in a cell; null for scalars, maps, arrays. */
|
|
2462
|
+
declare function asGraphCell(value: unknown): GraphCell | null;
|
|
2463
|
+
/** Caption: schema display config first, then a property heuristic, then ``Label #id``. */
|
|
2464
|
+
declare function captionFor(cell: GraphCell, labelDisplayMap?: LabelDisplayMap): string;
|
|
2465
|
+
/** Number of properties (drives the ``+N`` indicator). */
|
|
2466
|
+
declare function propertyCount(cell: GraphCell): number;
|
|
2467
|
+
/** Label color from the palette, falling back to neutral. */
|
|
2468
|
+
declare function colorForLabel(label: string, palette?: ColorPalette): string;
|
|
2469
|
+
|
|
2470
|
+
/**
|
|
2471
|
+
* Column derivation for tabular results.
|
|
2472
|
+
*/
|
|
2473
|
+
|
|
2474
|
+
/**
|
|
2475
|
+
* Resolve display column names from the server's col_names metadata.
|
|
2476
|
+
*
|
|
2477
|
+
* Wildcard columns (all-numeric keys) use the VALUES (resolved labels, e.g.
|
|
2478
|
+
* "Product"); explicit columns use the KEYS (aliases/expressions, e.g.
|
|
2479
|
+
* "p.name"). Missing columns are padded as ``column_N``.
|
|
2480
|
+
*/
|
|
2481
|
+
declare function resolveColumnNames(colNames: Record<string, string> | null | undefined, columnCount: number): string[];
|
|
2482
|
+
/**
|
|
2483
|
+
* Derive the header list and row interpretation from the rows.
|
|
2484
|
+
* Records win over arrays (union of keys, sorted); arrays use col_names;
|
|
2485
|
+
* otherwise a single ``value`` column.
|
|
2486
|
+
*/
|
|
2487
|
+
declare function deriveHeaders(rows: TabularRow[], colNames?: Record<string, string> | null): TabularHeaders;
|
|
2488
|
+
/** Extract one cell value from a row by header/index under a mode. */
|
|
2489
|
+
declare function getCellValue(row: TabularRow, header: string, index: number, mode: TabularMode): unknown;
|
|
2490
|
+
|
|
2491
|
+
/**
|
|
2492
|
+
* Export helpers for tabular results: CSV / TSV / JSON strings and a browser
|
|
2493
|
+
* download trigger.
|
|
2494
|
+
*/
|
|
2495
|
+
|
|
2496
|
+
/** CSV (comma-separated, RFC 4180). */
|
|
2497
|
+
declare function toCsv(rows: TabularRow[], headers: string[], mode: TabularMode): string;
|
|
2498
|
+
/** TSV (tab-separated; avoids the CSV locale/separator ambiguity in Excel). */
|
|
2499
|
+
declare function toTsv(rows: TabularRow[], headers: string[], mode: TabularMode): string;
|
|
2500
|
+
/** Pretty JSON array of objects keyed by header, whatever the row shape. */
|
|
2501
|
+
declare function toJson(rows: TabularRow[], headers: string[], mode: TabularMode): string;
|
|
2502
|
+
/**
|
|
2503
|
+
* Whether CSV/TSV is meaningful: true when at least one sampled cell is flat
|
|
2504
|
+
* (scalar). If every sampled cell is an object/array, flat formats would only
|
|
2505
|
+
* produce stringified JSON blobs.
|
|
2506
|
+
*/
|
|
2507
|
+
declare function isFlatExportSuitable(rows: TabularRow[], headers: string[], mode: TabularMode): boolean;
|
|
2508
|
+
/** Trigger a browser download of in-memory content. */
|
|
2509
|
+
declare function downloadFile(content: string, filename: string, mimeType: string): void;
|
|
2510
|
+
|
|
2511
|
+
/**
|
|
2512
|
+
* Pane selection for the result workspace (cypher-graphdb's Workspace rules).
|
|
2513
|
+
*
|
|
2514
|
+
* The kind vocabulary and view validity live in tabular/resultView (the single
|
|
2515
|
+
* source of truth the view-switch logic uses); this adds which concrete pane to
|
|
2516
|
+
* render for a given view + result:
|
|
2517
|
+
* - graph: a graph result in the graph view (nodes/edges, or an empty canvas);
|
|
2518
|
+
* - table: a result shown as a table;
|
|
2519
|
+
* - graph-unavailable: a tabular result while in the graph view (cannot draw);
|
|
2520
|
+
* - table-empty: an empty result in the table view ("no results").
|
|
2521
|
+
*/
|
|
2522
|
+
|
|
2523
|
+
type PaneChoice = "graph" | "table" | "graph-unavailable" | "table-empty";
|
|
2524
|
+
declare function choosePane(view: ResultView, kind: ResultKind): PaneChoice;
|
|
2525
|
+
|
|
2526
|
+
/**
|
|
2527
|
+
* ResultWorkspace -- the result area under a query bar: the Graph | Table
|
|
2528
|
+
* switch plus the pane for the active view.
|
|
2529
|
+
*
|
|
2530
|
+
* Owns the layout and the pane rules so every app renders results the same
|
|
2531
|
+
* way; the host supplies the two panes (the graph pane and the table) and
|
|
2532
|
+
* describes the result (kind + a key that changes on each execution). Each new
|
|
2533
|
+
* result opens in its natural view; the operator's own switch sticks until the
|
|
2534
|
+
* next result.
|
|
2535
|
+
*
|
|
2536
|
+
* The view is managed here by default. A host that keeps it elsewhere (e.g. in
|
|
2537
|
+
* the URL, with back/forward) passes ``view`` + ``onViewChange`` to control it,
|
|
2538
|
+
* or just ``initialView`` to choose the first result's view.
|
|
2539
|
+
*/
|
|
2540
|
+
|
|
2541
|
+
interface ResultWorkspaceProps {
|
|
2542
|
+
kind: ResultKind;
|
|
2543
|
+
/** Changes on every execution (also re-runs of the same query). */
|
|
2544
|
+
resultKey: unknown;
|
|
2545
|
+
/** The graph pane, e.g. a GraphPane. */
|
|
2546
|
+
graphPane: React__default.ReactNode;
|
|
2547
|
+
/** The table pane, e.g. a TabularVisualizer wired to the host's data. */
|
|
2548
|
+
tablePane: React__default.ReactNode;
|
|
2549
|
+
/** Controlled view. When set, the host owns the view and must update it. */
|
|
2550
|
+
view?: ResultView;
|
|
2551
|
+
/**
|
|
2552
|
+
* Called when the operator switches view (controlled or not). Tabs report on
|
|
2553
|
+
* both pointer-down and focus, so one click can call this twice with the same
|
|
2554
|
+
* value before the host re-renders -- keep it idempotent (e.g. navigate only
|
|
2555
|
+
* if the path actually differs).
|
|
2556
|
+
*/
|
|
2557
|
+
onViewChange?: (view: ResultView) => void;
|
|
2558
|
+
/** View for the first result (uncontrolled), e.g. read from the URL. */
|
|
2559
|
+
initialView?: ResultView;
|
|
2560
|
+
}
|
|
2561
|
+
declare function ResultWorkspace({ kind, resultKey, graphPane, tablePane, view: controlledView, onViewChange, initialView, }: ResultWorkspaceProps): React__default.ReactElement;
|
|
2562
|
+
|
|
2563
|
+
/**
|
|
2564
|
+
* GraphPane -- the graph result pane: accessible element list, the renderer
|
|
2565
|
+
* canvas, and a resizable action (details/overview) panel.
|
|
2566
|
+
*
|
|
2567
|
+
* The generic part of cypher-graphdb's GraphViewer. App-specific behavior comes
|
|
2568
|
+
* in through props -- action buttons, extra toolbar content, copy handling,
|
|
2569
|
+
* edge-type lookup, a banner, and renderer persistence -- never through app
|
|
2570
|
+
* stores. The host provides the graph stores (GraphStoresContext).
|
|
2571
|
+
*/
|
|
2572
|
+
|
|
2573
|
+
interface GraphPaneProps extends GraphVisualizerProps {
|
|
2574
|
+
/** False while the graph data is still being prepared (shows the placeholder). */
|
|
2575
|
+
ready?: boolean;
|
|
2576
|
+
/** Placeholder text while not ready. */
|
|
2577
|
+
loadingLabel?: string;
|
|
2578
|
+
/** Overlay over the canvas, e.g. a LargeResultBanner. */
|
|
2579
|
+
banner?: React__default.ReactNode;
|
|
2580
|
+
/** Actions at the top of the action panel (e.g. CRUD buttons). */
|
|
2581
|
+
actions?: React__default.ReactNode;
|
|
2582
|
+
/** Initial renderer (default cytoscape). */
|
|
2583
|
+
defaultRenderer?: GraphRenderer;
|
|
2584
|
+
/** Called when the operator switches renderer (e.g. to persist it in the URL). */
|
|
2585
|
+
onRendererChange?: (renderer: GraphRenderer) => void;
|
|
2586
|
+
}
|
|
2587
|
+
declare function GraphPane({ ready, loadingLabel, banner, actions, defaultRenderer, onRendererChange, ...visualizerProps }: GraphPaneProps): React__default.ReactElement;
|
|
2588
|
+
|
|
2589
|
+
/**
|
|
2590
|
+
* LargeResultBanner -- persistent, non-blocking notice over the graph canvas
|
|
2591
|
+
* when the server bounded the query to the node budget: how many of the total
|
|
2592
|
+
* results are shown, and a nudge to refine. Renders nothing unless the result
|
|
2593
|
+
* was windowed and more rows exist.
|
|
2594
|
+
*/
|
|
2595
|
+
|
|
2596
|
+
declare function LargeResultBanner({ page, }: {
|
|
2597
|
+
page?: TabularPageInfo | null;
|
|
2598
|
+
}): React__default.ReactElement | null;
|
|
2599
|
+
|
|
2600
|
+
export { ActionPanel, CenteredMessage, DeleteNodeDialog, EMPTY_NORMALIZED, EdgeFormSheet, EdgeInfoCard, GraphA11yList, GraphChip, GraphEditToolbar, GraphFinder, GraphInspector, GraphModelEditor, GraphPane, GraphRendererProvider, GraphStoresContext, GraphVisualizer, JsonCell, JsonRenderer, LargeResultBanner, ModelActionPanel, NodeFormSheet, NodeInfoCard, NodeTypeNameSheet, OramaSearchService, Overview, PropertyFormSheet, QueryEditor, QueryHistory, RelationFormSheet, ResultViewTabs, ResultWorkspace, TabularVisualizer, TypeDetailPanel, addEdgeType, addNodeType, addRelation, asGraphCell, buildColorPalette, buildColorPaletteFromNodes, capabilitiesSchema, captionFor, cardinalityLabel, choosePane, classifyResult, colorForLabel, createActionPanelStore, createGraphDataStore, createGraphExplorationStore, createGraphFilterStore, createGraphFocusStore, createQueryHistoryStore, createSelectionStore, deleteEdgeType, deleteEdgeTypeProperty, deleteNodeProperty, deleteNodeType, deleteRelation, deleteRelationProperty, deriveHeaders, downloadFile, edgeTypeView, editableRelations, enrichEdge, enrichEdges, enrichNode, enrichNodes, enrichSchemaWithRelations, extractDisplayLabel, extractGraphFromRows, extractRelationFields, findEdgeType, findType, flattenGraphData, getCellValue, graphCapabilitiesSchema, groupEdgesByRelation, hasProperties, hasRelationFields, initializeFormData, isEdgeType, isFlatExportSuitable, isNodeType, isRawGraphNode, isRelationField, isViewValid, isVisualEdge, isVisualNode, modelToGraph, naturalView, nodeTypeView, normalizeGraph, propertyCount, reconcileFilter, relationFieldName, relationTitle, relationTypeFromField, relationView, renameEdgeType, renameNodeType, resolveCapabilities, resolveColumnNames, resolveGraphCapabilities, resolveRelationEdge, setEdgeTypeProperty, setNodeProperty, setRelationProperty, toCsv, toCytoscapeEdge, toCytoscapeNode, toJson, toReagraphEdge, toReagraphNode, toTsv, typeLabel, updateRelation, useActionPanelStore, useCytoscapeData, useGraphFocus, useGraphRenderer, useGraphSearch, useLiveGraphData, useReagraphData, useResultView, useStableRef, useWorkspaceGraphData, useWorkspaceGraphExploration, useWorkspaceGraphFilter, useWorkspaceGraphFocus, useWorkspaceSelection, validateCapabilities, validateGraphCapabilities };
|
|
2601
|
+
export type { ActionPanelState, ActionPanelStore, CapabilitiesValidation, Cardinality, ColorPalette, CreateEdgeInput, CreateNodeInput, CreateNodeWithRelationsInput, CreateNodeWithRelationsResult, DeleteNodeDialogProps, EdgeFormSheetProps, EdgeTypeMode, EdgeTypeView, EdgeVisual, EditMode$1 as EditMode, EditableMode, ExpandOptions, ExpandResult, ExtractedGraphRows, FlattenedEdge, FlattenedGraphData, FlattenedNode, GraphA11yListProps, GraphCapabilities, GraphCapabilitiesValidation, GraphCell, GraphDataHook, GraphDataStore, GraphDisplayConfig, EditMode as GraphEditMode, GraphEditToolbarProps, GraphExplorationDeps, GraphExplorationStore, GraphFilterStore, GraphFocusAction, GraphFocusStore, GraphModel, GraphModelCapabilities, GraphModelDisplay, GraphModelEditorProps, GraphModelProperty, GraphMutationPort, GraphPaneProps, GraphProperties, GraphProperty, GraphRelation, GraphRenderer, GraphSchemaProvider, GraphStatistics, WorkspaceStores as GraphStoreBundle, GraphTypeSchema, GraphVisualizerProps, LabelDisplayMap, LiveGraphDataResult, ModelActionPanelProps, ModelGraph, NodeFormSheetProps, NodeTypeNameSheetProps, NodeTypeView, NodeVisual, NormalizedData, NormalizedGraph, OramaDocument, OramaSearchResult, OramaSearchServiceConfig, PaneChoice, PropertyFormSheetProps, PropertyInput, PropertyView, QueryEditorProps, QueryHistoryState, QueryHistoryStore, RawGraphEdge, RawGraphNode, RelationCardinality, RelationDef, RelationDetailView, RelationFormSheetProps, RelationInput, RelationMap, RelationView, ResolvedCapabilities, ResolvedGraphCapabilities, ResultKind, ResultView, ResultWorkspaceProps, SearchOptions, SelectionStore, ServiceStats, StoreFactory, TabularHeaders, TabularMode, TabularPageInfo, TabularResult, TabularRow, TabularVisualizerProps, TypeDetailPanelProps, UpdateEdgeInput, UpdateNodeInput, UpdateNodeWithRelationsInput, UpdateNodeWithRelationsResult, UseGraphSearchReturn, VisualGraphEdge, VisualGraphNode, VisualGraphNormalized, WorkspaceStores, XGraph };
|