/*** * @file: 普通表格拖拽指令 * @Date: 2021-08-02 10:23:20 * @author: linkun.he */ import { AfterViewInit, ElementRef } from '@angular/core'; import { Subscription } from 'rxjs'; export declare class TableResizableDirective implements AfterViewInit { private $element; colListOfHead: HTMLCollection | any; thListOfHead: HTMLTableHeaderCellElement[]; trListOfBody: HTMLCollectionOf | any; colListOfBody: HTMLCollection; activeIdx: number; mousedown$: Subscription; mousemove$: Subscription; mouseup$: Subscription; mousemoveSubList: Subscription[]; minResizeWidth: number; constructor($element: ElementRef); /** * 页面渲染完成,获取表格元素 */ ngAfterViewInit(): void; /** * 获取表格元素内节点 */ getTableElements(): void; /** * 获取表格的引用 * @return [headTableRef, bodyTableRef] */ getTableRefs(): NodeListOf; /** * 在head当前列加入icon * @param idx 当前列的index */ insertIcon(idx: number): void; /** * 添加鼠标点击事件 * 鼠标右键点击:添加mouseMove、mouseup事件,松开则移除mouseMove、mouseup事件 * mousedownEvt.button: 0 鼠标左键 1 鼠标中键 2 鼠标右键 * @param icon icon实例 * @param idx 当前列的index */ addMouseDownListener(iconWrap: HTMLElement, idx: number): void; /** * 添加鼠标移动监听 * @param colOfHead 当前icon所在的列对应的head col * @param colOfBody 当前icon所在的列对应的body col * @param defaultWidth 当前icon所在的列对应的head col 初始宽度 * @param mousedownEvt mouseDown事件参数 */ addMouseMoveListener(colOfHead: HTMLTableElement, colOfBody: HTMLTableElement, defaultWidth: number, mousedownEvt: MouseEvent): void; /** * 设置icon的位置 * 暂时实现不了拖拽icon位置改变td宽度不变,因为td设置了超出隐藏,icon位置超出td会不显示 * @param idx 当前激活的index * @param increment 拖拽增加的大小 */ setIconWrapPosi(idx: number, increment: number): void; /** * 添加鼠标松开事件 */ addMouseUpListener(): void; /** * 移除鼠标移动和松开监听事件 */ removeMouseMoveAndUp(): void; /** * 添加鼠标移动时设置数据 * @param colOfHead 当前icon所在的列对应的head col * @param colOfBody 当前icon所在的列对应的body col * @param defaultWidth 当前icon所在的列对应的head col 初始宽度 * @param mousedownEvt mouseDown事件参数 * @param mousemoveEvt mousemove事件参数 * @param idx 当前index */ setData(colOfHead: HTMLTableElement, colOfBody: HTMLTableElement, full: number): void; /** * 设置head、body的left和right值 */ setThFixedAttr(): void; /** * 将 `3px` 转为数字 3 * @param width 带有px的宽度 */ deletePx(width: string): number; }