Tree

階層構造のデータをツリー形式で表示するコンポーネントです。ファイルシステムや組織図の表示に使用します。

Basic

jui-tree の最も基本的な使用例です。

Expanded

default-expand-all を設定すると、初期状態で全ノードを展開します。

With Checkbox

checkable を有効にすると、各ノードにチェックボックスが表示されます。

With Lines

show-line を有効にすると、親子間の接続線が表示されます。

アクセシビリティ

  • WAI-ARIA:
    • ツリー全体に role="tree" が設定されます。
    • 各ノードには role="treeitem" が設定されます。
    • 展開/折りたたみ状態は aria-expanded で通知されます。
    • チェック状態は aria-checked で通知されます。
  • キーボードナビゲーション:
    • / : ノード間の移動
    • : ノードの折りたたみ / 親ノードへ移動
    • : ノードの展開 / 子ノードへ移動
    • Space: チェックボックスの切り替え
    • Enter: ノードの選択

CSS カスタムプロパティ

このコンポーネント固有のカスタムプロパティはありません。グローバルのデザイントークン(--jui-color-border, --jui-color-text, --jui-color-brand 等)を参照して描画されます。

ブラウザ対応

このコンポーネントが使用しているブラウザ機能と対応状況です。

機能用途ChromeFirefoxSafariステータス
CSS Transitions展開/折りたたみアニメーション26+16+9+Baseline 2014
CSS 変数 (var())デザイントークン・カラー適用49+31+9.1+Baseline 2017

💡 いずれの機能も主要ブラウザで広く対応済みです。

関連コンポーネント

プロパティ

コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。

PropertyAttributeDescriptionTypeDefault
checkablecheckableチェックボックス表示booleanfalse
checkedKeyschecked-keysチェック済みのキー(JSON文字列 or 配列)string | string[]'[]'
defaultExpandAlldefault-expand-all初期状態で全ノード展開booleanfalse
expandedKeysexpanded-keys展開中のキー(JSON文字列 or 配列)string | string[]'[]'
selectableselectable選択可能booleantrue
selectedKeysselected-keys選択済みのキー(JSON文字列 or 配列)string | string[]'[]'
showLineshow-line接続線表示booleanfalse
treeDatatree-dataツリーデータ(JSON文字列 or 配列)TreeNode[] | string'[]'

イベント

コンポーネントから発火するカスタムイベントの一覧です。

EventDescriptionType
juiCheckノードチェック時CustomEvent<{ checkedKeys: string[]; node: TreeNode; }>
juiExpandノード展開/折りたたみ時CustomEvent<{ expandedKeys: string[]; node: TreeNode; }>
juiSelectノード選択時CustomEvent<{ selectedKeys: string[]; node: TreeNode; }>

シャドウパーツ

CSSから直接スタイリング可能な内部要素(Parts)の一覧です。

PartDescription
"checkbox"チェックボックス
"node"ツリーノード行
"switcher"展開/折りたたみアイコン
"title"ノードタイトル

Built with StencilJS