@alifd/overlay
Version:
overlay base component
82 lines (81 loc) • 2.98 kB
TypeScript
/// <reference types="react" />
type CanListenNode = Document | HTMLElement;
export declare function useListener(nodeList: CanListenNode | CanListenNode[], eventName: string, callback: EventListenerOrEventListenerObject, useCapture: boolean, condition: boolean): void;
/**
* 将 N 个方法合并为一个链式调用的方法
* @return {Function} 合并后的方法
*
* @example
* func.makeChain(this.handleChange, this.props.onChange);
*/
export declare function makeChain(...fns: any[]): any;
export declare function callRef(ref: any, element: HTMLElement): void;
export declare function saveRef(ref: any): (element: any) => void;
/**
* 获取 position != static,用来计算相对位置的容器
* @param container
* @returns
*/
export declare const getRelativeContainer: (container: HTMLElement) => HTMLElement;
/**
* 获取 target 和 container 之间会滚动的元素 (不包含 target、container)
* 用来监听滚动元素,自动更新弹窗位置
* @param targetNode
* @param container
* @returns
*/
export declare const getOverflowNodes: (targetNode: HTMLElement, container: HTMLElement) => HTMLElement[];
export declare function getRect(target: HTMLElement): {
left: number;
top: number;
width: number;
height: number;
};
export declare function getViewPortExcludeSelf(target: HTMLElement): any;
/**
* 获取可视区域,用来计算弹窗应该相对哪个节点做上下左右的位置变化。
* @param container
* @returns
*/
export declare function getViewPort(container: HTMLElement): HTMLElement;
export declare function getStyle(elt: Element, name: string): string;
export declare function setStyle(node: HTMLElement, name: string | {
[key: string]: unknown;
} | React.CSSProperties, value?: string): void;
export declare function throttle(func: Function, wait: number): () => void;
export declare function debounce(func: Function, wait: number): () => void;
/**
* 元素相对于可视区的 left/top
* @param node
* @returns
*/
export declare function getViewTopLeft(node: HTMLElement): {
top: number;
left: number;
};
/**
* get element size
* offsetWidth/offsetHeight 更容易获取真实大小,不会受到动画影响优先使用。
* @param {Element} element
* @return {Object}
*/
export declare function getWidthHeight(element: HTMLElement): {
width: number;
height: number;
};
/**
* 获取默认的滚动条大小
* @return {Number} width
*/
export declare function getScrollbarWidth(): number;
/**
* 列出能获取焦点的子节点
* @param {Element} node 容器节点
* @return {Array<Element>}
*/
export declare function getFocusNodeList(node: HTMLElement): any;
export declare function getHTMLElement(node: any): any;
export declare function getTargetNode(target: any): any;
export declare function isSameObject(object1: object, object2: object): boolean;
export declare const useEvent: (handler: Function) => (...args: any[]) => any;
export {};