`\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 features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return CdkPortalOutlet;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nlet PortalHostDirective = /*#__PURE__*/(() => {\n class 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 features: [i0.ɵɵProvidersFeature([{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return PortalHostDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PortalModule = /*#__PURE__*/(() => {\n class 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 return PortalModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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, Directive, EventEmitter, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray, coerceBooleanProperty } 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 = /*#__PURE__*/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 */\nlet ScrollStrategyOptions = /*#__PURE__*/(() => {\n class 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 return ScrollStrategyOptions;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nlet BaseOverlayDispatcher = /*#__PURE__*/(() => {\n class 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 return BaseOverlayDispatcher;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nlet OverlayKeyboardDispatcher = /*#__PURE__*/(() => {\n class 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 return OverlayKeyboardDispatcher;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nlet OverlayOutsideClickDispatcher = /*#__PURE__*/(() => {\n class 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 return OverlayOutsideClickDispatcher;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** Container inside which all overlays will render. */\nlet OverlayContainer = /*#__PURE__*/(() => {\n class 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 return OverlayContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 // Save the last connected position in case the position needs to be re-calculated.\n this._lastPosition = position;\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 scrollableViewProperties = this._getScrollVisibility();\n const changeEvent = new ConnectedOverlayPositionChange(position, scrollableViewProperties);\n this._positionChanges.next(changeEvent);\n }\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 `ClientRect`.\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;\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 ClientRect 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 `ClientRect` 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 `ClientRect` 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}\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. */\nlet OverlayPositionBuilder = /*#__PURE__*/(() => {\n class 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 return OverlayPositionBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nlet Overlay = /*#__PURE__*/(() => {\n class 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 return Overlay;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 = /*#__PURE__*/new InjectionToken('cdk-connected-overlay-scroll-strategy');\n/**\n * Directive applied to an element to make it usable as an origin for an Overlay using a\n * ConnectedPositionStrategy.\n */\nlet CdkOverlayOrigin = /*#__PURE__*/(() => {\n class 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 return CdkOverlayOrigin;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Directive to facilitate declarative creation of an\n * Overlay using a FlexibleConnectedPositionStrategy.\n */\nlet CdkConnectedOverlay = /*#__PURE__*/(() => {\n class 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 or not the overlay should attach a backdrop. */\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(value) {\n this._hasBackdrop = coerceBooleanProperty(value);\n }\n /** Whether or not the overlay should be locked when scrolling. */\n get lockPosition() {\n return this._lockPosition;\n }\n set lockPosition(value) {\n this._lockPosition = coerceBooleanProperty(value);\n }\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n get flexibleDimensions() {\n return this._flexibleDimensions;\n }\n set flexibleDimensions(value) {\n this._flexibleDimensions = coerceBooleanProperty(value);\n }\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n get growAfterOpen() {\n return this._growAfterOpen;\n }\n set growAfterOpen(value) {\n this._growAfterOpen = coerceBooleanProperty(value);\n }\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n get push() {\n return this._push;\n }\n set push(value) {\n this._push = coerceBooleanProperty(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._hasBackdrop = false;\n this._lockPosition = false;\n this._growAfterOpen = false;\n this._flexibleDimensions = false;\n this._push = false;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\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 /** 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 this.overlayOutsideClick.next(event);\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 });\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._getFlexibleConnectedPositionStrategyOrigin()).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._getFlexibleConnectedPositionStrategyOrigin());\n this._updatePositionStrategy(strategy);\n return strategy;\n }\n _getFlexibleConnectedPositionStrategyOrigin() {\n if (this.origin instanceof CdkOverlayOrigin) {\n return this.origin.elementRef;\n } else {\n return this.origin;\n }\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.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.None, \"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\"],\n lockPosition: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayLockPosition\", \"lockPosition\"],\n flexibleDimensions: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\"],\n growAfterOpen: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\"],\n push: [i0.ɵɵInputFlags.None, \"cdkConnectedOverlayPush\", \"push\"]\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.ɵɵNgOnChangesFeature]\n });\n }\n }\n return CdkConnectedOverlay;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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};\nlet OverlayModule = /*#__PURE__*/(() => {\n class 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 return OverlayModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nlet FullscreenOverlayContainer = /*#__PURE__*/(() => {\n class 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 return FullscreenOverlayContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 { takeUntil, take } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ElementRef, Directive, Inject, Input, Optional, Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport * as i5 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i2 from '@angular/cdk/platform';\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport * as i3 from '@angular/cdk/a11y';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\nimport * as i1 from '@angular/cdk/overlay';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** Time in ms to throttle repositioning after scroll events. */\nconst _c0 = [\"tooltip\"];\nconst SCROLL_THROTTLE_MS = 20;\n/**\n * Creates an error to be thrown if the user supplied an invalid tooltip position.\n * @docs-private\n */\nfunction getMatTooltipInvalidPositionError(position) {\n return Error(`Tooltip position \"${position}\" is invalid.`);\n}\n/** Injection token that determines the scroll handling while a tooltip is visible. */\nconst MAT_TOOLTIP_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-tooltip-scroll-strategy');\n/** @docs-private */\nfunction MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition({\n scrollThrottle: SCROLL_THROTTLE_MS\n });\n}\n/** @docs-private */\nconst MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_TOOLTIP_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY\n};\n/** @docs-private */\nfunction MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY() {\n return {\n showDelay: 0,\n hideDelay: 0,\n touchendHideDelay: 1500\n };\n}\n/** Injection token to be used to override the default options for `matTooltip`. */\nconst MAT_TOOLTIP_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-tooltip-default-options', {\n providedIn: 'root',\n factory: MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY\n});\n/**\n * CSS class that will be attached to the overlay panel.\n * @deprecated\n * @breaking-change 13.0.0 remove this variable\n */\nconst TOOLTIP_PANEL_CLASS = 'mat-mdc-tooltip-panel';\nconst PANEL_CLASS = 'tooltip-panel';\n/** Options used to bind passive event listeners. */\nconst passiveListenerOptions = /*#__PURE__*/normalizePassiveListenerOptions({\n passive: true\n});\n/**\n * Time between the user putting the pointer on a tooltip\n * trigger and the long press event being fired.\n */\nconst LONGPRESS_DELAY = 500;\n// These constants were taken from MDC's `numbers` object. We can't import them from MDC,\n// because they have some top-level references to `window` which break during SSR.\nconst MIN_VIEWPORT_TOOLTIP_THRESHOLD = 8;\nconst UNBOUNDED_ANCHOR_GAP = 8;\nconst MIN_HEIGHT = 24;\nconst MAX_WIDTH = 200;\nlet _MatTooltipBase = /*#__PURE__*/(() => {\n class _MatTooltipBase {\n /** Allows the user to define the position of the tooltip relative to the parent element */\n get position() {\n return this._position;\n }\n set position(value) {\n if (value !== this._position) {\n this._position = value;\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n this._tooltipInstance?.show(0);\n this._overlayRef.updatePosition();\n }\n }\n }\n /**\n * Whether tooltip should be relative to the click or touch origin\n * instead of outside the element bounding box.\n */\n get positionAtOrigin() {\n return this._positionAtOrigin;\n }\n set positionAtOrigin(value) {\n this._positionAtOrigin = coerceBooleanProperty(value);\n this._detach();\n this._overlayRef = null;\n }\n /** Disables the display of the tooltip. */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n // If tooltip is disabled, hide immediately.\n if (this._disabled) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n }\n }\n /** The default delay in ms before showing the tooltip after show is called */\n get showDelay() {\n return this._showDelay;\n }\n set showDelay(value) {\n this._showDelay = coerceNumberProperty(value);\n }\n /** The default delay in ms before hiding the tooltip after hide is called */\n get hideDelay() {\n return this._hideDelay;\n }\n set hideDelay(value) {\n this._hideDelay = coerceNumberProperty(value);\n if (this._tooltipInstance) {\n this._tooltipInstance._mouseLeaveHideDelay = this._hideDelay;\n }\n }\n /** The message to be displayed in the tooltip */\n get message() {\n return this._message;\n }\n set message(value) {\n this._ariaDescriber.removeDescription(this._elementRef.nativeElement, this._message, 'tooltip');\n // If the message is not a string (e.g. number), convert it to a string and trim it.\n // Must convert with `String(value)`, not `${value}`, otherwise Closure Compiler optimises\n // away the string-conversion: https://github.com/angular/components/issues/20684\n this._message = value != null ? String(value).trim() : '';\n if (!this._message && this._isTooltipVisible()) {\n this.hide(0);\n } else {\n this._setupPointerEnterEventsIfNeeded();\n this._updateTooltipMessage();\n this._ngZone.runOutsideAngular(() => {\n // The `AriaDescriber` has some functionality that avoids adding a description if it's the\n // same as the `aria-label` of an element, however we can't know whether the tooltip trigger\n // has a data-bound `aria-label` or when it'll be set for the first time. We can avoid the\n // issue by deferring the description by a tick so Angular has time to set the `aria-label`.\n Promise.resolve().then(() => {\n this._ariaDescriber.describe(this._elementRef.nativeElement, this.message, 'tooltip');\n });\n });\n }\n }\n /** Classes to be passed to the tooltip. Supports the same syntax as `ngClass`. */\n get tooltipClass() {\n return this._tooltipClass;\n }\n set tooltipClass(value) {\n this._tooltipClass = value;\n if (this._tooltipInstance) {\n this._setTooltipClass(this._tooltipClass);\n }\n }\n constructor(_overlay, _elementRef, _scrollDispatcher, _viewContainerRef, _ngZone, _platform, _ariaDescriber, _focusMonitor, scrollStrategy, _dir, _defaultOptions, _document) {\n this._overlay = _overlay;\n this._elementRef = _elementRef;\n this._scrollDispatcher = _scrollDispatcher;\n this._viewContainerRef = _viewContainerRef;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._ariaDescriber = _ariaDescriber;\n this._focusMonitor = _focusMonitor;\n this._dir = _dir;\n this._defaultOptions = _defaultOptions;\n this._position = 'below';\n this._positionAtOrigin = false;\n this._disabled = false;\n this._viewInitialized = false;\n this._pointerExitEventsInitialized = false;\n this._viewportMargin = 8;\n this._cssClassPrefix = 'mat';\n /**\n * How touch gestures should be handled by the tooltip. On touch devices the tooltip directive\n * uses a long press gesture to show and hide, however it can conflict with the native browser\n * gestures. To work around the conflict, Angular Material disables native gestures on the\n * trigger, but that might not be desirable on particular elements (e.g. inputs and draggable\n * elements). The different values for this option configure the touch event handling as follows:\n * - `auto` - Enables touch gestures for all elements, but tries to avoid conflicts with native\n * browser gestures on particular elements. In particular, it allows text selection on inputs\n * and textareas, and preserves the native browser dragging on elements marked as `draggable`.\n * - `on` - Enables touch gestures for all elements and disables native\n * browser gestures with no exceptions.\n * - `off` - Disables touch gestures. Note that this will prevent the tooltip from\n * showing on touch devices.\n */\n this.touchGestures = 'auto';\n this._message = '';\n /** Manually-bound passive event listeners. */\n this._passiveListeners = [];\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n this._scrollStrategy = scrollStrategy;\n this._document = _document;\n if (_defaultOptions) {\n this._showDelay = _defaultOptions.showDelay;\n this._hideDelay = _defaultOptions.hideDelay;\n if (_defaultOptions.position) {\n this.position = _defaultOptions.position;\n }\n if (_defaultOptions.positionAtOrigin) {\n this.positionAtOrigin = _defaultOptions.positionAtOrigin;\n }\n if (_defaultOptions.touchGestures) {\n this.touchGestures = _defaultOptions.touchGestures;\n }\n }\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._overlayRef) {\n this._updatePosition(this._overlayRef);\n }\n });\n }\n ngAfterViewInit() {\n // This needs to happen after view init so the initial values for all inputs have been set.\n this._viewInitialized = true;\n this._setupPointerEnterEventsIfNeeded();\n this._focusMonitor.monitor(this._elementRef).pipe(takeUntil(this._destroyed)).subscribe(origin => {\n // Note that the focus monitor runs outside the Angular zone.\n if (!origin) {\n this._ngZone.run(() => this.hide(0));\n } else if (origin === 'keyboard') {\n this._ngZone.run(() => this.show());\n }\n });\n }\n /**\n * Dispose the tooltip when destroyed.\n */\n ngOnDestroy() {\n const nativeElement = this._elementRef.nativeElement;\n clearTimeout(this._touchstartTimeout);\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._tooltipInstance = null;\n }\n // Clean up the event listeners set in the constructor\n this._passiveListeners.forEach(([event, listener]) => {\n nativeElement.removeEventListener(event, listener, passiveListenerOptions);\n });\n this._passiveListeners.length = 0;\n this._destroyed.next();\n this._destroyed.complete();\n this._ariaDescriber.removeDescription(nativeElement, this.message, 'tooltip');\n this._focusMonitor.stopMonitoring(nativeElement);\n }\n /** Shows the tooltip after the delay in ms, defaults to tooltip-delay-show or 0ms if no input */\n show(delay = this.showDelay, origin) {\n if (this.disabled || !this.message || this._isTooltipVisible()) {\n this._tooltipInstance?._cancelPendingAnimations();\n return;\n }\n const overlayRef = this._createOverlay(origin);\n this._detach();\n this._portal = this._portal || new ComponentPortal(this._tooltipComponent, this._viewContainerRef);\n const instance = this._tooltipInstance = overlayRef.attach(this._portal).instance;\n instance._triggerElement = this._elementRef.nativeElement;\n instance._mouseLeaveHideDelay = this._hideDelay;\n instance.afterHidden().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._setTooltipClass(this._tooltipClass);\n this._updateTooltipMessage();\n instance.show(delay);\n }\n /** Hides the tooltip after the delay in ms, defaults to tooltip-delay-hide or 0ms if no input */\n hide(delay = this.hideDelay) {\n const instance = this._tooltipInstance;\n if (instance) {\n if (instance.isVisible()) {\n instance.hide(delay);\n } else {\n instance._cancelPendingAnimations();\n this._detach();\n }\n }\n }\n /** Shows/hides the tooltip */\n toggle(origin) {\n this._isTooltipVisible() ? this.hide() : this.show(undefined, origin);\n }\n /** Returns true if the tooltip is currently visible to the user */\n _isTooltipVisible() {\n return !!this._tooltipInstance && this._tooltipInstance.isVisible();\n }\n /** Create the overlay config and position strategy */\n _createOverlay(origin) {\n if (this._overlayRef) {\n const existingStrategy = this._overlayRef.getConfig().positionStrategy;\n if ((!this.positionAtOrigin || !origin) && existingStrategy._origin instanceof ElementRef) {\n return this._overlayRef;\n }\n this._detach();\n }\n const scrollableAncestors = this._scrollDispatcher.getAncestorScrollContainers(this._elementRef);\n // Create connected position strategy that listens for scroll events to reposition.\n const strategy = this._overlay.position().flexibleConnectedTo(this.positionAtOrigin ? origin || this._elementRef : this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(false).withViewportMargin(this._viewportMargin).withScrollableContainers(scrollableAncestors);\n strategy.positionChanges.pipe(takeUntil(this._destroyed)).subscribe(change => {\n this._updateCurrentPositionClass(change.connectionPair);\n if (this._tooltipInstance) {\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\n // After position changes occur and the overlay is clipped by\n // a parent scrollable then close the tooltip.\n this._ngZone.run(() => this.hide(0));\n }\n }\n });\n this._overlayRef = this._overlay.create({\n direction: this._dir,\n positionStrategy: strategy,\n panelClass: `${this._cssClassPrefix}-${PANEL_CLASS}`,\n scrollStrategy: this._scrollStrategy()\n });\n this._updatePosition(this._overlayRef);\n this._overlayRef.detachments().pipe(takeUntil(this._destroyed)).subscribe(() => this._detach());\n this._overlayRef.outsidePointerEvents().pipe(takeUntil(this._destroyed)).subscribe(() => this._tooltipInstance?._handleBodyInteraction());\n this._overlayRef.keydownEvents().pipe(takeUntil(this._destroyed)).subscribe(event => {\n if (this._isTooltipVisible() && event.keyCode === ESCAPE && !hasModifierKey(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._ngZone.run(() => this.hide(0));\n }\n });\n if (this._defaultOptions?.disableTooltipInteractivity) {\n this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`);\n }\n return this._overlayRef;\n }\n /** Detaches the currently-attached tooltip. */\n _detach() {\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n }\n this._tooltipInstance = null;\n }\n /** Updates the position of the current tooltip. */\n _updatePosition(overlayRef) {\n const position = overlayRef.getConfig().positionStrategy;\n const origin = this._getOrigin();\n const overlay = this._getOverlayPosition();\n position.withPositions([this._addOffset({\n ...origin.main,\n ...overlay.main\n }), this._addOffset({\n ...origin.fallback,\n ...overlay.fallback\n })]);\n }\n /** Adds the configured offset to a position. Used as a hook for child classes. */\n _addOffset(position) {\n return position;\n }\n /**\n * Returns the origin position and a fallback position based on the user's position preference.\n * The fallback position is the inverse of the origin (e.g. `'below' -> 'above'`).\n */\n _getOrigin() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let originPosition;\n if (position == 'above' || position == 'below') {\n originPosition = {\n originX: 'center',\n originY: position == 'above' ? 'top' : 'bottom'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n originPosition = {\n originX: 'start',\n originY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n originPosition = {\n originX: 'end',\n originY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(originPosition.originX, originPosition.originY);\n return {\n main: originPosition,\n fallback: {\n originX: x,\n originY: y\n }\n };\n }\n /** Returns the overlay position and a fallback position based on the user's preference */\n _getOverlayPosition() {\n const isLtr = !this._dir || this._dir.value == 'ltr';\n const position = this.position;\n let overlayPosition;\n if (position == 'above') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'bottom'\n };\n } else if (position == 'below') {\n overlayPosition = {\n overlayX: 'center',\n overlayY: 'top'\n };\n } else if (position == 'before' || position == 'left' && isLtr || position == 'right' && !isLtr) {\n overlayPosition = {\n overlayX: 'end',\n overlayY: 'center'\n };\n } else if (position == 'after' || position == 'right' && isLtr || position == 'left' && !isLtr) {\n overlayPosition = {\n overlayX: 'start',\n overlayY: 'center'\n };\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw getMatTooltipInvalidPositionError(position);\n }\n const {\n x,\n y\n } = this._invertPosition(overlayPosition.overlayX, overlayPosition.overlayY);\n return {\n main: overlayPosition,\n fallback: {\n overlayX: x,\n overlayY: y\n }\n };\n }\n /** Updates the tooltip message and repositions the overlay according to the new message length */\n _updateTooltipMessage() {\n // Must wait for the message to be painted to the tooltip so that the overlay can properly\n // calculate the correct positioning based on the size of the text.\n if (this._tooltipInstance) {\n this._tooltipInstance.message = this.message;\n this._tooltipInstance._markForCheck();\n this._ngZone.onMicrotaskEmpty.pipe(take(1), takeUntil(this._destroyed)).subscribe(() => {\n if (this._tooltipInstance) {\n this._overlayRef.updatePosition();\n }\n });\n }\n }\n /** Updates the tooltip class */\n _setTooltipClass(tooltipClass) {\n if (this._tooltipInstance) {\n this._tooltipInstance.tooltipClass = tooltipClass;\n this._tooltipInstance._markForCheck();\n }\n }\n /** Inverts an overlay position. */\n _invertPosition(x, y) {\n if (this.position === 'above' || this.position === 'below') {\n if (y === 'top') {\n y = 'bottom';\n } else if (y === 'bottom') {\n y = 'top';\n }\n } else {\n if (x === 'end') {\n x = 'start';\n } else if (x === 'start') {\n x = 'end';\n }\n }\n return {\n x,\n y\n };\n }\n /** Updates the class on the overlay panel based on the current position of the tooltip. */\n _updateCurrentPositionClass(connectionPair) {\n const {\n overlayY,\n originX,\n originY\n } = connectionPair;\n let newPosition;\n // If the overlay is in the middle along the Y axis,\n // it means that it's either before or after.\n if (overlayY === 'center') {\n // Note that since this information is used for styling, we want to\n // resolve `start` and `end` to their real values, otherwise consumers\n // would have to remember to do it themselves on each consumption.\n if (this._dir && this._dir.value === 'rtl') {\n newPosition = originX === 'end' ? 'left' : 'right';\n } else {\n newPosition = originX === 'start' ? 'left' : 'right';\n }\n } else {\n newPosition = overlayY === 'bottom' && originY === 'top' ? 'above' : 'below';\n }\n if (newPosition !== this._currentPosition) {\n const overlayRef = this._overlayRef;\n if (overlayRef) {\n const classPrefix = `${this._cssClassPrefix}-${PANEL_CLASS}-`;\n overlayRef.removePanelClass(classPrefix + this._currentPosition);\n overlayRef.addPanelClass(classPrefix + newPosition);\n }\n this._currentPosition = newPosition;\n }\n }\n /** Binds the pointer events to the tooltip trigger. */\n _setupPointerEnterEventsIfNeeded() {\n // Optimization: Defer hooking up events if there's no message or the tooltip is disabled.\n if (this._disabled || !this.message || !this._viewInitialized || this._passiveListeners.length) {\n return;\n }\n // The mouse events shouldn't be bound on mobile devices, because they can prevent the\n // first tap from firing its click event or can cause the tooltip to open for clicks.\n if (this._platformSupportsMouseEvents()) {\n this._passiveListeners.push(['mouseenter', event => {\n this._setupPointerExitEventsIfNeeded();\n let point = undefined;\n if (event.x !== undefined && event.y !== undefined) {\n point = event;\n }\n this.show(undefined, point);\n }]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n this._passiveListeners.push(['touchstart', event => {\n const touch = event.targetTouches?.[0];\n const origin = touch ? {\n x: touch.clientX,\n y: touch.clientY\n } : undefined;\n // Note that it's important that we don't `preventDefault` here,\n // because it can prevent click events from firing on the element.\n this._setupPointerExitEventsIfNeeded();\n clearTimeout(this._touchstartTimeout);\n this._touchstartTimeout = setTimeout(() => this.show(undefined, origin), LONGPRESS_DELAY);\n }]);\n }\n this._addListeners(this._passiveListeners);\n }\n _setupPointerExitEventsIfNeeded() {\n if (this._pointerExitEventsInitialized) {\n return;\n }\n this._pointerExitEventsInitialized = true;\n const exitListeners = [];\n if (this._platformSupportsMouseEvents()) {\n exitListeners.push(['mouseleave', event => {\n const newTarget = event.relatedTarget;\n if (!newTarget || !this._overlayRef?.overlayElement.contains(newTarget)) {\n this.hide();\n }\n }], ['wheel', event => this._wheelListener(event)]);\n } else if (this.touchGestures !== 'off') {\n this._disableNativeGesturesIfNecessary();\n const touchendListener = () => {\n clearTimeout(this._touchstartTimeout);\n this.hide(this._defaultOptions.touchendHideDelay);\n };\n exitListeners.push(['touchend', touchendListener], ['touchcancel', touchendListener]);\n }\n this._addListeners(exitListeners);\n this._passiveListeners.push(...exitListeners);\n }\n _addListeners(listeners) {\n listeners.forEach(([event, listener]) => {\n this._elementRef.nativeElement.addEventListener(event, listener, passiveListenerOptions);\n });\n }\n _platformSupportsMouseEvents() {\n return !this._platform.IOS && !this._platform.ANDROID;\n }\n /** Listener for the `wheel` event on the element. */\n _wheelListener(event) {\n if (this._isTooltipVisible()) {\n const elementUnderPointer = this._document.elementFromPoint(event.clientX, event.clientY);\n const element = this._elementRef.nativeElement;\n // On non-touch devices we depend on the `mouseleave` event to close the tooltip, but it\n // won't fire if the user scrolls away using the wheel without moving their cursor. We\n // work around it by finding the element under the user's cursor and closing the tooltip\n // if it's not the trigger.\n if (elementUnderPointer !== element && !element.contains(elementUnderPointer)) {\n this.hide();\n }\n }\n }\n /** Disables the native browser gestures, based on how the tooltip has been configured. */\n _disableNativeGesturesIfNecessary() {\n const gestures = this.touchGestures;\n if (gestures !== 'off') {\n const element = this._elementRef.nativeElement;\n const style = element.style;\n // If gestures are set to `auto`, we don't disable text selection on inputs and\n // textareas, because it prevents the user from typing into them on iOS Safari.\n if (gestures === 'on' || element.nodeName !== 'INPUT' && element.nodeName !== 'TEXTAREA') {\n style.userSelect = style.msUserSelect = style.webkitUserSelect = style.MozUserSelect = 'none';\n }\n // If we have `auto` gestures and the element uses native HTML dragging,\n // we don't set `-webkit-user-drag` because it prevents the native behavior.\n if (gestures === 'on' || !element.draggable) {\n style.webkitUserDrag = 'none';\n }\n style.touchAction = 'none';\n style.webkitTapHighlightColor = 'transparent';\n }\n }\n static {\n this.ɵfac = function _MatTooltipBase_Factory(t) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _MatTooltipBase,\n inputs: {\n position: [i0.ɵɵInputFlags.None, \"matTooltipPosition\", \"position\"],\n positionAtOrigin: [i0.ɵɵInputFlags.None, \"matTooltipPositionAtOrigin\", \"positionAtOrigin\"],\n disabled: [i0.ɵɵInputFlags.None, \"matTooltipDisabled\", \"disabled\"],\n showDelay: [i0.ɵɵInputFlags.None, \"matTooltipShowDelay\", \"showDelay\"],\n hideDelay: [i0.ɵɵInputFlags.None, \"matTooltipHideDelay\", \"hideDelay\"],\n touchGestures: [i0.ɵɵInputFlags.None, \"matTooltipTouchGestures\", \"touchGestures\"],\n message: [i0.ɵɵInputFlags.None, \"matTooltip\", \"message\"],\n tooltipClass: [i0.ɵɵInputFlags.None, \"matTooltipClass\", \"tooltipClass\"]\n }\n });\n }\n }\n return _MatTooltipBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Directive that attaches a material design tooltip to the host element. Animates the showing and\n * hiding of a tooltip provided position (defaults to below the element).\n *\n * https://material.io/design/components/tooltips.html\n */\nlet MatTooltip = /*#__PURE__*/(() => {\n class MatTooltip extends _MatTooltipBase {\n constructor(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document) {\n super(overlay, elementRef, scrollDispatcher, viewContainerRef, ngZone, platform, ariaDescriber, focusMonitor, scrollStrategy, dir, defaultOptions, _document);\n this._tooltipComponent = TooltipComponent;\n this._cssClassPrefix = 'mat-mdc';\n this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;\n }\n _addOffset(position) {\n const offset = UNBOUNDED_ANCHOR_GAP;\n const isLtr = !this._dir || this._dir.value == 'ltr';\n if (position.originY === 'top') {\n position.offsetY = -offset;\n } else if (position.originY === 'bottom') {\n position.offsetY = offset;\n } else if (position.originX === 'start') {\n position.offsetX = isLtr ? -offset : offset;\n } else if (position.originX === 'end') {\n position.offsetX = isLtr ? offset : -offset;\n }\n return position;\n }\n static {\n this.ɵfac = function MatTooltip_Factory(t) {\n return new (t || MatTooltip)(i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.AriaDescriber), i0.ɵɵdirectiveInject(i3.FocusMonitor), i0.ɵɵdirectiveInject(MAT_TOOLTIP_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i4.Directionality, 8), i0.ɵɵdirectiveInject(MAT_TOOLTIP_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatTooltip,\n selectors: [[\"\", \"matTooltip\", \"\"]],\n hostAttrs: [1, \"mat-mdc-tooltip-trigger\"],\n hostVars: 2,\n hostBindings: function MatTooltip_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-tooltip-disabled\", ctx.disabled);\n }\n },\n exportAs: [\"matTooltip\"],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatTooltip;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet _TooltipComponentBase = /*#__PURE__*/(() => {\n class _TooltipComponentBase {\n constructor(_changeDetectorRef, animationMode) {\n this._changeDetectorRef = _changeDetectorRef;\n /** Whether interactions on the page should close the tooltip */\n this._closeOnInteraction = false;\n /** Whether the tooltip is currently visible. */\n this._isVisible = false;\n /** Subject for notifying that the tooltip has been hidden from the view */\n this._onHide = new Subject();\n this._animationsDisabled = animationMode === 'NoopAnimations';\n }\n /**\n * Shows the tooltip with an animation originating from the provided origin\n * @param delay Amount of milliseconds to the delay showing the tooltip.\n */\n show(delay) {\n // Cancel the delayed hide if it is scheduled\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = setTimeout(() => {\n this._toggleVisibility(true);\n this._showTimeoutId = undefined;\n }, delay);\n }\n /**\n * Begins the animation to hide the tooltip after the provided delay in ms.\n * @param delay Amount of milliseconds to delay showing the tooltip.\n */\n hide(delay) {\n // Cancel the delayed show if it is scheduled\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n this._hideTimeoutId = setTimeout(() => {\n this._toggleVisibility(false);\n this._hideTimeoutId = undefined;\n }, delay);\n }\n /** Returns an observable that notifies when the tooltip has been hidden from view. */\n afterHidden() {\n return this._onHide;\n }\n /** Whether the tooltip is being displayed. */\n isVisible() {\n return this._isVisible;\n }\n ngOnDestroy() {\n this._cancelPendingAnimations();\n this._onHide.complete();\n this._triggerElement = null;\n }\n /**\n * Interactions on the HTML body should close the tooltip immediately as defined in the\n * material design spec.\n * https://material.io/design/components/tooltips.html#behavior\n */\n _handleBodyInteraction() {\n if (this._closeOnInteraction) {\n this.hide(0);\n }\n }\n /**\n * Marks that the tooltip needs to be checked in the next change detection run.\n * Mainly used for rendering the initial text before positioning a tooltip, which\n * can be problematic in components with OnPush change detection.\n */\n _markForCheck() {\n this._changeDetectorRef.markForCheck();\n }\n _handleMouseLeave({\n relatedTarget\n }) {\n if (!relatedTarget || !this._triggerElement.contains(relatedTarget)) {\n if (this.isVisible()) {\n this.hide(this._mouseLeaveHideDelay);\n } else {\n this._finalizeAnimation(false);\n }\n }\n }\n /**\n * Callback for when the timeout in this.show() gets completed.\n * This method is only needed by the mdc-tooltip, and so it is only implemented\n * in the mdc-tooltip, not here.\n */\n _onShow() {}\n /** Event listener dispatched when an animation on the tooltip finishes. */\n _handleAnimationEnd({\n animationName\n }) {\n if (animationName === this._showAnimation || animationName === this._hideAnimation) {\n this._finalizeAnimation(animationName === this._showAnimation);\n }\n }\n /** Cancels any pending animation sequences. */\n _cancelPendingAnimations() {\n if (this._showTimeoutId != null) {\n clearTimeout(this._showTimeoutId);\n }\n if (this._hideTimeoutId != null) {\n clearTimeout(this._hideTimeoutId);\n }\n this._showTimeoutId = this._hideTimeoutId = undefined;\n }\n /** Handles the cleanup after an animation has finished. */\n _finalizeAnimation(toVisible) {\n if (toVisible) {\n this._closeOnInteraction = true;\n } else if (!this.isVisible()) {\n this._onHide.next();\n }\n }\n /** Toggles the visibility of the tooltip element. */\n _toggleVisibility(isVisible) {\n // We set the classes directly here ourselves so that toggling the tooltip state\n // isn't bound by change detection. This allows us to hide it even if the\n // view ref has been detached from the CD tree.\n const tooltip = this._tooltip.nativeElement;\n const showClass = this._showAnimation;\n const hideClass = this._hideAnimation;\n tooltip.classList.remove(isVisible ? hideClass : showClass);\n tooltip.classList.add(isVisible ? showClass : hideClass);\n this._isVisible = isVisible;\n // It's common for internal apps to disable animations using `* { animation: none !important }`\n // which can break the opening sequence. Try to detect such cases and work around them.\n if (isVisible && !this._animationsDisabled && typeof getComputedStyle === 'function') {\n const styles = getComputedStyle(tooltip);\n // Use `getPropertyValue` to avoid issues with property renaming.\n if (styles.getPropertyValue('animation-duration') === '0s' || styles.getPropertyValue('animation-name') === 'none') {\n this._animationsDisabled = true;\n }\n }\n if (isVisible) {\n this._onShow();\n }\n if (this._animationsDisabled) {\n tooltip.classList.add('_mat-animation-noopable');\n this._finalizeAnimation(isVisible);\n }\n }\n static {\n this.ɵfac = function _TooltipComponentBase_Factory(t) {\n return new (t || _TooltipComponentBase)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: _TooltipComponentBase\n });\n }\n }\n return _TooltipComponentBase;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Internal component that wraps the tooltip's content.\n * @docs-private\n */\nlet TooltipComponent = /*#__PURE__*/(() => {\n class TooltipComponent extends _TooltipComponentBase {\n constructor(changeDetectorRef, _elementRef, animationMode) {\n super(changeDetectorRef, animationMode);\n this._elementRef = _elementRef;\n /* Whether the tooltip text overflows to multiple lines */\n this._isMultiline = false;\n this._showAnimation = 'mat-mdc-tooltip-show';\n this._hideAnimation = 'mat-mdc-tooltip-hide';\n }\n _onShow() {\n this._isMultiline = this._isTooltipMultiline();\n this._markForCheck();\n }\n /** Whether the tooltip text has overflown to the next line */\n _isTooltipMultiline() {\n const rect = this._elementRef.nativeElement.getBoundingClientRect();\n return rect.height > MIN_HEIGHT && rect.width >= MAX_WIDTH;\n }\n static {\n this.ɵfac = function TooltipComponent_Factory(t) {\n return new (t || TooltipComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TooltipComponent,\n selectors: [[\"mat-tooltip-component\"]],\n viewQuery: function TooltipComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tooltip = _t.first);\n }\n },\n hostAttrs: [\"aria-hidden\", \"true\"],\n hostVars: 2,\n hostBindings: function TooltipComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mouseleave\", function TooltipComponent_mouseleave_HostBindingHandler($event) {\n return ctx._handleMouseLeave($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"zoom\", ctx.isVisible() ? 1 : null);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 4,\n vars: 4,\n consts: [[\"tooltip\", \"\"], [1, \"mdc-tooltip\", \"mdc-tooltip--shown\", \"mat-mdc-tooltip\", 3, \"animationend\", \"ngClass\"], [1, \"mdc-tooltip__surface\", \"mdc-tooltip__surface-animation\"]],\n template: function TooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"animationend\", function TooltipComponent_Template_div_animationend_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleAnimationEnd($event));\n });\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-tooltip--multiline\", ctx._isMultiline);\n i0.ɵɵproperty(\"ngClass\", ctx.tooltipClass);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.message);\n }\n },\n dependencies: [i5.NgClass],\n styles: [\".mdc-tooltip__surface{word-break:break-all;word-break:var(--mdc-tooltip-word-break, normal);overflow-wrap:anywhere}.mdc-tooltip--showing-transition .mdc-tooltip__surface-animation{transition:opacity 150ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 150ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-tooltip--hide-transition .mdc-tooltip__surface-animation{transition:opacity 75ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-tooltip{position:fixed;display:none;z-index:9}.mdc-tooltip-wrapper--rich{position:relative}.mdc-tooltip--shown,.mdc-tooltip--showing,.mdc-tooltip--hide{display:inline-flex}.mdc-tooltip--shown.mdc-tooltip--rich,.mdc-tooltip--showing.mdc-tooltip--rich,.mdc-tooltip--hide.mdc-tooltip--rich{display:inline-block;left:-320px;position:absolute}.mdc-tooltip__surface{line-height:16px;padding:4px 8px;min-width:40px;max-width:200px;min-height:24px;max-height:40vh;box-sizing:border-box;overflow:hidden;text-align:center}.mdc-tooltip__surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\\\"\\\";pointer-events:none}@media screen and (forced-colors: active){.mdc-tooltip__surface::before{border-color:CanvasText}}.mdc-tooltip--rich .mdc-tooltip__surface{align-items:flex-start;display:flex;flex-direction:column;min-height:24px;min-width:40px;max-width:320px;position:relative}.mdc-tooltip--multiline .mdc-tooltip__surface{text-align:left}[dir=rtl] .mdc-tooltip--multiline .mdc-tooltip__surface,.mdc-tooltip--multiline .mdc-tooltip__surface[dir=rtl]{text-align:right}.mdc-tooltip__surface .mdc-tooltip__title{margin:0 8px}.mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(200px - (2 * 8px));margin:8px;text-align:left}[dir=rtl] .mdc-tooltip__surface .mdc-tooltip__content,.mdc-tooltip__surface .mdc-tooltip__content[dir=rtl]{text-align:right}.mdc-tooltip--rich .mdc-tooltip__surface .mdc-tooltip__content{max-width:calc(320px - (2 * 8px));align-self:stretch}.mdc-tooltip__surface .mdc-tooltip__content-link{text-decoration:none}.mdc-tooltip--rich-actions,.mdc-tooltip__content,.mdc-tooltip__title{z-index:1}.mdc-tooltip__surface-animation{opacity:0;transform:scale(0.8);will-change:transform,opacity}.mdc-tooltip--shown .mdc-tooltip__surface-animation{transform:scale(1);opacity:1}.mdc-tooltip--hide .mdc-tooltip__surface-animation{transform:scale(1)}.mdc-tooltip__caret-surface-top,.mdc-tooltip__caret-surface-bottom{position:absolute;height:24px;width:24px;transform:rotate(35deg) skewY(20deg) scaleX(0.9396926208)}.mdc-tooltip__caret-surface-top .mdc-elevation-overlay,.mdc-tooltip__caret-surface-bottom .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.mdc-tooltip__caret-surface-bottom{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);outline:1px solid rgba(0,0,0,0);z-index:-1}@media screen and (forced-colors: active){.mdc-tooltip__caret-surface-bottom{outline-color:CanvasText}}.mat-mdc-tooltip{--mdc-plain-tooltip-container-shape:4px;--mdc-plain-tooltip-supporting-text-line-height:16px}.mat-mdc-tooltip .mdc-tooltip__surface{background-color:var(--mdc-plain-tooltip-container-color)}.mat-mdc-tooltip .mdc-tooltip__surface{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__caret-surface-top,.mat-mdc-tooltip .mdc-tooltip__caret-surface-bottom{border-radius:var(--mdc-plain-tooltip-container-shape)}.mat-mdc-tooltip .mdc-tooltip__surface{color:var(--mdc-plain-tooltip-supporting-text-color)}.mat-mdc-tooltip .mdc-tooltip__surface{font-family:var(--mdc-plain-tooltip-supporting-text-font);line-height:var(--mdc-plain-tooltip-supporting-text-line-height);font-size:var(--mdc-plain-tooltip-supporting-text-size);font-weight:var(--mdc-plain-tooltip-supporting-text-weight);letter-spacing:var(--mdc-plain-tooltip-supporting-text-tracking)}.mat-mdc-tooltip{position:relative;transform:scale(0)}.mat-mdc-tooltip::before{content:\\\"\\\";top:0;right:0;bottom:0;left:0;z-index:-1;position:absolute}.mat-mdc-tooltip-panel-below .mat-mdc-tooltip::before{top:-8px}.mat-mdc-tooltip-panel-above .mat-mdc-tooltip::before{bottom:-8px}.mat-mdc-tooltip-panel-right .mat-mdc-tooltip::before{left:-8px}.mat-mdc-tooltip-panel-left .mat-mdc-tooltip::before{right:-8px}.mat-mdc-tooltip._mat-animation-noopable{animation:none;transform:scale(1)}.mat-mdc-tooltip-panel-non-interactive{pointer-events:none}@keyframes mat-mdc-tooltip-show{0%{opacity:0;transform:scale(0.8)}100%{opacity:1;transform:scale(1)}}@keyframes mat-mdc-tooltip-hide{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.8)}}.mat-mdc-tooltip-show{animation:mat-mdc-tooltip-show 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-mdc-tooltip-hide{animation:mat-mdc-tooltip-hide 75ms cubic-bezier(0.4, 0, 1, 1) forwards}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return TooltipComponent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by MatTooltip.\n * @docs-private\n */\nconst matTooltipAnimations = {\n /** Animation that transitions a tooltip in and out. */\n tooltipState: /*#__PURE__*/trigger('state', [\n /*#__PURE__*/\n // TODO(crisbeto): these values are based on MDC's CSS.\n // We should be able to use their styles directly once we land #19432.\n state('initial, void, hidden', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(0.8)'\n })), /*#__PURE__*/state('visible', /*#__PURE__*/style({\n transform: 'scale(1)'\n })), /*#__PURE__*/transition('* => visible', /*#__PURE__*/animate('150ms cubic-bezier(0, 0, 0.2, 1)')), /*#__PURE__*/transition('* => hidden', /*#__PURE__*/animate('75ms cubic-bezier(0.4, 0, 1, 1)'))])\n};\nlet MatTooltipModule = /*#__PURE__*/(() => {\n class MatTooltipModule {\n static {\n this.ɵfac = function MatTooltipModule_Factory(t) {\n return new (t || MatTooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatTooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],\n imports: [A11yModule, CommonModule, OverlayModule, MatCommonModule, MatCommonModule, CdkScrollableModule]\n });\n }\n }\n return MatTooltipModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_TOOLTIP_DEFAULT_OPTIONS, MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY, MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, MatTooltip, MatTooltipModule, SCROLL_THROTTLE_MS, TOOLTIP_PANEL_CLASS, TooltipComponent, _MatTooltipBase, _TooltipComponentBase, getMatTooltipInvalidPositionError, matTooltipAnimations };\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Applies CSS prefixes to appropriate style keys.\n *\n * Note: `-ms-`, `-moz` and `-webkit-box` are no longer supported. e.g.\n * {\n * display: -webkit-flex; NEW - Safari 6.1+. iOS 7.1+, BB10\n * display: flex; NEW, Spec - Firefox, Chrome, Opera\n * // display: -webkit-box; OLD - iOS 6-, Safari 3.1-6, BB7\n * // display: -ms-flexbox; TWEENER - IE 10\n * // display: -moz-flexbox; OLD - Firefox\n * }\n */\nfunction applyCssPrefixes(target) {\n for (let key in target) {\n let value = target[key] ?? '';\n switch (key) {\n case 'display':\n if (value === 'flex') {\n target['display'] = ['-webkit-flex', 'flex'];\n } else if (value === 'inline-flex') {\n target['display'] = ['-webkit-inline-flex', 'inline-flex'];\n } else {\n target['display'] = value;\n }\n break;\n case 'align-items':\n case 'align-self':\n case 'align-content':\n case 'flex':\n case 'flex-basis':\n case 'flex-flow':\n case 'flex-grow':\n case 'flex-shrink':\n case 'flex-wrap':\n case 'justify-content':\n target['-webkit-' + key] = value;\n break;\n case 'flex-direction':\n target['-webkit-flex-direction'] = value;\n target['flex-direction'] = value;\n break;\n case 'order':\n target['order'] = target['-webkit-' + key] = isNaN(+value) ? '0' : value;\n break;\n }\n }\n return target;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst INLINE = 'inline';\nconst LAYOUT_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'];\n/**\n * Validate the direction|'direction wrap' value and then update the host's inline flexbox styles\n */\nfunction buildLayoutCSS(value) {\n let [direction, wrap, isInline] = validateValue(value);\n return buildCSS(direction, wrap, isInline);\n}\n/**\n * Validate the value to be one of the acceptable value options\n * Use default fallback of 'row'\n */\nfunction validateValue(value) {\n value = value?.toLowerCase() ?? '';\n let [direction, wrap, inline] = value.split(' ');\n // First value must be the `flex-direction`\n if (!LAYOUT_VALUES.find(x => x === direction)) {\n direction = LAYOUT_VALUES[0];\n }\n if (wrap === INLINE) {\n wrap = inline !== INLINE ? inline : '';\n inline = INLINE;\n }\n return [direction, validateWrapValue(wrap), !!inline];\n}\n/**\n * Determine if the validated, flex-direction value specifies\n * a horizontal/row flow.\n */\nfunction isFlowHorizontal(value) {\n let [flow] = validateValue(value);\n return flow.indexOf('row') > -1;\n}\n/**\n * Convert layout-wrap='
' to expected flex-wrap style\n */\nfunction validateWrapValue(value) {\n if (!!value) {\n switch (value.toLowerCase()) {\n case 'reverse':\n case 'wrap-reverse':\n case 'reverse-wrap':\n value = 'wrap-reverse';\n break;\n case 'no':\n case 'none':\n case 'nowrap':\n value = 'nowrap';\n break;\n // All other values fallback to 'wrap'\n default:\n value = 'wrap';\n break;\n }\n }\n return value;\n}\n/**\n * Build the CSS that should be assigned to the element instance\n * BUG:\n * 1) min-height on a column flex container won’t apply to its flex item children in IE 10-11.\n * Use height instead if possible; height : vh;\n *\n * This way any padding or border specified on the child elements are\n * laid out and drawn inside that element's specified width and height.\n */\nfunction buildCSS(direction, wrap = null, inline = false) {\n return {\n display: inline ? 'inline-flex' : 'flex',\n 'box-sizing': 'border-box',\n 'flex-direction': direction,\n 'flex-wrap': wrap || null\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param dest The object which will have properties copied to it.\n * @param sources The source objects from which properties will be copied.\n */\nfunction extendObject(dest, ...sources) {\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (let source of sources) {\n if (source != null) {\n for (let key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n return dest;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { INLINE, LAYOUT_VALUES, applyCssPrefixes, buildLayoutCSS, extendObject, isFlowHorizontal, validateValue, validateWrapValue };\n","import * as i0 from '@angular/core';\nimport { APP_BOOTSTRAP_LISTENER, PLATFORM_ID, NgModule, Injectable, InjectionToken, Inject, inject, Directive } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT, isPlatformServer } from '@angular/common';\nimport { BehaviorSubject, Observable, merge, Subject, asapScheduler, of, fromEvent } from 'rxjs';\nimport { applyCssPrefixes, extendObject, buildLayoutCSS } from '@angular/flex-layout/_private-utils';\nimport { filter, tap, debounceTime, switchMap, map, distinctUntilChanged, takeUntil, take } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Find all of the server-generated stylings, if any, and remove them\n * This will be in the form of inline classes and the style block in the\n * head of the DOM\n */\nfunction removeStyles(_document, platformId) {\n return () => {\n if (isPlatformBrowser(platformId)) {\n const elements = Array.from(_document.querySelectorAll(`[class*=${CLASS_NAME}]`));\n // RegExp constructor should only be used if passing a variable to the constructor.\n // When using static regular expression it is more performant to use reg exp literal.\n // This is also needed to provide Safari 9 compatibility, please see\n // https://stackoverflow.com/questions/37919802 for more discussion.\n const classRegex = /\\bflex-layout-.+?\\b/g;\n elements.forEach(el => {\n el.classList.contains(`${CLASS_NAME}ssr`) && el.parentNode ? el.parentNode.removeChild(el) : el.className.replace(classRegex, '');\n });\n }\n };\n}\n/**\n * Provider to remove SSR styles on the browser\n */\nconst BROWSER_PROVIDER = {\n provide: APP_BOOTSTRAP_LISTENER,\n useFactory: removeStyles,\n deps: [DOCUMENT, PLATFORM_ID],\n multi: true\n};\nconst CLASS_NAME = 'flex-layout-';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * *****************************************************************\n * Define module for common Angular Layout utilities\n * *****************************************************************\n */\nlet CoreModule = /*#__PURE__*/(() => {\n class CoreModule {}\n CoreModule.ɵfac = function CoreModule_Factory(t) {\n return new (t || CoreModule)();\n };\n CoreModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CoreModule\n });\n CoreModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [BROWSER_PROVIDER]\n });\n return CoreModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Class instances emitted [to observers] for each mql notification\n */\nclass MediaChange {\n /**\n * @param matches whether the mediaQuery is currently activated\n * @param mediaQuery e.g. (min-width: 600px) and (max-width: 959px)\n * @param mqAlias e.g. gt-sm, md, gt-lg\n * @param suffix e.g. GtSM, Md, GtLg\n * @param priority the priority of activation for the given breakpoint\n */\n constructor(matches = false, mediaQuery = 'all', mqAlias = '', suffix = '', priority = 0) {\n this.matches = matches;\n this.mediaQuery = mediaQuery;\n this.mqAlias = mqAlias;\n this.suffix = suffix;\n this.priority = priority;\n this.property = '';\n }\n /** Create an exact copy of the MediaChange */\n clone() {\n return new MediaChange(this.matches, this.mediaQuery, this.mqAlias, this.suffix);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Utility to emulate a CSS stylesheet\n *\n * This utility class stores all of the styles for a given HTML element\n * as a readonly `stylesheet` map.\n */\nlet StylesheetMap = /*#__PURE__*/(() => {\n class StylesheetMap {\n constructor() {\n this.stylesheet = new Map();\n }\n /**\n * Add an individual style to an HTML element\n */\n addStyleToElement(element, style, value) {\n const stylesheet = this.stylesheet.get(element);\n if (stylesheet) {\n stylesheet.set(style, value);\n } else {\n this.stylesheet.set(element, new Map([[style, value]]));\n }\n }\n /**\n * Clear the virtual stylesheet\n */\n clearStyles() {\n this.stylesheet.clear();\n }\n /**\n * Retrieve a given style for an HTML element\n */\n getStyleForElement(el, styleName) {\n const styles = this.stylesheet.get(el);\n let value = '';\n if (styles) {\n const style = styles.get(styleName);\n if (typeof style === 'number' || typeof style === 'string') {\n value = style + '';\n }\n }\n return value;\n }\n }\n StylesheetMap.ɵfac = function StylesheetMap_Factory(t) {\n return new (t || StylesheetMap)();\n };\n StylesheetMap.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StylesheetMap,\n factory: StylesheetMap.ɵfac,\n providedIn: 'root'\n });\n return StylesheetMap;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_CONFIG = {\n addFlexToParent: true,\n addOrientationBps: false,\n disableDefaultBps: false,\n disableVendorPrefixes: false,\n serverLoaded: false,\n useColumnBasisZero: true,\n printWithBreakpoints: [],\n mediaTriggerAutoRestore: true,\n ssrObserveBreakpoints: [],\n // This is disabled by default because otherwise the multiplier would\n // run for all users, regardless of whether they're using this feature.\n // Instead, we disable it by default, which requires this ugly cast.\n multiplier: undefined,\n defaultUnit: 'px',\n detectLayoutDisplay: false\n};\nconst LAYOUT_CONFIG = /*#__PURE__*/new InjectionToken('Flex Layout token, config options for the library', {\n providedIn: 'root',\n factory: () => DEFAULT_CONFIG\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Token that is provided to tell whether the FlexLayoutServerModule\n * has been included in the bundle\n *\n * NOTE: This can be manually provided to disable styles when using SSR\n */\nconst SERVER_TOKEN = /*#__PURE__*/new InjectionToken('FlexLayoutServerLoaded', {\n providedIn: 'root',\n factory: () => false\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst BREAKPOINT = /*#__PURE__*/new InjectionToken('Flex Layout token, collect all breakpoints into one provider', {\n providedIn: 'root',\n factory: () => null\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * For the specified MediaChange, make sure it contains the breakpoint alias\n * and suffix (if available).\n */\nfunction mergeAlias(dest, source) {\n dest = dest?.clone() ?? new MediaChange();\n if (source) {\n dest.mqAlias = source.alias;\n dest.mediaQuery = source.mediaQuery;\n dest.suffix = source.suffix;\n dest.priority = source.priority;\n }\n return dest;\n}\n\n/** A class that encapsulates CSS style generation for common directives */\nclass StyleBuilder {\n constructor() {\n /** Whether to cache the generated output styles */\n this.shouldCache = true;\n }\n /**\n * Run a side effect computation given the input string and the computed styles\n * from the build task and the host configuration object\n * NOTE: This should be a no-op unless an algorithm is provided in a subclass\n */\n sideEffect(_input, _styles, _parent) {}\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet StyleUtils = /*#__PURE__*/(() => {\n class StyleUtils {\n constructor(_serverStylesheet, _serverModuleLoaded, _platformId, layoutConfig) {\n this._serverStylesheet = _serverStylesheet;\n this._serverModuleLoaded = _serverModuleLoaded;\n this._platformId = _platformId;\n this.layoutConfig = layoutConfig;\n }\n /**\n * Applies styles given via string pair or object map to the directive element\n */\n applyStyleToElement(element, style, value = null) {\n let styles = {};\n if (typeof style === 'string') {\n styles[style] = value;\n style = styles;\n }\n styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n this._applyMultiValueStyleToElement(styles, element);\n }\n /**\n * Applies styles given via string pair or object map to the directive's element\n */\n applyStyleToElements(style, elements = []) {\n const styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n elements.forEach(el => {\n this._applyMultiValueStyleToElement(styles, el);\n });\n }\n /**\n * Determine the DOM element's Flexbox flow (flex-direction)\n *\n * Check inline style first then check computed (stylesheet) style\n */\n getFlowDirection(target) {\n const query = 'flex-direction';\n let value = this.lookupStyle(target, query);\n const hasInlineValue = this.lookupInlineStyle(target, query) || isPlatformServer(this._platformId) && this._serverModuleLoaded ? value : '';\n return [value || 'row', hasInlineValue];\n }\n hasWrap(target) {\n const query = 'flex-wrap';\n return this.lookupStyle(target, query) === 'wrap';\n }\n /**\n * Find the DOM element's raw attribute value (if any)\n */\n lookupAttributeValue(element, attribute) {\n return element.getAttribute(attribute) ?? '';\n }\n /**\n * Find the DOM element's inline style value (if any)\n */\n lookupInlineStyle(element, styleName) {\n return isPlatformBrowser(this._platformId) ? element.style.getPropertyValue(styleName) : getServerStyle(element, styleName);\n }\n /**\n * Determine the inline or inherited CSS style\n * NOTE: platform-server has no implementation for getComputedStyle\n */\n lookupStyle(element, styleName, inlineOnly = false) {\n let value = '';\n if (element) {\n let immediateValue = value = this.lookupInlineStyle(element, styleName);\n if (!immediateValue) {\n if (isPlatformBrowser(this._platformId)) {\n if (!inlineOnly) {\n value = getComputedStyle(element).getPropertyValue(styleName);\n }\n } else {\n if (this._serverModuleLoaded) {\n value = this._serverStylesheet.getStyleForElement(element, styleName);\n }\n }\n }\n }\n // Note: 'inline' is the default of all elements, unless UA stylesheet overrides;\n // in which case getComputedStyle() should determine a valid value.\n return value ? value.trim() : '';\n }\n /**\n * Applies the styles to the element. The styles object map may contain an array of values\n * Each value will be added as element style\n * Keys are sorted to add prefixed styles (like -webkit-x) first, before the standard ones\n */\n _applyMultiValueStyleToElement(styles, element) {\n Object.keys(styles).sort().forEach(key => {\n const el = styles[key];\n const values = Array.isArray(el) ? el : [el];\n values.sort();\n for (let value of values) {\n value = value ? value + '' : '';\n if (isPlatformBrowser(this._platformId) || !this._serverModuleLoaded) {\n isPlatformBrowser(this._platformId) ? element.style.setProperty(key, value) : setServerStyle(element, key, value);\n } else {\n this._serverStylesheet.addStyleToElement(element, key, value);\n }\n }\n });\n }\n }\n StyleUtils.ɵfac = function StyleUtils_Factory(t) {\n return new (t || StyleUtils)(i0.ɵɵinject(StylesheetMap), i0.ɵɵinject(SERVER_TOKEN), i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(LAYOUT_CONFIG));\n };\n StyleUtils.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StyleUtils,\n factory: StyleUtils.ɵfac,\n providedIn: 'root'\n });\n return StyleUtils;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction getServerStyle(element, styleName) {\n const styleMap = readStyleAttribute(element);\n return styleMap[styleName] ?? '';\n}\nfunction setServerStyle(element, styleName, styleValue) {\n styleName = styleName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n const styleMap = readStyleAttribute(element);\n styleMap[styleName] = styleValue ?? '';\n writeStyleAttribute(element, styleMap);\n}\nfunction writeStyleAttribute(element, styleMap) {\n let styleAttrValue = '';\n for (const key in styleMap) {\n const newValue = styleMap[key];\n if (newValue) {\n styleAttrValue += `${key}:${styleMap[key]};`;\n }\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction readStyleAttribute(element) {\n const styleMap = {};\n const styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n const styleList = styleAttribute.split(/;+/g);\n for (let i = 0; i < styleList.length; i++) {\n const style = styleList[i].trim();\n if (style.length > 0) {\n const colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(`Invalid CSS style: ${style}`);\n }\n const name = style.substr(0, colonIndex).trim();\n styleMap[name] = style.substr(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** HOF to sort the breakpoints by descending priority */\nfunction sortDescendingPriority(a, b) {\n const priorityA = a ? a.priority || 0 : 0;\n const priorityB = b ? b.priority || 0 : 0;\n return priorityB - priorityA;\n}\n/** HOF to sort the breakpoints by ascending priority */\nfunction sortAscendingPriority(a, b) {\n const pA = a.priority || 0;\n const pB = b.priority || 0;\n return pA - pB;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * MediaMonitor configures listeners to mediaQuery changes and publishes an Observable facade to\n * convert mediaQuery change callbacks to subscriber notifications. These notifications will be\n * performed within the ng Zone to trigger change detections and component updates.\n *\n * NOTE: both mediaQuery activations and de-activations are announced in notifications\n */\nlet MatchMedia = /*#__PURE__*/(() => {\n class MatchMedia {\n constructor(_zone, _platformId, _document) {\n this._zone = _zone;\n this._platformId = _platformId;\n this._document = _document;\n /** Initialize source with 'all' so all non-responsive APIs trigger style updates */\n this.source = new BehaviorSubject(new MediaChange(true));\n this.registry = new Map();\n this.pendingRemoveListenerFns = [];\n this._observable$ = this.source.asObservable();\n }\n /**\n * Publish list of all current activations\n */\n get activations() {\n const results = [];\n this.registry.forEach((mql, key) => {\n if (mql.matches) {\n results.push(key);\n }\n });\n return results;\n }\n /**\n * For the specified mediaQuery?\n */\n isActive(mediaQuery) {\n const mql = this.registry.get(mediaQuery);\n return mql?.matches ?? this.registerQuery(mediaQuery).some(m => m.matches);\n }\n /**\n * External observers can watch for all (or a specific) mql changes.\n * Typically used by the MediaQueryAdaptor; optionally available to components\n * who wish to use the MediaMonitor as mediaMonitor$ observable service.\n *\n * Use deferred registration process to register breakpoints only on subscription\n * This logic also enforces logic to register all mediaQueries BEFORE notify\n * subscribers of notifications.\n */\n observe(mqList, filterOthers = false) {\n if (mqList && mqList.length) {\n const matchMedia$ = this._observable$.pipe(filter(change => !filterOthers ? true : mqList.indexOf(change.mediaQuery) > -1));\n const registration$ = new Observable(observer => {\n const matches = this.registerQuery(mqList);\n if (matches.length) {\n const lastChange = matches.pop();\n matches.forEach(e => {\n observer.next(e);\n });\n this.source.next(lastChange); // last match is cached\n }\n observer.complete();\n });\n return merge(registration$, matchMedia$);\n }\n return this._observable$;\n }\n /**\n * Based on the BreakPointRegistry provider, register internal listeners for each unique\n * mediaQuery. Each listener emits specific MediaChange data to observers\n */\n registerQuery(mediaQuery) {\n const list = Array.isArray(mediaQuery) ? mediaQuery : [mediaQuery];\n const matches = [];\n buildQueryCss(list, this._document);\n list.forEach(query => {\n const onMQLEvent = e => {\n this._zone.run(() => this.source.next(new MediaChange(e.matches, query)));\n };\n let mql = this.registry.get(query);\n if (!mql) {\n mql = this.buildMQL(query);\n mql.addListener(onMQLEvent);\n this.pendingRemoveListenerFns.push(() => mql.removeListener(onMQLEvent));\n this.registry.set(query, mql);\n }\n if (mql.matches) {\n matches.push(new MediaChange(true, query));\n }\n });\n return matches;\n }\n ngOnDestroy() {\n let fn;\n while (fn = this.pendingRemoveListenerFns.pop()) {\n fn();\n }\n }\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n buildMQL(query) {\n return constructMql(query, isPlatformBrowser(this._platformId));\n }\n }\n MatchMedia.ɵfac = function MatchMedia_Factory(t) {\n return new (t || MatchMedia)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(DOCUMENT));\n };\n MatchMedia.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MatchMedia,\n factory: MatchMedia.ɵfac,\n providedIn: 'root'\n });\n return MatchMedia;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Private global registry for all dynamically-created, injected style tags\n * @see prepare(query)\n */\nconst ALL_STYLES = {};\n/**\n * For Webkit engines that only trigger the MediaQueryList Listener\n * when there is at least one CSS selector for the respective media query.\n *\n * @param mediaQueries\n * @param _document\n */\nfunction buildQueryCss(mediaQueries, _document) {\n const list = mediaQueries.filter(it => !ALL_STYLES[it]);\n if (list.length > 0) {\n const query = list.join(', ');\n try {\n const styleEl = _document.createElement('style');\n styleEl.setAttribute('type', 'text/css');\n if (!styleEl.styleSheet) {\n const cssText = `\n/*\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\n see http://bit.ly/2sd4HMP\n*/\n@media ${query} {.fx-query-test{ }}\n`;\n styleEl.appendChild(_document.createTextNode(cssText));\n }\n _document.head.appendChild(styleEl);\n // Store in private global registry\n list.forEach(mq => ALL_STYLES[mq] = styleEl);\n } catch (e) {\n console.error(e);\n }\n }\n}\nfunction buildMockMql(query) {\n const et = new EventTarget();\n et.matches = query === 'all' || query === '';\n et.media = query;\n et.addListener = () => {};\n et.removeListener = () => {};\n et.addEventListener = () => {};\n et.dispatchEvent = () => false;\n et.onchange = null;\n return et;\n}\nfunction constructMql(query, isBrowser) {\n const canListen = isBrowser && !!window.matchMedia('all').addListener;\n return canListen ? window.matchMedia(query) : buildMockMql(query);\n}\n\n/**\n * NOTE: Smaller ranges have HIGHER priority since the match is more specific\n */\nconst DEFAULT_BREAKPOINTS = [{\n alias: 'xs',\n mediaQuery: 'screen and (min-width: 0px) and (max-width: 599.98px)',\n priority: 1000\n}, {\n alias: 'sm',\n mediaQuery: 'screen and (min-width: 600px) and (max-width: 959.98px)',\n priority: 900\n}, {\n alias: 'md',\n mediaQuery: 'screen and (min-width: 960px) and (max-width: 1279.98px)',\n priority: 800\n}, {\n alias: 'lg',\n mediaQuery: 'screen and (min-width: 1280px) and (max-width: 1919.98px)',\n priority: 700\n}, {\n alias: 'xl',\n mediaQuery: 'screen and (min-width: 1920px) and (max-width: 4999.98px)',\n priority: 600\n}, {\n alias: 'lt-sm',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 599.98px)',\n priority: 950\n}, {\n alias: 'lt-md',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 959.98px)',\n priority: 850\n}, {\n alias: 'lt-lg',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 1279.98px)',\n priority: 750\n}, {\n alias: 'lt-xl',\n overlapping: true,\n priority: 650,\n mediaQuery: 'screen and (max-width: 1919.98px)'\n}, {\n alias: 'gt-xs',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 600px)',\n priority: -950\n}, {\n alias: 'gt-sm',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 960px)',\n priority: -850\n}, {\n alias: 'gt-md',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1280px)',\n priority: -750\n}, {\n alias: 'gt-lg',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1920px)',\n priority: -650\n}];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* tslint:disable */\nconst HANDSET_PORTRAIT = '(orientation: portrait) and (max-width: 599.98px)';\nconst HANDSET_LANDSCAPE = '(orientation: landscape) and (max-width: 959.98px)';\nconst TABLET_PORTRAIT = '(orientation: portrait) and (min-width: 600px) and (max-width: 839.98px)';\nconst TABLET_LANDSCAPE = '(orientation: landscape) and (min-width: 960px) and (max-width: 1279.98px)';\nconst WEB_PORTRAIT = '(orientation: portrait) and (min-width: 840px)';\nconst WEB_LANDSCAPE = '(orientation: landscape) and (min-width: 1280px)';\nconst ScreenTypes = {\n 'HANDSET': `${HANDSET_PORTRAIT}, ${HANDSET_LANDSCAPE}`,\n 'TABLET': `${TABLET_PORTRAIT} , ${TABLET_LANDSCAPE}`,\n 'WEB': `${WEB_PORTRAIT}, ${WEB_LANDSCAPE} `,\n 'HANDSET_PORTRAIT': `${HANDSET_PORTRAIT}`,\n 'TABLET_PORTRAIT': `${TABLET_PORTRAIT} `,\n 'WEB_PORTRAIT': `${WEB_PORTRAIT}`,\n 'HANDSET_LANDSCAPE': `${HANDSET_LANDSCAPE}`,\n 'TABLET_LANDSCAPE': `${TABLET_LANDSCAPE}`,\n 'WEB_LANDSCAPE': `${WEB_LANDSCAPE}`\n};\n/**\n * Extended Breakpoints for handset/tablets with landscape or portrait orientations\n */\nconst ORIENTATION_BREAKPOINTS = [{\n 'alias': 'handset',\n priority: 2000,\n 'mediaQuery': ScreenTypes.HANDSET\n}, {\n 'alias': 'handset.landscape',\n priority: 2000,\n 'mediaQuery': ScreenTypes.HANDSET_LANDSCAPE\n}, {\n 'alias': 'handset.portrait',\n priority: 2000,\n 'mediaQuery': ScreenTypes.HANDSET_PORTRAIT\n}, {\n 'alias': 'tablet',\n priority: 2100,\n 'mediaQuery': ScreenTypes.TABLET\n}, {\n 'alias': 'tablet.landscape',\n priority: 2100,\n 'mediaQuery': ScreenTypes.TABLET_LANDSCAPE\n}, {\n 'alias': 'tablet.portrait',\n priority: 2100,\n 'mediaQuery': ScreenTypes.TABLET_PORTRAIT\n}, {\n 'alias': 'web',\n priority: 2200,\n 'mediaQuery': ScreenTypes.WEB,\n overlapping: true\n}, {\n 'alias': 'web.landscape',\n priority: 2200,\n 'mediaQuery': ScreenTypes.WEB_LANDSCAPE,\n overlapping: true\n}, {\n 'alias': 'web.portrait',\n priority: 2200,\n 'mediaQuery': ScreenTypes.WEB_PORTRAIT,\n overlapping: true\n}];\nconst ALIAS_DELIMITERS = /(\\.|-|_)/g;\nfunction firstUpperCase(part) {\n let first = part.length > 0 ? part.charAt(0) : '';\n let remainder = part.length > 1 ? part.slice(1) : '';\n return first.toUpperCase() + remainder;\n}\n/**\n * Converts snake-case to SnakeCase.\n * @param name Text to UpperCamelCase\n */\nfunction camelCase(name) {\n return name.replace(ALIAS_DELIMITERS, '|').split('|').map(firstUpperCase).join('');\n}\n/**\n * For each breakpoint, ensure that a Suffix is defined;\n * fallback to UpperCamelCase the unique Alias value\n */\nfunction validateSuffixes(list) {\n list.forEach(bp => {\n if (!bp.suffix) {\n bp.suffix = camelCase(bp.alias); // create Suffix value based on alias\n bp.overlapping = !!bp.overlapping; // ensure default value\n }\n });\n return list;\n}\n/**\n * Merge a custom breakpoint list with the default list based on unique alias values\n * - Items are added if the alias is not in the default list\n * - Items are merged with the custom override if the alias exists in the default list\n */\nfunction mergeByAlias(defaults, custom = []) {\n const dict = {};\n defaults.forEach(bp => {\n dict[bp.alias] = bp;\n });\n // Merge custom breakpoints\n custom.forEach(bp => {\n if (dict[bp.alias]) {\n extendObject(dict[bp.alias], bp);\n } else {\n dict[bp.alias] = bp;\n }\n });\n return validateSuffixes(Object.keys(dict).map(k => dict[k]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection token unique to the flex-layout library.\n * Use this token when build a custom provider (see below).\n */\nconst BREAKPOINTS = /*#__PURE__*/new InjectionToken('Token (@angular/flex-layout) Breakpoints', {\n providedIn: 'root',\n factory: () => {\n const breakpoints = inject(BREAKPOINT);\n const layoutConfig = inject(LAYOUT_CONFIG);\n const bpFlattenArray = [].concat.apply([], (breakpoints || []).map(v => Array.isArray(v) ? v : [v]));\n const builtIns = (layoutConfig.disableDefaultBps ? [] : DEFAULT_BREAKPOINTS).concat(layoutConfig.addOrientationBps ? ORIENTATION_BREAKPOINTS : []);\n return mergeByAlias(builtIns, bpFlattenArray);\n }\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Registry of 1..n MediaQuery breakpoint ranges\n * This is published as a provider and may be overridden from custom, application-specific ranges\n *\n */\nlet BreakPointRegistry = /*#__PURE__*/(() => {\n class BreakPointRegistry {\n constructor(list) {\n /**\n * Memoized BreakPoint Lookups\n */\n this.findByMap = new Map();\n this.items = [...list].sort(sortAscendingPriority);\n }\n /**\n * Search breakpoints by alias (e.g. gt-xs)\n */\n findByAlias(alias) {\n return !alias ? null : this.findWithPredicate(alias, bp => bp.alias === alias);\n }\n findByQuery(query) {\n return this.findWithPredicate(query, bp => bp.mediaQuery === query);\n }\n /**\n * Get all the breakpoints whose ranges could overlapping `normal` ranges;\n * e.g. gt-sm overlaps md, lg, and xl\n */\n get overlappings() {\n return this.items.filter(it => it.overlapping);\n }\n /**\n * Get list of all registered (non-empty) breakpoint aliases\n */\n get aliases() {\n return this.items.map(it => it.alias);\n }\n /**\n * Aliases are mapped to properties using suffixes\n * e.g. 'gt-sm' for property 'layout' uses suffix 'GtSm'\n * for property layoutGtSM.\n */\n get suffixes() {\n return this.items.map(it => it?.suffix ?? '');\n }\n /**\n * Memoized lookup using custom predicate function\n */\n findWithPredicate(key, searchFn) {\n let response = this.findByMap.get(key);\n if (!response) {\n response = this.items.find(searchFn) ?? null;\n this.findByMap.set(key, response);\n }\n return response ?? null;\n }\n }\n BreakPointRegistry.ɵfac = function BreakPointRegistry_Factory(t) {\n return new (t || BreakPointRegistry)(i0.ɵɵinject(BREAKPOINTS));\n };\n BreakPointRegistry.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BreakPointRegistry,\n factory: BreakPointRegistry.ɵfac,\n providedIn: 'root'\n });\n return BreakPointRegistry;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PRINT = 'print';\nconst BREAKPOINT_PRINT = {\n alias: PRINT,\n mediaQuery: PRINT,\n priority: 1000\n};\n/**\n * PrintHook - Use to intercept print MediaQuery activations and force\n * layouts to render with the specified print alias/breakpoint\n *\n * Used in MediaMarshaller and MediaObserver\n */\nlet PrintHook = /*#__PURE__*/(() => {\n class PrintHook {\n constructor(breakpoints, layoutConfig, _document) {\n this.breakpoints = breakpoints;\n this.layoutConfig = layoutConfig;\n this._document = _document;\n // registeredBeforeAfterPrintHooks tracks if we registered the `beforeprint`\n // and `afterprint` event listeners.\n this.registeredBeforeAfterPrintHooks = false;\n // isPrintingBeforeAfterEvent is used to track if we are printing from within\n // a `beforeprint` event handler. This prevents the typical `stopPrinting`\n // form `interceptEvents` so that printing is not stopped while the dialog\n // is still open. This is an extension of the `isPrinting` property on\n // browsers which support `beforeprint` and `afterprint` events.\n this.isPrintingBeforeAfterEvent = false;\n this.beforePrintEventListeners = [];\n this.afterPrintEventListeners = [];\n this.formerActivations = null;\n // Is this service currently in print mode\n this.isPrinting = false;\n this.queue = new PrintQueue();\n this.deactivations = [];\n }\n /** Add 'print' mediaQuery: to listen for matchMedia activations */\n withPrintQuery(queries) {\n return [...queries, PRINT];\n }\n /** Is the MediaChange event for any 'print' @media */\n isPrintEvent(e) {\n return e.mediaQuery.startsWith(PRINT);\n }\n /** What is the desired mqAlias to use while printing? */\n get printAlias() {\n return [...(this.layoutConfig.printWithBreakpoints ?? [])];\n }\n /** Lookup breakpoints associated with print aliases. */\n get printBreakPoints() {\n return this.printAlias.map(alias => this.breakpoints.findByAlias(alias)).filter(bp => bp !== null);\n }\n /** Lookup breakpoint associated with mediaQuery */\n getEventBreakpoints({\n mediaQuery\n }) {\n const bp = this.breakpoints.findByQuery(mediaQuery);\n const list = bp ? [...this.printBreakPoints, bp] : this.printBreakPoints;\n return list.sort(sortDescendingPriority);\n }\n /** Update event with printAlias mediaQuery information */\n updateEvent(event) {\n let bp = this.breakpoints.findByQuery(event.mediaQuery);\n if (this.isPrintEvent(event)) {\n // Reset from 'print' to first (highest priority) print breakpoint\n bp = this.getEventBreakpoints(event)[0];\n event.mediaQuery = bp?.mediaQuery ?? '';\n }\n return mergeAlias(event, bp);\n }\n // registerBeforeAfterPrintHooks registers a `beforeprint` event hook so we can\n // trigger print styles synchronously and apply proper layout styles.\n // It is a noop if the hooks have already been registered or if the document's\n // `defaultView` is not available.\n registerBeforeAfterPrintHooks(target) {\n // `defaultView` may be null when rendering on the server or in other contexts.\n if (!this._document.defaultView || this.registeredBeforeAfterPrintHooks) {\n return;\n }\n this.registeredBeforeAfterPrintHooks = true;\n const beforePrintListener = () => {\n // If we aren't already printing, start printing and update the styles as\n // if there was a regular print `MediaChange`(from matchMedia).\n if (!this.isPrinting) {\n this.isPrintingBeforeAfterEvent = true;\n this.startPrinting(target, this.getEventBreakpoints(new MediaChange(true, PRINT)));\n target.updateStyles();\n }\n };\n const afterPrintListener = () => {\n // If we aren't already printing, start printing and update the styles as\n // if there was a regular print `MediaChange`(from matchMedia).\n this.isPrintingBeforeAfterEvent = false;\n if (this.isPrinting) {\n this.stopPrinting(target);\n target.updateStyles();\n }\n };\n // Could we have teardown logic to remove if there are no print listeners being used?\n this._document.defaultView.addEventListener('beforeprint', beforePrintListener);\n this._document.defaultView.addEventListener('afterprint', afterPrintListener);\n this.beforePrintEventListeners.push(beforePrintListener);\n this.afterPrintEventListeners.push(afterPrintListener);\n }\n /**\n * Prepare RxJS tap operator with partial application\n * @return pipeable tap predicate\n */\n interceptEvents(target) {\n return event => {\n if (this.isPrintEvent(event)) {\n if (event.matches && !this.isPrinting) {\n this.startPrinting(target, this.getEventBreakpoints(event));\n target.updateStyles();\n } else if (!event.matches && this.isPrinting && !this.isPrintingBeforeAfterEvent) {\n this.stopPrinting(target);\n target.updateStyles();\n }\n return;\n }\n this.collectActivations(target, event);\n };\n }\n /** Stop mediaChange event propagation in event streams */\n blockPropagation() {\n return event => {\n return !(this.isPrinting || this.isPrintEvent(event));\n };\n }\n /**\n * Save current activateBreakpoints (for later restore)\n * and substitute only the printAlias breakpoint\n */\n startPrinting(target, bpList) {\n this.isPrinting = true;\n this.formerActivations = target.activatedBreakpoints;\n target.activatedBreakpoints = this.queue.addPrintBreakpoints(bpList);\n }\n /** For any print de-activations, reset the entire print queue */\n stopPrinting(target) {\n target.activatedBreakpoints = this.deactivations;\n this.deactivations = [];\n this.formerActivations = null;\n this.queue.clear();\n this.isPrinting = false;\n }\n /**\n * To restore pre-Print Activations, we must capture the proper\n * list of breakpoint activations BEFORE print starts. OnBeforePrint()\n * is supported; so 'print' mediaQuery activations are used as a fallback\n * in browsers without `beforeprint` support.\n *\n * > But activated breakpoints are deactivated BEFORE 'print' activation.\n *\n * Let's capture all de-activations using the following logic:\n *\n * When not printing:\n * - clear cache when activating non-print breakpoint\n * - update cache (and sort) when deactivating\n *\n * When printing:\n * - sort and save when starting print\n * - restore as activatedTargets and clear when stop printing\n */\n collectActivations(target, event) {\n if (!this.isPrinting || this.isPrintingBeforeAfterEvent) {\n if (!this.isPrintingBeforeAfterEvent) {\n // Only clear deactivations if we aren't printing from a `beforeprint` event.\n // Otherwise, this will clear before `stopPrinting()` is called to restore\n // the pre-Print Activations.\n this.deactivations = [];\n return;\n }\n if (!event.matches) {\n const bp = this.breakpoints.findByQuery(event.mediaQuery);\n // Deactivating a breakpoint\n if (bp) {\n const hasFormerBp = this.formerActivations && this.formerActivations.includes(bp);\n const wasActivated = !this.formerActivations && target.activatedBreakpoints.includes(bp);\n const shouldDeactivate = hasFormerBp || wasActivated;\n if (shouldDeactivate) {\n this.deactivations.push(bp);\n this.deactivations.sort(sortDescendingPriority);\n }\n }\n }\n }\n }\n /** Teardown logic for the service. */\n ngOnDestroy() {\n if (this._document.defaultView) {\n this.beforePrintEventListeners.forEach(l => this._document.defaultView.removeEventListener('beforeprint', l));\n this.afterPrintEventListeners.forEach(l => this._document.defaultView.removeEventListener('afterprint', l));\n }\n }\n }\n PrintHook.ɵfac = function PrintHook_Factory(t) {\n return new (t || PrintHook)(i0.ɵɵinject(BreakPointRegistry), i0.ɵɵinject(LAYOUT_CONFIG), i0.ɵɵinject(DOCUMENT));\n };\n PrintHook.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PrintHook,\n factory: PrintHook.ɵfac,\n providedIn: 'root'\n });\n return PrintHook;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n// ************************************************************************\n// Internal Utility class 'PrintQueue'\n// ************************************************************************\n/**\n * Utility class to manage print breakpoints + activatedBreakpoints\n * with correct sorting WHILE printing\n */\nclass PrintQueue {\n constructor() {\n /** Sorted queue with prioritized print breakpoints */\n this.printBreakpoints = [];\n }\n addPrintBreakpoints(bpList) {\n bpList.push(BREAKPOINT_PRINT);\n bpList.sort(sortDescendingPriority);\n bpList.forEach(bp => this.addBreakpoint(bp));\n return this.printBreakpoints;\n }\n /** Add Print breakpoint to queue */\n addBreakpoint(bp) {\n if (!!bp) {\n const bpInList = this.printBreakpoints.find(it => it.mediaQuery === bp.mediaQuery);\n if (bpInList === undefined) {\n // If this is a `printAlias` breakpoint, then append. If a true 'print' breakpoint,\n // register as highest priority in the queue\n this.printBreakpoints = isPrintBreakPoint(bp) ? [bp, ...this.printBreakpoints] : [...this.printBreakpoints, bp];\n }\n }\n }\n /** Restore original activated breakpoints and clear internal caches */\n clear() {\n this.printBreakpoints = [];\n }\n}\n// ************************************************************************\n// Internal Utility methods\n// ************************************************************************\n/** Only support intercept queueing if the Breakpoint is a print @media query */\nfunction isPrintBreakPoint(bp) {\n return bp?.mediaQuery.startsWith(PRINT) ?? false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * MediaMarshaller - register responsive values from directives and\n * trigger them based on media query events\n */\nlet MediaMarshaller = /*#__PURE__*/(() => {\n class MediaMarshaller {\n constructor(matchMedia, breakpoints, hook) {\n this.matchMedia = matchMedia;\n this.breakpoints = breakpoints;\n this.hook = hook;\n this._useFallbacks = true;\n this._activatedBreakpoints = [];\n this.elementMap = new Map();\n this.elementKeyMap = new WeakMap();\n this.watcherMap = new WeakMap(); // special triggers to update elements\n this.updateMap = new WeakMap(); // callback functions to update styles\n this.clearMap = new WeakMap(); // callback functions to clear styles\n this.subject = new Subject();\n this.observeActivations();\n }\n get activatedAlias() {\n return this.activatedBreakpoints[0]?.alias ?? '';\n }\n set activatedBreakpoints(bps) {\n this._activatedBreakpoints = [...bps];\n }\n get activatedBreakpoints() {\n return [...this._activatedBreakpoints];\n }\n set useFallbacks(value) {\n this._useFallbacks = value;\n }\n /**\n * Update styles on breakpoint activates or deactivates\n * @param mc\n */\n onMediaChange(mc) {\n const bp = this.findByQuery(mc.mediaQuery);\n if (bp) {\n mc = mergeAlias(mc, bp);\n const bpIndex = this.activatedBreakpoints.indexOf(bp);\n if (mc.matches && bpIndex === -1) {\n this._activatedBreakpoints.push(bp);\n this._activatedBreakpoints.sort(sortDescendingPriority);\n this.updateStyles();\n } else if (!mc.matches && bpIndex !== -1) {\n // Remove the breakpoint when it's deactivated\n this._activatedBreakpoints.splice(bpIndex, 1);\n this._activatedBreakpoints.sort(sortDescendingPriority);\n this.updateStyles();\n }\n }\n }\n /**\n * initialize the marshaller with necessary elements for delegation on an element\n * @param element\n * @param key\n * @param updateFn optional callback so that custom bp directives don't have to re-provide this\n * @param clearFn optional callback so that custom bp directives don't have to re-provide this\n * @param extraTriggers other triggers to force style updates (e.g. layout, directionality, etc)\n */\n init(element, key, updateFn, clearFn, extraTriggers = []) {\n initBuilderMap(this.updateMap, element, key, updateFn);\n initBuilderMap(this.clearMap, element, key, clearFn);\n this.buildElementKeyMap(element, key);\n this.watchExtraTriggers(element, key, extraTriggers);\n }\n /**\n * get the value for an element and key and optionally a given breakpoint\n * @param element\n * @param key\n * @param bp\n */\n getValue(element, key, bp) {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const values = bp !== undefined ? bpMap.get(bp) : this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key);\n }\n }\n return undefined;\n }\n /**\n * whether the element has values for a given key\n * @param element\n * @param key\n */\n hasValue(element, key) {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const values = this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key) !== undefined || false;\n }\n }\n return false;\n }\n /**\n * Set the value for an input on a directive\n * @param element the element in question\n * @param key the type of the directive (e.g. flex, layout-gap, etc)\n * @param bp the breakpoint suffix (empty string = default)\n * @param val the value for the breakpoint\n */\n setValue(element, key, val, bp) {\n let bpMap = this.elementMap.get(element);\n if (!bpMap) {\n bpMap = new Map().set(bp, new Map().set(key, val));\n this.elementMap.set(element, bpMap);\n } else {\n const values = (bpMap.get(bp) ?? new Map()).set(key, val);\n bpMap.set(bp, values);\n this.elementMap.set(element, bpMap);\n }\n const value = this.getValue(element, key);\n if (value !== undefined) {\n this.updateElement(element, key, value);\n }\n }\n /** Track element value changes for a specific key */\n trackValue(element, key) {\n return this.subject.asObservable().pipe(filter(v => v.element === element && v.key === key));\n }\n /** update all styles for all elements on the current breakpoint */\n updateStyles() {\n this.elementMap.forEach((bpMap, el) => {\n const keyMap = new Set(this.elementKeyMap.get(el));\n let valueMap = this.getActivatedValues(bpMap);\n if (valueMap) {\n valueMap.forEach((v, k) => {\n this.updateElement(el, k, v);\n keyMap.delete(k);\n });\n }\n keyMap.forEach(k => {\n valueMap = this.getActivatedValues(bpMap, k);\n if (valueMap) {\n const value = valueMap.get(k);\n this.updateElement(el, k, value);\n } else {\n this.clearElement(el, k);\n }\n });\n });\n }\n /**\n * clear the styles for a given element\n * @param element\n * @param key\n */\n clearElement(element, key) {\n const builders = this.clearMap.get(element);\n if (builders) {\n const clearFn = builders.get(key);\n if (!!clearFn) {\n clearFn();\n this.subject.next({\n element,\n key,\n value: ''\n });\n }\n }\n }\n /**\n * update a given element with the activated values for a given key\n * @param element\n * @param key\n * @param value\n */\n updateElement(element, key, value) {\n const builders = this.updateMap.get(element);\n if (builders) {\n const updateFn = builders.get(key);\n if (!!updateFn) {\n updateFn(value);\n this.subject.next({\n element,\n key,\n value\n });\n }\n }\n }\n /**\n * release all references to a given element\n * @param element\n */\n releaseElement(element) {\n const watcherMap = this.watcherMap.get(element);\n if (watcherMap) {\n watcherMap.forEach(s => s.unsubscribe());\n this.watcherMap.delete(element);\n }\n const elementMap = this.elementMap.get(element);\n if (elementMap) {\n elementMap.forEach((_, s) => elementMap.delete(s));\n this.elementMap.delete(element);\n }\n }\n /**\n * trigger an update for a given element and key (e.g. layout)\n * @param element\n * @param key\n */\n triggerUpdate(element, key) {\n const bpMap = this.elementMap.get(element);\n if (bpMap) {\n const valueMap = this.getActivatedValues(bpMap, key);\n if (valueMap) {\n if (key) {\n this.updateElement(element, key, valueMap.get(key));\n } else {\n valueMap.forEach((v, k) => this.updateElement(element, k, v));\n }\n }\n }\n }\n /** Cross-reference for HTMLElement with directive key */\n buildElementKeyMap(element, key) {\n let keyMap = this.elementKeyMap.get(element);\n if (!keyMap) {\n keyMap = new Set();\n this.elementKeyMap.set(element, keyMap);\n }\n keyMap.add(key);\n }\n /**\n * Other triggers that should force style updates:\n * - directionality\n * - layout changes\n * - mutationobserver updates\n */\n watchExtraTriggers(element, key, triggers) {\n if (triggers && triggers.length) {\n let watchers = this.watcherMap.get(element);\n if (!watchers) {\n watchers = new Map();\n this.watcherMap.set(element, watchers);\n }\n const subscription = watchers.get(key);\n if (!subscription) {\n const newSubscription = merge(...triggers).subscribe(() => {\n const currentValue = this.getValue(element, key);\n this.updateElement(element, key, currentValue);\n });\n watchers.set(key, newSubscription);\n }\n }\n }\n /** Breakpoint locator by mediaQuery */\n findByQuery(query) {\n return this.breakpoints.findByQuery(query);\n }\n /**\n * get the fallback breakpoint for a given element, starting with the current breakpoint\n * @param bpMap\n * @param key\n */\n getActivatedValues(bpMap, key) {\n for (let i = 0; i < this.activatedBreakpoints.length; i++) {\n const activatedBp = this.activatedBreakpoints[i];\n const valueMap = bpMap.get(activatedBp.alias);\n if (valueMap) {\n if (key === undefined || valueMap.has(key) && valueMap.get(key) != null) {\n return valueMap;\n }\n }\n }\n // On the server, we explicitly have an \"all\" section filled in to begin with.\n // So we don't need to aggressively find a fallback if no explicit value exists.\n if (!this._useFallbacks) {\n return undefined;\n }\n const lastHope = bpMap.get('');\n return key === undefined || lastHope && lastHope.has(key) ? lastHope : undefined;\n }\n /**\n * Watch for mediaQuery breakpoint activations\n */\n observeActivations() {\n const queries = this.breakpoints.items.map(bp => bp.mediaQuery);\n this.hook.registerBeforeAfterPrintHooks(this);\n this.matchMedia.observe(this.hook.withPrintQuery(queries)).pipe(tap(this.hook.interceptEvents(this)), filter(this.hook.blockPropagation())).subscribe(this.onMediaChange.bind(this));\n }\n }\n MediaMarshaller.ɵfac = function MediaMarshaller_Factory(t) {\n return new (t || MediaMarshaller)(i0.ɵɵinject(MatchMedia), i0.ɵɵinject(BreakPointRegistry), i0.ɵɵinject(PrintHook));\n };\n MediaMarshaller.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MediaMarshaller,\n factory: MediaMarshaller.ɵfac,\n providedIn: 'root'\n });\n return MediaMarshaller;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction initBuilderMap(map, element, key, input) {\n if (input !== undefined) {\n const oldMap = map.get(element) ?? new Map();\n oldMap.set(key, input);\n map.set(element, oldMap);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet BaseDirective2 = /*#__PURE__*/(() => {\n class BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n this.elementRef = elementRef;\n this.styleBuilder = styleBuilder;\n this.styler = styler;\n this.marshal = marshal;\n this.DIRECTIVE_KEY = '';\n this.inputs = [];\n /** The most recently used styles for the builder */\n this.mru = {};\n this.destroySubject = new Subject();\n /** Cache map for style computation */\n this.styleCache = new Map();\n }\n /** Access to host element's parent DOM node */\n get parentElement() {\n return this.elementRef.nativeElement.parentElement;\n }\n /** Access to the HTMLElement for the directive */\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n /** Access to the activated value for the directive */\n get activatedValue() {\n return this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY);\n }\n set activatedValue(value) {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, value, this.marshal.activatedAlias);\n }\n /** For @Input changes */\n ngOnChanges(changes) {\n Object.keys(changes).forEach(key => {\n if (this.inputs.indexOf(key) !== -1) {\n const bp = key.split('.').slice(1).join('.');\n const val = changes[key].currentValue;\n this.setValue(val, bp);\n }\n });\n }\n ngOnDestroy() {\n this.destroySubject.next();\n this.destroySubject.complete();\n this.marshal.releaseElement(this.nativeElement);\n }\n /** Register with central marshaller service */\n init(extraTriggers = []) {\n this.marshal.init(this.elementRef.nativeElement, this.DIRECTIVE_KEY, this.updateWithValue.bind(this), this.clearStyles.bind(this), extraTriggers);\n }\n /** Add styles to the element using predefined style builder */\n addStyles(input, parent) {\n const builder = this.styleBuilder;\n const useCache = builder.shouldCache;\n let genStyles = this.styleCache.get(input);\n if (!genStyles || !useCache) {\n genStyles = builder.buildStyles(input, parent);\n if (useCache) {\n this.styleCache.set(input, genStyles);\n }\n }\n this.mru = {\n ...genStyles\n };\n this.applyStyleToElement(genStyles);\n builder.sideEffect(input, genStyles, parent);\n }\n /** Remove generated styles from an element using predefined style builder */\n clearStyles() {\n Object.keys(this.mru).forEach(k => {\n this.mru[k] = '';\n });\n this.applyStyleToElement(this.mru);\n this.mru = {};\n this.currentValue = undefined;\n }\n /** Force trigger style updates on DOM element */\n triggerUpdate() {\n this.marshal.triggerUpdate(this.nativeElement, this.DIRECTIVE_KEY);\n }\n /**\n * Determine the DOM element's Flexbox flow (flex-direction).\n *\n * Check inline style first then check computed (stylesheet) style.\n * And optionally add the flow value to element's inline style.\n */\n getFlexFlowDirection(target, addIfMissing = false) {\n if (target) {\n const [value, hasInlineValue] = this.styler.getFlowDirection(target);\n if (!hasInlineValue && addIfMissing) {\n const style = buildLayoutCSS(value);\n const elements = [target];\n this.styler.applyStyleToElements(style, elements);\n }\n return value.trim();\n }\n return 'row';\n }\n hasWrap(target) {\n return this.styler.hasWrap(target);\n }\n /** Applies styles given via string pair or object map to the directive element */\n applyStyleToElement(style, value, element = this.nativeElement) {\n this.styler.applyStyleToElement(element, style, value);\n }\n setValue(val, bp) {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, val, bp);\n }\n updateWithValue(input) {\n if (this.currentValue !== input) {\n this.addStyles(input);\n this.currentValue = input;\n }\n }\n }\n BaseDirective2.ɵfac = function BaseDirective2_Factory(t) {\n return new (t || BaseDirective2)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StyleBuilder), i0.ɵɵdirectiveInject(StyleUtils), i0.ɵɵdirectiveInject(MediaMarshaller));\n };\n BaseDirective2.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: BaseDirective2,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n return BaseDirective2;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * MockMatchMedia mocks calls to the Window API matchMedia with a build of a simulated\n * MockMediaQueryListener. Methods are available to simulate an activation of a mediaQuery\n * range and to clearAll mediaQuery listeners.\n */\nlet MockMatchMedia = /*#__PURE__*/(() => {\n class MockMatchMedia extends MatchMedia {\n constructor(_zone, _platformId, _document, _breakpoints) {\n super(_zone, _platformId, _document);\n this._breakpoints = _breakpoints;\n this.autoRegisterQueries = true; // Used for testing BreakPoint registrations\n this.useOverlaps = false; // Allow fallback to overlapping mediaQueries\n }\n /** Easy method to clear all listeners for all mediaQueries */\n clearAll() {\n this.registry.forEach(mql => {\n mql.destroy();\n });\n this.registry.clear();\n this.useOverlaps = false;\n }\n /** Feature to support manual, simulated activation of a mediaQuery. */\n activate(mediaQuery, useOverlaps = this.useOverlaps) {\n mediaQuery = this._validateQuery(mediaQuery);\n if (useOverlaps || !this.isActive(mediaQuery)) {\n this._deactivateAll();\n this._registerMediaQuery(mediaQuery);\n this._activateWithOverlaps(mediaQuery, useOverlaps);\n }\n return this.hasActivated;\n }\n /** Converts an optional mediaQuery alias to a specific, valid mediaQuery */\n _validateQuery(queryOrAlias) {\n const bp = this._breakpoints.findByAlias(queryOrAlias);\n return bp?.mediaQuery ?? queryOrAlias;\n }\n /**\n * Manually onMediaChange any overlapping mediaQueries to simulate\n * similar functionality in the window.matchMedia()\n */\n _activateWithOverlaps(mediaQuery, useOverlaps) {\n if (useOverlaps) {\n const bp = this._breakpoints.findByQuery(mediaQuery);\n const alias = bp?.alias ?? 'unknown';\n // Simulate activation of overlapping lt- ranges\n switch (alias) {\n case 'lg':\n this._activateByAlias(['lt-xl']);\n break;\n case 'md':\n this._activateByAlias(['lt-xl', 'lt-lg']);\n break;\n case 'sm':\n this._activateByAlias(['lt-xl', 'lt-lg', 'lt-md']);\n break;\n case 'xs':\n this._activateByAlias(['lt-xl', 'lt-lg', 'lt-md', 'lt-sm']);\n break;\n }\n // Simulate activation of overlapping gt- mediaQuery ranges\n switch (alias) {\n case 'xl':\n this._activateByAlias(['gt-lg', 'gt-md', 'gt-sm', 'gt-xs']);\n break;\n case 'lg':\n this._activateByAlias(['gt-md', 'gt-sm', 'gt-xs']);\n break;\n case 'md':\n this._activateByAlias(['gt-sm', 'gt-xs']);\n break;\n case 'sm':\n this._activateByAlias(['gt-xs']);\n break;\n }\n }\n // Activate last since the responsiveActivation is watching *this* mediaQuery\n return this._activateByQuery(mediaQuery);\n }\n /**\n *\n */\n _activateByAlias(aliases) {\n const activate = alias => {\n const bp = this._breakpoints.findByAlias(alias);\n this._activateByQuery(bp?.mediaQuery ?? alias);\n };\n aliases.forEach(activate);\n }\n /**\n *\n */\n _activateByQuery(mediaQuery) {\n if (!this.registry.has(mediaQuery) && this.autoRegisterQueries) {\n this._registerMediaQuery(mediaQuery);\n }\n const mql = this.registry.get(mediaQuery);\n if (mql && !this.isActive(mediaQuery)) {\n this.registry.set(mediaQuery, mql.activate());\n }\n return this.hasActivated;\n }\n /** Deactivate all current MQLs and reset the buffer */\n _deactivateAll() {\n this.registry.forEach(it => {\n it.deactivate();\n });\n return this;\n }\n /** Insure the mediaQuery is registered with MatchMedia */\n _registerMediaQuery(mediaQuery) {\n if (!this.registry.has(mediaQuery) && this.autoRegisterQueries) {\n this.registerQuery(mediaQuery);\n }\n }\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n buildMQL(query) {\n return new MockMediaQueryList(query);\n }\n get hasActivated() {\n return this.activations.length > 0;\n }\n }\n MockMatchMedia.ɵfac = function MockMatchMedia_Factory(t) {\n return new (t || MockMatchMedia)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(BreakPointRegistry));\n };\n MockMatchMedia.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MockMatchMedia,\n factory: MockMatchMedia.ɵfac\n });\n return MockMatchMedia;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Special internal class to simulate a MediaQueryList and\n * - supports manual activation to simulate mediaQuery matching\n * - manages listeners\n */\nclass MockMediaQueryList extends EventTarget {\n constructor(_mediaQuery) {\n super();\n this._mediaQuery = _mediaQuery;\n this._isActive = false;\n this._listeners = [];\n this.onchange = null;\n }\n get matches() {\n return this._isActive;\n }\n get media() {\n return this._mediaQuery;\n }\n /**\n * Destroy the current list by deactivating the\n * listeners and clearing the internal list\n */\n destroy() {\n this.deactivate();\n this._listeners = [];\n }\n /** Notify all listeners that 'matches === TRUE' */\n activate() {\n if (!this._isActive) {\n this._isActive = true;\n this._listeners.forEach(callback => {\n const cb = callback;\n cb.call(this, {\n matches: this.matches,\n media: this.media\n });\n });\n }\n return this;\n }\n /** Notify all listeners that 'matches === false' */\n deactivate() {\n if (this._isActive) {\n this._isActive = false;\n this._listeners.forEach(callback => {\n const cb = callback;\n cb.call(this, {\n matches: this.matches,\n media: this.media\n });\n });\n }\n return this;\n }\n /** Add a listener to our internal list to activate later */\n addListener(listener) {\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n if (this._isActive) {\n const cb = listener;\n cb.call(this, {\n matches: this.matches,\n media: this.media\n });\n }\n }\n /** Don't need to remove listeners in the testing environment */\n removeListener(_) {}\n dispatchEvent(_) {\n return false;\n }\n}\n/**\n * Pre-configured provider for MockMatchMedia\n */\nconst MockMatchMediaProvider = {\n provide: MatchMedia,\n useClass: MockMatchMedia\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Wraps the provided value in an array, unless the provided value is an array. */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * MediaObserver enables applications to listen for 1..n mediaQuery activations and to determine\n * if a mediaQuery is currently activated.\n *\n * Since a breakpoint change will first deactivate 1...n mediaQueries and then possibly activate\n * 1..n mediaQueries, the MediaObserver will debounce notifications and report ALL *activations*\n * in 1 event notification. The reported activations will be sorted in descending priority order.\n *\n * This class uses the BreakPoint Registry to inject alias information into the raw MediaChange\n * notification. For custom mediaQuery notifications, alias information will not be injected and\n * those fields will be ''.\n *\n * Note: Developers should note that only mediaChange activations (not de-activations)\n * are announced by the MediaObserver.\n *\n * @usage\n *\n * // RxJS\n * import { filter } from 'rxjs/operators';\n * import { MediaObserver } from '@angular/flex-layout';\n *\n * @Component({ ... })\n * export class AppComponent {\n * status: string = '';\n *\n * constructor(mediaObserver: MediaObserver) {\n * const media$ = mediaObserver.asObservable().pipe(\n * filter((changes: MediaChange[]) => true) // silly noop filter\n * );\n *\n * media$.subscribe((changes: MediaChange[]) => {\n * let status = '';\n * changes.forEach( change => {\n * status += `'${change.mqAlias}' = (${change.mediaQuery})
` ;\n * });\n * this.status = status;\n * });\n *\n * }\n * }\n */\nlet MediaObserver = /*#__PURE__*/(() => {\n class MediaObserver {\n constructor(breakpoints, matchMedia, hook) {\n this.breakpoints = breakpoints;\n this.matchMedia = matchMedia;\n this.hook = hook;\n /** Filter MediaChange notifications for overlapping breakpoints */\n this.filterOverlaps = false;\n this.destroyed$ = new Subject();\n this._media$ = this.watchActivations();\n }\n /**\n * Completes the active subject, signalling to all complete for all\n * MediaObserver subscribers\n */\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n // ************************************************\n // Public Methods\n // ************************************************\n /**\n * Observe changes to current activation 'list'\n */\n asObservable() {\n return this._media$;\n }\n /**\n * Allow programmatic query to determine if one or more media query/alias match\n * the current viewport size.\n * @param value One or more media queries (or aliases) to check.\n * @returns Whether any of the media queries match.\n */\n isActive(value) {\n const aliases = splitQueries(coerceArray(value));\n return aliases.some(alias => {\n const query = toMediaQuery(alias, this.breakpoints);\n return query !== null && this.matchMedia.isActive(query);\n });\n }\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Register all the mediaQueries registered in the BreakPointRegistry\n * This is needed so subscribers can be auto-notified of all standard, registered\n * mediaQuery activations\n */\n watchActivations() {\n const queries = this.breakpoints.items.map(bp => bp.mediaQuery);\n return this.buildObservable(queries);\n }\n /**\n * Only pass/announce activations (not de-activations)\n *\n * Since multiple-mediaQueries can be activation in a cycle,\n * gather all current activations into a single list of changes to observers\n *\n * Inject associated (if any) alias information into the MediaChange event\n * - Exclude mediaQuery activations for overlapping mQs. List bounded mQ ranges only\n * - Exclude print activations that do not have an associated mediaQuery\n *\n * NOTE: the raw MediaChange events [from MatchMedia] do not\n * contain important alias information; as such this info\n * must be injected into the MediaChange\n */\n buildObservable(mqList) {\n const hasChanges = changes => {\n const isValidQuery = change => change.mediaQuery.length > 0;\n return changes.filter(isValidQuery).length > 0;\n };\n const excludeOverlaps = changes => {\n return !this.filterOverlaps ? changes : changes.filter(change => {\n const bp = this.breakpoints.findByQuery(change.mediaQuery);\n return bp?.overlapping ?? true;\n });\n };\n const ignoreDuplicates = (previous, current) => {\n if (previous.length !== current.length) {\n return false;\n }\n const previousMqs = previous.map(mc => mc.mediaQuery);\n const currentMqs = new Set(current.map(mc => mc.mediaQuery));\n const difference = new Set(previousMqs.filter(mq => !currentMqs.has(mq)));\n return difference.size === 0;\n };\n /**\n */\n return this.matchMedia.observe(this.hook.withPrintQuery(mqList)).pipe(filter(change => change.matches), debounceTime(0, asapScheduler), switchMap(_ => of(this.findAllActivations())), map(excludeOverlaps), filter(hasChanges), distinctUntilChanged(ignoreDuplicates), takeUntil(this.destroyed$));\n }\n /**\n * Find all current activations and prepare single list of activations\n * sorted by descending priority.\n */\n findAllActivations() {\n const mergeMQAlias = change => {\n const bp = this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n };\n const replaceWithPrintAlias = change => this.hook.isPrintEvent(change) ? this.hook.updateEvent(change) : change;\n return this.matchMedia.activations.map(query => new MediaChange(true, query)).map(replaceWithPrintAlias).map(mergeMQAlias).sort(sortDescendingPriority);\n }\n }\n MediaObserver.ɵfac = function MediaObserver_Factory(t) {\n return new (t || MediaObserver)(i0.ɵɵinject(BreakPointRegistry), i0.ɵɵinject(MatchMedia), i0.ɵɵinject(PrintHook));\n };\n MediaObserver.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MediaObserver,\n factory: MediaObserver.ɵfac,\n providedIn: 'root'\n });\n return MediaObserver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Find associated breakpoint (if any)\n */\nfunction toMediaQuery(query, locator) {\n const bp = locator.findByAlias(query) ?? locator.findByQuery(query);\n return bp?.mediaQuery ?? null;\n}\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries.flatMap(query => query.split(',')).map(query => query.trim());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Class\n */\nlet MediaTrigger = /*#__PURE__*/(() => {\n class MediaTrigger {\n constructor(breakpoints, matchMedia, layoutConfig, _platformId, _document) {\n this.breakpoints = breakpoints;\n this.matchMedia = matchMedia;\n this.layoutConfig = layoutConfig;\n this._platformId = _platformId;\n this._document = _document;\n this.hasCachedRegistryMatches = false;\n this.originalActivations = [];\n this.originalRegistry = new Map();\n }\n /**\n * Manually activate range of breakpoints\n * @param list array of mediaQuery or alias strings\n */\n activate(list) {\n list = list.map(it => it.trim()); // trim queries\n this.saveActivations();\n this.deactivateAll();\n this.setActivations(list);\n this.prepareAutoRestore();\n }\n /**\n * Restore original, 'real' breakpoints and emit events\n * to trigger stream notification\n */\n restore() {\n if (this.hasCachedRegistryMatches) {\n const extractQuery = change => change.mediaQuery;\n const list = this.originalActivations.map(extractQuery);\n try {\n this.deactivateAll();\n this.restoreRegistryMatches();\n this.setActivations(list);\n } finally {\n this.originalActivations = [];\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n }\n }\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Whenever window resizes, immediately auto-restore original\n * activations (if we are simulating activations)\n */\n prepareAutoRestore() {\n const isBrowser = isPlatformBrowser(this._platformId) && this._document;\n const enableAutoRestore = isBrowser && this.layoutConfig.mediaTriggerAutoRestore;\n if (enableAutoRestore) {\n const resize$ = fromEvent(window, 'resize').pipe(take(1));\n this.resizeSubscription = resize$.subscribe(this.restore.bind(this));\n }\n }\n /**\n * Notify all matchMedia subscribers of de-activations\n *\n * Note: we must force 'matches' updates for\n * future matchMedia::activation lookups\n */\n deactivateAll() {\n const list = this.currentActivations;\n this.forceRegistryMatches(list, false);\n this.simulateMediaChanges(list, false);\n }\n /**\n * Cache current activations as sorted, prioritized list of MediaChanges\n */\n saveActivations() {\n if (!this.hasCachedRegistryMatches) {\n const toMediaChange = query => new MediaChange(true, query);\n const mergeMQAlias = change => {\n const bp = this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n };\n this.originalActivations = this.currentActivations.map(toMediaChange).map(mergeMQAlias).sort(sortDescendingPriority);\n this.cacheRegistryMatches();\n }\n }\n /**\n * Force set manual activations for specified mediaQuery list\n */\n setActivations(list) {\n if (!!this.originalRegistry) {\n this.forceRegistryMatches(list, true);\n }\n this.simulateMediaChanges(list);\n }\n /**\n * For specified mediaQuery list manually simulate activations or deactivations\n */\n simulateMediaChanges(queries, matches = true) {\n const toMediaQuery = query => {\n const locator = this.breakpoints;\n const bp = locator.findByAlias(query) || locator.findByQuery(query);\n return bp ? bp.mediaQuery : query;\n };\n const emitChangeEvent = query => this.emitChangeEvent(matches, query);\n queries.map(toMediaQuery).forEach(emitChangeEvent);\n }\n /**\n * Replace current registry with simulated registry...\n * Note: this is required since MediaQueryList::matches is 'readOnly'\n */\n forceRegistryMatches(queries, matches) {\n const registry = new Map();\n queries.forEach(query => {\n registry.set(query, {\n matches\n });\n });\n this.matchMedia.registry = registry;\n }\n /**\n * Save current MatchMedia::registry items.\n */\n cacheRegistryMatches() {\n const target = this.originalRegistry;\n target.clear();\n this.matchMedia.registry.forEach((value, key) => {\n target.set(key, value);\n });\n this.hasCachedRegistryMatches = true;\n }\n /**\n * Restore original, 'true' registry\n */\n restoreRegistryMatches() {\n const target = this.matchMedia.registry;\n target.clear();\n this.originalRegistry.forEach((value, key) => {\n target.set(key, value);\n });\n this.originalRegistry.clear();\n this.hasCachedRegistryMatches = false;\n }\n /**\n * Manually emit a MediaChange event via the MatchMedia to MediaMarshaller and MediaObserver\n */\n emitChangeEvent(matches, query) {\n this.matchMedia.source.next(new MediaChange(matches, query));\n }\n get currentActivations() {\n return this.matchMedia.activations;\n }\n }\n MediaTrigger.ɵfac = function MediaTrigger_Factory(t) {\n return new (t || MediaTrigger)(i0.ɵɵinject(BreakPointRegistry), i0.ɵɵinject(MatchMedia), i0.ɵɵinject(LAYOUT_CONFIG), i0.ɵɵinject(PLATFORM_ID), i0.ɵɵinject(DOCUMENT));\n };\n MediaTrigger.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MediaTrigger,\n factory: MediaTrigger.ɵfac,\n providedIn: 'root'\n });\n return MediaTrigger;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n* The flex API permits 3 or 1 parts of the value:\n* - `flex-grow flex-shrink flex-basis`, or\n* - `flex-basis`\n*/\nfunction validateBasis(basis, grow = '1', shrink = '1') {\n let parts = [grow, shrink, basis];\n let j = basis.indexOf('calc');\n if (j > 0) {\n parts[2] = _validateCalcValue(basis.substring(j).trim());\n let matches = basis.substr(0, j).trim().split(' ');\n if (matches.length == 2) {\n parts[0] = matches[0];\n parts[1] = matches[1];\n }\n } else if (j == 0) {\n parts[2] = _validateCalcValue(basis.trim());\n } else {\n let matches = basis.split(' ');\n parts = matches.length === 3 ? matches : [grow, shrink, basis];\n }\n return parts;\n}\n/**\n * Calc expressions require whitespace before & after any expression operators\n * This is a simple, crude whitespace padding solution.\n * - '3 3 calc(15em + 20px)'\n * - calc(100% / 7 * 2)\n * - 'calc(15em + 20px)'\n * - 'calc(15em+20px)'\n * - '37px'\n * = '43%'\n */\nfunction _validateCalcValue(calc) {\n return calc.replace(/[\\s]/g, '').replace(/[\\/\\*\\+\\-]/g, ' $& ');\n}\nconst MULTIPLIER_SUFFIX = 'x';\nfunction multiply(value, multiplier) {\n if (multiplier === undefined) {\n return value;\n }\n const transformValue = possibleValue => {\n const numberValue = +possibleValue.slice(0, -MULTIPLIER_SUFFIX.length);\n if (value.endsWith(MULTIPLIER_SUFFIX) && !isNaN(numberValue)) {\n return `${numberValue * multiplier.value}${multiplier.unit}`;\n }\n return value;\n };\n return value.includes(' ') ? value.split(' ').map(transformValue).join(' ') : transformValue(value);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BREAKPOINT, BREAKPOINTS, BREAKPOINT_PRINT, BROWSER_PROVIDER, BaseDirective2, BreakPointRegistry, CLASS_NAME, CoreModule, DEFAULT_BREAKPOINTS, DEFAULT_CONFIG, LAYOUT_CONFIG, MediaChange, MediaMarshaller, MediaObserver, MediaTrigger, ORIENTATION_BREAKPOINTS, PrintHook, SERVER_TOKEN, ScreenTypes, StyleBuilder, StyleUtils, StylesheetMap, coerceArray, mergeAlias, removeStyles, sortAscendingPriority, sortDescendingPriority, validateBasis, MatchMedia as ɵMatchMedia, MockMatchMedia as ɵMockMatchMedia, MockMatchMediaProvider as ɵMockMatchMediaProvider, multiply as ɵmultiply };\n","import * as i0 from '@angular/core';\nimport { Injectable, Directive, Inject, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport * as i1 from '@angular/flex-layout/core';\nimport { StyleBuilder, BaseDirective2, LAYOUT_CONFIG, ɵmultiply, validateBasis, CoreModule } from '@angular/flex-layout/core';\nimport { buildLayoutCSS, LAYOUT_VALUES, isFlowHorizontal, extendObject } from '@angular/flex-layout/_private-utils';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet LayoutStyleBuilder = /*#__PURE__*/(() => {\n class LayoutStyleBuilder extends StyleBuilder {\n buildStyles(input, {\n display\n }) {\n const css = buildLayoutCSS(input);\n return {\n ...css,\n display: display === 'none' ? display : css.display\n };\n }\n }\n LayoutStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵLayoutStyleBuilder_BaseFactory;\n return function LayoutStyleBuilder_Factory(t) {\n return (ɵLayoutStyleBuilder_BaseFactory || (ɵLayoutStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(LayoutStyleBuilder)))(t || LayoutStyleBuilder);\n };\n })();\n LayoutStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LayoutStyleBuilder,\n factory: LayoutStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return LayoutStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$6 = ['fxLayout', 'fxLayout.xs', 'fxLayout.sm', 'fxLayout.md', 'fxLayout.lg', 'fxLayout.xl', 'fxLayout.lt-sm', 'fxLayout.lt-md', 'fxLayout.lt-lg', 'fxLayout.lt-xl', 'fxLayout.gt-xs', 'fxLayout.gt-sm', 'fxLayout.gt-md', 'fxLayout.gt-lg'];\nconst selector$6 = `\n [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],\n [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],\n [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],\n [fxLayout.gt-md], [fxLayout.gt-lg]\n`;\n/**\n * 'layout' flexbox styling directive\n * Defines the positioning flow direction for the child elements: row or column\n * Optional values: column or row (default)\n * @see https://css-tricks.com/almanac/properties/f/flex-direction/\n *\n */\nlet LayoutDirective = /*#__PURE__*/(() => {\n class LayoutDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal, _config) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this._config = _config;\n this.DIRECTIVE_KEY = 'layout';\n this.init();\n }\n updateWithValue(input) {\n const detectLayoutDisplay = this._config.detectLayoutDisplay;\n const display = detectLayoutDisplay ? this.styler.lookupStyle(this.nativeElement, 'display') : '';\n this.styleCache = cacheMap.get(display) ?? new Map();\n cacheMap.set(display, this.styleCache);\n if (this.currentValue !== input) {\n this.addStyles(input, {\n display\n });\n this.currentValue = input;\n }\n }\n }\n LayoutDirective.ɵfac = function LayoutDirective_Factory(t) {\n return new (t || LayoutDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(LayoutStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(LAYOUT_CONFIG));\n };\n LayoutDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LayoutDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return LayoutDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DefaultLayoutDirective = /*#__PURE__*/(() => {\n class DefaultLayoutDirective extends LayoutDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$6;\n }\n }\n DefaultLayoutDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultLayoutDirective_BaseFactory;\n return function DefaultLayoutDirective_Factory(t) {\n return (ɵDefaultLayoutDirective_BaseFactory || (ɵDefaultLayoutDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultLayoutDirective)))(t || DefaultLayoutDirective);\n };\n })();\n DefaultLayoutDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultLayoutDirective,\n selectors: [[\"\", \"fxLayout\", \"\"], [\"\", \"fxLayout.xs\", \"\"], [\"\", \"fxLayout.sm\", \"\"], [\"\", \"fxLayout.md\", \"\"], [\"\", \"fxLayout.lg\", \"\"], [\"\", \"fxLayout.xl\", \"\"], [\"\", \"fxLayout.lt-sm\", \"\"], [\"\", \"fxLayout.lt-md\", \"\"], [\"\", \"fxLayout.lt-lg\", \"\"], [\"\", \"fxLayout.lt-xl\", \"\"], [\"\", \"fxLayout.gt-xs\", \"\"], [\"\", \"fxLayout.gt-sm\", \"\"], [\"\", \"fxLayout.gt-md\", \"\"], [\"\", \"fxLayout.gt-lg\", \"\"]],\n inputs: {\n fxLayout: \"fxLayout\",\n \"fxLayout.xs\": \"fxLayout.xs\",\n \"fxLayout.sm\": \"fxLayout.sm\",\n \"fxLayout.md\": \"fxLayout.md\",\n \"fxLayout.lg\": \"fxLayout.lg\",\n \"fxLayout.xl\": \"fxLayout.xl\",\n \"fxLayout.lt-sm\": \"fxLayout.lt-sm\",\n \"fxLayout.lt-md\": \"fxLayout.lt-md\",\n \"fxLayout.lt-lg\": \"fxLayout.lt-lg\",\n \"fxLayout.lt-xl\": \"fxLayout.lt-xl\",\n \"fxLayout.gt-xs\": \"fxLayout.gt-xs\",\n \"fxLayout.gt-sm\": \"fxLayout.gt-sm\",\n \"fxLayout.gt-md\": \"fxLayout.gt-md\",\n \"fxLayout.gt-lg\": \"fxLayout.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultLayoutDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst cacheMap = /*#__PURE__*/new Map();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CLEAR_MARGIN_CSS = {\n 'margin-left': null,\n 'margin-right': null,\n 'margin-top': null,\n 'margin-bottom': null\n};\nlet LayoutGapStyleBuilder = /*#__PURE__*/(() => {\n class LayoutGapStyleBuilder extends StyleBuilder {\n constructor(_styler, _config) {\n super();\n this._styler = _styler;\n this._config = _config;\n }\n buildStyles(gapValue, parent) {\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n gapValue = ɵmultiply(gapValue, this._config.multiplier);\n // Add the margin to the host element\n return buildGridMargin(gapValue, parent.directionality);\n } else {\n return {};\n }\n }\n sideEffect(gapValue, _styles, parent) {\n const items = parent.items;\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n gapValue = ɵmultiply(gapValue, this._config.multiplier);\n // For each `element` children, set the padding\n const paddingStyles = buildGridPadding(gapValue, parent.directionality);\n this._styler.applyStyleToElements(paddingStyles, parent.items);\n } else {\n gapValue = ɵmultiply(gapValue, this._config.multiplier);\n gapValue = this.addFallbackUnit(gapValue);\n const lastItem = items.pop();\n // For each `element` children EXCEPT the last,\n // set the margin right/bottom styles...\n const gapCss = buildGapCSS(gapValue, parent);\n this._styler.applyStyleToElements(gapCss, items);\n // Clear all gaps for all visible elements\n this._styler.applyStyleToElements(CLEAR_MARGIN_CSS, [lastItem]);\n }\n }\n addFallbackUnit(value) {\n return !isNaN(+value) ? `${value}${this._config.defaultUnit}` : value;\n }\n }\n LayoutGapStyleBuilder.ɵfac = function LayoutGapStyleBuilder_Factory(t) {\n return new (t || LayoutGapStyleBuilder)(i0.ɵɵinject(i1.StyleUtils), i0.ɵɵinject(LAYOUT_CONFIG));\n };\n LayoutGapStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LayoutGapStyleBuilder,\n factory: LayoutGapStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return LayoutGapStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$5 = ['fxLayoutGap', 'fxLayoutGap.xs', 'fxLayoutGap.sm', 'fxLayoutGap.md', 'fxLayoutGap.lg', 'fxLayoutGap.xl', 'fxLayoutGap.lt-sm', 'fxLayoutGap.lt-md', 'fxLayoutGap.lt-lg', 'fxLayoutGap.lt-xl', 'fxLayoutGap.gt-xs', 'fxLayoutGap.gt-sm', 'fxLayoutGap.gt-md', 'fxLayoutGap.gt-lg'];\nconst selector$5 = `\n [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],\n [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],\n [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],\n [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]\n`;\n/**\n * 'layout-padding' styling directive\n * Defines padding of child elements in a layout container\n */\nlet LayoutGapDirective = /*#__PURE__*/(() => {\n class LayoutGapDirective extends BaseDirective2 {\n constructor(elRef, zone, directionality, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.zone = zone;\n this.directionality = directionality;\n this.styleUtils = styleUtils;\n this.layout = 'row'; // default flex-direction\n this.DIRECTIVE_KEY = 'layout-gap';\n this.observerSubject = new Subject();\n const extraTriggers = [this.directionality.change, this.observerSubject.asObservable()];\n this.init(extraTriggers);\n this.marshal.trackValue(this.nativeElement, 'layout').pipe(takeUntil(this.destroySubject)).subscribe(this.onLayoutChange.bind(this));\n }\n /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */\n get childrenNodes() {\n const obj = this.nativeElement.children;\n const buffer = [];\n // iterate backwards ensuring that length is an UInt32\n for (let i = obj.length; i--;) {\n buffer[i] = obj[i];\n }\n return buffer;\n }\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n ngAfterContentInit() {\n this.buildChildObservable();\n this.triggerUpdate();\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Cache the parent container 'flex-direction' and update the 'margin' styles\n */\n onLayoutChange(matcher) {\n const layout = matcher.value;\n // Make sure to filter out 'wrap' option\n const direction = layout.split(' ');\n this.layout = direction[0];\n if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n }\n /**\n *\n */\n updateWithValue(value) {\n // Gather all non-hidden Element nodes\n const items = this.childrenNodes.filter(el => el.nodeType === 1 && this.willDisplay(el)).sort((a, b) => {\n const orderA = +this.styler.lookupStyle(a, 'order');\n const orderB = +this.styler.lookupStyle(b, 'order');\n if (isNaN(orderA) || isNaN(orderB) || orderA === orderB) {\n return 0;\n } else {\n return orderA > orderB ? 1 : -1;\n }\n });\n if (items.length > 0) {\n const directionality = this.directionality.value;\n const layout = this.layout;\n if (layout === 'row' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheRowRtl;\n } else if (layout === 'row' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheRowLtr;\n } else if (layout === 'column' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheColumnRtl;\n } else if (layout === 'column' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheColumnLtr;\n }\n this.addStyles(value, {\n directionality,\n items,\n layout\n });\n }\n }\n /** We need to override clearStyles because in most cases mru isn't populated */\n clearStyles() {\n const gridMode = Object.keys(this.mru).length > 0;\n const childrenStyle = gridMode ? 'padding' : getMarginType(this.directionality.value, this.layout);\n // If there are styles on the parent remove them\n if (gridMode) {\n super.clearStyles();\n }\n // Then remove the children styles too\n this.styleUtils.applyStyleToElements({\n [childrenStyle]: ''\n }, this.childrenNodes);\n }\n /** Determine if an element will show or hide based on current activation */\n willDisplay(source) {\n const value = this.marshal.getValue(source, 'show-hide');\n return value === true || value === undefined && this.styleUtils.lookupStyle(source, 'display') !== 'none';\n }\n buildChildObservable() {\n this.zone.runOutsideAngular(() => {\n if (typeof MutationObserver !== 'undefined') {\n this.observer = new MutationObserver(mutations => {\n const validatedChanges = it => {\n return it.addedNodes && it.addedNodes.length > 0 || it.removedNodes && it.removedNodes.length > 0;\n };\n // update gap styles only for child 'added' or 'removed' events\n if (mutations.some(validatedChanges)) {\n this.observerSubject.next();\n }\n });\n this.observer.observe(this.nativeElement, {\n childList: true\n });\n }\n });\n }\n }\n LayoutGapDirective.ɵfac = function LayoutGapDirective_Factory(t) {\n return new (t || LayoutGapDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.Directionality), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(LayoutGapStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n LayoutGapDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LayoutGapDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return LayoutGapDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DefaultLayoutGapDirective = /*#__PURE__*/(() => {\n class DefaultLayoutGapDirective extends LayoutGapDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$5;\n }\n }\n DefaultLayoutGapDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultLayoutGapDirective_BaseFactory;\n return function DefaultLayoutGapDirective_Factory(t) {\n return (ɵDefaultLayoutGapDirective_BaseFactory || (ɵDefaultLayoutGapDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultLayoutGapDirective)))(t || DefaultLayoutGapDirective);\n };\n })();\n DefaultLayoutGapDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultLayoutGapDirective,\n selectors: [[\"\", \"fxLayoutGap\", \"\"], [\"\", \"fxLayoutGap.xs\", \"\"], [\"\", \"fxLayoutGap.sm\", \"\"], [\"\", \"fxLayoutGap.md\", \"\"], [\"\", \"fxLayoutGap.lg\", \"\"], [\"\", \"fxLayoutGap.xl\", \"\"], [\"\", \"fxLayoutGap.lt-sm\", \"\"], [\"\", \"fxLayoutGap.lt-md\", \"\"], [\"\", \"fxLayoutGap.lt-lg\", \"\"], [\"\", \"fxLayoutGap.lt-xl\", \"\"], [\"\", \"fxLayoutGap.gt-xs\", \"\"], [\"\", \"fxLayoutGap.gt-sm\", \"\"], [\"\", \"fxLayoutGap.gt-md\", \"\"], [\"\", \"fxLayoutGap.gt-lg\", \"\"]],\n inputs: {\n fxLayoutGap: \"fxLayoutGap\",\n \"fxLayoutGap.xs\": \"fxLayoutGap.xs\",\n \"fxLayoutGap.sm\": \"fxLayoutGap.sm\",\n \"fxLayoutGap.md\": \"fxLayoutGap.md\",\n \"fxLayoutGap.lg\": \"fxLayoutGap.lg\",\n \"fxLayoutGap.xl\": \"fxLayoutGap.xl\",\n \"fxLayoutGap.lt-sm\": \"fxLayoutGap.lt-sm\",\n \"fxLayoutGap.lt-md\": \"fxLayoutGap.lt-md\",\n \"fxLayoutGap.lt-lg\": \"fxLayoutGap.lt-lg\",\n \"fxLayoutGap.lt-xl\": \"fxLayoutGap.lt-xl\",\n \"fxLayoutGap.gt-xs\": \"fxLayoutGap.gt-xs\",\n \"fxLayoutGap.gt-sm\": \"fxLayoutGap.gt-sm\",\n \"fxLayoutGap.gt-md\": \"fxLayoutGap.gt-md\",\n \"fxLayoutGap.gt-lg\": \"fxLayoutGap.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultLayoutGapDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst layoutGapCacheRowRtl = /*#__PURE__*/new Map();\nconst layoutGapCacheColumnRtl = /*#__PURE__*/new Map();\nconst layoutGapCacheRowLtr = /*#__PURE__*/new Map();\nconst layoutGapCacheColumnLtr = /*#__PURE__*/new Map();\nconst GRID_SPECIFIER = ' grid';\nfunction buildGridPadding(value, directionality) {\n const [between, below] = value.split(' ');\n const bottom = below ?? between;\n let paddingRight = '0px',\n paddingBottom = bottom,\n paddingLeft = '0px';\n if (directionality === 'rtl') {\n paddingLeft = between;\n } else {\n paddingRight = between;\n }\n return {\n 'padding': `0px ${paddingRight} ${paddingBottom} ${paddingLeft}`\n };\n}\nfunction buildGridMargin(value, directionality) {\n const [between, below] = value.split(' ');\n const bottom = below ?? between;\n const minus = str => `-${str}`;\n let marginRight = '0px',\n marginBottom = minus(bottom),\n marginLeft = '0px';\n if (directionality === 'rtl') {\n marginLeft = minus(between);\n } else {\n marginRight = minus(between);\n }\n return {\n 'margin': `0px ${marginRight} ${marginBottom} ${marginLeft}`\n };\n}\nfunction getMarginType(directionality, layout) {\n switch (layout) {\n case 'column':\n return 'margin-bottom';\n case 'column-reverse':\n return 'margin-top';\n case 'row':\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n case 'row-reverse':\n return directionality === 'rtl' ? 'margin-right' : 'margin-left';\n default:\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n }\n}\nfunction buildGapCSS(gapValue, parent) {\n const key = getMarginType(parent.directionality, parent.layout);\n const margins = {\n ...CLEAR_MARGIN_CSS\n };\n margins[key] = gapValue;\n return margins;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet FlexStyleBuilder = /*#__PURE__*/(() => {\n class FlexStyleBuilder extends StyleBuilder {\n constructor(layoutConfig) {\n super();\n this.layoutConfig = layoutConfig;\n }\n buildStyles(input, parent) {\n let [grow, shrink, ...basisParts] = input.split(' ');\n let basis = basisParts.join(' ');\n // The flex-direction of this element's flex container. Defaults to 'row'.\n const direction = parent.direction.indexOf('column') > -1 ? 'column' : 'row';\n const max = isFlowHorizontal(direction) ? 'max-width' : 'max-height';\n const min = isFlowHorizontal(direction) ? 'min-width' : 'min-height';\n const hasCalc = String(basis).indexOf('calc') > -1;\n const usingCalc = hasCalc || basis === 'auto';\n const isPercent = String(basis).indexOf('%') > -1 && !hasCalc;\n const hasUnits = String(basis).indexOf('px') > -1 || String(basis).indexOf('rem') > -1 || String(basis).indexOf('em') > -1 || String(basis).indexOf('vw') > -1 || String(basis).indexOf('vh') > -1;\n let isValue = hasCalc || hasUnits;\n grow = grow == '0' ? 0 : grow;\n shrink = shrink == '0' ? 0 : shrink;\n // make box inflexible when shrink and grow are both zero\n // should not set a min when the grow is zero\n // should not set a max when the shrink is zero\n const isFixed = !grow && !shrink;\n let css = {};\n // flex-basis allows you to specify the initial/starting main-axis size of the element,\n // before anything else is computed. It can either be a percentage or an absolute value.\n // It is, however, not the breaking point for flex-grow/shrink properties\n //\n // flex-grow can be seen as this:\n // 0: Do not stretch. Either size to element's content width, or obey 'flex-basis'.\n // 1: (Default value). Stretch; will be the same size to all other flex items on\n // the same row since they have a default value of 1.\n // ≥2 (integer n): Stretch. Will be n times the size of other elements\n // with 'flex-grow: 1' on the same row.\n // Use `null` to clear existing styles.\n const clearStyles = {\n 'max-width': null,\n 'max-height': null,\n 'min-width': null,\n 'min-height': null\n };\n switch (basis || '') {\n case '':\n const useColumnBasisZero = this.layoutConfig.useColumnBasisZero !== false;\n basis = direction === 'row' ? '0%' : useColumnBasisZero ? '0.000000001px' : 'auto';\n break;\n case 'initial': // default\n case 'nogrow':\n grow = 0;\n basis = 'auto';\n break;\n case 'grow':\n basis = '100%';\n break;\n case 'noshrink':\n shrink = 0;\n basis = 'auto';\n break;\n case 'auto':\n break;\n case 'none':\n grow = 0;\n shrink = 0;\n basis = 'auto';\n break;\n default:\n // Defaults to percentage sizing unless `px` is explicitly set\n if (!isValue && !isPercent && !isNaN(basis)) {\n basis = basis + '%';\n }\n // Fix for issue 280\n if (basis === '0%') {\n isValue = true;\n }\n if (basis === '0px') {\n basis = '0%';\n }\n // fix issue #5345\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': isValue ? basis : '100%'\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${isValue ? basis : '100%'}`\n });\n }\n break;\n }\n if (!(css['flex'] || css['flex-grow'])) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${basis}`\n });\n }\n }\n // Fix for issues 277, 534, and 728\n if (basis !== '0%' && basis !== '0px' && basis !== '0.000000001px' && basis !== 'auto') {\n css[min] = isFixed || isValue && grow ? basis : null;\n css[max] = isFixed || !usingCalc && shrink ? basis : null;\n }\n // Fix for issue 528\n if (!css[min] && !css[max]) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n } else {\n css = extendObject(clearStyles, {\n 'flex': `${grow} ${shrink} ${basis}`\n });\n }\n } else {\n // Fix for issue 660\n if (parent.hasWrap) {\n css[hasCalc ? 'flex-basis' : 'flex'] = css[max] ? hasCalc ? css[max] : `${grow} ${shrink} ${css[max]}` : hasCalc ? css[min] : `${grow} ${shrink} ${css[min]}`;\n }\n }\n return extendObject(css, {\n 'box-sizing': 'border-box'\n });\n }\n }\n FlexStyleBuilder.ɵfac = function FlexStyleBuilder_Factory(t) {\n return new (t || FlexStyleBuilder)(i0.ɵɵinject(LAYOUT_CONFIG));\n };\n FlexStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlexStyleBuilder,\n factory: FlexStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return FlexStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$4 = ['fxFlex', 'fxFlex.xs', 'fxFlex.sm', 'fxFlex.md', 'fxFlex.lg', 'fxFlex.xl', 'fxFlex.lt-sm', 'fxFlex.lt-md', 'fxFlex.lt-lg', 'fxFlex.lt-xl', 'fxFlex.gt-xs', 'fxFlex.gt-sm', 'fxFlex.gt-md', 'fxFlex.gt-lg'];\nconst selector$4 = `\n [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md],\n [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md],\n [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm],\n [fxFlex.gt-md], [fxFlex.gt-lg]\n`;\n/**\n * Directive to control the size of a flex item using flex-basis, flex-grow, and flex-shrink.\n * Corresponds to the css `flex` shorthand property.\n *\n * @see https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n */\nlet FlexDirective = /*#__PURE__*/(() => {\n class FlexDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, layoutConfig, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.layoutConfig = layoutConfig;\n this.marshal = marshal;\n this.DIRECTIVE_KEY = 'flex';\n this.direction = undefined;\n this.wrap = undefined;\n this.flexGrow = '1';\n this.flexShrink = '1';\n this.init();\n }\n get shrink() {\n return this.flexShrink;\n }\n set shrink(value) {\n this.flexShrink = value || '1';\n this.triggerReflow();\n }\n get grow() {\n return this.flexGrow;\n }\n set grow(value) {\n this.flexGrow = value || '1';\n this.triggerReflow();\n }\n ngOnInit() {\n if (this.parentElement) {\n this.marshal.trackValue(this.parentElement, 'layout').pipe(takeUntil(this.destroySubject)).subscribe(this.onLayoutChange.bind(this));\n this.marshal.trackValue(this.nativeElement, 'layout-align').pipe(takeUntil(this.destroySubject)).subscribe(this.triggerReflow.bind(this));\n }\n }\n /**\n * Caches the parent container's 'flex-direction' and updates the element's style.\n * Used as a handler for layout change events from the parent flex container.\n */\n onLayoutChange(matcher) {\n const layout = matcher.value;\n const layoutParts = layout.split(' ');\n this.direction = layoutParts[0];\n this.wrap = layoutParts[1] !== undefined && layoutParts[1] === 'wrap';\n this.triggerUpdate();\n }\n /** Input to this is exclusively the basis input value */\n updateWithValue(value) {\n const addFlexToParent = this.layoutConfig.addFlexToParent !== false;\n if (this.direction === undefined) {\n this.direction = this.getFlexFlowDirection(this.parentElement, addFlexToParent);\n }\n if (this.wrap === undefined) {\n this.wrap = this.hasWrap(this.parentElement);\n }\n const direction = this.direction;\n const isHorizontal = direction.startsWith('row');\n const hasWrap = this.wrap;\n if (isHorizontal && hasWrap) {\n this.styleCache = flexRowWrapCache;\n } else if (isHorizontal && !hasWrap) {\n this.styleCache = flexRowCache;\n } else if (!isHorizontal && hasWrap) {\n this.styleCache = flexColumnWrapCache;\n } else if (!isHorizontal && !hasWrap) {\n this.styleCache = flexColumnCache;\n }\n const basis = String(value).replace(';', '');\n const parts = validateBasis(basis, this.flexGrow, this.flexShrink);\n this.addStyles(parts.join(' '), {\n direction,\n hasWrap\n });\n }\n /** Trigger a style reflow, usually based on a shrink/grow input event */\n triggerReflow() {\n const activatedValue = this.activatedValue;\n if (activatedValue !== undefined) {\n const parts = validateBasis(activatedValue + '', this.flexGrow, this.flexShrink);\n this.marshal.updateElement(this.nativeElement, this.DIRECTIVE_KEY, parts.join(' '));\n }\n }\n }\n FlexDirective.ɵfac = function FlexDirective_Factory(t) {\n return new (t || FlexDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(LAYOUT_CONFIG), i0.ɵɵdirectiveInject(FlexStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n FlexDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlexDirective,\n inputs: {\n shrink: [i0.ɵɵInputFlags.None, \"fxShrink\", \"shrink\"],\n grow: [i0.ɵɵInputFlags.None, \"fxGrow\", \"grow\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FlexDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DefaultFlexDirective = /*#__PURE__*/(() => {\n class DefaultFlexDirective extends FlexDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$4;\n }\n }\n DefaultFlexDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultFlexDirective_BaseFactory;\n return function DefaultFlexDirective_Factory(t) {\n return (ɵDefaultFlexDirective_BaseFactory || (ɵDefaultFlexDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultFlexDirective)))(t || DefaultFlexDirective);\n };\n })();\n DefaultFlexDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultFlexDirective,\n selectors: [[\"\", \"fxFlex\", \"\"], [\"\", \"fxFlex.xs\", \"\"], [\"\", \"fxFlex.sm\", \"\"], [\"\", \"fxFlex.md\", \"\"], [\"\", \"fxFlex.lg\", \"\"], [\"\", \"fxFlex.xl\", \"\"], [\"\", \"fxFlex.lt-sm\", \"\"], [\"\", \"fxFlex.lt-md\", \"\"], [\"\", \"fxFlex.lt-lg\", \"\"], [\"\", \"fxFlex.lt-xl\", \"\"], [\"\", \"fxFlex.gt-xs\", \"\"], [\"\", \"fxFlex.gt-sm\", \"\"], [\"\", \"fxFlex.gt-md\", \"\"], [\"\", \"fxFlex.gt-lg\", \"\"]],\n inputs: {\n fxFlex: \"fxFlex\",\n \"fxFlex.xs\": \"fxFlex.xs\",\n \"fxFlex.sm\": \"fxFlex.sm\",\n \"fxFlex.md\": \"fxFlex.md\",\n \"fxFlex.lg\": \"fxFlex.lg\",\n \"fxFlex.xl\": \"fxFlex.xl\",\n \"fxFlex.lt-sm\": \"fxFlex.lt-sm\",\n \"fxFlex.lt-md\": \"fxFlex.lt-md\",\n \"fxFlex.lt-lg\": \"fxFlex.lt-lg\",\n \"fxFlex.lt-xl\": \"fxFlex.lt-xl\",\n \"fxFlex.gt-xs\": \"fxFlex.gt-xs\",\n \"fxFlex.gt-sm\": \"fxFlex.gt-sm\",\n \"fxFlex.gt-md\": \"fxFlex.gt-md\",\n \"fxFlex.gt-lg\": \"fxFlex.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultFlexDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst flexRowCache = /*#__PURE__*/new Map();\nconst flexColumnCache = /*#__PURE__*/new Map();\nconst flexRowWrapCache = /*#__PURE__*/new Map();\nconst flexColumnWrapCache = /*#__PURE__*/new Map();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet FlexOrderStyleBuilder = /*#__PURE__*/(() => {\n class FlexOrderStyleBuilder extends StyleBuilder {\n buildStyles(value) {\n return {\n order: value && parseInt(value, 10) || ''\n };\n }\n }\n FlexOrderStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵFlexOrderStyleBuilder_BaseFactory;\n return function FlexOrderStyleBuilder_Factory(t) {\n return (ɵFlexOrderStyleBuilder_BaseFactory || (ɵFlexOrderStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(FlexOrderStyleBuilder)))(t || FlexOrderStyleBuilder);\n };\n })();\n FlexOrderStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlexOrderStyleBuilder,\n factory: FlexOrderStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return FlexOrderStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$3 = ['fxFlexOrder', 'fxFlexOrder.xs', 'fxFlexOrder.sm', 'fxFlexOrder.md', 'fxFlexOrder.lg', 'fxFlexOrder.xl', 'fxFlexOrder.lt-sm', 'fxFlexOrder.lt-md', 'fxFlexOrder.lt-lg', 'fxFlexOrder.lt-xl', 'fxFlexOrder.gt-xs', 'fxFlexOrder.gt-sm', 'fxFlexOrder.gt-md', 'fxFlexOrder.gt-lg'];\nconst selector$3 = `\n [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md],\n [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md],\n [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm],\n [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]\n`;\n/**\n * 'flex-order' flexbox styling directive\n * Configures the positional ordering of the element in a sorted layout container\n * @see https://css-tricks.com/almanac/properties/o/order/\n */\nlet FlexOrderDirective = /*#__PURE__*/(() => {\n class FlexOrderDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'flex-order';\n this.styleCache = flexOrderCache;\n this.init();\n }\n }\n FlexOrderDirective.ɵfac = function FlexOrderDirective_Factory(t) {\n return new (t || FlexOrderDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(FlexOrderStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n FlexOrderDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlexOrderDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FlexOrderDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst flexOrderCache = /*#__PURE__*/new Map();\nlet DefaultFlexOrderDirective = /*#__PURE__*/(() => {\n class DefaultFlexOrderDirective extends FlexOrderDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$3;\n }\n }\n DefaultFlexOrderDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultFlexOrderDirective_BaseFactory;\n return function DefaultFlexOrderDirective_Factory(t) {\n return (ɵDefaultFlexOrderDirective_BaseFactory || (ɵDefaultFlexOrderDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultFlexOrderDirective)))(t || DefaultFlexOrderDirective);\n };\n })();\n DefaultFlexOrderDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultFlexOrderDirective,\n selectors: [[\"\", \"fxFlexOrder\", \"\"], [\"\", \"fxFlexOrder.xs\", \"\"], [\"\", \"fxFlexOrder.sm\", \"\"], [\"\", \"fxFlexOrder.md\", \"\"], [\"\", \"fxFlexOrder.lg\", \"\"], [\"\", \"fxFlexOrder.xl\", \"\"], [\"\", \"fxFlexOrder.lt-sm\", \"\"], [\"\", \"fxFlexOrder.lt-md\", \"\"], [\"\", \"fxFlexOrder.lt-lg\", \"\"], [\"\", \"fxFlexOrder.lt-xl\", \"\"], [\"\", \"fxFlexOrder.gt-xs\", \"\"], [\"\", \"fxFlexOrder.gt-sm\", \"\"], [\"\", \"fxFlexOrder.gt-md\", \"\"], [\"\", \"fxFlexOrder.gt-lg\", \"\"]],\n inputs: {\n fxFlexOrder: \"fxFlexOrder\",\n \"fxFlexOrder.xs\": \"fxFlexOrder.xs\",\n \"fxFlexOrder.sm\": \"fxFlexOrder.sm\",\n \"fxFlexOrder.md\": \"fxFlexOrder.md\",\n \"fxFlexOrder.lg\": \"fxFlexOrder.lg\",\n \"fxFlexOrder.xl\": \"fxFlexOrder.xl\",\n \"fxFlexOrder.lt-sm\": \"fxFlexOrder.lt-sm\",\n \"fxFlexOrder.lt-md\": \"fxFlexOrder.lt-md\",\n \"fxFlexOrder.lt-lg\": \"fxFlexOrder.lt-lg\",\n \"fxFlexOrder.lt-xl\": \"fxFlexOrder.lt-xl\",\n \"fxFlexOrder.gt-xs\": \"fxFlexOrder.gt-xs\",\n \"fxFlexOrder.gt-sm\": \"fxFlexOrder.gt-sm\",\n \"fxFlexOrder.gt-md\": \"fxFlexOrder.gt-md\",\n \"fxFlexOrder.gt-lg\": \"fxFlexOrder.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultFlexOrderDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet FlexOffsetStyleBuilder = /*#__PURE__*/(() => {\n class FlexOffsetStyleBuilder extends StyleBuilder {\n constructor(_config) {\n super();\n this._config = _config;\n }\n buildStyles(offset, parent) {\n offset || (offset = '0');\n offset = ɵmultiply(offset, this._config.multiplier);\n const isPercent = String(offset).indexOf('%') > -1;\n const isPx = String(offset).indexOf('px') > -1;\n if (!isPx && !isPercent && !isNaN(+offset)) {\n offset = `${offset}%`;\n }\n const horizontalLayoutKey = parent.isRtl ? 'margin-right' : 'margin-left';\n const styles = isFlowHorizontal(parent.layout) ? {\n [horizontalLayoutKey]: offset\n } : {\n 'margin-top': offset\n };\n return styles;\n }\n }\n FlexOffsetStyleBuilder.ɵfac = function FlexOffsetStyleBuilder_Factory(t) {\n return new (t || FlexOffsetStyleBuilder)(i0.ɵɵinject(LAYOUT_CONFIG));\n };\n FlexOffsetStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlexOffsetStyleBuilder,\n factory: FlexOffsetStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return FlexOffsetStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$2 = ['fxFlexOffset', 'fxFlexOffset.xs', 'fxFlexOffset.sm', 'fxFlexOffset.md', 'fxFlexOffset.lg', 'fxFlexOffset.xl', 'fxFlexOffset.lt-sm', 'fxFlexOffset.lt-md', 'fxFlexOffset.lt-lg', 'fxFlexOffset.lt-xl', 'fxFlexOffset.gt-xs', 'fxFlexOffset.gt-sm', 'fxFlexOffset.gt-md', 'fxFlexOffset.gt-lg'];\nconst selector$2 = `\n [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md],\n [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md],\n [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm],\n [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]\n`;\n/**\n * 'flex-offset' flexbox styling directive\n * Configures the 'margin-left' of the element in a layout container\n */\nlet FlexOffsetDirective = /*#__PURE__*/(() => {\n class FlexOffsetDirective extends BaseDirective2 {\n constructor(elRef, directionality, styleBuilder, marshal, styler) {\n super(elRef, styleBuilder, styler, marshal);\n this.directionality = directionality;\n this.DIRECTIVE_KEY = 'flex-offset';\n this.init([this.directionality.change]);\n // Parent DOM `layout-gap` with affect the nested child with `flex-offset`\n if (this.parentElement) {\n this.marshal.trackValue(this.parentElement, 'layout-gap').pipe(takeUntil(this.destroySubject)).subscribe(this.triggerUpdate.bind(this));\n }\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Using the current fxFlexOffset value, update the inline CSS\n * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n * otherwise `margin-top` is used for the offset.\n */\n updateWithValue(value = '') {\n // The flex-direction of this element's flex container. Defaults to 'row'.\n const layout = this.getFlexFlowDirection(this.parentElement, true);\n const isRtl = this.directionality.value === 'rtl';\n if (layout === 'row' && isRtl) {\n this.styleCache = flexOffsetCacheRowRtl;\n } else if (layout === 'row' && !isRtl) {\n this.styleCache = flexOffsetCacheRowLtr;\n } else if (layout === 'column' && isRtl) {\n this.styleCache = flexOffsetCacheColumnRtl;\n } else if (layout === 'column' && !isRtl) {\n this.styleCache = flexOffsetCacheColumnLtr;\n }\n this.addStyles(value + '', {\n layout,\n isRtl\n });\n }\n }\n FlexOffsetDirective.ɵfac = function FlexOffsetDirective_Factory(t) {\n return new (t || FlexOffsetDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.Directionality), i0.ɵɵdirectiveInject(FlexOffsetStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(i1.StyleUtils));\n };\n FlexOffsetDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlexOffsetDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FlexOffsetDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DefaultFlexOffsetDirective = /*#__PURE__*/(() => {\n class DefaultFlexOffsetDirective extends FlexOffsetDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$2;\n }\n }\n DefaultFlexOffsetDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultFlexOffsetDirective_BaseFactory;\n return function DefaultFlexOffsetDirective_Factory(t) {\n return (ɵDefaultFlexOffsetDirective_BaseFactory || (ɵDefaultFlexOffsetDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultFlexOffsetDirective)))(t || DefaultFlexOffsetDirective);\n };\n })();\n DefaultFlexOffsetDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultFlexOffsetDirective,\n selectors: [[\"\", \"fxFlexOffset\", \"\"], [\"\", \"fxFlexOffset.xs\", \"\"], [\"\", \"fxFlexOffset.sm\", \"\"], [\"\", \"fxFlexOffset.md\", \"\"], [\"\", \"fxFlexOffset.lg\", \"\"], [\"\", \"fxFlexOffset.xl\", \"\"], [\"\", \"fxFlexOffset.lt-sm\", \"\"], [\"\", \"fxFlexOffset.lt-md\", \"\"], [\"\", \"fxFlexOffset.lt-lg\", \"\"], [\"\", \"fxFlexOffset.lt-xl\", \"\"], [\"\", \"fxFlexOffset.gt-xs\", \"\"], [\"\", \"fxFlexOffset.gt-sm\", \"\"], [\"\", \"fxFlexOffset.gt-md\", \"\"], [\"\", \"fxFlexOffset.gt-lg\", \"\"]],\n inputs: {\n fxFlexOffset: \"fxFlexOffset\",\n \"fxFlexOffset.xs\": \"fxFlexOffset.xs\",\n \"fxFlexOffset.sm\": \"fxFlexOffset.sm\",\n \"fxFlexOffset.md\": \"fxFlexOffset.md\",\n \"fxFlexOffset.lg\": \"fxFlexOffset.lg\",\n \"fxFlexOffset.xl\": \"fxFlexOffset.xl\",\n \"fxFlexOffset.lt-sm\": \"fxFlexOffset.lt-sm\",\n \"fxFlexOffset.lt-md\": \"fxFlexOffset.lt-md\",\n \"fxFlexOffset.lt-lg\": \"fxFlexOffset.lt-lg\",\n \"fxFlexOffset.lt-xl\": \"fxFlexOffset.lt-xl\",\n \"fxFlexOffset.gt-xs\": \"fxFlexOffset.gt-xs\",\n \"fxFlexOffset.gt-sm\": \"fxFlexOffset.gt-sm\",\n \"fxFlexOffset.gt-md\": \"fxFlexOffset.gt-md\",\n \"fxFlexOffset.gt-lg\": \"fxFlexOffset.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultFlexOffsetDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst flexOffsetCacheRowRtl = /*#__PURE__*/new Map();\nconst flexOffsetCacheColumnRtl = /*#__PURE__*/new Map();\nconst flexOffsetCacheRowLtr = /*#__PURE__*/new Map();\nconst flexOffsetCacheColumnLtr = /*#__PURE__*/new Map();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet FlexAlignStyleBuilder = /*#__PURE__*/(() => {\n class FlexAlignStyleBuilder extends StyleBuilder {\n buildStyles(input) {\n input = input || 'stretch';\n const styles = {};\n // Cross-axis\n switch (input) {\n case 'start':\n styles['align-self'] = 'flex-start';\n break;\n case 'end':\n styles['align-self'] = 'flex-end';\n break;\n default:\n styles['align-self'] = input;\n break;\n }\n return styles;\n }\n }\n FlexAlignStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵFlexAlignStyleBuilder_BaseFactory;\n return function FlexAlignStyleBuilder_Factory(t) {\n return (ɵFlexAlignStyleBuilder_BaseFactory || (ɵFlexAlignStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(FlexAlignStyleBuilder)))(t || FlexAlignStyleBuilder);\n };\n })();\n FlexAlignStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlexAlignStyleBuilder,\n factory: FlexAlignStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return FlexAlignStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$1 = ['fxFlexAlign', 'fxFlexAlign.xs', 'fxFlexAlign.sm', 'fxFlexAlign.md', 'fxFlexAlign.lg', 'fxFlexAlign.xl', 'fxFlexAlign.lt-sm', 'fxFlexAlign.lt-md', 'fxFlexAlign.lt-lg', 'fxFlexAlign.lt-xl', 'fxFlexAlign.gt-xs', 'fxFlexAlign.gt-sm', 'fxFlexAlign.gt-md', 'fxFlexAlign.gt-lg'];\nconst selector$1 = `\n [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md],\n [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md],\n [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm],\n [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]\n`;\n/**\n * 'flex-align' flexbox styling directive\n * Allows element-specific overrides for cross-axis alignments in a layout container\n * @see https://css-tricks.com/almanac/properties/a/align-self/\n */\nlet FlexAlignDirective = /*#__PURE__*/(() => {\n class FlexAlignDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'flex-align';\n this.styleCache = flexAlignCache;\n this.init();\n }\n }\n FlexAlignDirective.ɵfac = function FlexAlignDirective_Factory(t) {\n return new (t || FlexAlignDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(FlexAlignStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n FlexAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlexAlignDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FlexAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst flexAlignCache = /*#__PURE__*/new Map();\nlet DefaultFlexAlignDirective = /*#__PURE__*/(() => {\n class DefaultFlexAlignDirective extends FlexAlignDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$1;\n }\n }\n DefaultFlexAlignDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultFlexAlignDirective_BaseFactory;\n return function DefaultFlexAlignDirective_Factory(t) {\n return (ɵDefaultFlexAlignDirective_BaseFactory || (ɵDefaultFlexAlignDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultFlexAlignDirective)))(t || DefaultFlexAlignDirective);\n };\n })();\n DefaultFlexAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultFlexAlignDirective,\n selectors: [[\"\", \"fxFlexAlign\", \"\"], [\"\", \"fxFlexAlign.xs\", \"\"], [\"\", \"fxFlexAlign.sm\", \"\"], [\"\", \"fxFlexAlign.md\", \"\"], [\"\", \"fxFlexAlign.lg\", \"\"], [\"\", \"fxFlexAlign.xl\", \"\"], [\"\", \"fxFlexAlign.lt-sm\", \"\"], [\"\", \"fxFlexAlign.lt-md\", \"\"], [\"\", \"fxFlexAlign.lt-lg\", \"\"], [\"\", \"fxFlexAlign.lt-xl\", \"\"], [\"\", \"fxFlexAlign.gt-xs\", \"\"], [\"\", \"fxFlexAlign.gt-sm\", \"\"], [\"\", \"fxFlexAlign.gt-md\", \"\"], [\"\", \"fxFlexAlign.gt-lg\", \"\"]],\n inputs: {\n fxFlexAlign: \"fxFlexAlign\",\n \"fxFlexAlign.xs\": \"fxFlexAlign.xs\",\n \"fxFlexAlign.sm\": \"fxFlexAlign.sm\",\n \"fxFlexAlign.md\": \"fxFlexAlign.md\",\n \"fxFlexAlign.lg\": \"fxFlexAlign.lg\",\n \"fxFlexAlign.xl\": \"fxFlexAlign.xl\",\n \"fxFlexAlign.lt-sm\": \"fxFlexAlign.lt-sm\",\n \"fxFlexAlign.lt-md\": \"fxFlexAlign.lt-md\",\n \"fxFlexAlign.lt-lg\": \"fxFlexAlign.lt-lg\",\n \"fxFlexAlign.lt-xl\": \"fxFlexAlign.lt-xl\",\n \"fxFlexAlign.gt-xs\": \"fxFlexAlign.gt-xs\",\n \"fxFlexAlign.gt-sm\": \"fxFlexAlign.gt-sm\",\n \"fxFlexAlign.gt-md\": \"fxFlexAlign.gt-md\",\n \"fxFlexAlign.gt-lg\": \"fxFlexAlign.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultFlexAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst FLEX_FILL_CSS = {\n 'margin': 0,\n 'width': '100%',\n 'height': '100%',\n 'min-width': '100%',\n 'min-height': '100%'\n};\nlet FlexFillStyleBuilder = /*#__PURE__*/(() => {\n class FlexFillStyleBuilder extends StyleBuilder {\n buildStyles(_input) {\n return FLEX_FILL_CSS;\n }\n }\n FlexFillStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵFlexFillStyleBuilder_BaseFactory;\n return function FlexFillStyleBuilder_Factory(t) {\n return (ɵFlexFillStyleBuilder_BaseFactory || (ɵFlexFillStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(FlexFillStyleBuilder)))(t || FlexFillStyleBuilder);\n };\n })();\n FlexFillStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FlexFillStyleBuilder,\n factory: FlexFillStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return FlexFillStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * 'fxFill' flexbox styling directive\n * Maximizes width and height of element in a layout container\n *\n * NOTE: fxFill is NOT responsive API!!\n */\nlet FlexFillDirective = /*#__PURE__*/(() => {\n class FlexFillDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.styleCache = flexFillCache;\n this.addStyles('');\n }\n }\n FlexFillDirective.ɵfac = function FlexFillDirective_Factory(t) {\n return new (t || FlexFillDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(FlexFillStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n FlexFillDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FlexFillDirective,\n selectors: [[\"\", \"fxFill\", \"\"], [\"\", \"fxFlexFill\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return FlexFillDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst flexFillCache = /*#__PURE__*/new Map();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet LayoutAlignStyleBuilder = /*#__PURE__*/(() => {\n class LayoutAlignStyleBuilder extends StyleBuilder {\n buildStyles(align, parent) {\n const css = {},\n [mainAxis, crossAxis] = align.split(' ');\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['justify-content'] = 'center';\n break;\n case 'space-around':\n css['justify-content'] = 'space-around';\n break;\n case 'space-between':\n css['justify-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['justify-content'] = 'space-evenly';\n break;\n case 'end':\n case 'flex-end':\n css['justify-content'] = 'flex-end';\n break;\n case 'start':\n case 'flex-start':\n default:\n css['justify-content'] = 'flex-start'; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'flex-start':\n css['align-items'] = css['align-content'] = 'flex-start';\n break;\n case 'center':\n css['align-items'] = css['align-content'] = 'center';\n break;\n case 'end':\n case 'flex-end':\n css['align-items'] = css['align-content'] = 'flex-end';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n css['align-items'] = 'stretch';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n css['align-items'] = 'stretch';\n break;\n case 'baseline':\n css['align-content'] = 'stretch';\n css['align-items'] = 'baseline';\n break;\n case 'stretch':\n default:\n // 'stretch'\n css['align-items'] = css['align-content'] = 'stretch'; // default cross axis\n break;\n }\n return extendObject(css, {\n 'display': parent.inline ? 'inline-flex' : 'flex',\n 'flex-direction': parent.layout,\n 'box-sizing': 'border-box',\n 'max-width': crossAxis === 'stretch' ? !isFlowHorizontal(parent.layout) ? '100%' : null : null,\n 'max-height': crossAxis === 'stretch' ? isFlowHorizontal(parent.layout) ? '100%' : null : null\n });\n }\n }\n LayoutAlignStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵLayoutAlignStyleBuilder_BaseFactory;\n return function LayoutAlignStyleBuilder_Factory(t) {\n return (ɵLayoutAlignStyleBuilder_BaseFactory || (ɵLayoutAlignStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(LayoutAlignStyleBuilder)))(t || LayoutAlignStyleBuilder);\n };\n })();\n LayoutAlignStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LayoutAlignStyleBuilder,\n factory: LayoutAlignStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return LayoutAlignStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs = ['fxLayoutAlign', 'fxLayoutAlign.xs', 'fxLayoutAlign.sm', 'fxLayoutAlign.md', 'fxLayoutAlign.lg', 'fxLayoutAlign.xl', 'fxLayoutAlign.lt-sm', 'fxLayoutAlign.lt-md', 'fxLayoutAlign.lt-lg', 'fxLayoutAlign.lt-xl', 'fxLayoutAlign.gt-xs', 'fxLayoutAlign.gt-sm', 'fxLayoutAlign.gt-md', 'fxLayoutAlign.gt-lg'];\nconst selector = `\n [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],\n [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],\n [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],\n [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]\n`;\n/**\n * 'layout-align' flexbox styling directive\n * Defines positioning of child elements along main and cross axis in a layout container\n * Optional values: {main-axis} values or {main-axis cross-axis} value pairs\n *\n * @see https://css-tricks.com/almanac/properties/j/justify-content/\n * @see https://css-tricks.com/almanac/properties/a/align-items/\n * @see https://css-tricks.com/almanac/properties/a/align-content/\n */\nlet LayoutAlignDirective = /*#__PURE__*/(() => {\n class LayoutAlignDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'layout-align';\n this.layout = 'row'; // default flex-direction\n this.inline = false; // default inline value\n this.init();\n this.marshal.trackValue(this.nativeElement, 'layout').pipe(takeUntil(this.destroySubject)).subscribe(this.onLayoutChange.bind(this));\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n *\n */\n updateWithValue(value) {\n const layout = this.layout || 'row';\n const inline = this.inline;\n if (layout === 'row' && inline) {\n this.styleCache = layoutAlignHorizontalInlineCache;\n } else if (layout === 'row' && !inline) {\n this.styleCache = layoutAlignHorizontalCache;\n } else if (layout === 'row-reverse' && inline) {\n this.styleCache = layoutAlignHorizontalRevInlineCache;\n } else if (layout === 'row-reverse' && !inline) {\n this.styleCache = layoutAlignHorizontalRevCache;\n } else if (layout === 'column' && inline) {\n this.styleCache = layoutAlignVerticalInlineCache;\n } else if (layout === 'column' && !inline) {\n this.styleCache = layoutAlignVerticalCache;\n } else if (layout === 'column-reverse' && inline) {\n this.styleCache = layoutAlignVerticalRevInlineCache;\n } else if (layout === 'column-reverse' && !inline) {\n this.styleCache = layoutAlignVerticalRevCache;\n }\n this.addStyles(value, {\n layout,\n inline\n });\n }\n /**\n * Cache the parent container 'flex-direction' and update the 'flex' styles\n */\n onLayoutChange(matcher) {\n const layoutKeys = matcher.value.split(' ');\n this.layout = layoutKeys[0];\n this.inline = matcher.value.includes('inline');\n if (!LAYOUT_VALUES.find(x => x === this.layout)) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n }\n }\n LayoutAlignDirective.ɵfac = function LayoutAlignDirective_Factory(t) {\n return new (t || LayoutAlignDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(LayoutAlignStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n LayoutAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LayoutAlignDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return LayoutAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DefaultLayoutAlignDirective = /*#__PURE__*/(() => {\n class DefaultLayoutAlignDirective extends LayoutAlignDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs;\n }\n }\n DefaultLayoutAlignDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultLayoutAlignDirective_BaseFactory;\n return function DefaultLayoutAlignDirective_Factory(t) {\n return (ɵDefaultLayoutAlignDirective_BaseFactory || (ɵDefaultLayoutAlignDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultLayoutAlignDirective)))(t || DefaultLayoutAlignDirective);\n };\n })();\n DefaultLayoutAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultLayoutAlignDirective,\n selectors: [[\"\", \"fxLayoutAlign\", \"\"], [\"\", \"fxLayoutAlign.xs\", \"\"], [\"\", \"fxLayoutAlign.sm\", \"\"], [\"\", \"fxLayoutAlign.md\", \"\"], [\"\", \"fxLayoutAlign.lg\", \"\"], [\"\", \"fxLayoutAlign.xl\", \"\"], [\"\", \"fxLayoutAlign.lt-sm\", \"\"], [\"\", \"fxLayoutAlign.lt-md\", \"\"], [\"\", \"fxLayoutAlign.lt-lg\", \"\"], [\"\", \"fxLayoutAlign.lt-xl\", \"\"], [\"\", \"fxLayoutAlign.gt-xs\", \"\"], [\"\", \"fxLayoutAlign.gt-sm\", \"\"], [\"\", \"fxLayoutAlign.gt-md\", \"\"], [\"\", \"fxLayoutAlign.gt-lg\", \"\"]],\n inputs: {\n fxLayoutAlign: \"fxLayoutAlign\",\n \"fxLayoutAlign.xs\": \"fxLayoutAlign.xs\",\n \"fxLayoutAlign.sm\": \"fxLayoutAlign.sm\",\n \"fxLayoutAlign.md\": \"fxLayoutAlign.md\",\n \"fxLayoutAlign.lg\": \"fxLayoutAlign.lg\",\n \"fxLayoutAlign.xl\": \"fxLayoutAlign.xl\",\n \"fxLayoutAlign.lt-sm\": \"fxLayoutAlign.lt-sm\",\n \"fxLayoutAlign.lt-md\": \"fxLayoutAlign.lt-md\",\n \"fxLayoutAlign.lt-lg\": \"fxLayoutAlign.lt-lg\",\n \"fxLayoutAlign.lt-xl\": \"fxLayoutAlign.lt-xl\",\n \"fxLayoutAlign.gt-xs\": \"fxLayoutAlign.gt-xs\",\n \"fxLayoutAlign.gt-sm\": \"fxLayoutAlign.gt-sm\",\n \"fxLayoutAlign.gt-md\": \"fxLayoutAlign.gt-md\",\n \"fxLayoutAlign.gt-lg\": \"fxLayoutAlign.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultLayoutAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst layoutAlignHorizontalCache = /*#__PURE__*/new Map();\nconst layoutAlignVerticalCache = /*#__PURE__*/new Map();\nconst layoutAlignHorizontalRevCache = /*#__PURE__*/new Map();\nconst layoutAlignVerticalRevCache = /*#__PURE__*/new Map();\nconst layoutAlignHorizontalInlineCache = /*#__PURE__*/new Map();\nconst layoutAlignVerticalInlineCache = /*#__PURE__*/new Map();\nconst layoutAlignHorizontalRevInlineCache = /*#__PURE__*/new Map();\nconst layoutAlignVerticalRevInlineCache = /*#__PURE__*/new Map();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ALL_DIRECTIVES = [DefaultLayoutDirective, DefaultLayoutGapDirective, DefaultLayoutAlignDirective, DefaultFlexOrderDirective, DefaultFlexOffsetDirective, FlexFillDirective, DefaultFlexAlignDirective, DefaultFlexDirective];\n/**\n * *****************************************************************\n * Define module for the Flex API\n * *****************************************************************\n */\nlet FlexModule = /*#__PURE__*/(() => {\n class FlexModule {}\n FlexModule.ɵfac = function FlexModule_Factory(t) {\n return new (t || FlexModule)();\n };\n FlexModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FlexModule\n });\n FlexModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CoreModule, BidiModule]\n });\n return FlexModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DefaultFlexAlignDirective, DefaultFlexDirective, DefaultFlexOffsetDirective, DefaultFlexOrderDirective, DefaultLayoutAlignDirective, DefaultLayoutDirective, DefaultLayoutGapDirective, FlexAlignDirective, FlexAlignStyleBuilder, FlexDirective, FlexFillDirective, FlexFillStyleBuilder, FlexModule, FlexOffsetDirective, FlexOffsetStyleBuilder, FlexOrderDirective, FlexOrderStyleBuilder, FlexStyleBuilder, LayoutAlignDirective, LayoutAlignStyleBuilder, LayoutDirective, LayoutGapDirective, LayoutGapStyleBuilder, LayoutStyleBuilder };\n","import * as i0 from '@angular/core';\nimport { Injectable, PLATFORM_ID, Directive, Inject, Input, Optional, Self, SecurityContext, NgModule } from '@angular/core';\nimport * as i1 from '@angular/flex-layout/core';\nimport { StyleBuilder, BaseDirective2, SERVER_TOKEN, LAYOUT_CONFIG, CoreModule } from '@angular/flex-layout/core';\nimport * as i2 from '@angular/common';\nimport { isPlatformServer, NgClass, NgStyle } from '@angular/common';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil } from 'rxjs/operators';\nimport * as i2$1 from '@angular/platform-browser';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet ImgSrcStyleBuilder = /*#__PURE__*/(() => {\n class ImgSrcStyleBuilder extends StyleBuilder {\n buildStyles(url) {\n return {\n 'content': url ? `url(${url})` : ''\n };\n }\n }\n ImgSrcStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵImgSrcStyleBuilder_BaseFactory;\n return function ImgSrcStyleBuilder_Factory(t) {\n return (ɵImgSrcStyleBuilder_BaseFactory || (ɵImgSrcStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(ImgSrcStyleBuilder)))(t || ImgSrcStyleBuilder);\n };\n })();\n ImgSrcStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ImgSrcStyleBuilder,\n factory: ImgSrcStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return ImgSrcStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ImgSrcDirective = /*#__PURE__*/(() => {\n class ImgSrcDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal, platformId, serverModuleLoaded) {\n super(elementRef, styleBuilder, styler, marshal);\n this.platformId = platformId;\n this.serverModuleLoaded = serverModuleLoaded;\n this.DIRECTIVE_KEY = 'img-src';\n this.defaultSrc = '';\n this.styleCache = imgSrcCache;\n this.init();\n this.setValue(this.nativeElement.getAttribute('src') || '', '');\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.setAttribute('src', '');\n }\n }\n set src(val) {\n this.defaultSrc = val;\n this.setValue(this.defaultSrc, '');\n }\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `
` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n */\n updateWithValue(value) {\n const url = value || this.defaultSrc;\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.addStyles(url);\n } else {\n this.nativeElement.setAttribute('src', url);\n }\n }\n }\n ImgSrcDirective.ɵfac = function ImgSrcDirective_Factory(t) {\n return new (t || ImgSrcDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ImgSrcStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(SERVER_TOKEN));\n };\n ImgSrcDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ImgSrcDirective,\n inputs: {\n src: \"src\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return ImgSrcDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst imgSrcCache = /*#__PURE__*/new Map();\nconst inputs$3 = ['src.xs', 'src.sm', 'src.md', 'src.lg', 'src.xl', 'src.lt-sm', 'src.lt-md', 'src.lt-lg', 'src.lt-xl', 'src.gt-xs', 'src.gt-sm', 'src.gt-md', 'src.gt-lg'];\nconst selector$3 = `\n img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl],\n img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl],\n img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]\n`;\n/**\n * This directive provides a responsive API for the HTML
'src' attribute\n * and will update the img.src property upon each responsive activation.\n *\n * e.g.\n *
\n *\n * @see https://css-tricks.com/responsive-images-youre-just-changing-resolutions-use-src/\n */\nlet DefaultImgSrcDirective = /*#__PURE__*/(() => {\n class DefaultImgSrcDirective extends ImgSrcDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$3;\n }\n }\n DefaultImgSrcDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultImgSrcDirective_BaseFactory;\n return function DefaultImgSrcDirective_Factory(t) {\n return (ɵDefaultImgSrcDirective_BaseFactory || (ɵDefaultImgSrcDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultImgSrcDirective)))(t || DefaultImgSrcDirective);\n };\n })();\n DefaultImgSrcDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultImgSrcDirective,\n selectors: [[\"img\", \"src.xs\", \"\"], [\"img\", \"src.sm\", \"\"], [\"img\", \"src.md\", \"\"], [\"img\", \"src.lg\", \"\"], [\"img\", \"src.xl\", \"\"], [\"img\", \"src.lt-sm\", \"\"], [\"img\", \"src.lt-md\", \"\"], [\"img\", \"src.lt-lg\", \"\"], [\"img\", \"src.lt-xl\", \"\"], [\"img\", \"src.gt-xs\", \"\"], [\"img\", \"src.gt-sm\", \"\"], [\"img\", \"src.gt-md\", \"\"], [\"img\", \"src.gt-lg\", \"\"]],\n inputs: {\n \"src.xs\": \"src.xs\",\n \"src.sm\": \"src.sm\",\n \"src.md\": \"src.md\",\n \"src.lg\": \"src.lg\",\n \"src.xl\": \"src.xl\",\n \"src.lt-sm\": \"src.lt-sm\",\n \"src.lt-md\": \"src.lt-md\",\n \"src.lt-lg\": \"src.lt-lg\",\n \"src.lt-xl\": \"src.lt-xl\",\n \"src.gt-xs\": \"src.gt-xs\",\n \"src.gt-sm\": \"src.gt-sm\",\n \"src.gt-md\": \"src.gt-md\",\n \"src.gt-lg\": \"src.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultImgSrcDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet ClassDirective = /*#__PURE__*/(() => {\n class ClassDirective extends BaseDirective2 {\n constructor(elementRef, styler, marshal, iterableDiffers, keyValueDiffers, renderer2, ngClassInstance) {\n super(elementRef, null, styler, marshal);\n this.ngClassInstance = ngClassInstance;\n this.DIRECTIVE_KEY = 'ngClass';\n if (!this.ngClassInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been defined on\n // the same host element; since the responsive variations may be defined...\n this.ngClassInstance = new NgClass(iterableDiffers, keyValueDiffers, elementRef, renderer2);\n }\n this.init();\n this.setValue('', '');\n }\n /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n */\n set klass(val) {\n this.ngClassInstance.klass = val;\n this.setValue(val, '');\n }\n updateWithValue(value) {\n this.ngClassInstance.ngClass = value;\n this.ngClassInstance.ngDoCheck();\n }\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n */\n ngDoCheck() {\n this.ngClassInstance.ngDoCheck();\n }\n }\n ClassDirective.ɵfac = function ClassDirective_Factory(t) {\n return new (t || ClassDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(i0.IterableDiffers), i0.ɵɵdirectiveInject(i0.KeyValueDiffers), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i2.NgClass, 10));\n };\n ClassDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ClassDirective,\n inputs: {\n klass: [i0.ɵɵInputFlags.None, \"class\", \"klass\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return ClassDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs$2 = ['ngClass', 'ngClass.xs', 'ngClass.sm', 'ngClass.md', 'ngClass.lg', 'ngClass.xl', 'ngClass.lt-sm', 'ngClass.lt-md', 'ngClass.lt-lg', 'ngClass.lt-xl', 'ngClass.gt-xs', 'ngClass.gt-sm', 'ngClass.gt-md', 'ngClass.gt-lg'];\nconst selector$2 = `\n [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],\n [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],\n [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]\n`;\n/**\n * Directive to add responsive support for ngClass.\n * This maintains the core functionality of 'ngClass' and adds responsive API\n * Note: this class is a no-op when rendered on the server\n */\nlet DefaultClassDirective = /*#__PURE__*/(() => {\n class DefaultClassDirective extends ClassDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$2;\n }\n }\n DefaultClassDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultClassDirective_BaseFactory;\n return function DefaultClassDirective_Factory(t) {\n return (ɵDefaultClassDirective_BaseFactory || (ɵDefaultClassDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultClassDirective)))(t || DefaultClassDirective);\n };\n })();\n DefaultClassDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultClassDirective,\n selectors: [[\"\", \"ngClass\", \"\"], [\"\", \"ngClass.xs\", \"\"], [\"\", \"ngClass.sm\", \"\"], [\"\", \"ngClass.md\", \"\"], [\"\", \"ngClass.lg\", \"\"], [\"\", \"ngClass.xl\", \"\"], [\"\", \"ngClass.lt-sm\", \"\"], [\"\", \"ngClass.lt-md\", \"\"], [\"\", \"ngClass.lt-lg\", \"\"], [\"\", \"ngClass.lt-xl\", \"\"], [\"\", \"ngClass.gt-xs\", \"\"], [\"\", \"ngClass.gt-sm\", \"\"], [\"\", \"ngClass.gt-md\", \"\"], [\"\", \"ngClass.gt-lg\", \"\"]],\n inputs: {\n ngClass: \"ngClass\",\n \"ngClass.xs\": \"ngClass.xs\",\n \"ngClass.sm\": \"ngClass.sm\",\n \"ngClass.md\": \"ngClass.md\",\n \"ngClass.lg\": \"ngClass.lg\",\n \"ngClass.xl\": \"ngClass.xl\",\n \"ngClass.lt-sm\": \"ngClass.lt-sm\",\n \"ngClass.lt-md\": \"ngClass.lt-md\",\n \"ngClass.lt-lg\": \"ngClass.lt-lg\",\n \"ngClass.lt-xl\": \"ngClass.lt-xl\",\n \"ngClass.gt-xs\": \"ngClass.gt-xs\",\n \"ngClass.gt-sm\": \"ngClass.gt-sm\",\n \"ngClass.gt-md\": \"ngClass.gt-md\",\n \"ngClass.gt-lg\": \"ngClass.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultClassDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet ShowHideStyleBuilder = /*#__PURE__*/(() => {\n class ShowHideStyleBuilder extends StyleBuilder {\n buildStyles(show, parent) {\n const shouldShow = show === 'true';\n return {\n 'display': shouldShow ? parent.display || (parent.isServer ? 'initial' : '') : 'none'\n };\n }\n }\n ShowHideStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵShowHideStyleBuilder_BaseFactory;\n return function ShowHideStyleBuilder_Factory(t) {\n return (ɵShowHideStyleBuilder_BaseFactory || (ɵShowHideStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(ShowHideStyleBuilder)))(t || ShowHideStyleBuilder);\n };\n })();\n ShowHideStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ShowHideStyleBuilder,\n factory: ShowHideStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return ShowHideStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ShowHideDirective = /*#__PURE__*/(() => {\n class ShowHideDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal, layoutConfig, platformId, serverModuleLoaded) {\n super(elementRef, styleBuilder, styler, marshal);\n this.layoutConfig = layoutConfig;\n this.platformId = platformId;\n this.serverModuleLoaded = serverModuleLoaded;\n this.DIRECTIVE_KEY = 'show-hide';\n /** Original DOM Element CSS display style */\n this.display = '';\n this.hasLayout = false;\n this.hasFlexChild = false;\n }\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n ngAfterViewInit() {\n this.trackExtraTriggers();\n const children = Array.from(this.nativeElement.children);\n for (let i = 0; i < children.length; i++) {\n if (this.marshal.hasValue(children[i], 'flex')) {\n this.hasFlexChild = true;\n break;\n }\n }\n if (DISPLAY_MAP.has(this.nativeElement)) {\n this.display = DISPLAY_MAP.get(this.nativeElement);\n } else {\n this.display = this.getDisplayStyle();\n DISPLAY_MAP.set(this.nativeElement, this.display);\n }\n this.init();\n // set the default to show unless explicitly overridden\n const defaultValue = this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY, '');\n if (defaultValue === undefined || defaultValue === '') {\n this.setValue(true, '');\n } else {\n this.triggerUpdate();\n }\n }\n /**\n * On changes to any @Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n */\n ngOnChanges(changes) {\n Object.keys(changes).forEach(key => {\n if (this.inputs.indexOf(key) !== -1) {\n const inputKey = key.split('.');\n const bp = inputKey.slice(1).join('.');\n const inputValue = changes[key].currentValue;\n let shouldShow = inputValue !== '' ? inputValue !== 0 ? coerceBooleanProperty(inputValue) : false : true;\n if (inputKey[0] === 'fxHide') {\n shouldShow = !shouldShow;\n }\n this.setValue(shouldShow, bp);\n }\n });\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n */\n trackExtraTriggers() {\n this.hasLayout = this.marshal.hasValue(this.nativeElement, 'layout');\n ['layout', 'layout-align'].forEach(key => {\n this.marshal.trackValue(this.nativeElement, key).pipe(takeUntil(this.destroySubject)).subscribe(this.triggerUpdate.bind(this));\n });\n }\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n */\n getDisplayStyle() {\n return this.hasLayout || this.hasFlexChild && this.layoutConfig.addFlexToParent ? 'flex' : this.styler.lookupStyle(this.nativeElement, 'display', true);\n }\n /** Validate the visibility value and then update the host's inline display style */\n updateWithValue(value = true) {\n if (value === '') {\n return;\n }\n const isServer = isPlatformServer(this.platformId);\n this.addStyles(value ? 'true' : 'false', {\n display: this.display,\n isServer\n });\n if (isServer && this.serverModuleLoaded) {\n this.nativeElement.style.setProperty('display', '');\n }\n this.marshal.triggerUpdate(this.parentElement, 'layout-gap');\n }\n }\n ShowHideDirective.ɵfac = function ShowHideDirective_Factory(t) {\n return new (t || ShowHideDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ShowHideStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(LAYOUT_CONFIG), i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(SERVER_TOKEN));\n };\n ShowHideDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ShowHideDirective,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n return ShowHideDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst DISPLAY_MAP = /*#__PURE__*/new WeakMap();\nconst inputs$1 = ['fxShow', 'fxShow.print', 'fxShow.xs', 'fxShow.sm', 'fxShow.md', 'fxShow.lg', 'fxShow.xl', 'fxShow.lt-sm', 'fxShow.lt-md', 'fxShow.lt-lg', 'fxShow.lt-xl', 'fxShow.gt-xs', 'fxShow.gt-sm', 'fxShow.gt-md', 'fxShow.gt-lg', 'fxHide', 'fxHide.print', 'fxHide.xs', 'fxHide.sm', 'fxHide.md', 'fxHide.lg', 'fxHide.xl', 'fxHide.lt-sm', 'fxHide.lt-md', 'fxHide.lt-lg', 'fxHide.lt-xl', 'fxHide.gt-xs', 'fxHide.gt-sm', 'fxHide.gt-md', 'fxHide.gt-lg'];\nconst selector$1 = `\n [fxShow], [fxShow.print],\n [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl],\n [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl],\n [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg],\n [fxHide], [fxHide.print],\n [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl],\n [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl],\n [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]\n`;\n/**\n * 'show' Layout API directive\n */\nlet DefaultShowHideDirective = /*#__PURE__*/(() => {\n class DefaultShowHideDirective extends ShowHideDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$1;\n }\n }\n DefaultShowHideDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultShowHideDirective_BaseFactory;\n return function DefaultShowHideDirective_Factory(t) {\n return (ɵDefaultShowHideDirective_BaseFactory || (ɵDefaultShowHideDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultShowHideDirective)))(t || DefaultShowHideDirective);\n };\n })();\n DefaultShowHideDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultShowHideDirective,\n selectors: [[\"\", \"fxShow\", \"\"], [\"\", \"fxShow.print\", \"\"], [\"\", \"fxShow.xs\", \"\"], [\"\", \"fxShow.sm\", \"\"], [\"\", \"fxShow.md\", \"\"], [\"\", \"fxShow.lg\", \"\"], [\"\", \"fxShow.xl\", \"\"], [\"\", \"fxShow.lt-sm\", \"\"], [\"\", \"fxShow.lt-md\", \"\"], [\"\", \"fxShow.lt-lg\", \"\"], [\"\", \"fxShow.lt-xl\", \"\"], [\"\", \"fxShow.gt-xs\", \"\"], [\"\", \"fxShow.gt-sm\", \"\"], [\"\", \"fxShow.gt-md\", \"\"], [\"\", \"fxShow.gt-lg\", \"\"], [\"\", \"fxHide\", \"\"], [\"\", \"fxHide.print\", \"\"], [\"\", \"fxHide.xs\", \"\"], [\"\", \"fxHide.sm\", \"\"], [\"\", \"fxHide.md\", \"\"], [\"\", \"fxHide.lg\", \"\"], [\"\", \"fxHide.xl\", \"\"], [\"\", \"fxHide.lt-sm\", \"\"], [\"\", \"fxHide.lt-md\", \"\"], [\"\", \"fxHide.lt-lg\", \"\"], [\"\", \"fxHide.lt-xl\", \"\"], [\"\", \"fxHide.gt-xs\", \"\"], [\"\", \"fxHide.gt-sm\", \"\"], [\"\", \"fxHide.gt-md\", \"\"], [\"\", \"fxHide.gt-lg\", \"\"]],\n inputs: {\n fxShow: \"fxShow\",\n \"fxShow.print\": \"fxShow.print\",\n \"fxShow.xs\": \"fxShow.xs\",\n \"fxShow.sm\": \"fxShow.sm\",\n \"fxShow.md\": \"fxShow.md\",\n \"fxShow.lg\": \"fxShow.lg\",\n \"fxShow.xl\": \"fxShow.xl\",\n \"fxShow.lt-sm\": \"fxShow.lt-sm\",\n \"fxShow.lt-md\": \"fxShow.lt-md\",\n \"fxShow.lt-lg\": \"fxShow.lt-lg\",\n \"fxShow.lt-xl\": \"fxShow.lt-xl\",\n \"fxShow.gt-xs\": \"fxShow.gt-xs\",\n \"fxShow.gt-sm\": \"fxShow.gt-sm\",\n \"fxShow.gt-md\": \"fxShow.gt-md\",\n \"fxShow.gt-lg\": \"fxShow.gt-lg\",\n fxHide: \"fxHide\",\n \"fxHide.print\": \"fxHide.print\",\n \"fxHide.xs\": \"fxHide.xs\",\n \"fxHide.sm\": \"fxHide.sm\",\n \"fxHide.md\": \"fxHide.md\",\n \"fxHide.lg\": \"fxHide.lg\",\n \"fxHide.xl\": \"fxHide.xl\",\n \"fxHide.lt-sm\": \"fxHide.lt-sm\",\n \"fxHide.lt-md\": \"fxHide.lt-md\",\n \"fxHide.lt-lg\": \"fxHide.lt-lg\",\n \"fxHide.lt-xl\": \"fxHide.lt-xl\",\n \"fxHide.gt-xs\": \"fxHide.gt-xs\",\n \"fxHide.gt-sm\": \"fxHide.gt-sm\",\n \"fxHide.gt-md\": \"fxHide.gt-md\",\n \"fxHide.gt-lg\": \"fxHide.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultShowHideDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** NgStyle allowed inputs */\nclass NgStyleKeyValue {\n constructor(key, value, noQuotes = true) {\n this.key = key;\n this.value = value;\n this.key = noQuotes ? key.replace(/['\"]/g, '').trim() : key.trim();\n this.value = noQuotes ? value.replace(/['\"]/g, '').trim() : value.trim();\n this.value = this.value.replace(/;/, '');\n }\n}\nfunction getType(target) {\n let what = typeof target;\n if (what === 'object') {\n return target.constructor === Array ? 'array' : target.constructor === Set ? 'set' : 'object';\n }\n return what;\n}\n/**\n * Split string of key:value pairs into Array of k-v pairs\n * e.g. 'key:value; key:value; key:value;' -> ['key:value',...]\n */\nfunction buildRawList(source, delimiter = ';') {\n return String(source).trim().split(delimiter).map(val => val.trim()).filter(val => val !== '');\n}\n/** Convert array of key:value strings to a iterable map object */\nfunction buildMapFromList$1(styles, sanitize) {\n const sanitizeValue = it => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n return styles.map(stringToKeyValue).filter(entry => !!entry).map(sanitizeValue).reduce(keyValuesToMap, {});\n}\n/** Convert Set or raw Object to an iterable NgStyleMap */\nfunction buildMapFromSet(source, sanitize) {\n let list = [];\n if (getType(source) === 'set') {\n source.forEach(entry => list.push(entry));\n } else {\n Object.keys(source).forEach(key => {\n list.push(`${key}:${source[key]}`);\n });\n }\n return buildMapFromList$1(list, sanitize);\n}\n/** Convert 'key:value' -> [key, value] */\nfunction stringToKeyValue(it) {\n const [key, ...vals] = it.split(':');\n return new NgStyleKeyValue(key, vals.join(':'));\n}\n/** Convert [ [key,value] ] -> { key : value } */\nfunction keyValuesToMap(map, entry) {\n if (!!entry.key) {\n map[entry.key] = entry.value;\n }\n return map;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet StyleDirective = /*#__PURE__*/(() => {\n class StyleDirective extends BaseDirective2 {\n constructor(elementRef, styler, marshal, sanitizer, differs, renderer2, ngStyleInstance, serverLoaded, platformId) {\n super(elementRef, null, styler, marshal);\n this.sanitizer = sanitizer;\n this.ngStyleInstance = ngStyleInstance;\n this.DIRECTIVE_KEY = 'ngStyle';\n if (!this.ngStyleInstance) {\n // Create an instance NgStyle Directive instance only if `ngStyle=\"\"` has NOT been\n // defined on the same host element; since the responsive variations may be defined...\n this.ngStyleInstance = new NgStyle(elementRef, differs, renderer2);\n }\n this.init();\n const styles = this.nativeElement.getAttribute('style') ?? '';\n this.fallbackStyles = this.buildStyleMap(styles);\n this.isServer = serverLoaded && isPlatformServer(platformId);\n }\n /** Add generated styles */\n updateWithValue(value) {\n const styles = this.buildStyleMap(value);\n this.ngStyleInstance.ngStyle = {\n ...this.fallbackStyles,\n ...styles\n };\n if (this.isServer) {\n this.applyStyleToElement(styles);\n }\n this.ngStyleInstance.ngDoCheck();\n }\n /** Remove generated styles */\n clearStyles() {\n this.ngStyleInstance.ngStyle = this.fallbackStyles;\n this.ngStyleInstance.ngDoCheck();\n }\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n */\n buildStyleMap(styles) {\n // Always safe-guard (aka sanitize) style property values\n const sanitizer = val => this.sanitizer.sanitize(SecurityContext.STYLE, val) ?? '';\n if (styles) {\n switch (getType(styles)) {\n case 'string':\n return buildMapFromList(buildRawList(styles), sanitizer);\n case 'array':\n return buildMapFromList(styles, sanitizer);\n case 'set':\n return buildMapFromSet(styles, sanitizer);\n default:\n return buildMapFromSet(styles, sanitizer);\n }\n }\n return {};\n }\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /** For ChangeDetectionStrategy.onPush and ngOnChanges() updates */\n ngDoCheck() {\n this.ngStyleInstance.ngDoCheck();\n }\n }\n StyleDirective.ɵfac = function StyleDirective_Factory(t) {\n return new (t || StyleDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller), i0.ɵɵdirectiveInject(i2$1.DomSanitizer), i0.ɵɵdirectiveInject(i0.KeyValueDiffers), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i2.NgStyle, 10), i0.ɵɵdirectiveInject(SERVER_TOKEN), i0.ɵɵdirectiveInject(PLATFORM_ID));\n };\n StyleDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StyleDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return StyleDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst inputs = ['ngStyle', 'ngStyle.xs', 'ngStyle.sm', 'ngStyle.md', 'ngStyle.lg', 'ngStyle.xl', 'ngStyle.lt-sm', 'ngStyle.lt-md', 'ngStyle.lt-lg', 'ngStyle.lt-xl', 'ngStyle.gt-xs', 'ngStyle.gt-sm', 'ngStyle.gt-md', 'ngStyle.gt-lg'];\nconst selector = `\n [ngStyle],\n [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl],\n [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl],\n [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]\n`;\n/**\n * Directive to add responsive support for ngStyle.\n *\n */\nlet DefaultStyleDirective = /*#__PURE__*/(() => {\n class DefaultStyleDirective extends StyleDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs;\n }\n }\n DefaultStyleDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultStyleDirective_BaseFactory;\n return function DefaultStyleDirective_Factory(t) {\n return (ɵDefaultStyleDirective_BaseFactory || (ɵDefaultStyleDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultStyleDirective)))(t || DefaultStyleDirective);\n };\n })();\n DefaultStyleDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultStyleDirective,\n selectors: [[\"\", \"ngStyle\", \"\"], [\"\", \"ngStyle.xs\", \"\"], [\"\", \"ngStyle.sm\", \"\"], [\"\", \"ngStyle.md\", \"\"], [\"\", \"ngStyle.lg\", \"\"], [\"\", \"ngStyle.xl\", \"\"], [\"\", \"ngStyle.lt-sm\", \"\"], [\"\", \"ngStyle.lt-md\", \"\"], [\"\", \"ngStyle.lt-lg\", \"\"], [\"\", \"ngStyle.lt-xl\", \"\"], [\"\", \"ngStyle.gt-xs\", \"\"], [\"\", \"ngStyle.gt-sm\", \"\"], [\"\", \"ngStyle.gt-md\", \"\"], [\"\", \"ngStyle.gt-lg\", \"\"]],\n inputs: {\n ngStyle: \"ngStyle\",\n \"ngStyle.xs\": \"ngStyle.xs\",\n \"ngStyle.sm\": \"ngStyle.sm\",\n \"ngStyle.md\": \"ngStyle.md\",\n \"ngStyle.lg\": \"ngStyle.lg\",\n \"ngStyle.xl\": \"ngStyle.xl\",\n \"ngStyle.lt-sm\": \"ngStyle.lt-sm\",\n \"ngStyle.lt-md\": \"ngStyle.lt-md\",\n \"ngStyle.lt-lg\": \"ngStyle.lt-lg\",\n \"ngStyle.lt-xl\": \"ngStyle.lt-xl\",\n \"ngStyle.gt-xs\": \"ngStyle.gt-xs\",\n \"ngStyle.gt-sm\": \"ngStyle.gt-sm\",\n \"ngStyle.gt-md\": \"ngStyle.gt-md\",\n \"ngStyle.gt-lg\": \"ngStyle.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultStyleDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/** Build a styles map from a list of styles, while sanitizing bad values first */\nfunction buildMapFromList(styles, sanitize) {\n const sanitizeValue = it => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n return styles.map(stringToKeyValue).filter(entry => !!entry).map(sanitizeValue).reduce(keyValuesToMap, {});\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ALL_DIRECTIVES = [DefaultShowHideDirective, DefaultClassDirective, DefaultStyleDirective, DefaultImgSrcDirective];\n/**\n * *****************************************************************\n * Define module for the Extended API\n * *****************************************************************\n */\nlet ExtendedModule = /*#__PURE__*/(() => {\n class ExtendedModule {}\n ExtendedModule.ɵfac = function ExtendedModule_Factory(t) {\n return new (t || ExtendedModule)();\n };\n ExtendedModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ExtendedModule\n });\n ExtendedModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CoreModule]\n });\n return ExtendedModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ClassDirective, DefaultClassDirective, DefaultImgSrcDirective, DefaultShowHideDirective, DefaultStyleDirective, ExtendedModule, ImgSrcDirective, ImgSrcStyleBuilder, ShowHideDirective, ShowHideStyleBuilder, StyleDirective };\n","import * as i0 from '@angular/core';\nimport { Injectable, Directive, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/flex-layout/core';\nimport { StyleBuilder, BaseDirective2, CoreModule } from '@angular/flex-layout/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ROW_DEFAULT = 'stretch';\nconst COL_DEFAULT = 'stretch';\nlet GridAlignStyleBuilder = /*#__PURE__*/(() => {\n class GridAlignStyleBuilder extends StyleBuilder {\n buildStyles(input) {\n return buildCss$2(input || ROW_DEFAULT);\n }\n }\n GridAlignStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAlignStyleBuilder_BaseFactory;\n return function GridAlignStyleBuilder_Factory(t) {\n return (ɵGridAlignStyleBuilder_BaseFactory || (ɵGridAlignStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridAlignStyleBuilder)))(t || GridAlignStyleBuilder);\n };\n })();\n GridAlignStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAlignStyleBuilder,\n factory: GridAlignStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridAlignStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAlignDirective = /*#__PURE__*/(() => {\n class GridAlignDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-align';\n this.styleCache = alignCache;\n this.init();\n }\n }\n GridAlignDirective.ɵfac = function GridAlignDirective_Factory(t) {\n return new (t || GridAlignDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridAlignStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAlignDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst alignCache = /*#__PURE__*/new Map();\nconst inputs$a = ['gdGridAlign', 'gdGridAlign.xs', 'gdGridAlign.sm', 'gdGridAlign.md', 'gdGridAlign.lg', 'gdGridAlign.xl', 'gdGridAlign.lt-sm', 'gdGridAlign.lt-md', 'gdGridAlign.lt-lg', 'gdGridAlign.lt-xl', 'gdGridAlign.gt-xs', 'gdGridAlign.gt-sm', 'gdGridAlign.gt-md', 'gdGridAlign.gt-lg'];\nconst selector$a = `\n [gdGridAlign],\n [gdGridAlign.xs], [gdGridAlign.sm], [gdGridAlign.md], [gdGridAlign.lg],[gdGridAlign.xl],\n [gdGridAlign.lt-sm], [gdGridAlign.lt-md], [gdGridAlign.lt-lg], [gdGridAlign.lt-xl],\n [gdGridAlign.gt-xs], [gdGridAlign.gt-sm], [gdGridAlign.gt-md], [gdGridAlign.gt-lg]\n`;\n/**\n * 'align' CSS Grid styling directive for grid children\n * Defines positioning of child elements along row and column axis in a grid container\n * Optional values: {row-axis} values or {row-axis column-axis} value pairs\n *\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-justify-self\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-align-self\n */\nlet DefaultGridAlignDirective = /*#__PURE__*/(() => {\n class DefaultGridAlignDirective extends GridAlignDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$a;\n }\n }\n DefaultGridAlignDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAlignDirective_BaseFactory;\n return function DefaultGridAlignDirective_Factory(t) {\n return (ɵDefaultGridAlignDirective_BaseFactory || (ɵDefaultGridAlignDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAlignDirective)))(t || DefaultGridAlignDirective);\n };\n })();\n DefaultGridAlignDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAlignDirective,\n selectors: [[\"\", \"gdGridAlign\", \"\"], [\"\", \"gdGridAlign.xs\", \"\"], [\"\", \"gdGridAlign.sm\", \"\"], [\"\", \"gdGridAlign.md\", \"\"], [\"\", \"gdGridAlign.lg\", \"\"], [\"\", \"gdGridAlign.xl\", \"\"], [\"\", \"gdGridAlign.lt-sm\", \"\"], [\"\", \"gdGridAlign.lt-md\", \"\"], [\"\", \"gdGridAlign.lt-lg\", \"\"], [\"\", \"gdGridAlign.lt-xl\", \"\"], [\"\", \"gdGridAlign.gt-xs\", \"\"], [\"\", \"gdGridAlign.gt-sm\", \"\"], [\"\", \"gdGridAlign.gt-md\", \"\"], [\"\", \"gdGridAlign.gt-lg\", \"\"]],\n inputs: {\n gdGridAlign: \"gdGridAlign\",\n \"gdGridAlign.xs\": \"gdGridAlign.xs\",\n \"gdGridAlign.sm\": \"gdGridAlign.sm\",\n \"gdGridAlign.md\": \"gdGridAlign.md\",\n \"gdGridAlign.lg\": \"gdGridAlign.lg\",\n \"gdGridAlign.xl\": \"gdGridAlign.xl\",\n \"gdGridAlign.lt-sm\": \"gdGridAlign.lt-sm\",\n \"gdGridAlign.lt-md\": \"gdGridAlign.lt-md\",\n \"gdGridAlign.lt-lg\": \"gdGridAlign.lt-lg\",\n \"gdGridAlign.lt-xl\": \"gdGridAlign.lt-xl\",\n \"gdGridAlign.gt-xs\": \"gdGridAlign.gt-xs\",\n \"gdGridAlign.gt-sm\": \"gdGridAlign.gt-sm\",\n \"gdGridAlign.gt-md\": \"gdGridAlign.gt-md\",\n \"gdGridAlign.gt-lg\": \"gdGridAlign.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAlignDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction buildCss$2(align = '') {\n const css = {},\n [rowAxis, columnAxis] = align.split(' ');\n // Row axis\n switch (rowAxis) {\n case 'end':\n css['justify-self'] = 'end';\n break;\n case 'center':\n css['justify-self'] = 'center';\n break;\n case 'stretch':\n css['justify-self'] = 'stretch';\n break;\n case 'start':\n css['justify-self'] = 'start';\n break;\n default:\n css['justify-self'] = ROW_DEFAULT; // default row axis\n break;\n }\n // Column axis\n switch (columnAxis) {\n case 'end':\n css['align-self'] = 'end';\n break;\n case 'center':\n css['align-self'] = 'center';\n break;\n case 'stretch':\n css['align-self'] = 'stretch';\n break;\n case 'start':\n css['align-self'] = 'start';\n break;\n default:\n css['align-self'] = COL_DEFAULT; // default column axis\n break;\n }\n return css;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_MAIN$1 = 'start';\nconst DEFAULT_CROSS$1 = 'stretch';\nlet GridAlignColumnsStyleBuilder = /*#__PURE__*/(() => {\n class GridAlignColumnsStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n return buildCss$1(input || `${DEFAULT_MAIN$1} ${DEFAULT_CROSS$1}`, parent.inline);\n }\n }\n GridAlignColumnsStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAlignColumnsStyleBuilder_BaseFactory;\n return function GridAlignColumnsStyleBuilder_Factory(t) {\n return (ɵGridAlignColumnsStyleBuilder_BaseFactory || (ɵGridAlignColumnsStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridAlignColumnsStyleBuilder)))(t || GridAlignColumnsStyleBuilder);\n };\n })();\n GridAlignColumnsStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAlignColumnsStyleBuilder,\n factory: GridAlignColumnsStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridAlignColumnsStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAlignColumnsDirective = /*#__PURE__*/(() => {\n class GridAlignColumnsDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-align-columns';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? alignColumnsInlineCache : alignColumnsCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridAlignColumnsDirective.ɵfac = function GridAlignColumnsDirective_Factory(t) {\n return new (t || GridAlignColumnsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridAlignColumnsStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAlignColumnsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAlignColumnsDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAlignColumnsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst alignColumnsCache = /*#__PURE__*/new Map();\nconst alignColumnsInlineCache = /*#__PURE__*/new Map();\nconst inputs$9 = ['gdAlignColumns', 'gdAlignColumns.xs', 'gdAlignColumns.sm', 'gdAlignColumns.md', 'gdAlignColumns.lg', 'gdAlignColumns.xl', 'gdAlignColumns.lt-sm', 'gdAlignColumns.lt-md', 'gdAlignColumns.lt-lg', 'gdAlignColumns.lt-xl', 'gdAlignColumns.gt-xs', 'gdAlignColumns.gt-sm', 'gdAlignColumns.gt-md', 'gdAlignColumns.gt-lg'];\nconst selector$9 = `\n [gdAlignColumns],\n [gdAlignColumns.xs], [gdAlignColumns.sm], [gdAlignColumns.md],\n [gdAlignColumns.lg], [gdAlignColumns.xl], [gdAlignColumns.lt-sm],\n [gdAlignColumns.lt-md], [gdAlignColumns.lt-lg], [gdAlignColumns.lt-xl],\n [gdAlignColumns.gt-xs], [gdAlignColumns.gt-sm], [gdAlignColumns.gt-md],\n [gdAlignColumns.gt-lg]\n`;\n/**\n * 'column alignment' CSS Grid styling directive\n * Configures the alignment in the column direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-19\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-21\n */\nlet DefaultGridAlignColumnsDirective = /*#__PURE__*/(() => {\n class DefaultGridAlignColumnsDirective extends GridAlignColumnsDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$9;\n }\n }\n DefaultGridAlignColumnsDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAlignColumnsDirective_BaseFactory;\n return function DefaultGridAlignColumnsDirective_Factory(t) {\n return (ɵDefaultGridAlignColumnsDirective_BaseFactory || (ɵDefaultGridAlignColumnsDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAlignColumnsDirective)))(t || DefaultGridAlignColumnsDirective);\n };\n })();\n DefaultGridAlignColumnsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAlignColumnsDirective,\n selectors: [[\"\", \"gdAlignColumns\", \"\"], [\"\", \"gdAlignColumns.xs\", \"\"], [\"\", \"gdAlignColumns.sm\", \"\"], [\"\", \"gdAlignColumns.md\", \"\"], [\"\", \"gdAlignColumns.lg\", \"\"], [\"\", \"gdAlignColumns.xl\", \"\"], [\"\", \"gdAlignColumns.lt-sm\", \"\"], [\"\", \"gdAlignColumns.lt-md\", \"\"], [\"\", \"gdAlignColumns.lt-lg\", \"\"], [\"\", \"gdAlignColumns.lt-xl\", \"\"], [\"\", \"gdAlignColumns.gt-xs\", \"\"], [\"\", \"gdAlignColumns.gt-sm\", \"\"], [\"\", \"gdAlignColumns.gt-md\", \"\"], [\"\", \"gdAlignColumns.gt-lg\", \"\"]],\n inputs: {\n gdAlignColumns: \"gdAlignColumns\",\n \"gdAlignColumns.xs\": \"gdAlignColumns.xs\",\n \"gdAlignColumns.sm\": \"gdAlignColumns.sm\",\n \"gdAlignColumns.md\": \"gdAlignColumns.md\",\n \"gdAlignColumns.lg\": \"gdAlignColumns.lg\",\n \"gdAlignColumns.xl\": \"gdAlignColumns.xl\",\n \"gdAlignColumns.lt-sm\": \"gdAlignColumns.lt-sm\",\n \"gdAlignColumns.lt-md\": \"gdAlignColumns.lt-md\",\n \"gdAlignColumns.lt-lg\": \"gdAlignColumns.lt-lg\",\n \"gdAlignColumns.lt-xl\": \"gdAlignColumns.lt-xl\",\n \"gdAlignColumns.gt-xs\": \"gdAlignColumns.gt-xs\",\n \"gdAlignColumns.gt-sm\": \"gdAlignColumns.gt-sm\",\n \"gdAlignColumns.gt-md\": \"gdAlignColumns.gt-md\",\n \"gdAlignColumns.gt-lg\": \"gdAlignColumns.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAlignColumnsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction buildCss$1(align, inline) {\n const css = {},\n [mainAxis, crossAxis] = align.split(' ');\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['align-content'] = 'center';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['align-content'] = 'space-evenly';\n break;\n case 'end':\n css['align-content'] = 'end';\n break;\n case 'start':\n css['align-content'] = 'start';\n break;\n case 'stretch':\n css['align-content'] = 'stretch';\n break;\n default:\n css['align-content'] = DEFAULT_MAIN$1; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n css['align-items'] = 'start';\n break;\n case 'center':\n css['align-items'] = 'center';\n break;\n case 'end':\n css['align-items'] = 'end';\n break;\n case 'stretch':\n css['align-items'] = 'stretch';\n break;\n default:\n // 'stretch'\n css['align-items'] = DEFAULT_CROSS$1; // default cross axis\n break;\n }\n css['display'] = inline ? 'inline-grid' : 'grid';\n return css;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_MAIN = 'start';\nconst DEFAULT_CROSS = 'stretch';\nlet GridAlignRowsStyleBuilder = /*#__PURE__*/(() => {\n class GridAlignRowsStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n return buildCss(input || `${DEFAULT_MAIN} ${DEFAULT_CROSS}`, parent.inline);\n }\n }\n GridAlignRowsStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAlignRowsStyleBuilder_BaseFactory;\n return function GridAlignRowsStyleBuilder_Factory(t) {\n return (ɵGridAlignRowsStyleBuilder_BaseFactory || (ɵGridAlignRowsStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridAlignRowsStyleBuilder)))(t || GridAlignRowsStyleBuilder);\n };\n })();\n GridAlignRowsStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAlignRowsStyleBuilder,\n factory: GridAlignRowsStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridAlignRowsStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAlignRowsDirective = /*#__PURE__*/(() => {\n class GridAlignRowsDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-align-rows';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? alignRowsInlineCache : alignRowsCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridAlignRowsDirective.ɵfac = function GridAlignRowsDirective_Factory(t) {\n return new (t || GridAlignRowsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridAlignRowsStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAlignRowsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAlignRowsDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAlignRowsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst alignRowsCache = /*#__PURE__*/new Map();\nconst alignRowsInlineCache = /*#__PURE__*/new Map();\nconst inputs$8 = ['gdAlignRows', 'gdAlignRows.xs', 'gdAlignRows.sm', 'gdAlignRows.md', 'gdAlignRows.lg', 'gdAlignRows.xl', 'gdAlignRows.lt-sm', 'gdAlignRows.lt-md', 'gdAlignRows.lt-lg', 'gdAlignRows.lt-xl', 'gdAlignRows.gt-xs', 'gdAlignRows.gt-sm', 'gdAlignRows.gt-md', 'gdAlignRows.gt-lg'];\nconst selector$8 = `\n [gdAlignRows],\n [gdAlignRows.xs], [gdAlignRows.sm], [gdAlignRows.md],\n [gdAlignRows.lg], [gdAlignRows.xl], [gdAlignRows.lt-sm],\n [gdAlignRows.lt-md], [gdAlignRows.lt-lg], [gdAlignRows.lt-xl],\n [gdAlignRows.gt-xs], [gdAlignRows.gt-sm], [gdAlignRows.gt-md],\n [gdAlignRows.gt-lg]\n`;\n/**\n * 'row alignment' CSS Grid styling directive\n * Configures the alignment in the row direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-18\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-20\n */\nlet DefaultGridAlignRowsDirective = /*#__PURE__*/(() => {\n class DefaultGridAlignRowsDirective extends GridAlignRowsDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$8;\n }\n }\n DefaultGridAlignRowsDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAlignRowsDirective_BaseFactory;\n return function DefaultGridAlignRowsDirective_Factory(t) {\n return (ɵDefaultGridAlignRowsDirective_BaseFactory || (ɵDefaultGridAlignRowsDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAlignRowsDirective)))(t || DefaultGridAlignRowsDirective);\n };\n })();\n DefaultGridAlignRowsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAlignRowsDirective,\n selectors: [[\"\", \"gdAlignRows\", \"\"], [\"\", \"gdAlignRows.xs\", \"\"], [\"\", \"gdAlignRows.sm\", \"\"], [\"\", \"gdAlignRows.md\", \"\"], [\"\", \"gdAlignRows.lg\", \"\"], [\"\", \"gdAlignRows.xl\", \"\"], [\"\", \"gdAlignRows.lt-sm\", \"\"], [\"\", \"gdAlignRows.lt-md\", \"\"], [\"\", \"gdAlignRows.lt-lg\", \"\"], [\"\", \"gdAlignRows.lt-xl\", \"\"], [\"\", \"gdAlignRows.gt-xs\", \"\"], [\"\", \"gdAlignRows.gt-sm\", \"\"], [\"\", \"gdAlignRows.gt-md\", \"\"], [\"\", \"gdAlignRows.gt-lg\", \"\"]],\n inputs: {\n gdAlignRows: \"gdAlignRows\",\n \"gdAlignRows.xs\": \"gdAlignRows.xs\",\n \"gdAlignRows.sm\": \"gdAlignRows.sm\",\n \"gdAlignRows.md\": \"gdAlignRows.md\",\n \"gdAlignRows.lg\": \"gdAlignRows.lg\",\n \"gdAlignRows.xl\": \"gdAlignRows.xl\",\n \"gdAlignRows.lt-sm\": \"gdAlignRows.lt-sm\",\n \"gdAlignRows.lt-md\": \"gdAlignRows.lt-md\",\n \"gdAlignRows.lt-lg\": \"gdAlignRows.lt-lg\",\n \"gdAlignRows.lt-xl\": \"gdAlignRows.lt-xl\",\n \"gdAlignRows.gt-xs\": \"gdAlignRows.gt-xs\",\n \"gdAlignRows.gt-sm\": \"gdAlignRows.gt-sm\",\n \"gdAlignRows.gt-md\": \"gdAlignRows.gt-md\",\n \"gdAlignRows.gt-lg\": \"gdAlignRows.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAlignRowsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction buildCss(align, inline) {\n const css = {},\n [mainAxis, crossAxis] = align.split(' ');\n // Main axis\n switch (mainAxis) {\n case 'center':\n case 'space-around':\n case 'space-between':\n case 'space-evenly':\n case 'end':\n case 'start':\n case 'stretch':\n css['justify-content'] = mainAxis;\n break;\n default:\n css['justify-content'] = DEFAULT_MAIN; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'center':\n case 'end':\n case 'stretch':\n css['justify-items'] = crossAxis;\n break;\n default:\n // 'stretch'\n css['justify-items'] = DEFAULT_CROSS; // default cross axis\n break;\n }\n css['display'] = inline ? 'inline-grid' : 'grid';\n return css;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$7 = 'auto';\nlet GridAreaStyleBuilder = /*#__PURE__*/(() => {\n class GridAreaStyleBuilder extends StyleBuilder {\n buildStyles(input) {\n return {\n 'grid-area': input || DEFAULT_VALUE$7\n };\n }\n }\n GridAreaStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAreaStyleBuilder_BaseFactory;\n return function GridAreaStyleBuilder_Factory(t) {\n return (ɵGridAreaStyleBuilder_BaseFactory || (ɵGridAreaStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridAreaStyleBuilder)))(t || GridAreaStyleBuilder);\n };\n })();\n GridAreaStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAreaStyleBuilder,\n factory: GridAreaStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridAreaStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAreaDirective = /*#__PURE__*/(() => {\n class GridAreaDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'grid-area';\n this.styleCache = gridAreaCache;\n this.init();\n }\n }\n GridAreaDirective.ɵfac = function GridAreaDirective_Factory(t) {\n return new (t || GridAreaDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(GridAreaStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAreaDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAreaDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAreaDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst gridAreaCache = /*#__PURE__*/new Map();\nconst inputs$7 = ['gdArea', 'gdArea.xs', 'gdArea.sm', 'gdArea.md', 'gdArea.lg', 'gdArea.xl', 'gdArea.lt-sm', 'gdArea.lt-md', 'gdArea.lt-lg', 'gdArea.lt-xl', 'gdArea.gt-xs', 'gdArea.gt-sm', 'gdArea.gt-md', 'gdArea.gt-lg'];\nconst selector$7 = `\n [gdArea],\n [gdArea.xs], [gdArea.sm], [gdArea.md], [gdArea.lg], [gdArea.xl],\n [gdArea.lt-sm], [gdArea.lt-md], [gdArea.lt-lg], [gdArea.lt-xl],\n [gdArea.gt-xs], [gdArea.gt-sm], [gdArea.gt-md], [gdArea.gt-lg]\n`;\n/**\n * 'grid-area' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-27\n */\nlet DefaultGridAreaDirective = /*#__PURE__*/(() => {\n class DefaultGridAreaDirective extends GridAreaDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$7;\n }\n }\n DefaultGridAreaDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAreaDirective_BaseFactory;\n return function DefaultGridAreaDirective_Factory(t) {\n return (ɵDefaultGridAreaDirective_BaseFactory || (ɵDefaultGridAreaDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAreaDirective)))(t || DefaultGridAreaDirective);\n };\n })();\n DefaultGridAreaDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAreaDirective,\n selectors: [[\"\", \"gdArea\", \"\"], [\"\", \"gdArea.xs\", \"\"], [\"\", \"gdArea.sm\", \"\"], [\"\", \"gdArea.md\", \"\"], [\"\", \"gdArea.lg\", \"\"], [\"\", \"gdArea.xl\", \"\"], [\"\", \"gdArea.lt-sm\", \"\"], [\"\", \"gdArea.lt-md\", \"\"], [\"\", \"gdArea.lt-lg\", \"\"], [\"\", \"gdArea.lt-xl\", \"\"], [\"\", \"gdArea.gt-xs\", \"\"], [\"\", \"gdArea.gt-sm\", \"\"], [\"\", \"gdArea.gt-md\", \"\"], [\"\", \"gdArea.gt-lg\", \"\"]],\n inputs: {\n gdArea: \"gdArea\",\n \"gdArea.xs\": \"gdArea.xs\",\n \"gdArea.sm\": \"gdArea.sm\",\n \"gdArea.md\": \"gdArea.md\",\n \"gdArea.lg\": \"gdArea.lg\",\n \"gdArea.xl\": \"gdArea.xl\",\n \"gdArea.lt-sm\": \"gdArea.lt-sm\",\n \"gdArea.lt-md\": \"gdArea.lt-md\",\n \"gdArea.lt-lg\": \"gdArea.lt-lg\",\n \"gdArea.lt-xl\": \"gdArea.lt-xl\",\n \"gdArea.gt-xs\": \"gdArea.gt-xs\",\n \"gdArea.gt-sm\": \"gdArea.gt-sm\",\n \"gdArea.gt-md\": \"gdArea.gt-md\",\n \"gdArea.gt-lg\": \"gdArea.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAreaDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$6 = 'none';\nconst DELIMETER = '|';\nlet GridAreasStyleBuiler = /*#__PURE__*/(() => {\n class GridAreasStyleBuiler extends StyleBuilder {\n buildStyles(input, parent) {\n const areas = (input || DEFAULT_VALUE$6).split(DELIMETER).map(v => `\"${v.trim()}\"`);\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-template-areas': areas.join(' ')\n };\n }\n }\n GridAreasStyleBuiler.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAreasStyleBuiler_BaseFactory;\n return function GridAreasStyleBuiler_Factory(t) {\n return (ɵGridAreasStyleBuiler_BaseFactory || (ɵGridAreasStyleBuiler_BaseFactory = i0.ɵɵgetInheritedFactory(GridAreasStyleBuiler)))(t || GridAreasStyleBuiler);\n };\n })();\n GridAreasStyleBuiler.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAreasStyleBuiler,\n factory: GridAreasStyleBuiler.ɵfac,\n providedIn: 'root'\n });\n return GridAreasStyleBuiler;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAreasDirective = /*#__PURE__*/(() => {\n class GridAreasDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'grid-areas';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? areasInlineCache : areasCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridAreasDirective.ɵfac = function GridAreasDirective_Factory(t) {\n return new (t || GridAreasDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(GridAreasStyleBuiler), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAreasDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAreasDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAreasDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst areasCache = /*#__PURE__*/new Map();\nconst areasInlineCache = /*#__PURE__*/new Map();\nconst inputs$6 = ['gdAreas', 'gdAreas.xs', 'gdAreas.sm', 'gdAreas.md', 'gdAreas.lg', 'gdAreas.xl', 'gdAreas.lt-sm', 'gdAreas.lt-md', 'gdAreas.lt-lg', 'gdAreas.lt-xl', 'gdAreas.gt-xs', 'gdAreas.gt-sm', 'gdAreas.gt-md', 'gdAreas.gt-lg'];\nconst selector$6 = `\n [gdAreas],\n [gdAreas.xs], [gdAreas.sm], [gdAreas.md], [gdAreas.lg], [gdAreas.xl],\n [gdAreas.lt-sm], [gdAreas.lt-md], [gdAreas.lt-lg], [gdAreas.lt-xl],\n [gdAreas.gt-xs], [gdAreas.gt-sm], [gdAreas.gt-md], [gdAreas.gt-lg]\n`;\n/**\n * 'grid-template-areas' CSS Grid styling directive\n * Configures the names of elements within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-14\n */\nlet DefaultGridAreasDirective = /*#__PURE__*/(() => {\n class DefaultGridAreasDirective extends GridAreasDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$6;\n }\n }\n DefaultGridAreasDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAreasDirective_BaseFactory;\n return function DefaultGridAreasDirective_Factory(t) {\n return (ɵDefaultGridAreasDirective_BaseFactory || (ɵDefaultGridAreasDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAreasDirective)))(t || DefaultGridAreasDirective);\n };\n })();\n DefaultGridAreasDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAreasDirective,\n selectors: [[\"\", \"gdAreas\", \"\"], [\"\", \"gdAreas.xs\", \"\"], [\"\", \"gdAreas.sm\", \"\"], [\"\", \"gdAreas.md\", \"\"], [\"\", \"gdAreas.lg\", \"\"], [\"\", \"gdAreas.xl\", \"\"], [\"\", \"gdAreas.lt-sm\", \"\"], [\"\", \"gdAreas.lt-md\", \"\"], [\"\", \"gdAreas.lt-lg\", \"\"], [\"\", \"gdAreas.lt-xl\", \"\"], [\"\", \"gdAreas.gt-xs\", \"\"], [\"\", \"gdAreas.gt-sm\", \"\"], [\"\", \"gdAreas.gt-md\", \"\"], [\"\", \"gdAreas.gt-lg\", \"\"]],\n inputs: {\n gdAreas: \"gdAreas\",\n \"gdAreas.xs\": \"gdAreas.xs\",\n \"gdAreas.sm\": \"gdAreas.sm\",\n \"gdAreas.md\": \"gdAreas.md\",\n \"gdAreas.lg\": \"gdAreas.lg\",\n \"gdAreas.xl\": \"gdAreas.xl\",\n \"gdAreas.lt-sm\": \"gdAreas.lt-sm\",\n \"gdAreas.lt-md\": \"gdAreas.lt-md\",\n \"gdAreas.lt-lg\": \"gdAreas.lt-lg\",\n \"gdAreas.lt-xl\": \"gdAreas.lt-xl\",\n \"gdAreas.gt-xs\": \"gdAreas.gt-xs\",\n \"gdAreas.gt-sm\": \"gdAreas.gt-sm\",\n \"gdAreas.gt-md\": \"gdAreas.gt-md\",\n \"gdAreas.gt-lg\": \"gdAreas.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAreasDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$5 = 'initial';\nlet GridAutoStyleBuilder = /*#__PURE__*/(() => {\n class GridAutoStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n let [direction, dense] = (input || DEFAULT_VALUE$5).split(' ');\n if (direction !== 'column' && direction !== 'row' && direction !== 'dense') {\n direction = 'row';\n }\n dense = dense === 'dense' && direction !== 'dense' ? ' dense' : '';\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-flow': direction + dense\n };\n }\n }\n GridAutoStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridAutoStyleBuilder_BaseFactory;\n return function GridAutoStyleBuilder_Factory(t) {\n return (ɵGridAutoStyleBuilder_BaseFactory || (ɵGridAutoStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridAutoStyleBuilder)))(t || GridAutoStyleBuilder);\n };\n })();\n GridAutoStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridAutoStyleBuilder,\n factory: GridAutoStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridAutoStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridAutoDirective = /*#__PURE__*/(() => {\n class GridAutoDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this._inline = false;\n this.DIRECTIVE_KEY = 'grid-auto';\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? autoInlineCache : autoCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridAutoDirective.ɵfac = function GridAutoDirective_Factory(t) {\n return new (t || GridAutoDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridAutoStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridAutoDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridAutoDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridAutoDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst autoCache = /*#__PURE__*/new Map();\nconst autoInlineCache = /*#__PURE__*/new Map();\nconst inputs$5 = ['gdAuto', 'gdAuto.xs', 'gdAuto.sm', 'gdAuto.md', 'gdAuto.lg', 'gdAuto.xl', 'gdAuto.lt-sm', 'gdAuto.lt-md', 'gdAuto.lt-lg', 'gdAuto.lt-xl', 'gdAuto.gt-xs', 'gdAuto.gt-sm', 'gdAuto.gt-md', 'gdAuto.gt-lg'];\nconst selector$5 = `\n [gdAuto],\n [gdAuto.xs], [gdAuto.sm], [gdAuto.md], [gdAuto.lg], [gdAuto.xl],\n [gdAuto.lt-sm], [gdAuto.lt-md], [gdAuto.lt-lg], [gdAuto.lt-xl],\n [gdAuto.gt-xs], [gdAuto.gt-sm], [gdAuto.gt-md], [gdAuto.gt-lg]\n`;\n/**\n * 'grid-auto-flow' CSS Grid styling directive\n * Configures the auto placement algorithm for the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-23\n */\nlet DefaultGridAutoDirective = /*#__PURE__*/(() => {\n class DefaultGridAutoDirective extends GridAutoDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$5;\n }\n }\n DefaultGridAutoDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridAutoDirective_BaseFactory;\n return function DefaultGridAutoDirective_Factory(t) {\n return (ɵDefaultGridAutoDirective_BaseFactory || (ɵDefaultGridAutoDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridAutoDirective)))(t || DefaultGridAutoDirective);\n };\n })();\n DefaultGridAutoDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridAutoDirective,\n selectors: [[\"\", \"gdAuto\", \"\"], [\"\", \"gdAuto.xs\", \"\"], [\"\", \"gdAuto.sm\", \"\"], [\"\", \"gdAuto.md\", \"\"], [\"\", \"gdAuto.lg\", \"\"], [\"\", \"gdAuto.xl\", \"\"], [\"\", \"gdAuto.lt-sm\", \"\"], [\"\", \"gdAuto.lt-md\", \"\"], [\"\", \"gdAuto.lt-lg\", \"\"], [\"\", \"gdAuto.lt-xl\", \"\"], [\"\", \"gdAuto.gt-xs\", \"\"], [\"\", \"gdAuto.gt-sm\", \"\"], [\"\", \"gdAuto.gt-md\", \"\"], [\"\", \"gdAuto.gt-lg\", \"\"]],\n inputs: {\n gdAuto: \"gdAuto\",\n \"gdAuto.xs\": \"gdAuto.xs\",\n \"gdAuto.sm\": \"gdAuto.sm\",\n \"gdAuto.md\": \"gdAuto.md\",\n \"gdAuto.lg\": \"gdAuto.lg\",\n \"gdAuto.xl\": \"gdAuto.xl\",\n \"gdAuto.lt-sm\": \"gdAuto.lt-sm\",\n \"gdAuto.lt-md\": \"gdAuto.lt-md\",\n \"gdAuto.lt-lg\": \"gdAuto.lt-lg\",\n \"gdAuto.lt-xl\": \"gdAuto.lt-xl\",\n \"gdAuto.gt-xs\": \"gdAuto.gt-xs\",\n \"gdAuto.gt-sm\": \"gdAuto.gt-sm\",\n \"gdAuto.gt-md\": \"gdAuto.gt-md\",\n \"gdAuto.gt-lg\": \"gdAuto.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridAutoDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$4 = 'auto';\nlet GridColumnStyleBuilder = /*#__PURE__*/(() => {\n class GridColumnStyleBuilder extends StyleBuilder {\n buildStyles(input) {\n return {\n 'grid-column': input || DEFAULT_VALUE$4\n };\n }\n }\n GridColumnStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridColumnStyleBuilder_BaseFactory;\n return function GridColumnStyleBuilder_Factory(t) {\n return (ɵGridColumnStyleBuilder_BaseFactory || (ɵGridColumnStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridColumnStyleBuilder)))(t || GridColumnStyleBuilder);\n };\n })();\n GridColumnStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridColumnStyleBuilder,\n factory: GridColumnStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridColumnStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridColumnDirective = /*#__PURE__*/(() => {\n class GridColumnDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-column';\n this.styleCache = columnCache;\n this.init();\n }\n }\n GridColumnDirective.ɵfac = function GridColumnDirective_Factory(t) {\n return new (t || GridColumnDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridColumnStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridColumnDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridColumnDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridColumnDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst columnCache = /*#__PURE__*/new Map();\nconst inputs$4 = ['gdColumn', 'gdColumn.xs', 'gdColumn.sm', 'gdColumn.md', 'gdColumn.lg', 'gdColumn.xl', 'gdColumn.lt-sm', 'gdColumn.lt-md', 'gdColumn.lt-lg', 'gdColumn.lt-xl', 'gdColumn.gt-xs', 'gdColumn.gt-sm', 'gdColumn.gt-md', 'gdColumn.gt-lg'];\nconst selector$4 = `\n [gdColumn],\n [gdColumn.xs], [gdColumn.sm], [gdColumn.md], [gdColumn.lg], [gdColumn.xl],\n [gdColumn.lt-sm], [gdColumn.lt-md], [gdColumn.lt-lg], [gdColumn.lt-xl],\n [gdColumn.gt-xs], [gdColumn.gt-sm], [gdColumn.gt-md], [gdColumn.gt-lg]\n`;\n/**\n * 'grid-column' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\nlet DefaultGridColumnDirective = /*#__PURE__*/(() => {\n class DefaultGridColumnDirective extends GridColumnDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$4;\n }\n }\n DefaultGridColumnDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridColumnDirective_BaseFactory;\n return function DefaultGridColumnDirective_Factory(t) {\n return (ɵDefaultGridColumnDirective_BaseFactory || (ɵDefaultGridColumnDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridColumnDirective)))(t || DefaultGridColumnDirective);\n };\n })();\n DefaultGridColumnDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridColumnDirective,\n selectors: [[\"\", \"gdColumn\", \"\"], [\"\", \"gdColumn.xs\", \"\"], [\"\", \"gdColumn.sm\", \"\"], [\"\", \"gdColumn.md\", \"\"], [\"\", \"gdColumn.lg\", \"\"], [\"\", \"gdColumn.xl\", \"\"], [\"\", \"gdColumn.lt-sm\", \"\"], [\"\", \"gdColumn.lt-md\", \"\"], [\"\", \"gdColumn.lt-lg\", \"\"], [\"\", \"gdColumn.lt-xl\", \"\"], [\"\", \"gdColumn.gt-xs\", \"\"], [\"\", \"gdColumn.gt-sm\", \"\"], [\"\", \"gdColumn.gt-md\", \"\"], [\"\", \"gdColumn.gt-lg\", \"\"]],\n inputs: {\n gdColumn: \"gdColumn\",\n \"gdColumn.xs\": \"gdColumn.xs\",\n \"gdColumn.sm\": \"gdColumn.sm\",\n \"gdColumn.md\": \"gdColumn.md\",\n \"gdColumn.lg\": \"gdColumn.lg\",\n \"gdColumn.xl\": \"gdColumn.xl\",\n \"gdColumn.lt-sm\": \"gdColumn.lt-sm\",\n \"gdColumn.lt-md\": \"gdColumn.lt-md\",\n \"gdColumn.lt-lg\": \"gdColumn.lt-lg\",\n \"gdColumn.lt-xl\": \"gdColumn.lt-xl\",\n \"gdColumn.gt-xs\": \"gdColumn.gt-xs\",\n \"gdColumn.gt-sm\": \"gdColumn.gt-sm\",\n \"gdColumn.gt-md\": \"gdColumn.gt-md\",\n \"gdColumn.gt-lg\": \"gdColumn.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridColumnDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$3 = 'none';\nconst AUTO_SPECIFIER$1 = '!';\nlet GridColumnsStyleBuilder = /*#__PURE__*/(() => {\n class GridColumnsStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n input = input || DEFAULT_VALUE$3;\n let auto = false;\n if (input.endsWith(AUTO_SPECIFIER$1)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER$1));\n auto = true;\n }\n const css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-columns': '',\n 'grid-template-columns': ''\n };\n const key = auto ? 'grid-auto-columns' : 'grid-template-columns';\n css[key] = input;\n return css;\n }\n }\n GridColumnsStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridColumnsStyleBuilder_BaseFactory;\n return function GridColumnsStyleBuilder_Factory(t) {\n return (ɵGridColumnsStyleBuilder_BaseFactory || (ɵGridColumnsStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridColumnsStyleBuilder)))(t || GridColumnsStyleBuilder);\n };\n })();\n GridColumnsStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridColumnsStyleBuilder,\n factory: GridColumnsStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridColumnsStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridColumnsDirective = /*#__PURE__*/(() => {\n class GridColumnsDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-columns';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? columnsInlineCache : columnsCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridColumnsDirective.ɵfac = function GridColumnsDirective_Factory(t) {\n return new (t || GridColumnsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridColumnsStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridColumnsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridColumnsDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridColumnsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst columnsCache = /*#__PURE__*/new Map();\nconst columnsInlineCache = /*#__PURE__*/new Map();\nconst inputs$3 = ['gdColumns', 'gdColumns.xs', 'gdColumns.sm', 'gdColumns.md', 'gdColumns.lg', 'gdColumns.xl', 'gdColumns.lt-sm', 'gdColumns.lt-md', 'gdColumns.lt-lg', 'gdColumns.lt-xl', 'gdColumns.gt-xs', 'gdColumns.gt-sm', 'gdColumns.gt-md', 'gdColumns.gt-lg'];\nconst selector$3 = `\n [gdColumns],\n [gdColumns.xs], [gdColumns.sm], [gdColumns.md], [gdColumns.lg], [gdColumns.xl],\n [gdColumns.lt-sm], [gdColumns.lt-md], [gdColumns.lt-lg], [gdColumns.lt-xl],\n [gdColumns.gt-xs], [gdColumns.gt-sm], [gdColumns.gt-md], [gdColumns.gt-lg]\n`;\n/**\n * 'grid-template-columns' CSS Grid styling directive\n * Configures the sizing for the columns in the grid\n * Syntax: [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\nlet DefaultGridColumnsDirective = /*#__PURE__*/(() => {\n class DefaultGridColumnsDirective extends GridColumnsDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$3;\n }\n }\n DefaultGridColumnsDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridColumnsDirective_BaseFactory;\n return function DefaultGridColumnsDirective_Factory(t) {\n return (ɵDefaultGridColumnsDirective_BaseFactory || (ɵDefaultGridColumnsDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridColumnsDirective)))(t || DefaultGridColumnsDirective);\n };\n })();\n DefaultGridColumnsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridColumnsDirective,\n selectors: [[\"\", \"gdColumns\", \"\"], [\"\", \"gdColumns.xs\", \"\"], [\"\", \"gdColumns.sm\", \"\"], [\"\", \"gdColumns.md\", \"\"], [\"\", \"gdColumns.lg\", \"\"], [\"\", \"gdColumns.xl\", \"\"], [\"\", \"gdColumns.lt-sm\", \"\"], [\"\", \"gdColumns.lt-md\", \"\"], [\"\", \"gdColumns.lt-lg\", \"\"], [\"\", \"gdColumns.lt-xl\", \"\"], [\"\", \"gdColumns.gt-xs\", \"\"], [\"\", \"gdColumns.gt-sm\", \"\"], [\"\", \"gdColumns.gt-md\", \"\"], [\"\", \"gdColumns.gt-lg\", \"\"]],\n inputs: {\n gdColumns: \"gdColumns\",\n \"gdColumns.xs\": \"gdColumns.xs\",\n \"gdColumns.sm\": \"gdColumns.sm\",\n \"gdColumns.md\": \"gdColumns.md\",\n \"gdColumns.lg\": \"gdColumns.lg\",\n \"gdColumns.xl\": \"gdColumns.xl\",\n \"gdColumns.lt-sm\": \"gdColumns.lt-sm\",\n \"gdColumns.lt-md\": \"gdColumns.lt-md\",\n \"gdColumns.lt-lg\": \"gdColumns.lt-lg\",\n \"gdColumns.lt-xl\": \"gdColumns.lt-xl\",\n \"gdColumns.gt-xs\": \"gdColumns.gt-xs\",\n \"gdColumns.gt-sm\": \"gdColumns.gt-sm\",\n \"gdColumns.gt-md\": \"gdColumns.gt-md\",\n \"gdColumns.gt-lg\": \"gdColumns.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridColumnsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$2 = '0';\nlet GridGapStyleBuilder = /*#__PURE__*/(() => {\n class GridGapStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-gap': input || DEFAULT_VALUE$2\n };\n }\n }\n GridGapStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridGapStyleBuilder_BaseFactory;\n return function GridGapStyleBuilder_Factory(t) {\n return (ɵGridGapStyleBuilder_BaseFactory || (ɵGridGapStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridGapStyleBuilder)))(t || GridGapStyleBuilder);\n };\n })();\n GridGapStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridGapStyleBuilder,\n factory: GridGapStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridGapStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridGapDirective = /*#__PURE__*/(() => {\n class GridGapDirective extends BaseDirective2 {\n constructor(elRef, styleUtils, styleBuilder, marshal) {\n super(elRef, styleBuilder, styleUtils, marshal);\n this.DIRECTIVE_KEY = 'grid-gap';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? gapInlineCache : gapCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridGapDirective.ɵfac = function GridGapDirective_Factory(t) {\n return new (t || GridGapDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(GridGapStyleBuilder), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridGapDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridGapDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridGapDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst gapCache = /*#__PURE__*/new Map();\nconst gapInlineCache = /*#__PURE__*/new Map();\nconst inputs$2 = ['gdGap', 'gdGap.xs', 'gdGap.sm', 'gdGap.md', 'gdGap.lg', 'gdGap.xl', 'gdGap.lt-sm', 'gdGap.lt-md', 'gdGap.lt-lg', 'gdGap.lt-xl', 'gdGap.gt-xs', 'gdGap.gt-sm', 'gdGap.gt-md', 'gdGap.gt-lg'];\nconst selector$2 = `\n [gdGap],\n [gdGap.xs], [gdGap.sm], [gdGap.md], [gdGap.lg], [gdGap.xl],\n [gdGap.lt-sm], [gdGap.lt-md], [gdGap.lt-lg], [gdGap.lt-xl],\n [gdGap.gt-xs], [gdGap.gt-sm], [gdGap.gt-md], [gdGap.gt-lg]\n`;\n/**\n * 'grid-gap' CSS Grid styling directive\n * Configures the gap between items in the grid\n * Syntax: []\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-17\n */\nlet DefaultGridGapDirective = /*#__PURE__*/(() => {\n class DefaultGridGapDirective extends GridGapDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$2;\n }\n }\n DefaultGridGapDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridGapDirective_BaseFactory;\n return function DefaultGridGapDirective_Factory(t) {\n return (ɵDefaultGridGapDirective_BaseFactory || (ɵDefaultGridGapDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridGapDirective)))(t || DefaultGridGapDirective);\n };\n })();\n DefaultGridGapDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridGapDirective,\n selectors: [[\"\", \"gdGap\", \"\"], [\"\", \"gdGap.xs\", \"\"], [\"\", \"gdGap.sm\", \"\"], [\"\", \"gdGap.md\", \"\"], [\"\", \"gdGap.lg\", \"\"], [\"\", \"gdGap.xl\", \"\"], [\"\", \"gdGap.lt-sm\", \"\"], [\"\", \"gdGap.lt-md\", \"\"], [\"\", \"gdGap.lt-lg\", \"\"], [\"\", \"gdGap.lt-xl\", \"\"], [\"\", \"gdGap.gt-xs\", \"\"], [\"\", \"gdGap.gt-sm\", \"\"], [\"\", \"gdGap.gt-md\", \"\"], [\"\", \"gdGap.gt-lg\", \"\"]],\n inputs: {\n gdGap: \"gdGap\",\n \"gdGap.xs\": \"gdGap.xs\",\n \"gdGap.sm\": \"gdGap.sm\",\n \"gdGap.md\": \"gdGap.md\",\n \"gdGap.lg\": \"gdGap.lg\",\n \"gdGap.xl\": \"gdGap.xl\",\n \"gdGap.lt-sm\": \"gdGap.lt-sm\",\n \"gdGap.lt-md\": \"gdGap.lt-md\",\n \"gdGap.lt-lg\": \"gdGap.lt-lg\",\n \"gdGap.lt-xl\": \"gdGap.lt-xl\",\n \"gdGap.gt-xs\": \"gdGap.gt-xs\",\n \"gdGap.gt-sm\": \"gdGap.gt-sm\",\n \"gdGap.gt-md\": \"gdGap.gt-md\",\n \"gdGap.gt-lg\": \"gdGap.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridGapDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE$1 = 'auto';\nlet GridRowStyleBuilder = /*#__PURE__*/(() => {\n class GridRowStyleBuilder extends StyleBuilder {\n buildStyles(input) {\n return {\n 'grid-row': input || DEFAULT_VALUE$1\n };\n }\n }\n GridRowStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridRowStyleBuilder_BaseFactory;\n return function GridRowStyleBuilder_Factory(t) {\n return (ɵGridRowStyleBuilder_BaseFactory || (ɵGridRowStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridRowStyleBuilder)))(t || GridRowStyleBuilder);\n };\n })();\n GridRowStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridRowStyleBuilder,\n factory: GridRowStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridRowStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridRowDirective = /*#__PURE__*/(() => {\n class GridRowDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-row';\n this.styleCache = rowCache;\n this.init();\n }\n }\n GridRowDirective.ɵfac = function GridRowDirective_Factory(t) {\n return new (t || GridRowDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridRowStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridRowDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridRowDirective,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridRowDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst rowCache = /*#__PURE__*/new Map();\nconst inputs$1 = ['gdRow', 'gdRow.xs', 'gdRow.sm', 'gdRow.md', 'gdRow.lg', 'gdRow.xl', 'gdRow.lt-sm', 'gdRow.lt-md', 'gdRow.lt-lg', 'gdRow.lt-xl', 'gdRow.gt-xs', 'gdRow.gt-sm', 'gdRow.gt-md', 'gdRow.gt-lg'];\nconst selector$1 = `\n [gdRow],\n [gdRow.xs], [gdRow.sm], [gdRow.md], [gdRow.lg], [gdRow.xl],\n [gdRow.lt-sm], [gdRow.lt-md], [gdRow.lt-lg], [gdRow.lt-xl],\n [gdRow.gt-xs], [gdRow.gt-sm], [gdRow.gt-md], [gdRow.gt-lg]\n`;\n/**\n * 'grid-row' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\nlet DefaultGridRowDirective = /*#__PURE__*/(() => {\n class DefaultGridRowDirective extends GridRowDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs$1;\n }\n }\n DefaultGridRowDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridRowDirective_BaseFactory;\n return function DefaultGridRowDirective_Factory(t) {\n return (ɵDefaultGridRowDirective_BaseFactory || (ɵDefaultGridRowDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridRowDirective)))(t || DefaultGridRowDirective);\n };\n })();\n DefaultGridRowDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridRowDirective,\n selectors: [[\"\", \"gdRow\", \"\"], [\"\", \"gdRow.xs\", \"\"], [\"\", \"gdRow.sm\", \"\"], [\"\", \"gdRow.md\", \"\"], [\"\", \"gdRow.lg\", \"\"], [\"\", \"gdRow.xl\", \"\"], [\"\", \"gdRow.lt-sm\", \"\"], [\"\", \"gdRow.lt-md\", \"\"], [\"\", \"gdRow.lt-lg\", \"\"], [\"\", \"gdRow.lt-xl\", \"\"], [\"\", \"gdRow.gt-xs\", \"\"], [\"\", \"gdRow.gt-sm\", \"\"], [\"\", \"gdRow.gt-md\", \"\"], [\"\", \"gdRow.gt-lg\", \"\"]],\n inputs: {\n gdRow: \"gdRow\",\n \"gdRow.xs\": \"gdRow.xs\",\n \"gdRow.sm\": \"gdRow.sm\",\n \"gdRow.md\": \"gdRow.md\",\n \"gdRow.lg\": \"gdRow.lg\",\n \"gdRow.xl\": \"gdRow.xl\",\n \"gdRow.lt-sm\": \"gdRow.lt-sm\",\n \"gdRow.lt-md\": \"gdRow.lt-md\",\n \"gdRow.lt-lg\": \"gdRow.lt-lg\",\n \"gdRow.lt-xl\": \"gdRow.lt-xl\",\n \"gdRow.gt-xs\": \"gdRow.gt-xs\",\n \"gdRow.gt-sm\": \"gdRow.gt-sm\",\n \"gdRow.gt-md\": \"gdRow.gt-md\",\n \"gdRow.gt-lg\": \"gdRow.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridRowDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE = 'none';\nconst AUTO_SPECIFIER = '!';\nlet GridRowsStyleBuilder = /*#__PURE__*/(() => {\n class GridRowsStyleBuilder extends StyleBuilder {\n buildStyles(input, parent) {\n input = input || DEFAULT_VALUE;\n let auto = false;\n if (input.endsWith(AUTO_SPECIFIER)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER));\n auto = true;\n }\n const css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-rows': '',\n 'grid-template-rows': ''\n };\n const key = auto ? 'grid-auto-rows' : 'grid-template-rows';\n css[key] = input;\n return css;\n }\n }\n GridRowsStyleBuilder.ɵfac = /* @__PURE__ */(() => {\n let ɵGridRowsStyleBuilder_BaseFactory;\n return function GridRowsStyleBuilder_Factory(t) {\n return (ɵGridRowsStyleBuilder_BaseFactory || (ɵGridRowsStyleBuilder_BaseFactory = i0.ɵɵgetInheritedFactory(GridRowsStyleBuilder)))(t || GridRowsStyleBuilder);\n };\n })();\n GridRowsStyleBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GridRowsStyleBuilder,\n factory: GridRowsStyleBuilder.ɵfac,\n providedIn: 'root'\n });\n return GridRowsStyleBuilder;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GridRowsDirective = /*#__PURE__*/(() => {\n class GridRowsDirective extends BaseDirective2 {\n constructor(elementRef, styleBuilder, styler, marshal) {\n super(elementRef, styleBuilder, styler, marshal);\n this.DIRECTIVE_KEY = 'grid-rows';\n this._inline = false;\n this.init();\n }\n get inline() {\n return this._inline;\n }\n set inline(val) {\n this._inline = coerceBooleanProperty(val);\n }\n // *********************************************\n // Protected methods\n // *********************************************\n updateWithValue(value) {\n this.styleCache = this.inline ? rowsInlineCache : rowsCache;\n this.addStyles(value, {\n inline: this.inline\n });\n }\n }\n GridRowsDirective.ɵfac = function GridRowsDirective_Factory(t) {\n return new (t || GridRowsDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GridRowsStyleBuilder), i0.ɵɵdirectiveInject(i1.StyleUtils), i0.ɵɵdirectiveInject(i1.MediaMarshaller));\n };\n GridRowsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GridRowsDirective,\n inputs: {\n inline: [i0.ɵɵInputFlags.None, \"gdInline\", \"inline\"]\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return GridRowsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst rowsCache = /*#__PURE__*/new Map();\nconst rowsInlineCache = /*#__PURE__*/new Map();\nconst inputs = ['gdRows', 'gdRows.xs', 'gdRows.sm', 'gdRows.md', 'gdRows.lg', 'gdRows.xl', 'gdRows.lt-sm', 'gdRows.lt-md', 'gdRows.lt-lg', 'gdRows.lt-xl', 'gdRows.gt-xs', 'gdRows.gt-sm', 'gdRows.gt-md', 'gdRows.gt-lg'];\nconst selector = `\n [gdRows],\n [gdRows.xs], [gdRows.sm], [gdRows.md], [gdRows.lg], [gdRows.xl],\n [gdRows.lt-sm], [gdRows.lt-md], [gdRows.lt-lg], [gdRows.lt-xl],\n [gdRows.gt-xs], [gdRows.gt-sm], [gdRows.gt-md], [gdRows.gt-lg]\n`;\n/**\n * 'grid-template-rows' CSS Grid styling directive\n * Configures the sizing for the rows in the grid\n * Syntax: [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\nlet DefaultGridRowsDirective = /*#__PURE__*/(() => {\n class DefaultGridRowsDirective extends GridRowsDirective {\n constructor() {\n super(...arguments);\n this.inputs = inputs;\n }\n }\n DefaultGridRowsDirective.ɵfac = /* @__PURE__ */(() => {\n let ɵDefaultGridRowsDirective_BaseFactory;\n return function DefaultGridRowsDirective_Factory(t) {\n return (ɵDefaultGridRowsDirective_BaseFactory || (ɵDefaultGridRowsDirective_BaseFactory = i0.ɵɵgetInheritedFactory(DefaultGridRowsDirective)))(t || DefaultGridRowsDirective);\n };\n })();\n DefaultGridRowsDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DefaultGridRowsDirective,\n selectors: [[\"\", \"gdRows\", \"\"], [\"\", \"gdRows.xs\", \"\"], [\"\", \"gdRows.sm\", \"\"], [\"\", \"gdRows.md\", \"\"], [\"\", \"gdRows.lg\", \"\"], [\"\", \"gdRows.xl\", \"\"], [\"\", \"gdRows.lt-sm\", \"\"], [\"\", \"gdRows.lt-md\", \"\"], [\"\", \"gdRows.lt-lg\", \"\"], [\"\", \"gdRows.lt-xl\", \"\"], [\"\", \"gdRows.gt-xs\", \"\"], [\"\", \"gdRows.gt-sm\", \"\"], [\"\", \"gdRows.gt-md\", \"\"], [\"\", \"gdRows.gt-lg\", \"\"]],\n inputs: {\n gdRows: \"gdRows\",\n \"gdRows.xs\": \"gdRows.xs\",\n \"gdRows.sm\": \"gdRows.sm\",\n \"gdRows.md\": \"gdRows.md\",\n \"gdRows.lg\": \"gdRows.lg\",\n \"gdRows.xl\": \"gdRows.xl\",\n \"gdRows.lt-sm\": \"gdRows.lt-sm\",\n \"gdRows.lt-md\": \"gdRows.lt-md\",\n \"gdRows.lt-lg\": \"gdRows.lt-lg\",\n \"gdRows.lt-xl\": \"gdRows.lt-xl\",\n \"gdRows.gt-xs\": \"gdRows.gt-xs\",\n \"gdRows.gt-sm\": \"gdRows.gt-sm\",\n \"gdRows.gt-md\": \"gdRows.gt-md\",\n \"gdRows.gt-lg\": \"gdRows.gt-lg\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n return DefaultGridRowsDirective;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ALL_DIRECTIVES = [DefaultGridAlignDirective, DefaultGridAlignColumnsDirective, DefaultGridAlignRowsDirective, DefaultGridAreaDirective, DefaultGridAreasDirective, DefaultGridAutoDirective, DefaultGridColumnDirective, DefaultGridColumnsDirective, DefaultGridGapDirective, DefaultGridRowDirective, DefaultGridRowsDirective];\n/**\n * *****************************************************************\n * Define module for the CSS Grid API\n * *****************************************************************\n */\nlet GridModule = /*#__PURE__*/(() => {\n class GridModule {}\n GridModule.ɵfac = function GridModule_Factory(t) {\n return new (t || GridModule)();\n };\n GridModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GridModule\n });\n GridModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CoreModule]\n });\n return GridModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DefaultGridAlignColumnsDirective, DefaultGridAlignDirective, DefaultGridAlignRowsDirective, DefaultGridAreaDirective, DefaultGridAreasDirective, DefaultGridAutoDirective, DefaultGridColumnDirective, DefaultGridColumnsDirective, DefaultGridGapDirective, DefaultGridRowDirective, DefaultGridRowsDirective, GridAlignColumnsDirective, GridAlignColumnsStyleBuilder, GridAlignDirective, GridAlignRowsDirective, GridAlignRowsStyleBuilder, GridAlignStyleBuilder, GridAreaDirective, GridAreaStyleBuilder, GridAreasDirective, GridAreasStyleBuiler, GridAutoDirective, GridAutoStyleBuilder, GridColumnDirective, GridColumnStyleBuilder, GridColumnsDirective, GridColumnsStyleBuilder, GridGapDirective, GridGapStyleBuilder, GridModule, GridRowDirective, GridRowStyleBuilder, GridRowsDirective, GridRowsStyleBuilder };\n","import * as i0 from '@angular/core';\nimport { Version, PLATFORM_ID, NgModule, Inject } from '@angular/core';\nimport { LAYOUT_CONFIG, DEFAULT_CONFIG, BREAKPOINT, SERVER_TOKEN } from '@angular/flex-layout/core';\nexport * from '@angular/flex-layout/core';\nimport { ExtendedModule } from '@angular/flex-layout/extended';\nexport * from '@angular/flex-layout/extended';\nimport { FlexModule } from '@angular/flex-layout/flex';\nexport * from '@angular/flex-layout/flex';\nimport { GridModule } from '@angular/flex-layout/grid';\nexport * from '@angular/flex-layout/grid';\nimport { isPlatformServer } from '@angular/common';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** Current version of Angular Flex-Layout. */\nconst VERSION = /*#__PURE__*/new Version('15.0.0-beta.42');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * FlexLayoutModule -- the main import for all utilities in the Angular Layout library\n * * Will automatically provide Flex, Grid, and Extended modules for use in the application\n * * Can be configured using the static withConfig method, options viewable on the Wiki's\n * Configuration page\n */\nlet FlexLayoutModule = /*#__PURE__*/(() => {\n class FlexLayoutModule {\n constructor(serverModuleLoaded, platformId) {\n if (isPlatformServer(platformId) && !serverModuleLoaded) {\n console.warn('Warning: Flex Layout loaded on the server without FlexLayoutServerModule');\n }\n }\n /**\n * Initialize the FlexLayoutModule with a set of config options,\n * which sets the corresponding tokens accordingly\n */\n static withConfig(configOptions,\n // tslint:disable-next-line:max-line-length\n breakpoints = []) {\n return {\n ngModule: FlexLayoutModule,\n providers: configOptions.serverLoaded ? [{\n provide: LAYOUT_CONFIG,\n useValue: {\n ...DEFAULT_CONFIG,\n ...configOptions\n }\n }, {\n provide: BREAKPOINT,\n useValue: breakpoints,\n multi: true\n }, {\n provide: SERVER_TOKEN,\n useValue: true\n }] : [{\n provide: LAYOUT_CONFIG,\n useValue: {\n ...DEFAULT_CONFIG,\n ...configOptions\n }\n }, {\n provide: BREAKPOINT,\n useValue: breakpoints,\n multi: true\n }]\n };\n }\n }\n FlexLayoutModule.ɵfac = function FlexLayoutModule_Factory(t) {\n return new (t || FlexLayoutModule)(i0.ɵɵinject(SERVER_TOKEN), i0.ɵɵinject(PLATFORM_ID));\n };\n FlexLayoutModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FlexLayoutModule\n });\n FlexLayoutModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [FlexModule, ExtendedModule, GridModule, FlexModule, ExtendedModule, GridModule]\n });\n return FlexLayoutModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FlexLayoutModule, VERSION };\n","import * as i0 from '@angular/core';\nimport { Injectable, NgModule } from '@angular/core';\nimport { FormControl, FormGroup, FormArray, UntypedFormBuilder, FormBuilder, ReactiveFormsModule } from '@angular/forms';\nclass TypedFormControl extends FormControl {\n constructor(formState = null, validatorOrOpts, asyncValidator) {\n super(formState, validatorOrOpts, asyncValidator);\n }\n setValue(value, options) {\n super.setValue(value, options);\n }\n patchValue(value, options = {}) {\n super.patchValue(value, options);\n }\n reset(formState = null, options = {}) {\n super.reset(formState, options);\n }\n}\nclass TypedFormGroup extends FormGroup {\n constructor(controls, options, asyncValidator) {\n super(controls, options, asyncValidator);\n }\n setValue(value, options = {}) {\n super.setValue(value, options);\n }\n patchValue(value, options = {}) {\n super.patchValue(value, options);\n }\n reset(value = {}, options = {}) {\n super.reset(value, options);\n }\n getRawValue() {\n return super.getRawValue();\n }\n}\nclass TypedFormArray extends FormArray {\n constructor(controls, validatorOrOpts, asyncValidator) {\n super(controls, validatorOrOpts, asyncValidator);\n }\n setValue(value, options) {\n super.setValue(value, options);\n }\n patchValue(value, options = {}) {\n super.patchValue(value, options);\n }\n getRawValue() {\n return super.getRawValue();\n }\n}\nlet TypedFormBuilder = /*#__PURE__*/(() => {\n class TypedFormBuilder extends UntypedFormBuilder {\n constructor() {\n super();\n this._fb = new FormBuilder();\n this._fb.control = this.control;\n }\n group(controlsConfig, options) {\n const {\n controls,\n updateOn,\n validator,\n asyncValidator\n } = this._fb.group(controlsConfig, options);\n return new TypedFormGroup(controls, {\n asyncValidators: asyncValidator,\n validators: validator,\n updateOn\n });\n }\n control(formState, validatorOrOpts, asyncValidator) {\n return new TypedFormControl(formState, validatorOrOpts, asyncValidator);\n }\n array(controlsConfig, validatorOrOpts, asyncValidator) {\n const ctrl = this._fb.array(controlsConfig, validatorOrOpts, asyncValidator);\n return new TypedFormArray(ctrl.controls, {\n asyncValidators: ctrl.asyncValidator,\n updateOn: ctrl.updateOn,\n validators: ctrl.validator\n });\n }\n }\n TypedFormBuilder.ɵfac = function TypedFormBuilder_Factory(t) {\n return new (t || TypedFormBuilder)();\n };\n TypedFormBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TypedFormBuilder,\n factory: TypedFormBuilder.ɵfac\n });\n return TypedFormBuilder;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TypedReactiveFormsModule = /*#__PURE__*/(() => {\n class TypedReactiveFormsModule {}\n TypedReactiveFormsModule.ɵfac = function TypedReactiveFormsModule_Factory(t) {\n return new (t || TypedReactiveFormsModule)();\n };\n TypedReactiveFormsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TypedReactiveFormsModule\n });\n TypedReactiveFormsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [TypedFormBuilder],\n imports: [ReactiveFormsModule, ReactiveFormsModule]\n });\n return TypedReactiveFormsModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\r\n * Public API Surface of formsafe\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { TypedFormArray, TypedFormBuilder, TypedFormControl, TypedFormGroup, TypedReactiveFormsModule };\n","export function humanize(text: string | null | undefined, preserveCasing: boolean = true) {\r\n if (text == null) {\r\n return '';\r\n }\r\n\r\n let val = text;\r\n const hasSnakes = /_/.test(text);\r\n if (!hasSnakes && text.toUpperCase() === text) {\r\n return text;\r\n }\r\n if (hasSnakes) {\r\n val = text.replace(/_/g, ' ');\r\n } else {\r\n val = text.replace(/([A-Z])/g, ' $1').replace(/^ /, '');\r\n }\r\n if (!preserveCasing) {\r\n return val\r\n .replace(/[A-Z]/g, (v) => v.toLowerCase())\r\n .replace(/^./, (s) => {\r\n return s.toUpperCase();\r\n });\r\n } else {\r\n return val;\r\n }\r\n}\r\n\r\nexport function hyphenate(text: string): string {\r\n return text.replace(/([A-Z])/g, '-$1').replace(/^-/, '');\r\n}\r\n\r\nexport function kebaberize(text: string): string {\r\n let result = text.replace(/\\W/g, '-');\r\n while (result.indexOf('--') > -1) {\r\n result = result.replace('--', '-');\r\n }\r\n return result.toLowerCase();\r\n}\r\n","import {\r\n differenceInDays,\r\n differenceInHours,\r\n differenceInMilliseconds,\r\n differenceInMinutes,\r\n differenceInSeconds,\r\n differenceInYears,\r\n format,\r\n isBefore,\r\n isValid,\r\n parseISO,\r\n subDays,\r\n subHours,\r\n subMinutes,\r\n subSeconds,\r\n subYears,\r\n} from 'date-fns';\r\n\r\nexport const dateFormat = 'MM/dd/yyyy';\r\nexport const dateTimeFormat = 'MM/dd/y HH:mm';\r\nexport const timeFormat = 'HH:mm';\r\n\r\nexport function toDate(date: Date | number | string | null | undefined): Date | null | undefined {\r\n if (date instanceof Date) {\r\n date = date;\r\n } else if (typeof date === 'string') {\r\n date = parseISO(date);\r\n } else if (typeof date === 'number') {\r\n date = new Date(date);\r\n }\r\n return date;\r\n}\r\n\r\nexport function formatDate(\r\n dt: Date | number | string | null | undefined,\r\n formatString: string,\r\n): string {\r\n const newDate = toDate(dt);\r\n\r\n if (newDate != null) {\r\n return format(newDate, formatString);\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nexport function isValidDateString(date: string): boolean {\r\n return isValid(new Date(Date.parse(date)));\r\n}\r\n\r\nexport function distanceInWordsShort(\r\n date: Date,\r\n dateToCompare: Date,\r\n {\r\n includeSeconds,\r\n }: {\r\n includeSeconds?: boolean;\r\n } = {\r\n includeSeconds: false,\r\n },\r\n): string {\r\n const msDiff = Math.abs(differenceInMilliseconds(date, dateToCompare));\r\n if (msDiff === 0) {\r\n return includeSeconds === true ? '0s' : '0m';\r\n }\r\n\r\n if (includeSeconds === true && msDiff < 1000) {\r\n return '<1s';\r\n } else if (includeSeconds === false && msDiff < 60000) {\r\n return '<1m';\r\n }\r\n\r\n // eslint-disable-next-line prefer-const\r\n let { smaller, larger } = isBefore(date, dateToCompare)\r\n ? {\r\n smaller: new Date(date),\r\n larger: new Date(dateToCompare),\r\n }\r\n : {\r\n smaller: new Date(dateToCompare),\r\n larger: new Date(date),\r\n };\r\n const values: [number, string][] = [];\r\n\r\n const years = differenceInYears(larger, smaller);\r\n larger = subYears(larger, years);\r\n values.push([years, 'y']);\r\n const days = differenceInDays(larger, smaller);\r\n larger = subDays(larger, days);\r\n values.push([days, 'd']);\r\n if (years === 0) {\r\n const hours = differenceInHours(larger, smaller);\r\n larger = subHours(larger, hours);\r\n values.push([hours, 'h']);\r\n if (days === 0) {\r\n const minutes = differenceInMinutes(larger, smaller);\r\n larger = subMinutes(larger, minutes);\r\n values.push([minutes, 'm']);\r\n }\r\n }\r\n\r\n if (includeSeconds === true) {\r\n const seconds = differenceInSeconds(larger, smaller);\r\n larger = subSeconds(larger, seconds);\r\n values.push([seconds, 's']);\r\n }\r\n const stringValues = values\r\n .map(([val, suffix]) => (val > 0 ? `${val}${suffix}` : null))\r\n .filter((x) => x != null);\r\n if (stringValues.length > 0) {\r\n return stringValues.join(' ');\r\n } else {\r\n throw new Error('cannot find difference');\r\n }\r\n}\r\n\r\nexport function withTimezone(date: Date, timezoneCd: string, locale: string = 'en-US') {\r\n const tzDt = date.toLocaleString(locale, { timeZone: timezoneCd });\r\n return new Date(tzDt);\r\n}\r\n","import { Params } from '@angular/router';\r\nimport { createSelector } from '@ngrx/store';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { selectAllCompanies } from 'src/store/entityStores/entity-store-selectors';\r\n\r\nexport function selectRouteParams() {\r\n return (state: AppState): Params => state.router?.state.params;\r\n}\r\n\r\nexport function selectQueryParams() {\r\n return (state: AppState): Params => state.router?.state.queryParams;\r\n}\r\n\r\nexport function selectRouteParam(paramName: string) {\r\n return (state: AppState): string | undefined => state.router?.state.params[paramName];\r\n}\r\n\r\nexport function selectQueryParam(queryParamName: string) {\r\n return (state: AppState): string | undefined => state.router?.state.queryParams[queryParamName];\r\n}\r\n\r\nexport function selectCurrentCompanyFromRoute() {\r\n return createSelector(\r\n selectRouteParam('companyCode'),\r\n selectAllCompanies,\r\n (companyCode, companies) => {\r\n return companyCode != null\r\n ? companies.find((c) => c.companyCode.toLowerCase() === companyCode.toLowerCase())\r\n : undefined;\r\n },\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { OrderedSet } from 'immutable';\r\nimport { Observable, of } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith, switchMap, take } from 'rxjs/operators';\r\nimport { RouterService } from 'src/app/shared/shared-base/amg-ui/router.service';\r\nimport { AppState } from 'src/store/appstate';\r\nimport {\r\n selectRegionByCardNumber,\r\n selectRegionById,\r\n selectRegionsByCommunicationCenterId,\r\n} from 'src/store/entityStores/region-selectors';\r\nimport { CommunicationCenterEntityFetchService } from 'src/store/generated/client-sync.generated';\r\nimport {\r\n CommunicationCenterRecord,\r\n CommunicationCenterViewModelBase,\r\n selectCommunicationCenterById,\r\n} from 'src/store/generated/communication-center-record.generated';\r\nimport { selectQueryParam, selectRouteParam } from 'src/store/router/router-selectors';\r\nimport { undefinedOrMap, undefinedOrSwitchMap, valueOrSwitchMap } from 'src/util/rxjs';\r\n\r\nexport function observeCommunicationCenterFromRouteNavigationEnd(\r\n router: RouterService,\r\n store: Store,\r\n extraRouteParams?: ('regionId' | 'cardNumber')[] | 'all',\r\n) {\r\n return router.navigationEnd$.pipe(\r\n startWith(null),\r\n switchMap(() => observeCommunicationCenterFromRoute(store, extraRouteParams).pipe(take(1))),\r\n distinctUntilChanged((c1, c2) => c1?.id === c2?.id),\r\n );\r\n}\r\n\r\nexport function observeCommunicationCenterFromRoute(\r\n store: Store,\r\n extraRouteParams?: ('regionId' | 'cardNumber')[] | 'all',\r\n) {\r\n const watchAll = extraRouteParams === 'all';\r\n const commCenterIdByCardNumber$ =\r\n watchAll || (extraRouteParams?.includes('cardNumber') ?? false)\r\n ? store.select(selectRouteParam('cardNumber')).pipe(\r\n undefinedOrSwitchMap((cardNumber) => store.select(selectRegionByCardNumber(cardNumber))),\r\n undefinedOrMap((region) => region.communicationCenterId),\r\n )\r\n : of(undefined);\r\n const commCenterIdByRegionId$ =\r\n watchAll || (extraRouteParams?.includes('regionId') ?? false)\r\n ? store.select(selectRouteParam('regionId')).pipe(\r\n undefinedOrSwitchMap((regionId) => store.select(selectRegionById(regionId))),\r\n undefinedOrMap((region) => region.communicationCenterId),\r\n )\r\n : of(undefined);\r\n const commCenterIdByQueryParam$ = store.select(selectQueryParam('communicationCenterId'));\r\n return commCenterIdByQueryParam$.pipe(\r\n valueOrSwitchMap(() => commCenterIdByRegionId$),\r\n valueOrSwitchMap(() => commCenterIdByCardNumber$),\r\n distinctUntilChanged(),\r\n undefinedOrSwitchMap((ccId) => store.select(selectCommunicationCenterById(ccId)).pipe(take(1))),\r\n undefinedOrMap((commCenter) => new CommunicationCenterViewModel(commCenter, store)),\r\n );\r\n}\r\n\r\nexport class CommunicationCenterViewModel extends CommunicationCenterViewModelBase {\r\n public regionIds$: Observable>;\r\n constructor(commCenter: CommunicationCenterRecord, store: Store) {\r\n super(commCenter);\r\n this.regionIds$ = store.select(selectRegionsByCommunicationCenterId(this.id)).pipe(\r\n map((rs) =>\r\n rs\r\n .sort((a, b) => a.abbreviation.localeCompare(b.abbreviation))\r\n .map((r) => r.id)\r\n .toOrderedSet(),\r\n ),\r\n distinctUntilChanged(),\r\n );\r\n }\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CommunicationCenterViewModelService {\r\n constructor(\r\n private readonly _communicationCenterFetchService: CommunicationCenterEntityFetchService,\r\n private store: Store,\r\n ) {}\r\n\r\n public getById(id: string): Observable {\r\n return this._communicationCenterFetchService.getById(id).pipe(\r\n map((communicationCenter) => {\r\n if (communicationCenter == null) {\r\n return undefined;\r\n }\r\n return new CommunicationCenterViewModel(communicationCenter, this.store);\r\n }),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n NavigationError,\r\n NavigationStart,\r\n Router,\r\n} from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RouterService {\r\n get navigationErrors$(): Observable {\r\n return this._router.events.pipe(\r\n filter((e) => e instanceof NavigationError),\r\n map((e) => e as NavigationError),\r\n );\r\n }\r\n get navigationEnd$(): Observable {\r\n return this._router.events.pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n map((e) => e as NavigationEnd),\r\n );\r\n }\r\n\r\n get navigationStart$(): Observable {\r\n return this._router.events.pipe(\r\n filter((e) => e instanceof NavigationStart),\r\n map((e) => e as NavigationStart),\r\n );\r\n }\r\n\r\n constructor(private _router: Router, private _activatedRoute: ActivatedRoute) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TcsConfigurationService } from 'src/app/core/configuration.service';\r\nimport { Store } from '@ngrx/store';\r\nimport { undefinedOrSwitchMap } from 'src/util/rxjs';\r\nimport { BehaviorSubject, isObservable, map, Observable, of, switchMap } from 'rxjs';\r\nimport { AppState } from 'src/store/appstate';\r\nimport { observeCommunicationCenterFromRouteNavigationEnd } from 'src/models/communication-center-view-model';\r\nimport { RouterService } from 'src/app/shared/shared-base/amg-ui/router.service';\r\nimport { OpsReaderAuthorizationService } from '../tcs-authorization/ops-reader-authorization.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OpsReadonlyService {\r\n private _isReadonly$ = new BehaviorSubject(false);\r\n\r\n public get hasReadonlyAccess() {\r\n return this._isReadonly$.getValue();\r\n }\r\n\r\n public get hasReadonlyAccess$() {\r\n return this._isReadonly$.asObservable();\r\n }\r\n\r\n constructor(\r\n tcsConfig: TcsConfigurationService,\r\n opsReader: OpsReaderAuthorizationService,\r\n store: Store,\r\n router: RouterService,\r\n ) {\r\n observeCommunicationCenterFromRouteNavigationEnd(router, store, 'all')\r\n .pipe(\r\n undefinedOrSwitchMap((commCenter) =>\r\n opsReader.isReadonlyForCommCenterAndCurrentCompany(commCenter.id),\r\n ),\r\n map((isReadonly) => tcsConfig.value.features.opsReaderEnabled && (isReadonly ?? false)),\r\n )\r\n .subscribe(this._isReadonly$);\r\n }\r\n\r\n public readonlyOverride(\r\n value: boolean | Observable,\r\n expect: boolean = true,\r\n ): Observable {\r\n return this.hasReadonlyAccess$.pipe(\r\n switchMap((isReadonly) => {\r\n if (isReadonly) {\r\n return of(!expect);\r\n }\r\n return isObservable(value) ? value : of(value);\r\n }),\r\n );\r\n }\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, Observable, of, ReplaySubject, Subject } from 'rxjs';\r\nimport { debounceTime, filter, map, share, switchMap, take, takeUntil, tap } from 'rxjs/operators';\r\nimport { firstValueOrUndefined } from 'src/util/rxjs';\r\nimport { ifThen } from 'src/util/rxjs/operators';\r\nimport { getOrElse } from 'src/util/values';\r\n\r\nconst defaultFn = (o: T) => o;\r\n\r\nconst logIx =\r\n (\r\n msg: string,\r\n loggerFn: (msg: string) => void = defaultFn,\r\n actionFn: (req: TRequest) => void = defaultFn,\r\n ) =>\r\n (observable: Observable) => {\r\n return observable.pipe(\r\n tap((req) => actionFn(req)),\r\n tap(() => loggerFn(msg)),\r\n );\r\n };\r\n\r\nconst debounceIx =\r\n (\r\n ms: number,\r\n loggerFn: (msg: string) => void = defaultFn,\r\n actionFn: (req: TRequest) => void = defaultFn,\r\n ) =>\r\n (observable: Observable) => {\r\n return observable.pipe(\r\n logIx(`debouncing for ${ms} ms`, loggerFn, actionFn),\r\n debounceTime(ms),\r\n logIx('debounce done', loggerFn),\r\n );\r\n };\r\n\r\nexport type RequestFn = (request: TRequest) => Observable;\r\n\r\nexport abstract class RequestState {\r\n constructor(\r\n public readonly state:\r\n | 'Success'\r\n | 'Error'\r\n | 'Executing'\r\n | 'Pending'\r\n | 'New'\r\n | 'Paused'\r\n | 'Cancelled',\r\n ) {}\r\n}\r\n\r\nexport class RequestCancelled extends RequestState {\r\n constructor() {\r\n super('Cancelled');\r\n }\r\n}\r\n\r\nexport class RequestSuccess extends RequestState {\r\n constructor(public readonly result: TResult) {\r\n super('Success');\r\n }\r\n}\r\nexport class RequestError extends RequestState {\r\n constructor(public readonly error: TError) {\r\n super('Error');\r\n }\r\n}\r\nexport class RequestExecuting extends RequestState {\r\n constructor(public readonly request: TRequest) {\r\n super('Executing');\r\n }\r\n}\r\n\r\nexport class RequestPending extends RequestState {\r\n constructor(public readonly request: TRequest) {\r\n super('Pending');\r\n }\r\n}\r\n\r\nexport class RequestPaused extends RequestState {\r\n constructor(public readonly request: TRequest) {\r\n super('Paused');\r\n }\r\n}\r\n\r\nexport class NewRequest extends RequestState {\r\n constructor() {\r\n super('New');\r\n }\r\n}\r\n\r\nexport interface OperationOptions {\r\n name: string;\r\n}\r\n\r\nexport interface RequestIXOptions {\r\n name?: string;\r\n description?: string;\r\n debounceTime?: number;\r\n requestFn: RequestFn;\r\n repeatable: boolean;\r\n canExecute?: Observable;\r\n}\r\n\r\nexport class RequestIX {\r\n private _destruction$ = new Subject();\r\n private _request$ = new Subject();\r\n private readonly _state$ = new BehaviorSubject(new NewRequest());\r\n private _latestRequest$ = new ReplaySubject(1);\r\n private _pause$ = new Subject();\r\n\r\n get state(): RequestState {\r\n return this._state$.getValue();\r\n }\r\n\r\n get isDisabled$() {\r\n return this.canExecute$.pipe(map((canExecute) => !canExecute));\r\n }\r\n\r\n get state$(): Observable {\r\n return this._state$;\r\n }\r\n\r\n get canExecute$(): Observable {\r\n const stateCanExecute$ = this.state$.pipe(\r\n map((state) => {\r\n if (state instanceof NewRequest) {\r\n // Initial state may be executed\r\n return true;\r\n } else if (state instanceof RequestPending) {\r\n // Requests in pending state may be executed\r\n return true;\r\n } else if (state instanceof RequestExecuting) {\r\n // Requests in an executing state may not execute\r\n return false;\r\n } else if (state instanceof RequestPaused) {\r\n // Requests in paused state may be executed\r\n return true;\r\n } else if (state instanceof RequestError) {\r\n // If a prior request has been successful,\r\n return true;\r\n } else if (state instanceof RequestSuccess && this.options.repeatable) {\r\n return true;\r\n } else if (state instanceof RequestCancelled && this.options.repeatable) {\r\n return true;\r\n }\r\n return false;\r\n }),\r\n );\r\n if (this.options.canExecute != null) {\r\n return combineLatest([this.options.canExecute, stateCanExecute$]).pipe(\r\n map(([customCanExecute, stateCanExecute]) => {\r\n return customCanExecute && stateCanExecute;\r\n }),\r\n );\r\n }\r\n return stateCanExecute$;\r\n }\r\n\r\n get new$() {\r\n return this.state$.pipe(map((state) => (state instanceof NewRequest ? state : undefined)));\r\n }\r\n\r\n get pendingOrExecuting$() {\r\n return this.state$.pipe(\r\n map((state) =>\r\n state instanceof RequestPending || state instanceof RequestExecuting ? state : undefined,\r\n ),\r\n );\r\n }\r\n\r\n get pendingOrExecutingOrPaused$() {\r\n return this.state$.pipe(\r\n map((state) =>\r\n state instanceof RequestPending ||\r\n state instanceof RequestExecuting ||\r\n state instanceof RequestPaused\r\n ? state\r\n : undefined,\r\n ),\r\n );\r\n }\r\n\r\n get executing$() {\r\n return this.state$.pipe(\r\n map((state) => (state instanceof RequestExecuting ? state : undefined)),\r\n );\r\n }\r\n\r\n get isExecuting$() {\r\n return this.executing$.pipe(map((e) => e != null));\r\n }\r\n\r\n get executingOrSuccess$() {\r\n return this.state$.pipe(\r\n map((state) => {\r\n const result =\r\n state instanceof RequestExecuting || state instanceof RequestSuccess ? state : undefined;\r\n return result;\r\n }),\r\n );\r\n }\r\n\r\n get pendingOrExecutingOrSuccess$() {\r\n return this.state$.pipe(\r\n map((state) => {\r\n const result =\r\n state instanceof RequestExecuting ||\r\n state instanceof RequestSuccess ||\r\n state instanceof RequestPending\r\n ? state\r\n : undefined;\r\n return result;\r\n }),\r\n );\r\n }\r\n\r\n get completed$() {\r\n return this.state$.pipe(\r\n map((state) =>\r\n state instanceof RequestError ||\r\n state instanceof RequestSuccess ||\r\n state instanceof RequestCancelled\r\n ? state\r\n : undefined,\r\n ),\r\n );\r\n }\r\n\r\n get success$() {\r\n return this.state$.pipe(map((state) => (state instanceof RequestSuccess ? state : undefined)));\r\n }\r\n\r\n get error$() {\r\n return this.state$.pipe(map((state) => (state instanceof RequestError ? state : undefined)));\r\n }\r\n\r\n get cancelled$() {\r\n return this.state$.pipe(\r\n map((state) => (state instanceof RequestCancelled ? state : undefined)),\r\n );\r\n }\r\n\r\n public readonly options: RequestIXOptions;\r\n\r\n private readonly _result$: Observable;\r\n\r\n constructor(options: Partial>) {\r\n this.options = Object.assign<\r\n RequestIXOptions,\r\n Partial>\r\n >(\r\n {\r\n requestFn: (r) => of(null as any),\r\n repeatable: true,\r\n debounceTime: 0,\r\n },\r\n options,\r\n );\r\n\r\n const hasDebounce = options.debounceTime != null && options.debounceTime > 0;\r\n\r\n const logger = this.log.bind(this);\r\n\r\n this._result$ = this._request$.pipe(\r\n ifThen(\r\n () => hasDebounce,\r\n debounceIx(getOrElse(this.options.debounceTime, 0), logger, (req) =>\r\n this._state$.next(new RequestPending(req)),\r\n ),\r\n tap((req) => this._state$.next(new RequestPending(req))),\r\n ),\r\n logIx('starting execution', logger, (req) => this._state$.next(new RequestExecuting(req))),\r\n logIx('calling request fn', logger),\r\n switchMap((request) => {\r\n return this.options.requestFn(request).pipe(\r\n tap({\r\n next: (result) => {\r\n this.log('REQUEST SUCCESS');\r\n this.setSuccess(result);\r\n },\r\n error: (error) => {\r\n this.log('REQUEST ERROR');\r\n this.setError(error);\r\n },\r\n complete: () => {\r\n if (!(this.state instanceof RequestSuccess || this.state instanceof RequestError)) {\r\n this.log('REQUEST CANCELLED');\r\n this.setCancelled();\r\n }\r\n },\r\n }),\r\n );\r\n }),\r\n share(),\r\n takeUntil(\r\n this._pause$.pipe(\r\n switchMap(() => this._request$.pipe(take(1))),\r\n tap((req) => this._state$.next(new RequestPaused(req))),\r\n logIx('Paused request', logger),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n public execute(request?: TRequest | undefined): Observable {\r\n this.log('EXECUTE CALLED');\r\n this._latestRequest$.next(request);\r\n const result = this._result$.pipe(take(1));\r\n setTimeout(() => {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n this._request$.next(request!);\r\n });\r\n return result;\r\n }\r\n\r\n public pauseRequest() {\r\n if (this.state.state !== 'Pending' && this.state.state !== 'Executing') {\r\n this._pause$.next(null);\r\n }\r\n }\r\n\r\n public async resumeAndExecute() {\r\n return await firstValueOrUndefined(\r\n this._latestRequest$.pipe(\r\n take(1),\r\n filter(() => this.state instanceof RequestPaused),\r\n tap(() => this.log('Executing paused request')),\r\n switchMap((req) => this.execute(req)),\r\n takeUntil(this._pause$.pipe(tap(() => this.log('Stopped execution')))),\r\n ),\r\n );\r\n }\r\n\r\n private log(message: string, ...params: any[]) {\r\n // console.log(this.options.name + ': ' + message, ...params);\r\n }\r\n\r\n public setError(error: TError) {\r\n this._state$.next(new RequestError(error));\r\n }\r\n\r\n public setSuccess(result: TResult) {\r\n this._state$.next(new RequestSuccess(result));\r\n }\r\n\r\n public setCancelled() {\r\n this._state$.next(new RequestCancelled());\r\n }\r\n}\r\n\r\nexport class ComboIX {\r\n get new$() {\r\n return this.request.new$;\r\n }\r\n\r\n get pendingOrExecuting$() {\r\n return this.request.pendingOrExecuting$;\r\n }\r\n\r\n get pendingOrExecutingOrPaused$() {\r\n return this.request.pendingOrExecutingOrPaused$;\r\n }\r\n\r\n get executing$() {\r\n return this.request.executing$;\r\n }\r\n\r\n get pendingOrExecutingOrSuccess$() {\r\n return this.request.pendingOrExecutingOrSuccess$;\r\n }\r\n\r\n get executingOrSuccess$() {\r\n return this.request.executingOrSuccess$;\r\n }\r\n\r\n get success$() {\r\n return this.request.success$;\r\n }\r\n\r\n get completed$() {\r\n return this.request.completed$;\r\n }\r\n\r\n get error$() {\r\n return this.request.error$;\r\n }\r\n\r\n get canExecute$() {\r\n return this.request.canExecute$.pipe(\r\n map((requestCanExecute) => requestCanExecute && this.control != null && this.control.valid),\r\n );\r\n }\r\n\r\n get isDisabled$() {\r\n return this.canExecute$.pipe(map((canExecute) => !canExecute));\r\n }\r\n\r\n constructor(\r\n public readonly request: RequestIX,\r\n public readonly control: AbstractControl,\r\n ) {\r\n if (control == null) {\r\n throw new Error(\r\n `[ComboIX] Invalid paramater, 'control' cannot be null for ${request.options.name}`,\r\n );\r\n }\r\n }\r\n\r\n public execute(request?: TRequest | undefined): Observable {\r\n if (this.control == null) {\r\n throw new Error(\r\n `Cannot execute request: the form control associated with (${this.request.options.name}) cannot be null.`,\r\n );\r\n } else if (!this.control.valid) {\r\n throw new Error(\r\n `Cannot execute request: the form control associated with (${this.request.options.name}) not in valid state.`,\r\n );\r\n } else {\r\n return this.request.execute(request);\r\n }\r\n }\r\n\r\n public pauseRequest() {\r\n this.request.pauseRequest();\r\n }\r\n\r\n public resumeAndExecute() {\r\n return this.request.resumeAndExecute();\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IXContextService implements OnDestroy {\r\n private _onDestroy$ = new Subject();\r\n private _trackedControls: { name: string; control: AbstractControl }[] = [];\r\n\r\n get reset$(): Observable<{}> {\r\n return this._reset$.asObservable();\r\n }\r\n public _reset$ = new Subject<{}>();\r\n\r\n get dirtyControls() {\r\n return this._trackedControls.filter((f) => f.control.dirty);\r\n }\r\n\r\n constructor(private _router: Router) {\r\n this._router.events\r\n .pipe(\r\n filter((e) => e instanceof NavigationEnd),\r\n map((e) => e as NavigationEnd),\r\n distinctUntilChanged((n1, n2) => n1.urlAfterRedirects === n2.urlAfterRedirects),\r\n takeUntil(this._onDestroy$),\r\n )\r\n .subscribe(this._reset$);\r\n\r\n this._reset$.pipe(takeUntil(this._onDestroy$)).subscribe((r) => {\r\n this._trackedControls = [];\r\n });\r\n }\r\n\r\n public startTrackingControl(name: string, control: AbstractControl) {\r\n this._trackedControls.push({ name, control });\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { Observable, of, race, Subject } from 'rxjs';\r\nimport { filter, map, switchMap, takeUntil, withLatestFrom } from 'rxjs/operators';\r\nimport { IXContextService } from 'src/app/shared/shared-base/amg-ui/ix-context.service';\r\nimport { getOrElse } from 'src/util/values';\r\nimport { firstValueOrUndefined } from 'src/util/rxjs';\r\nimport { OpsReadonlyService } from 'src/lib/tcs-ops-readonly/ops-readonly.service';\r\nimport { ComboIX, RequestFn, RequestIX } from './ix-fx';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class IXBuilder implements OnDestroy {\r\n private _onDestroy$ = new Subject();\r\n\r\n constructor(private _ixContext: IXContextService, private _opsReadonly: OpsReadonlyService) {}\r\n\r\n private _startTrackingControl(name: string, control: AbstractControl, request: RequestIX) {\r\n this._ixContext.startTrackingControl(name, control);\r\n const destroy$ = race(this._onDestroy$, this._ixContext.reset$);\r\n request.success$\r\n .pipe(\r\n filter((s) => s != null),\r\n takeUntil(destroy$),\r\n )\r\n .subscribe(() => {\r\n control.markAsPristine();\r\n });\r\n }\r\n\r\n private _overrideCanExecute(canExecute: Observable): Observable {\r\n return canExecute.pipe(\r\n switchMap((canExec) =>\r\n this._opsReadonly.hasReadonlyAccess$.pipe(map((isReadonly) => !isReadonly && canExec)),\r\n ),\r\n );\r\n }\r\n\r\n private _overrideRequest(requestFn: RequestFn) {\r\n return (request: TRequest) =>\r\n this._opsReadonly.hasReadonlyAccess\r\n ? of(undefined as unknown as TResult)\r\n : requestFn(request);\r\n }\r\n\r\n public fetch({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n }: {\r\n name: string;\r\n debounceTime?: number;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n }): RequestIX {\r\n const requestIx = this.request({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n repeatable: true,\r\n permission: 'unrestricted',\r\n });\r\n return requestIx;\r\n }\r\n\r\n public fetchOnce({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n }: {\r\n name: string;\r\n debounceTime?: number;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n }): RequestIX {\r\n const requestIx = this.request({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n repeatable: false,\r\n permission: 'unrestricted',\r\n });\r\n return requestIx;\r\n }\r\n\r\n public post({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n }: {\r\n name: string;\r\n debounceTime?: number;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n }): RequestIX {\r\n const requestIx = this.request({\r\n name,\r\n debounceTime,\r\n repeatable: true,\r\n requestFn,\r\n canExecute,\r\n });\r\n return requestIx;\r\n }\r\n\r\n public postOnce({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n }: {\r\n name: string;\r\n debounceTime?: number;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n }): RequestIX {\r\n const requestIx = this.request({\r\n name,\r\n debounceTime,\r\n repeatable: false,\r\n requestFn,\r\n canExecute,\r\n });\r\n return requestIx;\r\n }\r\n\r\n public combo({\r\n name,\r\n requestFn,\r\n guardNavigation,\r\n control,\r\n canExecute,\r\n permission,\r\n }: {\r\n name: string;\r\n control: AbstractControl;\r\n /**\r\n * Prevents navigation from a dirty form with an alert requiring confirmation. Should be set to false for dialogs.\r\n */\r\n guardNavigation?: boolean;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n permission?: RequestPermissionType;\r\n }): ComboIX {\r\n guardNavigation = getOrElse(guardNavigation, true);\r\n const requestIx = this.request({ name, requestFn, canExecute, permission, repeatable: false });\r\n if (guardNavigation) {\r\n this._startTrackingControl(name, control, requestIx);\r\n }\r\n const comboIx = new ComboIX(requestIx, control);\r\n return comboIx;\r\n }\r\n\r\n public comboRepeatable(\r\n params: ComboRepeatableParams,\r\n ): ComboIX {\r\n const { name, requestFn, guardNavigation, control, canExecute } = params;\r\n const requestIx = this.request({\r\n name,\r\n requestFn,\r\n canExecute,\r\n debounceTime: 'autosave' in params ? 1000 : 0,\r\n repeatable: true,\r\n });\r\n const comboIx = new ComboIX(requestIx, control);\r\n if ('autosave' in params) {\r\n const destroy$ = race(this._onDestroy$, params.onDestroy);\r\n control.valueChanges\r\n .pipe(withLatestFrom(requestIx.canExecute$), takeUntil(destroy$))\r\n .subscribe(async ([value, canEx]) => {\r\n if (canEx && control.valid) {\r\n const result$ = comboIx.execute(value);\r\n if (result$ != null) {\r\n await firstValueOrUndefined(result$);\r\n }\r\n }\r\n });\r\n } else if (guardNavigation ?? true) {\r\n this._startTrackingControl(name, control, requestIx);\r\n }\r\n return comboIx;\r\n }\r\n\r\n public request({\r\n name,\r\n debounceTime,\r\n requestFn,\r\n canExecute,\r\n repeatable,\r\n permission = 'restricted',\r\n }: {\r\n name: string;\r\n repeatable: boolean;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n debounceTime?: number;\r\n /**\r\n * Determines if restrictions will be applied before executing the request\r\n */\r\n permission?: RequestPermissionType;\r\n }): RequestIX {\r\n const isRestricted = permission === 'restricted';\r\n const requestIx = new RequestIX({\r\n name,\r\n repeatable,\r\n debounceTime,\r\n requestFn: isRestricted ? this._overrideRequest(requestFn) : requestFn,\r\n canExecute: isRestricted ? this._overrideCanExecute(canExecute ?? of(true)) : canExecute,\r\n });\r\n return requestIx;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._onDestroy$.next(null);\r\n this._onDestroy$.complete();\r\n }\r\n}\r\n\r\ninterface ComboRepeatableParamsBase {\r\n name: string;\r\n control: AbstractControl;\r\n /**\r\n * Prevents navigation from a dirty form with an alert requiring confirmation. Should be set to false for dialogs.\r\n */\r\n guardNavigation?: boolean;\r\n requestFn: RequestFn;\r\n canExecute?: Observable;\r\n}\r\n\r\ntype ComboRepeatableAutosaveParams = ComboRepeatableParamsBase<\r\n TRequest,\r\n TResult\r\n> & { autosave: true; onDestroy: Observable };\r\n\r\ntype ComboRepeatableParams =\r\n | ComboRepeatableAutosaveParams\r\n | ComboRepeatableParamsBase;\r\n\r\ntype RequestPermissionType = 'restricted' | 'unrestricted';\r\n","import { isArray } from 'lodash-es';\r\n\r\nexport function byPropertyAscending(selector: (obj: T) => string) {\r\n return (a: T, b: T) => {\r\n const textA = selector(a).toUpperCase();\r\n const textB = selector(b).toUpperCase();\r\n return textA < textB ? -1 : textA > textB ? 1 : 0;\r\n };\r\n}\r\n\r\nexport function includeSameElements(arr1: T[], arr2: T[]) {\r\n return arr1.every((e) => arr2.includes(e)) && arr2.every((e) => arr1.includes(e));\r\n}\r\n\r\nexport function coerceArray(maybeArray: undefined | null | T | T[]): T[] {\r\n if (maybeArray == null) {\r\n return [];\r\n }\r\n if (isArray(maybeArray)) {\r\n return maybeArray;\r\n }\r\n return [maybeArray];\r\n}\r\n\r\nexport const indexIn = (values: number[]) => (value: any, index: number) => values.includes(index);\r\n\r\nexport const indexNotIn = (values: number[]) => (value: any, index: number) =>\r\n !values.includes(index);\r\n\r\nexport function getLastElement(values: T[]): T | null {\r\n return values.length > 0 ? values[values.length - 1] : null;\r\n}\r\n\r\nexport function getAddedValuesBy(before: T[], after: T[], selector: (value: T) => any) {\r\n return getAddedValues(\r\n before,\r\n after,\r\n (beforeElement, afterElement) => selector(beforeElement) === selector(afterElement),\r\n );\r\n}\r\n\r\nexport function getAddedValues(\r\n before: T[],\r\n after: T[],\r\n compare: (beforeElement: T, afterElement: T) => boolean = (beforeElement, afterElement) =>\r\n beforeElement === afterElement,\r\n) {\r\n const addedValues = [...after];\r\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\r\n for (let i = 0; i < before.length; i++) {\r\n const element = before[i];\r\n const index = addedValues.findIndex((v) => compare(element, v));\r\n if (index !== -1) {\r\n addedValues.splice(index, 1);\r\n }\r\n }\r\n return addedValues;\r\n}\r\n\r\nexport function getRemovedValuesBy(before: T[], after: T[], selector: (value: T) => any) {\r\n return getRemovedValues(\r\n before,\r\n after,\r\n (beforeElement, afterElement) => selector(beforeElement) === selector(afterElement),\r\n );\r\n}\r\n\r\nexport function getRemovedValues(\r\n before: T[],\r\n after: T[],\r\n compare: (beforeElement: T, afterElement: T) => boolean = (beforeElement, afterElement) =>\r\n beforeElement === afterElement,\r\n) {\r\n const removedValues = [...before];\r\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\r\n for (let i = 0; i < after.length; i++) {\r\n const afterElement = after[i];\r\n const notRemovedIndex = removedValues.findIndex((beforeElement) =>\r\n compare(beforeElement, afterElement),\r\n );\r\n if (notRemovedIndex !== -1) {\r\n removedValues.splice(notRemovedIndex, 1);\r\n }\r\n }\r\n return removedValues;\r\n}\r\n\r\nexport function withoutDuplicates(array: any[]) {\r\n return array.reduce((result, element) => {\r\n if (result.indexOf(element) === -1) {\r\n result.push(element);\r\n }\r\n return result;\r\n }, []);\r\n}\r\n"],"mappings":"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","names":["BaseControlValueAccessor","_renderer","_elementRef","_","key","value","fn","isDisabled","t","ɵɵdirectiveInject","Renderer2","ElementRef","ɵɵdefineDirective","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","ɵɵgetInheritedFactory","ɵɵInheritDefinitionFeature","NG_VALUE_ACCESSOR","InjectionToken","DEFAULT_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","DefaultValueAccessor","_isAndroid","userAgent","getDOM","COMPOSITION_BUFFER_MODE","InjectionToken","BaseControlValueAccessor","renderer","elementRef","_compositionMode","value","normalizedValue","t","ɵɵdirectiveInject","Renderer2","ElementRef","ɵɵdefineDirective","rf","ctx","ɵɵlistener","$event","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","min","minValidator","max","maxValidator","control","requiredValidator","requiredTrueValidator","emailValidator","minLength","minLengthValidator","maxLength","maxLengthValidator","pattern","patternValidator","nullValidator","validators","compose","composeAsync","regex","regexStr","isPresent","o","toObservable","isPromise","from","mergeErrors","arrayOfErrors","res","errors","__spreadValues","executeValidators","validator","isValidatorFn","normalizeValidators","c","presentValidators","composeValidators","observables","forkJoin","map","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","getControlAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","current","v","removeValidators","AbstractControlDirective","fn","errorCode","path","ControlContainer","NgControl","AbstractControlStatus","cd","ngControlStatusHost","ngGroupStatusHost","__spreadProps","NgControlStatus","ɵɵclassProp","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","coerceToValidator","validator","composeValidators","pickAsyncValidators","asyncValidator","coerceToAsyncValidator","composeAsyncValidators","assertControlPresent","parent","isGroup","key","controls","RuntimeError","assertAllValuesPresent","control","value","_","AbstractControl","validators","asyncValidators","validatorFn","asyncValidatorFn","addValidators","removeValidators","hasValidator","opts","skipPristineCheck","__spreadProps","__spreadValues","changeFn","ctrl","emitEvent","obs","toObservable","errors","path","currPath","name","errorCode","x","EventEmitter","status","fn","onlySelf","parentDirty","FormGroup","options","controlName","acc","subtreeUpdated","updated","child","cb","condition","initValue","res","UntypedFormGroup","FormGroup","FormRecord","FormGroup","CALL_SET_DISABLED_STATE","InjectionToken","setDisabledStateDefault","controlPath","name","parent","setUpControl","control","dir","callSetDisabledState","setUpValidators","setUpViewChangePipeline","setUpModelChangePipeline","setUpBlurPipeline","setUpDisabledChangeHandler","cleanUpControl","validateControlPresenceOnChange","noop","cleanUpValidators","registerOnValidatorChange","validators","onChange","validator","onDisabledChange","isDisabled","getControlValidators","mergeValidators","asyncValidators","getControlAsyncValidators","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","asyncValidator","newValue","updateControl","emitModelEvent","setUpFormContainer","cleanUpFormContainer","isPropertyUpdated","changes","viewModel","change","isBuiltInAccessor","valueAccessor","BuiltInControlValueAccessor","syncPendingControls","form","directives","dir","control","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","v","DefaultValueAccessor","removeListItem$1","list","el","index","formDirectiveProvider$1","ControlContainer","forwardRef","NgForm","resolvedPromise$1","validators","asyncValidators","callSetDisabledState","EventEmitter","FormGroup","composeValidators","composeAsyncValidators","dir","container","setUpControl","group","setUpFormContainer","value","$event","syncPendingControls","path","t","ɵɵdirectiveInject","NG_VALIDATORS","NG_ASYNC_VALIDATORS","CALL_SET_DISABLED_STATE","ɵɵdefineDirective","rf","ctx","ɵɵlistener","InputFlags","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","removeListItem","list","el","index","isFormControlState","formState","FormControl","AbstractControl","validatorOrOpts","asyncValidator","pickValidators","pickAsyncValidators","isOptionsObj","options","changeFn","condition","fn","cb","UntypedFormControl","isFormControl","control","AbstractFormGroupDirective","controlPath","ɵAbstractFormGroupDirective_BaseFactory","ɵɵgetInheritedFactory","formControlBinding$1","NgControl","forwardRef","NgModel","resolvedPromise","parent","validators","asyncValidators","valueAccessors","_changeDetectorRef","callSetDisabledState","FormControl","EventEmitter","selectValueAccessor","changes","oldName","isPropertyUpdated","newValue","setUpControl","value","disabledValue","isDisabled","booleanAttribute","controlName","controlPath","t","ɵɵdirectiveInject","ControlContainer","NG_VALIDATORS","NG_ASYNC_VALIDATORS","NG_VALUE_ACCESSOR","ChangeDetectorRef","CALL_SET_DISABLED_STATE","ɵɵdefineDirective","InputFlags","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","BuiltInControlValueAccessor","normalizedValue","fn","ɵNumberValueAccessor_BaseFactory","ɵɵgetInheritedFactory","rf","ctx","ɵɵlistener","$event","NG_MODEL_WITH_FORM_CONTROL_WARNING","InjectionToken","formControlBinding","NgControl","forwardRef","FormControlDirective","isDisabled","validators","asyncValidators","valueAccessors","_ngModelWarningConfig","callSetDisabledState","EventEmitter","selectValueAccessor","changes","previousForm","cleanUpControl","setUpControl","isPropertyUpdated","newValue","t","ɵɵdirectiveInject","NG_VALIDATORS","NG_ASYNC_VALIDATORS","NG_VALUE_ACCESSOR","CALL_SET_DISABLED_STATE","ɵɵdefineDirective","InputFlags","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","formDirectiveProvider","ControlContainer","FormGroupDirective","cleanUpValidators","dir","ctrl","removeListItem$1","value","$event","syncPendingControls","oldCtrl","newCtrl","isFormControl","setUpFormContainer","cleanUpFormContainer","setUpValidators","rf","ctx","ɵɵlistener","formGroupNameProvider","FormGroupName","AbstractFormGroupDirective","parent","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlPath","controlNameBinding","FormControlName","toInteger","value","toFloat","AbstractValidatorDirective","nullValidator","changes","input","control","fn","t","ɵɵdefineDirective","ɵɵNgOnChangesFeature","MAX_VALIDATOR","NG_VALIDATORS","forwardRef","MaxValidator","max","maxValidator","ɵMaxValidator_BaseFactory","ɵɵgetInheritedFactory","rf","ctx","ɵɵattribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","MIN_VALIDATOR","MinValidator","min","minValidator","ɵMinValidator_BaseFactory","REQUIRED_VALIDATOR","RequiredValidator","RequiredValidator","AbstractValidatorDirective","booleanAttribute","input","requiredValidator","ɵRequiredValidator_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","rf","ctx","ɵɵattribute","ɵɵProvidersFeature","REQUIRED_VALIDATOR","ɵɵInheritDefinitionFeature","MAX_LENGTH_VALIDATOR","NG_VALIDATORS","forwardRef","MaxLengthValidator","AbstractValidatorDirective","input","toInteger","maxlength","maxLengthValidator","ɵMaxLengthValidator_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","rf","ctx","ɵɵattribute","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","PATTERN_VALIDATOR","PatternValidator","patternValidator","ɵPatternValidator_BaseFactory","ɵInternalFormsSharedModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","FormArray","AbstractControl","controls","validatorOrOpts","asyncValidator","pickValidators","pickAsyncValidators","index","control","options","adjustedIndex","value","assertAllValuesPresent","newValue","assertControlPresent","subtreeUpdated","updated","child","cb","condition","name","UntypedFormArray","isAbstractControlOptions","options","FormBuilder","nnfb","controls","reducedControls","newOptions","FormGroup","FormRecord","formState","validatorOrOpts","asyncValidator","FormControl","__spreadProps","__spreadValues","createdControls","c","FormArray","controlName","AbstractControl","value","validator","t","ɵɵdefineInjectable","UntypedFormBuilder","FormBuilder","controlsConfig","options","formState","validatorOrOpts","asyncValidator","ɵUntypedFormBuilder_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","FormsModule","opts","CALL_SET_DISABLED_STATE","setDisabledStateDefault","t","ɵɵdefineNgModule","ɵɵdefineInjector","ɵInternalFormsSharedModule","ReactiveFormsModule","NG_MODEL_WITH_FORM_CONTROL_WARNING","coerceBooleanProperty","value","coerceNumberProperty","fallbackValue","_isNumberValue","coerceArray","coerceCssPixelValue","coerceElement","elementOrRef","ElementRef","coerceStringArray","separator","result","sourceValues","sourceValue","trimmedString","hasV8BreakIterator","Platform","_platformId","isPlatformBrowser","t","ɵɵinject","PLATFORM_ID","ɵɵdefineInjectable","supportedInputTypes","candidateInputTypes","getSupportedInputTypes","featureTestInput","value","supportsPassiveEvents","supportsPassiveEventListeners","normalizePassiveListenerOptions","options","rtlScrollAxisType","scrollBehaviorSupported","supportsScrollBehavior","scrollToFunction","getRtlScrollAxisType","scrollContainer","containerStyle","content","contentStyle","shadowDomIsSupported","_supportsShadowDom","head","_getShadowRoot","element","rootNode","_getFocusedElementPierceShadowDom","activeElement","newActiveElement","_getEventTarget","event","_isTestEnvironment","DIR_DOCUMENT","InjectionToken","DIR_DOCUMENT_FACTORY","inject","DOCUMENT","RTL_LOCALE_PATTERN","_resolveDirectionality","rawValue","value","Directionality","_document","EventEmitter","bodyDir","htmlDir","t","ɵɵinject","ɵɵdefineInjectable","BidiModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","DataSource","isDataSource","value","ConnectableObservable","ArrayDataSource","_data","isObservable","of","_DisposeViewRepeaterStrategy","changes","viewContainerRef","itemContextFactory","itemValueResolver","itemViewChanged","record","adjustedPreviousIndex","currentIndex","view","operation","insertContext","_RecycleViewRepeaterStrategy","viewArgsFactory","cachedView","viewArgs","index","detachedView","SelectionModel","_multiple","initiallySelectedValues","_emitChanges","compareWith","Subject","values","changed","oldValues","newSelectedSet","flushEvent","predicate","inputValue","selectedValue","UniqueSelectionDispatcher","id","name","listener","registered","t","ɵɵdefineInjectable","_VIEW_REPEATER_STRATEGY","InjectionToken","_c0","_c1","VIRTUAL_SCROLL_STRATEGY","InjectionToken","FixedSizeVirtualScrollStrategy","itemSize","minBufferPx","maxBufferPx","Subject","distinctUntilChanged","viewport","index","behavior","renderedRange","newRange","viewportSize","dataLength","scrollOffset","firstVisibleIndex","maxVisibleItems","newVisibleIndex","startBuffer","expandStart","endBuffer","expandEnd","_fixedSizeVirtualScrollStrategyFactory","fixedSizeDir","CdkFixedSizeVirtualScroll","value","coerceNumberProperty","t","ɵɵdefineDirective","ɵɵProvidersFeature","forwardRef","ɵɵNgOnChangesFeature","DEFAULT_SCROLL_TIME","ScrollDispatcher","_ngZone","_platform","document","scrollable","scrollableReference","auditTimeInMs","Observable","observer","subscription","auditTime","of","_","container","elementOrElementRef","ancestors","filter","target","scrollingContainers","_subscription","element","coerceElement","scrollableElement","window","fromEvent","ɵɵinject","NgZone","Platform","DOCUMENT","ɵɵdefineInjectable","CdkScrollable","elementRef","scrollDispatcher","ngZone","dir","takeUntil","options","el","isRtl","getRtlScrollAxisType","supportsScrollBehavior","from","LEFT","RIGHT","ɵɵdirectiveInject","ElementRef","Directionality","DEFAULT_RESIZE_TIME","ViewportRuler","event","output","scrollPosition","width","height","documentElement","documentRect","top","left","throttleTime","VIRTUAL_SCROLLABLE","CdkVirtualScrollable","orientation","viewportEl","ɵɵInheritDefinitionFeature","rangesEqual","r1","r2","SCROLL_SCHEDULER","animationFrameScheduler","asapScheduler","CdkVirtualScrollViewport","coerceBooleanProperty","_changeDetectorRef","_scrollStrategy","viewportRuler","inject","Subscription","startWith","forOf","data","newLength","size","range","offset","to","isHorizontal","axis","transform","measureScrollOffset","_from","fromRect","scrollerClientRect","contentEl","runAfter","runAfterChangeDetection","fn","ChangeDetectorRef","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassProp","virtualScrollable","Optional","Inject","ɵɵStandaloneFeature","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵstyleProp","getOffset","direction","node","rect","CdkVirtualForOf","isDataSource","ArrayDataSource","isObservable","item","_viewContainerRef","_template","_differs","_viewRepeater","_viewport","pairwise","switchMap","prev","cur","shareReplay","renderedStartIndex","rangeLen","firstNode","lastNode","i","view","changes","oldDs","newDs","count","record","_adjustedPreviousIndex","currentIndex","context","ViewContainerRef","TemplateRef","IterableDiffers","_VIEW_REPEATER_STRATEGY","_RecycleViewRepeaterStrategy","CdkScrollableModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","ScrollingModule","BidiModule","hasModifierKey","event","modifiers","modifier","MutationObserverFactory","callback","t","ɵɵdefineInjectable","ContentObserver","_mutationObserverFactory","_","element","elementOrRef","coerceElement","Observable","observer","subscription","stream","Subject","mutations","ɵɵinject","CdkObserveContent","value","coerceBooleanProperty","coerceNumberProperty","_contentObserver","_elementRef","_ngZone","EventEmitter","debounceTime","ɵɵdirectiveInject","ElementRef","NgZone","ɵɵdefineDirective","InputFlags","ObserversModule","ɵɵdefineNgModule","ɵɵdefineInjector","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_platform","_nonce","noopMatchMedia","query","createEmptyStyleRule","t","ɵɵinject","Platform","CSP_NONCE","ɵɵdefineInjectable","nonce","e","BreakpointObserver","_mediaMatcher","_zone","Subject","value","splitQueries","coerceArray","mediaQuery","observables","stateObservable","combineLatest","concat","take","skip","debounceTime","map","breakpointStates","response","matches","mql","output","Observable","observer","handler","startWith","takeUntil","NgZone","queries","a1","a2","Breakpoints","ID_DELIMITER","addAriaReferencedId","el","attr","id","ids","getAriaReferenceIds","existingId","removeAriaReferencedId","filteredIds","val","CDK_DESCRIBEDBY_ID_PREFIX","CDK_DESCRIBEDBY_HOST_ATTRIBUTE","nextId","AriaDescriber","_document","_platform","inject","APP_ID","hostElement","message","role","key","getKey","setMessageId","registeredMessage","describedElements","i","messageElement","containerClassName","serverContainers","messagesContainer","element","originalReferenceIds","getAriaReferenceIds","id","addAriaReferencedId","removeAriaReferencedId","referenceIds","messageId","trimmedMessage","ariaLabel","t","ɵɵinject","DOCUMENT","Platform","ɵɵdefineInjectable","serviceId","ListKeyManager","_items","Subject","Subscription","item","QueryList","newItems","newIndex","predicate","shouldWrap","enabled","direction","keys","debounceInterval","tap","letter","debounceTime","filter","map","inputString","items","index","delta","previousActiveItem","event","keyCode","isModifierAllowed","modifier","targetIndex","itemsLength","hasModifierKey","itemArray","activeItem","fallbackDelta","ActiveDescendantKeyManager","FocusKeyManager","origin","InteractivityChecker","_platform","element","hasGeometry","frameElement","getFrameElement","getWindow","getTabIndexValue","nodeName","tabIndexValue","isPotentiallyTabbableIOS","config","isPotentiallyFocusable","t","ɵɵinject","Platform","ɵɵdefineInjectable","window","isNativeFormElement","isHiddenInput","isInputElement","isAnchorWithHref","isAnchorElement","hasValidTabIndex","tabIndex","inputType","node","FocusTrap","value","_element","_checker","_ngZone","_document","deferAnchors","startAnchor","endAnchor","options","resolve","bound","markers","redirectToElement","focusableChild","root","children","i","tabbableChild","anchor","isEnabled","enabled","fn","take","FocusTrapFactory","deferCaptureElements","NgZone","DOCUMENT","CdkTrapFocus","coerceBooleanProperty","_elementRef","_focusTrapFactory","changes","autoCaptureChange","_getFocusedElementPierceShadowDom","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","InputFlags","ɵɵNgOnChangesFeature","ConfigurableFocusTrap","_focusTrapManager","_inertStrategy","FOCUS_TRAP_INERT_STRATEGY","InjectionToken","EventListenerFocusTrapInertStrategy","focusTrap","e","event","target","focusTrapRoot","FocusTrapManager","ft","stack","ConfigurableFocusTrapFactory","configObject","isFakeMousedownFromScreenReader","isFakeTouchstartFromScreenReader","touch","INPUT_MODALITY_DETECTOR_OPTIONS","INPUT_MODALITY_DETECTOR_DEFAULT_OPTIONS","TOUCH_BUFFER_MS","modalityEventListenerOptions","normalizePassiveListenerOptions","InputModalityDetector","ngZone","document","BehaviorSubject","keyCode","_getEventTarget","__spreadValues","skip","distinctUntilChanged","LIVE_ANNOUNCER_ELEMENT_TOKEN","LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY","LIVE_ANNOUNCER_DEFAULT_OPTIONS","uniqueIds","LiveAnnouncer","elementToken","_defaultOptions","message","args","defaultOptions","politeness","duration","elementClass","previousElements","liveEl","id","modals","modal","ariaOwns","FOCUS_MONITOR_DEFAULT_OPTIONS","InjectionToken","captureEventListenerOptions","normalizePassiveListenerOptions","FocusMonitor","_ngZone","_platform","_inputModalityDetector","document","options","Subject","event","target","_getEventTarget","element","checkChildren","nativeElement","coerceElement","of","rootNode","_getShadowRoot","cachedInfo","info","elementInfo","origin","focusedElement","currentElement","_info","focusEventTarget","isFromInteraction","ms","TOUCH_BUFFER_MS","rootNodeFocusListeners","takeUntil","modality","results","mostRecentTarget","mostRecentModality","labels","i","t","ɵɵinject","NgZone","Platform","InputModalityDetector","DOCUMENT","ɵɵdefineInjectable","CdkMonitorFocus","_elementRef","_focusMonitor","EventEmitter","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","BLACK_ON_WHITE_CSS_CLASS","WHITE_ON_BLACK_CSS_CLASS","HIGH_CONTRAST_MODE_ACTIVE_CSS_CLASS","HighContrastModeDetector","inject","BreakpointObserver","testElement","documentWindow","computedStyle","computedColor","bodyClasses","mode","A11yModule","highContrastModeDetector","ɵɵdefineNgModule","ɵɵdefineInjector","ObserversModule","AnimationMetadataType","AUTO_STYLE","trigger","name","definitions","animate","timings","styles","group","steps","options","sequence","style","tokens","state","keyframes","transition","stateChangeExpr","animation","animateChild","query","selector","animation","options","AnimationMetadataType","NoopAnimationPlayer","duration","delay","fn","position","phaseName","methods","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","total","player","time","p","timeAtPosition","longestPlayer","longestSoFar","ɵPRE_STYLE","invalidTimingValue","exp","RuntimeError","negativeStepValue","negativeDelayValue","invalidStyleParams","varName","invalidParamValue","invalidNodeType","nodeType","invalidCssUnitValue","userProvidedProperty","value","invalidTrigger","invalidDefinition","invalidState","metadataName","missingSubs","invalidStyleValue","invalidParallelAnimation","prop","firstStart","firstEnd","secondStart","secondEnd","RuntimeError","invalidKeyframes","invalidOffset","keyframeOffsetsOutOfOrder","keyframesMissingOffsets","invalidStagger","invalidQuery","selector","invalidExpression","expr","invalidTransitionAlias","alias","triggerBuildFailed","name","errors","RuntimeError","animationFailed","registerFailed","missingOrDestroyedAnimation","createAnimationFailed","missingPlayer","id","missingTrigger","phase","missingEvent","unsupportedTriggerEvent","unregisteredTrigger","triggerTransitionsFailed","transitionFailed","name","errors","RuntimeError","optimizeGroupPlayer","players","NoopAnimationPlayer","AnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","val","prop","normalizedProp","normalizedValue","ɵPRE_STYLE","AUTO_STYLE","animationFailed","listenOnPlayer","player","eventName","event","callback","copyAnimationEvent","e","phaseName","totalTime","disabled","makeAnimationEvent","data","element","triggerName","fromState","toState","getOrSetDefaultValue","map","key","defaultValue","value","parseTimelineCommand","command","separatorPos","id","action","documentElement","getParentElement","parent","containsVendorPrefix","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","getBodyNode","result","getBodyNode","containsElement","elm1","elm2","getParentElement","invokeQuery","element","selector","multi","elem","NoopAnimationDriver","prop","validateStyleProperty","_element","_selector","elm1","elm2","containsElement","element","getParentElement","selector","multi","invokeQuery","defaultValue","keyframes","duration","delay","easing","previousPlayers","scrubberAccessRequested","NoopAnimationPlayer","t","ɵɵdefineInjectable","AnimationDriver","AnimationStyleNormalizer","ONE_SECOND","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","value","matches","_convertTimeValueToMS","unit","resolveTiming","timings","errors","allowNegativeValues","parseTimeExpression","exp","regex","duration","delay","easing","invalidTimingValue","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","normalizeKeyframes","keyframes","kf","setStyles","element","styles","formerStyles","val","prop","camelProp","dashCaseToCamelCase","eraseStyles","_","normalizeAnimationEntry","steps","sequence","validateStyleParams","value","options","errors","params","matches","extractStyleParams","varName","invalidStyleParams","PARAM_REGEX","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","match","interpolateParams","original","str","localVal","invalidParamValue","DASH_CASE_REGEXP","input","m","allowPreviousPlayerStylesMerge","duration","delay","balancePreviousStylesIntoKeyframes","element","keyframes","previousStyles","startingKeyframe","missingStyleProps","val","prop","i","kf","computeStyle","visitDslNode","visitor","node","context","AnimationMetadataType","invalidNodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","AnimationStyleNormalizer","propertyName","errors","dashCaseToCamelCase","userProvidedProperty","normalizedProperty","value","unit","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","parseTransitionExpr","transitionValue","errors","expressions","str","parseInnerTransitionStr","eventStr","result","parseAnimationAlias","match","invalidExpression","fromState","separator","toState","makeLambdaFromStates","isFullAnyStateExpr","alias","invalidTransitionAlias","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","ROOT_SELECTOR","_driver","context","AnimationAstBuilderContext","visitDslNode","normalizeAnimationEntry","queryCount","depCount","states","transitions","invalidTrigger","def","AnimationMetadataType","stateDef","name","n","transition","invalidDefinition","styleAst","astParams","missingSubs","params","style","value","extractStyleParams","sub","invalidState","animation","matchers","normalizeAnimationOptions","s","currentTime","furthestTime","steps","step","innerAst","timingAst","constructTimingAst","styleMetadata","isEmpty","newStyleData","_styleAst","ast","styles","metadataStyles","styleTuple","AUTO_STYLE","invalidStyleValue","containsDynamicStyles","collectedEasing","styleData","SUBSTITUTION_EXPR_START","timings","endTime","startTime","tuple","prop","collectedStyles","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidKeyframes","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","previousOffset","keyframes","offsetVal","consumeOffset","offset","invalidOffset","keyframeOffsetsOutOfOrder","length","generatedOffset","keyframesMissingOffsets","limit","currentAnimateTimings","animateDuration","kf","i","durationUpToThisFrame","parentSelector","options","selector","includeSelf","normalizeSelector","getOrSetDefaultValue","invalidStagger","resolveTiming","hasAmpersand","token","NG_TRIGGER_SELECTOR","NG_ANIMATING_SELECTOR","normalizeParams","obj","__spreadValues","duration","makeTimingAst","strValue","v","delay","easing","createTimelineInstruction","element","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","instructions","existingInstructions","ONE_FRAME_IN_MILLISECONDS","ENTER_TOKEN","ENTER_TOKEN_REGEX","LEAVE_TOKEN","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","AnimationTimelineContext","resolveTimingValue","timelines","timeline","lastRootTimeline","elementInstructions","innerContext","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","interpolateParams","instruction","instructionTimings","subContextCount","ctx","DEFAULT_NOOP_PREVIOUS_NODE","innerTimelines","timingValue","innerTimeline","elms","sameElementTimeline","parentContext","tl","maxTime","startingTime","_AnimationTimelineContext","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","target","updatedTimings","builder","SubTimelineBuilder","time","originalSelector","optional","results","multi","elements","invalidQuery","_TimelineBuilder","_elementTimelineStylesLookup","hasPreStyleStep","input","flattenStyles","val","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","ɵPRE_STYLE","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","totalTime","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","timeAtKeyframe","decimalPoints","mult","allStyles","allProperties","createTransitionInstruction","triggerName","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","oneOrMoreTransitionsMatch","matchFns","currentState","nextState","element","params","fn","applyParamDefaults","userParams","defaults","result","__spreadValues","key","value","AnimationStateStyles","styles","defaultParams","normalizer","errors","finalStyles","combinedParams","val","prop","interpolateParams","normalizedProp","buildTrigger","name","ast","AnimationTrigger","_normalizer","balanceProperties","AnimationTransitionFactory","createFallbackTransition","f","triggerName","states","matchers","fromState","toState","animation","AnimationMetadataType","transition","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","ElementInstructionMap","TimelineAnimationEngine","bodyNode","_driver","id","metadata","warnings","buildAnimationAst","registerFailed","preStyles","postStyles","keyframes","normalizeKeyframes$1","options","instructions","autoStylesMap","buildAnimationTimelines","ENTER_CLASSNAME","LEAVE_CLASSNAME","inst","getOrSetDefaultValue","missingOrDestroyedAnimation","createAnimationFailed","_","AUTO_STYLE","players","i","player","optimizeGroupPlayer","index","missingPlayer","eventName","callback","baseEvent","makeAnimationEvent","listenOnPlayer","command","args","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","STAR_CLASSNAME","STAR_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","input","namespaceId","isObj","normalizeTriggerValue","_a","__objRest","newParams","oldParams","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","data","triggersWithStates","NG_TRIGGER_CLASSNAME","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","fromStyles","toStyles","eraseStyles","setStyles","playersOnElement","isFallbackTransition","removeClass","entry","elementPlayers","rootElement","context","elements","NG_TRIGGER_SELECTOR","elm","namespaces","ns","destroyAfterComplete","triggerStates","previousTriggersValues","state","elementStates","visitedTriggers","listener","engine","containsPotentialParentTransition","currentPlayers","parent","removalFlag","microtaskId","a","b","d0","d1","p","TransitionAnimationEngine","driver","scheduler","namespaceList","namespacesByHostElement","found","ancestor","ancestorNs","stateValue","isElementNode","insertBefore","details","hostNS","hasAnimation","subTimelines","enterClassName","leaveClassName","skipBuildAst","containerElement","NG_ANIMATING_SELECTOR","resolve","node","cleanupFns","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","queriedElements","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","instruction","timelines","tl","tuple","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","ɵPRE_STYLE","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","parentPlayers","playersForElement","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","NoopAnimationPlayer","previousPlayers","flattenGroupPlayers","pp","wrappedPlayer","deleteOrUnsetInMap","NG_ANIMATING_CLASSNAME","callbacks","totalTime","phaseName","map","currentValues","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","finalPlayers","_flattenGroupPlayersRecur","AnimationGroupPlayer","k1","k2","postEntry","preEntry","AnimationEngine","doc","componentId","cacheKey","triggerBuildFailed","disable","property","action","parseTimelineCommand","eventPhase","cb","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_SpecialCasedStyles","_element","_startStyles","_endStyles","initialStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","onFinish","kfs","frame","computeStyle","methods","WebAnimationsDriver","_selector","elm1","elm2","containsElement","getParentElement","selector","multi","invokeQuery","defaultValue","duration","delay","easing","fill","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","_keyframes","normalizeKeyframes","balancePreviousStylesIntoKeyframes","specialStyles","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","namespaceId","delegate","engine","_onDestroy","node","name","namespace","value","parent","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","el","style","flags","target","eventName","callback","element","AnimationRenderer","factory","onDestroy","resolveElementFromTarget","phase","parseTriggerCallbackName","event","countId","triggerName","dotIndex","trigger","AnimationRendererFactory","_zone","parentNode","hostElement","type","EMPTY_NAMESPACE_ID","cache","renderer","onRendererDestroy","componentId","registerTrigger","count","fn","data","animationCallbacksBuffer","tuple","InjectableAnimationEngine","AnimationEngine","doc","driver","normalizer","inject","ChangeDetectionScheduler","t","ɵɵinject","DOCUMENT","AnimationDriver","AnimationStyleNormalizer","ɵɵdefineInjectable","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","renderer","engine","zone","AnimationRendererFactory","SHARED_ANIMATION_PROVIDERS","RendererFactory2","DomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","WebAnimationsDriver","ANIMATION_MODULE_TYPE","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationDriver","BrowserAnimationsModule","config","ɵɵdefineNgModule","ɵɵdefineInjector","BrowserModule","_c2","_c3","_c4","MatOption_mat_pseudo_checkbox_0_Template","rf","ctx","ɵɵelement","ctx_r0","ɵɵnextContext","ɵɵproperty","MatOption_mat_pseudo_checkbox_5_Template","MatOption_span_6_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","MATERIAL_SANITY_CHECKS_FACTORY","MATERIAL_SANITY_CHECKS","InjectionToken","MatCommonModule","highContrastModeDetector","_sanityChecks","_document","name","_isTestEnvironment","t","ɵɵinject","HighContrastModeDetector","DOCUMENT","ɵɵdefineNgModule","ɵɵdefineInjector","BidiModule","mixinDisabled","base","value","coerceBooleanProperty","args","mixinColor","defaultColor","colorPalette","mixinDisableRipple","mixinTabIndex","defaultTabIndex","coerceNumberProperty","mixinErrorState","oldState","parent","matcher","control","newState","mixinInitialized","Observable","subscriber","MAT_DATE_LOCALE","InjectionToken","MAT_DATE_LOCALE_FACTORY","inject","LOCALE_ID","DateAdapter","Subject","obj","locale","first","second","firstValid","secondValid","date","min","max","MAT_DATE_FORMATS","ISO_8601_REGEX","range","length","valueFunction","valuesArray","i","NativeDateAdapter","matDateLocale","_platform","style","dtf","year","month","result","parseFormat","displayFormat","__spreadProps","__spreadValues","years","months","newDate","days","d","n","t","ɵɵinject","Platform","ɵɵdefineInjectable","MAT_NATIVE_DATE_FORMATS","NativeDateModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatNativeDateModule","ErrorStateMatcher","control","form","t","ɵɵdefineInjectable","MatLine","ɵɵdefineDirective","setLines","lines","element","prefix","startWith","length","setClass","className","isAdd","MatLineModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","RippleRef","_renderer","config","_animationForciblyDisabledThroughCss","passiveCapturingEventOptions$1","normalizePassiveListenerOptions","RippleEventManager","event","target","_getEventTarget","handlers","handler","ngZone","name","handlersForEvent","handlersForElement","defaultRippleAnimationConfig","ignoreMouseEventsTimeout","passiveCapturingEventOptions","pointerDownEvents","pointerUpEvents","RippleRenderer","_RippleRenderer","_target","_ngZone","elementOrElementRef","_platform","coerceElement","x","y","containerRect","animationConfig","__spreadValues","radius","distanceToFurthestCorner","offsetX","offsetY","enterDuration","ripple","computedStyles","userTransitionProperty","userTransitionDuration","animationForciblyDisabledThroughCss","rippleRef","eventListeners","onTransitionEnd","onTransitionCancel","rippleEl","type","isMostRecentTransientRipple","persistent","isFakeMousedown","isFakeMousedownFromScreenReader","isSyntheticEvent","isFakeTouchstartFromScreenReader","touches","i","isVisible","trigger","rect","distX","distY","MAT_RIPPLE_GLOBAL_OPTIONS","InjectionToken","MatRipple","value","_elementRef","platform","globalOptions","_animationMode","configOrX","ɵɵdirectiveInject","ElementRef","NgZone","Platform","ANIMATION_MODULE_TYPE","rf","ctx","ɵɵclassProp","InputFlags","MatRippleModule","MatPseudoCheckbox","ɵɵdefineComponent","MatPseudoCheckboxModule","MAT_OPTION_PARENT_COMPONENT","MAT_OPTGROUP","InjectionToken","_uniqueIdCounter","MatOptionSelectionChange","source","isUserInput","_MatOptionBase","value","coerceBooleanProperty","_element","_changeDetectorRef","_parent","group","EventEmitter","Subject","emitEvent","_origin","options","element","event","hasModifierKey","viewValue","t","ɵɵinvalidFactory","ɵɵdefineDirective","rf","ctx","ɵɵviewQuery","_c2","_t","ɵɵqueryRefresh","ɵɵloadQuery","MatOption","changeDetectorRef","parent","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","MAT_OPTION_PARENT_COMPONENT","MAT_OPTGROUP","ɵɵdefineComponent","ɵɵlistener","$event","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","_c4","ɵɵprojectionDef","_c3","ɵɵtemplate","MatOption_mat_pseudo_checkbox_0_Template","ɵɵprojection","ɵɵelementStart","ɵɵelementEnd","MatOption_mat_pseudo_checkbox_5_Template","MatOption_span_6_Template","ɵɵelement","ɵɵproperty","ɵɵadvance","MatRipple","NgIf","MatPseudoCheckbox","_countGroupLabelsBeforeOption","optionIndex","optionGroups","optionsArray","groups","groupCounter","i","_getOptionScrollPosition","optionOffset","optionHeight","currentScrollPosition","panelHeight","MatOptionModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatRippleModule","CommonModule","MatCommonModule","MatPseudoCheckboxModule","eventListenerOptions","rippleInteractionEvents","matRippleUninitialized","matRippleClassName","matRippleCentered","matRippleDisabled","MatRippleLoader","inject","DOCUMENT","ANIMATION_MODULE_TYPE","MAT_RIPPLE_GLOBAL_OPTIONS","Platform","NgZone","hosts","host","config","disabled","ripple","existingRipple","rippleEl","ɵɵdefineInjectable","_c0","_c1","_c2","DEFAULT_ROUND_BUTTON_COLOR","BUTTON_HOST_ATTRIBUTES","_MatButtonBase","mixinColor","mixinDisabled","mixinDisableRipple","_elementRef","MatLegacyButton","elementRef","_focusMonitor","_animationMode","attr","origin","options","attributes","attribute","t","ɵɵdirectiveInject","ElementRef","FocusMonitor","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","rf","ctx","ɵɵviewQuery","MatRipple","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","MatLegacyAnchor","focusMonitor","animationMode","_ngZone","event","NgZone","MatLegacyButtonModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatRippleModule","MatCommonModule","_c0","_c1","_c2","_c4","_c6","_c7","_c8","_c9","HOST_SELECTOR_MDC_CLASS_PAIR","_MatButtonMixin","mixinColor","mixinDisabled","mixinDisableRipple","_elementRef","MatButtonBase","v","value","coerceBooleanProperty","elementRef","_platform","_ngZone","_animationMode","inject","FocusMonitor","MatRippleLoader","classList","pair","className","_origin","options","attributes","attribute","t","ɵɵinvalidFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","MAT_ANCHOR_INPUTS","MatButton","MatButtonBase","elementRef","platform","ngZone","animationMode","t","ɵɵdirectiveInject","ElementRef","Platform","NgZone","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","_c0","_c2","ɵɵprojectionDef","_c1","ɵɵelement","ɵɵprojection","ɵɵelementStart","ɵɵelementEnd","MAT_FAB_DEFAULT_OPTIONS","InjectionToken","MAT_FAB_DEFAULT_OPTIONS_FACTORY","defaults","buttonInputs","MAT_ANCHOR_INPUTS","MatMiniFabButton","MatButtonBase","elementRef","platform","ngZone","animationMode","_options","defaults","t","ɵɵdirectiveInject","ElementRef","Platform","NgZone","ANIMATION_MODULE_TYPE","MAT_FAB_DEFAULT_OPTIONS","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","_c6","_c2","ɵɵprojectionDef","_c1","ɵɵelement","ɵɵprojection","ɵɵelementStart","ɵɵelementEnd","_c7","MatIconButton","MatButtonBase","elementRef","platform","ngZone","animationMode","t","ɵɵdirectiveInject","ElementRef","Platform","NgZone","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","_c8","_c9","ɵɵprojectionDef","ɵɵelement","ɵɵprojection","_c4","MatButtonModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","MatRippleModule","_c0","policy","getPolicy","ttWindow","s","trustedHTMLFromString","html","getMatIconNameNotFoundError","iconName","getMatIconNoHttpProviderError","getMatIconFailedToSanitizeUrlError","url","getMatIconFailedToSanitizeLiteralError","literal","SvgIconConfig","svgText","options","MatIconRegistry","_httpClient","_sanitizer","document","_errorHandler","namespace","resolver","cleanLiteral","SecurityContext","trustedLiteral","alias","classNames","safeUrl","cachedIcon","of","cloneSvg","tap","svg","map","name","key","iconKey","config","iconSetConfigs","throwError","namedIcon","iconSetFetchRequests","iconSetConfig","catchError","err","errorMessage","forkJoin","foundIcon","i","iconSet","iconSource","iconElement","str","div","element","attributes","value","iconConfig","withCredentials","inProgressFetch","req","finalize","share","configNamespace","result","isSafeUrlWithOptions","t","ɵɵinject","HttpClient","DomSanitizer","DOCUMENT","ErrorHandler","ɵɵdefineInjectable","cloneSvg","svg","iconKey","namespace","name","isSafeUrlWithOptions","value","_MatIconBase","mixinColor","_elementRef","MAT_ICON_DEFAULT_OPTIONS","InjectionToken","MAT_ICON_LOCATION","MAT_ICON_LOCATION_FACTORY","_document","inject","DOCUMENT","_location","funcIriAttributes","funcIriAttributeSelector","attr","funcIriPattern","MatIcon","inline","coerceBooleanProperty","newValue","elementRef","_iconRegistry","ariaHidden","_errorHandler","defaults","Subscription","iconName","parts","cachedElements","newPath","path","layoutElement","childCount","child","elem","fontSetClasses","className","elements","attrs","element","elementsWithFuncIri","i","elementWithReference","match","attributes","rawName","take","err","errorMessage","t","ɵɵdirectiveInject","ElementRef","MatIconRegistry","ɵɵinjectAttribute","ErrorHandler","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassProp","ɵɵInheritDefinitionFeature","_c0","ɵɵprojectionDef","ɵɵprojection","MatIconModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","SingleBoxSharedResizeObserver","_box","Subject","entries","target","Observable","observer","subscription","filter","entry","shareReplay","takeUntil","SharedResizeObserver","inject","NgZone","options","box","t","ɵɵdefineInjectable","_c0","_c1","_c2","_c3","_c4","_c5","_c6","_c7","MatFormField_ng_template_0_label_0_span_2_Template","rf","ctx","ɵɵelement","MatFormField_ng_template_0_label_0_Template","ɵɵelementStart","ɵɵprojection","ɵɵtemplate","ɵɵelementEnd","ctx_r1","ɵɵnextContext","ɵɵproperty","ɵɵattribute","ɵɵadvance","MatFormField_ng_template_0_Template","MatFormField_div_4_Template","MatFormField_div_6_ng_template_1_ng_template_0_Template","MatFormField_div_6_ng_template_1_Template","labelTemplate_r3","ɵɵreference","MatFormField_div_6_Template","MatFormField_div_7_Template","MatFormField_div_8_Template","MatFormField_ng_template_10_ng_template_0_Template","MatFormField_ng_template_10_Template","MatFormField_div_12_Template","MatFormField_div_13_Template","MatFormField_div_14_Template","MatFormField_div_16_Template","MatFormField_div_17_mat_hint_1_Template","ɵɵtext","ɵɵtextInterpolate","MatFormField_div_17_Template","MatLabel","t","ɵɵdefineDirective","MAT_ERROR","InjectionToken","nextUniqueId$1","MatHint","t","ɵɵdefineDirective","rf","ctx","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","MAT_PREFIX","InjectionToken","MAT_SUFFIX","InjectionToken","MatSuffix","value","t","ɵɵdefineDirective","InputFlags","ɵɵProvidersFeature","FLOATING_LABEL_PARENT","MatFormFieldFloatingLabel","_elementRef","inject","SharedResizeObserver","NgZone","Subscription","estimateScrollWidth","ɵɵdirectiveInject","ElementRef","rf","ctx","ɵɵclassProp","element","htmlEl","clone","scrollWidth","ACTIVATE_CLASS","DEACTIVATING_CLASS","MatFormFieldLineRipple","ngZone","event","classList","isDeactivating","MatFormFieldNotchedOutline","_ngZone","label","labelWidth","ɵɵdefineComponent","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","_c1","_c2","ɵɵprojectionDef","ɵɵelement","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","matFormFieldAnimations","trigger","state","style","transition","animate","MatFormFieldControl","MAT_FORM_FIELD","InjectionToken","MAT_FORM_FIELD_DEFAULT_OPTIONS","nextUniqueId","DEFAULT_APPEARANCE","DEFAULT_FLOAT_LABEL","DEFAULT_SUBSCRIPT_SIZING","FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM","MatFormField","value","coerceBooleanProperty","oldValue","newAppearance","_elementRef","_changeDetectorRef","_ngZone","_dir","_platform","_defaults","_animationMode","_unusedDocument","Subject","control","takeUntil","p","s","merge","prop","ids","startHint","hint","endHint","error","floatingLabel","iconPrefixContainer","textPrefixContainer","iconPrefixContainerWidth","textPrefixContainerWidth","negate","prefixWidth","labelHorizontalOffset","element","rootNode","t","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","NgZone","Directionality","Platform","ANIMATION_MODULE_TYPE","DOCUMENT","ɵɵdefineComponent","rf","ctx","dirIndex","ɵɵcontentQuery","MatLabel","MatFormFieldControl","MAT_PREFIX","MAT_SUFFIX","MAT_ERROR","MatHint","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","_c3","_c4","_c5","MatFormFieldFloatingLabel","MatFormFieldNotchedOutline","MatFormFieldLineRipple","ɵɵclassProp","ɵɵProvidersFeature","FLOATING_LABEL_PARENT","_c7","_r1","ɵɵgetCurrentView","ɵɵprojectionDef","_c6","ɵɵtemplate","MatFormField_ng_template_0_Template","ɵɵtemplateRefExtractor","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ɵɵresetView","MatFormField_div_4_Template","MatFormField_div_6_Template","MatFormField_div_7_Template","MatFormField_div_8_Template","MatFormField_ng_template_10_Template","ɵɵprojection","ɵɵelementEnd","MatFormField_div_12_Template","MatFormField_div_13_Template","MatFormField_div_14_Template","MatFormField_div_16_Template","MatFormField_div_17_Template","ɵɵadvance","ɵɵproperty","NgIf","NgTemplateOutlet","NgSwitch","NgSwitchCase","matFormFieldAnimations","MatFormFieldModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","CommonModule","ObserversModule","_c0","_c1","_c2","_c3","_c4","MatLegacyFormField_ng_container_3_Template","rf","ctx","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵelementContainerEnd","MatLegacyFormField_div_4_Template","_r2","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","ctx_r2","ɵɵnextContext","ɵɵresetView","ɵɵprojection","ɵɵproperty","MatLegacyFormField_label_9_ng_container_2_Template","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","MatLegacyFormField_label_9_ng_content_3_Template","MatLegacyFormField_label_9_span_4_Template","MatLegacyFormField_label_9_Template","_r4","ɵɵtemplate","ɵɵclassProp","ɵɵattribute","MatLegacyFormField_div_10_Template","MatLegacyFormField_div_11_Template","MatLegacyFormField_div_13_Template","MatLegacyFormField_div_14_div_1_Template","MatLegacyFormField_div_14_Template","nextUniqueId$2","MatLegacyError","ariaLive","elementRef","t","ɵɵinjectAttribute","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵProvidersFeature","MAT_ERROR","nextUniqueId$1","_MAT_LEGACY_HINT","InjectionToken","MatLegacyHint","MatLegacyLabel","MatLegacyPlaceholder","nextUniqueId","floatingLabelScale","outlineGapPadding","_MatFormFieldBase","mixinColor","_elementRef","MAT_LEGACY_FORM_FIELD_DEFAULT_OPTIONS","MatLegacyFormField","value","oldValue","coerceBooleanProperty","_changeDetectorRef","_dir","_defaults","_platform","_ngZone","_animationMode","Subject","control","startWith","takeUntil","merge","prop","fromEvent","take","ids","startHint","hint","endHint","error","labelEl","container","outlineStartSelector","outlineGapSelector","gapElements","i","startWidth","gapWidth","startEls","gapEls","containerRect","containerStart","labelChildren","labelStart","labelWidth","rect","element","rootNode","ChangeDetectorRef","Directionality","Platform","NgZone","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","MatFormFieldControl","MAT_PREFIX","MAT_SUFFIX","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","MAT_FORM_FIELD","ɵɵInheritDefinitionFeature","_r1","ɵɵprojectionDef","$event","NgIf","NgSwitch","NgSwitchCase","CdkObserveContent","matFormFieldAnimations","MatLegacyPrefix","MatLegacySuffix","MatLegacyFormFieldModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","MatCommonModule","ObserversModule","listenerOptions","normalizePassiveListenerOptions","AutofillMonitor","_platform","_ngZone","elementOrRef","EMPTY","element","coerceElement","info","result","Subject","cssClass","listener","event","_info","t","ɵɵinject","Platform","NgZone","ɵɵdefineInjectable","TextFieldModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","MAT_INPUT_VALUE_ACCESSOR","InjectionToken","MAT_INPUT_INVALID_TYPES","nextUniqueId","_MatInputBase","mixinErrorState","_defaultErrorStateMatcher","_parentForm","_parentFormGroup","ngControl","Subject","MatInput","value","coerceBooleanProperty","Validators","getSupportedInputTypes","_elementRef","_platform","inputValueAccessor","_autofillMonitor","ngZone","_formField","t","event","el","element","nodeName","options","isFocused","newValue","placeholder","validity","selectElement","firstOption","ids","ɵɵdirectiveInject","ElementRef","Platform","NgControl","NgForm","FormGroupDirective","ErrorStateMatcher","AutofillMonitor","NgZone","MAT_FORM_FIELD","ɵɵdefineDirective","rf","ctx","ɵɵlistener","ɵɵhostProperty","ɵɵattribute","ɵɵclassProp","InputFlags","ɵɵProvidersFeature","MatFormFieldControl","ɵɵInheritDefinitionFeature","ɵɵNgOnChangesFeature","MatInputModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","MatFormFieldModule","TextFieldModule","MatLegacyInput","MatInput","inject","MAT_FORM_FIELD","formField","ɵMatLegacyInput_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","rf","ctx","ɵɵattribute","ɵɵclassProp","ɵɵProvidersFeature","MatFormFieldControl","ɵɵInheritDefinitionFeature","MatLegacyInputModule","ɵɵdefineNgModule","ɵɵdefineInjector","ErrorStateMatcher","TextFieldModule","MatLegacyFormFieldModule","MatCommonModule","MatDivider","value","coerceBooleanProperty","t","ɵɵdefineComponent","rf","ctx","ɵɵattribute","ɵɵclassProp","MatDividerModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","Portal","host","ComponentPortal","component","viewContainerRef","injector","componentFactoryResolver","projectableNodes","TemplatePortal","templateRef","context","DomPortal","element","ElementRef","BasePortalOutlet","portal","fn","DomPortalOutlet","BasePortalOutlet","outletElement","_componentFactoryResolver","_appRef","_defaultInjector","_document","portal","element","anchorNode","componentFactory","componentRef","Injector","viewContainer","viewRef","rootNode","index","CdkPortal","TemplatePortal","templateRef","viewContainerRef","t","ɵɵdirectiveInject","TemplateRef","ViewContainerRef","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","CdkPortalOutlet","BasePortalOutlet","_componentFactoryResolver","_viewContainerRef","_document","EventEmitter","portal","element","anchorNode","viewContainerRef","componentFactory","ref","viewRef","nativeElement","t","ɵɵdirectiveInject","ComponentFactoryResolver$1","ViewContainerRef","DOCUMENT","ɵɵdefineDirective","InputFlags","ɵɵInheritDefinitionFeature","PortalModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","scrollBehaviorSupported","supportsScrollBehavior","BlockScrollStrategy","_viewportRuler","document","root","coerceCssPixelValue","html","body","htmlStyle","bodyStyle","previousHtmlScrollBehavior","previousBodyScrollBehavior","viewport","CloseScrollStrategy","_scrollDispatcher","_ngZone","_viewportRuler","_config","overlayRef","stream","filter","scrollable","scrollPosition","NoopScrollStrategy","isElementScrolledOutsideView","element","scrollContainers","containerBounds","outsideAbove","outsideBelow","outsideLeft","outsideRight","isElementClippedByScrolling","scrollContainerRect","clippedAbove","clippedBelow","clippedLeft","clippedRight","RepositionScrollStrategy","throttle","overlayRect","width","height","ScrollStrategyOptions","document","config","BlockScrollStrategy","t","ɵɵinject","ScrollDispatcher","ViewportRuler","NgZone","DOCUMENT","ɵɵdefineInjectable","OverlayConfig","configKeys","key","ConnectionPositionPair","origin","overlay","offsetX","offsetY","panelClass","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","BaseOverlayDispatcher","document","overlayRef","index","t","ɵɵinject","DOCUMENT","ɵɵdefineInjectable","OverlayKeyboardDispatcher","_ngZone","event","overlays","i","keydownEvents","NgZone","OverlayOutsideClickDispatcher","_platform","_getEventTarget","target","origin","outsidePointerEvents","body","Platform","OverlayContainer","containerClass","_isTestEnvironment","oppositePlatformContainers","container","OverlayRef","_portalOutlet","_host","_pane","_config","_keyboardDispatcher","_document","_location","_outsideClickDispatcher","_animationsDisabled","Subject","Subscription","portal","attachResult","take","detachmentResult","isAttached","strategy","sizeConfig","__spreadValues","dir","__spreadProps","classes","direction","style","coerceCssPixelValue","enablePointer","showingClass","backdropToDetach","element","cssClasses","isAdd","coerceArray","c","subscription","takeUntil","merge","scrollStrategy","backdrop","boundingBoxClass","cssUnitPattern","FlexibleConnectedPositionStrategy","connectedTo","_viewportRuler","_overlayContainer","originRect","overlayRect","viewportRect","containerRect","flexibleFits","fallback","pos","originPoint","overlayPoint","overlayFit","bestFit","bestScore","fit","score","extendStyles","lastPosition","scrollables","positions","margin","flexibleDimensions","growAfterOpen","canPush","isLocked","offset","selector","x","startX","endX","y","overlayStartX","overlayStartY","point","rawOverlayRect","viewport","position","overlay","getRoundedBoundingClientRect","offsetX","offsetY","leftOverflow","rightOverflow","topOverflow","bottomOverflow","visibleWidth","visibleHeight","visibleArea","availableHeight","availableWidth","minHeight","getPixelValue","minWidth","verticalFit","horizontalFit","start","scrollPosition","overflowRight","overflowBottom","overflowTop","overflowLeft","pushX","pushY","scrollableViewProperties","changeEvent","ConnectedOverlayPositionChange","elements","xOrigin","yOrigin","isRtl","height","top","bottom","smallestDistanceToViewportEdge","previousHeight","isBoundedByRightViewportEdge","isBoundedByLeftViewportEdge","width","left","right","previousWidth","boundingBoxRect","styles","maxHeight","maxWidth","hasExactPosition","hasFlexibleDimensions","config","transformString","documentHeight","horizontalStyleProperty","documentWidth","originBounds","overlayBounds","scrollContainerBounds","scrollable","isElementClippedByScrolling","isElementScrolledOutsideView","length","overflows","currentValue","currentOverflow","axis","cssClass","ElementRef","destination","source","key","input","value","units","clientRect","wrapperClass","GlobalPositionStrategy","overlayRef","config","value","offset","styles","parentStyles","width","height","maxWidth","maxHeight","shouldBeFlushHorizontally","shouldBeFlushVertically","xPosition","xOffset","isRtl","marginLeft","marginRight","justifyContent","parent","OverlayPositionBuilder","_viewportRuler","_document","_platform","_overlayContainer","origin","FlexibleConnectedPositionStrategy","t","ɵɵinject","ViewportRuler","DOCUMENT","Platform","OverlayContainer","ɵɵdefineInjectable","nextUniqueId","Overlay","scrollStrategies","_componentFactoryResolver","_positionBuilder","_keyboardDispatcher","_injector","_ngZone","_directionality","_location","_outsideClickDispatcher","_animationsModuleType","host","pane","portalOutlet","overlayConfig","OverlayConfig","OverlayRef","ApplicationRef","DomPortalOutlet","ScrollStrategyOptions","ComponentFactoryResolver$1","OverlayKeyboardDispatcher","Injector","NgZone","Directionality","Location","OverlayOutsideClickDispatcher","ANIMATION_MODULE_TYPE","defaultPositionList","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY","InjectionToken","CdkOverlayOrigin","elementRef","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","CdkConnectedOverlay","offsetX","offsetY","coerceBooleanProperty","_overlay","templateRef","viewContainerRef","scrollStrategyFactory","_dir","Subscription","EventEmitter","TemplatePortal","changes","event","hasModifierKey","positionStrategy","positions","currentPosition","strategy","takeWhile","position","TemplateRef","ViewContainerRef","InputFlags","ɵɵNgOnChangesFeature","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY","overlay","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","OverlayModule","ɵɵdefineNgModule","ɵɵdefineInjector","BidiModule","PortalModule","ScrollingModule","_c0","SCROLL_THROTTLE_MS","MAT_TOOLTIP_SCROLL_STRATEGY","InjectionToken","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY","overlay","SCROLL_THROTTLE_MS","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER","Overlay","MAT_TOOLTIP_DEFAULT_OPTIONS_FACTORY","MAT_TOOLTIP_DEFAULT_OPTIONS","PANEL_CLASS","passiveListenerOptions","normalizePassiveListenerOptions","LONGPRESS_DELAY","MIN_VIEWPORT_TOOLTIP_THRESHOLD","UNBOUNDED_ANCHOR_GAP","MIN_HEIGHT","MAX_WIDTH","_MatTooltipBase","value","coerceBooleanProperty","coerceNumberProperty","_overlay","_elementRef","_scrollDispatcher","_viewContainerRef","_ngZone","_platform","_ariaDescriber","_focusMonitor","scrollStrategy","_dir","_defaultOptions","_document","Subject","takeUntil","origin","nativeElement","event","listener","delay","overlayRef","ComponentPortal","instance","existingStrategy","ElementRef","scrollableAncestors","strategy","change","hasModifierKey","position","overlay","__spreadValues","isLtr","originPosition","x","y","overlayPosition","take","tooltipClass","connectionPair","overlayY","originX","originY","newPosition","classPrefix","point","touch","exitListeners","newTarget","touchendListener","listeners","elementUnderPointer","element","gestures","style","t","ɵɵinvalidFactory","ɵɵdefineDirective","InputFlags","MatTooltip","elementRef","scrollDispatcher","viewContainerRef","ngZone","platform","ariaDescriber","focusMonitor","dir","defaultOptions","TooltipComponent","offset","ɵɵdirectiveInject","Overlay","ScrollDispatcher","ViewContainerRef","NgZone","Platform","AriaDescriber","FocusMonitor","MAT_TOOLTIP_SCROLL_STRATEGY","Directionality","MAT_TOOLTIP_DEFAULT_OPTIONS","DOCUMENT","rf","ctx","ɵɵclassProp","ɵɵInheritDefinitionFeature","_TooltipComponentBase","_changeDetectorRef","animationMode","relatedTarget","animationName","toVisible","isVisible","tooltip","showClass","hideClass","styles","ChangeDetectorRef","ANIMATION_MODULE_TYPE","changeDetectorRef","rect","ɵɵdefineComponent","ɵɵviewQuery","_c0","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵlistener","$event","ɵɵstyleProp","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵrestoreView","ɵɵresetView","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","NgClass","MatTooltipModule","t","ɵɵdefineNgModule","ɵɵdefineInjector","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER","A11yModule","CommonModule","OverlayModule","MatCommonModule","CdkScrollableModule","applyCssPrefixes","target","key","value","INLINE","LAYOUT_VALUES","buildLayoutCSS","direction","wrap","isInline","validateValue","buildCSS","inline","x","validateWrapValue","isFlowHorizontal","flow","extendObject","dest","sources","source","removeStyles","_document","platformId","isPlatformBrowser","elements","CLASS_NAME","classRegex","el","BROWSER_PROVIDER","APP_BOOTSTRAP_LISTENER","DOCUMENT","PLATFORM_ID","CoreModule","ɵɵdefineNgModule","ɵɵdefineInjector","MediaChange","_MediaChange","matches","mediaQuery","mqAlias","suffix","priority","StylesheetMap","element","style","value","stylesheet","styleName","styles","ɵɵdefineInjectable","DEFAULT_CONFIG","LAYOUT_CONFIG","InjectionToken","SERVER_TOKEN","BREAKPOINT","mergeAlias","dest","source","StyleBuilder","_input","_styles","_parent","StyleUtils","_serverStylesheet","_serverModuleLoaded","_platformId","layoutConfig","applyCssPrefixes","target","query","hasInlineValue","isPlatformServer","attribute","getServerStyle","inlineOnly","key","values","setServerStyle","ɵɵinject","readStyleAttribute","styleValue","styleMap","writeStyleAttribute","styleAttrValue","styleAttribute","styleList","i","colonIndex","name","sortDescendingPriority","a","b","priorityA","sortAscendingPriority","pA","pB","MatchMedia","_zone","BehaviorSubject","results","mql","m","mqList","filterOthers","matchMedia$","filter","change","registration$","Observable","observer","lastChange","e","merge","list","buildQueryCss","onMQLEvent","fn","constructMql","NgZone","ALL_STYLES","mediaQueries","it","styleEl","cssText","mq","buildMockMql","et","isBrowser","DEFAULT_BREAKPOINTS","HANDSET_PORTRAIT","HANDSET_LANDSCAPE","TABLET_PORTRAIT","TABLET_LANDSCAPE","WEB_PORTRAIT","WEB_LANDSCAPE","ScreenTypes","ORIENTATION_BREAKPOINTS","ALIAS_DELIMITERS","firstUpperCase","part","first","remainder","camelCase","validateSuffixes","bp","mergeByAlias","defaults","custom","dict","extendObject","k","BREAKPOINTS","breakpoints","inject","bpFlattenArray","v","builtIns","BreakPointRegistry","alias","searchFn","response","PRINT","BREAKPOINT_PRINT","PrintHook","PrintQueue","queries","event","beforePrintListener","afterPrintListener","bpList","hasFormerBp","wasActivated","l","isPrintBreakPoint","MediaMarshaller","matchMedia","hook","Subject","bps","mc","bpIndex","updateFn","clearFn","extraTriggers","initBuilderMap","bpMap","val","keyMap","valueMap","builders","watcherMap","s","elementMap","_","triggers","watchers","newSubscription","currentValue","activatedBp","lastHope","tap","map","input","oldMap","BaseDirective2","elementRef","styleBuilder","styler","marshal","changes","parent","builder","useCache","genStyles","__spreadValues","addIfMissing","buildLayoutCSS","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵNgOnChangesFeature","validateBasis","basis","grow","shrink","parts","j","_validateCalcValue","matches","calc","MULTIPLIER_SUFFIX","multiply","value","multiplier","transformValue","possibleValue","numberValue","LayoutStyleBuilder","StyleBuilder","input","display","css","buildLayoutCSS","__spreadProps","__spreadValues","ɵLayoutStyleBuilder_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","inputs$6","LayoutDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","_config","input","display","cacheMap","ɵɵdirectiveInject","ElementRef","StyleUtils","LayoutStyleBuilder","MediaMarshaller","LAYOUT_CONFIG","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DefaultLayoutDirective","inputs$6","ɵDefaultLayoutDirective_BaseFactory","t","ɵɵgetInheritedFactory","CLEAR_MARGIN_CSS","LayoutGapStyleBuilder","StyleBuilder","_styler","gapValue","parent","GRID_SPECIFIER","multiply","buildGridMargin","_styles","items","paddingStyles","buildGridPadding","lastItem","gapCss","buildGapCSS","value","ɵɵinject","ɵɵdefineInjectable","inputs$5","LayoutGapDirective","BaseDirective2","elRef","zone","directionality","styleUtils","styleBuilder","marshal","Subject","extraTriggers","takeUntil","obj","buffer","i","matcher","direction","LAYOUT_VALUES","x","value","items","el","a","b","orderA","orderB","layout","layoutGapCacheRowRtl","layoutGapCacheRowLtr","layoutGapCacheColumnRtl","layoutGapCacheColumnLtr","gridMode","childrenStyle","getMarginType","source","mutations","validatedChanges","it","ɵɵdirectiveInject","ElementRef","NgZone","Directionality","StyleUtils","LayoutGapStyleBuilder","MediaMarshaller","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DefaultLayoutGapDirective","inputs$5","ɵDefaultLayoutGapDirective_BaseFactory","t","ɵɵgetInheritedFactory","GRID_SPECIFIER","buildGridPadding","between","below","bottom","paddingRight","paddingBottom","paddingLeft","buildGridMargin","minus","str","marginRight","marginBottom","marginLeft","buildGapCSS","gapValue","parent","key","margins","__spreadValues","CLEAR_MARGIN_CSS","FlexStyleBuilder","StyleBuilder","layoutConfig","input","grow","shrink","basisParts","basis","max","isFlowHorizontal","min","hasCalc","usingCalc","isPercent","hasUnits","isValue","isFixed","css","clearStyles","useColumnBasisZero","extendObject","ɵɵinject","LAYOUT_CONFIG","ɵɵdefineInjectable","inputs$4","FlexDirective","BaseDirective2","elRef","styleUtils","layoutConfig","styleBuilder","marshal","value","takeUntil","matcher","layoutParts","addFlexToParent","direction","isHorizontal","hasWrap","flexRowWrapCache","flexRowCache","flexColumnWrapCache","flexColumnCache","basis","parts","validateBasis","activatedValue","ɵɵdirectiveInject","ElementRef","StyleUtils","LAYOUT_CONFIG","FlexStyleBuilder","MediaMarshaller","ɵɵdefineDirective","InputFlags","ɵɵInheritDefinitionFeature","DefaultFlexDirective","inputs$4","ɵDefaultFlexDirective_BaseFactory","t","ɵɵgetInheritedFactory","FlexAlignStyleBuilder","StyleBuilder","input","styles","ɵFlexAlignStyleBuilder_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","inputs$1","FlexAlignDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","flexAlignCache","ɵɵdirectiveInject","ElementRef","StyleUtils","FlexAlignStyleBuilder","MediaMarshaller","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DefaultFlexAlignDirective","inputs$1","ɵDefaultFlexAlignDirective_BaseFactory","t","ɵɵgetInheritedFactory","FLEX_FILL_CSS","FlexFillStyleBuilder","StyleBuilder","_input","ɵFlexFillStyleBuilder_BaseFactory","ɵɵdefineInjectable","FlexFillDirective","flexFillCache","LayoutAlignStyleBuilder","align","parent","css","mainAxis","crossAxis","extendObject","isFlowHorizontal","ɵLayoutAlignStyleBuilder_BaseFactory","inputs","LayoutAlignDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","takeUntil","value","layout","inline","layoutAlignHorizontalInlineCache","layoutAlignHorizontalCache","layoutAlignHorizontalRevInlineCache","layoutAlignHorizontalRevCache","layoutAlignVerticalInlineCache","layoutAlignVerticalCache","layoutAlignVerticalRevInlineCache","layoutAlignVerticalRevCache","matcher","layoutKeys","LAYOUT_VALUES","x","ɵɵdirectiveInject","ElementRef","StyleUtils","LayoutAlignStyleBuilder","MediaMarshaller","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DefaultLayoutAlignDirective","inputs","ɵDefaultLayoutAlignDirective_BaseFactory","t","ɵɵgetInheritedFactory","FlexModule","ɵɵdefineNgModule","ɵɵdefineInjector","CoreModule","BidiModule","ClassDirective","BaseDirective2","elementRef","styler","marshal","iterableDiffers","keyValueDiffers","renderer2","ngClassInstance","NgClass","val","value","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","IterableDiffers","KeyValueDiffers","Renderer2","ɵɵdefineDirective","InputFlags","ɵɵInheritDefinitionFeature","inputs$2","DefaultClassDirective","ClassDirective","inputs$2","ɵDefaultClassDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","NgStyleKeyValue","key","value","noQuotes","getType","target","what","buildRawList","source","delimiter","val","buildMapFromList$1","styles","sanitize","sanitizeValue","it","stringToKeyValue","entry","keyValuesToMap","buildMapFromSet","list","vals","map","StyleDirective","BaseDirective2","elementRef","styler","marshal","sanitizer","differs","renderer2","ngStyleInstance","serverLoaded","platformId","NgStyle","isPlatformServer","__spreadValues","SecurityContext","buildMapFromList","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","DomSanitizer","KeyValueDiffers","Renderer2","SERVER_TOKEN","PLATFORM_ID","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","inputs","DefaultStyleDirective","StyleDirective","inputs","ɵDefaultStyleDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","buildMapFromList","styles","sanitize","sanitizeValue","it","stringToKeyValue","entry","keyValuesToMap","ExtendedModule","ɵɵdefineNgModule","ɵɵdefineInjector","CoreModule","DEFAULT_VALUE$7","GridAreaStyleBuilder","StyleBuilder","input","ɵGridAreaStyleBuilder_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","GridAreaDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","gridAreaCache","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","inputs$7","DefaultGridAreaDirective","GridAreaDirective","inputs$7","ɵDefaultGridAreaDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DEFAULT_VALUE$6","DELIMETER","GridAreasStyleBuiler","StyleBuilder","input","parent","areas","v","ɵGridAreasStyleBuiler_BaseFactory","ɵɵdefineInjectable","GridAreasDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","val","coerceBooleanProperty","value","areasInlineCache","areasCache","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","InputFlags","inputs$6","DefaultGridAreasDirective","GridAreasDirective","inputs$6","ɵDefaultGridAreasDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DEFAULT_VALUE$3","AUTO_SPECIFIER$1","GridColumnsStyleBuilder","StyleBuilder","input","parent","auto","css","key","ɵGridColumnsStyleBuilder_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","GridColumnsDirective","BaseDirective2","elementRef","styleBuilder","styler","marshal","val","coerceBooleanProperty","value","columnsInlineCache","columnsCache","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","ɵɵdefineDirective","InputFlags","ɵɵInheritDefinitionFeature","inputs$3","DefaultGridColumnsDirective","GridColumnsDirective","inputs$3","ɵDefaultGridColumnsDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","DEFAULT_VALUE$2","GridGapStyleBuilder","StyleBuilder","input","parent","ɵGridGapStyleBuilder_BaseFactory","ɵɵdefineInjectable","GridGapDirective","BaseDirective2","elRef","styleUtils","styleBuilder","marshal","val","coerceBooleanProperty","value","gapInlineCache","gapCache","ɵɵdirectiveInject","ElementRef","StyleUtils","MediaMarshaller","InputFlags","inputs$2","DefaultGridGapDirective","GridGapDirective","inputs$2","ɵDefaultGridGapDirective_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineDirective","ɵɵInheritDefinitionFeature","GridModule","ɵɵdefineNgModule","ɵɵdefineInjector","CoreModule","FlexLayoutModule","serverModuleLoaded","platformId","isPlatformServer","configOptions","breakpoints","LAYOUT_CONFIG","__spreadValues","DEFAULT_CONFIG","BREAKPOINT","SERVER_TOKEN","ɵɵinject","PLATFORM_ID","ɵɵdefineNgModule","ɵɵdefineInjector","FlexModule","ExtendedModule","GridModule","TypedFormControl","FormControl","formState","validatorOrOpts","asyncValidator","value","options","TypedFormGroup","FormGroup","controls","TypedFormArray","FormArray","TypedFormBuilder","UntypedFormBuilder","FormBuilder","controlsConfig","updateOn","validator","ctrl","ɵɵdefineInjectable","TypedReactiveFormsModule","ɵɵdefineNgModule","ɵɵdefineInjector","ReactiveFormsModule","humanize","text","preserveCasing","val","hasSnakes","test","toUpperCase","replace","v","toLowerCase","s","kebaberize","text","result","replace","indexOf","toLowerCase","dateFormat","dateTimeFormat","timeFormat","toDate","date","Date","parseISO","formatDate","dt","formatString","newDate","format","distanceInWordsShort","date","dateToCompare","includeSeconds","msDiff","Math","abs","differenceInMilliseconds","smaller","larger","isBefore","Date","values","years","differenceInYears","subYears","push","days","differenceInDays","subDays","hours","differenceInHours","subHours","minutes","differenceInMinutes","subMinutes","seconds","differenceInSeconds","subSeconds","stringValues","map","val","suffix","filter","x","length","join","Error","withTimezone","timezoneCd","locale","tzDt","toLocaleString","timeZone","selectQueryParams","state","router","queryParams","selectRouteParam","paramName","params","selectQueryParam","queryParamName","selectCurrentCompanyFromRoute","createSelector","selectAllCompanies","companyCode","companies","find","c","toLowerCase","undefined","observeCommunicationCenterFromRouteNavigationEnd","router","store","extraRouteParams","navigationEnd$","pipe","startWith","switchMap","observeCommunicationCenterFromRoute","take","distinctUntilChanged","c1","c2","id","watchAll","commCenterIdByCardNumber$","includes","select","selectRouteParam","undefinedOrSwitchMap","cardNumber","selectRegionByCardNumber","undefinedOrMap","region","communicationCenterId","of","undefined","commCenterIdByRegionId$","regionId","selectRegionById","selectQueryParam","valueOrSwitchMap","ccId","selectCommunicationCenterById","commCenter","CommunicationCenterViewModel","CommunicationCenterViewModelBase","constructor","regionIds$","selectRegionsByCommunicationCenterId","map","rs","sort","a","b","abbreviation","localeCompare","r","toOrderedSet","CommunicationCenterViewModelService","_communicationCenterFetchService","getById","communicationCenter","ɵɵinject","CommunicationCenterEntityFetchService","Store","factory","ɵfac","providedIn","RouterService","navigationErrors$","_router","events","pipe","filter","e","NavigationError","map","navigationEnd$","NavigationEnd","navigationStart$","NavigationStart","constructor","_activatedRoute","ɵɵinject","Router","ActivatedRoute","factory","ɵfac","providedIn","OpsReadonlyService","hasReadonlyAccess","_isReadonly$","getValue","hasReadonlyAccess$","asObservable","constructor","tcsConfig","opsReader","store","router","BehaviorSubject","observeCommunicationCenterFromRouteNavigationEnd","pipe","undefinedOrSwitchMap","commCenter","isReadonlyForCommCenterAndCurrentCompany","id","map","isReadonly","value","features","opsReaderEnabled","subscribe","readonlyOverride","expect","switchMap","of","isObservable","ɵɵinject","TcsConfigurationService","OpsReaderAuthorizationService","Store","RouterService","factory","ɵfac","providedIn","defaultFn","o","logIx","msg","loggerFn","actionFn","observable","pipe","tap","req","debounceIx","ms","debounceTime","RequestState","constructor","state","RequestCancelled","RequestSuccess","result","RequestError","error","RequestExecuting","request","RequestPending","RequestPaused","NewRequest","RequestIX","_state$","getValue","isDisabled$","canExecute$","map","canExecute","state$","stateCanExecute$","options","repeatable","combineLatest","customCanExecute","stateCanExecute","new$","undefined","pendingOrExecuting$","pendingOrExecutingOrPaused$","executing$","isExecuting$","e","executingOrSuccess$","pendingOrExecutingOrSuccess$","completed$","success$","error$","cancelled$","_destruction$","Subject","_request$","BehaviorSubject","_latestRequest$","ReplaySubject","_pause$","Object","assign","requestFn","r","of","hasDebounce","logger","log","bind","_result$","ifThen","getOrElse","next","switchMap","setSuccess","setError","complete","setCancelled","share","takeUntil","take","execute","setTimeout","pauseRequest","resumeAndExecute","__async","firstValueOrUndefined","filter","message","params","ComboIX","requestCanExecute","control","valid","Error","name","IXContextService","reset$","_reset$","asObservable","dirtyControls","_trackedControls","filter","f","control","dirty","constructor","_router","_onDestroy$","Subject","events","pipe","e","NavigationEnd","map","distinctUntilChanged","n1","n2","urlAfterRedirects","takeUntil","subscribe","r","startTrackingControl","name","push","ngOnDestroy","next","complete","ɵɵinject","Router","factory","ɵfac","providedIn","IXBuilder","constructor","_ixContext","_opsReadonly","_onDestroy$","Subject","_startTrackingControl","name","control","request","startTrackingControl","destroy$","race","reset$","success$","pipe","filter","s","takeUntil","subscribe","markAsPristine","_overrideCanExecute","canExecute","switchMap","canExec","hasReadonlyAccess$","map","isReadonly","_overrideRequest","requestFn","hasReadonlyAccess","of","undefined","fetch","debounceTime","repeatable","permission","fetchOnce","post","postOnce","combo","guardNavigation","getOrElse","requestIx","ComboIX","comboRepeatable","params","comboIx","onDestroy","valueChanges","withLatestFrom","canExecute$","_0","__async","value","canEx","valid","result$","execute","firstValueOrUndefined","isRestricted","RequestIX","ngOnDestroy","next","complete","ɵɵinject","IXContextService","OpsReadonlyService","factory","ɵfac","providedIn","coerceArray","maybeArray","isArray","getLastElement","values","length"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33]}