UNPKG

@alifd/overlay

Version:
82 lines (81 loc) 2.98 kB
/// <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 {};