| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175 |
- import { BooleanInput } from '@angular/cdk/coercion';
- import { CdkScrollable } from '@angular/cdk/scrolling';
- import { ComponentFactoryResolver } from '@angular/core';
- import { ComponentPortal } from '@angular/cdk/portal';
- import { ComponentRef } from '@angular/core';
- import { ComponentType } from '@angular/cdk/portal';
- import { Direction } from '@angular/cdk/bidi';
- import { Directionality } from '@angular/cdk/bidi';
- import { ElementRef } from '@angular/core';
- import { EmbeddedViewRef } from '@angular/core';
- import { EventEmitter } from '@angular/core';
- import * as i0 from '@angular/core';
- import * as i1 from '@angular/cdk/bidi';
- import * as i2 from '@angular/cdk/portal';
- import * as i3 from '@angular/cdk/scrolling';
- import { InjectionToken } from '@angular/core';
- import { Injector } from '@angular/core';
- import { Location as Location_2 } from '@angular/common';
- import { NgZone } from '@angular/core';
- import { Observable } from 'rxjs';
- import { OnChanges } from '@angular/core';
- import { OnDestroy } from '@angular/core';
- import { Platform } from '@angular/cdk/platform';
- import { PortalOutlet } from '@angular/cdk/portal';
- import { ScrollDispatcher } from '@angular/cdk/scrolling';
- import { SimpleChanges } from '@angular/core';
- import { Subject } from 'rxjs';
- import { TemplatePortal } from '@angular/cdk/portal';
- import { TemplateRef } from '@angular/core';
- import { ViewContainerRef } from '@angular/core';
- import { ViewportRuler } from '@angular/cdk/scrolling';
- /**
- * Service for dispatching events that land on the body to appropriate overlay ref,
- * if any. It maintains a list of attached overlays to determine best suited overlay based
- * on event target and order of overlay opens.
- */
- declare abstract class BaseOverlayDispatcher implements OnDestroy {
- /** Currently attached overlays in the order they were attached. */
- _attachedOverlays: OverlayRef[];
- protected _document: Document;
- protected _isAttached: boolean;
- constructor(document: any);
- ngOnDestroy(): void;
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef: OverlayRef): void;
- /** Remove an overlay from the list of attached overlay refs. */
- remove(overlayRef: OverlayRef): void;
- /** Detaches the global event listener. */
- protected abstract detach(): void;
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseOverlayDispatcher, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<BaseOverlayDispatcher>;
- }
- /**
- * Strategy that will prevent the user from scrolling while the overlay is visible.
- */
- export declare class BlockScrollStrategy implements ScrollStrategy {
- private _viewportRuler;
- private _previousHTMLStyles;
- private _previousScrollPosition;
- private _isEnabled;
- private _document;
- constructor(_viewportRuler: ViewportRuler, document: any);
- /** Attaches this scroll strategy to an overlay. */
- attach(): void;
- /** Blocks page-level scroll while the attached overlay is open. */
- enable(): void;
- /** Unblocks page-level scroll while the attached overlay is open. */
- disable(): void;
- private _canBeEnabled;
- }
- /** Injection token that determines the scroll handling while the connected overlay is open. */
- declare const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY: InjectionToken<() => ScrollStrategy>;
- /** @docs-private */
- declare const CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER: {
- provide: InjectionToken<() => ScrollStrategy>;
- deps: (typeof Overlay)[];
- useFactory: typeof CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY;
- };
- /** @docs-private */
- declare function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay): () => RepositionScrollStrategy;
- /**
- * Directive to facilitate declarative creation of an
- * Overlay using a FlexibleConnectedPositionStrategy.
- */
- export declare class CdkConnectedOverlay implements OnDestroy, OnChanges {
- private _overlay;
- private _dir;
- private _overlayRef;
- private _templatePortal;
- private _hasBackdrop;
- private _lockPosition;
- private _growAfterOpen;
- private _flexibleDimensions;
- private _push;
- private _backdropSubscription;
- private _attachSubscription;
- private _detachSubscription;
- private _positionSubscription;
- private _offsetX;
- private _offsetY;
- private _position;
- private _scrollStrategyFactory;
- /** Origin for the connected overlay. */
- origin: CdkOverlayOrigin | FlexibleConnectedPositionStrategyOrigin;
- /** Registered connected position pairs. */
- positions: ConnectedPosition[];
- /**
- * This input overrides the positions input if specified. It lets users pass
- * in arbitrary positioning strategies.
- */
- positionStrategy: FlexibleConnectedPositionStrategy;
- /** The offset in pixels for the overlay connection point on the x-axis */
- get offsetX(): number;
- set offsetX(offsetX: number);
- /** The offset in pixels for the overlay connection point on the y-axis */
- get offsetY(): number;
- set offsetY(offsetY: number);
- /** The width of the overlay panel. */
- width: number | string;
- /** The height of the overlay panel. */
- height: number | string;
- /** The min width of the overlay panel. */
- minWidth: number | string;
- /** The min height of the overlay panel. */
- minHeight: number | string;
- /** The custom class to be set on the backdrop element. */
- backdropClass: string | string[];
- /** The custom class to add to the overlay pane element. */
- panelClass: string | string[];
- /** Margin between the overlay and the viewport edges. */
- viewportMargin: number;
- /** Strategy to be used when handling scroll events while the overlay is open. */
- scrollStrategy: ScrollStrategy;
- /** Whether the overlay is open. */
- open: boolean;
- /** Whether the overlay can be closed by user interaction. */
- disableClose: boolean;
- /** CSS selector which to set the transform origin. */
- transformOriginSelector: string;
- /** Whether or not the overlay should attach a backdrop. */
- get hasBackdrop(): boolean;
- set hasBackdrop(value: BooleanInput);
- /** Whether or not the overlay should be locked when scrolling. */
- get lockPosition(): boolean;
- set lockPosition(value: BooleanInput);
- /** Whether the overlay's width and height can be constrained to fit within the viewport. */
- get flexibleDimensions(): boolean;
- set flexibleDimensions(value: BooleanInput);
- /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */
- get growAfterOpen(): boolean;
- set growAfterOpen(value: BooleanInput);
- /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */
- get push(): boolean;
- set push(value: BooleanInput);
- /** Event emitted when the backdrop is clicked. */
- readonly backdropClick: EventEmitter<MouseEvent>;
- /** Event emitted when the position has changed. */
- readonly positionChange: EventEmitter<ConnectedOverlayPositionChange>;
- /** Event emitted when the overlay has been attached. */
- readonly attach: EventEmitter<void>;
- /** Event emitted when the overlay has been detached. */
- readonly detach: EventEmitter<void>;
- /** Emits when there are keyboard events that are targeted at the overlay. */
- readonly overlayKeydown: EventEmitter<KeyboardEvent>;
- /** Emits when there are mouse outside click events that are targeted at the overlay. */
- readonly overlayOutsideClick: EventEmitter<MouseEvent>;
- constructor(_overlay: Overlay, templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef, scrollStrategyFactory: any, _dir: Directionality);
- /** The associated overlay reference. */
- get overlayRef(): OverlayRef;
- /** The element's layout direction. */
- get dir(): Direction;
- ngOnDestroy(): void;
- ngOnChanges(changes: SimpleChanges): void;
- /** Creates an overlay */
- private _createOverlay;
- /** Builds the overlay config based on the directive's inputs */
- private _buildConfig;
- /** Updates the state of a position strategy, based on the values of the directive inputs. */
- private _updatePositionStrategy;
- /** Returns the position strategy of the overlay to be set on the overlay config */
- private _createPositionStrategy;
- private _getFlexibleConnectedPositionStrategyOrigin;
- /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */
- private _attachOverlay;
- /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */
- private _detachOverlay;
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkConnectedOverlay, [null, null, null, null, { optional: true; }]>;
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkConnectedOverlay, "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", ["cdkConnectedOverlay"], { "origin": { "alias": "cdkConnectedOverlayOrigin"; "required": false; }; "positions": { "alias": "cdkConnectedOverlayPositions"; "required": false; }; "positionStrategy": { "alias": "cdkConnectedOverlayPositionStrategy"; "required": false; }; "offsetX": { "alias": "cdkConnectedOverlayOffsetX"; "required": false; }; "offsetY": { "alias": "cdkConnectedOverlayOffsetY"; "required": false; }; "width": { "alias": "cdkConnectedOverlayWidth"; "required": false; }; "height": { "alias": "cdkConnectedOverlayHeight"; "required": false; }; "minWidth": { "alias": "cdkConnectedOverlayMinWidth"; "required": false; }; "minHeight": { "alias": "cdkConnectedOverlayMinHeight"; "required": false; }; "backdropClass": { "alias": "cdkConnectedOverlayBackdropClass"; "required": false; }; "panelClass": { "alias": "cdkConnectedOverlayPanelClass"; "required": false; }; "viewportMargin": { "alias": "cdkConnectedOverlayViewportMargin"; "required": false; }; "scrollStrategy": { "alias": "cdkConnectedOverlayScrollStrategy"; "required": false; }; "open": { "alias": "cdkConnectedOverlayOpen"; "required": false; }; "disableClose": { "alias": "cdkConnectedOverlayDisableClose"; "required": false; }; "transformOriginSelector": { "alias": "cdkConnectedOverlayTransformOriginOn"; "required": false; }; "hasBackdrop": { "alias": "cdkConnectedOverlayHasBackdrop"; "required": false; }; "lockPosition": { "alias": "cdkConnectedOverlayLockPosition"; "required": false; }; "flexibleDimensions": { "alias": "cdkConnectedOverlayFlexibleDimensions"; "required": false; }; "growAfterOpen": { "alias": "cdkConnectedOverlayGrowAfterOpen"; "required": false; }; "push": { "alias": "cdkConnectedOverlayPush"; "required": false; }; }, { "backdropClick": "backdropClick"; "positionChange": "positionChange"; "attach": "attach"; "detach": "detach"; "overlayKeydown": "overlayKeydown"; "overlayOutsideClick": "overlayOutsideClick"; }, never, never, true, never>;
- }
- /**
- * Directive applied to an element to make it usable as an origin for an Overlay using a
- * ConnectedPositionStrategy.
- */
- export declare class CdkOverlayOrigin {
- /** Reference to the element on which the directive is applied. */
- elementRef: ElementRef;
- constructor(
- /** Reference to the element on which the directive is applied. */
- elementRef: ElementRef);
- static ɵfac: i0.ɵɵFactoryDeclaration<CdkOverlayOrigin, never>;
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkOverlayOrigin, "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", ["cdkOverlayOrigin"], {}, {}, never, never, true, never>;
- }
- export { CdkScrollable }
- /**
- * Strategy that will close the overlay as soon as the user starts scrolling.
- */
- export declare class CloseScrollStrategy implements ScrollStrategy {
- private _scrollDispatcher;
- private _ngZone;
- private _viewportRuler;
- private _config?;
- private _scrollSubscription;
- private _overlayRef;
- private _initialScrollPosition;
- constructor(_scrollDispatcher: ScrollDispatcher, _ngZone: NgZone, _viewportRuler: ViewportRuler, _config?: CloseScrollStrategyConfig | undefined);
- /** Attaches this scroll strategy to an overlay. */
- attach(overlayRef: OverlayRef): void;
- /** Enables the closing of the attached overlay on scroll. */
- enable(): void;
- /** Disables the closing the attached overlay on scroll. */
- disable(): void;
- detach(): void;
- /** Detaches the overlay ref and disables the scroll strategy. */
- private _detach;
- }
- /**
- * Config options for the CloseScrollStrategy.
- */
- declare interface CloseScrollStrategyConfig {
- /** Amount of pixels the user has to scroll before the overlay is closed. */
- threshold?: number;
- }
- export { ComponentType }
- /** The change event emitted by the strategy when a fallback position is used. */
- export declare class ConnectedOverlayPositionChange {
- /** The position used as a result of this change. */
- connectionPair: ConnectionPositionPair;
- /** @docs-private */
- scrollableViewProperties: ScrollingVisibility;
- constructor(
- /** The position used as a result of this change. */
- connectionPair: ConnectionPositionPair,
- /** @docs-private */
- scrollableViewProperties: ScrollingVisibility);
- }
- /** A connected position as specified by the user. */
- export declare interface ConnectedPosition {
- originX: 'start' | 'center' | 'end';
- originY: 'top' | 'center' | 'bottom';
- overlayX: 'start' | 'center' | 'end';
- overlayY: 'top' | 'center' | 'bottom';
- weight?: number;
- offsetX?: number;
- offsetY?: number;
- panelClass?: string | string[];
- }
- /** The points of the origin element and the overlay element to connect. */
- export declare class ConnectionPositionPair {
- /** Offset along the X axis. */
- offsetX?: number | undefined;
- /** Offset along the Y axis. */
- offsetY?: number | undefined;
- /** Class(es) to be applied to the panel while this position is active. */
- panelClass?: string | string[] | undefined;
- /** 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: OriginConnectionPosition, overlay: OverlayConnectionPosition,
- /** Offset along the X axis. */
- offsetX?: number | undefined,
- /** Offset along the Y axis. */
- offsetY?: number | undefined,
- /** Class(es) to be applied to the panel while this position is active. */
- panelClass?: string | string[] | undefined);
- }
- /**
- * A strategy for positioning overlays. Using this strategy, an overlay is given an
- * implicit position relative some origin element. The relative position is defined in terms of
- * a point on the origin element that is connected to a point on the overlay element. For example,
- * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner
- * of the overlay.
- */
- export declare class FlexibleConnectedPositionStrategy implements PositionStrategy {
- private _viewportRuler;
- private _document;
- private _platform;
- private _overlayContainer;
- /** The overlay to which this strategy is attached. */
- private _overlayRef;
- /** Whether we're performing the very first positioning of the overlay. */
- private _isInitialRender;
- /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */
- private _lastBoundingBoxSize;
- /** Whether the overlay was pushed in a previous positioning. */
- private _isPushed;
- /** Whether the overlay can be pushed on-screen on the initial open. */
- private _canPush;
- /** Whether the overlay can grow via flexible width/height after the initial open. */
- private _growAfterOpen;
- /** Whether the overlay's width and height can be constrained to fit within the viewport. */
- private _hasFlexibleDimensions;
- /** Whether the overlay position is locked. */
- private _positionLocked;
- /** Cached origin dimensions */
- private _originRect;
- /** Cached overlay dimensions */
- private _overlayRect;
- /** Cached viewport dimensions */
- private _viewportRect;
- /** Cached container dimensions */
- private _containerRect;
- /** Amount of space that must be maintained between the overlay and the edge of the viewport. */
- private _viewportMargin;
- /** The Scrollable containers used to check scrollable view properties on position change. */
- private _scrollables;
- /** Ordered list of preferred positions, from most to least desirable. */
- _preferredPositions: ConnectionPositionPair[];
- /** The origin element against which the overlay will be positioned. */
- _origin: FlexibleConnectedPositionStrategyOrigin;
- /** The overlay pane element. */
- private _pane;
- /** Whether the strategy has been disposed of already. */
- private _isDisposed;
- /**
- * Parent element for the overlay panel used to constrain the overlay panel's size to fit
- * within the viewport.
- */
- private _boundingBox;
- /** The last position to have been calculated as the best fit position. */
- private _lastPosition;
- /** Subject that emits whenever the position changes. */
- private readonly _positionChanges;
- /** Subscription to viewport size changes. */
- private _resizeSubscription;
- /** Default offset for the overlay along the x axis. */
- private _offsetX;
- /** Default offset for the overlay along the y axis. */
- private _offsetY;
- /** Selector to be used when finding the elements on which to set the transform origin. */
- private _transformOriginSelector;
- /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */
- private _appliedPanelClasses;
- /** Amount by which the overlay was pushed in each axis during the last time it was positioned. */
- private _previousPushAmount;
- /** Observable sequence of position changes. */
- positionChanges: Observable<ConnectedOverlayPositionChange>;
- /** Ordered list of preferred positions, from most to least desirable. */
- get positions(): ConnectionPositionPair[];
- constructor(connectedTo: FlexibleConnectedPositionStrategyOrigin, _viewportRuler: ViewportRuler, _document: Document, _platform: Platform, _overlayContainer: OverlayContainer);
- /** Attaches this position strategy to an overlay. */
- attach(overlayRef: OverlayRef): void;
- /**
- * Updates the position of the overlay element, using whichever preferred position relative
- * to the origin best fits on-screen.
- *
- * The selection of a position goes as follows:
- * - If any positions fit completely within the viewport as-is,
- * choose the first position that does so.
- * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,
- * choose the position with the greatest available size modified by the positions' weight.
- * - If pushing is enabled, take the position that went off-screen the least and push it
- * on-screen.
- * - If none of the previous criteria were met, use the position that goes off-screen the least.
- * @docs-private
- */
- apply(): void;
- detach(): void;
- /** Cleanup after the element gets destroyed. */
- dispose(): void;
- /**
- * This re-aligns the overlay element with the trigger in its last calculated position,
- * even if a position higher in the "preferred positions" list would now fit. This
- * allows one to re-align the panel without changing the orientation of the panel.
- */
- reapplyLastPosition(): void;
- /**
- * Sets the list of Scrollable containers that host the origin element so that
- * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every
- * Scrollable must be an ancestor element of the strategy's origin element.
- */
- withScrollableContainers(scrollables: CdkScrollable[]): this;
- /**
- * Adds new preferred positions.
- * @param positions List of positions options for this overlay.
- */
- withPositions(positions: ConnectedPosition[]): this;
- /**
- * Sets a minimum distance the overlay may be positioned to the edge of the viewport.
- * @param margin Required margin between the overlay and the viewport edge in pixels.
- */
- withViewportMargin(margin: number): this;
- /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */
- withFlexibleDimensions(flexibleDimensions?: boolean): this;
- /** Sets whether the overlay can grow after the initial open via flexible width/height. */
- withGrowAfterOpen(growAfterOpen?: boolean): this;
- /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */
- withPush(canPush?: boolean): this;
- /**
- * Sets whether the overlay's position should be locked in after it is positioned
- * initially. When an overlay is locked in, it won't attempt to reposition itself
- * when the position is re-applied (e.g. when the user scrolls away).
- * @param isLocked Whether the overlay should locked in.
- */
- withLockedPosition(isLocked?: boolean): this;
- /**
- * Sets the origin, relative to which to position the overlay.
- * Using an element origin is useful for building components that need to be positioned
- * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be
- * used for cases like contextual menus which open relative to the user's pointer.
- * @param origin Reference to the new origin.
- */
- setOrigin(origin: FlexibleConnectedPositionStrategyOrigin): this;
- /**
- * Sets the default offset for the overlay's connection point on the x-axis.
- * @param offset New offset in the X axis.
- */
- withDefaultOffsetX(offset: number): this;
- /**
- * Sets the default offset for the overlay's connection point on the y-axis.
- * @param offset New offset in the Y axis.
- */
- withDefaultOffsetY(offset: number): this;
- /**
- * Configures that the position strategy should set a `transform-origin` on some elements
- * inside the overlay, depending on the current position that is being applied. This is
- * useful for the cases where the origin of an animation can change depending on the
- * alignment of the overlay.
- * @param selector CSS selector that will be used to find the target
- * elements onto which to set the transform origin.
- */
- withTransformOriginOn(selector: string): this;
- /**
- * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.
- */
- private _getOriginPoint;
- /**
- * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and
- * origin point to which the overlay should be connected.
- */
- private _getOverlayPoint;
- /** Gets how well an overlay at the given point will fit within the viewport. */
- private _getOverlayFit;
- /**
- * Whether the overlay can fit within the viewport when it may resize either its width or height.
- * @param fit How well the overlay fits in the viewport at some position.
- * @param point The (x, y) coordinates of the overlay at some position.
- * @param viewport The geometry of the viewport.
- */
- private _canFitWithFlexibleDimensions;
- /**
- * Gets the point at which the overlay can be "pushed" on-screen. If the overlay is larger than
- * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the
- * right and bottom).
- *
- * @param start Starting point from which the overlay is pushed.
- * @param rawOverlayRect Dimensions of the overlay.
- * @param scrollPosition Current viewport scroll position.
- * @returns The point at which to position the overlay after pushing. This is effectively a new
- * originPoint.
- */
- private _pushOverlayOnScreen;
- /**
- * Applies a computed position to the overlay and emits a position change.
- * @param position The position preference
- * @param originPoint The point on the origin element where the overlay is connected.
- */
- private _applyPosition;
- /** Sets the transform origin based on the configured selector and the passed-in position. */
- private _setTransformOrigin;
- /**
- * Gets the position and size of the overlay's sizing container.
- *
- * This method does no measuring and applies no styles so that we can cheaply compute the
- * bounds for all positions and choose the best fit based on these results.
- */
- private _calculateBoundingBoxRect;
- /**
- * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the
- * origin's connection point and stretches to the bounds of the viewport.
- *
- * @param origin The point on the origin element where the overlay is connected.
- * @param position The position preference
- */
- private _setBoundingBoxStyles;
- /** Resets the styles for the bounding box so that a new positioning can be computed. */
- private _resetBoundingBoxStyles;
- /** Resets the styles for the overlay pane so that a new positioning can be computed. */
- private _resetOverlayElementStyles;
- /** Sets positioning styles to the overlay element. */
- private _setOverlayElementStyles;
- /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */
- private _getExactOverlayY;
- /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */
- private _getExactOverlayX;
- /**
- * Gets the view properties of the trigger and overlay, including whether they are clipped
- * or completely outside the view of any of the strategy's scrollables.
- */
- private _getScrollVisibility;
- /** Subtracts the amount that an element is overflowing on an axis from its length. */
- private _subtractOverflows;
- /** Narrows the given viewport rect by the current _viewportMargin. */
- private _getNarrowedViewportRect;
- /** Whether the we're dealing with an RTL context */
- private _isRtl;
- /** Determines whether the overlay uses exact or flexible positioning. */
- private _hasExactPosition;
- /** Retrieves the offset of a position along the x or y axis. */
- private _getOffset;
- /** Validates that the current position match the expected values. */
- private _validatePositions;
- /** Adds a single CSS class or an array of classes on the overlay panel. */
- private _addPanelClasses;
- /** Clears the classes that the position strategy has applied from the overlay panel. */
- private _clearPanelClasses;
- /** Returns the ClientRect of the current origin. */
- private _getOriginRect;
- }
- /** Possible values that can be set as the origin of a FlexibleConnectedPositionStrategy. */
- export declare type FlexibleConnectedPositionStrategyOrigin = ElementRef | Element | (Point & {
- width?: number;
- height?: number;
- });
- /**
- * Alternative to OverlayContainer that supports correct displaying of overlay elements in
- * Fullscreen mode
- * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
- *
- * Should be provided in the root component.
- */
- export declare class FullscreenOverlayContainer extends OverlayContainer implements OnDestroy {
- private _fullScreenEventName;
- private _fullScreenListener;
- constructor(_document: any, platform: Platform);
- ngOnDestroy(): void;
- protected _createContainer(): void;
- private _adjustParentForFullscreenChange;
- private _addFullscreenChangeListener;
- private _getEventName;
- /**
- * When the page is put into fullscreen mode, a specific element is specified.
- * Only that element and its children are visible when in fullscreen mode.
- */
- getFullscreenElement(): Element;
- static ɵfac: i0.ɵɵFactoryDeclaration<FullscreenOverlayContainer, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<FullscreenOverlayContainer>;
- }
- /**
- * A strategy for positioning overlays. Using this strategy, an overlay is given an
- * explicit position relative to the browser's viewport. We use flexbox, instead of
- * transforms, in order to avoid issues with subpixel rendering which can cause the
- * element to become blurry.
- */
- export declare class GlobalPositionStrategy implements PositionStrategy {
- /** The overlay to which this strategy is attached. */
- private _overlayRef;
- private _cssPosition;
- private _topOffset;
- private _bottomOffset;
- private _alignItems;
- private _xPosition;
- private _xOffset;
- private _width;
- private _height;
- private _isDisposed;
- attach(overlayRef: OverlayRef): void;
- /**
- * Sets the top position of the overlay. Clears any previously set vertical position.
- * @param value New top offset.
- */
- top(value?: string): this;
- /**
- * Sets the left position of the overlay. Clears any previously set horizontal position.
- * @param value New left offset.
- */
- left(value?: string): this;
- /**
- * Sets the bottom position of the overlay. Clears any previously set vertical position.
- * @param value New bottom offset.
- */
- bottom(value?: string): this;
- /**
- * Sets the right position of the overlay. Clears any previously set horizontal position.
- * @param value New right offset.
- */
- right(value?: string): this;
- /**
- * Sets the overlay to the start of the viewport, depending on the overlay direction.
- * This will be to the left in LTR layouts and to the right in RTL.
- * @param offset Offset from the edge of the screen.
- */
- start(value?: string): this;
- /**
- * Sets the overlay to the end of the viewport, depending on the overlay direction.
- * This will be to the right in LTR layouts and to the left in RTL.
- * @param offset Offset from the edge of the screen.
- */
- end(value?: string): this;
- /**
- * Sets the overlay width and clears any previously set width.
- * @param value New width for the overlay
- * @deprecated Pass the `width` through the `OverlayConfig`.
- * @breaking-change 8.0.0
- */
- width(value?: string): this;
- /**
- * Sets the overlay height and clears any previously set height.
- * @param value New height for the overlay
- * @deprecated Pass the `height` through the `OverlayConfig`.
- * @breaking-change 8.0.0
- */
- height(value?: string): this;
- /**
- * Centers the overlay horizontally with an optional offset.
- * Clears any previously set horizontal position.
- *
- * @param offset Overlay offset from the horizontal center.
- */
- centerHorizontally(offset?: string): this;
- /**
- * Centers the overlay vertically with an optional offset.
- * Clears any previously set vertical position.
- *
- * @param offset Overlay offset from the vertical center.
- */
- centerVertically(offset?: string): this;
- /**
- * Apply the position to the element.
- * @docs-private
- */
- apply(): void;
- /**
- * Cleans up the DOM changes from the position strategy.
- * @docs-private
- */
- dispose(): void;
- }
- /** Horizontal dimension of a connection point on the perimeter of the origin or overlay element. */
- export declare type HorizontalConnectionPos = 'start' | 'center' | 'end';
- declare namespace i4 {
- export {
- CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,
- CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,
- CdkOverlayOrigin,
- CdkConnectedOverlay,
- CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER
- }
- }
- /** An object where all of its properties cannot be written. */
- declare type ImmutableObject<T> = {
- readonly [P in keyof T]: T[P];
- };
- /** Scroll strategy that doesn't do anything. */
- export declare class NoopScrollStrategy implements ScrollStrategy {
- /** Does nothing, as this scroll strategy is a no-op. */
- enable(): void;
- /** Does nothing, as this scroll strategy is a no-op. */
- disable(): void;
- /** Does nothing, as this scroll strategy is a no-op. */
- attach(): void;
- }
- /** A connection point on the origin element. */
- export declare interface OriginConnectionPosition {
- originX: HorizontalConnectionPos;
- originY: VerticalConnectionPos;
- }
- /**
- * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be
- * used as a low-level building block for other components. Dialogs, tooltips, menus,
- * selects, etc. can all be built using overlays. The service should primarily be used by authors
- * of re-usable components rather than developers building end-user applications.
- *
- * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.
- */
- export declare class Overlay {
- /** Scrolling strategies that can be used when creating an overlay. */
- scrollStrategies: ScrollStrategyOptions;
- private _overlayContainer;
- private _componentFactoryResolver;
- private _positionBuilder;
- private _keyboardDispatcher;
- private _injector;
- private _ngZone;
- private _document;
- private _directionality;
- private _location;
- private _outsideClickDispatcher;
- private _animationsModuleType?;
- private _appRef;
- constructor(
- /** Scrolling strategies that can be used when creating an overlay. */
- scrollStrategies: ScrollStrategyOptions, _overlayContainer: OverlayContainer, _componentFactoryResolver: ComponentFactoryResolver, _positionBuilder: OverlayPositionBuilder, _keyboardDispatcher: OverlayKeyboardDispatcher, _injector: Injector, _ngZone: NgZone, _document: any, _directionality: Directionality, _location: Location_2, _outsideClickDispatcher: OverlayOutsideClickDispatcher, _animationsModuleType?: string | undefined);
- /**
- * Creates an overlay.
- * @param config Configuration applied to the overlay.
- * @returns Reference to the created overlay.
- */
- create(config?: OverlayConfig): OverlayRef;
- /**
- * Gets a position builder that can be used, via fluent API,
- * to construct and configure a position strategy.
- * @returns An overlay position builder.
- */
- position(): OverlayPositionBuilder;
- /**
- * Creates the DOM element for an overlay and appends it to the overlay container.
- * @returns Newly-created pane element
- */
- private _createPaneElement;
- /**
- * Creates the host element that wraps around an overlay
- * and can be used for advanced positioning.
- * @returns Newly-create host element.
- */
- private _createHostElement;
- /**
- * Create a DomPortalOutlet into which the overlay content can be loaded.
- * @param pane The DOM element to turn into a portal outlet.
- * @returns A portal outlet for the given DOM element.
- */
- private _createPortalOutlet;
- static ɵfac: i0.ɵɵFactoryDeclaration<Overlay, [null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
- static ɵprov: i0.ɵɵInjectableDeclaration<Overlay>;
- }
- /** Initial configuration used when creating an overlay. */
- export declare class OverlayConfig {
- /** Strategy with which to position the overlay. */
- positionStrategy?: PositionStrategy;
- /** Strategy to be used when handling scroll events while the overlay is open. */
- scrollStrategy?: ScrollStrategy;
- /** Custom class to add to the overlay pane. */
- panelClass?: string | string[];
- /** Whether the overlay has a backdrop. */
- hasBackdrop?: boolean;
- /** Custom class to add to the backdrop */
- backdropClass?: string | string[];
- /** The width of the overlay panel. If a number is provided, pixel units are assumed. */
- width?: number | string;
- /** The height of the overlay panel. If a number is provided, pixel units are assumed. */
- height?: number | string;
- /** The min-width of the overlay panel. If a number is provided, pixel units are assumed. */
- minWidth?: number | string;
- /** The min-height of the overlay panel. If a number is provided, pixel units are assumed. */
- minHeight?: number | string;
- /** The max-width of the overlay panel. If a number is provided, pixel units are assumed. */
- maxWidth?: number | string;
- /** The max-height of the overlay panel. If a number is provided, pixel units are assumed. */
- maxHeight?: number | string;
- /**
- * Direction of the text in the overlay panel. If a `Directionality` instance
- * is passed in, the overlay will handle changes to its value automatically.
- */
- direction?: Direction | Directionality;
- /**
- * Whether the overlay should be disposed of when the user goes backwards/forwards in history.
- * Note that this usually doesn't include clicking on links (unless the user is using
- * the `HashLocationStrategy`).
- */
- disposeOnNavigation?: boolean;
- constructor(config?: OverlayConfig);
- }
- /** A connection point on the overlay element. */
- export declare interface OverlayConnectionPosition {
- overlayX: HorizontalConnectionPos;
- overlayY: VerticalConnectionPos;
- }
- /** Container inside which all overlays will render. */
- export declare class OverlayContainer implements OnDestroy {
- protected _platform: Platform;
- protected _containerElement: HTMLElement;
- protected _document: Document;
- constructor(document: any, _platform: Platform);
- ngOnDestroy(): void;
- /**
- * This method returns the overlay container element. It will lazily
- * create the element the first time it is called to facilitate using
- * the container in non-browser environments.
- * @returns the container element
- */
- getContainerElement(): HTMLElement;
- /**
- * Create the overlay container element, which is simply a div
- * with the 'cdk-overlay-container' class on the document body.
- */
- protected _createContainer(): void;
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayContainer, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<OverlayContainer>;
- }
- /**
- * Service for dispatching keyboard events that land on the body to appropriate overlay ref,
- * if any. It maintains a list of attached overlays to determine best suited overlay based
- * on event target and order of overlay opens.
- */
- export declare class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
- /** @breaking-change 14.0.0 _ngZone will be required. */
- private _ngZone?;
- constructor(document: any,
- /** @breaking-change 14.0.0 _ngZone will be required. */
- _ngZone?: NgZone | undefined);
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef: OverlayRef): void;
- /** Detaches the global keyboard event listener. */
- protected detach(): void;
- /** Keyboard event listener that will be attached to the body. */
- private _keydownListener;
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayKeyboardDispatcher, [null, { optional: true; }]>;
- static ɵprov: i0.ɵɵInjectableDeclaration<OverlayKeyboardDispatcher>;
- }
- export declare class OverlayModule {
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayModule, never>;
- static ɵmod: i0.ɵɵNgModuleDeclaration<OverlayModule, never, [typeof i1.BidiModule, typeof i2.PortalModule, typeof i3.ScrollingModule, typeof i4.CdkConnectedOverlay, typeof i4.CdkOverlayOrigin], [typeof i4.CdkConnectedOverlay, typeof i4.CdkOverlayOrigin, typeof i3.ScrollingModule]>;
- static ɵinj: i0.ɵɵInjectorDeclaration<OverlayModule>;
- }
- /**
- * Service for dispatching mouse click events that land on the body to appropriate overlay ref,
- * if any. It maintains a list of attached overlays to determine best suited overlay based
- * on event target and order of overlay opens.
- */
- export declare class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
- private _platform;
- /** @breaking-change 14.0.0 _ngZone will be required. */
- private _ngZone?;
- private _cursorOriginalValue;
- private _cursorStyleIsSet;
- private _pointerDownEventTarget;
- constructor(document: any, _platform: Platform,
- /** @breaking-change 14.0.0 _ngZone will be required. */
- _ngZone?: NgZone | undefined);
- /** Add a new overlay to the list of attached overlay refs. */
- add(overlayRef: OverlayRef): void;
- /** Detaches the global keyboard event listener. */
- protected detach(): void;
- private _addEventListeners;
- /** Store pointerdown event target to track origin of click. */
- private _pointerDownListener;
- /** Click event listener that will be attached to the body propagate phase. */
- private _clickListener;
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayOutsideClickDispatcher, [null, null, { optional: true; }]>;
- static ɵprov: i0.ɵɵInjectableDeclaration<OverlayOutsideClickDispatcher>;
- }
- /** Builder for overlay position strategy. */
- export declare class OverlayPositionBuilder {
- private _viewportRuler;
- private _document;
- private _platform;
- private _overlayContainer;
- constructor(_viewportRuler: ViewportRuler, _document: any, _platform: Platform, _overlayContainer: OverlayContainer);
- /**
- * Creates a global position strategy.
- */
- global(): GlobalPositionStrategy;
- /**
- * Creates a flexible position strategy.
- * @param origin Origin relative to which to position the overlay.
- */
- flexibleConnectedTo(origin: FlexibleConnectedPositionStrategyOrigin): FlexibleConnectedPositionStrategy;
- static ɵfac: i0.ɵɵFactoryDeclaration<OverlayPositionBuilder, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<OverlayPositionBuilder>;
- }
- /**
- * Reference to an overlay that has been created with the Overlay service.
- * Used to manipulate or dispose of said overlay.
- */
- export declare class OverlayRef implements PortalOutlet {
- private _portalOutlet;
- private _host;
- private _pane;
- private _config;
- private _ngZone;
- private _keyboardDispatcher;
- private _document;
- private _location;
- private _outsideClickDispatcher;
- private _animationsDisabled;
- private _backdropElement;
- private _backdropTimeout;
- private readonly _backdropClick;
- private readonly _attachments;
- private readonly _detachments;
- private _positionStrategy;
- private _scrollStrategy;
- private _locationChanges;
- private _backdropClickHandler;
- private _backdropTransitionendHandler;
- /**
- * Reference to the parent of the `_host` at the time it was detached. Used to restore
- * the `_host` to its original position in the DOM when it gets re-attached.
- */
- private _previousHostParent;
- /** Stream of keydown events dispatched to this overlay. */
- readonly _keydownEvents: Subject<KeyboardEvent>;
- /** Stream of mouse outside events dispatched to this overlay. */
- readonly _outsidePointerEvents: Subject<MouseEvent>;
- constructor(_portalOutlet: PortalOutlet, _host: HTMLElement, _pane: HTMLElement, _config: ImmutableObject<OverlayConfig>, _ngZone: NgZone, _keyboardDispatcher: OverlayKeyboardDispatcher, _document: Document, _location: Location_2, _outsideClickDispatcher: OverlayOutsideClickDispatcher, _animationsDisabled?: boolean);
- /** The overlay's HTML element */
- get overlayElement(): HTMLElement;
- /** The overlay's backdrop HTML element. */
- get backdropElement(): HTMLElement | null;
- /**
- * Wrapper around the panel element. Can be used for advanced
- * positioning where a wrapper with specific styling is
- * required around the overlay pane.
- */
- get hostElement(): HTMLElement;
- attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;
- attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;
- attach(portal: any): any;
- /**
- * Detaches an overlay from a portal.
- * @returns The portal detachment result.
- */
- detach(): any;
- /** Cleans up the overlay from the DOM. */
- dispose(): void;
- /** Whether the overlay has attached content. */
- hasAttached(): boolean;
- /** Gets an observable that emits when the backdrop has been clicked. */
- backdropClick(): Observable<MouseEvent>;
- /** Gets an observable that emits when the overlay has been attached. */
- attachments(): Observable<void>;
- /** Gets an observable that emits when the overlay has been detached. */
- detachments(): Observable<void>;
- /** Gets an observable of keydown events targeted to this overlay. */
- keydownEvents(): Observable<KeyboardEvent>;
- /** Gets an observable of pointer events targeted outside this overlay. */
- outsidePointerEvents(): Observable<MouseEvent>;
- /** Gets the current overlay configuration, which is immutable. */
- getConfig(): OverlayConfig;
- /** Updates the position of the overlay based on the position strategy. */
- updatePosition(): void;
- /** Switches to a new position strategy and updates the overlay position. */
- updatePositionStrategy(strategy: PositionStrategy): void;
- /** Update the size properties of the overlay. */
- updateSize(sizeConfig: OverlaySizeConfig): void;
- /** Sets the LTR/RTL direction for the overlay. */
- setDirection(dir: Direction | Directionality): void;
- /** Add a CSS class or an array of classes to the overlay pane. */
- addPanelClass(classes: string | string[]): void;
- /** Remove a CSS class or an array of classes from the overlay pane. */
- removePanelClass(classes: string | string[]): void;
- /**
- * Returns the layout direction of the overlay panel.
- */
- getDirection(): Direction;
- /** Switches to a new scroll strategy. */
- updateScrollStrategy(strategy: ScrollStrategy): void;
- /** Updates the text direction of the overlay panel. */
- private _updateElementDirection;
- /** Updates the size of the overlay element based on the overlay config. */
- private _updateElementSize;
- /** Toggles the pointer events for the overlay pane element. */
- private _togglePointerEvents;
- /** Attaches a backdrop for this overlay. */
- private _attachBackdrop;
- /**
- * Updates the stacking order of the element, moving it to the top if necessary.
- * This is required in cases where one overlay was detached, while another one,
- * that should be behind it, was destroyed. The next time both of them are opened,
- * the stacking will be wrong, because the detached element's pane will still be
- * in its original DOM position.
- */
- private _updateStackingOrder;
- /** Detaches the backdrop (if any) associated with the overlay. */
- detachBackdrop(): void;
- /** Toggles a single CSS class or an array of classes on an element. */
- private _toggleClasses;
- /** Detaches the overlay content next time the zone stabilizes. */
- private _detachContentWhenStable;
- /** Disposes of a scroll strategy. */
- private _disposeScrollStrategy;
- /** Removes a backdrop element from the DOM. */
- private _disposeBackdrop;
- }
- /** Size properties for an overlay. */
- export declare interface OverlaySizeConfig {
- width?: number | string;
- height?: number | string;
- minWidth?: number | string;
- minHeight?: number | string;
- maxWidth?: number | string;
- maxHeight?: number | string;
- }
- /** A simple (x, y) coordinate. */
- declare interface Point {
- x: number;
- y: number;
- }
- /** Strategy for setting the position on an overlay. */
- export declare interface PositionStrategy {
- /** Attaches this position strategy to an overlay. */
- attach(overlayRef: OverlayRef): void;
- /** Updates the position of the overlay element. */
- apply(): void;
- /** Called when the overlay is detached. */
- detach?(): void;
- /** Cleans up any DOM modifications made by the position strategy, if necessary. */
- dispose(): void;
- }
- /**
- * Strategy that will update the element position as the user is scrolling.
- */
- export declare class RepositionScrollStrategy implements ScrollStrategy {
- private _scrollDispatcher;
- private _viewportRuler;
- private _ngZone;
- private _config?;
- private _scrollSubscription;
- private _overlayRef;
- constructor(_scrollDispatcher: ScrollDispatcher, _viewportRuler: ViewportRuler, _ngZone: NgZone, _config?: RepositionScrollStrategyConfig | undefined);
- /** Attaches this scroll strategy to an overlay. */
- attach(overlayRef: OverlayRef): void;
- /** Enables repositioning of the attached overlay on scroll. */
- enable(): void;
- /** Disables repositioning of the attached overlay on scroll. */
- disable(): void;
- detach(): void;
- }
- /**
- * Config options for the RepositionScrollStrategy.
- */
- export declare interface RepositionScrollStrategyConfig {
- /** Time in milliseconds to throttle the scroll events. */
- scrollThrottle?: number;
- /** Whether to close the overlay once the user has scrolled away completely. */
- autoClose?: boolean;
- }
- export { ScrollDispatcher }
- /**
- * Set of properties regarding the position of the origin and overlay relative to the viewport
- * with respect to the containing Scrollable elements.
- *
- * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the
- * bounds of any one of the strategy's Scrollable's bounding client rectangle.
- *
- * The overlay and origin are outside view if there is no overlap between their bounding client
- * rectangle and any one of the strategy's Scrollable's bounding client rectangle.
- *
- * ----------- -----------
- * | outside | | clipped |
- * | view | --------------------------
- * | | | | | |
- * ---------- | ----------- |
- * -------------------------- | |
- * | | | Scrollable |
- * | | | |
- * | | --------------------------
- * | Scrollable |
- * | |
- * --------------------------
- *
- * @docs-private
- */
- export declare class ScrollingVisibility {
- isOriginClipped: boolean;
- isOriginOutsideView: boolean;
- isOverlayClipped: boolean;
- isOverlayOutsideView: boolean;
- }
- /**
- * Describes a strategy that will be used by an overlay to handle scroll events while it is open.
- */
- export declare interface ScrollStrategy {
- /** Enable this scroll strategy (called when the attached overlay is attached to a portal). */
- enable: () => void;
- /** Disable this scroll strategy (called when the attached overlay is detached from a portal). */
- disable: () => void;
- /** Attaches this `ScrollStrategy` to an overlay. */
- attach: (overlayRef: OverlayRef) => void;
- /** Detaches the scroll strategy from the current overlay. */
- detach?: () => void;
- }
- /**
- * Options for how an overlay will handle scrolling.
- *
- * Users can provide a custom value for `ScrollStrategyOptions` to replace the default
- * behaviors. This class primarily acts as a factory for ScrollStrategy instances.
- */
- export declare class ScrollStrategyOptions {
- private _scrollDispatcher;
- private _viewportRuler;
- private _ngZone;
- private _document;
- constructor(_scrollDispatcher: ScrollDispatcher, _viewportRuler: ViewportRuler, _ngZone: NgZone, document: any);
- /** Do nothing on scroll. */
- noop: () => NoopScrollStrategy;
- /**
- * Close the overlay as soon as the user scrolls.
- * @param config Configuration to be used inside the scroll strategy.
- */
- close: (config?: CloseScrollStrategyConfig) => CloseScrollStrategy;
- /** Block scrolling. */
- block: () => BlockScrollStrategy;
- /**
- * Update the overlay's position on scroll.
- * @param config Configuration to be used inside the scroll strategy.
- * Allows debouncing the reposition calls.
- */
- reposition: (config?: RepositionScrollStrategyConfig) => RepositionScrollStrategy;
- static ɵfac: i0.ɵɵFactoryDeclaration<ScrollStrategyOptions, never>;
- static ɵprov: i0.ɵɵInjectableDeclaration<ScrollStrategyOptions>;
- }
- export declare const STANDARD_DROPDOWN_ADJACENT_POSITIONS: ConnectedPosition[];
- export declare const STANDARD_DROPDOWN_BELOW_POSITIONS: ConnectedPosition[];
- /**
- * Validates whether a horizontal position property matches the expected values.
- * @param property Name of the property being validated.
- * @param value Value of the property being validated.
- * @docs-private
- */
- export declare function validateHorizontalPosition(property: string, value: HorizontalConnectionPos): void;
- /**
- * Validates whether a vertical position property matches the expected values.
- * @param property Name of the property being validated.
- * @param value Value of the property being validated.
- * @docs-private
- */
- export declare function validateVerticalPosition(property: string, value: VerticalConnectionPos): void;
- /** Vertical dimension of a connection point on the perimeter of the origin or overlay element. */
- export declare type VerticalConnectionPos = 'top' | 'center' | 'bottom';
- export { ViewportRuler }
- export { }
|