UNPKG

@jswf/core

Version:

JavaScript Window Framework

271 lines (270 loc) 6.75 kB
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; }