UNPKG

@angular/cdk

Version:

Angular Material Component Development Kit

102 lines (99 loc) 5.07 kB
import { OverlayContainer } from './overlay-module.mjs'; export { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, createBlockScrollStrategy, createCloseScrollStrategy, createFlexibleConnectedPositionStrategy, createGlobalPositionStrategy, createNoopScrollStrategy, createOverlayRef, createRepositionScrollStrategy, validateHorizontalPosition, validateVerticalPosition } from './overlay-module.mjs'; import * as i0 from '@angular/core'; import { inject, RendererFactory2, Injectable } from '@angular/core'; export { CdkScrollable, ScrollDispatcher, ViewportRuler, CdkFixedSizeVirtualScroll as ɵɵCdkFixedSizeVirtualScroll, CdkScrollableModule as ɵɵCdkScrollableModule, CdkVirtualForOf as ɵɵCdkVirtualForOf, CdkVirtualScrollViewport as ɵɵCdkVirtualScrollViewport, CdkVirtualScrollableElement as ɵɵCdkVirtualScrollableElement, CdkVirtualScrollableWindow as ɵɵCdkVirtualScrollableWindow } from './scrolling.mjs'; export { Dir as ɵɵDir } from './bidi.mjs'; import '@angular/common'; import './platform2.mjs'; import './shadow-dom.mjs'; import './test-environment.mjs'; import './style-loader.mjs'; import 'rxjs'; import './css-pixel-value.mjs'; import './array.mjs'; import './portal.mjs'; import './scrolling2.mjs'; import 'rxjs/operators'; import './id-generator.mjs'; import './directionality.mjs'; import './keycodes2.mjs'; import './keycodes.mjs'; import './element.mjs'; import './recycle-view-repeater-strategy.mjs'; import './data-source.mjs'; /** * 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. */ class FullscreenOverlayContainer extends OverlayContainer { _renderer = inject(RendererFactory2).createRenderer(null, null); _fullScreenEventName; _cleanupFullScreenListener; constructor() { super(); } ngOnDestroy() { super.ngOnDestroy(); this._cleanupFullScreenListener?.(); } _createContainer() { const eventName = this._getEventName(); super._createContainer(); this._adjustParentForFullscreenChange(); if (eventName) { this._cleanupFullScreenListener?.(); this._cleanupFullScreenListener = this._renderer.listen('document', eventName, () => { this._adjustParentForFullscreenChange(); }); } } _adjustParentForFullscreenChange() { if (this._containerElement) { const fullscreenElement = this.getFullscreenElement(); const parent = fullscreenElement || this._document.body; parent.appendChild(this._containerElement); } } _getEventName() { if (!this._fullScreenEventName) { const _document = this._document; if (_document.fullscreenEnabled) { this._fullScreenEventName = 'fullscreenchange'; } else if (_document.webkitFullscreenEnabled) { this._fullScreenEventName = 'webkitfullscreenchange'; } else if (_document.mozFullScreenEnabled) { this._fullScreenEventName = 'mozfullscreenchange'; } else if (_document.msFullscreenEnabled) { this._fullScreenEventName = 'MSFullscreenChange'; } } return this._fullScreenEventName; } /** * 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() { const _document = this._document; return (_document.fullscreenElement || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement || null); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: FullscreenOverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.2", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [] }); export { FullscreenOverlayContainer, OverlayContainer }; //# sourceMappingURL=overlay.mjs.map