{"version":3,"file":"default-node_modules_angular_cdk_fesm2022_overlay_mjs-node_modules_angular_material_fesm2022_-48aee0.js","mappings":"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","sources":["./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/@angular/cdk/fesm2022/overlay.mjs","./node_modules/@angular/material/fesm2022/checkbox.mjs"],"sourcesContent":["import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n","import { ScrollDispatcher, ViewportRuler, ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT, Location } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { inject, NgZone, Injectable, Component, ChangeDetectionStrategy, ViewEncapsulation, untracked, afterRender, afterNextRender, ElementRef, Injector, ANIMATION_MODULE_TYPE, EnvironmentInjector, ApplicationRef, InjectionToken, Directive, EventEmitter, TemplateRef, ViewContainerRef, booleanAttribute, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray } from '@angular/cdk/coercion';\nimport { supportsScrollBehavior, Platform, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, takeUntil, takeWhile } from 'rxjs/operators';\nimport { Directionality, BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { _IdGenerator } from '@angular/cdk/a11y';\nimport { _CdkPrivateStyleLoader } from '@angular/cdk/private';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\n\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n _viewportRuler;\n _previousHTMLStyles = { top: '', left: '' };\n _previousScrollPosition;\n _isEnabled = false;\n _document;\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._document = document;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach() { }\n /** Blocks page-level scroll while the attached overlay is open. */\n enable() {\n if (this._canBeEnabled()) {\n const root = this._document.documentElement;\n this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition();\n // Cache the previous inline styles in case the user had set them.\n this._previousHTMLStyles.left = root.style.left || '';\n this._previousHTMLStyles.top = root.style.top || '';\n // Note: we're using the `html` node, instead of the `body`, because the `body` may\n // have the user agent margin, whereas the `html` is guaranteed not to have one.\n root.style.left = coerceCssPixelValue(-this._previousScrollPosition.left);\n root.style.top = coerceCssPixelValue(-this._previousScrollPosition.top);\n root.classList.add('cdk-global-scrollblock');\n this._isEnabled = true;\n }\n }\n /** Unblocks page-level scroll while the attached overlay is open. */\n disable() {\n if (this._isEnabled) {\n const html = this._document.documentElement;\n const body = this._document.body;\n const htmlStyle = html.style;\n const bodyStyle = body.style;\n const previousHtmlScrollBehavior = htmlStyle.scrollBehavior || '';\n const previousBodyScrollBehavior = bodyStyle.scrollBehavior || '';\n this._isEnabled = false;\n htmlStyle.left = this._previousHTMLStyles.left;\n htmlStyle.top = this._previousHTMLStyles.top;\n html.classList.remove('cdk-global-scrollblock');\n // Disable user-defined smooth scrolling temporarily while we restore the scroll position.\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior\n // Note that we don't mutate the property if the browser doesn't support `scroll-behavior`,\n // because it can throw off feature detections in `supportsScrollBehavior` which\n // checks for `'scrollBehavior' in documentElement.style`.\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = bodyStyle.scrollBehavior = 'auto';\n }\n window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top);\n if (scrollBehaviorSupported) {\n htmlStyle.scrollBehavior = previousHtmlScrollBehavior;\n bodyStyle.scrollBehavior = previousBodyScrollBehavior;\n }\n }\n }\n _canBeEnabled() {\n // Since the scroll strategies can't be singletons, we have to use a global CSS class\n // (`cdk-global-scrollblock`) to make sure that we don't try to disable global\n // scrolling multiple times.\n const html = this._document.documentElement;\n if (html.classList.contains('cdk-global-scrollblock') || this._isEnabled) {\n return false;\n }\n const body = this._document.body;\n const viewport = this._viewportRuler.getViewportSize();\n return body.scrollHeight > viewport.height || body.scrollWidth > viewport.width;\n }\n}\n\n/**\n * Returns an error to be thrown when attempting to attach an already-attached scroll strategy.\n */\nfunction getMatScrollStrategyAlreadyAttachedError() {\n return Error(`Scroll strategy has already been attached.`);\n}\n\n/**\n * Strategy that will close the overlay as soon as the user starts scrolling.\n */\nclass CloseScrollStrategy {\n _scrollDispatcher;\n _ngZone;\n _viewportRuler;\n _config;\n _scrollSubscription = null;\n _overlayRef;\n _initialScrollPosition;\n constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables the closing of the attached overlay on scroll. */\n enable() {\n if (this._scrollSubscription) {\n return;\n }\n const stream = this._scrollDispatcher.scrolled(0).pipe(filter(scrollable => {\n return (!scrollable ||\n !this._overlayRef.overlayElement.contains(scrollable.getElementRef().nativeElement));\n }));\n if (this._config && this._config.threshold && this._config.threshold > 1) {\n this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n this._scrollSubscription = stream.subscribe(() => {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition().top;\n if (Math.abs(scrollPosition - this._initialScrollPosition) > this._config.threshold) {\n this._detach();\n }\n else {\n this._overlayRef.updatePosition();\n }\n });\n }\n else {\n this._scrollSubscription = stream.subscribe(this._detach);\n }\n }\n /** Disables the closing the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n /** Detaches the overlay ref and disables the scroll strategy. */\n _detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\n}\n\n/** Scroll strategy that doesn't do anything. */\nclass NoopScrollStrategy {\n /** Does nothing, as this scroll strategy is a no-op. */\n enable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n disable() { }\n /** Does nothing, as this scroll strategy is a no-op. */\n attach() { }\n}\n\n/**\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is scrolled out of view\n * @docs-private\n */\nfunction isElementScrolledOutsideView(element, scrollContainers) {\n return scrollContainers.some(containerBounds => {\n const outsideAbove = element.bottom < containerBounds.top;\n const outsideBelow = element.top > containerBounds.bottom;\n const outsideLeft = element.right < containerBounds.left;\n const outsideRight = element.left > containerBounds.right;\n return outsideAbove || outsideBelow || outsideLeft || outsideRight;\n });\n}\n/**\n * Gets whether an element is clipped by any of its scrolling containers.\n * @param element Dimensions of the element (from getBoundingClientRect)\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\n * @returns Whether the element is clipped\n * @docs-private\n */\nfunction isElementClippedByScrolling(element, scrollContainers) {\n return scrollContainers.some(scrollContainerRect => {\n const clippedAbove = element.top < scrollContainerRect.top;\n const clippedBelow = element.bottom > scrollContainerRect.bottom;\n const clippedLeft = element.left < scrollContainerRect.left;\n const clippedRight = element.right > scrollContainerRect.right;\n return clippedAbove || clippedBelow || clippedLeft || clippedRight;\n });\n}\n\n/**\n * Strategy that will update the element position as the user is scrolling.\n */\nclass RepositionScrollStrategy {\n _scrollDispatcher;\n _viewportRuler;\n _ngZone;\n _config;\n _scrollSubscription = null;\n _overlayRef;\n constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n }\n /** Attaches this scroll strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatScrollStrategyAlreadyAttachedError();\n }\n this._overlayRef = overlayRef;\n }\n /** Enables repositioning of the attached overlay on scroll. */\n enable() {\n if (!this._scrollSubscription) {\n const throttle = this._config ? this._config.scrollThrottle : 0;\n this._scrollSubscription = this._scrollDispatcher.scrolled(throttle).subscribe(() => {\n this._overlayRef.updatePosition();\n // TODO(crisbeto): make `close` on by default once all components can handle it.\n if (this._config && this._config.autoClose) {\n const overlayRect = this._overlayRef.overlayElement.getBoundingClientRect();\n const { width, height } = this._viewportRuler.getViewportSize();\n // TODO(crisbeto): include all ancestor scroll containers here once\n // we have a way of exposing the trigger element to the scroll strategy.\n const parentRects = [{ width, height, bottom: height, right: width, top: 0, left: 0 }];\n if (isElementScrolledOutsideView(overlayRect, parentRects)) {\n this.disable();\n this._ngZone.run(() => this._overlayRef.detach());\n }\n }\n });\n }\n }\n /** Disables repositioning of the attached overlay on scroll. */\n disable() {\n if (this._scrollSubscription) {\n this._scrollSubscription.unsubscribe();\n this._scrollSubscription = null;\n }\n }\n detach() {\n this.disable();\n this._overlayRef = null;\n }\n}\n\n/**\n * Options for how an overlay will handle scrolling.\n *\n * Users can provide a custom value for `ScrollStrategyOptions` to replace the default\n * behaviors. This class primarily acts as a factory for ScrollStrategy instances.\n */\nclass ScrollStrategyOptions {\n _scrollDispatcher = inject(ScrollDispatcher);\n _viewportRuler = inject(ViewportRuler);\n _ngZone = inject(NgZone);\n _document = inject(DOCUMENT);\n constructor() { }\n /** Do nothing on scroll. */\n noop = () => new NoopScrollStrategy();\n /**\n * Close the overlay as soon as the user scrolls.\n * @param config Configuration to be used inside the scroll strategy.\n */\n close = (config) => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n block = () => new BlockScrollStrategy(this._viewportRuler, this._document);\n /**\n * Update the overlay's position on scroll.\n * @param config Configuration to be used inside the scroll strategy.\n * Allows debouncing the reposition calls.\n */\n reposition = (config) => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: ScrollStrategyOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: ScrollStrategyOptions, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: ScrollStrategyOptions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n /** Strategy with which to position the overlay. */\n positionStrategy;\n /** Strategy to be used when handling scroll events while the overlay is open. */\n scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n panelClass = '';\n /** Whether the overlay has a backdrop. */\n hasBackdrop = false;\n /** Custom class to add to the backdrop */\n backdropClass = 'cdk-overlay-dark-backdrop';\n /** The width of the overlay panel. If a number is provided, pixel units are assumed. */\n width;\n /** The height of the overlay panel. If a number is provided, pixel units are assumed. */\n height;\n /** The min-width of the overlay panel. If a number is provided, pixel units are assumed. */\n minWidth;\n /** The min-height of the overlay panel. If a number is provided, pixel units are assumed. */\n minHeight;\n /** The max-width of the overlay panel. If a number is provided, pixel units are assumed. */\n maxWidth;\n /** The max-height of the overlay panel. If a number is provided, pixel units are assumed. */\n maxHeight;\n /**\n * Direction of the text in the overlay panel. If a `Directionality` instance\n * is passed in, the overlay will handle changes to its value automatically.\n */\n direction;\n /**\n * Whether the overlay should be disposed of when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n disposeOnNavigation = false;\n constructor(config) {\n if (config) {\n // Use `Iterable` instead of `Array` because TypeScript, as of 3.6.3,\n // loses the array generic type in the `for of`. But we *also* have to use `Array` because\n // typescript won't iterate over an `Iterable` unless you compile with `--downlevelIteration`\n const configKeys = Object.keys(config);\n for (const key of configKeys) {\n if (config[key] !== undefined) {\n // TypeScript, as of version 3.5, sees the left-hand-side of this expression\n // as \"I don't know *which* key this is, so the only valid value is the intersection\n // of all the possible values.\" In this case, that happens to be `undefined`. TypeScript\n // is not smart enough to see that the right-hand-side is actually an access of the same\n // exact type with the same exact key, meaning that the value type must be identical.\n // So we use `any` to work around this.\n this[key] = config[key];\n }\n }\n }\n }\n}\n\n/** The points of the origin element and the overlay element to connect. */\nclass ConnectionPositionPair {\n offsetX;\n offsetY;\n panelClass;\n /** X-axis attachment point for connected overlay origin. Can be 'start', 'end', or 'center'. */\n originX;\n /** Y-axis attachment point for connected overlay origin. Can be 'top', 'bottom', or 'center'. */\n originY;\n /** X-axis attachment point for connected overlay. Can be 'start', 'end', or 'center'. */\n overlayX;\n /** Y-axis attachment point for connected overlay. Can be 'top', 'bottom', or 'center'. */\n overlayY;\n constructor(origin, overlay, \n /** Offset along the X axis. */\n offsetX, \n /** Offset along the Y axis. */\n offsetY, \n /** Class(es) to be applied to the panel while this position is active. */\n panelClass) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.panelClass = panelClass;\n this.originX = origin.originX;\n this.originY = origin.originY;\n this.overlayX = overlay.overlayX;\n this.overlayY = overlay.overlayY;\n }\n}\n/**\n * Set of properties regarding the position of the origin and overlay relative to the viewport\n * with respect to the containing Scrollable elements.\n *\n * The overlay and origin are clipped if any part of their bounding client rectangle exceeds the\n * bounds of any one of the strategy's Scrollable's bounding client rectangle.\n *\n * The overlay and origin are outside view if there is no overlap between their bounding client\n * rectangle and any one of the strategy's Scrollable's bounding client rectangle.\n *\n * ----------- -----------\n * | outside | | clipped |\n * | view | --------------------------\n * | | | | | |\n * ---------- | ----------- |\n * -------------------------- | |\n * | | | Scrollable |\n * | | | |\n * | | --------------------------\n * | Scrollable |\n * | |\n * --------------------------\n *\n * @docs-private\n */\nclass ScrollingVisibility {\n isOriginClipped;\n isOriginOutsideView;\n isOverlayClipped;\n isOverlayOutsideView;\n}\n/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n connectionPair;\n scrollableViewProperties;\n constructor(\n /** The position used as a result of this change. */\n connectionPair, \n /** @docs-private */\n scrollableViewProperties) {\n this.connectionPair = connectionPair;\n this.scrollableViewProperties = scrollableViewProperties;\n }\n}\n/**\n * Validates whether a vertical position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateVerticalPosition(property, value) {\n if (value !== 'top' && value !== 'bottom' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"top\", \"bottom\" or \"center\".`);\n }\n}\n/**\n * Validates whether a horizontal position property matches the expected values.\n * @param property Name of the property being validated.\n * @param value Value of the property being validated.\n * @docs-private\n */\nfunction validateHorizontalPosition(property, value) {\n if (value !== 'start' && value !== 'end' && value !== 'center') {\n throw Error(`ConnectedPosition: Invalid ${property} \"${value}\". ` +\n `Expected \"start\", \"end\" or \"center\".`);\n }\n}\n\n/**\n * Service for dispatching events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass BaseOverlayDispatcher {\n /** Currently attached overlays in the order they were attached. */\n _attachedOverlays = [];\n _document = inject(DOCUMENT);\n _isAttached;\n constructor() { }\n ngOnDestroy() {\n this.detach();\n }\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n // Ensure that we don't get the same overlay multiple times.\n this.remove(overlayRef);\n this._attachedOverlays.push(overlayRef);\n }\n /** Remove an overlay from the list of attached overlay refs. */\n remove(overlayRef) {\n const index = this._attachedOverlays.indexOf(overlayRef);\n if (index > -1) {\n this._attachedOverlays.splice(index, 1);\n }\n // Remove the global listener once there are no more overlays.\n if (this._attachedOverlays.length === 0) {\n this.detach();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: BaseOverlayDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: BaseOverlayDispatcher, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: BaseOverlayDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * Service for dispatching keyboard events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayKeyboardDispatcher extends BaseOverlayDispatcher {\n _ngZone = inject(NgZone, { optional: true });\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Lazily start dispatcher once first overlay is added\n if (!this._isAttached) {\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._document.body.addEventListener('keydown', this._keydownListener));\n }\n else {\n this._document.body.addEventListener('keydown', this._keydownListener);\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n this._document.body.removeEventListener('keydown', this._keydownListener);\n this._isAttached = false;\n }\n }\n /** Keyboard event listener that will be attached to the body. */\n _keydownListener = (event) => {\n const overlays = this._attachedOverlays;\n for (let i = overlays.length - 1; i > -1; i--) {\n // Dispatch the keydown event to the top overlay which has subscribers to its keydown events.\n // We want to target the most recent overlay, rather than trying to match where the event came\n // from, because some components might open an overlay, but keep focus on a trigger element\n // (e.g. for select and autocomplete). We skip overlays without keydown event subscriptions,\n // because we don't want overlays that don't handle keyboard events to block the ones below\n // them that do.\n if (overlays[i]._keydownEvents.observers.length > 0) {\n const keydownEvents = overlays[i]._keydownEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => keydownEvents.next(event));\n }\n else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayKeyboardDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * Service for dispatching mouse click events that land on the body to appropriate overlay ref,\n * if any. It maintains a list of attached overlays to determine best suited overlay based\n * on event target and order of overlay opens.\n */\nclass OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {\n _platform = inject(Platform);\n _ngZone = inject(NgZone, { optional: true });\n _cursorOriginalValue;\n _cursorStyleIsSet = false;\n _pointerDownEventTarget;\n /** Add a new overlay to the list of attached overlay refs. */\n add(overlayRef) {\n super.add(overlayRef);\n // Safari on iOS does not generate click events for non-interactive\n // elements. However, we want to receive a click for any element outside\n // the overlay. We can force a \"clickable\" state by setting\n // `cursor: pointer` on the document body. See:\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event#Safari_Mobile\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html\n if (!this._isAttached) {\n const body = this._document.body;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => this._addEventListeners(body));\n }\n else {\n this._addEventListeners(body);\n }\n // click event is not fired on iOS. To make element \"clickable\" we are\n // setting the cursor to pointer\n if (this._platform.IOS && !this._cursorStyleIsSet) {\n this._cursorOriginalValue = body.style.cursor;\n body.style.cursor = 'pointer';\n this._cursorStyleIsSet = true;\n }\n this._isAttached = true;\n }\n }\n /** Detaches the global keyboard event listener. */\n detach() {\n if (this._isAttached) {\n const body = this._document.body;\n body.removeEventListener('pointerdown', this._pointerDownListener, true);\n body.removeEventListener('click', this._clickListener, true);\n body.removeEventListener('auxclick', this._clickListener, true);\n body.removeEventListener('contextmenu', this._clickListener, true);\n if (this._platform.IOS && this._cursorStyleIsSet) {\n body.style.cursor = this._cursorOriginalValue;\n this._cursorStyleIsSet = false;\n }\n this._isAttached = false;\n }\n }\n _addEventListeners(body) {\n body.addEventListener('pointerdown', this._pointerDownListener, true);\n body.addEventListener('click', this._clickListener, true);\n body.addEventListener('auxclick', this._clickListener, true);\n body.addEventListener('contextmenu', this._clickListener, true);\n }\n /** Store pointerdown event target to track origin of click. */\n _pointerDownListener = (event) => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n _clickListener = (event) => {\n const target = _getEventTarget(event);\n // In case of a click event, we want to check the origin of the click\n // (e.g. in case where a user starts a click inside the overlay and\n // releases the click outside of it).\n // This is done by using the event target of the preceding pointerdown event.\n // Every click event caused by a pointer device has a preceding pointerdown\n // event, unless the click was programmatically triggered (e.g. in a unit test).\n const origin = event.type === 'click' && this._pointerDownEventTarget\n ? this._pointerDownEventTarget\n : target;\n // Reset the stored pointerdown event target, to avoid having it interfere\n // in subsequent events.\n this._pointerDownEventTarget = null;\n // We copy the array because the original may be modified asynchronously if the\n // outsidePointerEvents listener decides to detach overlays resulting in index errors inside\n // the for loop.\n const overlays = this._attachedOverlays.slice();\n // Dispatch the mouse event to the top overlay which has subscribers to its mouse events.\n // We want to target all overlays for which the click could be considered as outside click.\n // As soon as we reach an overlay for which the click is not outside click we break off\n // the loop.\n for (let i = overlays.length - 1; i > -1; i--) {\n const overlayRef = overlays[i];\n if (overlayRef._outsidePointerEvents.observers.length < 1 || !overlayRef.hasAttached()) {\n continue;\n }\n // If it's a click inside the overlay, just break - we should do nothing\n // If it's an outside click (both origin and target of the click) dispatch the mouse event,\n // and proceed with the next overlay\n if (containsPierceShadowDom(overlayRef.overlayElement, target) ||\n containsPierceShadowDom(overlayRef.overlayElement, origin)) {\n break;\n }\n const outsidePointerEvents = overlayRef._outsidePointerEvents;\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.run(() => outsidePointerEvents.next(event));\n }\n else {\n outsidePointerEvents.next(event);\n }\n }\n };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayOutsideClickDispatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/** Version of `Element.contains` that transcends shadow DOM boundaries. */\nfunction containsPierceShadowDom(parent, child) {\n const supportsShadowRoot = typeof ShadowRoot !== 'undefined' && ShadowRoot;\n let current = child;\n while (current) {\n if (current === parent) {\n return true;\n }\n current =\n supportsShadowRoot && current instanceof ShadowRoot ? current.host : current.parentNode;\n }\n return false;\n}\n\nclass _CdkOverlayStyleLoader {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: _CdkOverlayStyleLoader, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"19.0.0\", type: _CdkOverlayStyleLoader, isStandalone: true, selector: \"ng-component\", host: { attributes: { \"cdk-overlay-style-loader\": \"\" } }, ngImport: i0, template: '', isInline: true, styles: [\".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: _CdkOverlayStyleLoader, decorators: [{\n type: Component,\n args: [{ template: '', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'cdk-overlay-style-loader': '' }, styles: [\".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}\"] }]\n }] });\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n _platform = inject(Platform);\n _containerElement;\n _document = inject(DOCUMENT);\n _styleLoader = inject(_CdkPrivateStyleLoader);\n constructor() { }\n ngOnDestroy() {\n this._containerElement?.remove();\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n this._loadStyles();\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body.\n */\n _createContainer() {\n const containerClass = 'cdk-overlay-container';\n // TODO(crisbeto): remove the testing check once we have an overlay testing\n // module or Angular starts tearing down the testing `NgModule`. See:\n // https://github.com/angular/angular/issues/18831\n if (this._platform.isBrowser || _isTestEnvironment()) {\n const oppositePlatformContainers = this._document.querySelectorAll(`.${containerClass}[platform=\"server\"], ` + `.${containerClass}[platform=\"test\"]`);\n // Remove any old containers from the opposite platform.\n // This can happen when transitioning from the server to the client.\n for (let i = 0; i < oppositePlatformContainers.length; i++) {\n oppositePlatformContainers[i].remove();\n }\n }\n const container = this._document.createElement('div');\n container.classList.add(containerClass);\n // A long time ago we kept adding new overlay containers whenever a new app was instantiated,\n // but at some point we added logic which clears the duplicate ones in order to avoid leaks.\n // The new logic was a little too aggressive since it was breaking some legitimate use cases.\n // To mitigate the problem we made it so that only containers from a different platform are\n // cleared, but the side-effect was that people started depending on the overly-aggressive\n // logic to clean up their tests for them. Until we can introduce an overlay-specific testing\n // module which does the cleanup, we try to detect that we're in a test environment and we\n // always clear the container. See #17006.\n // TODO(crisbeto): remove the test environment check once we have an overlay testing module.\n if (_isTestEnvironment()) {\n container.setAttribute('platform', 'test');\n }\n else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n /** Loads the structural styles necessary for the overlay to work. */\n _loadStyles() {\n this._styleLoader.load(_CdkOverlayStyleLoader);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n _portalOutlet;\n _host;\n _pane;\n _config;\n _ngZone;\n _keyboardDispatcher;\n _document;\n _location;\n _outsideClickDispatcher;\n _animationsDisabled;\n _injector;\n _backdropElement = null;\n _backdropTimeout;\n _backdropClick = new Subject();\n _attachments = new Subject();\n _detachments = new Subject();\n _positionStrategy;\n _scrollStrategy;\n _locationChanges = Subscription.EMPTY;\n _backdropClickHandler = (event) => this._backdropClick.next(event);\n _backdropTransitionendHandler = (event) => {\n this._disposeBackdrop(event.target);\n };\n /**\n * Reference to the parent of the `_host` at the time it was detached. Used to restore\n * the `_host` to its original position in the DOM when it gets re-attached.\n */\n _previousHostParent;\n /** Stream of keydown events dispatched to this overlay. */\n _keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n _outsidePointerEvents = new Subject();\n _renders = new Subject();\n _afterRenderRef;\n /** Reference to the currently-running `afterNextRender` call. */\n _afterNextRenderRef;\n constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false, _injector) {\n this._portalOutlet = _portalOutlet;\n this._host = _host;\n this._pane = _pane;\n this._config = _config;\n this._ngZone = _ngZone;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._document = _document;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsDisabled = _animationsDisabled;\n this._injector = _injector;\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\n // Users could open the overlay from an `effect`, in which case we need to\n // run the `afterRender` as `untracked`. We don't recommend that users do\n // this, but we also don't want to break users who are doing it.\n this._afterRenderRef = untracked(() => afterRender(() => {\n this._renders.next();\n }, { injector: this._injector }));\n }\n /** The overlay's HTML element */\n get overlayElement() {\n return this._pane;\n }\n /** The overlay's backdrop HTML element. */\n get backdropElement() {\n return this._backdropElement;\n }\n /**\n * Wrapper around the panel element. Can be used for advanced\n * positioning where a wrapper with specific styling is\n * required around the overlay pane.\n */\n get hostElement() {\n return this._host;\n }\n /**\n * Attaches content, given via a Portal, to the overlay.\n * If the overlay is configured to have a backdrop, it will be created.\n *\n * @param portal Portal instance to which to attach the overlay.\n * @returns The portal attachment result.\n */\n attach(portal) {\n // Insert the host into the DOM before attaching the portal, otherwise\n // the animations module will skip animations on repeat attachments.\n if (!this._host.parentElement && this._previousHostParent) {\n this._previousHostParent.appendChild(this._host);\n }\n const attachResult = this._portalOutlet.attach(portal);\n if (this._positionStrategy) {\n this._positionStrategy.attach(this);\n }\n this._updateStackingOrder();\n this._updateElementSize();\n this._updateElementDirection();\n if (this._scrollStrategy) {\n this._scrollStrategy.enable();\n }\n // We need to clean this up ourselves, because we're passing in an\n // `EnvironmentInjector` below which won't ever be destroyed.\n // Otherwise it causes some callbacks to be retained (see #29696).\n this._afterNextRenderRef?.destroy();\n // Update the position once the overlay is fully rendered before attempting to position it,\n // as the position may depend on the size of the rendered content.\n this._afterNextRenderRef = afterNextRender(() => {\n // The overlay could've been detached before the callback executed.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n }, { injector: this._injector });\n // Enable pointer events for the overlay pane element.\n this._togglePointerEvents(true);\n if (this._config.hasBackdrop) {\n this._attachBackdrop();\n }\n if (this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, true);\n }\n // Only emit the `attachments` event once all other setup is done.\n this._attachments.next();\n // Track this overlay by the keyboard dispatcher\n this._keyboardDispatcher.add(this);\n if (this._config.disposeOnNavigation) {\n this._locationChanges = this._location.subscribe(() => this.dispose());\n }\n this._outsideClickDispatcher.add(this);\n // TODO(crisbeto): the null check is here, because the portal outlet returns `any`.\n // We should be guaranteed for the result to be `ComponentRef | EmbeddedViewRef`, but\n // `instanceof EmbeddedViewRef` doesn't appear to work at the moment.\n if (typeof attachResult?.onDestroy === 'function') {\n // In most cases we control the portal and we know when it is being detached so that\n // we can finish the disposal process. The exception is if the user passes in a custom\n // `ViewContainerRef` that isn't destroyed through the overlay API. Note that we use\n // `detach` here instead of `dispose`, because we don't know if the user intends to\n // reattach the overlay at a later point. It also has the advantage of waiting for animations.\n attachResult.onDestroy(() => {\n if (this.hasAttached()) {\n // We have to delay the `detach` call, because detaching immediately prevents\n // other destroy hooks from running. This is likely a framework bug similar to\n // https://github.com/angular/angular/issues/46119\n this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach()));\n }\n });\n }\n return attachResult;\n }\n /**\n * Detaches an overlay from a portal.\n * @returns The portal detachment result.\n */\n detach() {\n if (!this.hasAttached()) {\n return;\n }\n this.detachBackdrop();\n // When the overlay is detached, the pane element should disable pointer events.\n // This is necessary because otherwise the pane element will cover the page and disable\n // pointer events therefore. Depends on the position strategy and the applied pane boundaries.\n this._togglePointerEvents(false);\n if (this._positionStrategy && this._positionStrategy.detach) {\n this._positionStrategy.detach();\n }\n if (this._scrollStrategy) {\n this._scrollStrategy.disable();\n }\n const detachmentResult = this._portalOutlet.detach();\n // Only emit after everything is detached.\n this._detachments.next();\n // Remove this overlay from keyboard dispatcher tracking.\n this._keyboardDispatcher.remove(this);\n // Keeping the host element in the DOM can cause scroll jank, because it still gets\n // rendered, even though it's transparent and unclickable which is why we remove it.\n this._detachContentWhenEmpty();\n this._locationChanges.unsubscribe();\n this._outsideClickDispatcher.remove(this);\n return detachmentResult;\n }\n /** Cleans up the overlay from the DOM. */\n dispose() {\n const isAttached = this.hasAttached();\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._disposeScrollStrategy();\n this._disposeBackdrop(this._backdropElement);\n this._locationChanges.unsubscribe();\n this._keyboardDispatcher.remove(this);\n this._portalOutlet.dispose();\n this._attachments.complete();\n this._backdropClick.complete();\n this._keydownEvents.complete();\n this._outsidePointerEvents.complete();\n this._outsideClickDispatcher.remove(this);\n this._host?.remove();\n this._afterNextRenderRef?.destroy();\n this._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.complete();\n this._afterRenderRef.destroy();\n this._renders.complete();\n }\n /** Whether the overlay has attached content. */\n hasAttached() {\n return this._portalOutlet.hasAttached();\n }\n /** Gets an observable that emits when the backdrop has been clicked. */\n backdropClick() {\n return this._backdropClick;\n }\n /** Gets an observable that emits when the overlay has been attached. */\n attachments() {\n return this._attachments;\n }\n /** Gets an observable that emits when the overlay has been detached. */\n detachments() {\n return this._detachments;\n }\n /** Gets an observable of keydown events targeted to this overlay. */\n keydownEvents() {\n return this._keydownEvents;\n }\n /** Gets an observable of pointer events targeted outside this overlay. */\n outsidePointerEvents() {\n return this._outsidePointerEvents;\n }\n /** Gets the current overlay configuration, which is immutable. */\n getConfig() {\n return this._config;\n }\n /** Updates the position of the overlay based on the position strategy. */\n updatePosition() {\n if (this._positionStrategy) {\n this._positionStrategy.apply();\n }\n }\n /** Switches to a new position strategy and updates the overlay position. */\n updatePositionStrategy(strategy) {\n if (strategy === this._positionStrategy) {\n return;\n }\n if (this._positionStrategy) {\n this._positionStrategy.dispose();\n }\n this._positionStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n this.updatePosition();\n }\n }\n /** Update the size properties of the overlay. */\n updateSize(sizeConfig) {\n this._config = { ...this._config, ...sizeConfig };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = { ...this._config, direction: dir };\n this._updateElementDirection();\n }\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, true);\n }\n }\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes) {\n if (this._pane) {\n this._toggleClasses(this._pane, classes, false);\n }\n }\n /**\n * Returns the layout direction of the overlay panel.\n */\n getDirection() {\n const direction = this._config.direction;\n if (!direction) {\n return 'ltr';\n }\n return typeof direction === 'string' ? direction : direction.value;\n }\n /** Switches to a new scroll strategy. */\n updateScrollStrategy(strategy) {\n if (strategy === this._scrollStrategy) {\n return;\n }\n this._disposeScrollStrategy();\n this._scrollStrategy = strategy;\n if (this.hasAttached()) {\n strategy.attach(this);\n strategy.enable();\n }\n }\n /** Updates the text direction of the overlay panel. */\n _updateElementDirection() {\n this._host.setAttribute('dir', this.getDirection());\n }\n /** Updates the size of the overlay element based on the overlay config. */\n _updateElementSize() {\n if (!this._pane) {\n return;\n }\n const style = this._pane.style;\n style.width = coerceCssPixelValue(this._config.width);\n style.height = coerceCssPixelValue(this._config.height);\n style.minWidth = coerceCssPixelValue(this._config.minWidth);\n style.minHeight = coerceCssPixelValue(this._config.minHeight);\n style.maxWidth = coerceCssPixelValue(this._config.maxWidth);\n style.maxHeight = coerceCssPixelValue(this._config.maxHeight);\n }\n /** Toggles the pointer events for the overlay pane element. */\n _togglePointerEvents(enablePointer) {\n this._pane.style.pointerEvents = enablePointer ? '' : 'none';\n }\n /** Attaches a backdrop for this overlay. */\n _attachBackdrop() {\n const showingClass = 'cdk-overlay-backdrop-showing';\n this._backdropElement = this._document.createElement('div');\n this._backdropElement.classList.add('cdk-overlay-backdrop');\n if (this._animationsDisabled) {\n this._backdropElement.classList.add('cdk-overlay-backdrop-noop-animation');\n }\n if (this._config.backdropClass) {\n this._toggleClasses(this._backdropElement, this._config.backdropClass, true);\n }\n // Insert the backdrop before the pane in the DOM order,\n // in order to handle stacked overlays properly.\n this._host.parentElement.insertBefore(this._backdropElement, this._host);\n // Forward backdrop clicks such that the consumer of the overlay can perform whatever\n // action desired when such a click occurs (usually closing the overlay).\n this._backdropElement.addEventListener('click', this._backdropClickHandler);\n // Add class to fade-in the backdrop after one frame.\n if (!this._animationsDisabled && typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => {\n if (this._backdropElement) {\n this._backdropElement.classList.add(showingClass);\n }\n });\n });\n }\n else {\n this._backdropElement.classList.add(showingClass);\n }\n }\n /**\n * Updates the stacking order of the element, moving it to the top if necessary.\n * This is required in cases where one overlay was detached, while another one,\n * that should be behind it, was destroyed. The next time both of them are opened,\n * the stacking will be wrong, because the detached element's pane will still be\n * in its original DOM position.\n */\n _updateStackingOrder() {\n if (this._host.nextSibling) {\n this._host.parentNode.appendChild(this._host);\n }\n }\n /** Detaches the backdrop (if any) associated with the overlay. */\n detachBackdrop() {\n const backdropToDetach = this._backdropElement;\n if (!backdropToDetach) {\n return;\n }\n if (this._animationsDisabled) {\n this._disposeBackdrop(backdropToDetach);\n return;\n }\n backdropToDetach.classList.remove('cdk-overlay-backdrop-showing');\n this._ngZone.runOutsideAngular(() => {\n backdropToDetach.addEventListener('transitionend', this._backdropTransitionendHandler);\n });\n // If the backdrop doesn't have a transition, the `transitionend` event won't fire.\n // In this case we make it unclickable and we try to remove it after a delay.\n backdropToDetach.style.pointerEvents = 'none';\n // Run this outside the Angular zone because there's nothing that Angular cares about.\n // If it were to run inside the Angular zone, every test that used Overlay would have to be\n // either async or fakeAsync.\n this._backdropTimeout = this._ngZone.runOutsideAngular(() => setTimeout(() => {\n this._disposeBackdrop(backdropToDetach);\n }, 500));\n }\n /** Toggles a single CSS class or an array of classes on an element. */\n _toggleClasses(element, cssClasses, isAdd) {\n const classes = coerceArray(cssClasses || []).filter(c => !!c);\n if (classes.length) {\n isAdd ? element.classList.add(...classes) : element.classList.remove(...classes);\n }\n }\n /** Detaches the overlay content next time the zone stabilizes. */\n _detachContentWhenEmpty() {\n // Normally we wouldn't have to explicitly run this outside the `NgZone`, however\n // if the consumer is using `zone-patch-rxjs`, the `Subscription.unsubscribe` call will\n // be patched to run inside the zone, which will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => {\n // We can't remove the host here immediately, because the overlay pane's content\n // might still be animating. This stream helps us avoid interrupting the animation\n // by waiting for the pane to become empty.\n const subscription = this._renders\n .pipe(takeUntil(merge(this._attachments, this._detachments)))\n .subscribe(() => {\n // Needs a couple of checks for the pane and host, because\n // they may have been removed by the time the zone stabilizes.\n if (!this._pane || !this._host || this._pane.children.length === 0) {\n if (this._pane && this._config.panelClass) {\n this._toggleClasses(this._pane, this._config.panelClass, false);\n }\n if (this._host && this._host.parentElement) {\n this._previousHostParent = this._host.parentElement;\n this._host.remove();\n }\n subscription.unsubscribe();\n }\n });\n });\n }\n /** Disposes of a scroll strategy. */\n _disposeScrollStrategy() {\n const scrollStrategy = this._scrollStrategy;\n if (scrollStrategy) {\n scrollStrategy.disable();\n if (scrollStrategy.detach) {\n scrollStrategy.detach();\n }\n }\n }\n /** Removes a backdrop element from the DOM. */\n _disposeBackdrop(backdrop) {\n if (backdrop) {\n backdrop.removeEventListener('click', this._backdropClickHandler);\n backdrop.removeEventListener('transitionend', this._backdropTransitionendHandler);\n backdrop.remove();\n // It is possible that a new portal has been attached to this overlay since we started\n // removing the backdrop. If that is the case, only clear the backdrop reference if it\n // is still the same instance that we started to remove.\n if (this._backdropElement === backdrop) {\n this._backdropElement = null;\n }\n }\n if (this._backdropTimeout) {\n clearTimeout(this._backdropTimeout);\n this._backdropTimeout = undefined;\n }\n }\n}\n\n// TODO: refactor clipping detection into a separate thing (part of scrolling module)\n// TODO: doesn't handle both flexible width and height when it has to scroll along both axis.\n/** Class to be added to the overlay bounding box. */\nconst boundingBoxClass = 'cdk-overlay-connected-position-bounding-box';\n/** Regex used to split a string on its CSS units. */\nconst cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * implicit position relative some origin element. The relative position is defined in terms of\n * a point on the origin element that is connected to a point on the overlay element. For example,\n * a basic dropdown is connecting the bottom-left corner of the origin to the top-left corner\n * of the overlay.\n */\nclass FlexibleConnectedPositionStrategy {\n _viewportRuler;\n _document;\n _platform;\n _overlayContainer;\n /** The overlay to which this strategy is attached. */\n _overlayRef;\n /** Whether we're performing the very first positioning of the overlay. */\n _isInitialRender;\n /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n _lastBoundingBoxSize = { width: 0, height: 0 };\n /** Whether the overlay was pushed in a previous positioning. */\n _isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n _canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n _growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n _hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n _positionLocked = false;\n /** Cached origin dimensions */\n _originRect;\n /** Cached overlay dimensions */\n _overlayRect;\n /** Cached viewport dimensions */\n _viewportRect;\n /** Cached container dimensions */\n _containerRect;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n _viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n _scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n _preferredPositions = [];\n /** The origin element against which the overlay will be positioned. */\n _origin;\n /** The overlay pane element. */\n _pane;\n /** Whether the strategy has been disposed of already. */\n _isDisposed;\n /**\n * Parent element for the overlay panel used to constrain the overlay panel's size to fit\n * within the viewport.\n */\n _boundingBox;\n /** The last position to have been calculated as the best fit position. */\n _lastPosition;\n /** The last calculated scroll visibility. Only tracked */\n _lastScrollVisibility;\n /** Subject that emits whenever the position changes. */\n _positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n _resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n _offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n _offsetY = 0;\n /** Selector to be used when finding the elements on which to set the transform origin. */\n _transformOriginSelector;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n _appliedPanelClasses = [];\n /** Amount by which the overlay was pushed in each axis during the last time it was positioned. */\n _previousPushAmount;\n /** Observable sequence of position changes. */\n positionChanges = this._positionChanges;\n /** Ordered list of preferred positions, from most to least desirable. */\n get positions() {\n return this._preferredPositions;\n }\n constructor(connectedTo, _viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n this.setOrigin(connectedTo);\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef &&\n overlayRef !== this._overlayRef &&\n (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('This position strategy is already attached to an overlay');\n }\n this._validatePositions();\n overlayRef.hostElement.classList.add(boundingBoxClass);\n this._overlayRef = overlayRef;\n this._boundingBox = overlayRef.hostElement;\n this._pane = overlayRef.overlayElement;\n this._isDisposed = false;\n this._isInitialRender = true;\n this._lastPosition = null;\n this._resizeSubscription.unsubscribe();\n this._resizeSubscription = this._viewportRuler.change().subscribe(() => {\n // When the window is resized, we want to trigger the next reposition as if it\n // was an initial render, in order for the strategy to pick a new optimal position,\n // otherwise position locking will cause it to stay at the old one.\n this._isInitialRender = true;\n this.apply();\n });\n }\n /**\n * Updates the position of the overlay element, using whichever preferred position relative\n * to the origin best fits on-screen.\n *\n * The selection of a position goes as follows:\n * - If any positions fit completely within the viewport as-is,\n * choose the first position that does so.\n * - If flexible dimensions are enabled and at least one satisfies the given minimum width/height,\n * choose the position with the greatest available size modified by the positions' weight.\n * - If pushing is enabled, take the position that went off-screen the least and push it\n * on-screen.\n * - If none of the previous criteria were met, use the position that goes off-screen the least.\n * @docs-private\n */\n apply() {\n // We shouldn't do anything if the strategy was disposed or we're on the server.\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n // If the position has been applied already (e.g. when the overlay was opened) and the\n // consumer opted into locking in the position, re-use the old position, in order to\n // prevent the overlay from jumping around.\n if (!this._isInitialRender && this._positionLocked && this._lastPosition) {\n this.reapplyLastPosition();\n return;\n }\n this._clearPanelClasses();\n this._resetOverlayElementStyles();\n this._resetBoundingBoxStyles();\n // We need the bounding rects for the origin, the overlay and the container to determine how to position\n // the overlay relative to the origin.\n // We use the viewport rect to determine whether a position would go off-screen.\n this._viewportRect = this._getNarrowedViewportRect();\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originRect = this._originRect;\n const overlayRect = this._overlayRect;\n const viewportRect = this._viewportRect;\n const containerRect = this._containerRect;\n // Positions where the overlay will fit with flexible dimensions.\n const flexibleFits = [];\n // Fallback if none of the preferred positions fit within the viewport.\n let fallback;\n // Go through each of the preferred positions looking for a good fit.\n // If a good fit is found, it will be applied immediately.\n for (let pos of this._preferredPositions) {\n // Get the exact (x, y) coordinate for the point-of-origin on the origin element.\n let originPoint = this._getOriginPoint(originRect, containerRect, pos);\n // From that point-of-origin, get the exact (x, y) coordinate for the top-left corner of the\n // overlay in this position. We use the top-left corner for calculations and later translate\n // this into an appropriate (top, left, bottom, right) style.\n let overlayPoint = this._getOverlayPoint(originPoint, overlayRect, pos);\n // Calculate how well the overlay would fit into the viewport with this point.\n let overlayFit = this._getOverlayFit(overlayPoint, overlayRect, viewportRect, pos);\n // If the overlay, without any further work, fits into the viewport, use this position.\n if (overlayFit.isCompletelyWithinViewport) {\n this._isPushed = false;\n this._applyPosition(pos, originPoint);\n return;\n }\n // If the overlay has flexible dimensions, we can use this position\n // so long as there's enough space for the minimum dimensions.\n if (this._canFitWithFlexibleDimensions(overlayFit, overlayPoint, viewportRect)) {\n // Save positions where the overlay will fit with flexible dimensions. We will use these\n // if none of the positions fit *without* flexible dimensions.\n flexibleFits.push({\n position: pos,\n origin: originPoint,\n overlayRect,\n boundingBoxRect: this._calculateBoundingBoxRect(originPoint, pos),\n });\n continue;\n }\n // If the current preferred position does not fit on the screen, remember the position\n // if it has more visible area on-screen than we've seen and move onto the next preferred\n // position.\n if (!fallback || fallback.overlayFit.visibleArea < overlayFit.visibleArea) {\n fallback = { overlayFit, overlayPoint, originPoint, position: pos, overlayRect };\n }\n }\n // If there are any positions where the overlay would fit with flexible dimensions, choose the\n // one that has the greatest area available modified by the position's weight\n if (flexibleFits.length) {\n let bestFit = null;\n let bestScore = -1;\n for (const fit of flexibleFits) {\n const score = fit.boundingBoxRect.width * fit.boundingBoxRect.height * (fit.position.weight || 1);\n if (score > bestScore) {\n bestScore = score;\n bestFit = fit;\n }\n }\n this._isPushed = false;\n this._applyPosition(bestFit.position, bestFit.origin);\n return;\n }\n // When none of the preferred positions fit within the viewport, take the position\n // that went off-screen the least and attempt to push it on-screen.\n if (this._canPush) {\n // TODO(jelbourn): after pushing, the opening \"direction\" of the overlay might not make sense.\n this._isPushed = true;\n this._applyPosition(fallback.position, fallback.originPoint);\n return;\n }\n // All options for getting the overlay within the viewport have been exhausted, so go with the\n // position that went off-screen the least.\n this._applyPosition(fallback.position, fallback.originPoint);\n }\n detach() {\n this._clearPanelClasses();\n this._lastPosition = null;\n this._previousPushAmount = null;\n this._resizeSubscription.unsubscribe();\n }\n /** Cleanup after the element gets destroyed. */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n // We can't use `_resetBoundingBoxStyles` here, because it resets\n // some properties to zero, rather than removing them.\n if (this._boundingBox) {\n extendStyles(this._boundingBox.style, {\n top: '',\n left: '',\n right: '',\n bottom: '',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n if (this._pane) {\n this._resetOverlayElementStyles();\n }\n if (this._overlayRef) {\n this._overlayRef.hostElement.classList.remove(boundingBoxClass);\n }\n this.detach();\n this._positionChanges.complete();\n this._overlayRef = this._boundingBox = null;\n this._isDisposed = true;\n }\n /**\n * This re-aligns the overlay element with the trigger in its last calculated position,\n * even if a position higher in the \"preferred positions\" list would now fit. This\n * allows one to re-align the panel without changing the orientation of the panel.\n */\n reapplyLastPosition() {\n if (this._isDisposed || !this._platform.isBrowser) {\n return;\n }\n const lastPosition = this._lastPosition;\n if (lastPosition) {\n this._originRect = this._getOriginRect();\n this._overlayRect = this._pane.getBoundingClientRect();\n this._viewportRect = this._getNarrowedViewportRect();\n this._containerRect = this._overlayContainer.getContainerElement().getBoundingClientRect();\n const originPoint = this._getOriginPoint(this._originRect, this._containerRect, lastPosition);\n this._applyPosition(lastPosition, originPoint);\n }\n else {\n this.apply();\n }\n }\n /**\n * Sets the list of Scrollable containers that host the origin element so that\n * on reposition we can evaluate if it or the overlay has been clipped or outside view. Every\n * Scrollable must be an ancestor element of the strategy's origin element.\n */\n withScrollableContainers(scrollables) {\n this._scrollables = scrollables;\n return this;\n }\n /**\n * Adds new preferred positions.\n * @param positions List of positions options for this overlay.\n */\n withPositions(positions) {\n this._preferredPositions = positions;\n // If the last calculated position object isn't part of the positions anymore, clear\n // it in order to avoid it being picked up if the consumer tries to re-apply.\n if (positions.indexOf(this._lastPosition) === -1) {\n this._lastPosition = null;\n }\n this._validatePositions();\n return this;\n }\n /**\n * Sets a minimum distance the overlay may be positioned to the edge of the viewport.\n * @param margin Required margin between the overlay and the viewport edge in pixels.\n */\n withViewportMargin(margin) {\n this._viewportMargin = margin;\n return this;\n }\n /** Sets whether the overlay's width and height can be constrained to fit within the viewport. */\n withFlexibleDimensions(flexibleDimensions = true) {\n this._hasFlexibleDimensions = flexibleDimensions;\n return this;\n }\n /** Sets whether the overlay can grow after the initial open via flexible width/height. */\n withGrowAfterOpen(growAfterOpen = true) {\n this._growAfterOpen = growAfterOpen;\n return this;\n }\n /** Sets whether the overlay can be pushed on-screen if none of the provided positions fit. */\n withPush(canPush = true) {\n this._canPush = canPush;\n return this;\n }\n /**\n * Sets whether the overlay's position should be locked in after it is positioned\n * initially. When an overlay is locked in, it won't attempt to reposition itself\n * when the position is re-applied (e.g. when the user scrolls away).\n * @param isLocked Whether the overlay should locked in.\n */\n withLockedPosition(isLocked = true) {\n this._positionLocked = isLocked;\n return this;\n }\n /**\n * Sets the origin, relative to which to position the overlay.\n * Using an element origin is useful for building components that need to be positioned\n * relatively to a trigger (e.g. dropdown menus or tooltips), whereas using a point can be\n * used for cases like contextual menus which open relative to the user's pointer.\n * @param origin Reference to the new origin.\n */\n setOrigin(origin) {\n this._origin = origin;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the x-axis.\n * @param offset New offset in the X axis.\n */\n withDefaultOffsetX(offset) {\n this._offsetX = offset;\n return this;\n }\n /**\n * Sets the default offset for the overlay's connection point on the y-axis.\n * @param offset New offset in the Y axis.\n */\n withDefaultOffsetY(offset) {\n this._offsetY = offset;\n return this;\n }\n /**\n * Configures that the position strategy should set a `transform-origin` on some elements\n * inside the overlay, depending on the current position that is being applied. This is\n * useful for the cases where the origin of an animation can change depending on the\n * alignment of the overlay.\n * @param selector CSS selector that will be used to find the target\n * elements onto which to set the transform origin.\n */\n withTransformOriginOn(selector) {\n this._transformOriginSelector = selector;\n return this;\n }\n /**\n * Gets the (x, y) coordinate of a connection point on the origin based on a relative position.\n */\n _getOriginPoint(originRect, containerRect, pos) {\n let x;\n if (pos.originX == 'center') {\n // Note: when centering we should always use the `left`\n // offset, otherwise the position will be wrong in RTL.\n x = originRect.left + originRect.width / 2;\n }\n else {\n const startX = this._isRtl() ? originRect.right : originRect.left;\n const endX = this._isRtl() ? originRect.left : originRect.right;\n x = pos.originX == 'start' ? startX : endX;\n }\n // When zooming in Safari the container rectangle contains negative values for the position\n // and we need to re-add them to the calculated coordinates.\n if (containerRect.left < 0) {\n x -= containerRect.left;\n }\n let y;\n if (pos.originY == 'center') {\n y = originRect.top + originRect.height / 2;\n }\n else {\n y = pos.originY == 'top' ? originRect.top : originRect.bottom;\n }\n // Normally the containerRect's top value would be zero, however when the overlay is attached to an input\n // (e.g. in an autocomplete), mobile browsers will shift everything in order to put the input in the middle\n // of the screen and to make space for the virtual keyboard. We need to account for this offset,\n // otherwise our positioning will be thrown off.\n // Additionally, when zooming in Safari this fixes the vertical position.\n if (containerRect.top < 0) {\n y -= containerRect.top;\n }\n return { x, y };\n }\n /**\n * Gets the (x, y) coordinate of the top-left corner of the overlay given a given position and\n * origin point to which the overlay should be connected.\n */\n _getOverlayPoint(originPoint, overlayRect, pos) {\n // Calculate the (overlayStartX, overlayStartY), the start of the\n // potential overlay position relative to the origin point.\n let overlayStartX;\n if (pos.overlayX == 'center') {\n overlayStartX = -overlayRect.width / 2;\n }\n else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n }\n else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\n }\n else {\n overlayStartY = pos.overlayY == 'top' ? 0 : -overlayRect.height;\n }\n // The (x, y) coordinates of the overlay.\n return {\n x: originPoint.x + overlayStartX,\n y: originPoint.y + overlayStartY,\n };\n }\n /** Gets how well an overlay at the given point will fit within the viewport. */\n _getOverlayFit(point, rawOverlayRect, viewport, position) {\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n let { x, y } = point;\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n // Account for the offsets since they could push the overlay out of the viewport.\n if (offsetX) {\n x += offsetX;\n }\n if (offsetY) {\n y += offsetY;\n }\n // How much the overlay would overflow at this position, on each side.\n let leftOverflow = 0 - x;\n let rightOverflow = x + overlay.width - viewport.width;\n let topOverflow = 0 - y;\n let bottomOverflow = y + overlay.height - viewport.height;\n // Visible parts of the element on each axis.\n let visibleWidth = this._subtractOverflows(overlay.width, leftOverflow, rightOverflow);\n let visibleHeight = this._subtractOverflows(overlay.height, topOverflow, bottomOverflow);\n let visibleArea = visibleWidth * visibleHeight;\n return {\n visibleArea,\n isCompletelyWithinViewport: overlay.width * overlay.height === visibleArea,\n fitsInViewportVertically: visibleHeight === overlay.height,\n fitsInViewportHorizontally: visibleWidth == overlay.width,\n };\n }\n /**\n * Whether the overlay can fit within the viewport when it may resize either its width or height.\n * @param fit How well the overlay fits in the viewport at some position.\n * @param point The (x, y) coordinates of the overlay at some position.\n * @param viewport The geometry of the viewport.\n */\n _canFitWithFlexibleDimensions(fit, point, viewport) {\n if (this._hasFlexibleDimensions) {\n const availableHeight = viewport.bottom - point.y;\n const availableWidth = viewport.right - point.x;\n const minHeight = getPixelValue(this._overlayRef.getConfig().minHeight);\n const minWidth = getPixelValue(this._overlayRef.getConfig().minWidth);\n const verticalFit = fit.fitsInViewportVertically || (minHeight != null && minHeight <= availableHeight);\n const horizontalFit = fit.fitsInViewportHorizontally || (minWidth != null && minWidth <= availableWidth);\n return verticalFit && horizontalFit;\n }\n return false;\n }\n /**\n * Gets the point at which the overlay can be \"pushed\" on-screen. If the overlay is larger than\n * the viewport, the top-left corner will be pushed on-screen (with overflow occurring on the\n * right and bottom).\n *\n * @param start Starting point from which the overlay is pushed.\n * @param rawOverlayRect Dimensions of the overlay.\n * @param scrollPosition Current viewport scroll position.\n * @returns The point at which to position the overlay after pushing. This is effectively a new\n * originPoint.\n */\n _pushOverlayOnScreen(start, rawOverlayRect, scrollPosition) {\n // If the position is locked and we've pushed the overlay already, reuse the previous push\n // amount, rather than pushing it again. If we were to continue pushing, the element would\n // remain in the viewport, which goes against the expectations when position locking is enabled.\n if (this._previousPushAmount && this._positionLocked) {\n return {\n x: start.x + this._previousPushAmount.x,\n y: start.y + this._previousPushAmount.y,\n };\n }\n // Round the overlay rect when comparing against the\n // viewport, because the viewport is always rounded.\n const overlay = getRoundedBoundingClientRect(rawOverlayRect);\n const viewport = this._viewportRect;\n // Determine how much the overlay goes outside the viewport on each\n // side, which we'll use to decide which direction to push it.\n const overflowRight = Math.max(start.x + overlay.width - viewport.width, 0);\n const overflowBottom = Math.max(start.y + overlay.height - viewport.height, 0);\n const overflowTop = Math.max(viewport.top - scrollPosition.top - start.y, 0);\n const overflowLeft = Math.max(viewport.left - scrollPosition.left - start.x, 0);\n // Amount by which to push the overlay in each axis such that it remains on-screen.\n let pushX = 0;\n let pushY = 0;\n // If the overlay fits completely within the bounds of the viewport, push it from whichever\n // direction is goes off-screen. Otherwise, push the top-left corner such that its in the\n // viewport and allow for the trailing end of the overlay to go out of bounds.\n if (overlay.width <= viewport.width) {\n pushX = overflowLeft || -overflowRight;\n }\n else {\n pushX = start.x < this._viewportMargin ? viewport.left - scrollPosition.left - start.x : 0;\n }\n if (overlay.height <= viewport.height) {\n pushY = overflowTop || -overflowBottom;\n }\n else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = { x: pushX, y: pushY };\n return {\n x: start.x + pushX,\n y: start.y + pushY,\n };\n }\n /**\n * Applies a computed position to the overlay and emits a position change.\n * @param position The position preference\n * @param originPoint The point on the origin element where the overlay is connected.\n */\n _applyPosition(position, originPoint) {\n this._setTransformOrigin(position);\n this._setOverlayElementStyles(originPoint, position);\n this._setBoundingBoxStyles(originPoint, position);\n if (position.panelClass) {\n this._addPanelClasses(position.panelClass);\n }\n // Notify that the position has been changed along with its change properties.\n // We only emit if we've got any subscriptions, because the scroll visibility\n // calculations can be somewhat expensive.\n if (this._positionChanges.observers.length) {\n const scrollVisibility = this._getScrollVisibility();\n // We're recalculating on scroll, but we only want to emit if anything\n // changed since downstream code might be hitting the `NgZone`.\n if (position !== this._lastPosition ||\n !this._lastScrollVisibility ||\n !compareScrollVisibility(this._lastScrollVisibility, scrollVisibility)) {\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollVisibility);\n this._positionChanges.next(changeEvent);\n }\n this._lastScrollVisibility = scrollVisibility;\n }\n // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\n this._isInitialRender = false;\n }\n /** Sets the transform origin based on the configured selector and the passed-in position. */\n _setTransformOrigin(position) {\n if (!this._transformOriginSelector) {\n return;\n }\n const elements = this._boundingBox.querySelectorAll(this._transformOriginSelector);\n let xOrigin;\n let yOrigin = position.overlayY;\n if (position.overlayX === 'center') {\n xOrigin = 'center';\n }\n else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\n }\n else {\n xOrigin = position.overlayX === 'start' ? 'left' : 'right';\n }\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.transformOrigin = `${xOrigin} ${yOrigin}`;\n }\n }\n /**\n * Gets the position and size of the overlay's sizing container.\n *\n * This method does no measuring and applies no styles so that we can cheaply compute the\n * bounds for all positions and choose the best fit based on these results.\n */\n _calculateBoundingBoxRect(origin, position) {\n const viewport = this._viewportRect;\n const isRtl = this._isRtl();\n let height, top, bottom;\n if (position.overlayY === 'top') {\n // Overlay is opening \"downward\" and thus is bound by the bottom viewport edge.\n top = origin.y;\n height = viewport.height - top + this._viewportMargin;\n }\n else if (position.overlayY === 'bottom') {\n // Overlay is opening \"upward\" and thus is bound by the top viewport edge. We need to add\n // the viewport margin back in, because the viewport rect is narrowed down to remove the\n // margin, whereas the `origin` position is calculated based on its `DOMRect`.\n bottom = viewport.height - origin.y + this._viewportMargin * 2;\n height = viewport.height - bottom + this._viewportMargin;\n }\n else {\n // If neither top nor bottom, it means that the overlay is vertically centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.bottom - origin.y` and\n // `origin.y - viewport.top`.\n const smallestDistanceToViewportEdge = Math.min(viewport.bottom - origin.y + viewport.top, origin.y);\n const previousHeight = this._lastBoundingBoxSize.height;\n height = smallestDistanceToViewportEdge * 2;\n top = origin.y - smallestDistanceToViewportEdge;\n if (height > previousHeight && !this._isInitialRender && !this._growAfterOpen) {\n top = origin.y - previousHeight / 2;\n }\n }\n // The overlay is opening 'right-ward' (the content flows to the right).\n const isBoundedByRightViewportEdge = (position.overlayX === 'start' && !isRtl) || (position.overlayX === 'end' && isRtl);\n // The overlay is opening 'left-ward' (the content flows to the left).\n const isBoundedByLeftViewportEdge = (position.overlayX === 'end' && !isRtl) || (position.overlayX === 'start' && isRtl);\n let width, left, right;\n if (isBoundedByLeftViewportEdge) {\n right = viewport.width - origin.x + this._viewportMargin * 2;\n width = origin.x - this._viewportMargin;\n }\n else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\n }\n else {\n // If neither start nor end, it means that the overlay is horizontally centered on the\n // origin point. Note that we want the position relative to the viewport, rather than\n // the page, which is why we don't use something like `viewport.right - origin.x` and\n // `origin.x - viewport.left`.\n const smallestDistanceToViewportEdge = Math.min(viewport.right - origin.x + viewport.left, origin.x);\n const previousWidth = this._lastBoundingBoxSize.width;\n width = smallestDistanceToViewportEdge * 2;\n left = origin.x - smallestDistanceToViewportEdge;\n if (width > previousWidth && !this._isInitialRender && !this._growAfterOpen) {\n left = origin.x - previousWidth / 2;\n }\n }\n return { top: top, left: left, bottom: bottom, right: right, width, height };\n }\n /**\n * Sets the position and size of the overlay's sizing wrapper. The wrapper is positioned on the\n * origin's connection point and stretches to the bounds of the viewport.\n *\n * @param origin The point on the origin element where the overlay is connected.\n * @param position The position preference\n */\n _setBoundingBoxStyles(origin, position) {\n const boundingBoxRect = this._calculateBoundingBoxRect(origin, position);\n // It's weird if the overlay *grows* while scrolling, so we take the last size into account\n // when applying a new size.\n if (!this._isInitialRender && !this._growAfterOpen) {\n boundingBoxRect.height = Math.min(boundingBoxRect.height, this._lastBoundingBoxSize.height);\n boundingBoxRect.width = Math.min(boundingBoxRect.width, this._lastBoundingBoxSize.width);\n }\n const styles = {};\n if (this._hasExactPosition()) {\n styles.top = styles.left = '0';\n styles.bottom = styles.right = styles.maxHeight = styles.maxWidth = '';\n styles.width = styles.height = '100%';\n }\n else {\n const maxHeight = this._overlayRef.getConfig().maxHeight;\n const maxWidth = this._overlayRef.getConfig().maxWidth;\n styles.height = coerceCssPixelValue(boundingBoxRect.height);\n styles.top = coerceCssPixelValue(boundingBoxRect.top);\n styles.bottom = coerceCssPixelValue(boundingBoxRect.bottom);\n styles.width = coerceCssPixelValue(boundingBoxRect.width);\n styles.left = coerceCssPixelValue(boundingBoxRect.left);\n styles.right = coerceCssPixelValue(boundingBoxRect.right);\n // Push the pane content towards the proper direction.\n if (position.overlayX === 'center') {\n styles.alignItems = 'center';\n }\n else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\n }\n else {\n styles.justifyContent = position.overlayY === 'bottom' ? 'flex-end' : 'flex-start';\n }\n if (maxHeight) {\n styles.maxHeight = coerceCssPixelValue(maxHeight);\n }\n if (maxWidth) {\n styles.maxWidth = coerceCssPixelValue(maxWidth);\n }\n }\n this._lastBoundingBoxSize = boundingBoxRect;\n extendStyles(this._boundingBox.style, styles);\n }\n /** Resets the styles for the bounding box so that a new positioning can be computed. */\n _resetBoundingBoxStyles() {\n extendStyles(this._boundingBox.style, {\n top: '0',\n left: '0',\n right: '0',\n bottom: '0',\n height: '',\n width: '',\n alignItems: '',\n justifyContent: '',\n });\n }\n /** Resets the styles for the overlay pane so that a new positioning can be computed. */\n _resetOverlayElementStyles() {\n extendStyles(this._pane.style, {\n top: '',\n left: '',\n bottom: '',\n right: '',\n position: '',\n transform: '',\n });\n }\n /** Sets positioning styles to the overlay element. */\n _setOverlayElementStyles(originPoint, position) {\n const styles = {};\n const hasExactPosition = this._hasExactPosition();\n const hasFlexibleDimensions = this._hasFlexibleDimensions;\n const config = this._overlayRef.getConfig();\n if (hasExactPosition) {\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n extendStyles(styles, this._getExactOverlayY(position, originPoint, scrollPosition));\n extendStyles(styles, this._getExactOverlayX(position, originPoint, scrollPosition));\n }\n else {\n styles.position = 'static';\n }\n // Use a transform to apply the offsets. We do this because the `center` positions rely on\n // being in the normal flex flow and setting a `top` / `left` at all will completely throw\n // off the position. We also can't use margins, because they won't have an effect in some\n // cases where the element doesn't have anything to \"push off of\". Finally, this works\n // better both with flexible and non-flexible positioning.\n let transformString = '';\n let offsetX = this._getOffset(position, 'x');\n let offsetY = this._getOffset(position, 'y');\n if (offsetX) {\n transformString += `translateX(${offsetX}px) `;\n }\n if (offsetY) {\n transformString += `translateY(${offsetY}px)`;\n }\n styles.transform = transformString.trim();\n // If a maxWidth or maxHeight is specified on the overlay, we remove them. We do this because\n // we need these values to both be set to \"100%\" for the automatic flexible sizing to work.\n // The maxHeight and maxWidth are set on the boundingBox in order to enforce the constraint.\n // Note that this doesn't apply when we have an exact position, in which case we do want to\n // apply them because they'll be cleared from the bounding box.\n if (config.maxHeight) {\n if (hasExactPosition) {\n styles.maxHeight = coerceCssPixelValue(config.maxHeight);\n }\n else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\n }\n else if (hasFlexibleDimensions) {\n styles.maxWidth = '';\n }\n }\n extendStyles(this._pane.style, styles);\n }\n /** Gets the exact top/bottom for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayY(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the\n // preferred position has changed since the last `apply`.\n let styles = { top: '', bottom: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `top` or `bottom` based on whether the overlay wants to appear\n // above or below the origin and the direction in which the element will expand.\n if (position.overlayY === 'bottom') {\n // When using `bottom`, we adjust the y position such that it is the distance\n // from the bottom of the viewport rather than the top.\n const documentHeight = this._document.documentElement.clientHeight;\n styles.bottom = `${documentHeight - (overlayPoint.y + this._overlayRect.height)}px`;\n }\n else {\n styles.top = coerceCssPixelValue(overlayPoint.y);\n }\n return styles;\n }\n /** Gets the exact left/right for the overlay when not using flexible sizing or when pushing. */\n _getExactOverlayX(position, originPoint, scrollPosition) {\n // Reset any existing styles. This is necessary in case the preferred position has\n // changed since the last `apply`.\n let styles = { left: '', right: '' };\n let overlayPoint = this._getOverlayPoint(originPoint, this._overlayRect, position);\n if (this._isPushed) {\n overlayPoint = this._pushOverlayOnScreen(overlayPoint, this._overlayRect, scrollPosition);\n }\n // We want to set either `left` or `right` based on whether the overlay wants to appear \"before\"\n // or \"after\" the origin, which determines the direction in which the element will expand.\n // For the horizontal axis, the meaning of \"before\" and \"after\" change based on whether the\n // page is in RTL or LTR.\n let horizontalStyleProperty;\n if (this._isRtl()) {\n horizontalStyleProperty = position.overlayX === 'end' ? 'left' : 'right';\n }\n else {\n horizontalStyleProperty = position.overlayX === 'end' ? 'right' : 'left';\n }\n // When we're setting `right`, we adjust the x position such that it is the distance\n // from the right edge of the viewport rather than the left edge.\n if (horizontalStyleProperty === 'right') {\n const documentWidth = this._document.documentElement.clientWidth;\n styles.right = `${documentWidth - (overlayPoint.x + this._overlayRect.width)}px`;\n }\n else {\n styles.left = coerceCssPixelValue(overlayPoint.x);\n }\n return styles;\n }\n /**\n * Gets the view properties of the trigger and overlay, including whether they are clipped\n * or completely outside the view of any of the strategy's scrollables.\n */\n _getScrollVisibility() {\n // Note: needs fresh rects since the position could've changed.\n const originBounds = this._getOriginRect();\n const overlayBounds = this._pane.getBoundingClientRect();\n // TODO(jelbourn): instead of needing all of the client rects for these scrolling containers\n // every time, we should be able to use the scrollTop of the containers if the size of those\n // containers hasn't changed.\n const scrollContainerBounds = this._scrollables.map(scrollable => {\n return scrollable.getElementRef().nativeElement.getBoundingClientRect();\n });\n return {\n isOriginClipped: isElementClippedByScrolling(originBounds, scrollContainerBounds),\n isOriginOutsideView: isElementScrolledOutsideView(originBounds, scrollContainerBounds),\n isOverlayClipped: isElementClippedByScrolling(overlayBounds, scrollContainerBounds),\n isOverlayOutsideView: isElementScrolledOutsideView(overlayBounds, scrollContainerBounds),\n };\n }\n /** Subtracts the amount that an element is overflowing on an axis from its length. */\n _subtractOverflows(length, ...overflows) {\n return overflows.reduce((currentValue, currentOverflow) => {\n return currentValue - Math.max(currentOverflow, 0);\n }, length);\n }\n /** Narrows the given viewport rect by the current _viewportMargin. */\n _getNarrowedViewportRect() {\n // We recalculate the viewport rect here ourselves, rather than using the ViewportRuler,\n // because we want to use the `clientWidth` and `clientHeight` as the base. The difference\n // being that the client properties don't include the scrollbar, as opposed to `innerWidth`\n // and `innerHeight` that do. This is necessary, because the overlay container uses\n // 100% `width` and `height` which don't include the scrollbar either.\n const width = this._document.documentElement.clientWidth;\n const height = this._document.documentElement.clientHeight;\n const scrollPosition = this._viewportRuler.getViewportScrollPosition();\n return {\n top: scrollPosition.top + this._viewportMargin,\n left: scrollPosition.left + this._viewportMargin,\n right: scrollPosition.left + width - this._viewportMargin,\n bottom: scrollPosition.top + height - this._viewportMargin,\n width: width - 2 * this._viewportMargin,\n height: height - 2 * this._viewportMargin,\n };\n }\n /** Whether the we're dealing with an RTL context */\n _isRtl() {\n return this._overlayRef.getDirection() === 'rtl';\n }\n /** Determines whether the overlay uses exact or flexible positioning. */\n _hasExactPosition() {\n return !this._hasFlexibleDimensions || this._isPushed;\n }\n /** Retrieves the offset of a position along the x or y axis. */\n _getOffset(position, axis) {\n if (axis === 'x') {\n // We don't do something like `position['offset' + axis]` in\n // order to avoid breaking minifiers that rename properties.\n return position.offsetX == null ? this._offsetX : position.offsetX;\n }\n return position.offsetY == null ? this._offsetY : position.offsetY;\n }\n /** Validates that the current position match the expected values. */\n _validatePositions() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._preferredPositions.length) {\n throw Error('FlexibleConnectedPositionStrategy: At least one position is required.');\n }\n // TODO(crisbeto): remove these once Angular's template type\n // checking is advanced enough to catch these cases.\n this._preferredPositions.forEach(pair => {\n validateHorizontalPosition('originX', pair.originX);\n validateVerticalPosition('originY', pair.originY);\n validateHorizontalPosition('overlayX', pair.overlayX);\n validateVerticalPosition('overlayY', pair.overlayY);\n });\n }\n }\n /** Adds a single CSS class or an array of classes on the overlay panel. */\n _addPanelClasses(cssClasses) {\n if (this._pane) {\n coerceArray(cssClasses).forEach(cssClass => {\n if (cssClass !== '' && this._appliedPanelClasses.indexOf(cssClass) === -1) {\n this._appliedPanelClasses.push(cssClass);\n this._pane.classList.add(cssClass);\n }\n });\n }\n }\n /** Clears the classes that the position strategy has applied from the overlay panel. */\n _clearPanelClasses() {\n if (this._pane) {\n this._appliedPanelClasses.forEach(cssClass => {\n this._pane.classList.remove(cssClass);\n });\n this._appliedPanelClasses = [];\n }\n }\n /** Returns the DOMRect of the current origin. */\n _getOriginRect() {\n const origin = this._origin;\n if (origin instanceof ElementRef) {\n return origin.nativeElement.getBoundingClientRect();\n }\n // Check for Element so SVG elements are also supported.\n if (origin instanceof Element) {\n return origin.getBoundingClientRect();\n }\n const width = origin.width || 0;\n const height = origin.height || 0;\n // If the origin is a point, return a client rect as if it was a 0x0 element at the point.\n return {\n top: origin.y,\n bottom: origin.y + height,\n left: origin.x,\n right: origin.x + width,\n height,\n width,\n };\n }\n}\n/** Shallow-extends a stylesheet object with another stylesheet object. */\nfunction extendStyles(destination, source) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n destination[key] = source[key];\n }\n }\n return destination;\n}\n/**\n * Extracts the pixel value as a number from a value, if it's a number\n * or a CSS pixel string (e.g. `1337px`). Otherwise returns null.\n */\nfunction getPixelValue(input) {\n if (typeof input !== 'number' && input != null) {\n const [value, units] = input.split(cssUnitPattern);\n return !units || units === 'px' ? parseFloat(value) : null;\n }\n return input || null;\n}\n/**\n * Gets a version of an element's bounding `DOMRect` where all the values are rounded down to\n * the nearest pixel. This allows us to account for the cases where there may be sub-pixel\n * deviations in the `DOMRect` returned by the browser (e.g. when zoomed in with a percentage\n * size, see #21350).\n */\nfunction getRoundedBoundingClientRect(clientRect) {\n return {\n top: Math.floor(clientRect.top),\n right: Math.floor(clientRect.right),\n bottom: Math.floor(clientRect.bottom),\n left: Math.floor(clientRect.left),\n width: Math.floor(clientRect.width),\n height: Math.floor(clientRect.height),\n };\n}\n/** Returns whether two `ScrollingVisibility` objects are identical. */\nfunction compareScrollVisibility(a, b) {\n if (a === b) {\n return true;\n }\n return (a.isOriginClipped === b.isOriginClipped &&\n a.isOriginOutsideView === b.isOriginOutsideView &&\n a.isOverlayClipped === b.isOverlayClipped &&\n a.isOverlayOutsideView === b.isOverlayOutsideView);\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },\n];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' },\n { originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n { originX: 'start', originY: 'bottom', overlayX: 'end', overlayY: 'bottom' },\n];\n\n/** Class to be added to the overlay pane wrapper. */\nconst wrapperClass = 'cdk-global-overlay-wrapper';\n/**\n * A strategy for positioning overlays. Using this strategy, an overlay is given an\n * explicit position relative to the browser's viewport. We use flexbox, instead of\n * transforms, in order to avoid issues with subpixel rendering which can cause the\n * element to become blurry.\n */\nclass GlobalPositionStrategy {\n /** The overlay to which this strategy is attached. */\n _overlayRef;\n _cssPosition = 'static';\n _topOffset = '';\n _bottomOffset = '';\n _alignItems = '';\n _xPosition = '';\n _xOffset = '';\n _width = '';\n _height = '';\n _isDisposed = false;\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({ width: this._width });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({ height: this._height });\n }\n overlayRef.hostElement.classList.add(wrapperClass);\n this._isDisposed = false;\n }\n /**\n * Sets the top position of the overlay. Clears any previously set vertical position.\n * @param value New top offset.\n */\n top(value = '') {\n this._bottomOffset = '';\n this._topOffset = value;\n this._alignItems = 'flex-start';\n return this;\n }\n /**\n * Sets the left position of the overlay. Clears any previously set horizontal position.\n * @param value New left offset.\n */\n left(value = '') {\n this._xOffset = value;\n this._xPosition = 'left';\n return this;\n }\n /**\n * Sets the bottom position of the overlay. Clears any previously set vertical position.\n * @param value New bottom offset.\n */\n bottom(value = '') {\n this._topOffset = '';\n this._bottomOffset = value;\n this._alignItems = 'flex-end';\n return this;\n }\n /**\n * Sets the right position of the overlay. Clears any previously set horizontal position.\n * @param value New right offset.\n */\n right(value = '') {\n this._xOffset = value;\n this._xPosition = 'right';\n return this;\n }\n /**\n * Sets the overlay to the start of the viewport, depending on the overlay direction.\n * This will be to the left in LTR layouts and to the right in RTL.\n * @param offset Offset from the edge of the screen.\n */\n start(value = '') {\n this._xOffset = value;\n this._xPosition = 'start';\n return this;\n }\n /**\n * Sets the overlay to the end of the viewport, depending on the overlay direction.\n * This will be to the right in LTR layouts and to the left in RTL.\n * @param offset Offset from the edge of the screen.\n */\n end(value = '') {\n this._xOffset = value;\n this._xPosition = 'end';\n return this;\n }\n /**\n * Sets the overlay width and clears any previously set width.\n * @param value New width for the overlay\n * @deprecated Pass the `width` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n width(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ width: value });\n }\n else {\n this._width = value;\n }\n return this;\n }\n /**\n * Sets the overlay height and clears any previously set height.\n * @param value New height for the overlay\n * @deprecated Pass the `height` through the `OverlayConfig`.\n * @breaking-change 8.0.0\n */\n height(value = '') {\n if (this._overlayRef) {\n this._overlayRef.updateSize({ height: value });\n }\n else {\n this._height = value;\n }\n return this;\n }\n /**\n * Centers the overlay horizontally with an optional offset.\n * Clears any previously set horizontal position.\n *\n * @param offset Overlay offset from the horizontal center.\n */\n centerHorizontally(offset = '') {\n this.left(offset);\n this._xPosition = 'center';\n return this;\n }\n /**\n * Centers the overlay vertically with an optional offset.\n * Clears any previously set vertical position.\n *\n * @param offset Overlay offset from the vertical center.\n */\n centerVertically(offset = '') {\n this.top(offset);\n this._alignItems = 'center';\n return this;\n }\n /**\n * Apply the position to the element.\n * @docs-private\n */\n apply() {\n // Since the overlay ref applies the strategy asynchronously, it could\n // have been disposed before it ends up being applied. If that is the\n // case, we shouldn't do anything.\n if (!this._overlayRef || !this._overlayRef.hasAttached()) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parentStyles = this._overlayRef.hostElement.style;\n const config = this._overlayRef.getConfig();\n const { width, height, maxWidth, maxHeight } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') &&\n (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') &&\n (!maxHeight || maxHeight === '100%' || maxHeight === '100vh');\n const xPosition = this._xPosition;\n const xOffset = this._xOffset;\n const isRtl = this._overlayRef.getConfig().direction === 'rtl';\n let marginLeft = '';\n let marginRight = '';\n let justifyContent = '';\n if (shouldBeFlushHorizontally) {\n justifyContent = 'flex-start';\n }\n else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n }\n else {\n marginLeft = xOffset;\n }\n }\n else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n }\n else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\n }\n else if (xPosition === 'right' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginRight = xOffset;\n }\n styles.position = this._cssPosition;\n styles.marginLeft = shouldBeFlushHorizontally ? '0' : marginLeft;\n styles.marginTop = shouldBeFlushVertically ? '0' : this._topOffset;\n styles.marginBottom = this._bottomOffset;\n styles.marginRight = shouldBeFlushHorizontally ? '0' : marginRight;\n parentStyles.justifyContent = justifyContent;\n parentStyles.alignItems = shouldBeFlushVertically ? 'flex-start' : this._alignItems;\n }\n /**\n * Cleans up the DOM changes from the position strategy.\n * @docs-private\n */\n dispose() {\n if (this._isDisposed || !this._overlayRef) {\n return;\n }\n const styles = this._overlayRef.overlayElement.style;\n const parent = this._overlayRef.hostElement;\n const parentStyles = parent.style;\n parent.classList.remove(wrapperClass);\n parentStyles.justifyContent =\n parentStyles.alignItems =\n styles.marginTop =\n styles.marginBottom =\n styles.marginLeft =\n styles.marginRight =\n styles.position =\n '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n _viewportRuler = inject(ViewportRuler);\n _document = inject(DOCUMENT);\n _platform = inject(Platform);\n _overlayContainer = inject(OverlayContainer);\n constructor() { }\n /**\n * Creates a global position strategy.\n */\n global() {\n return new GlobalPositionStrategy();\n }\n /**\n * Creates a flexible position strategy.\n * @param origin Origin relative to which to position the overlay.\n */\n flexibleConnectedTo(origin) {\n return new FlexibleConnectedPositionStrategy(origin, this._viewportRuler, this._document, this._platform, this._overlayContainer);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayPositionBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayPositionBuilder, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayPositionBuilder, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalOutlet, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n scrollStrategies = inject(ScrollStrategyOptions);\n _overlayContainer = inject(OverlayContainer);\n _positionBuilder = inject(OverlayPositionBuilder);\n _keyboardDispatcher = inject(OverlayKeyboardDispatcher);\n _injector = inject(Injector);\n _ngZone = inject(NgZone);\n _document = inject(DOCUMENT);\n _directionality = inject(Directionality);\n _location = inject(Location);\n _outsideClickDispatcher = inject(OverlayOutsideClickDispatcher);\n _animationsModuleType = inject(ANIMATION_MODULE_TYPE, { optional: true });\n _idGenerator = inject(_IdGenerator);\n _appRef;\n _styleLoader = inject(_CdkPrivateStyleLoader);\n constructor() { }\n /**\n * Creates an overlay.\n * @param config Configuration applied to the overlay.\n * @returns Reference to the created overlay.\n */\n create(config) {\n // This is done in the overlay container as well, but we have it here\n // since it's common to mock out the overlay container in tests.\n this._styleLoader.load(_CdkOverlayStyleLoader);\n const host = this._createHostElement();\n const pane = this._createPaneElement(host);\n const portalOutlet = this._createPortalOutlet(pane);\n const overlayConfig = new OverlayConfig(config);\n overlayConfig.direction = overlayConfig.direction || this._directionality.value;\n return new OverlayRef(portalOutlet, host, pane, overlayConfig, this._ngZone, this._keyboardDispatcher, this._document, this._location, this._outsideClickDispatcher, this._animationsModuleType === 'NoopAnimations', this._injector.get(EnvironmentInjector));\n }\n /**\n * Gets a position builder that can be used, via fluent API,\n * to construct and configure a position strategy.\n * @returns An overlay position builder.\n */\n position() {\n return this._positionBuilder;\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(host) {\n const pane = this._document.createElement('div');\n pane.id = this._idGenerator.getId('cdk-overlay-');\n pane.classList.add('cdk-overlay-pane');\n host.appendChild(pane);\n return pane;\n }\n /**\n * Creates the host element that wraps around an overlay\n * and can be used for advanced positioning.\n * @returns Newly-create host element.\n */\n _createHostElement() {\n const host = this._document.createElement('div');\n this._overlayContainer.getContainerElement().appendChild(host);\n return host;\n }\n /**\n * Create a DomPortalOutlet into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal outlet.\n * @returns A portal outlet for the given DOM element.\n */\n _createPortalOutlet(pane) {\n // We have to resolve the ApplicationRef later in order to allow people\n // to use overlay-based providers during app initialization.\n if (!this._appRef) {\n this._appRef = this._injector.get(ApplicationRef);\n }\n return new DomPortalOutlet(pane, null, this._appRef, this._injector, this._document);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: Overlay, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: Overlay, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n];\n/** Injection token that determines the scroll handling while the connected overlay is open. */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY = new InjectionToken('cdk-connected-overlay-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n },\n});\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nclass CdkOverlayOrigin {\n elementRef = inject(ElementRef);\n constructor() { }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: CdkOverlayOrigin, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"19.0.0\", type: CdkOverlayOrigin, isStandalone: true, selector: \"[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]\", exportAs: [\"cdkOverlayOrigin\"], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: CdkOverlayOrigin, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n }]\n }], ctorParameters: () => [] });\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\n _overlay = inject(Overlay);\n _dir = inject(Directionality, { optional: true });\n _overlayRef;\n _templatePortal;\n _backdropSubscription = Subscription.EMPTY;\n _attachSubscription = Subscription.EMPTY;\n _detachSubscription = Subscription.EMPTY;\n _positionSubscription = Subscription.EMPTY;\n _offsetX;\n _offsetY;\n _position;\n _scrollStrategyFactory = inject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY);\n _disposeOnNavigation = false;\n _ngZone = inject(NgZone);\n /** Origin for the connected overlay. */\n origin;\n /** Registered connected position pairs. */\n positions;\n /**\n * This input overrides the positions input if specified. It lets users pass\n * in arbitrary positioning strategies.\n */\n positionStrategy;\n /** The offset in pixels for the overlay connection point on the x-axis */\n get offsetX() {\n return this._offsetX;\n }\n set offsetX(offsetX) {\n this._offsetX = offsetX;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The offset in pixels for the overlay connection point on the y-axis */\n get offsetY() {\n return this._offsetY;\n }\n set offsetY(offsetY) {\n this._offsetY = offsetY;\n if (this._position) {\n this._updatePositionStrategy(this._position);\n }\n }\n /** The width of the overlay panel. */\n width;\n /** The height of the overlay panel. */\n height;\n /** The min width of the overlay panel. */\n minWidth;\n /** The min height of the overlay panel. */\n minHeight;\n /** The custom class to be set on the backdrop element. */\n backdropClass;\n /** The custom class to add to the overlay pane element. */\n panelClass;\n /** Margin between the overlay and the viewport edges. */\n viewportMargin = 0;\n /** Strategy to be used when handling scroll events while the overlay is open. */\n scrollStrategy;\n /** Whether the overlay is open. */\n open = false;\n /** Whether the overlay can be closed by user interaction. */\n disableClose = false;\n /** CSS selector which to set the transform origin. */\n transformOriginSelector;\n /** Whether or not the overlay should attach a backdrop. */\n hasBackdrop = false;\n /** Whether or not the overlay should be locked when scrolling. */\n lockPosition = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n flexibleDimensions = false;\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n growAfterOpen = false;\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n push = false;\n /** Whether the overlay should be disposed of when the user goes backwards/forwards in history. */\n get disposeOnNavigation() {\n return this._disposeOnNavigation;\n }\n set disposeOnNavigation(value) {\n this._disposeOnNavigation = value;\n }\n /** Event emitted when the backdrop is clicked. */\n backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n overlayOutsideClick = new EventEmitter();\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor() {\n const templateRef = inject(TemplateRef);\n const viewContainerRef = inject(ViewContainerRef);\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight,\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = (this._overlayRef = this._overlay.create(this._buildConfig()));\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe((event) => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe((event) => {\n const origin = this._getOriginElement();\n const target = _getEventTarget(event);\n if (!origin || (origin !== target && !origin.contains(target))) {\n this.overlayOutsideClick.next(event);\n }\n });\n }\n /** Builds the overlay config based on the directive's inputs */\n _buildConfig() {\n const positionStrategy = (this._position =\n this.positionStrategy || this._createPositionStrategy());\n const overlayConfig = new OverlayConfig({\n direction: this._dir || 'ltr',\n positionStrategy,\n scrollStrategy: this.scrollStrategy,\n hasBackdrop: this.hasBackdrop,\n disposeOnNavigation: this.disposeOnNavigation,\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined,\n }));\n return positionStrategy\n .setOrigin(this._getOrigin())\n .withPositions(positions)\n .withFlexibleDimensions(this.flexibleDimensions)\n .withPush(this.push)\n .withGrowAfterOpen(this.growAfterOpen)\n .withViewportMargin(this.viewportMargin)\n .withLockedPosition(this.lockPosition)\n .withTransformOriginOn(this.transformOriginSelector);\n }\n /** Returns the position strategy of the overlay to be set on the overlay config */\n _createPositionStrategy() {\n const strategy = this._overlay.position().flexibleConnectedTo(this._getOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n }\n else {\n return this.origin;\n }\n }\n _getOriginElement() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef.nativeElement;\n }\n if (this.origin instanceof ElementRef) {\n return this.origin.nativeElement;\n }\n if (typeof Element !== 'undefined' && this.origin instanceof Element) {\n return this.origin;\n }\n return null;\n }\n /** Attaches the overlay and subscribes to backdrop clicks if backdrop exists */\n _attachOverlay() {\n if (!this._overlayRef) {\n this._createOverlay();\n }\n else {\n // Update the overlay size, in case the directive's inputs have changed\n this._overlayRef.getConfig().hasBackdrop = this.hasBackdrop;\n }\n if (!this._overlayRef.hasAttached()) {\n this._overlayRef.attach(this._templatePortal);\n }\n if (this.hasBackdrop) {\n this._backdropSubscription = this._overlayRef.backdropClick().subscribe(event => {\n this.backdropClick.emit(event);\n });\n }\n else {\n this._backdropSubscription.unsubscribe();\n }\n this._positionSubscription.unsubscribe();\n // Only subscribe to `positionChanges` if requested, because putting\n // together all the information for it can be expensive.\n if (this.positionChange.observers.length > 0) {\n this._positionSubscription = this._position.positionChanges\n .pipe(takeWhile(() => this.positionChange.observers.length > 0))\n .subscribe(position => {\n this._ngZone.run(() => this.positionChange.emit(position));\n if (this.positionChange.observers.length === 0) {\n this._positionSubscription.unsubscribe();\n }\n });\n }\n }\n /** Detaches the overlay and unsubscribes to backdrop clicks if backdrop exists */\n _detachOverlay() {\n if (this._overlayRef) {\n this._overlayRef.detach();\n }\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: CdkConnectedOverlay, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"16.1.0\", version: \"19.0.0\", type: CdkConnectedOverlay, isStandalone: true, selector: \"[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]\", inputs: { origin: [\"cdkConnectedOverlayOrigin\", \"origin\"], positions: [\"cdkConnectedOverlayPositions\", \"positions\"], positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"], offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"], offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"], width: [\"cdkConnectedOverlayWidth\", \"width\"], height: [\"cdkConnectedOverlayHeight\", \"height\"], minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"], minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"], backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"], panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"], viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"], scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"], open: [\"cdkConnectedOverlayOpen\", \"open\"], disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"], transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"], hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\", booleanAttribute], lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\", booleanAttribute], flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\", booleanAttribute], growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\", booleanAttribute], push: [\"cdkConnectedOverlayPush\", \"push\", booleanAttribute], disposeOnNavigation: [\"cdkConnectedOverlayDisposeOnNavigation\", \"disposeOnNavigation\", booleanAttribute] }, outputs: { backdropClick: \"backdropClick\", positionChange: \"positionChange\", attach: \"attach\", detach: \"detach\", overlayKeydown: \"overlayKeydown\", overlayOutsideClick: \"overlayOutsideClick\" }, exportAs: [\"cdkConnectedOverlay\"], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: CdkConnectedOverlay, decorators: [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n }]\n }], ctorParameters: () => [], propDecorators: { origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }], positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }], positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }], offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }], offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }], width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }], height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }], minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }], minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }], backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }], panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }], viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }], scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }], open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }], disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }], transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }], hasBackdrop: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayHasBackdrop', transform: booleanAttribute }]\n }], lockPosition: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayLockPosition', transform: booleanAttribute }]\n }], flexibleDimensions: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayFlexibleDimensions', transform: booleanAttribute }]\n }], growAfterOpen: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayGrowAfterOpen', transform: booleanAttribute }]\n }], push: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayPush', transform: booleanAttribute }]\n }], disposeOnNavigation: [{\n type: Input,\n args: [{ alias: 'cdkConnectedOverlayDisposeOnNavigation', transform: booleanAttribute }]\n }], backdropClick: [{\n type: Output\n }], positionChange: [{\n type: Output\n }], attach: [{\n type: Output\n }], detach: [{\n type: Output\n }], overlayKeydown: [{\n type: Output\n }], overlayOutsideClick: [{\n type: Output\n }] } });\n/** @docs-private */\nfunction CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER = {\n provide: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY,\n};\n\nclass OverlayModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayModule, imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin], exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayModule, providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER], imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: OverlayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PortalModule, ScrollingModule, CdkConnectedOverlay, CdkOverlayOrigin],\n exports: [CdkConnectedOverlay, CdkOverlayOrigin, ScrollingModule],\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n }]\n }] });\n\n/**\n * Alternative to OverlayContainer that supports correct displaying of overlay elements in\n * Fullscreen mode\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n *\n * Should be provided in the root component.\n */\nclass FullscreenOverlayContainer extends OverlayContainer {\n _fullScreenEventName;\n _fullScreenListener;\n constructor() {\n super();\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this._fullScreenEventName && this._fullScreenListener) {\n this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);\n }\n }\n _createContainer() {\n super._createContainer();\n this._adjustParentForFullscreenChange();\n this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());\n }\n _adjustParentForFullscreenChange() {\n if (!this._containerElement) {\n return;\n }\n const fullscreenElement = this.getFullscreenElement();\n const parent = fullscreenElement || this._document.body;\n parent.appendChild(this._containerElement);\n }\n _addFullscreenChangeListener(fn) {\n const eventName = this._getEventName();\n if (eventName) {\n if (this._fullScreenListener) {\n this._document.removeEventListener(eventName, this._fullScreenListener);\n }\n this._document.addEventListener(eventName, fn);\n this._fullScreenListener = fn;\n }\n }\n _getEventName() {\n if (!this._fullScreenEventName) {\n const _document = this._document;\n if (_document.fullscreenEnabled) {\n this._fullScreenEventName = 'fullscreenchange';\n }\n else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n }\n else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\n }\n else if (_document.msFullscreenEnabled) {\n this._fullScreenEventName = 'MSFullscreenChange';\n }\n }\n return this._fullScreenEventName;\n }\n /**\n * When the page is put into fullscreen mode, a specific element is specified.\n * Only that element and its children are visible when in fullscreen mode.\n */\n getFullscreenElement() {\n const _document = this._document;\n return (_document.fullscreenElement ||\n _document.webkitFullscreenElement ||\n _document.mozFullScreenElement ||\n _document.msFullscreenElement ||\n null);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: FullscreenOverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: FullscreenOverlayContainer, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"19.0.0\", ngImport: i0, type: FullscreenOverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BlockScrollStrategy, CdkConnectedOverlay, CdkOverlayOrigin, CloseScrollStrategy, ConnectedOverlayPositionChange, ConnectionPositionPair, FlexibleConnectedPositionStrategy, FullscreenOverlayContainer, GlobalPositionStrategy, NoopScrollStrategy, Overlay, OverlayConfig, OverlayContainer, OverlayKeyboardDispatcher, OverlayModule, OverlayOutsideClickDispatcher, OverlayPositionBuilder, OverlayRef, RepositionScrollStrategy, STANDARD_DROPDOWN_ADJACENT_POSITIONS, STANDARD_DROPDOWN_BELOW_POSITIONS, ScrollStrategyOptions, ScrollingVisibility, validateHorizontalPosition, validateVerticalPosition };\n","import { _IdGenerator } from '@angular/cdk/a11y';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, inject, ElementRef, ChangeDetectorRef, NgZone, ANIMATION_MODULE_TYPE, EventEmitter, HostAttributeToken, booleanAttribute, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, ViewChild, Directive, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\nimport { _StructuralStylesLoader, MatRipple, _MatInternalFormField, MatCommonModule } from '@angular/material/core';\nimport { _CdkPrivateStyleLoader } from '@angular/cdk/private';\n\n/** Injection token to be used to override the default options for `mat-checkbox`. */\nconst MAT_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken('mat-checkbox-default-options', {\n providedIn: 'root',\n factory: MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY,\n});\n/** @docs-private */\nfunction MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY() {\n return {\n color: 'accent',\n clickAction: 'check-indeterminate',\n disabledInteractive: false,\n };\n}\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nvar TransitionCheckState;\n(function (TransitionCheckState) {\n /** The initial state of the component before any user interaction. */\n TransitionCheckState[TransitionCheckState[\"Init\"] = 0] = \"Init\";\n /** The state representing the component when it's becoming checked. */\n TransitionCheckState[TransitionCheckState[\"Checked\"] = 1] = \"Checked\";\n /** The state representing the component when it's becoming unchecked. */\n TransitionCheckState[TransitionCheckState[\"Unchecked\"] = 2] = \"Unchecked\";\n /** The state representing the component when it's becoming indeterminate. */\n TransitionCheckState[TransitionCheckState[\"Indeterminate\"] = 3] = \"Indeterminate\";\n})(TransitionCheckState || (TransitionCheckState = {}));\n/**\n * @deprecated Will stop being exported.\n * @breaking-change 19.0.0\n */\nconst MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatCheckbox),\n multi: true,\n};\n/** Change event object emitted by checkbox. */\nclass MatCheckboxChange {\n /** The source checkbox of the event. */\n source;\n /** The new `checked` value of the checkbox. */\n checked;\n}\n// Default checkbox configuration.\nconst defaults = MAT_CHECKBOX_DEFAULT_OPTIONS_FACTORY();\nclass MatCheckbox {\n _elementRef = inject(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n _ngZone = inject(NgZone);\n _animationMode = inject(ANIMATION_MODULE_TYPE, { optional: true });\n _options = inject(MAT_CHECKBOX_DEFAULT_OPTIONS, {\n optional: true,\n });\n /** Focuses the checkbox. */\n focus() {\n this._inputElement.nativeElement.focus();\n }\n /** Creates the change event that will be emitted by the checkbox. */\n _createChangeEvent(isChecked) {\n const event = new MatCheckboxChange();\n event.source = this;\n event.checked = isChecked;\n return event;\n }\n /** Gets the element on which to add the animation CSS classes. */\n _getAnimationTargetElement() {\n return this._inputElement?.nativeElement;\n }\n /** CSS classes to add when transitioning between the different checkbox states. */\n _animationClasses = {\n uncheckedToChecked: 'mdc-checkbox--anim-unchecked-checked',\n uncheckedToIndeterminate: 'mdc-checkbox--anim-unchecked-indeterminate',\n checkedToUnchecked: 'mdc-checkbox--anim-checked-unchecked',\n checkedToIndeterminate: 'mdc-checkbox--anim-checked-indeterminate',\n indeterminateToChecked: 'mdc-checkbox--anim-indeterminate-checked',\n indeterminateToUnchecked: 'mdc-checkbox--anim-indeterminate-unchecked',\n };\n /**\n * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will\n * take precedence so this may be omitted.\n */\n ariaLabel = '';\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n ariaLabelledby = null;\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n ariaDescribedby;\n /**\n * Users can specify the `aria-expanded` attribute which will be forwarded to the input element\n */\n ariaExpanded;\n /**\n * Users can specify the `aria-controls` attribute which will be forwarded to the input element\n */\n ariaControls;\n /** Users can specify the `aria-owns` attribute which will be forwarded to the input element */\n ariaOwns;\n _uniqueId;\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n id;\n /** Returns the unique id for the visual hidden input. */\n get inputId() {\n return `${this.id || this._uniqueId}-input`;\n }\n /** Whether the checkbox is required. */\n required;\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n labelPosition = 'after';\n /** Name value will be applied to the input element if present */\n name = null;\n /** Event emitted when the checkbox's `checked` value changes. */\n change = new EventEmitter();\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n indeterminateChange = new EventEmitter();\n /** The value attribute of the native input element */\n value;\n /** Whether the checkbox has a ripple. */\n disableRipple;\n /** The native `` element */\n _inputElement;\n /** The native `