`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n super.detach();\n }\n if (portal) {\n super.attach(portal);\n }\n this._attachedPortal = portal || null;\n }\n /** Component or view reference that is attached to the portal. */\n get attachedRef() {\n return this._attachedRef;\n }\n ngOnInit() {\n this._isInitialized = true;\n }\n ngOnDestroy() {\n super.dispose();\n this._attachedRef = this._attachedPortal = null;\n }\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal(portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n const ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector, portal.projectableNodes || undefined);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n }\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal(portal) {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context, {\n injector: portal.injector\n });\n super.setDisposeFn(() => this._viewContainerRef.clear());\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n }\n /** Gets the root node of the portal outlet. */\n _getRootNode() {\n const nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return nativeElement.nodeType === nativeElement.ELEMENT_NODE ? nativeElement : nativeElement.parentNode;\n }\n static {\n this.ɵfac = function CdkPortalOutlet_Factory(t) {\n return new (t || CdkPortalOutlet)(i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkPortalOutlet,\n selectors: [[\"\", \"cdkPortalOutlet\", \"\"]],\n inputs: {\n portal: [i0.ɵɵInputFlags.None, \"cdkPortalOutlet\", \"portal\"]\n },\n outputs: {\n attached: \"attached\"\n },\n exportAs: [\"cdkPortalOutlet\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkPortalOutlet, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n standalone: true\n }]\n }], () => [{\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], {\n portal: [{\n type: Input,\n args: ['cdkPortalOutlet']\n }],\n attached: [{\n type: Output\n }]\n });\n})();\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nclass PortalHostDirective extends CdkPortalOutlet {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵPortalHostDirective_BaseFactory;\n return function PortalHostDirective_Factory(t) {\n return (ɵPortalHostDirective_BaseFactory || (ɵPortalHostDirective_BaseFactory = i0.ɵɵgetInheritedFactory(PortalHostDirective)))(t || PortalHostDirective);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PortalHostDirective,\n selectors: [[\"\", \"cdkPortalHost\", \"\"], [\"\", \"portalHost\", \"\"]],\n inputs: {\n portal: [i0.ɵɵInputFlags.None, \"cdkPortalHost\", \"portal\"]\n },\n exportAs: [\"cdkPortalHost\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PortalHostDirective, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: [{\n name: 'portal',\n alias: 'cdkPortalHost'\n }],\n providers: [{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }],\n standalone: true\n }]\n }], null, null);\n})();\nclass PortalModule {\n static {\n this.ɵfac = function PortalModule_Factory(t) {\n return new (t || PortalModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PortalModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PortalModule, [{\n type: NgModule,\n args: [{\n imports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]\n }]\n }], null, null);\n})();\n\n/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n * @deprecated Use `Injector.create` instead.\n * @breaking-change 11.0.0\n */\nclass PortalInjector {\n constructor(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n get(token, notFoundValue) {\n const value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n","import * as i1 from '@angular/cdk/scrolling';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nexport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport * as i6 from '@angular/common';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, Optional, ElementRef, ApplicationRef, ANIMATION_MODULE_TYPE, InjectionToken, inject, Directive, NgZone, EventEmitter, booleanAttribute, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, take, takeUntil, takeWhile } from 'rxjs/operators';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nconst scrollBehaviorSupported = supportsScrollBehavior();\n/**\n * Strategy that will prevent the user from scrolling while the overlay is visible.\n */\nclass BlockScrollStrategy {\n constructor(_viewportRuler, document) {\n this._viewportRuler = _viewportRuler;\n this._previousHTMLStyles = {\n top: '',\n left: ''\n };\n this._isEnabled = false;\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 constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._ngZone = _ngZone;\n this._viewportRuler = _viewportRuler;\n this._config = _config;\n this._scrollSubscription = null;\n /** Detaches the overlay ref and disables the scroll strategy. */\n this._detach = () => {\n this.disable();\n if (this._overlayRef.hasAttached()) {\n this._ngZone.run(() => this._overlayRef.detach());\n }\n };\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 || !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 } else {\n this._overlayRef.updatePosition();\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}\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 constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n this._config = _config;\n this._scrollSubscription = null;\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 {\n width,\n height\n } = 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 = [{\n width,\n height,\n bottom: height,\n right: width,\n top: 0,\n left: 0\n }];\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 constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {\n this._scrollDispatcher = _scrollDispatcher;\n this._viewportRuler = _viewportRuler;\n this._ngZone = _ngZone;\n /** Do nothing on scroll. */\n this.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 this.close = config => new CloseScrollStrategy(this._scrollDispatcher, this._ngZone, this._viewportRuler, config);\n /** Block scrolling. */\n this.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 this.reposition = config => new RepositionScrollStrategy(this._scrollDispatcher, this._viewportRuler, this._ngZone, config);\n this._document = document;\n }\n static {\n this.ɵfac = function ScrollStrategyOptions_Factory(t) {\n return new (t || ScrollStrategyOptions)(i0.ɵɵinject(i1.ScrollDispatcher), i0.ɵɵinject(i1.ViewportRuler), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollStrategyOptions,\n factory: ScrollStrategyOptions.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollStrategyOptions, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.ScrollDispatcher\n }, {\n type: i1.ViewportRuler\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\n\n/** Initial configuration used when creating an overlay. */\nclass OverlayConfig {\n constructor(config) {\n /** Strategy to be used when handling scroll events while the overlay is open. */\n this.scrollStrategy = new NoopScrollStrategy();\n /** Custom class to add to the overlay pane. */\n this.panelClass = '';\n /** Whether the overlay has a backdrop. */\n this.hasBackdrop = false;\n /** Custom class to add to the backdrop */\n this.backdropClass = 'cdk-overlay-dark-backdrop';\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 this.disposeOnNavigation = false;\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 constructor(origin, overlay, /** Offset along the X axis. */\n offsetX, /** Offset along the Y axis. */\n offsetY, /** 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/** The change event emitted by the strategy when a fallback position is used. */\nclass ConnectedOverlayPositionChange {\n constructor( /** The position used as a result of this change. */\n connectionPair, /** @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}\". ` + `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}\". ` + `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 constructor(document) {\n /** Currently attached overlays in the order they were attached. */\n this._attachedOverlays = [];\n this._document = document;\n }\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 {\n this.ɵfac = function BaseOverlayDispatcher_Factory(t) {\n return new (t || BaseOverlayDispatcher)(i0.ɵɵinject(DOCUMENT));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BaseOverlayDispatcher,\n factory: BaseOverlayDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BaseOverlayDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }], null);\n})();\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 constructor(document, /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._ngZone = _ngZone;\n /** Keyboard event listener that will be attached to the body. */\n this._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 } else {\n keydownEvents.next(event);\n }\n break;\n }\n }\n };\n }\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 } 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 static {\n this.ɵfac = function OverlayKeyboardDispatcher_Factory(t) {\n return new (t || OverlayKeyboardDispatcher)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayKeyboardDispatcher,\n factory: OverlayKeyboardDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayKeyboardDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }], null);\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 constructor(document, _platform, /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(document);\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._cursorStyleIsSet = false;\n /** Store pointerdown event target to track origin of click. */\n this._pointerDownListener = event => {\n this._pointerDownEventTarget = _getEventTarget(event);\n };\n /** Click event listener that will be attached to the body propagate phase. */\n this._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 ? this._pointerDownEventTarget : 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 (overlayRef.overlayElement.contains(target) || overlayRef.overlayElement.contains(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 } else {\n outsidePointerEvents.next(event);\n }\n }\n };\n }\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 } 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 static {\n this.ɵfac = function OverlayOutsideClickDispatcher_Factory(t) {\n return new (t || OverlayOutsideClickDispatcher)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(i0.NgZone, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayOutsideClickDispatcher,\n factory: OverlayOutsideClickDispatcher.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayOutsideClickDispatcher, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }, {\n type: i0.NgZone,\n decorators: [{\n type: Optional\n }]\n }], null);\n})();\n\n/** Container inside which all overlays will render. */\nclass OverlayContainer {\n constructor(document, _platform) {\n this._platform = _platform;\n this._document = document;\n }\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 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 } else if (!this._platform.isBrowser) {\n container.setAttribute('platform', 'server');\n }\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n static {\n this.ɵfac = function OverlayContainer_Factory(t) {\n return new (t || OverlayContainer)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayContainer,\n factory: OverlayContainer.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayContainer, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }], null);\n})();\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 constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDispatcher, _document, _location, _outsideClickDispatcher, _animationsDisabled = false) {\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._backdropElement = null;\n this._backdropClick = new Subject();\n this._attachments = new Subject();\n this._detachments = new Subject();\n this._locationChanges = Subscription.EMPTY;\n this._backdropClickHandler = event => this._backdropClick.next(event);\n this._backdropTransitionendHandler = event => {\n this._disposeBackdrop(event.target);\n };\n /** Stream of keydown events dispatched to this overlay. */\n this._keydownEvents = new Subject();\n /** Stream of mouse outside events dispatched to this overlay. */\n this._outsidePointerEvents = new Subject();\n if (_config.scrollStrategy) {\n this._scrollStrategy = _config.scrollStrategy;\n this._scrollStrategy.attach(this);\n }\n this._positionStrategy = _config.positionStrategy;\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 // Update the position once the zone is stable so that the overlay will be fully rendered\n // before attempting to position it, as the position may depend on the size of the rendered\n // content.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n // The overlay could've been detached before the zone has stabilized.\n if (this.hasAttached()) {\n this.updatePosition();\n }\n });\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._detachContentWhenStable();\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._previousHostParent = this._pane = this._host = null;\n if (isAttached) {\n this._detachments.next();\n }\n this._detachments.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 = {\n ...this._config,\n ...sizeConfig\n };\n this._updateElementSize();\n }\n /** Sets the LTR/RTL direction for the overlay. */\n setDirection(dir) {\n this._config = {\n ...this._config,\n direction: dir\n };\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 } 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 _detachContentWhenStable() {\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._ngZone.onStable.pipe(takeUntil(merge(this._attachments, this._detachments))).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 /** 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 /** Last size used for the bounding box. Used to avoid resizing the overlay after open. */\n this._lastBoundingBoxSize = {\n width: 0,\n height: 0\n };\n /** Whether the overlay was pushed in a previous positioning. */\n this._isPushed = false;\n /** Whether the overlay can be pushed on-screen on the initial open. */\n this._canPush = true;\n /** Whether the overlay can grow via flexible width/height after the initial open. */\n this._growAfterOpen = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this._hasFlexibleDimensions = true;\n /** Whether the overlay position is locked. */\n this._positionLocked = false;\n /** Amount of space that must be maintained between the overlay and the edge of the viewport. */\n this._viewportMargin = 0;\n /** The Scrollable containers used to check scrollable view properties on position change. */\n this._scrollables = [];\n /** Ordered list of preferred positions, from most to least desirable. */\n this._preferredPositions = [];\n /** Subject that emits whenever the position changes. */\n this._positionChanges = new Subject();\n /** Subscription to viewport size changes. */\n this._resizeSubscription = Subscription.EMPTY;\n /** Default offset for the overlay along the x axis. */\n this._offsetX = 0;\n /** Default offset for the overlay along the y axis. */\n this._offsetY = 0;\n /** Keeps track of the CSS classes that the position strategy has applied on the overlay panel. */\n this._appliedPanelClasses = [];\n /** Observable sequence of position changes. */\n this.positionChanges = this._positionChanges;\n this.setOrigin(connectedTo);\n }\n /** Attaches this position strategy to an overlay. */\n attach(overlayRef) {\n if (this._overlayRef && overlayRef !== this._overlayRef && (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 = {\n overlayFit,\n overlayPoint,\n originPoint,\n position: pos,\n overlayRect\n };\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 } 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 } 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 } 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 {\n x,\n y\n };\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 } else if (pos.overlayX === 'start') {\n overlayStartX = this._isRtl() ? -overlayRect.width : 0;\n } else {\n overlayStartX = this._isRtl() ? 0 : -overlayRect.width;\n }\n let overlayStartY;\n if (pos.overlayY == 'center') {\n overlayStartY = -overlayRect.height / 2;\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 {\n x,\n y\n } = 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 } 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 } else {\n pushY = start.y < this._viewportMargin ? viewport.top - scrollPosition.top - start.y : 0;\n }\n this._previousPushAmount = {\n x: pushX,\n y: pushY\n };\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 || !this._lastScrollVisibility || !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 } else if (this._isRtl()) {\n xOrigin = position.overlayX === 'start' ? 'right' : 'left';\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 } 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 } 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 } else if (isBoundedByRightViewportEdge) {\n left = origin.x;\n width = viewport.right - origin.x;\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 {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width,\n height\n };\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 } 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 } else {\n styles.alignItems = position.overlayX === 'end' ? 'flex-end' : 'flex-start';\n }\n if (position.overlayY === 'center') {\n styles.justifyContent = 'center';\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 } 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 } else if (hasFlexibleDimensions) {\n styles.maxHeight = '';\n }\n }\n if (config.maxWidth) {\n if (hasExactPosition) {\n styles.maxWidth = coerceCssPixelValue(config.maxWidth);\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 = {\n top: '',\n bottom: ''\n };\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 } 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 = {\n left: '',\n right: ''\n };\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 } 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 } 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 && a.isOriginOutsideView === b.isOriginOutsideView && a.isOverlayClipped === b.isOverlayClipped && a.isOverlayOutsideView === b.isOverlayOutsideView;\n}\nconst STANDARD_DROPDOWN_BELOW_POSITIONS = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n}, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n}];\nconst STANDARD_DROPDOWN_ADJACENT_POSITIONS = [{\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n 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 constructor() {\n this._cssPosition = 'static';\n this._topOffset = '';\n this._bottomOffset = '';\n this._alignItems = '';\n this._xPosition = '';\n this._xOffset = '';\n this._width = '';\n this._height = '';\n this._isDisposed = false;\n }\n attach(overlayRef) {\n const config = overlayRef.getConfig();\n this._overlayRef = overlayRef;\n if (this._width && !config.width) {\n overlayRef.updateSize({\n width: this._width\n });\n }\n if (this._height && !config.height) {\n overlayRef.updateSize({\n height: this._height\n });\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({\n 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({\n 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 {\n width,\n height,\n maxWidth,\n maxHeight\n } = config;\n const shouldBeFlushHorizontally = (width === '100%' || width === '100vw') && (!maxWidth || maxWidth === '100%' || maxWidth === '100vw');\n const shouldBeFlushVertically = (height === '100%' || height === '100vh') && (!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 } else if (xPosition === 'center') {\n justifyContent = 'center';\n if (isRtl) {\n marginRight = xOffset;\n } else {\n marginLeft = xOffset;\n }\n } else if (isRtl) {\n if (xPosition === 'left' || xPosition === 'end') {\n justifyContent = 'flex-end';\n marginLeft = xOffset;\n } else if (xPosition === 'right' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginRight = xOffset;\n }\n } else if (xPosition === 'left' || xPosition === 'start') {\n justifyContent = 'flex-start';\n marginLeft = xOffset;\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 = parentStyles.alignItems = styles.marginTop = styles.marginBottom = styles.marginLeft = styles.marginRight = styles.position = '';\n this._overlayRef = null;\n this._isDisposed = true;\n }\n}\n\n/** Builder for overlay position strategy. */\nclass OverlayPositionBuilder {\n constructor(_viewportRuler, _document, _platform, _overlayContainer) {\n this._viewportRuler = _viewportRuler;\n this._document = _document;\n this._platform = _platform;\n this._overlayContainer = _overlayContainer;\n }\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 {\n this.ɵfac = function OverlayPositionBuilder_Factory(t) {\n return new (t || OverlayPositionBuilder)(i0.ɵɵinject(i1.ViewportRuler), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform), i0.ɵɵinject(OverlayContainer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OverlayPositionBuilder,\n factory: OverlayPositionBuilder.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayPositionBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: i1.ViewportRuler\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }, {\n type: OverlayContainer\n }], null);\n})();\n\n/** Next overlay unique ID. */\nlet nextUniqueId = 0;\n// Note that Overlay is *not* scoped to the app root because of the ComponentFactoryResolver\n// which needs to be different depending on where OverlayModule is imported.\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 constructor( /** Scrolling strategies that can be used when creating an overlay. */\n scrollStrategies, _overlayContainer, _componentFactoryResolver, _positionBuilder, _keyboardDispatcher, _injector, _ngZone, _document, _directionality, _location, _outsideClickDispatcher, _animationsModuleType) {\n this.scrollStrategies = scrollStrategies;\n this._overlayContainer = _overlayContainer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._positionBuilder = _positionBuilder;\n this._keyboardDispatcher = _keyboardDispatcher;\n this._injector = _injector;\n this._ngZone = _ngZone;\n this._document = _document;\n this._directionality = _directionality;\n this._location = _location;\n this._outsideClickDispatcher = _outsideClickDispatcher;\n this._animationsModuleType = _animationsModuleType;\n }\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 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');\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 = `cdk-overlay-${nextUniqueId++}`;\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, this._componentFactoryResolver, this._appRef, this._injector, this._document);\n }\n static {\n this.ɵfac = function Overlay_Factory(t) {\n return new (t || Overlay)(i0.ɵɵinject(ScrollStrategyOptions), i0.ɵɵinject(OverlayContainer), i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(OverlayPositionBuilder), i0.ɵɵinject(OverlayKeyboardDispatcher), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i5.Directionality), i0.ɵɵinject(i6.Location), i0.ɵɵinject(OverlayOutsideClickDispatcher), i0.ɵɵinject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Overlay,\n factory: Overlay.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Overlay, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: ScrollStrategyOptions\n }, {\n type: OverlayContainer\n }, {\n type: i0.ComponentFactoryResolver\n }, {\n type: OverlayPositionBuilder\n }, {\n type: OverlayKeyboardDispatcher\n }, {\n type: i0.Injector\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i5.Directionality\n }, {\n type: i6.Location\n }, {\n type: OverlayOutsideClickDispatcher\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }, {\n type: Optional\n }]\n }], null);\n})();\n\n/** Default set of positions for the overlay. Follows the behavior of a dropdown. */\nconst defaultPositionList = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n}, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom'\n}, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\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 constructor( /** Reference to the element on which the directive is applied. */\n elementRef) {\n this.elementRef = elementRef;\n }\n static {\n this.ɵfac = function CdkOverlayOrigin_Factory(t) {\n return new (t || CdkOverlayOrigin)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkOverlayOrigin,\n selectors: [[\"\", \"cdk-overlay-origin\", \"\"], [\"\", \"overlay-origin\", \"\"], [\"\", \"cdkOverlayOrigin\", \"\"]],\n exportAs: [\"cdkOverlayOrigin\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkOverlayOrigin, [{\n type: Directive,\n args: [{\n selector: '[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]',\n exportAs: 'cdkOverlayOrigin',\n standalone: true\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nclass CdkConnectedOverlay {\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 /** 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 // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n this._disposeOnNavigation = false;\n this._ngZone = inject(NgZone);\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Whether or not the overlay should attach a backdrop. */\n this.hasBackdrop = false;\n /** Whether or not the overlay should be locked when scrolling. */\n this.lockPosition = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this.flexibleDimensions = false;\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n this.growAfterOpen = false;\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n this.push = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\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 = this.positionStrategy || this._createPositionStrategy();\n const overlayConfig = new OverlayConfig({\n direction: this._dir,\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.setOrigin(this._getOrigin()).withPositions(positions).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).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 } 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 } 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 } 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.pipe(takeWhile(() => this.positionChange.observers.length > 0)).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 {\n this.ɵfac = function CdkConnectedOverlay_Factory(t) {\n return new (t || CdkConnectedOverlay)(i0.ɵɵdirectiveInject(Overlay), i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.Directionality, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: CdkConnectedOverlay,\n selectors: [[\"\", \"cdk-connected-overlay\", \"\"], [\"\", \"connected-overlay\", \"\"], [\"\", \"cdkConnectedOverlay\", \"\"]],\n inputs: {\n origin: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayOrigin\", \"origin\"],\n positions: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayPositions\", \"positions\"],\n positionStrategy: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"],\n offsetX: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayOffsetX\", \"offsetX\"],\n offsetY: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayOffsetY\", \"offsetY\"],\n width: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayWidth\", \"width\"],\n height: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayHeight\", \"height\"],\n minWidth: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayMinWidth\", \"minWidth\"],\n minHeight: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayMinHeight\", \"minHeight\"],\n backdropClass: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayBackdropClass\", \"backdropClass\"],\n panelClass: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayPanelClass\", \"panelClass\"],\n viewportMargin: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"],\n scrollStrategy: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"],\n open: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayOpen\", \"open\"],\n disableClose: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayDisableClose\", \"disableClose\"],\n transformOriginSelector: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"],\n hasBackdrop: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\", booleanAttribute],\n lockPosition: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayLockPosition\", \"lockPosition\", booleanAttribute],\n flexibleDimensions: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\", booleanAttribute],\n growAfterOpen: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\", booleanAttribute],\n push: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayPush\", \"push\", booleanAttribute],\n disposeOnNavigation: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"cdkConnectedOverlayDisposeOnNavigation\", \"disposeOnNavigation\", booleanAttribute]\n },\n outputs: {\n backdropClick: \"backdropClick\",\n positionChange: \"positionChange\",\n attach: \"attach\",\n detach: \"detach\",\n overlayKeydown: \"overlayKeydown\",\n overlayOutsideClick: \"overlayOutsideClick\"\n },\n exportAs: [\"cdkConnectedOverlay\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CdkConnectedOverlay, [{\n type: Directive,\n args: [{\n selector: '[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]',\n exportAs: 'cdkConnectedOverlay',\n standalone: true\n }]\n }], () => [{\n type: Overlay\n }, {\n type: i0.TemplateRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY]\n }]\n }, {\n type: i5.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n origin: [{\n type: Input,\n args: ['cdkConnectedOverlayOrigin']\n }],\n positions: [{\n type: Input,\n args: ['cdkConnectedOverlayPositions']\n }],\n positionStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayPositionStrategy']\n }],\n offsetX: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetX']\n }],\n offsetY: [{\n type: Input,\n args: ['cdkConnectedOverlayOffsetY']\n }],\n width: [{\n type: Input,\n args: ['cdkConnectedOverlayWidth']\n }],\n height: [{\n type: Input,\n args: ['cdkConnectedOverlayHeight']\n }],\n minWidth: [{\n type: Input,\n args: ['cdkConnectedOverlayMinWidth']\n }],\n minHeight: [{\n type: Input,\n args: ['cdkConnectedOverlayMinHeight']\n }],\n backdropClass: [{\n type: Input,\n args: ['cdkConnectedOverlayBackdropClass']\n }],\n panelClass: [{\n type: Input,\n args: ['cdkConnectedOverlayPanelClass']\n }],\n viewportMargin: [{\n type: Input,\n args: ['cdkConnectedOverlayViewportMargin']\n }],\n scrollStrategy: [{\n type: Input,\n args: ['cdkConnectedOverlayScrollStrategy']\n }],\n open: [{\n type: Input,\n args: ['cdkConnectedOverlayOpen']\n }],\n disableClose: [{\n type: Input,\n args: ['cdkConnectedOverlayDisableClose']\n }],\n transformOriginSelector: [{\n type: Input,\n args: ['cdkConnectedOverlayTransformOriginOn']\n }],\n hasBackdrop: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayHasBackdrop',\n transform: booleanAttribute\n }]\n }],\n lockPosition: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayLockPosition',\n transform: booleanAttribute\n }]\n }],\n flexibleDimensions: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayFlexibleDimensions',\n transform: booleanAttribute\n }]\n }],\n growAfterOpen: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayGrowAfterOpen',\n transform: booleanAttribute\n }]\n }],\n push: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayPush',\n transform: booleanAttribute\n }]\n }],\n disposeOnNavigation: [{\n type: Input,\n args: [{\n alias: 'cdkConnectedOverlayDisposeOnNavigation',\n transform: booleanAttribute\n }]\n }],\n backdropClick: [{\n type: Output\n }],\n positionChange: [{\n type: Output\n }],\n attach: [{\n type: Output\n }],\n detach: [{\n type: Output\n }],\n overlayKeydown: [{\n type: Output\n }],\n overlayOutsideClick: [{\n type: Output\n }]\n });\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};\nclass OverlayModule {\n static {\n this.ɵfac = function OverlayModule_Factory(t) {\n return new (t || OverlayModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: OverlayModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [Overlay, CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER],\n imports: [BidiModule, PortalModule, ScrollingModule, ScrollingModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(OverlayModule, [{\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 }], null, null);\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 constructor(_document, platform) {\n super(_document, platform);\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 } else if (_document.webkitFullscreenEnabled) {\n this._fullScreenEventName = 'webkitfullscreenchange';\n } else if (_document.mozFullScreenEnabled) {\n this._fullScreenEventName = 'mozfullscreenchange';\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 || _document.webkitFullscreenElement || _document.mozFullScreenElement || _document.msFullscreenElement || null;\n }\n static {\n this.ɵfac = function FullscreenOverlayContainer_Factory(t) {\n return new (t || FullscreenOverlayContainer)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1$1.Platform));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FullscreenOverlayContainer,\n factory: FullscreenOverlayContainer.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FullscreenOverlayContainer, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1$1.Platform\n }], null);\n})();\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 { Overlay, CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';\nimport { NgClass, CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, inject, EventEmitter, booleanAttribute, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Self, Attribute, ContentChildren, ContentChild, Input, ViewChild, Output, Directive, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { _countGroupLabelsBeforeOption, _getOptionScrollPosition, _ErrorStateTracker, MAT_OPTION_PARENT_COMPONENT, MatOption, MAT_OPTGROUP, MatOptionModule, MatCommonModule } from '@angular/material/core';\nexport { MatOptgroup, MatOption } from '@angular/material/core';\nimport * as i6 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nexport { MatError, MatFormField, MatHint, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/cdk/a11y';\nimport { removeAriaReferencedId, addAriaReferencedId, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport * as i3 from '@angular/cdk/bidi';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, hasModifierKey, A } from '@angular/cdk/keycodes';\nimport * as i4 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { Subject, defer, merge } from 'rxjs';\nimport { startWith, switchMap, filter, map, distinctUntilChanged, takeUntil, take } from 'rxjs/operators';\nimport { trigger, transition, query, animateChild, state, style, animate } from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nconst _c0 = [\"trigger\"];\nconst _c1 = [\"panel\"];\nconst _c2 = [[[\"mat-select-trigger\"]], \"*\"];\nconst _c3 = [\"mat-select-trigger\", \"*\"];\nfunction MatSelect_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.triggerValue);\n }\n}\nfunction MatSelect_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtemplate(1, MatSelect_Conditional_5_Conditional_1_Template, 1, 0)(2, MatSelect_Conditional_5_Conditional_2_Template, 2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r1.customTrigger ? 1 : 2);\n }\n}\nfunction MatSelect_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 12, 1);\n i0.ɵɵlistener(\"@transformPanel.done\", function MatSelect_ng_template_10_Template_div_animation_transformPanel_done_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._panelDoneAnimatingStream.next($event.toState));\n })(\"keydown\", function MatSelect_ng_template_10_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n });\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open \", ctx_r1._getPanelTheme(), \"\");\n i0.ɵɵproperty(\"ngClass\", ctx_r1.panelClass)(\"@transformPanel\", \"showing\");\n i0.ɵɵattribute(\"id\", ctx_r1.id + \"-panel\")(\"aria-multiselectable\", ctx_r1.multiple)(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1._getPanelAriaLabelledby());\n }\n}\nconst matSelectAnimations = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: trigger('transformPanelWrap', [transition('* => void', query('@transformPanel', [animateChild()], {\n optional: true\n }))]),\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: trigger('transformPanel', [state('void', style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })), transition('void => showing', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))), transition('* => void', animate('100ms linear', style({\n opacity: 0\n })))])\n};\n\n// Note that these have been copied over verbatim from\n// `material/select` so that we don't have to expose them publicly.\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nfunction getMatSelectDynamicMultipleError() {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nfunction getMatSelectNonArrayValueError() {\n return Error('Value must be an array in multiple-selection mode.');\n}\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nfunction getMatSelectNonFunctionValueError() {\n return Error('`compareWith` must be a function.');\n}\nlet nextUniqueId = 0;\n/** Injection token that determines the scroll handling while a select is open. */\nconst MAT_SELECT_SCROLL_STRATEGY = new InjectionToken('mat-select-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/** @docs-private */\nfunction MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** Injection token that can be used to provide the default options the select module. */\nconst MAT_SELECT_CONFIG = new InjectionToken('MAT_SELECT_CONFIG');\n/** @docs-private */\nconst MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n/**\n * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as\n * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SELECT_TRIGGER = new InjectionToken('MatSelectTrigger');\n/** Change event object that is emitted when the select value has changed. */\nclass MatSelectChange {\n constructor( /** Reference to the select that emitted the change event. */\n source, /** Current value of the select that emitted the event. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\nclass MatSelect {\n /** Scrolls a particular option into the view. */\n _scrollOptionIntoView(index) {\n const option = this.options.toArray()[index];\n if (option) {\n const panel = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(element.offsetTop, element.offsetHeight, panel.scrollTop, panel.offsetHeight);\n }\n }\n }\n /** Called when the panel has been opened and the overlay has settled on its final position. */\n _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n /** Creates a change event object that should be emitted by the select. */\n _getChangeEvent(value) {\n return new MatSelectChange(this, value);\n }\n /** Whether the select is focused. */\n get focused() {\n return this._focused || this._panelOpen;\n }\n /** Whether checkmark indicator for single-selection options is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = value;\n this._syncParentProperties();\n }\n /** Placeholder to be shown if no value has been selected. */\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether the component is required. */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = value;\n this.stateChanges.next();\n }\n /** Whether the user should be allowed to select multiple options. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n if (this._selectionModel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectDynamicMultipleError();\n }\n this._multiple = value;\n }\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonFunctionValueError();\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /** Value of the select control. */\n get value() {\n return this._value;\n }\n set value(newValue) {\n const hasAssigned = this._assignValue(newValue);\n if (hasAssigned) {\n this._onChange(newValue);\n }\n }\n /** Object used to control when error messages are shown. */\n get errorStateMatcher() {\n return this._errorStateTracker.matcher;\n }\n set errorStateMatcher(value) {\n this._errorStateTracker.matcher = value;\n }\n /** Unique id of the element. */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n /** Whether the select is in an error state. */\n get errorState() {\n return this._errorStateTracker.errorState;\n }\n set errorState(value) {\n this._errorStateTracker.errorState = value;\n }\n constructor(_viewportRuler, _changeDetectorRef,\n /**\n * @deprecated Unused param, will be removed.\n * @breaking-change 19.0.0\n */\n _unusedNgZone, defaultErrorStateMatcher, _elementRef, _dir, parentForm, parentFormGroup, _parentFormField, ngControl, tabIndex, scrollStrategyFactory, _liveAnnouncer, _defaultOptions) {\n this._viewportRuler = _viewportRuler;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._parentFormField = _parentFormField;\n this.ngControl = ngControl;\n this._liveAnnouncer = _liveAnnouncer;\n this._defaultOptions = _defaultOptions;\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n this._positions = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }];\n /** Whether or not the overlay panel is open. */\n this._panelOpen = false;\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n this._compareWith = (o1, o2) => o1 === o2;\n /** Unique id for this input. */\n this._uid = `mat-select-${nextUniqueId++}`;\n /** Current `aria-labelledby` value for the select trigger. */\n this._triggerAriaLabelledBy = null;\n /** Emits whenever the component is destroyed. */\n this._destroy = new Subject();\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n /**\n * Disable the automatic labeling to avoid issues like #27241.\n * @docs-private\n */\n this.disableAutomaticLabeling = true;\n /** `View -> model callback called when value changes` */\n this._onChange = () => {};\n /** `View -> model callback called when select has been touched` */\n this._onTouched = () => {};\n /** ID for the DOM node containing the select's value. */\n this._valueId = `mat-select-value-${nextUniqueId++}`;\n /** Emits when the panel element is finished transforming in. */\n this._panelDoneAnimatingStream = new Subject();\n this._overlayPanelClass = this._defaultOptions?.overlayPanelClass || '';\n this._focused = false;\n /** A name for this control that can be used by `mat-form-field`. */\n this.controlType = 'mat-select';\n /** Whether the select is disabled. */\n this.disabled = false;\n /** Whether ripples in the select are disabled. */\n this.disableRipple = false;\n /** Tab index of the select. */\n this.tabIndex = 0;\n this._hideSingleSelectionIndicator = this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n this._multiple = false;\n /** Whether to center the active option over the trigger. */\n this.disableOptionCentering = this._defaultOptions?.disableOptionCentering ?? false;\n /** Aria label of the select. */\n this.ariaLabel = '';\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n this.panelWidth = this._defaultOptions && typeof this._defaultOptions.panelWidth !== 'undefined' ? this._defaultOptions.panelWidth : 'auto';\n this._initialized = new Subject();\n /** Combined stream of all of the child options' change events. */\n this.optionSelectionChanges = defer(() => {\n const options = this.options;\n if (options) {\n return options.changes.pipe(startWith(options), switchMap(() => merge(...options.map(option => option.onSelectionChange))));\n }\n return this._initialized.pipe(switchMap(() => this.optionSelectionChanges));\n });\n /** Event emitted when the select panel has been toggled. */\n this.openedChange = new EventEmitter();\n /** Event emitted when the select has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the select has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the selected value has been changed by the user. */\n this.selectionChange = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /**\n * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is\n * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options\n * panel. Track the modal we have changed so we can undo the changes on destroy.\n */\n this._trackedModal = null;\n // `skipPredicate` determines if key manager should avoid putting a given option in the tab\n // order. Allow disabled list items to receive focus via keyboard to align with WAI ARIA\n // recommendation.\n //\n // Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n // makes a few exceptions for compound widgets.\n //\n // From [Developing a Keyboard Interface](\n // https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n // \"For the following composite widget elements, keep them focusable when disabled: Options in a\n // Listbox...\"\n //\n // The user can focus disabled options using the keyboard, but the user cannot click disabled\n // options.\n this._skipPredicate = option => {\n if (this.panelOpen) {\n // Support keyboard focusing disabled options in an ARIA listbox.\n return false;\n }\n // When the panel is closed, skip over disabled options. Support options via the UP/DOWN arrow\n // keys on a closed select. ARIA listbox interaction pattern is less relevant when the panel is\n // closed.\n return option.disabled;\n };\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n // Note that we only want to set this when the defaults pass it in, otherwise it should\n // stay as `undefined` so that it falls back to the default in the key manager.\n if (_defaultOptions?.typeaheadDebounceInterval != null) {\n this.typeaheadDebounceInterval = _defaultOptions.typeaheadDebounceInterval;\n }\n this._errorStateTracker = new _ErrorStateTracker(defaultErrorStateMatcher, ngControl, parentFormGroup, parentForm, this.stateChanges);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this._scrollStrategy = this._scrollStrategyFactory();\n this.tabIndex = parseInt(tabIndex) || 0;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple);\n this.stateChanges.next();\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this._panelDoneAnimatingStream.pipe(distinctUntilChanged(), takeUntil(this._destroy)).subscribe(() => this._panelDoneAnimating(this.panelOpen));\n this._viewportRuler.change().pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n ngAfterContentInit() {\n this._initialized.next();\n this._initialized.complete();\n this._initKeyManager();\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe(event => {\n event.added.forEach(option => option.select());\n event.removed.forEach(option => option.deselect());\n });\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n ngDoCheck() {\n const newAriaLabelledby = this._getTriggerAriaLabelledby();\n const ngControl = this.ngControl;\n // We have to manage setting the `aria-labelledby` ourselves, because part of its value\n // is computed as a result of a content query which can cause this binding to trigger a\n // \"changed after checked\" error.\n if (newAriaLabelledby !== this._triggerAriaLabelledBy) {\n const element = this._elementRef.nativeElement;\n this._triggerAriaLabelledBy = newAriaLabelledby;\n if (newAriaLabelledby) {\n element.setAttribute('aria-labelledby', newAriaLabelledby);\n } else {\n element.removeAttribute('aria-labelledby');\n }\n }\n if (ngControl) {\n // The disabled state might go out of sync if the form group is swapped out. See #17860.\n if (this._previousControl !== ngControl.control) {\n if (this._previousControl !== undefined && ngControl.disabled !== null && ngControl.disabled !== this.disabled) {\n this.disabled = ngControl.disabled;\n }\n this._previousControl = ngControl.control;\n }\n this.updateErrorState();\n }\n }\n ngOnChanges(changes) {\n // Updating the disabled state is handled by the input, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes['disabled'] || changes['userAriaDescribedBy']) {\n this.stateChanges.next();\n }\n if (changes['typeaheadDebounceInterval'] && this._keyManager) {\n this._keyManager.withTypeAhead(this.typeaheadDebounceInterval);\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroy.next();\n this._destroy.complete();\n this.stateChanges.complete();\n this._clearFromModal();\n }\n /** Toggles the overlay panel open or closed. */\n toggle() {\n this.panelOpen ? this.close() : this.open();\n }\n /** Opens the overlay panel. */\n open() {\n if (!this._canOpen()) {\n return;\n }\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._applyModalPanelOwnership();\n this._panelOpen = true;\n this._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n /**\n * If the autocomplete trigger is inside of an `aria-modal` element, connect\n * that modal to the options panel with `aria-owns`.\n *\n * For some browser + screen reader combinations, when navigation is inside\n * of an `aria-modal` element, the screen reader treats everything outside\n * of that modal as hidden or invisible.\n *\n * This causes a problem when the combobox trigger is _inside_ of a modal, because the\n * options panel is rendered _outside_ of that modal, preventing screen reader navigation\n * from reaching the panel.\n *\n * We can work around this issue by applying `aria-owns` to the modal with the `id` of\n * the options panel. This effectively communicates to assistive technology that the\n * options panel is part of the same interaction as the modal.\n *\n * At time of this writing, this issue is present in VoiceOver.\n * See https://github.com/angular/components/issues/20694\n */\n _applyModalPanelOwnership() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modal = this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal=\"true\"]');\n if (!modal) {\n // Most commonly, the autocomplete trigger is not inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n if (this._trackedModal) {\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n addAriaReferencedId(modal, 'aria-owns', panelId);\n this._trackedModal = modal;\n }\n /** Clears the reference to the listbox overlay element from the modal it was added to. */\n _clearFromModal() {\n if (!this._trackedModal) {\n // Most commonly, the autocomplete trigger is not used inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n this._trackedModal = null;\n }\n /** Closes the overlay panel and focuses the host element. */\n close() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._keyManager.withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n }\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value) {\n this._assignValue(value);\n }\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /** Whether or not the overlay panel is open. */\n get panelOpen() {\n return this._panelOpen;\n }\n /** The currently selected option. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The value displayed in the trigger. */\n get triggerValue() {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map(option => option.viewValue);\n if (this._isRtl()) {\n selectedOptions.reverse();\n }\n // TODO(crisbeto): delimiter should be configurable for proper localization.\n return selectedOptions.join(', ');\n }\n return this._selectionModel.selected[0].viewValue;\n }\n /** Refreshes the error state of the select. */\n updateErrorState() {\n this._errorStateTracker.updateErrorState();\n }\n /** Whether the element is in RTL mode. */\n _isRtl() {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n /** Handles all keydown events on the select. */\n _handleKeydown(event) {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n /** Handles keyboard events while the select is closed. */\n _handleClosedKeydown(event) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native
\n if (!manager.isTyping() && isOpenKey && !hasModifierKey(event) || (this.multiple || event.altKey) && isArrowKey) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiple) {\n const previouslySelectedOption = this.selected;\n manager.onKeydown(event);\n const selectedOption = this.selected;\n // Since the value has changed, we need to announce it ourselves.\n if (selectedOption && previouslySelectedOption !== selectedOption) {\n // We set a duration on the live announcement, because we want the live element to be\n // cleared after a while so that users can't navigate to it using the arrow keys.\n this._liveAnnouncer.announce(selectedOption.viewValue, 10000);\n }\n }\n }\n /** Handles keyboard events when the selected is open. */\n _handleOpenKeydown(event) {\n const manager = this._keyManager;\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n const isTyping = manager.isTyping();\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native \n event.preventDefault();\n this.close();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (keyCode === ENTER || keyCode === SPACE) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some(opt => !opt.disabled && !opt.selected);\n this.options.forEach(option => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n _onFocus() {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n _onBlur() {\n this._focused = false;\n this._keyManager?.cancelTypeahead();\n if (!this.disabled && !this.panelOpen) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n _onAttached() {\n this._overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n /** Returns the theme to be used on the panel. */\n _getPanelTheme() {\n return this._parentFormField ? `mat-${this._parentFormField.color}` : '';\n }\n /** Whether the select has a value. */\n get empty() {\n return !this._selectionModel || this._selectionModel.isEmpty();\n }\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl) {\n this._value = this.ngControl.value;\n }\n this._setSelectionByValue(this._value);\n this.stateChanges.next();\n });\n }\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n _setSelectionByValue(value) {\n this.options.forEach(option => option.setInactiveStyles());\n this._selectionModel.clear();\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonArrayValueError();\n }\n value.forEach(currentValue => this._selectOptionByValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectOptionByValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n _selectOptionByValue(value) {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n return correspondingOption;\n }\n /** Assigns a specific value to the select. Returns whether the value has changed. */\n _assignValue(newValue) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || this._multiple && Array.isArray(newValue)) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n return true;\n }\n return false;\n }\n /** Gets how wide the overlay panel should be. */\n _getOverlayWidth(preferredOrigin) {\n if (this.panelWidth === 'auto') {\n const refToMeasure = preferredOrigin instanceof CdkOverlayOrigin ? preferredOrigin.elementRef : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n return this.panelWidth === null ? '' : this.panelWidth;\n }\n /** Syncs the parent state with the individual options. */\n _syncParentProperties() {\n if (this.options) {\n for (const option of this.options) {\n option._changeDetectorRef.markForCheck();\n }\n }\n }\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withTypeAhead(this.typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr').withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(['shiftKey']).skipPredicate(this._skipPredicate);\n this._keyManager.tabOut.subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n }\n });\n this._keyManager.change.subscribe(() => {\n if (this._panelOpen && this.panel) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this._panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n /** Drops current option subscriptions and IDs and resets from scratch. */\n _resetOptions() {\n const changedOrDestroyed = merge(this.options.changes, this._destroy);\n this.optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe(event => {\n this._onSelect(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map(option => option._stateChanges)).pipe(takeUntil(changedOrDestroyed)).subscribe(() => {\n // `_stateChanges` can fire as a result of a change in the label's DOM value which may\n // be the result of an expression changing. We have to use `detectChanges` in order\n // to avoid \"changed after checked\" errors (see #14793).\n this._changeDetectorRef.detectChanges();\n this.stateChanges.next();\n });\n }\n /** Invoked when an option is clicked. */\n _onSelect(option, isUserInput) {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mat-option`.\n this.focus();\n }\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n }\n /** Sorts the selected values in the selected based on their order in the panel. */\n _sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n this._selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) : options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit;\n if (this.multiple) {\n valueToEmit = this.selected.map(option => option.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this.selectionChange.emit(this._getChangeEvent(valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first *enabled* option.\n */\n _highlightCorrectOption() {\n if (this._keyManager) {\n if (this.empty) {\n // Find the index of the first *enabled* option. Avoid calling `_keyManager.setActiveItem`\n // because it activates the first option that passes the skip predicate, rather than the\n // first *enabled* option.\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options.length; index++) {\n const option = this.options.get(index);\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n /** Whether the panel is allowed to open. */\n _canOpen() {\n return !this._panelOpen && !this.disabled && this.options?.length > 0;\n }\n /** Focuses the select element. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Gets the aria-labelledby for the select panel. */\n _getPanelAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n const labelExpression = labelId ? labelId + ' ' : '';\n return this.ariaLabelledby ? labelExpression + this.ariaLabelledby : labelId;\n }\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant() {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n return null;\n }\n /** Gets the aria-labelledby of the select component trigger. */\n _getTriggerAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n let value = (labelId ? labelId + ' ' : '') + this._valueId;\n if (this.ariaLabelledby) {\n value += ' ' + this.ariaLabelledby;\n }\n return value;\n }\n /** Called when the overlay panel is done animating. */\n _panelDoneAnimating(isOpen) {\n this.openedChange.emit(isOpen);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || this.focused && !!this.placeholder;\n }\n static {\n this.ɵfac = function MatSelect_Factory(t) {\n return new (t || MatSelect)(i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i4.NgForm, 8), i0.ɵɵdirectiveInject(i4.FormGroupDirective, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8), i0.ɵɵdirectiveInject(i4.NgControl, 10), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SELECT_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.LiveAnnouncer), i0.ɵɵdirectiveInject(MAT_SELECT_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelect,\n selectors: [[\"mat-select\"]],\n contentQueries: function MatSelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SELECT_TRIGGER, 5);\n i0.ɵɵcontentQuery(dirIndex, MatOption, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_OPTGROUP, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTrigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n }\n },\n viewQuery: function MatSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(CdkConnectedOverlay, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._overlayDir = _t.first);\n }\n },\n hostAttrs: [\"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"listbox\", 1, \"mat-mdc-select\"],\n hostVars: 19,\n hostBindings: function MatSelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatSelect_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatSelect_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatSelect_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"tabindex\", ctx.disabled ? -1 : ctx.tabIndex)(\"aria-controls\", ctx.panelOpen ? ctx.id + \"-panel\" : null)(\"aria-expanded\", ctx.panelOpen)(\"aria-label\", ctx.ariaLabel || null)(\"aria-required\", ctx.required.toString())(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-activedescendant\", ctx._getAriaActiveDescendant());\n i0.ɵɵclassProp(\"mat-mdc-select-disabled\", ctx.disabled)(\"mat-mdc-select-invalid\", ctx.errorState)(\"mat-mdc-select-required\", ctx.required)(\"mat-mdc-select-empty\", ctx.empty)(\"mat-mdc-select-multiple\", ctx.multiple);\n }\n },\n inputs: {\n userAriaDescribedBy: [i0.ɵɵInputFlags.None, \"aria-describedby\", \"userAriaDescribedBy\"],\n panelClass: \"panelClass\",\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute],\n tabIndex: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)],\n hideSingleSelectionIndicator: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"hideSingleSelectionIndicator\", \"hideSingleSelectionIndicator\", booleanAttribute],\n placeholder: \"placeholder\",\n required: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"required\", \"required\", booleanAttribute],\n multiple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"multiple\", \"multiple\", booleanAttribute],\n disableOptionCentering: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableOptionCentering\", \"disableOptionCentering\", booleanAttribute],\n compareWith: \"compareWith\",\n value: \"value\",\n ariaLabel: [i0.ɵɵInputFlags.None, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [i0.ɵɵInputFlags.None, \"aria-labelledby\", \"ariaLabelledby\"],\n errorStateMatcher: \"errorStateMatcher\",\n typeaheadDebounceInterval: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"typeaheadDebounceInterval\", \"typeaheadDebounceInterval\", numberAttribute],\n sortComparator: \"sortComparator\",\n id: \"id\",\n panelWidth: \"panelWidth\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n _closedStream: \"closed\",\n selectionChange: \"selectionChange\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matSelect\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c3,\n decls: 11,\n vars: 8,\n consts: [[\"fallbackOverlayOrigin\", \"cdkOverlayOrigin\", \"trigger\", \"\"], [\"panel\", \"\"], [\"cdk-overlay-origin\", \"\", 1, \"mat-mdc-select-trigger\", 3, \"click\"], [1, \"mat-mdc-select-value\"], [1, \"mat-mdc-select-placeholder\", \"mat-mdc-select-min-line\"], [1, \"mat-mdc-select-arrow-wrapper\"], [1, \"mat-mdc-select-arrow\"], [\"viewBox\", \"0 0 24 24\", \"width\", \"24px\", \"height\", \"24px\", \"focusable\", \"false\", \"aria-hidden\", \"true\"], [\"d\", \"M7 10l5 5 5-5z\"], [\"cdk-connected-overlay\", \"\", \"cdkConnectedOverlayLockPosition\", \"\", \"cdkConnectedOverlayHasBackdrop\", \"\", \"cdkConnectedOverlayBackdropClass\", \"cdk-overlay-transparent-backdrop\", 3, \"backdropClick\", \"attach\", \"detach\", \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayWidth\"], [1, \"mat-mdc-select-value-text\"], [1, \"mat-mdc-select-min-line\"], [\"role\", \"listbox\", \"tabindex\", \"-1\", 3, \"keydown\", \"ngClass\"]],\n template: function MatSelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatSelect_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.open());\n });\n i0.ɵɵelementStart(3, \"div\", 3);\n i0.ɵɵtemplate(4, MatSelect_Conditional_4_Template, 2, 1, \"span\", 4)(5, MatSelect_Conditional_5_Template, 3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 7);\n i0.ɵɵelement(9, \"path\", 8);\n i0.ɵɵelementEnd()()()();\n i0.ɵɵtemplate(10, MatSelect_ng_template_10_Template, 3, 9, \"ng-template\", 9);\n i0.ɵɵlistener(\"backdropClick\", function MatSelect_Template_ng_template_backdropClick_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n })(\"attach\", function MatSelect_Template_ng_template_attach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._onAttached());\n })(\"detach\", function MatSelect_Template_ng_template_detach_10_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n });\n }\n if (rf & 2) {\n const fallbackOverlayOrigin_r4 = i0.ɵɵreference(1);\n i0.ɵɵadvance(3);\n i0.ɵɵattribute(\"id\", ctx._valueId);\n i0.ɵɵadvance();\n i0.ɵɵconditional(4, ctx.empty ? 4 : 5);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"cdkConnectedOverlayPanelClass\", ctx._overlayPanelClass)(\"cdkConnectedOverlayScrollStrategy\", ctx._scrollStrategy)(\"cdkConnectedOverlayOrigin\", ctx._preferredOverlayOrigin || fallbackOverlayOrigin_r4)(\"cdkConnectedOverlayOpen\", ctx.panelOpen)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayWidth\", ctx._overlayWidth);\n }\n },\n dependencies: [CdkOverlayOrigin, CdkConnectedOverlay, NgClass],\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}\"],\n encapsulation: 2,\n data: {\n animation: [matSelectAnimations.transformPanel]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelect, [{\n type: Component,\n args: [{\n selector: 'mat-select',\n exportAs: 'matSelect',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'combobox',\n 'aria-autocomplete': 'none',\n 'aria-haspopup': 'listbox',\n 'class': 'mat-mdc-select',\n '[attr.id]': 'id',\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.aria-controls]': 'panelOpen ? id + \"-panel\" : null',\n '[attr.aria-expanded]': 'panelOpen',\n '[attr.aria-label]': 'ariaLabel || null',\n '[attr.aria-required]': 'required.toString()',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-activedescendant]': '_getAriaActiveDescendant()',\n '[class.mat-mdc-select-disabled]': 'disabled',\n '[class.mat-mdc-select-invalid]': 'errorState',\n '[class.mat-mdc-select-required]': 'required',\n '[class.mat-mdc-select-empty]': 'empty',\n '[class.mat-mdc-select-multiple]': 'multiple',\n '(keydown)': '_handleKeydown($event)',\n '(focus)': '_onFocus()',\n '(blur)': '_onBlur()'\n },\n animations: [matSelectAnimations.transformPanel],\n providers: [{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }],\n standalone: true,\n imports: [CdkOverlayOrigin, CdkConnectedOverlay, NgClass],\n template: \"\\n\\n
\\n @if (empty) {\\n {{placeholder}} \\n } @else {\\n \\n @if (customTrigger) {\\n \\n } @else {\\n {{triggerValue}} \\n }\\n \\n }\\n
\\n\\n
\\n
\\n\\n\\n \\n \\n
\\n \\n\",\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}div.mat-mdc-select-panel{box-shadow:var(--mat-select-container-elevation-shadow)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow,.mat-form-field-invalid:not(.mat-form-field-disabled) .mat-mdc-form-field-infix::after{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}div.mat-mdc-select-panel .mat-mdc-option{--mdc-list-list-item-container-color: var(--mat-select-panel-background-color)}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:var(--mat-select-arrow-transform)}\"]\n }]\n }], () => [{\n type: i1.ViewportRuler\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.NgZone\n }, {\n type: i2.ErrorStateMatcher\n }, {\n type: i0.ElementRef\n }, {\n type: i3.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.NgForm,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i4.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i6.MatFormField,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_FORM_FIELD]\n }]\n }, {\n type: i4.NgControl,\n decorators: [{\n type: Self\n }, {\n type: Optional\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['tabindex']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_SELECT_SCROLL_STRATEGY]\n }]\n }, {\n type: i5.LiveAnnouncer\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_SELECT_CONFIG]\n }]\n }], {\n options: [{\n type: ContentChildren,\n args: [MatOption, {\n descendants: true\n }]\n }],\n optionGroups: [{\n type: ContentChildren,\n args: [MAT_OPTGROUP, {\n descendants: true\n }]\n }],\n customTrigger: [{\n type: ContentChild,\n args: [MAT_SELECT_TRIGGER]\n }],\n userAriaDescribedBy: [{\n type: Input,\n args: ['aria-describedby']\n }],\n trigger: [{\n type: ViewChild,\n args: ['trigger']\n }],\n panel: [{\n type: ViewChild,\n args: ['panel']\n }],\n _overlayDir: [{\n type: ViewChild,\n args: [CdkConnectedOverlay]\n }],\n panelClass: [{\n type: Input\n }],\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n tabIndex: [{\n type: Input,\n args: [{\n transform: value => value == null ? 0 : numberAttribute(value)\n }]\n }],\n hideSingleSelectionIndicator: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n placeholder: [{\n type: Input\n }],\n required: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n multiple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disableOptionCentering: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n compareWith: [{\n type: Input\n }],\n value: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n errorStateMatcher: [{\n type: Input\n }],\n typeaheadDebounceInterval: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n sortComparator: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n panelWidth: [{\n type: Input\n }],\n openedChange: [{\n type: Output\n }],\n _openedStream: [{\n type: Output,\n args: ['opened']\n }],\n _closedStream: [{\n type: Output,\n args: ['closed']\n }],\n selectionChange: [{\n type: Output\n }],\n valueChange: [{\n type: Output\n }]\n });\n})();\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nclass MatSelectTrigger {\n static {\n this.ɵfac = function MatSelectTrigger_Factory(t) {\n return new (t || MatSelectTrigger)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectTrigger,\n selectors: [[\"mat-select-trigger\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelectTrigger, [{\n type: Directive,\n args: [{\n selector: 'mat-select-trigger',\n providers: [{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }],\n standalone: true\n }]\n }], null, null);\n})();\nclass MatSelectModule {\n static {\n this.ɵfac = function MatSelectModule_Factory(t) {\n return new (t || MatSelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule, CdkScrollableModule, MatFormFieldModule, MatOptionModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatSelectModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule, MatSelect, MatSelectTrigger],\n exports: [CdkScrollableModule, MatFormFieldModule, MatSelect, MatSelectTrigger, MatOptionModule, MatCommonModule],\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SELECT_CONFIG, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_TRIGGER, MatSelect, MatSelectChange, MatSelectModule, MatSelectTrigger, matSelectAnimations };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, booleanAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, Optional, Input, Directive, QueryList, EventEmitter, TemplateRef, ContentChildren, ViewChild, ContentChild, Output, inject, ChangeDetectorRef, Self, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { FocusKeyManager, isFakeTouchstartFromScreenReader, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\nimport { UP_ARROW, DOWN_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey, ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { Subject, merge, Subscription, of, asapScheduler } from 'rxjs';\nimport { startWith, switchMap, take, takeUntil, filter, delay } from 'rxjs/operators';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport { TemplatePortal, DomPortalOutlet } from '@angular/cdk/portal';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i3 from '@angular/cdk/bidi';\nimport * as i1$1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\n\n/**\n * Injection token used to provide the parent menu to menu-specific components.\n * @docs-private\n */\nconst _c0 = [\"mat-menu-item\", \"\"];\nconst _c1 = [[[\"mat-icon\"], [\"\", \"matMenuItemIcon\", \"\"]], \"*\"];\nconst _c2 = [\"mat-icon, [matMenuItemIcon]\", \"*\"];\nfunction MatMenuItem_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 2);\n i0.ɵɵelement(1, \"polygon\", 3);\n i0.ɵɵelementEnd();\n }\n}\nconst _c3 = [\"*\"];\nfunction MatMenu_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"keydown\", function MatMenu_ng_template_0_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._handleKeydown($event));\n })(\"click\", function MatMenu_ng_template_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.closed.emit(\"click\"));\n })(\"@transformMenu.start\", function MatMenu_ng_template_0_Template_div_animation_transformMenu_start_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationStart($event));\n })(\"@transformMenu.done\", function MatMenu_ng_template_0_Template_div_animation_transformMenu_done_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onAnimationDone($event));\n });\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1._classList);\n i0.ɵɵproperty(\"id\", ctx_r1.panelId)(\"@transformMenu\", ctx_r1._panelAnimationState);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabel || null)(\"aria-labelledby\", ctx_r1.ariaLabelledby || null)(\"aria-describedby\", ctx_r1.ariaDescribedby || null);\n }\n}\nconst MAT_MENU_PANEL = new InjectionToken('MAT_MENU_PANEL');\n\n/**\n * Single item inside a `mat-menu`. Provides the menu item styling and accessibility treatment.\n */\nclass MatMenuItem {\n constructor(_elementRef, _document, _focusMonitor, _parentMenu, _changeDetectorRef) {\n this._elementRef = _elementRef;\n this._document = _document;\n this._focusMonitor = _focusMonitor;\n this._parentMenu = _parentMenu;\n this._changeDetectorRef = _changeDetectorRef;\n /** ARIA role for the menu item. */\n this.role = 'menuitem';\n /** Whether the menu item is disabled. */\n this.disabled = false;\n /** Whether ripples are disabled on the menu item. */\n this.disableRipple = false;\n /** Stream that emits when the menu item is hovered. */\n this._hovered = new Subject();\n /** Stream that emits when the menu item is focused. */\n this._focused = new Subject();\n /** Whether the menu item is highlighted. */\n this._highlighted = false;\n /** Whether the menu item acts as a trigger for a sub-menu. */\n this._triggersSubmenu = false;\n _parentMenu?.addItem?.(this);\n }\n /** Focuses the menu item. */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n } else {\n this._getHostElement().focus(options);\n }\n this._focused.next(this);\n }\n ngAfterViewInit() {\n if (this._focusMonitor) {\n // Start monitoring the element, so it gets the appropriate focused classes. We want\n // to show the focus style for menu items only when the focus was not caused by a\n // mouse or touch interaction.\n this._focusMonitor.monitor(this._elementRef, false);\n }\n }\n ngOnDestroy() {\n if (this._focusMonitor) {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n if (this._parentMenu && this._parentMenu.removeItem) {\n this._parentMenu.removeItem(this);\n }\n this._hovered.complete();\n this._focused.complete();\n }\n /** Used to set the `tabindex`. */\n _getTabIndex() {\n return this.disabled ? '-1' : '0';\n }\n /** Returns the host DOM element. */\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n /** Prevents the default element actions if it is disabled. */\n _checkDisabled(event) {\n if (this.disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n /** Emits to the hover stream. */\n _handleMouseEnter() {\n this._hovered.next(this);\n }\n /** Gets the label to be used when determining whether the option should be focused. */\n getLabel() {\n const clone = this._elementRef.nativeElement.cloneNode(true);\n const icons = clone.querySelectorAll('mat-icon, .material-icons');\n // Strip away icons, so they don't show up in the text.\n for (let i = 0; i < icons.length; i++) {\n icons[i].remove();\n }\n return clone.textContent?.trim() || '';\n }\n _setHighlighted(isHighlighted) {\n // We need to mark this for check for the case where the content is coming from a\n // `matMenuContent` whose change detection tree is at the declaration position,\n // not the insertion position. See #23175.\n // @breaking-change 12.0.0 Remove null check for `_changeDetectorRef`.\n this._highlighted = isHighlighted;\n this._changeDetectorRef?.markForCheck();\n }\n _setTriggersSubmenu(triggersSubmenu) {\n // @breaking-change 12.0.0 Remove null check for `_changeDetectorRef`.\n this._triggersSubmenu = triggersSubmenu;\n this._changeDetectorRef?.markForCheck();\n }\n _hasFocus() {\n return this._document && this._document.activeElement === this._getHostElement();\n }\n static {\n this.ɵfac = function MatMenuItem_Factory(t) {\n return new (t || MatMenuItem)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(MAT_MENU_PANEL, 8), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenuItem,\n selectors: [[\"\", \"mat-menu-item\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-item\", \"mat-mdc-focus-indicator\"],\n hostVars: 8,\n hostBindings: function MatMenuItem_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatMenuItem_click_HostBindingHandler($event) {\n return ctx._checkDisabled($event);\n })(\"mouseenter\", function MatMenuItem_mouseenter_HostBindingHandler() {\n return ctx._handleMouseEnter();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role)(\"tabindex\", ctx._getTabIndex())(\"aria-disabled\", ctx.disabled)(\"disabled\", ctx.disabled || null);\n i0.ɵɵclassProp(\"mat-mdc-menu-item-highlighted\", ctx._highlighted)(\"mat-mdc-menu-item-submenu-trigger\", ctx._triggersSubmenu);\n }\n },\n inputs: {\n role: \"role\",\n disabled: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"disableRipple\", \"disableRipple\", booleanAttribute]\n },\n exportAs: [\"matMenuItem\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n attrs: _c0,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 3,\n consts: [[1, \"mat-mdc-menu-item-text\"], [\"matRipple\", \"\", 1, \"mat-mdc-menu-ripple\", 3, \"matRippleDisabled\", \"matRippleTrigger\"], [\"viewBox\", \"0 0 5 10\", \"focusable\", \"false\", \"aria-hidden\", \"true\", 1, \"mat-mdc-menu-submenu-icon\"], [\"points\", \"0,0 5,5 0,10\"]],\n template: function MatMenuItem_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"span\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 1);\n i0.ɵɵtemplate(4, MatMenuItem_Conditional_4_Template, 2, 0, \":svg:svg\", 2);\n }\n if (rf & 2) {\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleTrigger\", ctx._getHostElement());\n i0.ɵɵadvance();\n i0.ɵɵconditional(4, ctx._triggersSubmenu ? 4 : -1);\n }\n },\n dependencies: [MatRipple],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuItem, [{\n type: Component,\n args: [{\n selector: '[mat-menu-item]',\n exportAs: 'matMenuItem',\n host: {\n '[attr.role]': 'role',\n 'class': 'mat-mdc-menu-item mat-mdc-focus-indicator',\n '[class.mat-mdc-menu-item-highlighted]': '_highlighted',\n '[class.mat-mdc-menu-item-submenu-trigger]': '_triggersSubmenu',\n '[attr.tabindex]': '_getTabIndex()',\n '[attr.aria-disabled]': 'disabled',\n '[attr.disabled]': 'disabled || null',\n '(click)': '_checkDisabled($event)',\n '(mouseenter)': '_handleMouseEnter()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [MatRipple],\n template: \" \\n\\n\\n\\n@if (_triggersSubmenu) {\\n \\n}\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.FocusMonitor\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_PANEL]\n }, {\n type: Optional\n }]\n }, {\n type: i0.ChangeDetectorRef\n }], {\n role: [{\n type: Input\n }],\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n disableRipple: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }]\n });\n})();\n\n/**\n * Throws an exception for the case when menu's x-position value isn't valid.\n * In other words, it doesn't match 'before' or 'after'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionX() {\n throw Error(`xPosition value must be either 'before' or after'.\n Example: `);\n}\n/**\n * Throws an exception for the case when menu's y-position value isn't valid.\n * In other words, it doesn't match 'above' or 'below'.\n * @docs-private\n */\nfunction throwMatMenuInvalidPositionY() {\n throw Error(`yPosition value must be either 'above' or below'.\n Example: `);\n}\n/**\n * Throws an exception for the case when a menu is assigned\n * to a trigger that is placed inside the same menu.\n * @docs-private\n */\nfunction throwMatMenuRecursiveError() {\n throw Error(`matMenuTriggerFor: menu cannot contain its own trigger. Assign a menu that is ` + `not a parent of the trigger or move the trigger outside of the menu.`);\n}\n\n/**\n * Injection token that can be used to reference instances of `MatMenuContent`. It serves\n * as alternative token to the actual `MatMenuContent` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_MENU_CONTENT = new InjectionToken('MatMenuContent');\n/** Menu content that will be rendered lazily once the menu is opened. */\nclass MatMenuContent {\n constructor(_template, _componentFactoryResolver, _appRef, _injector, _viewContainerRef, _document, _changeDetectorRef) {\n this._template = _template;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n this._injector = _injector;\n this._viewContainerRef = _viewContainerRef;\n this._document = _document;\n this._changeDetectorRef = _changeDetectorRef;\n /** Emits when the menu content has been attached. */\n this._attached = new Subject();\n }\n /**\n * Attaches the content with a particular context.\n * @docs-private\n */\n attach(context = {}) {\n if (!this._portal) {\n this._portal = new TemplatePortal(this._template, this._viewContainerRef);\n }\n this.detach();\n if (!this._outlet) {\n this._outlet = new DomPortalOutlet(this._document.createElement('div'), this._componentFactoryResolver, this._appRef, this._injector);\n }\n const element = this._template.elementRef.nativeElement;\n // Because we support opening the same menu from different triggers (which in turn have their\n // own `OverlayRef` panel), we have to re-insert the host element every time, otherwise we\n // risk it staying attached to a pane that's no longer in the DOM.\n element.parentNode.insertBefore(this._outlet.outletElement, element);\n // When `MatMenuContent` is used in an `OnPush` component, the insertion of the menu\n // content via `createEmbeddedView` does not cause the content to be seen as \"dirty\"\n // by Angular. This causes the `@ContentChildren` for menu items within the menu to\n // not be updated by Angular. By explicitly marking for check here, we tell Angular that\n // it needs to check for new menu items and update the `@ContentChild` in `MatMenu`.\n // @breaking-change 9.0.0 Make change detector ref required\n this._changeDetectorRef?.markForCheck();\n this._portal.attach(this._outlet, context);\n this._attached.next();\n }\n /**\n * Detaches the content.\n * @docs-private\n */\n detach() {\n if (this._portal.isAttached) {\n this._portal.detach();\n }\n }\n ngOnDestroy() {\n if (this._outlet) {\n this._outlet.dispose();\n }\n }\n static {\n this.ɵfac = function MatMenuContent_Factory(t) {\n return new (t || MatMenuContent)(i0.ɵɵdirectiveInject(i0.TemplateRef), i0.ɵɵdirectiveInject(i0.ComponentFactoryResolver), i0.ɵɵdirectiveInject(i0.ApplicationRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuContent,\n selectors: [[\"ng-template\", \"matMenuContent\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_CONTENT,\n useExisting: MatMenuContent\n }])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[matMenuContent]',\n providers: [{\n provide: MAT_MENU_CONTENT,\n useExisting: MatMenuContent\n }],\n standalone: true\n }]\n }], () => [{\n type: i0.TemplateRef\n }, {\n type: i0.ComponentFactoryResolver\n }, {\n type: i0.ApplicationRef\n }, {\n type: i0.Injector\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\n\n/**\n * Animations used by the mat-menu component.\n * Animation duration and timing values are based on:\n * https://material.io/guidelines/components/menus.html#menus-usage\n * @docs-private\n */\nconst matMenuAnimations = {\n /**\n * This animation controls the menu panel's entry and exit from the page.\n *\n * When the menu panel is added to the DOM, it scales in and fades in its border.\n *\n * When the menu panel is removed from the DOM, it simply fades out after a brief\n * delay to display the ripple.\n */\n transformMenu: trigger('transformMenu', [state('void', style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), transition('void => enter', animate('120ms cubic-bezier(0, 0, 0.2, 1)', style({\n opacity: 1,\n transform: 'scale(1)'\n }))), transition('* => void', animate('100ms 25ms linear', style({\n opacity: 0\n })))]),\n /**\n * This animation fades in the background color and content of the menu panel\n * after its containing element is scaled in.\n */\n fadeInItems: trigger('fadeInItems', [\n // TODO(crisbeto): this is inside the `transformMenu`\n // now. Remove next time we do breaking changes.\n state('showing', style({\n opacity: 1\n })), transition('void => *', [style({\n opacity: 0\n }), animate('400ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst fadeInItems = matMenuAnimations.fadeInItems;\n/**\n * @deprecated\n * @breaking-change 8.0.0\n * @docs-private\n */\nconst transformMenu = matMenuAnimations.transformMenu;\nlet menuPanelUid = 0;\n/** Injection token to be used to override the default options for `mat-menu`. */\nconst MAT_MENU_DEFAULT_OPTIONS = new InjectionToken('mat-menu-default-options', {\n providedIn: 'root',\n factory: MAT_MENU_DEFAULT_OPTIONS_FACTORY\n});\n/** @docs-private */\nfunction MAT_MENU_DEFAULT_OPTIONS_FACTORY() {\n return {\n overlapTrigger: false,\n xPosition: 'after',\n yPosition: 'below',\n backdropClass: 'cdk-overlay-transparent-backdrop'\n };\n}\nclass MatMenu {\n /** Position of the menu in the X axis. */\n get xPosition() {\n return this._xPosition;\n }\n set xPosition(value) {\n if (value !== 'before' && value !== 'after' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionX();\n }\n this._xPosition = value;\n this.setPositionClasses();\n }\n /** Position of the menu in the Y axis. */\n get yPosition() {\n return this._yPosition;\n }\n set yPosition(value) {\n if (value !== 'above' && value !== 'below' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuInvalidPositionY();\n }\n this._yPosition = value;\n this.setPositionClasses();\n }\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @param classes list of class names\n */\n set panelClass(classes) {\n const previousPanelClass = this._previousPanelClass;\n const newClassList = {\n ...this._classList\n };\n if (previousPanelClass && previousPanelClass.length) {\n previousPanelClass.split(' ').forEach(className => {\n newClassList[className] = false;\n });\n }\n this._previousPanelClass = classes;\n if (classes && classes.length) {\n classes.split(' ').forEach(className => {\n newClassList[className] = true;\n });\n this._elementRef.nativeElement.className = '';\n }\n this._classList = newClassList;\n }\n /**\n * This method takes classes set on the host mat-menu element and applies them on the\n * menu template that displays in the overlay container. Otherwise, it's difficult\n * to style the containing menu from outside the component.\n * @deprecated Use `panelClass` instead.\n * @breaking-change 8.0.0\n */\n get classList() {\n return this.panelClass;\n }\n set classList(classes) {\n this.panelClass = classes;\n }\n constructor(_elementRef, _ngZone, defaultOptions,\n // @breaking-change 15.0.0 `_changeDetectorRef` to become a required parameter.\n _changeDetectorRef) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._elevationPrefix = 'mat-elevation-z';\n this._baseElevation = 8;\n /** Only the direct descendant menu items. */\n this._directDescendantItems = new QueryList();\n /** Classes to be applied to the menu panel. */\n this._classList = {};\n /** Current state of the panel animation. */\n this._panelAnimationState = 'void';\n /** Emits whenever an animation on the menu completes. */\n this._animationDone = new Subject();\n /** Event emitted when the menu is closed. */\n this.closed = new EventEmitter();\n /**\n * Event emitted when the menu is closed.\n * @deprecated Switch to `closed` instead\n * @breaking-change 8.0.0\n */\n this.close = this.closed;\n this.panelId = `mat-menu-panel-${menuPanelUid++}`;\n this.overlayPanelClass = defaultOptions.overlayPanelClass || '';\n this._xPosition = defaultOptions.xPosition;\n this._yPosition = defaultOptions.yPosition;\n this.backdropClass = defaultOptions.backdropClass;\n this.overlapTrigger = defaultOptions.overlapTrigger;\n this.hasBackdrop = defaultOptions.hasBackdrop;\n }\n ngOnInit() {\n this.setPositionClasses();\n }\n ngAfterContentInit() {\n this._updateDirectDescendants();\n this._keyManager = new FocusKeyManager(this._directDescendantItems).withWrap().withTypeAhead().withHomeAndEnd();\n this._keyManager.tabOut.subscribe(() => this.closed.emit('tab'));\n // If a user manually (programmatically) focuses a menu item, we need to reflect that focus\n // change back to the key manager. Note that we don't need to unsubscribe here because _focused\n // is internal and we know that it gets completed on destroy.\n this._directDescendantItems.changes.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._focused)))).subscribe(focusedItem => this._keyManager.updateActiveItem(focusedItem));\n this._directDescendantItems.changes.subscribe(itemsList => {\n // Move focus to another item, if the active item is removed from the list.\n // We need to debounce the callback, because multiple items might be removed\n // in quick succession.\n const manager = this._keyManager;\n if (this._panelAnimationState === 'enter' && manager.activeItem?._hasFocus()) {\n const items = itemsList.toArray();\n const index = Math.max(0, Math.min(items.length - 1, manager.activeItemIndex || 0));\n if (items[index] && !items[index].disabled) {\n manager.setActiveItem(index);\n } else {\n manager.setNextItemActive();\n }\n }\n });\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._directDescendantItems.destroy();\n this.closed.complete();\n this._firstItemFocusSubscription?.unsubscribe();\n }\n /** Stream that emits whenever the hovered menu item changes. */\n _hovered() {\n // Coerce the `changes` property because Angular types it as `Observable`\n const itemChanges = this._directDescendantItems.changes;\n return itemChanges.pipe(startWith(this._directDescendantItems), switchMap(items => merge(...items.map(item => item._hovered))));\n }\n /*\n * Registers a menu item with the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n addItem(_item) {}\n /**\n * Removes an item from the menu.\n * @docs-private\n * @deprecated No longer being used. To be removed.\n * @breaking-change 9.0.0\n */\n removeItem(_item) {}\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n const manager = this._keyManager;\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this.closed.emit('keydown');\n }\n break;\n case LEFT_ARROW:\n if (this.parentMenu && this.direction === 'ltr') {\n this.closed.emit('keydown');\n }\n break;\n case RIGHT_ARROW:\n if (this.parentMenu && this.direction === 'rtl') {\n this.closed.emit('keydown');\n }\n break;\n default:\n if (keyCode === UP_ARROW || keyCode === DOWN_ARROW) {\n manager.setFocusOrigin('keyboard');\n }\n manager.onKeydown(event);\n return;\n }\n // Don't allow the event to propagate if we've already handled it, or it may\n // end up reaching other overlays that were opened earlier (see #22694).\n event.stopPropagation();\n }\n /**\n * Focus the first item in the menu.\n * @param origin Action from which the focus originated. Used to set the correct styling.\n */\n focusFirstItem(origin = 'program') {\n // Wait for `onStable` to ensure iOS VoiceOver screen reader focuses the first item (#24735).\n this._firstItemFocusSubscription?.unsubscribe();\n this._firstItemFocusSubscription = this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n let menuPanel = null;\n if (this._directDescendantItems.length) {\n // Because the `mat-menuPanel` is at the DOM insertion point, not inside the overlay, we don't\n // have a nice way of getting a hold of the menuPanel panel. We can't use a `ViewChild` either\n // because the panel is inside an `ng-template`. We work around it by starting from one of\n // the items and walking up the DOM.\n menuPanel = this._directDescendantItems.first._getHostElement().closest('[role=\"menu\"]');\n }\n // If an item in the menuPanel is already focused, avoid overriding the focus.\n if (!menuPanel || !menuPanel.contains(document.activeElement)) {\n const manager = this._keyManager;\n manager.setFocusOrigin(origin).setFirstItemActive();\n // If there's no active item at this point, it means that all the items are disabled.\n // Move focus to the menuPanel panel so keyboard events like Escape still work. Also this will\n // give _some_ feedback to screen readers.\n if (!manager.activeItem && menuPanel) {\n menuPanel.focus();\n }\n }\n });\n }\n /**\n * Resets the active item in the menu. This is used when the menu is opened, allowing\n * the user to start from the first option when pressing the down arrow.\n */\n resetActiveItem() {\n this._keyManager.setActiveItem(-1);\n }\n /**\n * Sets the menu panel elevation.\n * @param depth Number of parent menus that come before the menu.\n */\n setElevation(depth) {\n // The elevation starts at the base and increases by one for each level.\n // Capped at 24 because that's the maximum elevation defined in the Material design spec.\n const elevation = Math.min(this._baseElevation + depth, 24);\n const newElevation = `${this._elevationPrefix}${elevation}`;\n const customElevation = Object.keys(this._classList).find(className => {\n return className.startsWith(this._elevationPrefix);\n });\n if (!customElevation || customElevation === this._previousElevation) {\n const newClassList = {\n ...this._classList\n };\n if (this._previousElevation) {\n newClassList[this._previousElevation] = false;\n }\n newClassList[newElevation] = true;\n this._previousElevation = newElevation;\n this._classList = newClassList;\n }\n }\n /**\n * Adds classes to the menu panel based on its position. Can be used by\n * consumers to add specific styling based on the position.\n * @param posX Position of the menu along the x axis.\n * @param posY Position of the menu along the y axis.\n * @docs-private\n */\n setPositionClasses(posX = this.xPosition, posY = this.yPosition) {\n this._classList = {\n ...this._classList,\n ['mat-menu-before']: posX === 'before',\n ['mat-menu-after']: posX === 'after',\n ['mat-menu-above']: posY === 'above',\n ['mat-menu-below']: posY === 'below'\n };\n // @breaking-change 15.0.0 Remove null check for `_changeDetectorRef`.\n this._changeDetectorRef?.markForCheck();\n }\n /** Starts the enter animation. */\n _startAnimation() {\n // @breaking-change 8.0.0 Combine with _resetAnimation.\n this._panelAnimationState = 'enter';\n }\n /** Resets the panel animation to its initial state. */\n _resetAnimation() {\n // @breaking-change 8.0.0 Combine with _startAnimation.\n this._panelAnimationState = 'void';\n }\n /** Callback that is invoked when the panel animation completes. */\n _onAnimationDone(event) {\n this._animationDone.next(event);\n this._isAnimating = false;\n }\n _onAnimationStart(event) {\n this._isAnimating = true;\n // Scroll the content element to the top as soon as the animation starts. This is necessary,\n // because we move focus to the first item while it's still being animated, which can throw\n // the browser off when it determines the scroll position. Alternatively we can move focus\n // when the animation is done, however moving focus asynchronously will interrupt screen\n // readers which are in the process of reading out the menu already. We take the `element`\n // from the `event` since we can't use a `ViewChild` to access the pane.\n if (event.toState === 'enter' && this._keyManager.activeItemIndex === 0) {\n event.element.scrollTop = 0;\n }\n }\n /**\n * Sets up a stream that will keep track of any newly-added menu items and will update the list\n * of direct descendants. We collect the descendants this way, because `_allItems` can include\n * items that are part of child menus, and using a custom way of registering items is unreliable\n * when it comes to maintaining the item order.\n */\n _updateDirectDescendants() {\n this._allItems.changes.pipe(startWith(this._allItems)).subscribe(items => {\n this._directDescendantItems.reset(items.filter(item => item._parentMenu === this));\n this._directDescendantItems.notifyOnChanges();\n });\n }\n static {\n this.ɵfac = function MatMenu_Factory(t) {\n return new (t || MatMenu)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(MAT_MENU_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatMenu,\n selectors: [[\"mat-menu\"]],\n contentQueries: function MatMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_MENU_CONTENT, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 5);\n i0.ɵɵcontentQuery(dirIndex, MatMenuItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.lazyContent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allItems = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n }\n },\n viewQuery: function MatMenu_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n }\n },\n hostVars: 3,\n hostBindings: function MatMenu_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-label\", null)(\"aria-labelledby\", null)(\"aria-describedby\", null);\n }\n },\n inputs: {\n backdropClass: \"backdropClass\",\n ariaLabel: [i0.ɵɵInputFlags.None, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [i0.ɵɵInputFlags.None, \"aria-labelledby\", \"ariaLabelledby\"],\n ariaDescribedby: [i0.ɵɵInputFlags.None, \"aria-describedby\", \"ariaDescribedby\"],\n xPosition: \"xPosition\",\n yPosition: \"yPosition\",\n overlapTrigger: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"overlapTrigger\", \"overlapTrigger\", booleanAttribute],\n hasBackdrop: [i0.ɵɵInputFlags.HasDecoratorInputTransform, \"hasBackdrop\", \"hasBackdrop\", value => value == null ? null : booleanAttribute(value)],\n panelClass: [i0.ɵɵInputFlags.None, \"class\", \"panelClass\"],\n classList: \"classList\"\n },\n outputs: {\n closed: \"closed\",\n close: \"close\"\n },\n exportAs: [\"matMenu\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_MENU_PANEL,\n useExisting: MatMenu\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c3,\n decls: 1,\n vars: 0,\n consts: [[\"tabindex\", \"-1\", \"role\", \"menu\", 1, \"mat-mdc-menu-panel\", \"mat-mdc-elevation-specific\", 3, \"keydown\", \"click\", \"id\"], [1, \"mat-mdc-menu-content\"]],\n template: function MatMenu_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, MatMenu_ng_template_0_Template, 3, 7, \"ng-template\");\n }\n },\n styles: [\"mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"],\n encapsulation: 2,\n data: {\n animation: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenu, [{\n type: Component,\n args: [{\n selector: 'mat-menu',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matMenu',\n host: {\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null'\n },\n animations: [matMenuAnimations.transformMenu, matMenuAnimations.fadeInItems],\n providers: [{\n provide: MAT_MENU_PANEL,\n useExisting: MatMenu\n }],\n standalone: true,\n template: \"\\n \\n \\n\",\n styles: [\"mat-menu{display:none}.mat-mdc-menu-content{margin:0;padding:8px 0;list-style-type:none}.mat-mdc-menu-content:focus{outline:none}.mat-mdc-menu-content,.mat-mdc-menu-content .mat-mdc-menu-item .mat-mdc-menu-item-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;flex:1;white-space:normal;font-family:var(--mat-menu-item-label-text-font);line-height:var(--mat-menu-item-label-text-line-height);font-size:var(--mat-menu-item-label-text-size);letter-spacing:var(--mat-menu-item-label-text-tracking);font-weight:var(--mat-menu-item-label-text-weight)}.mat-mdc-menu-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;outline:0;border-radius:var(--mat-menu-container-shape);background-color:var(--mat-menu-container-color);will-change:transform,opacity}.mat-mdc-menu-panel.ng-animating{pointer-events:none}.cdk-high-contrast-active .mat-mdc-menu-panel{outline:solid 1px}.mat-divider{color:var(--mat-menu-divider-color);margin-bottom:var(--mat-menu-divider-bottom-spacing);margin-top:var(--mat-menu-divider-top-spacing)}.mat-mdc-menu-item{display:flex;position:relative;align-items:center;justify-content:flex-start;overflow:hidden;padding:0;padding-left:var(--mat-menu-item-leading-spacing);padding-right:var(--mat-menu-item-trailing-spacing);-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer;width:100%;text-align:left;box-sizing:border-box;color:inherit;font-size:inherit;background:none;text-decoration:none;margin:0;align-items:center;min-height:48px}.mat-mdc-menu-item:focus{outline:none}[dir=rtl] .mat-mdc-menu-item,.mat-mdc-menu-item[dir=rtl]{padding-left:var(--mat-menu-item-trailing-spacing);padding-right:var(--mat-menu-item-leading-spacing)}.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]){padding-left:var(--mat-menu-item-with-icon-leading-spacing);padding-right:var(--mat-menu-item-with-icon-trailing-spacing)}[dir=rtl] .mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon]),.mat-mdc-menu-item:has(.material-icons,mat-icon,[matButtonIcon])[dir=rtl]{padding-left:var(--mat-menu-item-with-icon-trailing-spacing);padding-right:var(--mat-menu-item-with-icon-leading-spacing)}.mat-mdc-menu-item::-moz-focus-inner{border:0}.mat-mdc-menu-item,.mat-mdc-menu-item:visited,.mat-mdc-menu-item:link{color:var(--mat-menu-item-label-text-color)}.mat-mdc-menu-item .mat-icon-no-color,.mat-mdc-menu-item .mat-mdc-menu-submenu-icon{color:var(--mat-menu-item-icon-color)}.mat-mdc-menu-item[disabled]{cursor:default;opacity:.38}.mat-mdc-menu-item[disabled]::after{display:block;position:absolute;content:\\\"\\\";top:0;left:0;bottom:0;right:0}.mat-mdc-menu-item .mat-icon{flex-shrink:0;margin-right:var(--mat-menu-item-spacing);height:var(--mat-menu-item-icon-size);width:var(--mat-menu-item-icon-size)}[dir=rtl] .mat-mdc-menu-item{text-align:right}[dir=rtl] .mat-mdc-menu-item .mat-icon{margin-right:0;margin-left:var(--mat-menu-item-spacing)}.mat-mdc-menu-item:not([disabled]):hover{background-color:var(--mat-menu-item-hover-state-layer-color)}.mat-mdc-menu-item:not([disabled]).cdk-program-focused,.mat-mdc-menu-item:not([disabled]).cdk-keyboard-focused,.mat-mdc-menu-item:not([disabled]).mat-mdc-menu-item-highlighted{background-color:var(--mat-menu-item-focus-state-layer-color)}.cdk-high-contrast-active .mat-mdc-menu-item{margin-top:1px}.mat-mdc-menu-submenu-icon{width:var(--mat-menu-item-icon-size);height:10px;fill:currentColor;padding-left:var(--mat-menu-item-spacing)}[dir=rtl] .mat-mdc-menu-submenu-icon{padding-right:var(--mat-menu-item-spacing);padding-left:0}[dir=rtl] .mat-mdc-menu-submenu-icon polygon{transform:scaleX(-1)}.cdk-high-contrast-active .mat-mdc-menu-submenu-icon{fill:CanvasText}.mat-mdc-menu-item .mat-mdc-menu-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_DEFAULT_OPTIONS]\n }]\n }, {\n type: i0.ChangeDetectorRef\n }], {\n _allItems: [{\n type: ContentChildren,\n args: [MatMenuItem, {\n descendants: true\n }]\n }],\n backdropClass: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }],\n ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }],\n ariaDescribedby: [{\n type: Input,\n args: ['aria-describedby']\n }],\n xPosition: [{\n type: Input\n }],\n yPosition: [{\n type: Input\n }],\n templateRef: [{\n type: ViewChild,\n args: [TemplateRef]\n }],\n items: [{\n type: ContentChildren,\n args: [MatMenuItem, {\n descendants: false\n }]\n }],\n lazyContent: [{\n type: ContentChild,\n args: [MAT_MENU_CONTENT]\n }],\n overlapTrigger: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n hasBackdrop: [{\n type: Input,\n args: [{\n transform: value => value == null ? null : booleanAttribute(value)\n }]\n }],\n panelClass: [{\n type: Input,\n args: ['class']\n }],\n classList: [{\n type: Input\n }],\n closed: [{\n type: Output\n }],\n close: [{\n type: Output\n }]\n });\n})();\n\n/** Injection token that determines the scroll handling while the menu is open. */\nconst MAT_MENU_SCROLL_STRATEGY = new InjectionToken('mat-menu-scroll-strategy', {\n providedIn: 'root',\n factory: () => {\n const overlay = inject(Overlay);\n return () => overlay.scrollStrategies.reposition();\n }\n});\n/** @docs-private */\nfunction MAT_MENU_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** @docs-private */\nconst MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_MENU_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_MENU_SCROLL_STRATEGY_FACTORY\n};\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Default top padding of the menu panel.\n * @deprecated No longer being used. Will be removed.\n * @breaking-change 15.0.0\n */\nconst MENU_PANEL_TOP_PADDING = 8;\n/** Directive applied to an element that should trigger a `mat-menu`. */\nclass MatMenuTrigger {\n /**\n * @deprecated\n * @breaking-change 8.0.0\n */\n get _deprecatedMatMenuTriggerFor() {\n return this.menu;\n }\n set _deprecatedMatMenuTriggerFor(v) {\n this.menu = v;\n }\n /** References the menu instance that the trigger is associated with. */\n get menu() {\n return this._menu;\n }\n set menu(menu) {\n if (menu === this._menu) {\n return;\n }\n this._menu = menu;\n this._menuCloseSubscription.unsubscribe();\n if (menu) {\n if (menu === this._parentMaterialMenu && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatMenuRecursiveError();\n }\n this._menuCloseSubscription = menu.close.subscribe(reason => {\n this._destroyMenu(reason);\n // If a click closed the menu, we should close the entire chain of nested menus.\n if ((reason === 'click' || reason === 'tab') && this._parentMaterialMenu) {\n this._parentMaterialMenu.closed.emit(reason);\n }\n });\n }\n this._menuItemInstance?._setTriggersSubmenu(this.triggersSubmenu());\n }\n constructor(_overlay, _element, _viewContainerRef, scrollStrategy, parentMenu,\n // `MatMenuTrigger` is commonly used in combination with a `MatMenuItem`.\n // tslint:disable-next-line: lightweight-tokens\n _menuItemInstance, _dir, _focusMonitor, _ngZone) {\n this._overlay = _overlay;\n this._element = _element;\n this._viewContainerRef = _viewContainerRef;\n this._menuItemInstance = _menuItemInstance;\n this._dir = _dir;\n this._focusMonitor = _focusMonitor;\n this._ngZone = _ngZone;\n this._overlayRef = null;\n this._menuOpen = false;\n this._closingActionsSubscription = Subscription.EMPTY;\n this._hoverSubscription = Subscription.EMPTY;\n this._menuCloseSubscription = Subscription.EMPTY;\n this._changeDetectorRef = inject(ChangeDetectorRef);\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n this._handleTouchStart = event => {\n if (!isFakeTouchstartFromScreenReader(event)) {\n this._openedBy = 'touch';\n }\n };\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n this._openedBy = undefined;\n /**\n * Whether focus should be restored when the menu is closed.\n * Note that disabling this option can have accessibility implications\n * and it's up to you to manage focus, if you decide to turn it off.\n */\n this.restoreFocus = true;\n /** Event emitted when the associated menu is opened. */\n this.menuOpened = new EventEmitter();\n /**\n * Event emitted when the associated menu is opened.\n * @deprecated Switch to `menuOpened` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n this.onMenuOpen = this.menuOpened;\n /** Event emitted when the associated menu is closed. */\n this.menuClosed = new EventEmitter();\n /**\n * Event emitted when the associated menu is closed.\n * @deprecated Switch to `menuClosed` instead\n * @breaking-change 8.0.0\n */\n // tslint:disable-next-line:no-output-on-prefix\n this.onMenuClose = this.menuClosed;\n this._scrollStrategy = scrollStrategy;\n this._parentMaterialMenu = parentMenu instanceof MatMenu ? parentMenu : undefined;\n _element.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n }\n ngAfterContentInit() {\n this._handleHover();\n }\n ngOnDestroy() {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n this._element.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);\n this._menuCloseSubscription.unsubscribe();\n this._closingActionsSubscription.unsubscribe();\n this._hoverSubscription.unsubscribe();\n }\n /** Whether the menu is open. */\n get menuOpen() {\n return this._menuOpen;\n }\n /** The text direction of the containing app. */\n get dir() {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n }\n /** Whether the menu triggers a sub-menu or a top-level one. */\n triggersSubmenu() {\n return !!(this._menuItemInstance && this._parentMaterialMenu && this.menu);\n }\n /** Toggles the menu between the open and closed states. */\n toggleMenu() {\n return this._menuOpen ? this.closeMenu() : this.openMenu();\n }\n /** Opens the menu. */\n openMenu() {\n const menu = this.menu;\n if (this._menuOpen || !menu) {\n return;\n }\n const overlayRef = this._createOverlay(menu);\n const overlayConfig = overlayRef.getConfig();\n const positionStrategy = overlayConfig.positionStrategy;\n this._setPosition(menu, positionStrategy);\n overlayConfig.hasBackdrop = menu.hasBackdrop == null ? !this.triggersSubmenu() : menu.hasBackdrop;\n overlayRef.attach(this._getPortal(menu));\n if (menu.lazyContent) {\n menu.lazyContent.attach(this.menuData);\n }\n this._closingActionsSubscription = this._menuClosingActions().subscribe(() => this.closeMenu());\n this._initMenu(menu);\n if (menu instanceof MatMenu) {\n menu._startAnimation();\n menu._directDescendantItems.changes.pipe(takeUntil(menu.close)).subscribe(() => {\n // Re-adjust the position without locking when the amount of items\n // changes so that the overlay is allowed to pick a new optimal position.\n positionStrategy.withLockedPosition(false).reapplyLastPosition();\n positionStrategy.withLockedPosition(true);\n });\n }\n }\n /** Closes the menu. */\n closeMenu() {\n this.menu?.close.emit();\n }\n /**\n * Focuses the menu trigger.\n * @param origin Source of the menu trigger's focus.\n */\n focus(origin, options) {\n if (this._focusMonitor && origin) {\n this._focusMonitor.focusVia(this._element, origin, options);\n } else {\n this._element.nativeElement.focus(options);\n }\n }\n /**\n * Updates the position of the menu to ensure that it fits all options within the viewport.\n */\n updatePosition() {\n this._overlayRef?.updatePosition();\n }\n /** Closes the menu and does the necessary cleanup. */\n _destroyMenu(reason) {\n if (!this._overlayRef || !this.menuOpen) {\n return;\n }\n const menu = this.menu;\n this._closingActionsSubscription.unsubscribe();\n this._overlayRef.detach();\n // Always restore focus if the user is navigating using the keyboard or the menu was opened\n // programmatically. We don't restore for non-root triggers, because it can prevent focus\n // from making it back to the root trigger when closing a long chain of menus by clicking\n // on the backdrop.\n if (this.restoreFocus && (reason === 'keydown' || !this._openedBy || !this.triggersSubmenu())) {\n this.focus(this._openedBy);\n }\n this._openedBy = undefined;\n if (menu instanceof MatMenu) {\n menu._resetAnimation();\n if (menu.lazyContent) {\n // Wait for the exit animation to finish before detaching the content.\n menu._animationDone.pipe(filter(event => event.toState === 'void'), take(1),\n // Interrupt if the content got re-attached.\n takeUntil(menu.lazyContent._attached)).subscribe({\n next: () => menu.lazyContent.detach(),\n // No matter whether the content got re-attached, reset the menu.\n complete: () => this._setIsMenuOpen(false)\n });\n } else {\n this._setIsMenuOpen(false);\n }\n } else {\n this._setIsMenuOpen(false);\n menu?.lazyContent?.detach();\n }\n }\n /**\n * This method sets the menu state to open and focuses the first item if\n * the menu was opened via the keyboard.\n */\n _initMenu(menu) {\n menu.parentMenu = this.triggersSubmenu() ? this._parentMaterialMenu : undefined;\n menu.direction = this.dir;\n this._setMenuElevation(menu);\n menu.focusFirstItem(this._openedBy || 'program');\n this._setIsMenuOpen(true);\n }\n /** Updates the menu elevation based on the amount of parent menus that it has. */\n _setMenuElevation(menu) {\n if (menu.setElevation) {\n let depth = 0;\n let parentMenu = menu.parentMenu;\n while (parentMenu) {\n depth++;\n parentMenu = parentMenu.parentMenu;\n }\n menu.setElevation(depth);\n }\n }\n // set state rather than toggle to support triggers sharing a menu\n _setIsMenuOpen(isOpen) {\n if (isOpen !== this._menuOpen) {\n this._menuOpen = isOpen;\n this._menuOpen ? this.menuOpened.emit() : this.menuClosed.emit();\n if (this.triggersSubmenu()) {\n this._menuItemInstance._setHighlighted(isOpen);\n }\n this._changeDetectorRef.markForCheck();\n }\n }\n /**\n * This method creates the overlay from the provided menu's template and saves its\n * OverlayRef so that it can be attached to the DOM when openMenu is called.\n */\n _createOverlay(menu) {\n if (!this._overlayRef) {\n const config = this._getOverlayConfig(menu);\n this._subscribeToPositions(menu, config.positionStrategy);\n this._overlayRef = this._overlay.create(config);\n // Consume the `keydownEvents` in order to prevent them from going to another overlay.\n // Ideally we'd also have our keyboard event logic in here, however doing so will\n // break anybody that may have implemented the `MatMenuPanel` themselves.\n this._overlayRef.keydownEvents().subscribe();\n }\n return this._overlayRef;\n }\n /**\n * This method builds the configuration object needed to create the overlay, the OverlayState.\n * @returns OverlayConfig\n */\n _getOverlayConfig(menu) {\n return new OverlayConfig({\n positionStrategy: this._overlay.position().flexibleConnectedTo(this._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn('.mat-menu-panel, .mat-mdc-menu-panel'),\n backdropClass: menu.backdropClass || 'cdk-overlay-transparent-backdrop',\n panelClass: menu.overlayPanelClass,\n scrollStrategy: this._scrollStrategy(),\n direction: this._dir\n });\n }\n /**\n * Listens to changes in the position of the overlay and sets the correct classes\n * on the menu based on the new position. This ensures the animation origin is always\n * correct, even if a fallback position is used for the overlay.\n */\n _subscribeToPositions(menu, position) {\n if (menu.setPositionClasses) {\n position.positionChanges.subscribe(change => {\n const posX = change.connectionPair.overlayX === 'start' ? 'after' : 'before';\n const posY = change.connectionPair.overlayY === 'top' ? 'below' : 'above';\n // @breaking-change 15.0.0 Remove null check for `ngZone`.\n // `positionChanges` fires outside of the `ngZone` and `setPositionClasses` might be\n // updating something in the view so we need to bring it back in.\n if (this._ngZone) {\n this._ngZone.run(() => menu.setPositionClasses(posX, posY));\n } else {\n menu.setPositionClasses(posX, posY);\n }\n });\n }\n }\n /**\n * Sets the appropriate positions on a position strategy\n * so the overlay connects with the trigger correctly.\n * @param positionStrategy Strategy whose position to update.\n */\n _setPosition(menu, positionStrategy) {\n let [originX, originFallbackX] = menu.xPosition === 'before' ? ['end', 'start'] : ['start', 'end'];\n let [overlayY, overlayFallbackY] = menu.yPosition === 'above' ? ['bottom', 'top'] : ['top', 'bottom'];\n let [originY, originFallbackY] = [overlayY, overlayFallbackY];\n let [overlayX, overlayFallbackX] = [originX, originFallbackX];\n let offsetY = 0;\n if (this.triggersSubmenu()) {\n // When the menu is a sub-menu, it should always align itself\n // to the edges of the trigger, instead of overlapping it.\n overlayFallbackX = originX = menu.xPosition === 'before' ? 'start' : 'end';\n originFallbackX = overlayX = originX === 'end' ? 'start' : 'end';\n if (this._parentMaterialMenu) {\n if (this._parentInnerPadding == null) {\n const firstItem = this._parentMaterialMenu.items.first;\n this._parentInnerPadding = firstItem ? firstItem._getHostElement().offsetTop : 0;\n }\n offsetY = overlayY === 'bottom' ? this._parentInnerPadding : -this._parentInnerPadding;\n }\n } else if (!menu.overlapTrigger) {\n originY = overlayY === 'top' ? 'bottom' : 'top';\n originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';\n }\n positionStrategy.withPositions([{\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n }, {\n originX: originFallbackX,\n originY,\n overlayX: overlayFallbackX,\n overlayY,\n offsetY\n }, {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }, {\n originX: originFallbackX,\n originY: originFallbackY,\n overlayX: overlayFallbackX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }]);\n }\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n _menuClosingActions() {\n const backdrop = this._overlayRef.backdropClick();\n const detachments = this._overlayRef.detachments();\n const parentClose = this._parentMaterialMenu ? this._parentMaterialMenu.closed : of();\n const hover = this._parentMaterialMenu ? this._parentMaterialMenu._hovered().pipe(filter(active => active !== this._menuItemInstance), filter(() => this._menuOpen)) : of();\n return merge(backdrop, parentClose, hover, detachments);\n }\n /** Handles mouse presses on the trigger. */\n _handleMousedown(event) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : undefined;\n // Since clicking on the trigger won't close the menu if it opens a sub-menu,\n // we should prevent focus from moving onto it via click to avoid the\n // highlight from lingering on the menu item.\n if (this.triggersSubmenu()) {\n event.preventDefault();\n }\n }\n }\n /** Handles key presses on the trigger. */\n _handleKeydown(event) {\n const keyCode = event.keyCode;\n // Pressing enter on the trigger will trigger the click handler later.\n if (keyCode === ENTER || keyCode === SPACE) {\n this._openedBy = 'keyboard';\n }\n if (this.triggersSubmenu() && (keyCode === RIGHT_ARROW && this.dir === 'ltr' || keyCode === LEFT_ARROW && this.dir === 'rtl')) {\n this._openedBy = 'keyboard';\n this.openMenu();\n }\n }\n /** Handles click events on the trigger. */\n _handleClick(event) {\n if (this.triggersSubmenu()) {\n // Stop event propagation to avoid closing the parent menu.\n event.stopPropagation();\n this.openMenu();\n } else {\n this.toggleMenu();\n }\n }\n /** Handles the cases where the user hovers over the trigger. */\n _handleHover() {\n // Subscribe to changes in the hovered item in order to toggle the panel.\n if (!this.triggersSubmenu() || !this._parentMaterialMenu) {\n return;\n }\n this._hoverSubscription = this._parentMaterialMenu._hovered()\n // Since we might have multiple competing triggers for the same menu (e.g. a sub-menu\n // with different data and triggers), we have to delay it by a tick to ensure that\n // it won't be closed immediately after it is opened.\n .pipe(filter(active => active === this._menuItemInstance && !active.disabled), delay(0, asapScheduler)).subscribe(() => {\n this._openedBy = 'mouse';\n // If the same menu is used between multiple triggers, it might still be animating\n // while the new trigger tries to re-open it. Wait for the animation to finish\n // before doing so. Also interrupt if the user moves to another item.\n if (this.menu instanceof MatMenu && this.menu._isAnimating) {\n // We need the `delay(0)` here in order to avoid\n // 'changed after checked' errors in some cases. See #12194.\n this.menu._animationDone.pipe(take(1), delay(0, asapScheduler), takeUntil(this._parentMaterialMenu._hovered())).subscribe(() => this.openMenu());\n } else {\n this.openMenu();\n }\n });\n }\n /** Gets the portal that should be attached to the overlay. */\n _getPortal(menu) {\n // Note that we can avoid this check by keeping the portal on the menu panel.\n // While it would be cleaner, we'd have to introduce another required method on\n // `MatMenuPanel`, making it harder to consume.\n if (!this._portal || this._portal.templateRef !== menu.templateRef) {\n this._portal = new TemplatePortal(menu.templateRef, this._viewContainerRef);\n }\n return this._portal;\n }\n static {\n this.ɵfac = function MatMenuTrigger_Factory(t) {\n return new (t || MatMenuTrigger)(i0.ɵɵdirectiveInject(i1$1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(MAT_MENU_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(MAT_MENU_PANEL, 8), i0.ɵɵdirectiveInject(MatMenuItem, 10), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatMenuTrigger,\n selectors: [[\"\", \"mat-menu-trigger-for\", \"\"], [\"\", \"matMenuTriggerFor\", \"\"]],\n hostAttrs: [1, \"mat-mdc-menu-trigger\"],\n hostVars: 3,\n hostBindings: function MatMenuTrigger_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function MatMenuTrigger_click_HostBindingHandler($event) {\n return ctx._handleClick($event);\n })(\"mousedown\", function MatMenuTrigger_mousedown_HostBindingHandler($event) {\n return ctx._handleMousedown($event);\n })(\"keydown\", function MatMenuTrigger_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-haspopup\", ctx.menu ? \"menu\" : null)(\"aria-expanded\", ctx.menuOpen)(\"aria-controls\", ctx.menuOpen ? ctx.menu.panelId : null);\n }\n },\n inputs: {\n _deprecatedMatMenuTriggerFor: [i0.ɵɵInputFlags.None, \"mat-menu-trigger-for\", \"_deprecatedMatMenuTriggerFor\"],\n menu: [i0.ɵɵInputFlags.None, \"matMenuTriggerFor\", \"menu\"],\n menuData: [i0.ɵɵInputFlags.None, \"matMenuTriggerData\", \"menuData\"],\n restoreFocus: [i0.ɵɵInputFlags.None, \"matMenuTriggerRestoreFocus\", \"restoreFocus\"]\n },\n outputs: {\n menuOpened: \"menuOpened\",\n onMenuOpen: \"onMenuOpen\",\n menuClosed: \"menuClosed\",\n onMenuClose: \"onMenuClose\"\n },\n exportAs: [\"matMenuTrigger\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuTrigger, [{\n type: Directive,\n args: [{\n selector: `[mat-menu-trigger-for], [matMenuTriggerFor]`,\n host: {\n 'class': 'mat-mdc-menu-trigger',\n '[attr.aria-haspopup]': 'menu ? \"menu\" : null',\n '[attr.aria-expanded]': 'menuOpen',\n '[attr.aria-controls]': 'menuOpen ? menu.panelId : null',\n '(click)': '_handleClick($event)',\n '(mousedown)': '_handleMousedown($event)',\n '(keydown)': '_handleKeydown($event)'\n },\n exportAs: 'matMenuTrigger',\n standalone: true\n }]\n }], () => [{\n type: i1$1.Overlay\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_SCROLL_STRATEGY]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [MAT_MENU_PANEL]\n }, {\n type: Optional\n }]\n }, {\n type: MatMenuItem,\n decorators: [{\n type: Optional\n }, {\n type: Self\n }]\n }, {\n type: i3.Directionality,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i1.FocusMonitor\n }, {\n type: i0.NgZone\n }], {\n _deprecatedMatMenuTriggerFor: [{\n type: Input,\n args: ['mat-menu-trigger-for']\n }],\n menu: [{\n type: Input,\n args: ['matMenuTriggerFor']\n }],\n menuData: [{\n type: Input,\n args: ['matMenuTriggerData']\n }],\n restoreFocus: [{\n type: Input,\n args: ['matMenuTriggerRestoreFocus']\n }],\n menuOpened: [{\n type: Output\n }],\n onMenuOpen: [{\n type: Output\n }],\n menuClosed: [{\n type: Output\n }],\n onMenuClose: [{\n type: Output\n }]\n });\n})();\nclass MatMenuModule {\n static {\n this.ɵfac = function MatMenuModule_Factory(t) {\n return new (t || MatMenuModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatMenuModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [CommonModule, MatRippleModule, MatCommonModule, OverlayModule, CdkScrollableModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatMenuModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, MatRippleModule, MatCommonModule, OverlayModule, MatMenu, MatMenuItem, MatMenuContent, MatMenuTrigger],\n exports: [CdkScrollableModule, MatMenu, MatCommonModule, MatMenuItem, MatMenuContent, MatMenuTrigger],\n providers: [MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_MENU_CONTENT, MAT_MENU_DEFAULT_OPTIONS, MAT_MENU_PANEL, MAT_MENU_SCROLL_STRATEGY, MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER, MENU_PANEL_TOP_PADDING, MatMenu, MatMenuContent, MatMenuItem, MatMenuModule, MatMenuTrigger, fadeInItems, matMenuAnimations, transformMenu };\n","\r\nimport { Directive, HostListener, Renderer2 } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControlName][appPhoneMask]',\r\n})\r\nexport class PhoneMaskDirective {\r\n constructor(private ngControl: NgControl, private renderer: Renderer2) { }\r\n\r\n @HostListener('ngModelChange', ['$event'])\r\n onModelChange(event: string): void {\r\n this.updateInputValue(event);\r\n }\r\n\r\n @HostListener('keydown.backspace', ['$event'])\r\n handleBackspace(event: KeyboardEvent): void {\r\n const inputValue = (event.target as HTMLInputElement).value;\r\n this.updateInputValue(inputValue, true);\r\n }\r\n\r\n private updateInputValue(input: string, backspace: boolean = false): void {\r\n\r\n if (input === null) {\r\n return;\r\n }\r\n // Remove all non-digit characters\r\n let cleanedValue = input.replace(/\\D/g, '');\r\n\r\n // Adjust for backspace\r\n if (backspace && cleanedValue.length <= 6) {\r\n cleanedValue = cleanedValue.slice(0, -1);\r\n }\r\n\r\n // Format the cleaned value\r\n let formattedValue = this.formatPhoneNumber(cleanedValue);\r\n\r\n if (this.ngControl.control && this.ngControl.control.value !== formattedValue) {\r\n // Write the formatted value to the control\r\n this.ngControl.control?.setValue(formattedValue);\r\n }\r\n this.ngControl.control?.updateValueAndValidity(); \r\n }\r\n\r\n private formatPhoneNumber(value: string): string {\r\n if (value.length === 0) {\r\n return '';\r\n } else if (value.length <= 3) {\r\n return value; // Return as-is for 1-3 digits\r\n } else if (value.length <= 6) {\r\n return `${value.slice(0, 3)}-${value.slice(3)}`; // Format as 111-111\r\n } else {\r\n return `${value.slice(0, 3)}-${value.slice(3, 6)}-${value.slice(6, 10)}`; // Format as 111-111-1111\r\n }\r\n }\r\n}\r\n\r\n"],"mappings":"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","names":["acc","FormControl","RtlScrollAxisType","query","window","document","FocusMonitorDetectionMode","HighContrastMode","VERSION","VERSION","style","RippleState","trigger","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c0","_OverlayContainer","_Overlay","state","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","_c3","_c4","_c5","_c7","_c6","_ViewRepeaterOperation","_c0","_c1","document","window","from","range","ComponentPortal","scrollBehaviorSupported","document","document","OverlayContainer","OverlayRef","style","OverlayContainer","nextUniqueId","OverlayRef","Overlay","_c0","_c1","_c2","_c3","nextUniqueId","Overlay","_c0","_c1","_c2","_c3","Overlay","Overlay"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}