<MiniMap />
<MiniMap />コンポーネントは、フローの概要を表示するために使用できます。各ノードをSVG要素としてレンダリングし、現在のビューポートがフローの他の部分とどのように関連しているかを視覚化します。
<script lang="ts">
import { writable } from 'svelte/store';
import { SvelteFlow, MiniMap } from '@xyflow/svelte';
const nodes = writable([]);
const edges = writable([]);
</script>
<SvelteFlow nodes={nodes} edges={edges}>
<MiniMap nodeStrokeWidth={3} />
</SvelteFlow>プロパティ
TypeScriptユーザーの場合、<MiniMap />コンポーネントのプロパティ型はMiniMapPropsとしてエクスポートされます。
| 名前 | 型 | デフォルト値 |
|---|---|---|
# class? | string | |
# style? | string | |
# width? | number | |
# height? | number | |
# bgColor? | string | |
# nodeColor? | string | (node: Node<T>) => string | |
# nodeStrokeColor? | string | (node: Node<T>) => string | |
# nodeClass? | string | (node: Node<T>) => string | |
# nodeBorderRadius? | number | |
# nodeStrokeWidth? | number | |
# maskColor? | string | |
# maskStrokeColor? | string | |
# maskStrokeWidth? | number | |
# position? | PanelPosition | |
# pannable? | booleanミニマップ内でドラッグしてビューポートをパンできるかどうかを決定します。 | |
# zoomable? | booleanミニマップ内でスクロールしてビューポートをズームできるかどうかを決定します。 | |
# ariaLabel? | string | nullスクリーンリーダーがアクセシブル名として使用できるミニマップ内のテキストがないため、ミニマップをアクセシブルにするには、アクセシブル名を提供することが重要です。デフォルト値で十分ですが、アプリや製品に関連するより適切な名前に置き換えることもできます。 | |
# inversePan? | boolean | |
# zoomStep? | number | |
例
ミニマップのインタラクティブ化
デフォルトでは、ミニマップはインタラクティブではありません。ユーザーがミニマップをパンまたはズームしてビューポートを操作できるようにするには、zoomableまたはpannableプロパティ(または両方)をtrueに設定します。
<script lang="ts">
import { writable } from 'svelte/store';
import { SvelteFlow, MiniMap } from '@xyflow/svelte';
const nodes = writable([]);
const edges = writable([]);
</script>
<SvelteFlow nodes={nodes} edges={edges}>
<MiniMap pannable zoomable />
</SvelteFlow>ミニマップノード色のカスタマイズ
nodeColor、nodeStrokeColor、およびnodeClassNameプロパティは、Nodeを受け取り、プロパティの値を計算する関数にすることができます。これは、各ミニマップノードの外観をカスタマイズするために使用できます。
この例では、ノードの種類に基づいて各ミニマップノードの色を付ける方法を示しています。
<script lang="ts">
import { writable } from 'svelte/store';
import { SvelteFlow, MiniMap } from '@xyflow/svelte';
const nodes = writable([]);
const edges = writable([]);
function nodeColor(node) {
return node.type === 'input' ? 'blue' : 'red';
}
</script>
<SvelteFlow nodes={nodes} edges={edges}>
<MiniMap nodeColor={nodeColor} />
</SvelteFlow>