@jswf/core
Version:
JavaScript Window Framework
271 lines (270 loc) • 6.75 kB
TypeScript
import { BaseView, WINDOW_EVENT_MAP, WINDOW_PARAMS } from "./BaseView";
import "../scss/TreeView.scss";
export interface TREEVIEW_EVENT_SELECT {
item: TreeItem;
user: boolean;
}
export interface TREEVIEW_EVENT_DROP {
item: TreeItem;
srcValue?: unknown;
event: DragEvent;
}
export interface TREEVIEW_EVENT_DRAG_START {
item: TreeItem;
event: DragEvent;
}
export interface TREEVIEW_EVENT_OPEN {
item: TreeItem;
opened: boolean;
}
export interface TreeViewEventMap extends WINDOW_EVENT_MAP {
itemOver: [{
event: MouseEvent;
item: TreeItem;
}];
itemOpen: [TREEVIEW_EVENT_OPEN];
itemSelect: [TREEVIEW_EVENT_SELECT];
itemDblClick: [TREEVIEW_EVENT_SELECT];
itemDrop: [TREEVIEW_EVENT_DROP];
itemDragStart: [TREEVIEW_EVENT_DRAG_START];
}
/**
*
*
* @export
* @class TreeItem
*/
export declare class TreeItem {
private hNode;
private childNode;
private opened;
private body;
private value;
private keys;
/**
*Creates an instance of TreeItem.
* @param {string} [label]
* @param {boolean} [opened]
* @memberof TreeItem
*/
constructor(label?: string, opened?: boolean);
isOpened(): boolean;
/**
*アイテムのノードを返す
*
* @returns {HTMLElement}
* @memberof TreeItem
*/
getNode(): HTMLElement;
/**
*アイテムのラベル部分のノードを返す
*
* @returns {HTMLElement}
* @memberof TreeItem
*/
getBody(): HTMLElement;
/**
*アイテムに対してキーを関連付ける
*
* @param {string} name
* @param {*} value
* @memberof TreeItem
*/
setKey(name: string, value: unknown): void;
/**
*アイテムのキーを取得する
*
* @param {string} name
* @returns
* @memberof TreeItem
*/
getKey(name: string): unknown;
/**
*アイテムを追加する
*
* @param {*} [label] ラベル
* @param {boolean} [opened] オープン状態
* @returns {TreeItem} 追加したアイテム
* @memberof TreeItem
*/
addItem(label?: string | [string, unknown], opened?: boolean): TreeItem;
/**
*子アイテムを全てクリア
*
* @memberof TreeItem
*/
clearItem(): void;
/**
*自分自身を親から切り離す
*
* @memberof TreeItem
*/
removeItem(): void;
moveItem(vector: number): boolean;
/**
*子アイテムの数を返す
*
* @returns {number}
* @memberof TreeItem
*/
getChildCount(): number;
/**
*アイテムに関連付ける値を設定
*
* @param {*} value
* @memberof TreeItem
*/
setItemValue(value: unknown): void;
/**
*アイテムに関連付けた値を取得
*
* @returns {*}
* @memberof TreeItem
*/
getItemValue(): unknown;
/**
*アイテムのラベルを設定
*
* @param {string} value
* @memberof TreeItem
*/
setItemText(value: string): void;
/**
*アイテムのラベルを取得
*
* @returns {string}
* @memberof TreeItem
*/
getItemText(): string;
/**
*子アイテムを取得
*
* @param {number} index
* @returns {TreeItem}
* @memberof TreeItem
*/
getChildItem(index: number): TreeItem;
/**
*階層の深さを返す
*
* @returns
* @memberof TreeItem
*/
getTreeLevel(): number;
/**
*親アイテムを取得
*
* @returns {TreeItem}
* @memberof TreeItem
*/
getParentItem(): TreeItem | null;
/**
*自分を含めた階層から値を参照してアイテムを探す
*
* @param {*} value
* @returns {TreeItem}
* @memberof TreeItem
*/
findItemFromValue(value: unknown): TreeItem | null;
/**
*ツリーを展開する
*
* @param {boolean} opened
* @param {boolean} [anime]
* @memberof TreeItem
*/
openItem(opened: boolean, anime?: boolean): void;
/**
*アイテムを選択する
*
* @memberof TreeItem
*/
selectItem(scroll?: boolean, user?: boolean): void;
/**
*所属先のTreeViewを返す
*
* @returns {TreeView}
* @memberof TreeItem
*/
getTreeView(): TreeView | null;
}
/**
*TreeView用クラス
*
* @export
* @class TreeView
* @extends {BaseView}
*/
export declare class TreeView<T extends TreeViewEventMap = TreeViewEventMap> extends BaseView<T> {
private mRootItem;
private mSelectItem;
/**
*Creates an instance of TreeView.
* @memberof TreeView
*/
constructor(params?: WINDOW_PARAMS);
/**
* 設定されている相対を条件にアイテムを検索
*
* @param {*} value
* @returns {TreeItem}
* @memberof TreeView
*/
findItemFromValue(value: unknown): TreeItem | null;
/**
*最上位のアイテムを返す
*
* @returns {TreeItem}
* @memberof TreeView
*/
getRootItem(): TreeItem;
/**
*最上位の子としてアイテムを追加する
*
* @param {*} [label]
* @param {boolean} [opened]
* @returns {TreeItem}
* @memberof TreeView
*/
addItem(label?: string | [string, unknown], opened?: boolean): TreeItem;
/**
*アイテムを全て削除する
*
* @memberof TreeView
*/
clearItem(): void;
/**
*アイテムを選択する
*子アイテムが使用するので基本的には直接呼び出さない
* @param {TreeItem} item 選択するアイテム
* @memberof TreeView
*/
selectItem(item: TreeItem, scroll?: boolean, user?: boolean): void;
/**
* 設定されている値を条件にアイテムを選択
*
* @param {*} value
* @memberof TreeView
*/
selectItemFromValue(value: unknown, scroll?: boolean, user?: boolean): void;
/**
*選択されているアイテムを返す
*
* @returns 選択されているアイテム
* @memberof TreeView
*/
getSelectItem(): TreeItem | null;
/**
*選択されているアイテムの値を返す
*
* @returns
* @memberof TreeView
*/
getSelectItemValue(): unknown;
getTreeStat(): {
[key: string]: boolean;
};
setTreeStat(treeStat: {
[key: string]: boolean;
}): void;
}