UNPKG

@rdkmaster/jigsaw-labs

Version:

Jigsaw, the next generation component set for RDK

87 lines (86 loc) 3.08 kB
import { ElementRef, EventEmitter, OnDestroy, Renderer2, TemplateRef, Type } from "@angular/core"; import { IPopupable, PopupOptions, PopupService } from "../../service/popup.service"; import { AbstractJigsawViewBase } from "../../component/common"; export declare enum DropDownTrigger { click = 0, mouseenter = 1, mouseleave = 2, none = 3, } export declare class JigsawFloat extends AbstractJigsawViewBase implements OnDestroy { private _renderer; private _elementRef; private _popupService; private _disposePopup; private _removeWindowClickHandler; private _removePopupClickHandler; private _removeMouseOverHandler; private _removeMouseOutHandler; private _removeRefreshCallback; private _rollOutDenouncesTimer; private _rollInDenouncesTimer; private _$target; private _popupElement; readonly popupElement: HTMLElement; /** * $demo = float/target */ jigsawFloatTarget: Type<IPopupable> | TemplateRef<any>; /** * $demo = float/option */ jigsawFloatOptions: PopupOptions; /** * $demo = float/position */ jigsawFloatPosition: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom'; /** * @internal */ private _$opened; jigsawFloatOpen: boolean; jigsawFloatOpenChange: EventEmitter<boolean>; private _openTrigger; /** * 打开下拉触发方式,默认值是'mouseenter' * $demo = float/trigger */ jigsawFloatOpenTrigger: 'click' | 'mouseenter' | 'none' | DropDownTrigger; private _closeTrigger; /** * 打开下拉触发方式,默认值是'mouseleave' * $demo = float/trigger */ jigsawFloatCloseTrigger: 'click' | 'mouseleave' | 'none' | DropDownTrigger; constructor(_renderer: Renderer2, _elementRef: ElementRef, _popupService: PopupService); ngOnDestroy(): void; /** * @internal */ _$openByHover(event: any): void; /** * @internal * @param event * @param offset 代表偏移,注册在float触发器上的mouseleave在计算element中的位置是要往前回退一个坐标, * 注册在弹出层上的mouseleave无需偏移 */ _$closeByHover(event: any, offset?: number): void; /** * @internal */ _$openAndCloseByClick(event: any): void; private _isChildOf(child, parent); private _openFloat(); private _getPos(); private _getHostElementPos(); private changePosByFloatPosition(pos, popupElement); private _getPopupOption(); /** * 计算弹层区域的位置,当指定的方向位置不够,且反向弹位置足够时,那么反向弹层 */ private _positionReviser(pos, popupElement); private _calPositionX(pos, leftDelta, popupElement, point, offsetWidth); private _calPositionY(pos, upDelta, popupElement, point, offsetHeight); private _closeFloat(); private _clearAllListeners(); }