UNPKG

@angular/cdk

Version:

Angular Material Component Development Kit

297 lines (287 loc) 11 kB
import { ScrollStrategy, OverlayRef, PositionStrategy, FlexibleConnectedPositionStrategyOrigin, FlexibleConnectedPositionStrategy, OverlayConfig } from './overlay-module.d-CSrPj90C.js'; import * as i0 from '@angular/core'; import { NgZone } from '@angular/core'; import { ViewportRuler } from './scrolling/index.js'; import { ScrollDispatcher } from './scrolling-module.d-CUKr8D_p.js'; /** * Strategy that will prevent the user from scrolling while the overlay is visible. */ 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; } /** * Config options for the CloseScrollStrategy. */ interface CloseScrollStrategyConfig { /** Amount of pixels the user has to scroll before the overlay is closed. */ threshold?: number; } /** * Strategy that will close the overlay as soon as the user starts scrolling. */ 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; } /** Scroll strategy that doesn't do anything. */ 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; } /** * Config options for the RepositionScrollStrategy. */ 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; } /** * Strategy that will update the element position as the user is scrolling. */ 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; } /** * 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. */ declare class ScrollStrategyOptions { private _scrollDispatcher; private _viewportRuler; private _ngZone; private _document; constructor(...args: unknown[]); /** 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>; } /** * 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. */ 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; } /** Builder for overlay position strategy. */ declare class OverlayPositionBuilder { private _viewportRuler; private _document; private _platform; private _overlayContainer; constructor(...args: unknown[]); /** * 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>; } /** * 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. */ declare class Overlay { scrollStrategies: ScrollStrategyOptions; private _overlayContainer; private _positionBuilder; private _keyboardDispatcher; private _injector; private _ngZone; private _document; private _directionality; private _location; private _outsideClickDispatcher; private _animationsModuleType; private _idGenerator; private _renderer; private _appRef; private _styleLoader; constructor(...args: unknown[]); /** * 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, never>; static ɵprov: i0.ɵɵInjectableDeclaration<Overlay>; } export { BlockScrollStrategy, CloseScrollStrategy, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayPositionBuilder, RepositionScrollStrategy, ScrollStrategyOptions }; export type { RepositionScrollStrategyConfig };