@alyle/ui
Version:
Minimal Design, a set of components for Angular
85 lines (84 loc) • 2.58 kB
TypeScript
import { XPosition, YPosition } from './position';
import { LyTheme2 } from '../theme/theme2.service';
import { ViewportRuler } from '@angular/cdk/scrolling';
export declare class LyOverlayPosition {
private _theme;
private _viewportRuler;
private _trigger;
private _overlay;
private _triggerRect;
private _overlayRect;
private _xAnchor?;
private _yAnchor?;
private _xAxis;
private _yAxis;
private _flip;
private _viewportOffset;
private _viewportHeight;
private _viewportWidth;
private _xOffset;
private _yOffset;
private _rawX;
private _rawY;
/** Transform element's bounding `ClientRect` before render. */
private _transform?;
private _anchorDir;
private _axisDir;
/** xAnchor position */
private _xa;
/** XAnchor position */
private _ya;
get x(): number;
private _x;
get y(): number;
private _y;
get xo(): number;
private _xo;
get yo(): number;
private _yo;
get width(): number;
private _width;
get height(): number;
private _height;
get triggerRect(): ClientRect;
/** Returns x, but not rounded */
get rawX(): number;
/** Returns y, but not rounded */
get rawY(): number;
constructor(_theme: LyTheme2, _viewportRuler: ViewportRuler, _trigger: Element, _overlay: Element);
build(): this;
private _updateRects;
private _setDefaultAnchor;
private _callTransformIfExists;
private _updateDir;
private _calculateResponsive;
/**
* Return true if the menu overflows vertically
*/
private _isOverflowX;
private _isOverflowLeft;
private _isOverflowRight;
/** Return true the menu overflows horizontally */
private _isOverflowY;
private _isOverflowTop;
private _isOverflowBottom;
private _calculate;
private _calculateAnchorPosition;
private _calculateAxis;
/** Calculate origin for overlay */
private _calculateOrigin;
private _round;
setXAnchor(val: XPosition | number): this;
setYAnchor(val: YPosition | number): this;
setXAxis(val?: XPosition | null): this;
setYAxis(val?: YPosition | null): this;
setFlip(flip?: boolean): this;
setXOffset(val: number): this;
setYOffset(val: number): this;
/**
* Offset from the edge of the viewport to the center.
* It is the minimum space that must be between the window and the overlay.
*/
setViewportOffset(val: number): this;
setTransform(transform: (triggerRect: ClientRect, overlayRect: ClientRect) => void): this;
}