@rdkmaster/jigsaw-labs
Version:
Jigsaw, the next generation component set for RDK
87 lines (86 loc) • 3.08 kB
TypeScript
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();
}