license /** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */ export type HorizontalConnectionPos = 'start' | 'center' | 'end' ; /** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */ export type VerticalConnectionPos = 'top' | 'center' | 'bottom' ; /** A connection point on the origin element. */ export interface OriginConnectionPosition { originX : HorizontalConnectionPos ; originY : VerticalConnectionPos ; } /** A connection point on the overlay element. */ export interface OverlayConnectionPosition { overlayX : HorizontalConnectionPos ; overlayY : VerticalConnectionPos ; } /** The points of the origin element and the overlay element to connect. */ export class ConnectionPositionPair { /** X-axis attachment point for connected overlay origin. Can be 'start', 'end', or 'center'. */ originX : HorizontalConnectionPos ; /** Y-axis attachment point for connected overlay origin. Can be 'top', 'bottom', or 'center'. */ originY : VerticalConnectionPos ; /** X-axis attachment point for connected overlay. Can be 'start', 'end', or 'center'. */ overlayX : HorizontalConnectionPos ; /** Y-axis attachment point for connected overlay. Can be 'top', 'bottom', or 'center'. */ overlayY : VerticalConnectionPos ; constructor ( origin , overlay , /** Offset along the X axis. */ public offsetX ? , /** Offset along the Y axis. */ public offsetY ? , /** Class(es) to be applied to the panel while this position is active. */ public panelClass ? ) { this . originX = origin . originX ; this . originY = origin . originY ; this . overlayX = overlay . overlayX ; this . overlayY = overlay . overlayY ; } } docs-private export class ScrollingVisibility { isOriginClipped : boolean ; isOriginOutsideView : boolean ; isOverlayClipped : boolean ; isOverlayOutsideView : boolean ; } /** The change event emitted by the strategy when a fallback position is used. */ export class ConnectedOverlayPositionChange { constructor ( /** The position used as a result of this change. */ public connectionPair , docs-private public scrollableViewProperties ) { } } param property param value docs-private export function validateVerticalPosition ( property , value ) { if ( value !== 'top' && value !== 'bottom' && value !== 'center' ) { throw Error ( `ConnectedPosition: Invalid ${ property } "${ value }". ` + `Expected "top", "bottom" or "center".` ) ; } } param property param value docs-private export function validateHorizontalPosition ( property , value ) { if ( value !== 'start' && value !== 'end' && value !== 'center' ) { throw Error ( `ConnectedPosition: Invalid ${ property } "${ value }". ` + `Expected "start", "end" or "center".` ) ; } }