UNPKG

@jswf/core

Version:

JavaScript Window Framework

249 lines (248 loc) 7.52 kB
import { BaseView, WINDOW_PARAMS, WINDOW_EVENT_MAP } from "./BaseView"; import "../scss/ListView.scss"; export interface LISTVIEW_EVENT_ITEM_CLICK { itemIndex: number; subItemIndex: number; event: MouseEvent; } export interface LISTVIEW_EVENT_DRAG_START { itemIndex: number; subItemIndex: number; event: DragEvent; } export interface ListViewEventMap extends WINDOW_EVENT_MAP { itemClick: [LISTVIEW_EVENT_ITEM_CLICK]; itemDblClick: [LISTVIEW_EVENT_ITEM_CLICK]; itemDragStart: [LISTVIEW_EVENT_DRAG_START]; } /** *ListView用クラス * * @export * @class ListView * @extends {BaseView} */ export declare class ListView extends BaseView<ListViewEventMap> { private headers; private resizers; private itemArea; private overIndex; private lastIndex; private selectIndexes; private sortIndex; private sortVector; private columnWidth; private columnAutoIndex; private areaWidth; /** *Creates an instance of ListView. * @param {*} [params] ウインドウ作成パラメータ * @memberof ListView */ constructor(params?: WINDOW_PARAMS); /** *カラムのサイズを設定 * * @param {number} index * @param {number} size * @memberof ListView */ setColumnWidth(index: number, size: number): void; /** *カラムのスタイルを設定 * * @param {number} col カラム番号 * @param {('left'|'right'|'center')} style スタイル * @memberof ListView */ setColumnStyle(col: number, style: "left" | "right" | "center"): void; /** *カラムのスタイルを複数設定 * * @param {(('left' | 'right' | 'center')[])} styles スタイル * @memberof ListView */ setColumnStyles(styles: ("left" | "right" | "center")[]): void; /** *ヘッダを追加 *配列にすると複数追加でき、さらに配列を含めるとサイズが指定できる * @param {(string|(string|[string,number])[])} labels ラベル | [ラベル,ラベル,・・・] | [[ラベル,幅],[ラベル,幅],・・・] * @param {number} [size] 幅 * @memberof ListView */ addHeader(label: string | (string | [string, number])[], size?: number): void; /** *アイテムのソートを行う * * @param {number} [index] カラム番号 * @param {boolean} [order] 方向 true:昇順 false:降順 * @memberof ListView */ sortItem(index?: number, order?: boolean): void; /** *アイテムを選択する *すでにある選択は解除される * @param {(number | number[])} index レコード番号 * @memberof ListView */ selectItem(index: number | number[]): void; /** *アイテムの選択を全て解除する * * @memberof ListView */ clearSelectItem(): void; /** *アイテムの選択を追加する * * @param {(number | number[])} index レコード番号 * @memberof ListView */ addSelectItem(index: number | number[]): void; /** *アイテムの選択を解除する * * @param {(number | number[])} index レコード番号 * @memberof ListView */ delSelectItem(index: number | number[]): void; /** *アイテムの数を返す * * @returns {number} アイテム数 * @memberof ListView */ getItemCount(): number; /** *アイテムが選択されているか返す * * @param {number} index レコード番号 * @returns {boolean} * @memberof ListView */ isSelectItem(index: number): boolean; private static getIndexOfNode; /** *アイテムを全て削除する * * @memberof ListView */ clearItem(): void; /** *対象セルのノードを取得 * * @param {number} row * @param {number} col * @returns * @memberof ListView */ getCell(row: number, col: number): HTMLElement & { value?: unknown; } | null; /** *アイテムに値を設定する * * @param {number} index レコード番号 * @param {*} value 値 * @memberof ListView */ setItemValue(index: number, value: unknown): void; /** *アイテムの値を取得する * * @param {number} index レコード番号 * @returns 値 * @memberof ListView * @returns {string} アイテムに設定されている値 */ getItemValue(index: number): unknown; /** *全てのアイテムの値を取得する * * @returns {unknown[]} * @memberof ListView */ getItemValues(): unknown[]; /** *アイテムのテキスト内容を取得 * * @param {number} row 行 * @param {number} col 列 * @returns {string} アイテムに設定されているテキスト * @memberof ListView */ getItemText(row: number, col: number): string | null; /** *最初に選択されているアイテムを返す * * @returns {number} 選択されているアイテム番号(見つからなかったら-1) * @memberof ListView */ getSelectItem(): number; /** *選択されている値を全て取得する * * @returns {unknown[]} 選択されているアイテムの値 * @memberof ListView */ getSelectValues(): unknown[]; /** *指定行のセルノードを返す * * @param {number} row * @returns * @memberof ListView */ getLineCells(row: number): HTMLElement[]; /** *アイテムを追加する *アイテムはテキストかノードが指定できる *配列を渡した場合は、複数追加となる * @param {(string|(string|HTMLElement)[])} value テキストもしくはノード * @returns * @memberof ListView */ addItem(value: string | number | HTMLElement | ((string | number | HTMLElement)[]), itemValue?: unknown): number; /** *ソート用のキーを設定する * * @param {number} row レコード番号 * @param {number} column カラム番号 * @param {*} value キー * @returns * @memberof ListView */ setSortKey(row: number, column: number, value: unknown): boolean; /** *ソート用のキーをまとめて設定する * * @param {number} row レコード番号 * @param {unknown[]} values キー配列 * @memberof ListView */ setSortKeys(row: number, values: unknown[]): void; /** *アイテムを書き換える * * @param {number} row レコード番号 * @param {number} column カラム番号 * @param {(string|HTMLElement)} value テキストもしくはノード * @returns * @memberof ListView */ setItem(row: number, column: number, value: string | number | HTMLElement): boolean; /** *ヘッダに合わせてカラムサイズを調整する *基本的には直接呼び出さない * @protected * @memberof ListView */ protected resize(): void; /** * * * @param {boolean} flag * @memberof ListView */ onLayout(flag: boolean): void; }