`\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: [\"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: [\"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, booleanAttribute, Input, Output, NgModule } from '@angular/core';\nimport { coerceCssPixelValue, coerceArray } from '@angular/cdk/coercion';\nimport * as i1$1 from '@angular/cdk/platform';\nimport { supportsScrollBehavior, _getEventTarget, _isTestEnvironment } from '@angular/cdk/platform';\nimport { filter, take, takeUntil, takeWhile } from 'rxjs/operators';\nimport * as i5 from '@angular/cdk/bidi';\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { DomPortalOutlet, TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { Subject, Subscription, merge } from 'rxjs';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nconst scrollBehaviorSupported = /*#__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 the overlay should be disposed of when the user goes backwards/forwards in history. */\n get disposeOnNavigation() {\n return this._disposeOnNavigation;\n }\n set disposeOnNavigation(value) {\n this._disposeOnNavigation = value;\n }\n // TODO(jelbourn): inputs for size, scroll behavior, animation, etc.\n constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFactory, _dir) {\n this._overlay = _overlay;\n this._dir = _dir;\n this._backdropSubscription = Subscription.EMPTY;\n this._attachSubscription = Subscription.EMPTY;\n this._detachSubscription = Subscription.EMPTY;\n this._positionSubscription = Subscription.EMPTY;\n this._disposeOnNavigation = false;\n /** Margin between the overlay and the viewport edges. */\n this.viewportMargin = 0;\n /** Whether the overlay is open. */\n this.open = false;\n /** Whether the overlay can be closed by user interaction. */\n this.disableClose = false;\n /** Whether or not the overlay should attach a backdrop. */\n this.hasBackdrop = false;\n /** Whether or not the overlay should be locked when scrolling. */\n this.lockPosition = false;\n /** Whether the overlay's width and height can be constrained to fit within the viewport. */\n this.flexibleDimensions = false;\n /** Whether the overlay can grow after the initial open when flexible positioning is turned on. */\n this.growAfterOpen = false;\n /** Whether the overlay can be pushed on-screen if none of the provided positions fit. */\n this.push = false;\n /** Event emitted when the backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Event emitted when the position has changed. */\n this.positionChange = new EventEmitter();\n /** Event emitted when the overlay has been attached. */\n this.attach = new EventEmitter();\n /** Event emitted when the overlay has been detached. */\n this.detach = new EventEmitter();\n /** Emits when there are keyboard events that are targeted at the overlay. */\n this.overlayKeydown = new EventEmitter();\n /** Emits when there are mouse outside click events that are targeted at the overlay. */\n this.overlayOutsideClick = new EventEmitter();\n this._templatePortal = new TemplatePortal(templateRef, viewContainerRef);\n this._scrollStrategyFactory = scrollStrategyFactory;\n this.scrollStrategy = this._scrollStrategyFactory();\n }\n /** The associated overlay reference. */\n get overlayRef() {\n return this._overlayRef;\n }\n /** The element's layout direction. */\n get dir() {\n return this._dir ? this._dir.value : 'ltr';\n }\n ngOnDestroy() {\n this._attachSubscription.unsubscribe();\n this._detachSubscription.unsubscribe();\n this._backdropSubscription.unsubscribe();\n this._positionSubscription.unsubscribe();\n if (this._overlayRef) {\n this._overlayRef.dispose();\n }\n }\n ngOnChanges(changes) {\n if (this._position) {\n this._updatePositionStrategy(this._position);\n this._overlayRef.updateSize({\n width: this.width,\n minWidth: this.minWidth,\n height: this.height,\n minHeight: this.minHeight\n });\n if (changes['origin'] && this.open) {\n this._position.apply();\n }\n }\n if (changes['open']) {\n this.open ? this._attachOverlay() : this._detachOverlay();\n }\n }\n /** Creates an overlay */\n _createOverlay() {\n if (!this.positions || !this.positions.length) {\n this.positions = defaultPositionList;\n }\n const overlayRef = this._overlayRef = this._overlay.create(this._buildConfig());\n this._attachSubscription = overlayRef.attachments().subscribe(() => this.attach.emit());\n this._detachSubscription = overlayRef.detachments().subscribe(() => this.detach.emit());\n overlayRef.keydownEvents().subscribe(event => {\n this.overlayKeydown.next(event);\n if (event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event)) {\n event.preventDefault();\n this._detachOverlay();\n }\n });\n this._overlayRef.outsidePointerEvents().subscribe(event => {\n 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 disposeOnNavigation: this.disposeOnNavigation\n });\n if (this.width || this.width === 0) {\n overlayConfig.width = this.width;\n }\n if (this.height || this.height === 0) {\n overlayConfig.height = this.height;\n }\n if (this.minWidth || this.minWidth === 0) {\n overlayConfig.minWidth = this.minWidth;\n }\n if (this.minHeight || this.minHeight === 0) {\n overlayConfig.minHeight = this.minHeight;\n }\n if (this.backdropClass) {\n overlayConfig.backdropClass = this.backdropClass;\n }\n if (this.panelClass) {\n overlayConfig.panelClass = this.panelClass;\n }\n return overlayConfig;\n }\n /** Updates the state of a position strategy, based on the values of the directive inputs. */\n _updatePositionStrategy(positionStrategy) {\n const positions = this.positions.map(currentPosition => ({\n originX: currentPosition.originX,\n originY: currentPosition.originY,\n overlayX: currentPosition.overlayX,\n overlayY: currentPosition.overlayY,\n offsetX: currentPosition.offsetX || this.offsetX,\n offsetY: currentPosition.offsetY || this.offsetY,\n panelClass: currentPosition.panelClass || undefined\n }));\n return positionStrategy.setOrigin(this._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: [\"cdkConnectedOverlayOrigin\", \"origin\"],\n positions: [\"cdkConnectedOverlayPositions\", \"positions\"],\n positionStrategy: [\"cdkConnectedOverlayPositionStrategy\", \"positionStrategy\"],\n offsetX: [\"cdkConnectedOverlayOffsetX\", \"offsetX\"],\n offsetY: [\"cdkConnectedOverlayOffsetY\", \"offsetY\"],\n width: [\"cdkConnectedOverlayWidth\", \"width\"],\n height: [\"cdkConnectedOverlayHeight\", \"height\"],\n minWidth: [\"cdkConnectedOverlayMinWidth\", \"minWidth\"],\n minHeight: [\"cdkConnectedOverlayMinHeight\", \"minHeight\"],\n backdropClass: [\"cdkConnectedOverlayBackdropClass\", \"backdropClass\"],\n panelClass: [\"cdkConnectedOverlayPanelClass\", \"panelClass\"],\n viewportMargin: [\"cdkConnectedOverlayViewportMargin\", \"viewportMargin\"],\n scrollStrategy: [\"cdkConnectedOverlayScrollStrategy\", \"scrollStrategy\"],\n open: [\"cdkConnectedOverlayOpen\", \"open\"],\n disableClose: [\"cdkConnectedOverlayDisableClose\", \"disableClose\"],\n transformOriginSelector: [\"cdkConnectedOverlayTransformOriginOn\", \"transformOriginSelector\"],\n hasBackdrop: [\"cdkConnectedOverlayHasBackdrop\", \"hasBackdrop\", booleanAttribute],\n lockPosition: [\"cdkConnectedOverlayLockPosition\", \"lockPosition\", booleanAttribute],\n flexibleDimensions: [\"cdkConnectedOverlayFlexibleDimensions\", \"flexibleDimensions\", booleanAttribute],\n growAfterOpen: [\"cdkConnectedOverlayGrowAfterOpen\", \"growAfterOpen\", booleanAttribute],\n push: [\"cdkConnectedOverlayPush\", \"push\", booleanAttribute],\n disposeOnNavigation: [\"cdkConnectedOverlayDisposeOnNavigation\", \"disposeOnNavigation\", booleanAttribute]\n },\n outputs: {\n backdropClick: \"backdropClick\",\n positionChange: \"positionChange\",\n attach: \"attach\",\n detach: \"detach\",\n overlayKeydown: \"overlayKeydown\",\n overlayOutsideClick: \"overlayOutsideClick\"\n },\n exportAs: [\"cdkConnectedOverlay\"],\n standalone: true,\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n 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 * as i0 from '@angular/core';\nimport { inject, NgZone, Injectable } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { filter, shareReplay, takeUntil } from 'rxjs/operators';\n\n/**\n * Handler that logs \"ResizeObserver loop limit exceeded\" errors.\n * These errors are not shown in the Chrome console, so we log them to ensure developers are aware.\n * @param e The error\n */\nconst loopLimitExceededErrorHandler = e => {\n if (e instanceof Error && e.message === 'ResizeObserver loop limit exceeded') {\n console.error(`${e.message}. This could indicate a performance issue with your app. See https://github.com/WICG/resize-observer/blob/master/explainer.md#error-handling`);\n }\n};\n/**\n * A shared ResizeObserver to be used for a particular box type (content-box, border-box, or\n * device-pixel-content-box)\n */\nclass SingleBoxSharedResizeObserver {\n constructor( /** The box type to observe for resizes. */\n _box) {\n this._box = _box;\n /** Stream that emits when the shared observer is destroyed. */\n this._destroyed = new Subject();\n /** Stream of all events from the ResizeObserver. */\n this._resizeSubject = new Subject();\n /** A map of elements to streams of their resize events. */\n this._elementObservables = new Map();\n if (typeof ResizeObserver !== 'undefined') {\n this._resizeObserver = new ResizeObserver(entries => this._resizeSubject.next(entries));\n }\n }\n /**\n * Gets a stream of resize events for the given element.\n * @param target The element to observe.\n * @return The stream of resize events for the element.\n */\n observe(target) {\n if (!this._elementObservables.has(target)) {\n this._elementObservables.set(target, new Observable(observer => {\n const subscription = this._resizeSubject.subscribe(observer);\n this._resizeObserver?.observe(target, {\n box: this._box\n });\n return () => {\n this._resizeObserver?.unobserve(target);\n subscription.unsubscribe();\n this._elementObservables.delete(target);\n };\n }).pipe(filter(entries => entries.some(entry => entry.target === target)),\n // Share a replay of the last event so that subsequent calls to observe the same element\n // receive initial sizing info like the first one. Also enable ref counting so the\n // element will be automatically unobserved when there are no more subscriptions.\n shareReplay({\n bufferSize: 1,\n refCount: true\n }), takeUntil(this._destroyed)));\n }\n return this._elementObservables.get(target);\n }\n /** Destroys this instance. */\n destroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._resizeSubject.complete();\n this._elementObservables.clear();\n }\n}\n/**\n * Allows observing resize events on multiple elements using a shared set of ResizeObserver.\n * Sharing a ResizeObserver instance is recommended for better performance (see\n * https://github.com/WICG/resize-observer/issues/59).\n *\n * Rather than share a single `ResizeObserver`, this class creates one `ResizeObserver` per type\n * of observed box ('content-box', 'border-box', and 'device-pixel-content-box'). This avoids\n * later calls to `observe` with a different box type from influencing the events dispatched to\n * earlier calls.\n */\nlet SharedResizeObserver = /*#__PURE__*/(() => {\n class SharedResizeObserver {\n constructor() {\n /** Map of box type to shared resize observer. */\n this._observers = new Map();\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('error', loopLimitExceededErrorHandler);\n });\n }\n }\n ngOnDestroy() {\n for (const [, observer] of this._observers) {\n observer.destroy();\n }\n this._observers.clear();\n if (typeof ResizeObserver !== 'undefined' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n window.removeEventListener('error', loopLimitExceededErrorHandler);\n }\n }\n /**\n * Gets a stream of resize events for the given target element and box type.\n * @param target The element to observe for resizes.\n * @param options Options to pass to the `ResizeObserver`\n * @return The stream of resize events for the element.\n */\n observe(target, options) {\n const box = options?.box || 'content-box';\n if (!this._observers.has(box)) {\n this._observers.set(box, new SingleBoxSharedResizeObserver(box));\n }\n return this._observers.get(box).observe(target);\n }\n static {\n this.ɵfac = function SharedResizeObserver_Factory(t) {\n return new (t || SharedResizeObserver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedResizeObserver,\n factory: SharedResizeObserver.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return SharedResizeObserver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SharedResizeObserver };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, Attribute, Input, inject, NgZone, Component, ChangeDetectionStrategy, ViewEncapsulation, ViewChild, Optional, Inject, ContentChild, ContentChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/cdk/bidi';\nimport * as i2 from '@angular/cdk/platform';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subscription, Subject, merge } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { MatCommonModule } from '@angular/material/core';\n\n/** The floating label for a `mat-form-field`. */\nconst _c0 = [\"notch\"];\nconst _c1 = [\"matFormFieldNotchedOutline\", \"\"];\nconst _c2 = [\"*\"];\nconst _c3 = [\"textField\"];\nconst _c4 = [\"iconPrefixContainer\"];\nconst _c5 = [\"textPrefixContainer\"];\nfunction MatFormField_ng_template_0_Conditional_0_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 16);\n }\n}\nfunction MatFormField_ng_template_0_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 14);\n i0.ɵɵprojection(1, 1);\n i0.ɵɵtemplate(2, MatFormField_ng_template_0_Conditional_0_Conditional_2_Template, 1, 0, \"span\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r13 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"floating\", ctx_r13._shouldLabelFloat())(\"monitorResize\", ctx_r13._hasOutline())(\"id\", ctx_r13._labelId);\n i0.ɵɵattribute(\"for\", ctx_r13._control.id);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(2, !ctx_r13.hideRequiredMarker && ctx_r13._control.required ? 2 : -1);\n }\n}\nfunction MatFormField_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Conditional_0_Template, 3, 5, \"label\", 14);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵconditional(0, ctx_r0._hasFloatingLabel() ? 0 : -1);\n }\n}\nfunction MatFormField_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 17);\n }\n}\nfunction MatFormField_Conditional_6_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_6_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_6_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n }\n if (rf & 2) {\n i0.ɵɵnextContext(2);\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r1);\n }\n}\nfunction MatFormField_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵtemplate(1, MatFormField_Conditional_6_Conditional_1_Template, 1, 1, null, 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"matFormFieldNotchedOutlineOpen\", ctx_r4._shouldLabelFloat());\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(1, !ctx_r4._forceDisplayInfixLabel() ? 1 : -1);\n }\n}\nfunction MatFormField_Conditional_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 18, 19);\n i0.ɵɵprojection(2, 2);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 20, 21);\n i0.ɵɵprojection(2, 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_10_ng_template_0_Template(rf, ctx) {}\nfunction MatFormField_Conditional_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatFormField_Conditional_10_ng_template_0_Template, 0, 0, \"ng-template\", 9);\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r1);\n }\n}\nfunction MatFormField_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 22);\n i0.ɵɵprojection(1, 4);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 23);\n i0.ɵɵprojection(1, 5);\n i0.ɵɵelementEnd();\n }\n}\nfunction MatFormField_Conditional_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 12);\n }\n}\nfunction MatFormField_Case_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 24);\n i0.ɵɵprojection(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r11 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r11._subscriptAnimationState);\n }\n}\nfunction MatFormField_Case_17_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-hint\", 26);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r20 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"id\", ctx_r20._hintLabelId);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r20.hintLabel);\n }\n}\nfunction MatFormField_Case_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 25);\n i0.ɵɵtemplate(1, MatFormField_Case_17_Conditional_1_Template, 2, 2, \"mat-hint\", 26);\n i0.ɵɵprojection(2, 7);\n i0.ɵɵelement(3, \"div\", 27);\n i0.ɵɵprojection(4, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"@transitionMessages\", ctx_r12._subscriptAnimationState);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(1, ctx_r12.hintLabel ? 1 : -1);\n }\n}\nconst _c6 = [\"*\", [[\"mat-label\"]], [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"]], [[\"\", \"matTextPrefix\", \"\"]], [[\"\", \"matTextSuffix\", \"\"]], [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"]], [[\"mat-error\"], [\"\", \"matError\", \"\"]], [[\"mat-hint\", 3, \"align\", \"end\"]], [[\"mat-hint\", \"align\", \"end\"]]];\nconst _c7 = [\"*\", \"mat-label\", \"[matPrefix], [matIconPrefix]\", \"[matTextPrefix]\", \"[matTextSuffix]\", \"[matSuffix], [matIconSuffix]\", \"mat-error, [matError]\", \"mat-hint:not([align='end'])\", \"mat-hint[align='end']\"];\nlet MatLabel = /*#__PURE__*/(() => {\n class MatLabel {\n static {\n this.ɵfac = function MatLabel_Factory(t) {\n return new (t || MatLabel)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatLabel,\n selectors: [[\"mat-label\"]]\n });\n }\n }\n return MatLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$2 = 0;\n/**\n * Injection token that can be used to reference instances of `MatError`. It serves as\n * alternative token to the actual `MatError` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_ERROR = /*#__PURE__*/new InjectionToken('MatError');\n/** Single error message to be shown underneath the form-field. */\nlet MatError = /*#__PURE__*/(() => {\n class MatError {\n constructor(ariaLive, elementRef) {\n this.id = `mat-mdc-error-${nextUniqueId$2++}`;\n // If no aria-live value is set add 'polite' as a default. This is preferred over setting\n // role='alert' so that screen readers do not interrupt the current task to read this aloud.\n if (!ariaLive) {\n elementRef.nativeElement.setAttribute('aria-live', 'polite');\n }\n }\n static {\n this.ɵfac = function MatError_Factory(t) {\n return new (t || MatError)(i0.ɵɵinjectAttribute('aria-live'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatError,\n selectors: [[\"mat-error\"], [\"\", \"matError\", \"\"]],\n hostAttrs: [\"aria-atomic\", \"true\", 1, \"mat-mdc-form-field-error\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 1,\n hostBindings: function MatError_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: \"id\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_ERROR,\n useExisting: MatError\n }])]\n });\n }\n }\n return MatError;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet nextUniqueId$1 = 0;\n/** Hint text to be shown underneath the form field control. */\nlet MatHint = /*#__PURE__*/(() => {\n class MatHint {\n constructor() {\n /** Whether to align the hint label at the start or end of the line. */\n this.align = 'start';\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n this.id = `mat-mdc-hint-${nextUniqueId$1++}`;\n }\n static {\n this.ɵfac = function MatHint_Factory(t) {\n return new (t || MatHint)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatHint,\n selectors: [[\"mat-hint\"]],\n hostAttrs: [1, \"mat-mdc-form-field-hint\", \"mat-mdc-form-field-bottom-align\"],\n hostVars: 4,\n hostBindings: function MatHint_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-mdc-form-field-hint-end\", ctx.align === \"end\");\n }\n },\n inputs: {\n align: \"align\",\n id: \"id\"\n }\n });\n }\n }\n return MatHint;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatPrefix`. It serves as\n * alternative token to the actual `MatPrefix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_PREFIX = /*#__PURE__*/new InjectionToken('MatPrefix');\n/** Prefix to be placed in front of the form field. */\nlet MatPrefix = /*#__PURE__*/(() => {\n class MatPrefix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatPrefix_Factory(t) {\n return new (t || MatPrefix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatPrefix,\n selectors: [[\"\", \"matPrefix\", \"\"], [\"\", \"matIconPrefix\", \"\"], [\"\", \"matTextPrefix\", \"\"]],\n inputs: {\n _isTextSelector: [\"matTextPrefix\", \"_isTextSelector\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_PREFIX,\n useExisting: MatPrefix\n }])]\n });\n }\n }\n return MatPrefix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Injection token that can be used to reference instances of `MatSuffix`. It serves as\n * alternative token to the actual `MatSuffix` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SUFFIX = /*#__PURE__*/new InjectionToken('MatSuffix');\n/** Suffix to be placed at the end of the form field. */\nlet MatSuffix = /*#__PURE__*/(() => {\n class MatSuffix {\n constructor() {\n this._isText = false;\n }\n set _isTextSelector(value) {\n this._isText = true;\n }\n static {\n this.ɵfac = function MatSuffix_Factory(t) {\n return new (t || MatSuffix)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSuffix,\n selectors: [[\"\", \"matSuffix\", \"\"], [\"\", \"matIconSuffix\", \"\"], [\"\", \"matTextSuffix\", \"\"]],\n inputs: {\n _isTextSelector: [\"matTextSuffix\", \"_isTextSelector\"]\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SUFFIX,\n useExisting: MatSuffix\n }])]\n });\n }\n }\n return MatSuffix;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** An injion token for the parent form-field. */\nconst FLOATING_LABEL_PARENT = /*#__PURE__*/new InjectionToken('FloatingLabelParent');\n/**\n * Internal directive that maintains a MDC floating label. This directive does not\n * use the `MDCFloatingLabelFoundation` class, as it is not worth the size cost of\n * including it just to measure the label width and toggle some classes.\n *\n * The use of a directive allows us to conditionally render a floating label in the\n * template without having to manually manage instantiation and destruction of the\n * floating label component based on.\n *\n * The component is responsible for setting up the floating label styles, measuring label\n * width for the outline notch, and providing inputs that can be used to toggle the\n * label's floating or required state.\n */\nlet MatFormFieldFloatingLabel = /*#__PURE__*/(() => {\n class MatFormFieldFloatingLabel {\n /** Whether the label is floating. */\n get floating() {\n return this._floating;\n }\n set floating(value) {\n this._floating = value;\n if (this.monitorResize) {\n this._handleResize();\n }\n }\n /** Whether to monitor for resize events on the floating label. */\n get monitorResize() {\n return this._monitorResize;\n }\n set monitorResize(value) {\n this._monitorResize = value;\n if (this._monitorResize) {\n this._subscribeToResize();\n } else {\n this._resizeSubscription.unsubscribe();\n }\n }\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n this._floating = false;\n this._monitorResize = false;\n /** The shared ResizeObserver. */\n this._resizeObserver = inject(SharedResizeObserver);\n /** The Angular zone. */\n this._ngZone = inject(NgZone);\n /** The parent form-field. */\n this._parent = inject(FLOATING_LABEL_PARENT);\n /** The current resize event subscription. */\n this._resizeSubscription = new Subscription();\n }\n ngOnDestroy() {\n this._resizeSubscription.unsubscribe();\n }\n /** Gets the width of the label. Used for the outline notch. */\n getWidth() {\n return estimateScrollWidth(this._elementRef.nativeElement);\n }\n /** Gets the HTML element for the floating label. */\n get element() {\n return this._elementRef.nativeElement;\n }\n /** Handles resize events from the ResizeObserver. */\n _handleResize() {\n // In the case where the label grows in size, the following sequence of events occurs:\n // 1. The label grows by 1px triggering the ResizeObserver\n // 2. The notch is expanded to accommodate the entire label\n // 3. The label expands to its full width, triggering the ResizeObserver again\n //\n // This is expected, but If we allow this to all happen within the same macro task it causes an\n // error: `ResizeObserver loop limit exceeded`. Therefore we push the notch resize out until\n // the next macro task.\n setTimeout(() => this._parent._handleLabelResized());\n }\n /** Subscribes to resize events. */\n _subscribeToResize() {\n this._resizeSubscription.unsubscribe();\n this._ngZone.runOutsideAngular(() => {\n this._resizeSubscription = this._resizeObserver.observe(this._elementRef.nativeElement, {\n box: 'border-box'\n }).subscribe(() => this._handleResize());\n });\n }\n static {\n this.ɵfac = function MatFormFieldFloatingLabel_Factory(t) {\n return new (t || MatFormFieldFloatingLabel)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldFloatingLabel,\n selectors: [[\"label\", \"matFormFieldFloatingLabel\", \"\"]],\n hostAttrs: [1, \"mdc-floating-label\", \"mat-mdc-floating-label\"],\n hostVars: 2,\n hostBindings: function MatFormFieldFloatingLabel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-floating-label--float-above\", ctx.floating);\n }\n },\n inputs: {\n floating: \"floating\",\n monitorResize: \"monitorResize\"\n }\n });\n }\n }\n return MatFormFieldFloatingLabel;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Estimates the scroll width of an element.\n * via https://github.com/material-components/material-components-web/blob/c0a11ef0d000a098fd0c372be8f12d6a99302855/packages/mdc-dom/ponyfill.ts\n */\nfunction estimateScrollWidth(element) {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n const htmlEl = element;\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n const clone = htmlEl.cloneNode(true);\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n const scrollWidth = clone.scrollWidth;\n clone.remove();\n return scrollWidth;\n}\n\n/** Class added when the line ripple is active. */\nconst ACTIVATE_CLASS = 'mdc-line-ripple--active';\n/** Class added when the line ripple is being deactivated. */\nconst DEACTIVATING_CLASS = 'mdc-line-ripple--deactivating';\n/**\n * Internal directive that creates an instance of the MDC line-ripple component. Using a\n * directive allows us to conditionally render a line-ripple in the template without having\n * to manually create and destroy the `MDCLineRipple` component whenever the condition changes.\n *\n * The directive sets up the styles for the line-ripple and provides an API for activating\n * and deactivating the line-ripple.\n */\nlet MatFormFieldLineRipple = /*#__PURE__*/(() => {\n class MatFormFieldLineRipple {\n constructor(_elementRef, ngZone) {\n this._elementRef = _elementRef;\n this._handleTransitionEnd = event => {\n const classList = this._elementRef.nativeElement.classList;\n const isDeactivating = classList.contains(DEACTIVATING_CLASS);\n if (event.propertyName === 'opacity' && isDeactivating) {\n classList.remove(ACTIVATE_CLASS, DEACTIVATING_CLASS);\n }\n };\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('transitionend', this._handleTransitionEnd);\n });\n }\n activate() {\n const classList = this._elementRef.nativeElement.classList;\n classList.remove(DEACTIVATING_CLASS);\n classList.add(ACTIVATE_CLASS);\n }\n deactivate() {\n this._elementRef.nativeElement.classList.add(DEACTIVATING_CLASS);\n }\n ngOnDestroy() {\n this._elementRef.nativeElement.removeEventListener('transitionend', this._handleTransitionEnd);\n }\n static {\n this.ɵfac = function MatFormFieldLineRipple_Factory(t) {\n return new (t || MatFormFieldLineRipple)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldLineRipple,\n selectors: [[\"div\", \"matFormFieldLineRipple\", \"\"]],\n hostAttrs: [1, \"mdc-line-ripple\"]\n });\n }\n }\n return MatFormFieldLineRipple;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Internal component that creates an instance of the MDC notched-outline component.\n *\n * The component sets up the HTML structure and styles for the notched-outline. It provides\n * inputs to toggle the notch state and width.\n */\nlet MatFormFieldNotchedOutline = /*#__PURE__*/(() => {\n class MatFormFieldNotchedOutline {\n constructor(_elementRef, _ngZone) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n /** Whether the notch should be opened. */\n this.open = false;\n }\n ngAfterViewInit() {\n const label = this._elementRef.nativeElement.querySelector('.mdc-floating-label');\n if (label) {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--upgraded');\n if (typeof requestAnimationFrame === 'function') {\n label.style.transitionDuration = '0s';\n this._ngZone.runOutsideAngular(() => {\n requestAnimationFrame(() => label.style.transitionDuration = '');\n });\n }\n } else {\n this._elementRef.nativeElement.classList.add('mdc-notched-outline--no-label');\n }\n }\n _setNotchWidth(labelWidth) {\n if (!this.open || !labelWidth) {\n this._notch.nativeElement.style.width = '';\n } else {\n const NOTCH_ELEMENT_PADDING = 8;\n const NOTCH_ELEMENT_BORDER = 1;\n this._notch.nativeElement.style.width = `calc(${labelWidth}px * var(--mat-mdc-form-field-floating-label-scale, 0.75) + ${NOTCH_ELEMENT_PADDING + NOTCH_ELEMENT_BORDER}px)`;\n }\n }\n static {\n this.ɵfac = function MatFormFieldNotchedOutline_Factory(t) {\n return new (t || MatFormFieldNotchedOutline)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormFieldNotchedOutline,\n selectors: [[\"div\", \"matFormFieldNotchedOutline\", \"\"]],\n viewQuery: function MatFormFieldNotchedOutline_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notch = _t.first);\n }\n },\n hostAttrs: [1, \"mdc-notched-outline\"],\n hostVars: 2,\n hostBindings: function MatFormFieldNotchedOutline_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mdc-notched-outline--notched\", ctx.open);\n }\n },\n inputs: {\n open: [\"matFormFieldNotchedOutlineOpen\", \"open\"]\n },\n attrs: _c1,\n ngContentSelectors: _c2,\n decls: 5,\n vars: 0,\n consts: [[1, \"mdc-notched-outline__leading\"], [1, \"mdc-notched-outline__notch\"], [\"notch\", \"\"], [1, \"mdc-notched-outline__trailing\"]],\n template: function MatFormFieldNotchedOutline_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1, 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(4, \"div\", 3);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatFormFieldNotchedOutline;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Animations used by the MatFormField.\n * @docs-private\n */\nconst matFormFieldAnimations = {\n /** Animation that transitions the form field's error and hint messages. */\n transitionMessages: /*#__PURE__*/trigger('transitionMessages', [\n /*#__PURE__*/\n // TODO(mmalerba): Use angular animations for label animation as well.\n state('enter', /*#__PURE__*/style({\n opacity: 1,\n transform: 'translateY(0%)'\n })), /*#__PURE__*/transition('void => enter', [/*#__PURE__*/style({\n opacity: 0,\n transform: 'translateY(-5px)'\n }), /*#__PURE__*/animate('300ms cubic-bezier(0.55, 0, 0.55, 0.2)')])])\n};\n\n/** An interface which allows a control to work inside of a `MatFormField`. */\nlet MatFormFieldControl = /*#__PURE__*/(() => {\n class MatFormFieldControl {\n static {\n this.ɵfac = function MatFormFieldControl_Factory(t) {\n return new (t || MatFormFieldControl)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatFormFieldControl\n });\n }\n }\n return MatFormFieldControl;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** @docs-private */\nfunction getMatFormFieldPlaceholderConflictError() {\n return Error('Placeholder attribute and child element were both specified.');\n}\n/** @docs-private */\nfunction getMatFormFieldDuplicatedHintError(align) {\n return Error(`A hint was already declared for 'align=\"${align}\"'.`);\n}\n/** @docs-private */\nfunction getMatFormFieldMissingControlError() {\n return Error('mat-form-field must contain a MatFormFieldControl.');\n}\n\n/**\n * Injection token that can be used to inject an instances of `MatFormField`. It serves\n * as alternative token to the actual `MatFormField` class which would cause unnecessary\n * retention of the `MatFormField` class and its component metadata.\n */\nconst MAT_FORM_FIELD = /*#__PURE__*/new InjectionToken('MatFormField');\n/**\n * Injection token that can be used to configure the\n * default options for all form field within an app.\n */\nconst MAT_FORM_FIELD_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('MAT_FORM_FIELD_DEFAULT_OPTIONS');\nlet nextUniqueId = 0;\n/** Default appearance used by the form field. */\nconst DEFAULT_APPEARANCE = 'fill';\n/**\n * Whether the label for form fields should by default float `always`,\n * `never`, or `auto`.\n */\nconst DEFAULT_FLOAT_LABEL = 'auto';\n/** Default way that the subscript element height is set. */\nconst DEFAULT_SUBSCRIPT_SIZING = 'fixed';\n/**\n * Default transform for docked floating labels in a MDC text-field. This value has been\n * extracted from the MDC text-field styles because we programmatically modify the docked\n * label transform, but do not want to accidentally discard the default label transform.\n */\nconst FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM = `translateY(-50%)`;\n/** Container for form controls that applies Material Design styling and behavior. */\nlet MatFormField = /*#__PURE__*/(() => {\n class MatFormField {\n /** Whether the required marker should be hidden. */\n get hideRequiredMarker() {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(value) {\n this._hideRequiredMarker = coerceBooleanProperty(value);\n }\n /** Whether the label should always float or float as the user types. */\n get floatLabel() {\n return this._floatLabel || this._defaults?.floatLabel || DEFAULT_FLOAT_LABEL;\n }\n set floatLabel(value) {\n if (value !== this._floatLabel) {\n this._floatLabel = value;\n // For backwards compatibility. Custom form field controls or directives might set\n // the \"floatLabel\" input and expect the form field view to be updated automatically.\n // e.g. autocomplete trigger. Ideally we'd get rid of this and the consumers would just\n // emit the \"stateChanges\" observable. TODO(devversion): consider removing.\n this._changeDetectorRef.markForCheck();\n }\n }\n /** The form field appearance style. */\n get appearance() {\n return this._appearance;\n }\n set appearance(value) {\n const oldValue = this._appearance;\n const newAppearance = value || this._defaults?.appearance || DEFAULT_APPEARANCE;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (newAppearance !== 'fill' && newAppearance !== 'outline') {\n throw new Error(`MatFormField: Invalid appearance \"${newAppearance}\", valid values are \"fill\" or \"outline\".`);\n }\n }\n this._appearance = newAppearance;\n if (this._appearance === 'outline' && this._appearance !== oldValue) {\n // If the appearance has been switched to `outline`, the label offset needs to be updated.\n // The update can happen once the view has been re-checked, but not immediately because\n // the view has not been updated and the notched-outline floating label is not present.\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n }\n }\n /**\n * Whether the form field should reserve space for one line of hint/error text (default)\n * or to have the spacing grow from 0px as needed based on the size of the hint/error content.\n * Note that when using dynamic sizing, layout shifts will occur when hint/error text changes.\n */\n get subscriptSizing() {\n return this._subscriptSizing || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n set subscriptSizing(value) {\n this._subscriptSizing = value || this._defaults?.subscriptSizing || DEFAULT_SUBSCRIPT_SIZING;\n }\n /** Text for the form field hint. */\n get hintLabel() {\n return this._hintLabel;\n }\n set hintLabel(value) {\n this._hintLabel = value;\n this._processHints();\n }\n /** Gets the current form field control */\n get _control() {\n return this._explicitFormFieldControl || this._formFieldControl;\n }\n set _control(value) {\n this._explicitFormFieldControl = value;\n }\n constructor(_elementRef, _changeDetectorRef, _ngZone, _dir, _platform, _defaults, _animationMode,\n /**\n * @deprecated not needed, to be removed.\n * @breaking-change 17.0.0 remove this param\n */\n _unusedDocument) {\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._ngZone = _ngZone;\n this._dir = _dir;\n this._platform = _platform;\n this._defaults = _defaults;\n this._animationMode = _animationMode;\n this._hideRequiredMarker = false;\n /** The color palette for the form field. */\n this.color = 'primary';\n this._appearance = DEFAULT_APPEARANCE;\n this._subscriptSizing = null;\n this._hintLabel = '';\n this._hasIconPrefix = false;\n this._hasTextPrefix = false;\n this._hasIconSuffix = false;\n this._hasTextSuffix = false;\n // Unique id for the internal form field label.\n this._labelId = `mat-mdc-form-field-label-${nextUniqueId++}`;\n // Unique id for the hint label.\n this._hintLabelId = `mat-mdc-hint-${nextUniqueId++}`;\n /** State of the mat-hint and mat-error animations. */\n this._subscriptAnimationState = '';\n this._destroyed = new Subject();\n this._isFocused = null;\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n if (_defaults) {\n if (_defaults.appearance) {\n this.appearance = _defaults.appearance;\n }\n this._hideRequiredMarker = Boolean(_defaults?.hideRequiredMarker);\n if (_defaults.color) {\n this.color = _defaults.color;\n }\n }\n }\n ngAfterViewInit() {\n // Initial focus state sync. This happens rarely, but we want to account for\n // it in case the form field control has \"focused\" set to true on init.\n this._updateFocusState();\n // Enable animations now. This ensures we don't animate on initial render.\n this._subscriptAnimationState = 'enter';\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this._changeDetectorRef.detectChanges();\n }\n ngAfterContentInit() {\n this._assertFormFieldControl();\n this._initializeControl();\n this._initializeSubscript();\n this._initializePrefixAndSuffix();\n this._initializeOutlineLabelOffsetSubscriptions();\n }\n ngAfterContentChecked() {\n this._assertFormFieldControl();\n }\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Gets the id of the label element. If no label is present, returns `null`.\n */\n getLabelId() {\n return this._hasFloatingLabel() ? this._labelId : null;\n }\n /**\n * Gets an ElementRef for the element that a overlay attached to the form field\n * should be positioned relative to.\n */\n getConnectedOverlayOrigin() {\n return this._textField || this._elementRef;\n }\n /** Animates the placeholder up and locks it in position. */\n _animateAndLockLabel() {\n // This is for backwards compatibility only. Consumers of the form field might use\n // this method. e.g. the autocomplete trigger. This method has been added to the non-MDC\n // form field because setting \"floatLabel\" to \"always\" caused the label to float without\n // animation. This is different in MDC where the label always animates, so this method\n // is no longer necessary. There doesn't seem any benefit in adding logic to allow changing\n // the floating label state without animations. The non-MDC implementation was inconsistent\n // because it always animates if \"floatLabel\" is set away from \"always\".\n // TODO(devversion): consider removing this method when releasing the MDC form field.\n if (this._hasFloatingLabel()) {\n this.floatLabel = 'always';\n }\n }\n /** Initializes the registered form field control. */\n _initializeControl() {\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`mat-mdc-form-field-type-${control.controlType}`);\n }\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.subscribe(() => {\n this._updateFocusState();\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._changeDetectorRef.markForCheck());\n }\n }\n _checkPrefixAndSuffixTypes() {\n this._hasIconPrefix = !!this._prefixChildren.find(p => !p._isText);\n this._hasTextPrefix = !!this._prefixChildren.find(p => p._isText);\n this._hasIconSuffix = !!this._suffixChildren.find(s => !s._isText);\n this._hasTextSuffix = !!this._suffixChildren.find(s => s._isText);\n }\n /** Initializes the prefix and suffix containers. */\n _initializePrefixAndSuffix() {\n this._checkPrefixAndSuffixTypes();\n // Mark the form field as dirty whenever the prefix or suffix children change. This\n // is necessary because we conditionally display the prefix/suffix containers based\n // on whether there is projected content.\n merge(this._prefixChildren.changes, this._suffixChildren.changes).subscribe(() => {\n this._checkPrefixAndSuffixTypes();\n this._changeDetectorRef.markForCheck();\n });\n }\n /**\n * Initializes the subscript by validating hints and synchronizing \"aria-describedby\" ids\n * with the custom form field control. Also subscribes to hint and error changes in order\n * to be able to validate and synchronize ids on change.\n */\n _initializeSubscript() {\n // Re-validate when the number of hints changes.\n this._hintChildren.changes.subscribe(() => {\n this._processHints();\n this._changeDetectorRef.markForCheck();\n });\n // Update the aria-described by when the number of errors changes.\n this._errorChildren.changes.subscribe(() => {\n this._syncDescribedByIds();\n this._changeDetectorRef.markForCheck();\n });\n // Initial mat-hint validation and subscript describedByIds sync.\n this._validateHints();\n this._syncDescribedByIds();\n }\n /** Throws an error if the form field's control is missing. */\n _assertFormFieldControl() {\n if (!this._control && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatFormFieldMissingControlError();\n }\n }\n _updateFocusState() {\n // Usually the MDC foundation would call \"activateFocus\" and \"deactivateFocus\" whenever\n // certain DOM events are emitted. This is not possible in our implementation of the\n // form field because we support abstract form field controls which are not necessarily\n // of type input, nor do we have a reference to a native form field control element. Instead\n // we handle the focus by checking if the abstract form field control focused state changes.\n if (this._control.focused && !this._isFocused) {\n this._isFocused = true;\n this._lineRipple?.activate();\n } else if (!this._control.focused && (this._isFocused || this._isFocused === null)) {\n this._isFocused = false;\n this._lineRipple?.deactivate();\n }\n this._textField?.nativeElement.classList.toggle('mdc-text-field--focused', this._control.focused);\n }\n /**\n * The floating label in the docked state needs to account for prefixes. The horizontal offset\n * is calculated whenever the appearance changes to `outline`, the prefixes change, or when the\n * form field is added to the DOM. This method sets up all subscriptions which are needed to\n * trigger the label offset update. In general, we want to avoid performing measurements often,\n * so we rely on the `NgZone` as indicator when the offset should be recalculated, instead of\n * checking every change detection cycle.\n */\n _initializeOutlineLabelOffsetSubscriptions() {\n // Whenever the prefix changes, schedule an update of the label offset.\n this._prefixChildren.changes.subscribe(() => this._needsOutlineLabelOffsetUpdateOnStable = true);\n // Note that we have to run outside of the `NgZone` explicitly, in order to avoid\n // throwing users into an infinite loop if `zone-patch-rxjs` is included.\n this._ngZone.runOutsideAngular(() => {\n this._ngZone.onStable.pipe(takeUntil(this._destroyed)).subscribe(() => {\n if (this._needsOutlineLabelOffsetUpdateOnStable) {\n this._needsOutlineLabelOffsetUpdateOnStable = false;\n this._updateOutlineLabelOffset();\n }\n });\n });\n this._dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => this._needsOutlineLabelOffsetUpdateOnStable = true);\n }\n /** Whether the floating label should always float or not. */\n _shouldAlwaysFloat() {\n return this.floatLabel === 'always';\n }\n _hasOutline() {\n return this.appearance === 'outline';\n }\n /**\n * Whether the label should display in the infix. Labels in the outline appearance are\n * displayed as part of the notched-outline and are horizontally offset to account for\n * form field prefix content. This won't work in server side rendering since we cannot\n * measure the width of the prefix container. To make the docked label appear as if the\n * right offset has been calculated, we forcibly render the label inside the infix. Since\n * the label is part of the infix, the label cannot overflow the prefix content.\n */\n _forceDisplayInfixLabel() {\n return !this._platform.isBrowser && this._prefixChildren.length && !this._shouldLabelFloat();\n }\n _hasFloatingLabel() {\n return !!this._labelChildNonStatic || !!this._labelChildStatic;\n }\n _shouldLabelFloat() {\n return this._control.shouldLabelFloat || this._shouldAlwaysFloat();\n }\n /**\n * Determines whether a class from the AbstractControlDirective\n * should be forwarded to the host element.\n */\n _shouldForward(prop) {\n const control = this._control ? this._control.ngControl : null;\n return control && control[prop];\n }\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages() {\n return this._errorChildren && this._errorChildren.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n /** Handle label resize events. */\n _handleLabelResized() {\n this._refreshOutlineNotchWidth();\n }\n /** Refreshes the width of the outline-notch, if present. */\n _refreshOutlineNotchWidth() {\n if (!this._hasOutline() || !this._floatingLabel || !this._shouldLabelFloat()) {\n this._notchedOutline?._setNotchWidth(0);\n } else {\n this._notchedOutline?._setNotchWidth(this._floatingLabel.getWidth());\n }\n }\n /** Does any extra processing that is required when handling the hints. */\n _processHints() {\n this._validateHints();\n this._syncDescribedByIds();\n }\n /**\n * Ensure that there is a maximum of one of each \"mat-hint\" alignment specified. The hint\n * label specified set through the input is being considered as \"start\" aligned.\n *\n * This method is a noop if Angular runs in production mode.\n */\n _validateHints() {\n if (this._hintChildren && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n let startHint;\n let endHint;\n this._hintChildren.forEach(hint => {\n if (hint.align === 'start') {\n if (startHint || this.hintLabel) {\n throw getMatFormFieldDuplicatedHintError('start');\n }\n startHint = hint;\n } else if (hint.align === 'end') {\n if (endHint) {\n throw getMatFormFieldDuplicatedHintError('end');\n }\n endHint = hint;\n }\n });\n }\n }\n /**\n * Sets the list of element IDs that describe the child control. This allows the control to update\n * its `aria-describedby` attribute accordingly.\n */\n _syncDescribedByIds() {\n if (this._control) {\n let ids = [];\n // TODO(wagnermaciel): Remove the type check when we find the root cause of this bug.\n if (this._control.userAriaDescribedBy && typeof this._control.userAriaDescribedBy === 'string') {\n ids.push(...this._control.userAriaDescribedBy.split(' '));\n }\n if (this._getDisplayedMessages() === 'hint') {\n const startHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'start') : null;\n const endHint = this._hintChildren ? this._hintChildren.find(hint => hint.align === 'end') : null;\n if (startHint) {\n ids.push(startHint.id);\n } else if (this._hintLabel) {\n ids.push(this._hintLabelId);\n }\n if (endHint) {\n ids.push(endHint.id);\n }\n } else if (this._errorChildren) {\n ids.push(...this._errorChildren.map(error => error.id));\n }\n this._control.setDescribedByIds(ids);\n }\n }\n /**\n * Updates the horizontal offset of the label in the outline appearance. In the outline\n * appearance, the notched-outline and label are not relative to the infix container because\n * the outline intends to surround prefixes, suffixes and the infix. This means that the\n * floating label by default overlaps prefixes in the docked state. To avoid this, we need to\n * horizontally offset the label by the width of the prefix container. The MDC text-field does\n * not need to do this because they use a fixed width for prefixes. Hence, they can simply\n * incorporate the horizontal offset into their default text-field styles.\n */\n _updateOutlineLabelOffset() {\n if (!this._platform.isBrowser || !this._hasOutline() || !this._floatingLabel) {\n return;\n }\n const floatingLabel = this._floatingLabel.element;\n // If no prefix is displayed, reset the outline label offset from potential\n // previous label offset updates.\n if (!(this._iconPrefixContainer || this._textPrefixContainer)) {\n floatingLabel.style.transform = '';\n return;\n }\n // If the form field is not attached to the DOM yet (e.g. in a tab), we defer\n // the label offset update until the zone stabilizes.\n if (!this._isAttachedToDom()) {\n this._needsOutlineLabelOffsetUpdateOnStable = true;\n return;\n }\n const iconPrefixContainer = this._iconPrefixContainer?.nativeElement;\n const textPrefixContainer = this._textPrefixContainer?.nativeElement;\n const iconPrefixContainerWidth = iconPrefixContainer?.getBoundingClientRect().width ?? 0;\n const textPrefixContainerWidth = textPrefixContainer?.getBoundingClientRect().width ?? 0;\n // If the directionality is RTL, the x-axis transform needs to be inverted. This\n // is because `transformX` does not change based on the page directionality.\n const negate = this._dir.value === 'rtl' ? '-1' : '1';\n const prefixWidth = `${iconPrefixContainerWidth + textPrefixContainerWidth}px`;\n const labelOffset = `var(--mat-mdc-form-field-label-offset-x, 0px)`;\n const labelHorizontalOffset = `calc(${negate} * (${prefixWidth} + ${labelOffset}))`;\n // Update the translateX of the floating label to account for the prefix container,\n // but allow the CSS to override this setting via a CSS variable when the label is\n // floating.\n floatingLabel.style.transform = `var(\n --mat-mdc-form-field-label-transform,\n ${FLOATING_LABEL_DEFAULT_DOCKED_TRANSFORM} translateX(${labelHorizontalOffset})\n )`;\n }\n /** Checks whether the form field is attached to the DOM. */\n _isAttachedToDom() {\n const element = this._elementRef.nativeElement;\n if (element.getRootNode) {\n const rootNode = element.getRootNode();\n // If the element is inside the DOM the root node will be either the document\n // or the closest shadow root, otherwise it'll be the element itself.\n return rootNode && rootNode !== element;\n }\n // Otherwise fall back to checking if it's in the document. This doesn't account for\n // shadow DOM, however browser that support shadow DOM should support `getRootNode` as well.\n return document.documentElement.contains(element);\n }\n static {\n this.ɵfac = function MatFormField_Factory(t) {\n return new (t || MatFormField)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i1.Directionality), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(MAT_FORM_FIELD_DEFAULT_OPTIONS, 8), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8), i0.ɵɵdirectiveInject(DOCUMENT));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatFormField,\n selectors: [[\"mat-form-field\"]],\n contentQueries: function MatFormField_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLabel, 5);\n i0.ɵɵcontentQuery(dirIndex, MatLabel, 7);\n i0.ɵɵcontentQuery(dirIndex, MatFormFieldControl, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_PREFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_SUFFIX, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_ERROR, 5);\n i0.ɵɵcontentQuery(dirIndex, MatHint, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildNonStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._labelChildStatic = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._formFieldControl = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._prefixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._suffixChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._errorChildren = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._hintChildren = _t);\n }\n },\n viewQuery: function MatFormField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n i0.ɵɵviewQuery(_c5, 5);\n i0.ɵɵviewQuery(MatFormFieldFloatingLabel, 5);\n i0.ɵɵviewQuery(MatFormFieldNotchedOutline, 5);\n i0.ɵɵviewQuery(MatFormFieldLineRipple, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textField = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._iconPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._textPrefixContainer = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._floatingLabel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._notchedOutline = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lineRipple = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-form-field\"],\n hostVars: 42,\n hostBindings: function MatFormField_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-mdc-form-field-label-always-float\", ctx._shouldAlwaysFloat())(\"mat-mdc-form-field-has-icon-prefix\", ctx._hasIconPrefix)(\"mat-mdc-form-field-has-icon-suffix\", ctx._hasIconSuffix)(\"mat-form-field-invalid\", ctx._control.errorState)(\"mat-form-field-disabled\", ctx._control.disabled)(\"mat-form-field-autofilled\", ctx._control.autofilled)(\"mat-form-field-no-animations\", ctx._animationMode === \"NoopAnimations\")(\"mat-form-field-appearance-fill\", ctx.appearance == \"fill\")(\"mat-form-field-appearance-outline\", ctx.appearance == \"outline\")(\"mat-form-field-hide-placeholder\", ctx._hasFloatingLabel() && !ctx._shouldLabelFloat())(\"mat-focused\", ctx._control.focused)(\"mat-primary\", ctx.color !== \"accent\" && ctx.color !== \"warn\")(\"mat-accent\", ctx.color === \"accent\")(\"mat-warn\", ctx.color === \"warn\")(\"ng-untouched\", ctx._shouldForward(\"untouched\"))(\"ng-touched\", ctx._shouldForward(\"touched\"))(\"ng-pristine\", ctx._shouldForward(\"pristine\"))(\"ng-dirty\", ctx._shouldForward(\"dirty\"))(\"ng-valid\", ctx._shouldForward(\"valid\"))(\"ng-invalid\", ctx._shouldForward(\"invalid\"))(\"ng-pending\", ctx._shouldForward(\"pending\"));\n }\n },\n inputs: {\n hideRequiredMarker: \"hideRequiredMarker\",\n color: \"color\",\n floatLabel: \"floatLabel\",\n appearance: \"appearance\",\n subscriptSizing: \"subscriptSizing\",\n hintLabel: \"hintLabel\"\n },\n exportAs: [\"matFormField\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_FORM_FIELD,\n useExisting: MatFormField\n }, {\n provide: FLOATING_LABEL_PARENT,\n useExisting: MatFormField\n }])],\n ngContentSelectors: _c7,\n decls: 18,\n vars: 21,\n consts: [[\"labelTemplate\", \"\"], [1, \"mat-mdc-text-field-wrapper\", \"mdc-text-field\", 3, \"click\"], [\"textField\", \"\"], [\"class\", \"mat-mdc-form-field-focus-overlay\"], [1, \"mat-mdc-form-field-flex\"], [\"matFormFieldNotchedOutline\", \"\", 3, \"matFormFieldNotchedOutlineOpen\"], [\"class\", \"mat-mdc-form-field-icon-prefix\"], [\"class\", \"mat-mdc-form-field-text-prefix\"], [1, \"mat-mdc-form-field-infix\"], [3, \"ngTemplateOutlet\"], [\"class\", \"mat-mdc-form-field-text-suffix\"], [\"class\", \"mat-mdc-form-field-icon-suffix\"], [\"matFormFieldLineRipple\", \"\"], [1, \"mat-mdc-form-field-subscript-wrapper\", \"mat-mdc-form-field-bottom-align\"], [\"matFormFieldFloatingLabel\", \"\", 3, \"floating\", \"monitorResize\", \"id\"], [\"aria-hidden\", \"true\", \"class\", \"mat-mdc-form-field-required-marker mdc-floating-label--required\"], [\"aria-hidden\", \"true\", 1, \"mat-mdc-form-field-required-marker\", \"mdc-floating-label--required\"], [1, \"mat-mdc-form-field-focus-overlay\"], [1, \"mat-mdc-form-field-icon-prefix\"], [\"iconPrefixContainer\", \"\"], [1, \"mat-mdc-form-field-text-prefix\"], [\"textPrefixContainer\", \"\"], [1, \"mat-mdc-form-field-text-suffix\"], [1, \"mat-mdc-form-field-icon-suffix\"], [1, \"mat-mdc-form-field-error-wrapper\"], [1, \"mat-mdc-form-field-hint-wrapper\"], [3, \"id\"], [1, \"mat-mdc-form-field-hint-spacer\"]],\n template: function MatFormField_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c6);\n i0.ɵɵtemplate(0, MatFormField_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 1, 2);\n i0.ɵɵlistener(\"click\", function MatFormField_Template_div_click_2_listener($event) {\n return ctx._control.onContainerClick($event);\n });\n i0.ɵɵtemplate(4, MatFormField_Conditional_4_Template, 1, 0, \"div\", 3);\n i0.ɵɵelementStart(5, \"div\", 4);\n i0.ɵɵtemplate(6, MatFormField_Conditional_6_Template, 2, 2, \"div\", 5)(7, MatFormField_Conditional_7_Template, 3, 0, \"div\", 6)(8, MatFormField_Conditional_8_Template, 3, 0, \"div\", 7);\n i0.ɵɵelementStart(9, \"div\", 8);\n i0.ɵɵtemplate(10, MatFormField_Conditional_10_Template, 1, 1, null, 9);\n i0.ɵɵprojection(11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, MatFormField_Conditional_12_Template, 2, 0, \"div\", 10)(13, MatFormField_Conditional_13_Template, 2, 0, \"div\", 11);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(14, MatFormField_Conditional_14_Template, 1, 0, \"div\", 12);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(15, \"div\", 13);\n i0.ɵɵtemplate(16, MatFormField_Case_16_Template, 2, 1)(17, MatFormField_Case_17_Template, 5, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let MatFormField_contFlowTmp;\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"mdc-text-field--filled\", !ctx._hasOutline())(\"mdc-text-field--outlined\", ctx._hasOutline())(\"mdc-text-field--no-label\", !ctx._hasFloatingLabel())(\"mdc-text-field--disabled\", ctx._control.disabled)(\"mdc-text-field--invalid\", ctx._control.errorState);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(4, !ctx._hasOutline() && !ctx._control.disabled ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(6, ctx._hasOutline() ? 6 : -1);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(7, ctx._hasIconPrefix ? 7 : -1);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(8, ctx._hasTextPrefix ? 8 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(10, !ctx._hasOutline() || ctx._forceDisplayInfixLabel() ? 10 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(12, ctx._hasTextSuffix ? 12 : -1);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(13, ctx._hasIconSuffix ? 13 : -1);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(14, !ctx._hasOutline() ? 14 : -1);\n i0.ɵɵadvance(1);\n i0.ɵɵclassProp(\"mat-mdc-form-field-subscript-dynamic-size\", ctx.subscriptSizing === \"dynamic\");\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(16, (MatFormField_contFlowTmp = ctx._getDisplayedMessages()) === \"error\" ? 16 : MatFormField_contFlowTmp === \"hint\" ? 17 : -1);\n }\n },\n dependencies: [i3.NgTemplateOutlet, MatHint, MatFormFieldFloatingLabel, MatFormFieldNotchedOutline, MatFormFieldLineRipple],\n styles: [\".mdc-text-field{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:baseline;padding:0 16px;position:relative;box-sizing:border-box;overflow:hidden;will-change:opacity,transform,color}.mdc-text-field .mdc-floating-label{top:50%;transform:translateY(-50%);pointer-events:none}.mdc-text-field__input{height:28px;width:100%;min-width:0;border:none;border-radius:0;background:none;appearance:none;padding:0}.mdc-text-field__input::-ms-clear{display:none}.mdc-text-field__input::-webkit-calendar-picker-indicator{display:none}.mdc-text-field__input:focus{outline:none}.mdc-text-field__input:invalid{box-shadow:none}@media all{.mdc-text-field__input::placeholder{opacity:0}}@media all{.mdc-text-field__input:-ms-input-placeholder{opacity:0}}@media all{.mdc-text-field--no-label .mdc-text-field__input::placeholder,.mdc-text-field--focused .mdc-text-field__input::placeholder{opacity:1}}@media all{.mdc-text-field--no-label .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mdc-text-field__input:-ms-input-placeholder{opacity:1}}.mdc-text-field__affix{height:28px;opacity:0;white-space:nowrap}.mdc-text-field--label-floating .mdc-text-field__affix,.mdc-text-field--no-label .mdc-text-field__affix{opacity:1}@supports(-webkit-hyphens: none){.mdc-text-field--outlined .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field__affix--prefix,.mdc-text-field__affix--prefix[dir=rtl]{padding-left:2px;padding-right:0}.mdc-text-field--end-aligned .mdc-text-field__affix--prefix{padding-left:0;padding-right:12px}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--end-aligned .mdc-text-field__affix--prefix[dir=rtl]{padding-left:12px;padding-right:0}.mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field__affix--suffix,.mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:12px}.mdc-text-field--end-aligned .mdc-text-field__affix--suffix{padding-left:2px;padding-right:0}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--end-aligned .mdc-text-field__affix--suffix[dir=rtl]{padding-left:0;padding-right:2px}.mdc-text-field--filled{height:56px}.mdc-text-field--filled::before{display:inline-block;width:0;height:40px;content:\\\"\\\";vertical-align:0}.mdc-text-field--filled .mdc-floating-label{left:16px;right:initial}[dir=rtl] .mdc-text-field--filled .mdc-floating-label,.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:16px}.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{height:100%}.mdc-text-field--filled.mdc-text-field--no-label .mdc-floating-label{display:none}.mdc-text-field--filled.mdc-text-field--no-label::before{display:none}@supports(-webkit-hyphens: none){.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__affix{align-items:center;align-self:center;display:inline-flex;height:100%}}.mdc-text-field--outlined{height:56px;overflow:visible}.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) scale(1)}.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) scale(0.75)}.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--outlined .mdc-text-field__input{height:100%}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-shape-small, 4px))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:4px;border-top-right-radius:var(--mdc-shape-small, 4px);border-bottom-right-radius:4px;border-bottom-right-radius:var(--mdc-shape-small, 4px);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:4px;border-top-left-radius:var(--mdc-shape-small, 4px);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:4px;border-bottom-left-radius:var(--mdc-shape-small, 4px)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-shape-small, 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-shape-small, 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-shape-small, 4px))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-shape-small, 4px) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:1px}.mdc-text-field--outlined .mdc-floating-label{left:4px;right:initial}[dir=rtl] .mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:4px}.mdc-text-field--outlined .mdc-text-field__input{display:flex;border:none !important;background-color:rgba(0,0,0,0)}.mdc-text-field--outlined .mdc-notched-outline{z-index:1}.mdc-text-field--textarea{flex-direction:column;align-items:center;width:auto;height:auto;padding:0}.mdc-text-field--textarea .mdc-floating-label{top:19px}.mdc-text-field--textarea .mdc-floating-label:not(.mdc-floating-label--float-above){transform:none}.mdc-text-field--textarea .mdc-text-field__input{flex-grow:1;height:auto;min-height:1.5rem;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;resize:none;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--filled::before{display:none}.mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--float-above{transform:translateY(-10.25px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--filled .mdc-text-field__input{margin-top:23px;margin-bottom:9px}.mdc-text-field--textarea.mdc-text-field--filled.mdc-text-field--no-label .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-27.25px) scale(1)}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-24.75px) scale(0.75)}.mdc-text-field--textarea.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--textarea.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-text-field__input{margin-top:16px;margin-bottom:16px}.mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label{top:18px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field__input{margin-bottom:2px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter{align-self:flex-end;padding:0 16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::after{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:-16px}.mdc-text-field--textarea.mdc-text-field--with-internal-counter .mdc-text-field-character-counter::before{display:none}.mdc-text-field__resizer{align-self:stretch;display:inline-flex;flex-direction:column;flex-grow:1;max-height:100%;max-width:100%;min-height:56px;min-width:fit-content;min-width:-moz-available;min-width:-webkit-fill-available;overflow:hidden;resize:both}.mdc-text-field--filled .mdc-text-field__resizer{transform:translateY(-1px)}.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--filled .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateY(1px)}.mdc-text-field--outlined .mdc-text-field__resizer{transform:translateX(-1px) translateY(-1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer,.mdc-text-field--outlined .mdc-text-field__resizer[dir=rtl]{transform:translateX(1px) translateY(-1px)}.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter{transform:translateX(1px) translateY(1px)}[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input,[dir=rtl] .mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter,.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field__input[dir=rtl],.mdc-text-field--outlined .mdc-text-field__resizer .mdc-text-field-character-counter[dir=rtl]{transform:translateX(-1px) translateY(1px)}.mdc-text-field--with-leading-icon{padding-left:0;padding-right:16px}[dir=rtl] .mdc-text-field--with-leading-icon,.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:16px;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 48px);left:48px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label[dir=rtl]{left:initial;right:48px}.mdc-text-field--with-leading-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label{left:36px;right:initial}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label[dir=rtl]{left:initial;right:36px}.mdc-text-field--with-leading-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{transform:translateY(-37.25px) translateX(-32px) scale(1)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-37.25px) translateX(32px) scale(1)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--float-above{font-size:.75rem}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{transform:translateY(-34.75px) translateX(-32px) scale(0.75)}[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,[dir=rtl] .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl],.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above[dir=rtl]{transform:translateY(-34.75px) translateX(32px) scale(0.75)}.mdc-text-field--with-leading-icon.mdc-text-field--outlined.mdc-notched-outline--upgraded .mdc-floating-label--float-above,.mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:1rem}.mdc-text-field--with-trailing-icon{padding-left:16px;padding-right:0}[dir=rtl] .mdc-text-field--with-trailing-icon,.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0;padding-right:16px}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 64px)}.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 64px/0.75)}.mdc-text-field--with-trailing-icon.mdc-text-field--outlined :not(.mdc-notched-outline--notched) .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label{max-width:calc(100% - 96px)}.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon.mdc-text-field--filled .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 96px/0.75)}.mdc-text-field-helper-line{display:flex;justify-content:space-between;box-sizing:border-box}.mdc-text-field+.mdc-text-field-helper-line{padding-right:16px;padding-left:16px}.mdc-form-field>.mdc-text-field+label{align-self:flex-start}.mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--focused .mdc-notched-outline__trailing{border-width:2px}.mdc-text-field--focused+.mdc-text-field-helper-line .mdc-text-field-helper-text:not(.mdc-text-field-helper-text--validation-msg){opacity:1}.mdc-text-field--focused.mdc-text-field--outlined .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:2px}.mdc-text-field--focused.mdc-text-field--outlined.mdc-text-field--textarea .mdc-notched-outline--notched .mdc-notched-outline__notch{padding-top:0}.mdc-text-field--invalid+.mdc-text-field-helper-line .mdc-text-field-helper-text--validation-msg{opacity:1}.mdc-text-field--disabled{pointer-events:none}@media screen and (forced-colors: active){.mdc-text-field--disabled .mdc-text-field__input{background-color:Window}.mdc-text-field--disabled .mdc-floating-label{z-index:1}}.mdc-text-field--disabled .mdc-floating-label{cursor:default}.mdc-text-field--disabled.mdc-text-field--filled .mdc-text-field__ripple{display:none}.mdc-text-field--disabled .mdc-text-field__input{pointer-events:auto}.mdc-text-field--end-aligned .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--end-aligned .mdc-text-field__input[dir=rtl]{text-align:left}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix{direction:ltr}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{padding-left:0;padding-right:2px}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{padding-left:12px;padding-right:0}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--leading,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--leading{order:1}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--suffix{order:2}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__input,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__input{order:3}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__affix--prefix{order:4}[dir=rtl] .mdc-text-field--ltr-text .mdc-text-field__icon--trailing,.mdc-text-field--ltr-text[dir=rtl] .mdc-text-field__icon--trailing{order:5}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__input,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__input{text-align:right}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--prefix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--prefix{padding-right:12px}[dir=rtl] .mdc-text-field--ltr-text.mdc-text-field--end-aligned .mdc-text-field__affix--suffix,.mdc-text-field--ltr-text.mdc-text-field--end-aligned[dir=rtl] .mdc-text-field__affix--suffix{padding-left:2px}.mdc-floating-label{position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.15rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform}[dir=rtl] .mdc-floating-label,.mdc-floating-label[dir=rtl]{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.mdc-floating-label--float-above{cursor:auto}.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after{margin-left:1px;margin-right:0px;content:\\\"*\\\"}[dir=rtl] .mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)::after,.mdc-floating-label--required:not(.mdc-floating-label--hide-required-marker)[dir=rtl]::after{margin-left:0;margin-right:1px}.mdc-notched-outline{display:flex;position:absolute;top:0;right:0;left:0;box-sizing:border-box;width:100%;max-width:100%;height:100%;text-align:left;pointer-events:none}[dir=rtl] .mdc-notched-outline,.mdc-notched-outline[dir=rtl]{text-align:right}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{box-sizing:border-box;height:100%;pointer-events:none}.mdc-notched-outline__trailing{flex-grow:1}.mdc-notched-outline__notch{flex:0 0 auto;width:auto}.mdc-notched-outline .mdc-floating-label{display:inline-block;position:relative;max-width:100%}.mdc-notched-outline .mdc-floating-label--float-above{text-overflow:clip}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:133.3333333333%}.mdc-notched-outline--notched .mdc-notched-outline__notch{padding-left:0;padding-right:8px;border-top:none}[dir=rtl] .mdc-notched-outline--notched .mdc-notched-outline__notch,.mdc-notched-outline--notched .mdc-notched-outline__notch[dir=rtl]{padding-left:8px;padding-right:0}.mdc-notched-outline--no-label .mdc-notched-outline__notch{display:none}.mdc-line-ripple::before,.mdc-line-ripple::after{position:absolute;bottom:0;left:0;width:100%;border-bottom-style:solid;content:\\\"\\\"}.mdc-line-ripple::before{z-index:1}.mdc-line-ripple::after{transform:scaleX(0);opacity:0;z-index:2}.mdc-line-ripple--active::after{transform:scaleX(1);opacity:1}.mdc-line-ripple--deactivating::after{opacity:0}.mdc-floating-label--float-above{transform:translateY(-106%) scale(0.75)}.mdc-notched-outline__leading,.mdc-notched-outline__notch,.mdc-notched-outline__trailing{border-top:1px solid;border-bottom:1px solid}.mdc-notched-outline__leading{border-left:1px solid;border-right:none;width:12px}[dir=rtl] .mdc-notched-outline__leading,.mdc-notched-outline__leading[dir=rtl]{border-left:none;border-right:1px solid}.mdc-notched-outline__trailing{border-left:none;border-right:1px solid}[dir=rtl] .mdc-notched-outline__trailing,.mdc-notched-outline__trailing[dir=rtl]{border-left:1px solid;border-right:none}.mdc-notched-outline__notch{max-width:calc(100% - 12px*2)}.mdc-line-ripple::before{border-bottom-width:1px}.mdc-line-ripple::after{border-bottom-width:2px}.mdc-text-field--filled{border-top-left-radius:var(--mdc-filled-text-field-container-shape);border-top-right-radius:var(--mdc-filled-text-field-container-shape);border-bottom-right-radius:0;border-bottom-left-radius:0}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-caret-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-filled-text-field-error-caret-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-filled-text-field-input-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-filled-text-field-disabled-input-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-label-text-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-focus-label-text-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-disabled-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-label-text-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-filled-text-field-error-focus-label-text-color)}.mdc-text-field--filled .mdc-floating-label{font-family:var(--mdc-filled-text-field-label-text-font);font-size:var(--mdc-filled-text-field-label-text-size);font-weight:var(--mdc-filled-text-field-label-text-weight);letter-spacing:var(--mdc-filled-text-field-label-text-tracking)}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-filled-text-field-input-text-placeholder-color)}}.mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:var(--mdc-filled-text-field-container-color)}.mdc-text-field--filled.mdc-text-field--disabled{background-color:var(--mdc-filled-text-field-disabled-container-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-hover-active-indicator-color)}.mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-focus-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--disabled .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-disabled-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-line-ripple::before{border-bottom-color:var(--mdc-filled-text-field-error-hover-active-indicator-color)}.mdc-text-field--filled.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-line-ripple::after{border-bottom-color:var(--mdc-filled-text-field-error-focus-active-indicator-color)}.mdc-text-field--filled .mdc-line-ripple::before{border-bottom-width:var(--mdc-filled-text-field-active-indicator-height)}.mdc-text-field--filled .mdc-line-ripple::after{border-bottom-width:var(--mdc-filled-text-field-focus-active-indicator-height)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-caret-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--mdc-outlined-text-field-error-caret-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{color:var(--mdc-outlined-text-field-input-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--mdc-outlined-text-field-disabled-input-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-label-text-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-focus-label-text-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-disabled-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-label-text-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-floating-label--float-above{color:var(--mdc-outlined-text-field-error-focus-label-text-color)}.mdc-text-field--outlined .mdc-floating-label{font-family:var(--mdc-outlined-text-field-label-text-font);font-size:var(--mdc-outlined-text-field-label-text-size);font-weight:var(--mdc-outlined-text-field-label-text-weight);letter-spacing:var(--mdc-outlined-text-field-label-text-tracking)}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input::placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}@media all{.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input:-ms-input-placeholder{color:var(--mdc-outlined-text-field-input-text-placeholder-color)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading[dir=rtl]{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading{width:max(12px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch{max-width:calc(100% - max(12px,var(--mdc-outlined-text-field-container-shape))*2)}}.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-left-radius:0;border-top-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-right-radius:var(--mdc-outlined-text-field-container-shape);border-bottom-left-radius:0}[dir=rtl] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing,.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing[dir=rtl]{border-top-left-radius:var(--mdc-outlined-text-field-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:var(--mdc-outlined-text-field-container-shape)}@supports(top: max(0%)){.mdc-text-field--outlined{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}@supports(top: max(0%)){.mdc-text-field--outlined+.mdc-text-field-helper-line{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-left:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-leading-icon{padding-right:max(16px,var(--mdc-outlined-text-field-container-shape))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-right:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-leading-icon,.mdc-text-field--outlined.mdc-text-field--with-leading-icon[dir=rtl]{padding-left:max(16px,var(--mdc-outlined-text-field-container-shape))}}.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-right:0}@supports(top: max(0%)){.mdc-text-field--outlined.mdc-text-field--with-trailing-icon{padding-left:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-left:0}@supports(top: max(0%)){[dir=rtl] .mdc-text-field--outlined.mdc-text-field--with-trailing-icon,.mdc-text-field--outlined.mdc-text-field--with-trailing-icon[dir=rtl]{padding-right:max(16px,calc(var(--mdc-outlined-text-field-container-shape) + 4px))}}.mdc-text-field--outlined.mdc-text-field--with-leading-icon.mdc-text-field--with-trailing-icon{padding-left:0;padding-right:0}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-hover-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-focus-outline-color)}.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--disabled .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-disabled-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-hover-outline-color)}.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__leading,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__notch,.mdc-text-field--outlined.mdc-text-field--invalid:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline__trailing{border-color:var(--mdc-outlined-text-field-error-focus-outline-color)}.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-outline-width)}.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__leading,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__notch,.mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mdc-notched-outline .mdc-notched-outline__trailing{border-width:var(--mdc-outlined-text-field-focus-outline-width)}.mat-mdc-form-field-textarea-control{vertical-align:middle;resize:vertical;box-sizing:border-box;height:auto;margin:0;padding:0;border:none;overflow:auto}.mat-mdc-form-field-input-control.mat-mdc-form-field-input-control{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font:inherit;letter-spacing:inherit;text-decoration:inherit;text-transform:inherit;border:none}.mat-mdc-form-field .mat-mdc-floating-label.mdc-floating-label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;line-height:normal;pointer-events:all}.mat-mdc-form-field:not(.mat-form-field-disabled) .mat-mdc-floating-label.mdc-floating-label{cursor:inherit}.mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input,.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:auto}.mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control.mdc-text-field__input[type=color]{height:23px}.mat-mdc-text-field-wrapper{height:auto;flex:auto}.mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-left:0;--mat-mdc-form-field-label-offset-x: -16px}.mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-right:0}[dir=rtl] .mat-mdc-text-field-wrapper{padding-left:16px;padding-right:16px}[dir=rtl] .mat-mdc-form-field-has-icon-suffix .mat-mdc-text-field-wrapper{padding-left:0}[dir=rtl] .mat-mdc-form-field-has-icon-prefix .mat-mdc-text-field-wrapper{padding-right:0}.mat-form-field-disabled .mdc-text-field__input::placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-moz-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input::-webkit-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-form-field-disabled .mdc-text-field__input:-ms-input-placeholder{color:var(--mat-form-field-disabled-input-text-placeholder-color)}.mat-mdc-form-field-label-always-float .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms;opacity:1}.mat-mdc-text-field-wrapper .mat-mdc-form-field-infix .mat-mdc-floating-label{left:auto;right:auto}.mat-mdc-text-field-wrapper.mdc-text-field--outlined .mdc-text-field__input{display:inline-block}.mat-mdc-form-field .mat-mdc-text-field-wrapper.mdc-text-field .mdc-notched-outline__notch{padding-top:0}.mat-mdc-text-field-wrapper::before{content:none}.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:1px solid rgba(0,0,0,0)}[dir=rtl] .mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field.mat-mdc-form-field .mdc-notched-outline__notch{border-left:none;border-right:1px solid rgba(0,0,0,0)}.mat-mdc-form-field-subscript-wrapper{box-sizing:border-box;width:100%;position:relative}.mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-error-wrapper{position:absolute;top:0;left:0;right:0;padding:0 16px}.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-hint-wrapper,.mat-mdc-form-field-subscript-dynamic-size .mat-mdc-form-field-error-wrapper{position:static}.mat-mdc-form-field-bottom-align::before{content:\\\"\\\";display:inline-block;height:16px}.mat-mdc-form-field-bottom-align.mat-mdc-form-field-subscript-dynamic-size::before{content:unset}.mat-mdc-form-field-hint-end{order:1}.mat-mdc-form-field-hint-wrapper{display:flex}.mat-mdc-form-field-hint-spacer{flex:1 0 1em}.mat-mdc-form-field-error{display:block;color:var(--mat-form-field-error-text-color)}.mat-mdc-form-field-subscript-wrapper,.mat-mdc-form-field-bottom-align::before{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-subscript-text-font);line-height:var(--mat-form-field-subscript-text-line-height);font-size:var(--mat-form-field-subscript-text-size);letter-spacing:var(--mat-form-field-subscript-text-tracking);font-weight:var(--mat-form-field-subscript-text-weight)}.mat-mdc-form-field-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;opacity:0;pointer-events:none;background-color:var(--mat-form-field-state-layer-color)}.mat-mdc-text-field-wrapper:hover .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-hover-state-layer-opacity)}.mat-mdc-form-field.mat-focused .mat-mdc-form-field-focus-overlay{opacity:var(--mat-form-field-focus-state-layer-opacity)}select.mat-mdc-form-field-input-control{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(0,0,0,0);display:inline-flex;box-sizing:border-box}select.mat-mdc-form-field-input-control:not(:disabled){cursor:pointer}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option{color:var(--mat-form-field-select-option-text-color)}select.mat-mdc-form-field-input-control:not(.mat-mdc-native-select-inline) option:disabled{color:var(--mat-form-field-select-disabled-option-text-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{content:\\\"\\\";width:0;height:0;border-left:5px solid rgba(0,0,0,0);border-right:5px solid rgba(0,0,0,0);border-top:5px solid;position:absolute;right:0;top:50%;margin-top:-2.5px;pointer-events:none;color:var(--mat-form-field-enabled-select-arrow-color)}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-infix::after{right:auto;left:0}.mat-mdc-form-field-type-mat-native-select.mat-focused .mat-mdc-form-field-infix::after{color:var(--mat-form-field-focus-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select.mat-form-field-disabled .mat-mdc-form-field-infix::after{color:var(--mat-form-field-disabled-select-arrow-color)}.mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:15px}[dir=rtl] .mat-mdc-form-field-type-mat-native-select .mat-mdc-form-field-input-control{padding-right:0;padding-left:15px}.cdk-high-contrast-active .mat-form-field-appearance-fill .mat-mdc-text-field-wrapper{outline:solid 1px}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-form-field-disabled .mat-mdc-text-field-wrapper{outline-color:GrayText}.cdk-high-contrast-active .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper{outline:dashed 3px}.cdk-high-contrast-active .mat-mdc-form-field.mat-focused .mdc-notched-outline{border:dashed 3px}.mat-mdc-form-field-input-control[type=date],.mat-mdc-form-field-input-control[type=datetime],.mat-mdc-form-field-input-control[type=datetime-local],.mat-mdc-form-field-input-control[type=month],.mat-mdc-form-field-input-control[type=week],.mat-mdc-form-field-input-control[type=time]{line-height:1}.mat-mdc-form-field-input-control::-webkit-datetime-edit{line-height:1;padding:0;margin-bottom:-2px}.mat-mdc-form-field{--mat-mdc-form-field-floating-label-scale: 0.75;display:inline-flex;flex-direction:column;min-width:0;text-align:left;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--mat-form-field-container-text-font);line-height:var(--mat-form-field-container-text-line-height);font-size:var(--mat-form-field-container-text-size);letter-spacing:var(--mat-form-field-container-text-tracking);font-weight:var(--mat-form-field-container-text-weight)}[dir=rtl] .mat-mdc-form-field{text-align:right}.mat-mdc-form-field .mdc-text-field--outlined .mdc-floating-label--float-above{font-size:calc(var(--mat-form-field-outlined-label-text-populated-size)*var(--mat-mdc-form-field-floating-label-scale))}.mat-mdc-form-field .mdc-text-field--outlined .mdc-notched-outline--upgraded .mdc-floating-label--float-above{font-size:var(--mat-form-field-outlined-label-text-populated-size)}.mat-mdc-form-field-flex{display:inline-flex;align-items:baseline;box-sizing:border-box;width:100%}.mat-mdc-text-field-wrapper{width:100%}.mat-mdc-form-field-icon-prefix,.mat-mdc-form-field-icon-suffix{align-self:center;line-height:0;pointer-events:auto;position:relative;z-index:1}.mat-mdc-form-field-icon-prefix,[dir=rtl] .mat-mdc-form-field-icon-suffix{padding:0 4px 0 0}.mat-mdc-form-field-icon-suffix,[dir=rtl] .mat-mdc-form-field-icon-prefix{padding:0 0 0 4px}.mat-mdc-form-field-icon-prefix>.mat-icon,.mat-mdc-form-field-icon-suffix>.mat-icon{padding:12px;box-sizing:content-box}.mat-mdc-form-field-subscript-wrapper .mat-icon,.mat-mdc-form-field label .mat-icon{width:1em;height:1em;font-size:inherit}.mat-mdc-form-field-infix{flex:auto;min-width:0;width:180px;position:relative;box-sizing:border-box}.mat-mdc-form-field .mdc-notched-outline__notch{margin-left:-1px;-webkit-clip-path:inset(-9em -999em -9em 1px);clip-path:inset(-9em -999em -9em 1px)}[dir=rtl] .mat-mdc-form-field .mdc-notched-outline__notch{margin-left:0;margin-right:-1px;-webkit-clip-path:inset(-9em 1px -9em -999em);clip-path:inset(-9em 1px -9em -999em)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition:opacity 67ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input::placeholder{transition-delay:40ms;transition-duration:110ms}}@media all{.mdc-text-field--no-label .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder,.mdc-text-field--focused .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__input:-ms-input-placeholder{transition-delay:40ms;transition-duration:110ms}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field__affix{transition:opacity 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled.mdc-ripple-upgraded--background-focused .mdc-text-field__ripple::before,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--filled:not(.mdc-ripple-upgraded):focus .mdc-text-field__ripple::before{transition-duration:75ms}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea{transition:none}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--filled .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-filled 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-filled{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 10.25px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--textarea.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-textarea-outlined 250ms 1}@keyframes mdc-floating-label-shake-float-above-textarea-outlined{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 24.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon{0%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - 32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}[dir=rtl] .mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined .mdc-floating-label--shake,.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-text-field--with-leading-icon.mdc-text-field--outlined[dir=rtl] .mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-text-field-outlined-leading-icon 250ms 1}@keyframes mdc-floating-label-shake-float-above-text-field-outlined-leading-icon-rtl{0%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}100%{transform:translateX(calc(0% - -32px)) translateY(calc(0% - 34.75px)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-floating-label{transition:transform 150ms cubic-bezier(0.4, 0, 0.2, 1),color 150ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-floating-label--shake{animation:mdc-floating-label-shake-float-above-standard 250ms 1}@keyframes mdc-floating-label-shake-float-above-standard{0%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}33%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(calc(4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}66%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-4% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}100%{transform:translateX(calc(0% - 0%)) translateY(calc(0% - 106%)) scale(0.75)}}.mat-mdc-form-field:not(.mat-form-field-no-animations) .mdc-line-ripple::after{transition:transform 180ms cubic-bezier(0.4, 0, 0.2, 1),opacity 180ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-notched-outline .mdc-floating-label{max-width:calc(100% + 1px)}.mdc-notched-outline--upgraded .mdc-floating-label--float-above{max-width:calc(133.3333333333% + 1px)}\"],\n encapsulation: 2,\n data: {\n animation: [matFormFieldAnimations.transitionMessages]\n },\n changeDetection: 0\n });\n }\n }\n return MatFormField;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatFormFieldModule = /*#__PURE__*/(() => {\n class MatFormFieldModule {\n static {\n this.ɵfac = function MatFormFieldModule_Factory(t) {\n return new (t || MatFormFieldModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatFormFieldModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CommonModule, ObserversModule, MatCommonModule]\n });\n }\n }\n return MatFormFieldModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_ERROR, MAT_FORM_FIELD, MAT_FORM_FIELD_DEFAULT_OPTIONS, MAT_PREFIX, MAT_SUFFIX, MatError, MatFormField, MatFormFieldControl, MatFormFieldModule, MatHint, MatLabel, MatPrefix, MatSuffix, getMatFormFieldDuplicatedHintError, getMatFormFieldMissingControlError, getMatFormFieldPlaceholderConflictError, matFormFieldAnimations };\n","import * as i7 from '@angular/cdk/overlay';\nimport { Overlay, CdkOverlayOrigin, CdkConnectedOverlay, OverlayModule } from '@angular/cdk/overlay';\nimport * as i6 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Self, Attribute, ContentChildren, ContentChild, Input, ViewChild, Output, Directive, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { mixinDisableRipple, mixinTabIndex, mixinDisabled, mixinErrorState, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MAT_OPTION_PARENT_COMPONENT, MatOption, MAT_OPTGROUP, MatOptionModule, MatCommonModule } from '@angular/material/core';\nimport * as i8 from '@angular/material/form-field';\nimport { MAT_FORM_FIELD, MatFormFieldControl, MatFormFieldModule } from '@angular/material/form-field';\nimport * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i5 from '@angular/cdk/a11y';\nimport { removeAriaReferencedId, addAriaReferencedId, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport * as i3 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, hasModifierKey, A } from '@angular/cdk/keycodes';\nimport * as i4 from '@angular/forms';\nimport { Validators } from '@angular/forms';\nimport { Subject, defer, merge } from 'rxjs';\nimport { startWith, switchMap, take, filter, map, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { trigger, transition, query, animateChild, state, style, animate } from '@angular/animations';\n\n/**\n * The following are all the animations for the mat-select component, with each\n * const containing the metadata for one animation.\n *\n * The values below match the implementation of the AngularJS Material mat-select animation.\n * @docs-private\n */\nconst _c0 = [\"trigger\"];\nconst _c1 = [\"panel\"];\nfunction MatSelect_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r2.placeholder);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0);\n }\n}\nfunction MatSelect_Conditional_5_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 11);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r6.triggerValue);\n }\n}\nfunction MatSelect_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵtemplate(1, MatSelect_Conditional_5_Conditional_1_Template, 1, 0)(2, MatSelect_Conditional_5_Conditional_2_Template, 2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(1, ctx_r3.customTrigger ? 1 : 2);\n }\n}\nfunction MatSelect_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵnamespaceSVG();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(0, \"div\", 12, 13);\n i0.ɵɵlistener(\"@transformPanel.done\", function MatSelect_ng_template_10_Template_div_animation_transformPanel_done_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r8 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r8._panelDoneAnimatingStream.next($event.toState));\n })(\"keydown\", function MatSelect_ng_template_10_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r10 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r10._handleKeydown($event));\n });\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"mat-mdc-select-panel mdc-menu-surface mdc-menu-surface--open \", ctx_r4._getPanelTheme(), \"\");\n i0.ɵɵproperty(\"ngClass\", ctx_r4.panelClass)(\"@transformPanel\", \"showing\");\n i0.ɵɵattribute(\"id\", ctx_r4.id + \"-panel\")(\"aria-multiselectable\", ctx_r4.multiple)(\"aria-label\", ctx_r4.ariaLabel || null)(\"aria-labelledby\", ctx_r4._getPanelAriaLabelledby());\n }\n}\nconst _c2 = [[[\"mat-select-trigger\"]], \"*\"];\nconst _c3 = [\"mat-select-trigger\", \"*\"];\nconst matSelectAnimations = {\n /**\n * This animation ensures the select's overlay panel animation (transformPanel) is called when\n * closing the select.\n * This is needed due to https://github.com/angular/angular/issues/23302\n */\n transformPanelWrap: /*#__PURE__*/trigger('transformPanelWrap', [/*#__PURE__*/transition('* => void', /*#__PURE__*/query('@transformPanel', [/*#__PURE__*/animateChild()], {\n optional: true\n }))]),\n /** This animation transforms the select's overlay panel on and off the page. */\n transformPanel: /*#__PURE__*/trigger('transformPanel', [/*#__PURE__*/state('void', /*#__PURE__*/style({\n opacity: 0,\n transform: 'scale(1, 0.8)'\n })), /*#__PURE__*/transition('void => showing', /*#__PURE__*/animate('120ms cubic-bezier(0, 0, 0.2, 1)', /*#__PURE__*/style({\n opacity: 1,\n transform: 'scale(1, 1)'\n }))), /*#__PURE__*/transition('* => void', /*#__PURE__*/animate('100ms linear', /*#__PURE__*/style({\n opacity: 0\n })))])\n};\n\n// Note that these have been copied over verbatim from\n// `material/select` so that we don't have to expose them publicly.\n/**\n * Returns an exception to be thrown when attempting to change a select's `multiple` option\n * after initialization.\n * @docs-private\n */\nfunction getMatSelectDynamicMultipleError() {\n return Error('Cannot change `multiple` mode of select after initialization.');\n}\n/**\n * Returns an exception to be thrown when attempting to assign a non-array value to a select\n * in `multiple` mode. Note that `undefined` and `null` are still valid values to allow for\n * resetting the value.\n * @docs-private\n */\nfunction getMatSelectNonArrayValueError() {\n return Error('Value must be an array in multiple-selection mode.');\n}\n/**\n * Returns an exception to be thrown when assigning a non-function value to the comparator\n * used to determine if a value corresponds to an option. Note that whether the function\n * actually takes two values and returns a boolean is not checked.\n */\nfunction getMatSelectNonFunctionValueError() {\n return Error('`compareWith` must be a function.');\n}\nlet nextUniqueId = 0;\n/** Injection token that determines the scroll handling while a select is open. */\nconst MAT_SELECT_SCROLL_STRATEGY = /*#__PURE__*/new InjectionToken('mat-select-scroll-strategy');\n/** @docs-private */\nfunction MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {\n return () => overlay.scrollStrategies.reposition();\n}\n/** Injection token that can be used to provide the default options the select module. */\nconst MAT_SELECT_CONFIG = /*#__PURE__*/new InjectionToken('MAT_SELECT_CONFIG');\n/** @docs-private */\nconst MAT_SELECT_SCROLL_STRATEGY_PROVIDER = {\n provide: MAT_SELECT_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY\n};\n/**\n * Injection token that can be used to reference instances of `MatSelectTrigger`. It serves as\n * alternative token to the actual `MatSelectTrigger` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nconst MAT_SELECT_TRIGGER = /*#__PURE__*/new InjectionToken('MatSelectTrigger');\n/** Change event object that is emitted when the select value has changed. */\nclass MatSelectChange {\n constructor( /** Reference to the select that emitted the change event. */\n source, /** Current value of the select that emitted the event. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n// Boilerplate for applying mixins to MatSelect.\n/** @docs-private */\nconst _MatSelectMixinBase = /*#__PURE__*/mixinDisableRipple( /*#__PURE__*/mixinTabIndex( /*#__PURE__*/mixinDisabled( /*#__PURE__*/mixinErrorState(class {\n constructor(_elementRef, _defaultErrorStateMatcher, _parentForm, _parentFormGroup,\n /**\n * Form control bound to the component.\n * Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n ngControl) {\n this._elementRef = _elementRef;\n this._defaultErrorStateMatcher = _defaultErrorStateMatcher;\n this._parentForm = _parentForm;\n this._parentFormGroup = _parentFormGroup;\n this.ngControl = ngControl;\n /**\n * Emits whenever the component state changes and should cause the parent\n * form-field to update. Implemented as part of `MatFormFieldControl`.\n * @docs-private\n */\n this.stateChanges = new Subject();\n }\n}))));\nlet MatSelect = /*#__PURE__*/(() => {\n class MatSelect extends _MatSelectMixinBase {\n /** Scrolls a particular option into the view. */\n _scrollOptionIntoView(index) {\n const option = this.options.toArray()[index];\n if (option) {\n const panel = this.panel.nativeElement;\n const labelCount = _countGroupLabelsBeforeOption(index, this.options, this.optionGroups);\n const element = option._getHostElement();\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n panel.scrollTop = 0;\n } else {\n panel.scrollTop = _getOptionScrollPosition(element.offsetTop, element.offsetHeight, panel.scrollTop, panel.offsetHeight);\n }\n }\n }\n /** Called when the panel has been opened and the overlay has settled on its final position. */\n _positioningSettled() {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n }\n /** Creates a change event object that should be emitted by the select. */\n _getChangeEvent(value) {\n return new MatSelectChange(this, value);\n }\n /** Whether the select is focused. */\n get focused() {\n return this._focused || this._panelOpen;\n }\n /** Whether checkmark indicator for single-selection options is hidden. */\n get hideSingleSelectionIndicator() {\n return this._hideSingleSelectionIndicator;\n }\n set hideSingleSelectionIndicator(value) {\n this._hideSingleSelectionIndicator = coerceBooleanProperty(value);\n this._syncParentProperties();\n }\n /** Placeholder to be shown if no value has been selected. */\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(value) {\n this._placeholder = value;\n this.stateChanges.next();\n }\n /** Whether the component is required. */\n get required() {\n return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n /** Whether the user should be allowed to select multiple options. */\n get multiple() {\n return this._multiple;\n }\n set multiple(value) {\n if (this._selectionModel && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectDynamicMultipleError();\n }\n this._multiple = coerceBooleanProperty(value);\n }\n /** Whether to center the active option over the trigger. */\n get disableOptionCentering() {\n return this._disableOptionCentering;\n }\n set disableOptionCentering(value) {\n this._disableOptionCentering = coerceBooleanProperty(value);\n }\n /**\n * Function to compare the option values with the selected values. The first argument\n * is a value from an option. The second is a value from the selection. A boolean\n * should be returned.\n */\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n if (typeof fn !== 'function' && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonFunctionValueError();\n }\n this._compareWith = fn;\n if (this._selectionModel) {\n // A different comparator means the selection could change.\n this._initializeSelection();\n }\n }\n /** Value of the select control. */\n get value() {\n return this._value;\n }\n set value(newValue) {\n const hasAssigned = this._assignValue(newValue);\n if (hasAssigned) {\n this._onChange(newValue);\n }\n }\n /** Time to wait in milliseconds after the last keystroke before moving focus to an item. */\n get typeaheadDebounceInterval() {\n return this._typeaheadDebounceInterval;\n }\n set typeaheadDebounceInterval(value) {\n this._typeaheadDebounceInterval = coerceNumberProperty(value);\n }\n /** Unique id of the element. */\n get id() {\n return this._id;\n }\n set id(value) {\n this._id = value || this._uid;\n this.stateChanges.next();\n }\n constructor(_viewportRuler, _changeDetectorRef, _ngZone, _defaultErrorStateMatcher, elementRef, _dir, _parentForm, _parentFormGroup, _parentFormField, ngControl, tabIndex, scrollStrategyFactory, _liveAnnouncer, _defaultOptions) {\n super(elementRef, _defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);\n this._viewportRuler = _viewportRuler;\n this._changeDetectorRef = _changeDetectorRef;\n this._ngZone = _ngZone;\n this._dir = _dir;\n this._parentFormField = _parentFormField;\n this._liveAnnouncer = _liveAnnouncer;\n this._defaultOptions = _defaultOptions;\n /**\n * This position config ensures that the top \"start\" corner of the overlay\n * is aligned with with the top \"start\" of the origin by default (overlapping\n * the trigger completely). If the panel cannot fit below the trigger, it\n * will fall back to a position above the trigger.\n */\n this._positions = [{\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n }, {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top'\n }, {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }, {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n panelClass: 'mat-mdc-select-panel-above'\n }];\n /** Whether or not the overlay panel is open. */\n this._panelOpen = false;\n /** Comparison function to specify which option is displayed. Defaults to object equality. */\n this._compareWith = (o1, o2) => o1 === o2;\n /** Unique id for this input. */\n this._uid = `mat-select-${nextUniqueId++}`;\n /** Current `aria-labelledby` value for the select trigger. */\n this._triggerAriaLabelledBy = null;\n /** Emits whenever the component is destroyed. */\n this._destroy = new Subject();\n /** `View -> model callback called when value changes` */\n this._onChange = () => {};\n /** `View -> model callback called when select has been touched` */\n this._onTouched = () => {};\n /** ID for the DOM node containing the select's value. */\n this._valueId = `mat-select-value-${nextUniqueId++}`;\n /** Emits when the panel element is finished transforming in. */\n this._panelDoneAnimatingStream = new Subject();\n this._overlayPanelClass = this._defaultOptions?.overlayPanelClass || '';\n this._focused = false;\n /** A name for this control that can be used by `mat-form-field`. */\n this.controlType = 'mat-select';\n this._hideSingleSelectionIndicator = this._defaultOptions?.hideSingleSelectionIndicator ?? false;\n this._multiple = false;\n this._disableOptionCentering = this._defaultOptions?.disableOptionCentering ?? false;\n /** Aria label of the select. */\n this.ariaLabel = '';\n /**\n * Width of the panel. If set to `auto`, the panel will match the trigger width.\n * If set to null or an empty string, the panel will grow to match the longest option's text.\n */\n this.panelWidth = this._defaultOptions && typeof this._defaultOptions.panelWidth !== 'undefined' ? this._defaultOptions.panelWidth : 'auto';\n /** Combined stream of all of the child options' change events. */\n this.optionSelectionChanges = defer(() => {\n const options = this.options;\n if (options) {\n return options.changes.pipe(startWith(options), switchMap(() => merge(...options.map(option => option.onSelectionChange))));\n }\n return this._ngZone.onStable.pipe(take(1), switchMap(() => this.optionSelectionChanges));\n });\n /** Event emitted when the select panel has been toggled. */\n this.openedChange = new EventEmitter();\n /** Event emitted when the select has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the select has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the selected value has been changed by the user. */\n this.selectionChange = new EventEmitter();\n /**\n * Event that emits whenever the raw value of the select changes. This is here primarily\n * to facilitate the two-way binding for the `value` input.\n * @docs-private\n */\n this.valueChange = new EventEmitter();\n /**\n * Track which modal we have modified the `aria-owns` attribute of. When the combobox trigger is\n * inside an aria-modal, we apply aria-owns to the parent modal with the `id` of the options\n * panel. Track the modal we have changed so we can undo the changes on destroy.\n */\n this._trackedModal = null;\n // `skipPredicate` determines if key manager should avoid putting a given option in the tab\n // order. Allow disabled list items to receive focus via keyboard to align with WAI ARIA\n // recommendation.\n //\n // Normally WAI ARIA's instructions are to exclude disabled items from the tab order, but it\n // makes a few exceptions for compound widgets.\n //\n // From [Developing a Keyboard Interface](\n // https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/):\n // \"For the following composite widget elements, keep them focusable when disabled: Options in a\n // Listbox...\"\n //\n // The user can focus disabled options using the keyboard, but the user cannot click disabled\n // options.\n this._skipPredicate = option => {\n if (this.panelOpen) {\n // Support keyboard focusing disabled options in an ARIA listbox.\n return false;\n }\n // When the panel is closed, skip over disabled options. Support options via the UP/DOWN arrow\n // keys on a closed select. ARIA listbox interaction pattern is less relevant when the panel is\n // closed.\n return option.disabled;\n };\n if (this.ngControl) {\n // Note: we provide the value accessor through here, instead of\n // the `providers` to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n // Note that we only want to set this when the defaults pass it in, otherwise it should\n // stay as `undefined` so that it falls back to the default in the key manager.\n if (_defaultOptions?.typeaheadDebounceInterval != null) {\n this._typeaheadDebounceInterval = _defaultOptions.typeaheadDebounceInterval;\n }\n this._scrollStrategyFactory = scrollStrategyFactory;\n this._scrollStrategy = this._scrollStrategyFactory();\n this.tabIndex = parseInt(tabIndex) || 0;\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n }\n ngOnInit() {\n this._selectionModel = new SelectionModel(this.multiple);\n this.stateChanges.next();\n // We need `distinctUntilChanged` here, because some browsers will\n // fire the animation end event twice for the same animation. See:\n // https://github.com/angular/angular/issues/24084\n this._panelDoneAnimatingStream.pipe(distinctUntilChanged(), takeUntil(this._destroy)).subscribe(() => this._panelDoneAnimating(this.panelOpen));\n this._viewportRuler.change().pipe(takeUntil(this._destroy)).subscribe(() => {\n if (this.panelOpen) {\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n this._changeDetectorRef.detectChanges();\n }\n });\n }\n ngAfterContentInit() {\n this._initKeyManager();\n this._selectionModel.changed.pipe(takeUntil(this._destroy)).subscribe(event => {\n event.added.forEach(option => option.select());\n event.removed.forEach(option => option.deselect());\n });\n this.options.changes.pipe(startWith(null), takeUntil(this._destroy)).subscribe(() => {\n this._resetOptions();\n this._initializeSelection();\n });\n }\n ngDoCheck() {\n const newAriaLabelledby = this._getTriggerAriaLabelledby();\n const ngControl = this.ngControl;\n // We have to manage setting the `aria-labelledby` ourselves, because part of its value\n // is computed as a result of a content query which can cause this binding to trigger a\n // \"changed after checked\" error.\n if (newAriaLabelledby !== this._triggerAriaLabelledBy) {\n const element = this._elementRef.nativeElement;\n this._triggerAriaLabelledBy = newAriaLabelledby;\n if (newAriaLabelledby) {\n element.setAttribute('aria-labelledby', newAriaLabelledby);\n } else {\n element.removeAttribute('aria-labelledby');\n }\n }\n if (ngControl) {\n // The disabled state might go out of sync if the form group is swapped out. See #17860.\n if (this._previousControl !== ngControl.control) {\n if (this._previousControl !== undefined && ngControl.disabled !== null && ngControl.disabled !== this.disabled) {\n this.disabled = ngControl.disabled;\n }\n this._previousControl = ngControl.control;\n }\n this.updateErrorState();\n }\n }\n ngOnChanges(changes) {\n // Updating the disabled state is handled by `mixinDisabled`, but we need to additionally let\n // the parent form field know to run change detection when the disabled state changes.\n if (changes['disabled'] || changes['userAriaDescribedBy']) {\n this.stateChanges.next();\n }\n if (changes['typeaheadDebounceInterval'] && this._keyManager) {\n this._keyManager.withTypeAhead(this._typeaheadDebounceInterval);\n }\n }\n ngOnDestroy() {\n this._keyManager?.destroy();\n this._destroy.next();\n this._destroy.complete();\n this.stateChanges.complete();\n this._clearFromModal();\n }\n /** Toggles the overlay panel open or closed. */\n toggle() {\n this.panelOpen ? this.close() : this.open();\n }\n /** Opens the overlay panel. */\n open() {\n // It's important that we read this as late as possible, because doing so earlier will\n // return a different element since it's based on queries in the form field which may\n // not have run yet. Also this needs to be assigned before we measure the overlay width.\n if (this._parentFormField) {\n this._preferredOverlayOrigin = this._parentFormField.getConnectedOverlayOrigin();\n }\n this._overlayWidth = this._getOverlayWidth(this._preferredOverlayOrigin);\n if (this._canOpen()) {\n this._applyModalPanelOwnership();\n this._panelOpen = true;\n this._keyManager.withHorizontalOrientation(null);\n this._highlightCorrectOption();\n this._changeDetectorRef.markForCheck();\n }\n // Required for the MDC form field to pick up when the overlay has been opened.\n this.stateChanges.next();\n }\n /**\n * If the autocomplete trigger is inside of an `aria-modal` element, connect\n * that modal to the options panel with `aria-owns`.\n *\n * For some browser + screen reader combinations, when navigation is inside\n * of an `aria-modal` element, the screen reader treats everything outside\n * of that modal as hidden or invisible.\n *\n * This causes a problem when the combobox trigger is _inside_ of a modal, because the\n * options panel is rendered _outside_ of that modal, preventing screen reader navigation\n * from reaching the panel.\n *\n * We can work around this issue by applying `aria-owns` to the modal with the `id` of\n * the options panel. This effectively communicates to assistive technology that the\n * options panel is part of the same interaction as the modal.\n *\n * At time of this writing, this issue is present in VoiceOver.\n * See https://github.com/angular/components/issues/20694\n */\n _applyModalPanelOwnership() {\n // TODO(http://github.com/angular/components/issues/26853): consider de-duplicating this with\n // the `LiveAnnouncer` and any other usages.\n //\n // Note that the selector here is limited to CDK overlays at the moment in order to reduce the\n // section of the DOM we need to look through. This should cover all the cases we support, but\n // the selector can be expanded if it turns out to be too narrow.\n const modal = this._elementRef.nativeElement.closest('body > .cdk-overlay-container [aria-modal=\"true\"]');\n if (!modal) {\n // Most commonly, the autocomplete trigger is not inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n if (this._trackedModal) {\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n }\n addAriaReferencedId(modal, 'aria-owns', panelId);\n this._trackedModal = modal;\n }\n /** Clears the reference to the listbox overlay element from the modal it was added to. */\n _clearFromModal() {\n if (!this._trackedModal) {\n // Most commonly, the autocomplete trigger is not used inside a modal.\n return;\n }\n const panelId = `${this.id}-panel`;\n removeAriaReferencedId(this._trackedModal, 'aria-owns', panelId);\n this._trackedModal = null;\n }\n /** Closes the overlay panel and focuses the host element. */\n close() {\n if (this._panelOpen) {\n this._panelOpen = false;\n this._keyManager.withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr');\n this._changeDetectorRef.markForCheck();\n this._onTouched();\n }\n // Required for the MDC form field to pick up when the overlay has been closed.\n this.stateChanges.next();\n }\n /**\n * Sets the select's value. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param value New value to be written to the model.\n */\n writeValue(value) {\n this._assignValue(value);\n }\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Disables the select. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param isDisabled Sets whether the component is disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n /** Whether or not the overlay panel is open. */\n get panelOpen() {\n return this._panelOpen;\n }\n /** The currently selected option. */\n get selected() {\n return this.multiple ? this._selectionModel?.selected || [] : this._selectionModel?.selected[0];\n }\n /** The value displayed in the trigger. */\n get triggerValue() {\n if (this.empty) {\n return '';\n }\n if (this._multiple) {\n const selectedOptions = this._selectionModel.selected.map(option => option.viewValue);\n if (this._isRtl()) {\n selectedOptions.reverse();\n }\n // TODO(crisbeto): delimiter should be configurable for proper localization.\n return selectedOptions.join(', ');\n }\n return this._selectionModel.selected[0].viewValue;\n }\n /** Whether the element is in RTL mode. */\n _isRtl() {\n return this._dir ? this._dir.value === 'rtl' : false;\n }\n /** Handles all keydown events on the select. */\n _handleKeydown(event) {\n if (!this.disabled) {\n this.panelOpen ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);\n }\n }\n /** Handles keyboard events while the select is closed. */\n _handleClosedKeydown(event) {\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;\n const isOpenKey = keyCode === ENTER || keyCode === SPACE;\n const manager = this._keyManager;\n // Open the select on ALT + arrow key to match the native
\n if (!manager.isTyping() && isOpenKey && !hasModifierKey(event) || (this.multiple || event.altKey) && isArrowKey) {\n event.preventDefault(); // prevents the page from scrolling down when pressing space\n this.open();\n } else if (!this.multiple) {\n const previouslySelectedOption = this.selected;\n manager.onKeydown(event);\n const selectedOption = this.selected;\n // Since the value has changed, we need to announce it ourselves.\n if (selectedOption && previouslySelectedOption !== selectedOption) {\n // We set a duration on the live announcement, because we want the live element to be\n // cleared after a while so that users can't navigate to it using the arrow keys.\n this._liveAnnouncer.announce(selectedOption.viewValue, 10000);\n }\n }\n }\n /** Handles keyboard events when the selected is open. */\n _handleOpenKeydown(event) {\n const manager = this._keyManager;\n const keyCode = event.keyCode;\n const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;\n const isTyping = manager.isTyping();\n if (isArrowKey && event.altKey) {\n // Close the select on ALT + arrow key to match the native \n event.preventDefault();\n this.close();\n // Don't do anything in this case if the user is typing,\n // because the typing sequence can include the space key.\n } else if (!isTyping && (keyCode === ENTER || keyCode === SPACE) && manager.activeItem && !hasModifierKey(event)) {\n event.preventDefault();\n manager.activeItem._selectViaInteraction();\n } else if (!isTyping && this._multiple && keyCode === A && event.ctrlKey) {\n event.preventDefault();\n const hasDeselectedOptions = this.options.some(opt => !opt.disabled && !opt.selected);\n this.options.forEach(option => {\n if (!option.disabled) {\n hasDeselectedOptions ? option.select() : option.deselect();\n }\n });\n } else {\n const previouslyFocusedIndex = manager.activeItemIndex;\n manager.onKeydown(event);\n if (this._multiple && isArrowKey && event.shiftKey && manager.activeItem && manager.activeItemIndex !== previouslyFocusedIndex) {\n manager.activeItem._selectViaInteraction();\n }\n }\n }\n _onFocus() {\n if (!this.disabled) {\n this._focused = true;\n this.stateChanges.next();\n }\n }\n /**\n * Calls the touched callback only if the panel is closed. Otherwise, the trigger will\n * \"blur\" to the panel when it opens, causing a false positive.\n */\n _onBlur() {\n this._focused = false;\n this._keyManager?.cancelTypeahead();\n if (!this.disabled && !this.panelOpen) {\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n }\n /**\n * Callback that is invoked when the overlay panel has been attached.\n */\n _onAttached() {\n this._overlayDir.positionChange.pipe(take(1)).subscribe(() => {\n this._changeDetectorRef.detectChanges();\n this._positioningSettled();\n });\n }\n /** Returns the theme to be used on the panel. */\n _getPanelTheme() {\n return this._parentFormField ? `mat-${this._parentFormField.color}` : '';\n }\n /** Whether the select has a value. */\n get empty() {\n return !this._selectionModel || this._selectionModel.isEmpty();\n }\n _initializeSelection() {\n // Defer setting the value in order to avoid the \"Expression\n // has changed after it was checked\" errors from Angular.\n Promise.resolve().then(() => {\n if (this.ngControl) {\n this._value = this.ngControl.value;\n }\n this._setSelectionByValue(this._value);\n this.stateChanges.next();\n });\n }\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n _setSelectionByValue(value) {\n this.options.forEach(option => option.setInactiveStyles());\n this._selectionModel.clear();\n if (this.multiple && value) {\n if (!Array.isArray(value) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw getMatSelectNonArrayValueError();\n }\n value.forEach(currentValue => this._selectOptionByValue(currentValue));\n this._sortValues();\n } else {\n const correspondingOption = this._selectOptionByValue(value);\n // Shift focus to the active item. Note that we shouldn't do this in multiple\n // mode, because we don't know what option the user interacted with last.\n if (correspondingOption) {\n this._keyManager.updateActiveItem(correspondingOption);\n } else if (!this.panelOpen) {\n // Otherwise reset the highlighted option. Note that we only want to do this while\n // closed, because doing it while open can shift the user's focus unnecessarily.\n this._keyManager.updateActiveItem(-1);\n }\n }\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Finds and selects and option based on its value.\n * @returns Option that has the corresponding value.\n */\n _selectOptionByValue(value) {\n const correspondingOption = this.options.find(option => {\n // Skip options that are already in the model. This allows us to handle cases\n // where the same primitive value is selected multiple times.\n if (this._selectionModel.isSelected(option)) {\n return false;\n }\n try {\n // Treat null as a special reset value.\n return option.value != null && this._compareWith(option.value, value);\n } catch (error) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // Notify developers of errors in their comparator.\n console.warn(error);\n }\n return false;\n }\n });\n if (correspondingOption) {\n this._selectionModel.select(correspondingOption);\n }\n return correspondingOption;\n }\n /** Assigns a specific value to the select. Returns whether the value has changed. */\n _assignValue(newValue) {\n // Always re-assign an array, because it might have been mutated.\n if (newValue !== this._value || this._multiple && Array.isArray(newValue)) {\n if (this.options) {\n this._setSelectionByValue(newValue);\n }\n this._value = newValue;\n return true;\n }\n return false;\n }\n /** Gets how wide the overlay panel should be. */\n _getOverlayWidth(preferredOrigin) {\n if (this.panelWidth === 'auto') {\n const refToMeasure = preferredOrigin instanceof CdkOverlayOrigin ? preferredOrigin.elementRef : preferredOrigin || this._elementRef;\n return refToMeasure.nativeElement.getBoundingClientRect().width;\n }\n return this.panelWidth === null ? '' : this.panelWidth;\n }\n /** Syncs the parent state with the individual options. */\n _syncParentProperties() {\n if (this.options) {\n for (const option of this.options) {\n option._changeDetectorRef.markForCheck();\n }\n }\n }\n /** Sets up a key manager to listen to keyboard events on the overlay panel. */\n _initKeyManager() {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withTypeAhead(this._typeaheadDebounceInterval).withVerticalOrientation().withHorizontalOrientation(this._isRtl() ? 'rtl' : 'ltr').withHomeAndEnd().withPageUpDown().withAllowedModifierKeys(['shiftKey']).skipPredicate(this._skipPredicate);\n this._keyManager.tabOut.subscribe(() => {\n if (this.panelOpen) {\n // Select the active item when tabbing away. This is consistent with how the native\n // select behaves. Note that we only want to do this in single selection mode.\n if (!this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n // Restore focus to the trigger before closing. Ensures that the focus\n // position won't be lost if the user got focus into the overlay.\n this.focus();\n this.close();\n }\n });\n this._keyManager.change.subscribe(() => {\n if (this._panelOpen && this.panel) {\n this._scrollOptionIntoView(this._keyManager.activeItemIndex || 0);\n } else if (!this._panelOpen && !this.multiple && this._keyManager.activeItem) {\n this._keyManager.activeItem._selectViaInteraction();\n }\n });\n }\n /** Drops current option subscriptions and IDs and resets from scratch. */\n _resetOptions() {\n const changedOrDestroyed = merge(this.options.changes, this._destroy);\n this.optionSelectionChanges.pipe(takeUntil(changedOrDestroyed)).subscribe(event => {\n this._onSelect(event.source, event.isUserInput);\n if (event.isUserInput && !this.multiple && this._panelOpen) {\n this.close();\n this.focus();\n }\n });\n // Listen to changes in the internal state of the options and react accordingly.\n // Handles cases like the labels of the selected options changing.\n merge(...this.options.map(option => option._stateChanges)).pipe(takeUntil(changedOrDestroyed)).subscribe(() => {\n // `_stateChanges` can fire as a result of a change in the label's DOM value which may\n // be the result of an expression changing. We have to use `detectChanges` in order\n // to avoid \"changed after checked\" errors (see #14793).\n this._changeDetectorRef.detectChanges();\n this.stateChanges.next();\n });\n }\n /** Invoked when an option is clicked. */\n _onSelect(option, isUserInput) {\n const wasSelected = this._selectionModel.isSelected(option);\n if (option.value == null && !this._multiple) {\n option.deselect();\n this._selectionModel.clear();\n if (this.value != null) {\n this._propagateChanges(option.value);\n }\n } else {\n if (wasSelected !== option.selected) {\n option.selected ? this._selectionModel.select(option) : this._selectionModel.deselect(option);\n }\n if (isUserInput) {\n this._keyManager.setActiveItem(option);\n }\n if (this.multiple) {\n this._sortValues();\n if (isUserInput) {\n // In case the user selected the option with their mouse, we\n // want to restore focus back to the trigger, in order to\n // prevent the select keyboard controls from clashing with\n // the ones from `mat-option`.\n this.focus();\n }\n }\n }\n if (wasSelected !== this._selectionModel.isSelected(option)) {\n this._propagateChanges();\n }\n this.stateChanges.next();\n }\n /** Sorts the selected values in the selected based on their order in the panel. */\n _sortValues() {\n if (this.multiple) {\n const options = this.options.toArray();\n this._selectionModel.sort((a, b) => {\n return this.sortComparator ? this.sortComparator(a, b, options) : options.indexOf(a) - options.indexOf(b);\n });\n this.stateChanges.next();\n }\n }\n /** Emits change event to set the model value. */\n _propagateChanges(fallbackValue) {\n let valueToEmit;\n if (this.multiple) {\n valueToEmit = this.selected.map(option => option.value);\n } else {\n valueToEmit = this.selected ? this.selected.value : fallbackValue;\n }\n this._value = valueToEmit;\n this.valueChange.emit(valueToEmit);\n this._onChange(valueToEmit);\n this.selectionChange.emit(this._getChangeEvent(valueToEmit));\n this._changeDetectorRef.markForCheck();\n }\n /**\n * Highlights the selected item. If no option is selected, it will highlight\n * the first *enabled* option.\n */\n _highlightCorrectOption() {\n if (this._keyManager) {\n if (this.empty) {\n // Find the index of the first *enabled* option. Avoid calling `_keyManager.setActiveItem`\n // because it activates the first option that passes the skip predicate, rather than the\n // first *enabled* option.\n let firstEnabledOptionIndex = -1;\n for (let index = 0; index < this.options.length; index++) {\n const option = this.options.get(index);\n if (!option.disabled) {\n firstEnabledOptionIndex = index;\n break;\n }\n }\n this._keyManager.setActiveItem(firstEnabledOptionIndex);\n } else {\n this._keyManager.setActiveItem(this._selectionModel.selected[0]);\n }\n }\n }\n /** Whether the panel is allowed to open. */\n _canOpen() {\n return !this._panelOpen && !this.disabled && this.options?.length > 0;\n }\n /** Focuses the select element. */\n focus(options) {\n this._elementRef.nativeElement.focus(options);\n }\n /** Gets the aria-labelledby for the select panel. */\n _getPanelAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n const labelExpression = labelId ? labelId + ' ' : '';\n return this.ariaLabelledby ? labelExpression + this.ariaLabelledby : labelId;\n }\n /** Determines the `aria-activedescendant` to be set on the host. */\n _getAriaActiveDescendant() {\n if (this.panelOpen && this._keyManager && this._keyManager.activeItem) {\n return this._keyManager.activeItem.id;\n }\n return null;\n }\n /** Gets the aria-labelledby of the select component trigger. */\n _getTriggerAriaLabelledby() {\n if (this.ariaLabel) {\n return null;\n }\n const labelId = this._parentFormField?.getLabelId();\n let value = (labelId ? labelId + ' ' : '') + this._valueId;\n if (this.ariaLabelledby) {\n value += ' ' + this.ariaLabelledby;\n }\n return value;\n }\n /** Called when the overlay panel is done animating. */\n _panelDoneAnimating(isOpen) {\n this.openedChange.emit(isOpen);\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids) {\n if (ids.length) {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n } else {\n this._elementRef.nativeElement.removeAttribute('aria-describedby');\n }\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n onContainerClick() {\n this.focus();\n this.open();\n }\n /**\n * Implemented as part of MatFormFieldControl.\n * @docs-private\n */\n get shouldLabelFloat() {\n // Since the panel doesn't overlap the trigger, we\n // want the label to only float when there's a value.\n return this.panelOpen || !this.empty || this.focused && !!this.placeholder;\n }\n static {\n this.ɵfac = function MatSelect_Factory(t) {\n return new (t || MatSelect)(i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.ErrorStateMatcher), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i3.Directionality, 8), i0.ɵɵdirectiveInject(i4.NgForm, 8), i0.ɵɵdirectiveInject(i4.FormGroupDirective, 8), i0.ɵɵdirectiveInject(MAT_FORM_FIELD, 8), i0.ɵɵdirectiveInject(i4.NgControl, 10), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SELECT_SCROLL_STRATEGY), i0.ɵɵdirectiveInject(i5.LiveAnnouncer), i0.ɵɵdirectiveInject(MAT_SELECT_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelect,\n selectors: [[\"mat-select\"]],\n contentQueries: function MatSelect_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MAT_SELECT_TRIGGER, 5);\n i0.ɵɵcontentQuery(dirIndex, MatOption, 5);\n i0.ɵɵcontentQuery(dirIndex, MAT_OPTGROUP, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTrigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.options = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionGroups = _t);\n }\n },\n viewQuery: function MatSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(CdkConnectedOverlay, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.trigger = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._overlayDir = _t.first);\n }\n },\n hostAttrs: [\"role\", \"combobox\", \"aria-autocomplete\", \"none\", \"aria-haspopup\", \"listbox\", \"ngSkipHydration\", \"\", 1, \"mat-mdc-select\"],\n hostVars: 19,\n hostBindings: function MatSelect_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function MatSelect_keydown_HostBindingHandler($event) {\n return ctx._handleKeydown($event);\n })(\"focus\", function MatSelect_focus_HostBindingHandler() {\n return ctx._onFocus();\n })(\"blur\", function MatSelect_blur_HostBindingHandler() {\n return ctx._onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"id\", ctx.id)(\"tabindex\", ctx.tabIndex)(\"aria-controls\", ctx.panelOpen ? ctx.id + \"-panel\" : null)(\"aria-expanded\", ctx.panelOpen)(\"aria-label\", ctx.ariaLabel || null)(\"aria-required\", ctx.required.toString())(\"aria-disabled\", ctx.disabled.toString())(\"aria-invalid\", ctx.errorState)(\"aria-activedescendant\", ctx._getAriaActiveDescendant());\n i0.ɵɵclassProp(\"mat-mdc-select-disabled\", ctx.disabled)(\"mat-mdc-select-invalid\", ctx.errorState)(\"mat-mdc-select-required\", ctx.required)(\"mat-mdc-select-empty\", ctx.empty)(\"mat-mdc-select-multiple\", ctx.multiple);\n }\n },\n inputs: {\n disabled: \"disabled\",\n disableRipple: \"disableRipple\",\n tabIndex: \"tabIndex\",\n userAriaDescribedBy: [\"aria-describedby\", \"userAriaDescribedBy\"],\n panelClass: \"panelClass\",\n hideSingleSelectionIndicator: \"hideSingleSelectionIndicator\",\n placeholder: \"placeholder\",\n required: \"required\",\n multiple: \"multiple\",\n disableOptionCentering: \"disableOptionCentering\",\n compareWith: \"compareWith\",\n value: \"value\",\n ariaLabel: [\"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"],\n errorStateMatcher: \"errorStateMatcher\",\n typeaheadDebounceInterval: \"typeaheadDebounceInterval\",\n sortComparator: \"sortComparator\",\n id: \"id\",\n panelWidth: \"panelWidth\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n _closedStream: \"closed\",\n selectionChange: \"selectionChange\",\n valueChange: \"valueChange\"\n },\n exportAs: [\"matSelect\"],\n features: [i0.ɵɵProvidersFeature([{\n provide: MatFormFieldControl,\n useExisting: MatSelect\n }, {\n provide: MAT_OPTION_PARENT_COMPONENT,\n useExisting: MatSelect\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 11,\n vars: 8,\n consts: [[\"cdk-overlay-origin\", \"\", 1, \"mat-mdc-select-trigger\", 3, \"click\"], [\"fallbackOverlayOrigin\", \"cdkOverlayOrigin\", \"trigger\", \"\"], [1, \"mat-mdc-select-value\"], [\"class\", \"mat-mdc-select-placeholder mat-mdc-select-min-line\"], [1, \"mat-mdc-select-arrow-wrapper\"], [1, \"mat-mdc-select-arrow\"], [\"viewBox\", \"0 0 24 24\", \"width\", \"24px\", \"height\", \"24px\", \"focusable\", \"false\", \"aria-hidden\", \"true\"], [\"d\", \"M7 10l5 5 5-5z\"], [\"cdk-connected-overlay\", \"\", \"cdkConnectedOverlayLockPosition\", \"\", \"cdkConnectedOverlayHasBackdrop\", \"\", \"cdkConnectedOverlayBackdropClass\", \"cdk-overlay-transparent-backdrop\", 3, \"cdkConnectedOverlayPanelClass\", \"cdkConnectedOverlayScrollStrategy\", \"cdkConnectedOverlayOrigin\", \"cdkConnectedOverlayOpen\", \"cdkConnectedOverlayPositions\", \"cdkConnectedOverlayWidth\", \"backdropClick\", \"attach\", \"detach\"], [1, \"mat-mdc-select-placeholder\", \"mat-mdc-select-min-line\"], [1, \"mat-mdc-select-value-text\"], [1, \"mat-mdc-select-min-line\"], [\"role\", \"listbox\", \"tabindex\", \"-1\", 3, \"ngClass\", \"keydown\"], [\"panel\", \"\"]],\n template: function MatSelect_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵlistener(\"click\", function MatSelect_Template_div_click_0_listener() {\n return ctx.toggle();\n });\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵtemplate(4, MatSelect_Conditional_4_Template, 2, 1, \"span\", 3)(5, MatSelect_Conditional_5_Template, 3, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 4)(7, \"div\", 5);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(8, \"svg\", 6);\n i0.ɵɵelement(9, \"path\", 7);\n i0.ɵɵelementEnd()()()();\n i0.ɵɵtemplate(10, MatSelect_ng_template_10_Template, 3, 9, \"ng-template\", 8);\n i0.ɵɵlistener(\"backdropClick\", function MatSelect_Template_ng_template_backdropClick_10_listener() {\n return ctx.close();\n })(\"attach\", function MatSelect_Template_ng_template_attach_10_listener() {\n return ctx._onAttached();\n })(\"detach\", function MatSelect_Template_ng_template_detach_10_listener() {\n return ctx.close();\n });\n }\n if (rf & 2) {\n const _r0 = i0.ɵɵreference(1);\n i0.ɵɵadvance(3);\n i0.ɵɵattribute(\"id\", ctx._valueId);\n i0.ɵɵadvance(1);\n i0.ɵɵconditional(4, ctx.empty ? 4 : 5);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"cdkConnectedOverlayPanelClass\", ctx._overlayPanelClass)(\"cdkConnectedOverlayScrollStrategy\", ctx._scrollStrategy)(\"cdkConnectedOverlayOrigin\", ctx._preferredOverlayOrigin || _r0)(\"cdkConnectedOverlayOpen\", ctx.panelOpen)(\"cdkConnectedOverlayPositions\", ctx._positions)(\"cdkConnectedOverlayWidth\", ctx._overlayWidth);\n }\n },\n dependencies: [i6.NgClass, i7.CdkConnectedOverlay, i7.CdkOverlayOrigin],\n styles: [\".mat-mdc-select{display:inline-block;width:100%;outline:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;color:var(--mat-select-enabled-trigger-text-color);font-family:var(--mat-select-trigger-text-font);line-height:var(--mat-select-trigger-text-line-height);font-size:var(--mat-select-trigger-text-size);font-weight:var(--mat-select-trigger-text-weight);letter-spacing:var(--mat-select-trigger-text-tracking)}.mat-mdc-select-disabled{color:var(--mat-select-disabled-trigger-text-color)}.mat-mdc-select-trigger{display:inline-flex;align-items:center;cursor:pointer;position:relative;box-sizing:border-box;width:100%}.mat-mdc-select-disabled .mat-mdc-select-trigger{-webkit-user-select:none;user-select:none;cursor:default}.mat-mdc-select-value{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-mdc-select-value-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-select-arrow-wrapper{height:24px;flex-shrink:0;display:inline-flex;align-items:center}.mat-form-field-appearance-fill .mat-mdc-select-arrow-wrapper{transform:translateY(-8px)}.mat-form-field-appearance-fill .mdc-text-field--no-label .mat-mdc-select-arrow-wrapper{transform:none}.mat-mdc-select-arrow{width:10px;height:5px;position:relative;color:var(--mat-select-enabled-arrow-color)}.mat-mdc-form-field.mat-focused .mat-mdc-select-arrow{color:var(--mat-select-focused-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-invalid .mat-mdc-select-arrow{color:var(--mat-select-invalid-arrow-color)}.mat-mdc-form-field .mat-mdc-select.mat-mdc-select-disabled .mat-mdc-select-arrow{color:var(--mat-select-disabled-arrow-color)}.mat-mdc-select-arrow svg{fill:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:CanvasText}.mat-mdc-select-disabled .cdk-high-contrast-active .mat-mdc-select-arrow svg{fill:GrayText}div.mat-mdc-select-panel{box-shadow:0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);width:100%;max-height:275px;outline:0;overflow:auto;padding:8px 0;border-radius:4px;box-sizing:border-box;position:static;background-color:var(--mat-select-panel-background-color)}.cdk-high-contrast-active div.mat-mdc-select-panel{outline:solid 1px}.cdk-overlay-pane:not(.mat-mdc-select-panel-above) div.mat-mdc-select-panel{border-top-left-radius:0;border-top-right-radius:0;transform-origin:top center}.mat-mdc-select-panel-above div.mat-mdc-select-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;transform-origin:bottom center}.mat-mdc-select-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);color:var(--mat-select-placeholder-text-color)}._mat-animation-noopable .mat-mdc-select-placeholder{transition:none}.mat-form-field-hide-placeholder .mat-mdc-select-placeholder{color:rgba(0,0,0,0);-webkit-text-fill-color:rgba(0,0,0,0);transition:none;display:block}.mat-mdc-form-field-type-mat-select:not(.mat-form-field-disabled) .mat-mdc-text-field-wrapper{cursor:pointer}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mat-mdc-floating-label{max-width:calc(100% - 18px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-fill .mdc-floating-label--float-above{max-width:calc(100%/0.75 - 24px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-notched-outline__notch{max-width:calc(100% - 60px)}.mat-mdc-form-field-type-mat-select.mat-form-field-appearance-outline .mdc-text-field--label-floating .mdc-notched-outline__notch{max-width:calc(100% - 24px)}.mat-mdc-select-min-line:empty::before{content:\\\" \\\";white-space:pre;width:1px;display:inline-block;visibility:hidden}\"],\n encapsulation: 2,\n data: {\n animation: [matSelectAnimations.transformPanel]\n },\n changeDetection: 0\n });\n }\n }\n return MatSelect;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Allows the user to customize the trigger that is displayed when the select has a value.\n */\nlet MatSelectTrigger = /*#__PURE__*/(() => {\n class MatSelectTrigger {\n static {\n this.ɵfac = function MatSelectTrigger_Factory(t) {\n return new (t || MatSelectTrigger)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectTrigger,\n selectors: [[\"mat-select-trigger\"]],\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_SELECT_TRIGGER,\n useExisting: MatSelectTrigger\n }])]\n });\n }\n }\n return MatSelectTrigger;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSelectModule = /*#__PURE__*/(() => {\n class MatSelectModule {\n static {\n this.ɵfac = function MatSelectModule_Factory(t) {\n return new (t || MatSelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [MAT_SELECT_SCROLL_STRATEGY_PROVIDER],\n imports: [CommonModule, OverlayModule, MatOptionModule, MatCommonModule, CdkScrollableModule, MatFormFieldModule, MatOptionModule, MatCommonModule]\n });\n }\n }\n return MatSelectModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SELECT_CONFIG, MAT_SELECT_SCROLL_STRATEGY, MAT_SELECT_SCROLL_STRATEGY_PROVIDER, MAT_SELECT_SCROLL_STRATEGY_PROVIDER_FACTORY, MAT_SELECT_TRIGGER, MatSelect, MatSelectChange, MatSelectModule, MatSelectTrigger, matSelectAnimations };\n","import { 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, Optional, Input, 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;\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 {\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._tooltipComponent = TooltipComponent;\n this._viewportMargin = 8;\n this._cssClassPrefix = 'mat-mdc';\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 this._viewportMargin = MIN_VIEWPORT_TOOLTIP_THRESHOLD;\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 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 /**\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 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), 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 inputs: {\n position: [\"matTooltipPosition\", \"position\"],\n positionAtOrigin: [\"matTooltipPositionAtOrigin\", \"positionAtOrigin\"],\n disabled: [\"matTooltipDisabled\", \"disabled\"],\n showDelay: [\"matTooltipShowDelay\", \"showDelay\"],\n hideDelay: [\"matTooltipHideDelay\", \"hideDelay\"],\n touchGestures: [\"matTooltipTouchGestures\", \"touchGestures\"],\n message: [\"matTooltip\", \"message\"],\n tooltipClass: [\"matTooltipClass\", \"tooltipClass\"]\n },\n exportAs: [\"matTooltip\"]\n });\n }\n }\n return MatTooltip;\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 {\n constructor(_changeDetectorRef, _elementRef, animationMode) {\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n /* Whether the tooltip text overflows to multiple lines */\n this._isMultiline = false;\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 /** Name of the show animation and the class that toggles it. */\n this._showAnimation = 'mat-mdc-tooltip-show';\n /** Name of the hide animation and the class that toggles it. */\n this._hideAnimation = 'mat-mdc-tooltip-hide';\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 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 /** 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 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 decls: 4,\n vars: 4,\n consts: [[1, \"mdc-tooltip\", \"mdc-tooltip--shown\", \"mat-mdc-tooltip\", 3, \"ngClass\", \"animationend\"], [\"tooltip\", \"\"], [1, \"mdc-tooltip__surface\", \"mdc-tooltip__surface-animation\"]],\n template: function TooltipComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0, 1);\n i0.ɵɵlistener(\"animationend\", function TooltipComponent_Template_div_animationend_0_listener($event) {\n return 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-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, getMatTooltipInvalidPositionError, matTooltipAnimations };\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n Renderer2,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport {\n MatCheckboxChange,\n MatCheckboxModule,\n} from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { partitionArray } from '../../shared/util';\n\ninterface Option {\n label: string;\n value: any;\n showTooltip?: boolean;\n tooltipTranslationKey?: string;\n disabled?: boolean;\n}\n@Component({\n selector: 'app-custom-select',\n standalone: true,\n imports: [\n CommonModule,\n MatSelectModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n TranslateModule,\n MatCheckboxModule,\n MatTooltipModule,\n ],\n templateUrl: './custom-select.component.html',\n styleUrls: ['./custom-select.component.scss'],\n})\nexport class CustomSelectComponent implements AfterViewInit {\n @Input() label!: string;\n @Input() optionList!: Array;\n @Input() multiSelect?: boolean = false;\n @Input() selectAllOptionVisible?: boolean = false;\n @Input() backgroundColor?: string = 'var(--bosch-gray-90)';\n @Input() wrapperHeight?: string = '48px';\n @Input() control: FormControl = new FormControl();\n\n _disabled: boolean = false;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n toggleSelection(event: MatCheckboxChange) {\n try {\n const [disabledOptions, enabledOptions] = partitionArray(\n this.optionList,\n (item) => !!item.disabled\n );\n\n const enabledValues = enabledOptions.map(\n (enabledOption) => enabledOption.value\n );\n const disabledValues = disabledOptions.map(\n (disabledOption) => disabledOption.value\n );\n\n const currentValue = this.control.value || [];\n\n const untouchables = currentValue.filter((value: string) =>\n disabledValues.includes(value)\n );\n\n const updatedValue = event.checked\n ? [...enabledValues, ...untouchables]\n : [...untouchables];\n\n this.control.patchValue(updatedValue);\n } catch (error) {\n console.info(\n 'Error - An error occurred during the toggle selection process'\n );\n }\n }\n\n optionListTrackByFn(index: number, item: Option) {\n return item.label;\n }\n\n ngAfterViewInit(): void {\n const elements = this.elementRef.nativeElement.querySelectorAll(\n 'mat-form-field > div.mat-mdc-text-field-wrapper'\n );\n elements.forEach((element: HTMLElement) => {\n this.renderer.setStyle(element, 'background-color', this.backgroundColor);\n this.renderer.setStyle(element, 'height', this.wrapperHeight);\n });\n\n const subElements = this.elementRef.nativeElement.querySelectorAll(\n 'div.mat-mdc-form-field-subscript-wrapper.mat-mdc-form-field-bottom-align'\n );\n subElements.forEach((subElement: HTMLElement) => {\n this.renderer.setStyle(subElement, 'display', 'none');\n });\n }\n}\n","\n {{ label }} \n \n \n {{ 'interface.all' | translate }} \n\n {{ option.label }} \n \n \n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { env } from 'src/environments/environment';\nimport { Invitation, InviteUser, User } from '../models/user.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService {\n readonly #baseUrl: string;\n\n constructor(private logger: LoggerService, private httpClient: HttpClient) {\n this.#baseUrl = env.API_URL;\n this.logger.log('UserService.constructor: baseUrl = ', `${this.#baseUrl}`);\n }\n\n /**\n * @description find all users for a given subscription\n * @returns a FindError or array of User objects\n */\n findAllUsers(id: string) {\n this.logger.log(\n 'UserService.findAllUsers: ',\n `${this.#baseUrl}/subscriptions/users`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/subscriptions/users`)\n .pipe(first());\n }\n\n /**\n * @description retrieve the profile of the currently logged-in user\n * @returns a FindError or user object\n */\n findUserProfile() {\n this.logger.log(\n 'UserService.findUserProfile: ',\n `${this.#baseUrl}/userprofile`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/userprofile`)\n .pipe(first());\n }\n\n update(user: User) {\n this.logger.debug('UserService.update: user=', user);\n const url = `${this.#baseUrl}/userprofile`;\n\n this.logger.debug('UserService.update: userDto=', user);\n return this.httpClient.put(url, user, { observe: 'body' }).pipe(\n first(),\n map((_) => user)\n );\n }\n\n createInvite(user: InviteUser) {\n this.logger.debug('UserService.createInvite: message=', user);\n const url = `${this.#baseUrl}/subscriptions/invitations`;\n this.logger.debug('UserService.createInvite: messageDto=', user);\n return this.httpClient.put(url, user, { observe: 'body' }).pipe(first());\n }\n\n redeemCode(code: string) {\n this.logger.debug('UserService.createInvite: message=', code);\n const url = `${this.#baseUrl}/subscriptions/invitations/redeem/${code}`;\n this.logger.debug('UserService.createInvite: messageDto=', code);\n return this.httpClient.put(url, { observe: 'body' });\n }\n\n fetchAllInvites() {\n this.logger.debug('UserService.fetchAllInvites: message=');\n const url = `${this.#baseUrl}/subscriptions/invitations`;\n return this.httpClient\n .get(url, { observe: 'body' })\n .pipe(first());\n }\n\n deleteUser(user: User) {\n this.logger.debug('UserService.deleteUser: message=');\n\n const url = `${this.#baseUrl}/subscriptions/${\n user.newlyInvitedUser ? 'invitations' : 'users'\n }/${user.id}`;\n\n return this.httpClient.delete(url, { observe: 'body' }).pipe(\n first(),\n map((_) => user.id)\n );\n }\n\n editUserRoles(user: User) {\n this.logger.debug('UserService.editUser: message=');\n\n const url = `${this.#baseUrl}/subscriptions/users/${user.id}`;\n\n return this.httpClient\n .patch(\n url,\n user.roles.map((r) => r.id),\n { observe: 'body' }\n )\n .pipe(\n first(),\n map((_) => user)\n );\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nexport class ToastMessageInfo {\n type!: ToastType;\n message!: string;\n messageIsHTML? = false;\n}\n\nexport enum ToastType {\n Success,\n Error,\n Info,\n Warning,\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { BehaviorSubject } from 'rxjs';\nimport { v4 as uuidV4 } from 'uuid';\nimport { DEFAULT_TOAST_DISMISS_TIME_MS } from '../../app.const';\nimport { ToastMessageInfo, ToastType } from './toast-message.model';\nexport interface ToastMessageExtended extends ToastMessageInfo {\n id: string;\n}\n@Injectable({ providedIn: 'root' })\nexport class ToastMessageService {\n notifications$ = new BehaviorSubject>([]);\n\n constructor(private domSanitizer: DomSanitizer) {}\n /**\n * Displays a notification message and adds it to the list of active notifications.\n *\n * @param messageInfo - Information about the message to display.\n * @param customDismissTime - (Optional) Custom dismissal time for the notification.\n */\n showNotification({\n messageInfo,\n customDismissTime,\n }: {\n messageInfo: ToastMessageInfo;\n customDismissTime?: number;\n }) {\n // Generate a unique ID for the notification.\n const id = uuidV4();\n\n // Get the current list of notifications.\n const currentNotifications = this.notifications$.getValue();\n\n // Clone the message to prevent modification of the original.\n const modifiedMessage = { ...messageInfo };\n\n // If the message contains HTML, sanitize it to prevent XSS attacks.\n if (modifiedMessage.messageIsHTML) {\n modifiedMessage.message = this.domSanitizer.sanitize(\n SecurityContext.HTML,\n modifiedMessage.message\n ) as string;\n }\n\n // Create a new list of notifications with the new notification added.\n const newNotificationList = [\n ...currentNotifications.slice(),\n { ...modifiedMessage, id },\n ];\n\n // Update the observable with the new list of notifications.\n this.notifications$.next(newNotificationList);\n\n // Start a timer to dismiss the notification after a set time.\n this.startNotificationDismissTimer(id, customDismissTime);\n }\n\n /**\n * Starts a timer to dismiss a notification after a specified time.\n *\n * @param id - The ID of the notification to dismiss.\n * @param customDismissTime - (Optional) Custom dismissal time for the notification.\n */\n private startNotificationDismissTimer(\n id: string,\n customDismissTime?: number\n ) {\n // Set a timeout to remove the notification from the list after the specified time.\n const timeout = setTimeout(() => {\n const currentNotifications = this.notifications$.getValue();\n // Filter out the notification with the specified ID.\n const filteredNotifications = currentNotifications.filter(\n (n) => n.id !== id\n );\n // Update the observable with the filtered list, effectively dismissing the notification.\n this.notifications$.next(filteredNotifications);\n // Clear the timeout to prevent any further dismissal attempts.\n clearTimeout(timeout);\n }, customDismissTime || DEFAULT_TOAST_DISMISS_TIME_MS);\n }\n\n showError(message: string) {\n this.showNotification({\n messageInfo: {\n message,\n type: ToastType.Error,\n },\n });\n }\n\n showSuccess(message: string) {\n this.showNotification({\n messageInfo: {\n message,\n type: ToastType.Success,\n },\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { interval, Subscription, takeUntil, timer } from 'rxjs';\n@Component({\n selector: 'copilot-typing-effect',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './typing-effect.component.html',\n styleUrls: ['./typing-effect.component.scss'],\n})\nexport class TypingEffectComponent {\n dynamicText = ''; // The animated dots\n typingSubscription: Subscription | undefined; // Subscription for the typing animation\n\n ngOnInit() {\n this.typingSubscription = this.typeText();\n }\n\n ngOnDestroy() {\n this.stopTypingEffect();\n }\n\n stopTypingEffect() {\n if (this.typingSubscription) {\n this.typingSubscription.unsubscribe();\n }\n }\n\n typeText() {\n return interval(200)\n .pipe(takeUntil(timer(4000)))\n .subscribe(() => {\n this.dynamicText += '.';\n });\n }\n}\n","\n Thinking{{ dynamicText }} \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 * 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\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\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, 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: [\"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, 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: [\"fxShrink\", \"shrink\"],\n grow: [\"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, 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: [\"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: [\"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: [\"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: [\"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: [\"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: [\"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: [\"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 { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-user-query-input',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n TranslateModule,\n ],\n templateUrl: './user-query-input.component.html',\n styleUrls: ['./user-query-input.component.scss'],\n})\nexport class UserQueryInputComponent implements OnInit {\n @Input() disabled!: boolean;\n @Input() maxLength!: number;\n @Output() userInput = new EventEmitter();\n inputControl = new FormControl({ value: '', disabled: false });\n\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {}\n ngOnInit() {\n this.inputControl.valueChanges.subscribe((value) => {\n if (value && value.length > this.maxLength) {\n this.inputControl.setValue(value.substring(0, this.maxLength), {\n emitEvent: false,\n });\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('disabled' in changes) {\n const newDisabledValue = changes['disabled'].currentValue;\n if (newDisabledValue) {\n this.inputControl.disable();\n } else {\n this.inputControl.enable();\n this.focusOnInput();\n }\n }\n }\n\n emitValue(value: string) {\n if (this.disabled) {\n return;\n }\n this.userInput.emit(value);\n this.inputControl.reset();\n }\n\n onEnterPressed() {\n this.emitValue(this.inputControl.value || '');\n }\n\n private focusOnInput() {\n // Use Renderer2 to focus on the input control\n this.renderer\n .selectRootElement(\n this.elementRef.nativeElement.querySelector('textarea')\n )\n .focus();\n }\n}\n","\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { tap } from 'rxjs';\nimport { CopilotService } from '../../../shared/services/copilot.service';\nimport { TypingEffectComponent } from '../typing-effect/typing-effect.component';\nimport { UserQueryInputComponent } from '../user-query-input/user-query-input.component';\n\n@Component({\n selector: 'app-chat-window',\n standalone: true,\n imports: [\n CommonModule,\n UserQueryInputComponent,\n TranslateModule,\n TypingEffectComponent,\n ],\n templateUrl: './chat-window.component.html',\n styleUrls: ['./chat-window.component.scss'],\n})\nexport class ChatWindowComponent {\n @ViewChild('messagesContainer') messagesContainer!: ElementRef;\n @Output() closed = new EventEmitter();\n\n readonly maxUserInput = 250;\n messages$ = this.copilotService.messages.pipe(\n tap((messages) => {\n if (messages.length > 0) this.scrollToBottom();\n })\n );\n constructor(public copilotService: CopilotService) {}\n\n async onUserInput(userMessage: string) {\n if (!userMessage) {\n return;\n }\n\n this.copilotService.sendUserMessage(userMessage);\n }\n\n scrollToBottom() {\n setTimeout(() => {\n this.messagesContainer.nativeElement.scroll({\n top: this.messagesContainer.nativeElement.scrollHeight,\n left: 0,\n behavior: 'smooth',\n });\n }, 200);\n }\n\n clearChat() {\n this.copilotService.clearChat();\n }\n}\n","\n
\n \n \n {{\n 'copilot.buttons.clearConversation' | translate\n }} \n \n \n \n {{ 'common.close' | translate }} \n \n
\n\n
\n
\n
\n \n ASSISTANT \n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n\n \n \n\n \n \n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { CopilotService } from '../../shared/services/copilot.service';\nimport { ChatWindowComponent } from './chat-window/chat-window.component';\n\n@Component({\n selector: 'app-co-pilot',\n standalone: true,\n imports: [CommonModule, ChatWindowComponent],\n templateUrl: './co-pilot.component.html',\n styleUrls: ['./co-pilot.component.scss'],\n})\nexport class CoPilotComponent {\n chatWindowIsActive = false;\n\n constructor(private copilotService: CopilotService) {\n this.copilotService.chatWindowCurrentVisibility.subscribe(\n (visible) => (this.chatWindowIsActive = !!visible)\n );\n }\n\n toggleChat() {\n this.copilotService.setChatWindowVisibility(!this.chatWindowIsActive);\n }\n}\n","\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { SimpleChange } from '@angular/core';\nimport { stringifyObj } from './object-operators.util';\n\nexport const isValueChanged = (change: SimpleChange): boolean => {\n return (\n change.currentValue &&\n (change.isFirstChange() ||\n stringifyObj(change.previousValue) !== stringifyObj(change.currentValue))\n );\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { isValueChanged } from '../../shared/util/simple-changes.util';\nimport { DialogTheme } from './container-dialog.model';\n\n@Component({\n selector: 'app-container-dialog',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './container-dialog.component.html',\n styleUrls: ['./container-dialog.component.scss'],\n})\nexport class ContainerDialogComponent implements OnChanges {\n @Input() header!: string;\n @Input() subheader?: string;\n @Input() body?: string;\n @Input() theme!: DialogTheme;\n @Input() hideCancelButton?: boolean = false;\n @Input() confirmButtonText?: string;\n @Input() confirmButtonDisabled!: boolean;\n\n @Output() cancelled = new EventEmitter();\n @Output() confirmed = new EventEmitter();\n\n themeClass = 'info';\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['theme'] && isValueChanged(changes['theme'])) {\n this.setThemeClass(changes['theme'].currentValue);\n }\n }\n setThemeClass(theme: DialogTheme) {\n switch (theme) {\n case 'info': {\n this.themeClass = 'info';\n break;\n }\n case 'warning': {\n this.themeClass = 'warning';\n break;\n }\n default: {\n this.themeClass = 'info';\n }\n }\n }\n}\n","\n
\n
\n \n \n
\n
\n
\n {{ subheader }}\n
\n
\n\n
\n
\n \n {{ confirmButtonText || ('interface.save' | translate) }} \n \n \n {{ 'interface.cancel' | translate }} \n \n
\n
\n
\n
\n
\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe } from '@angular/common';\nimport {\n AfterViewInit,\n Component,\n CUSTOM_ELEMENTS_SCHEMA,\n OnInit,\n} from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n LangChangeEvent,\n TranslateModule,\n TranslateService,\n} from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { PublicAppConfig } from 'src/app/shared/models/public-app-config.model';\n\n@Component({\n standalone: true,\n selector: 'public-footer',\n templateUrl: './public-footer.component.html',\n styleUrls: ['./public-footer.component.scss'],\n imports: [AsyncPipe, TranslateModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class PublicFooterComponent implements OnInit, AfterViewInit {\n windows: any = window;\n privacySetting: any;\n\n content$: Observable = this.store$.select(\n (state) => state.context.publicAppConfig\n );\n\n constructor(\n private store$: Store,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\n this.privacySetting.locale = event.lang;\n });\n }\n\n ngAfterViewInit(): void {\n this.privacySetting = document.getElementById('privacy-settings');\n this.privacySetting.locale = this.translateService.currentLang;\n }\n\n showPrivacy() {\n this.privacySetting.visible = true;\n }\n}\n","\n\n \n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { HeaderComponent } from '../../dashboard/layout/dashboard-header/dashboard-header.component';\nimport { PublicFooterComponent } from '../../global/layout/public-footer/public-footer.component';\n\n@Component({\n selector: 'app-error',\n standalone: true,\n imports: [CommonModule, HeaderComponent, PublicFooterComponent],\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss'],\n})\nexport class ErrorComponent {\n @Input() allowHeaderFunctions!: boolean;\n @Input() message!: string;\n}\n"," \n\n
\n \n
\n
\n {{ message }}\n
\n
\n \n
\n \n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-gray-box',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './gray-box.component.html',\n styleUrls: ['./gray-box.component.scss']\n})\nexport class GrayBoxComponent {\n\n}\n","\n \n
\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { IdentityProvider } from '../../shared/models';\n\n@Component({\n selector: 'app-idplogo',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './idplogo.component.html',\n styleUrls: ['./idplogo.component.scss'],\n})\nexport class IDPLogoComponent {\n IdentityProvider = IdentityProvider;\n @Input() logo!: IdentityProvider;\n}\n","\n \n \n\n \n \n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LoadingIndicatorService {\n private show$ = new BehaviorSubject(false);\n private message$ = new BehaviorSubject('');\n async changeConfig({ show, message }: { show: boolean; message?: string }) {\n this.show$.next(show);\n this.message$.next(message ?? '');\n }\n\n get show() {\n return this.show$.value;\n }\n\n get message() {\n return this.message$.value;\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { NgIf } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { LoadingIndicatorService } from './loading-indicator.service';\n@Component({\n standalone: true,\n selector: 'app-loading-indicator',\n templateUrl: './loading-indicator.component.html',\n styleUrls: ['./loading-indicator.component.scss'],\n imports: [NgIf],\n})\nexport class LoadingIndicatorComponent {\n constructor(public loadingIndicatorService: LoadingIndicatorService) {}\n}\n","\n
\n
\n
\n {{ loadingIndicatorService.message }}\n \n \n
\n
\n
\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs';\n\n@Component({\n selector: 'app-search-box',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, TranslateModule],\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss'],\n})\nexport class SearchBoxComponent implements OnInit {\n @Input() minCharacters = 0;\n @Output() inputChange = new EventEmitter();\n\n searchInput: FormControl = new FormControl('');\n\n ngOnInit(): void {\n this.searchInput.valueChanges\n .pipe(\n debounceTime(300),\n map((str) => {\n const trimmed = str.trim();\n return trimmed.length >= this.minCharacters ? trimmed : '';\n }),\n distinctUntilChanged()\n )\n .subscribe((value) => this.inputChange.emit(value));\n }\n}\n","\n \n
\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { isValueChanged } from '../../shared/util/simple-changes.util';\nimport { SortDirection } from './sort-config.model';\n\n@Component({\n selector: 'app-sort-config',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './sort-config.component.html',\n styleUrls: ['./sort-config.component.scss'],\n})\nexport class SortConfigComponent implements OnChanges {\n @Input() sortDirection: SortDirection = SortDirection.NONE;\n @Output() sortChange = new EventEmitter();\n\n iconTitlePropKey = 'interface.sorting.none';\n iconClass = 'up-down';\n _sortDirection: SortDirection | undefined;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['sortDirection'] && isValueChanged(changes['sortDirection'])) {\n this.setupProperties(changes['sortDirection'].currentValue);\n }\n }\n updateSortDirection() {\n let direction = SortDirection.NONE;\n if (this._sortDirection === SortDirection.NONE) {\n direction = SortDirection.ASC;\n } else if (this._sortDirection === SortDirection.ASC) {\n direction = SortDirection.DESC;\n }\n\n this.setupProperties(direction);\n this.sortChange.emit(direction);\n }\n\n setupProperties(direction: SortDirection) {\n this._sortDirection = direction;\n if (this._sortDirection === SortDirection.ASC) {\n this.iconTitlePropKey = 'interface.sorting.descending';\n this.iconClass = 'down';\n } else if (this._sortDirection === SortDirection.DESC) {\n this.iconTitlePropKey = 'interface.sorting.none';\n this.iconClass = 'up';\n } else {\n this.iconTitlePropKey = 'interface.sorting.ascending';\n this.iconClass = 'up-down';\n }\n }\n}\n","\n \n \n \n \n \n \n \n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { AsyncPipe, NgClass, NgIf } from '@angular/common';\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { ContainerDialogComponent } from '../../../components';\nimport { AppState } from '../../data/state/app.state.model';\nimport { PublicAppConfig } from '../../models/public-app-config.model';\nimport { Invitation, User } from '../../models/user.model';\nimport { UserService } from '../../services/user.service';\nimport { AppSubscription } from '../../models';\nimport { fullUrls } from '../../../app-urls';\nimport { Router } from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'app-redeem-code',\n templateUrl: './redeem-code.component.html',\n styleUrls: ['./redeem-code.component.scss'],\n imports: [\n TranslateModule,\n NgClass,\n AsyncPipe,\n NgIf,\n FormsModule,\n ContainerDialogComponent,\n ],\n})\nexport class RedeemInvitationCodeComponent {\n @Output() close = new EventEmitter();\n errorMessage!: string;\n code!: string;\n invitedUsers!: Invitation[];\n\n selectedLanguage$: Observable = this.store$.select(\n (state) => state.interface.language\n );\n\n isAccepted: boolean = false;\n\n profile$: Observable = this.store$.select(\n (state) => state.user.profile\n );\n\n content$: Observable = this.store$.select(\n (state) => state.context.publicAppConfig\n );\n\n usersInvites$: Observable = this.store$.select(\n (state) => state.user.allInvitations\n );\n\n constructor(\n private store$: Store,\n private userService: UserService, \n private router: Router\n ) {}\n\n async redeem() {\n try {\n const appSubscription = await firstValueFrom(this.userService.redeemCode(this.code)) as AppSubscription\n if (appSubscription?.appConfiguration?.id && appSubscription?.id) {\n return this.router.navigateByUrl(\n `/${appSubscription.appConfiguration.id}/${appSubscription.id}`\n );\n }\n else {\n // Add a return statement here to address the error\n return window.location.reload();\n }\n } catch(e) {\n this.code = '';\n }\n \n return false;\n \n }\n}\n","\n \n
\n {{ 'redeem.input' | translate }}\n
\n
\n
\n \n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MenuService {\n sideMenuExpanded$ = new BehaviorSubject(false);\n}\n","import { Overlay, PositionStrategy } from '@angular/cdk/overlay';\nimport {\n ComponentPortal,\n ComponentType,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface OverlayOpenRef {\n dismissOverlay: (data?: any) => void;\n overlayDismissed: Subject;\n}\n@Injectable({\n providedIn: 'root',\n})\nexport class OverlayService {\n constructor(private overlay: Overlay) {}\n\n openOverlay({\n component,\n templateRef,\n positionStrategy,\n viewContainerRef,\n }: {\n component?: ComponentType;\n templateRef?: TemplateRef;\n positionStrategy: PositionStrategy;\n viewContainerRef?: ViewContainerRef;\n }): OverlayOpenRef {\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy,\n disposeOnNavigation: true,\n backdropClass: '',\n });\n\n let portal: ComponentPortal | TemplatePortal;\n if (component) {\n portal = new ComponentPortal(component);\n } else {\n portal = new TemplatePortal(templateRef!, viewContainerRef!);\n }\n\n const overlayDismissed = new Subject();\n const dismissOverlay = (data: any) => {\n overlayRef?.dispose();\n overlayDismissed.next(data);\n };\n\n overlayRef.backdropClick().subscribe((data: any) => {\n dismissOverlay(data);\n });\n\n const attachedOverlayRef = overlayRef.attach(portal);\n if (component) {\n attachedOverlayRef.instance?.dismissOverlay.subscribe((data: any) =>\n dismissOverlay(data)\n );\n }\n\n return {\n dismissOverlay,\n overlayDismissed,\n };\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { OverlayPositionBuilder } from '@angular/cdk/overlay';\nimport { CommonModule, I18nSelectPipe } from '@angular/common';\nimport {\n Component,\n ElementRef,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n Router,\n RouterLink,\n RouterLinkActive,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { firstValueFrom, map, Observable } from 'rxjs';\nimport { UpdateInterfaceTitle } from 'src/app/shared/data/actions/interface.actions';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { ActionTypes } from 'src/app/shared/models/enums/actions';\nimport { UserRole } from 'src/app/shared/models/enums/roles';\nimport { View, ViewMenuItem } from 'src/app/shared/models/view.model';\nimport { AuthService } from 'src/app/shared/services/auth.service';\nimport { shortUrls } from '../../../app-urls';\nimport { SetPage } from '../../../shared/data/actions/context.actions';\nimport { Language } from '../../../shared/data/state/interface.state.model';\nimport { MenuService } from '../../../shared/services/menu.service';\nimport {\n OverlayOpenRef,\n OverlayService,\n} from '../../../shared/services/overlay.service';\nimport { UserSubscriptionService } from '../../../shared/services/user-subscriptions.service';\nimport { MenuItem } from './menu-item.model';\n\n@Component({\n standalone: true,\n selector: 'app-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss'],\n imports: [\n CommonModule,\n RouterLink,\n RouterLinkActive,\n TranslateModule,\n I18nSelectPipe,\n ],\n})\nexport class SidebarComponent implements OnInit {\n @ViewChild('sideMenuExpandedContainerRef') sideMenuExpandedContainerRef:\n | ElementRef\n | undefined;\n @ViewChild('sideMenuNavigationRef', { static: false }) sideMenuNavigationRef:\n | TemplateRef\n | undefined;\n subscriptionHomeUrl = `${shortUrls.defaultView}/${shortUrls.home}`;\n selectedLanguage$: Observable = this.store$.select(\n (state) => state.interface.language\n );\n\n views$: Observable = this.store$.select(\n (state) => state.subscription.views\n );\n\n viewsLoaded$: Observable = this.store$.select(\n (state) => state.subscription.viewsLoaded\n );\n\n roles$: Observable = this.store$.select(\n (state) => state.user.roles\n );\n\n mappedMenuItems$ = this.userSubscriptionService.userSpecifiedMenuItems$.pipe(\n map((menuItems) => {\n return menuItems.map((menu) => ({\n ...menu,\n show: this.authService.doesUserHaveMatchingRole(menu.roles),\n }));\n })\n );\n\n adminMenu: MenuItem[] = [];\n ownerMenu: MenuItem[] = [];\n systemAdminMenu: MenuItem[] = [];\n location = window.location;\n sideMenuExpandedOverlayRef: OverlayOpenRef | undefined;\n constructor(\n private router: Router,\n public activatedRoute: ActivatedRoute,\n private store$: Store,\n public authService: AuthService,\n public userSubscriptionService: UserSubscriptionService,\n private translateService: TranslateService,\n public menuService: MenuService,\n private overlayService: OverlayService,\n private positionBuilder: OverlayPositionBuilder,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n ngOnInit() {\n this.userSubscriptionService.systemSpecifiedMenuItems$.subscribe(() =>\n this.setupSidebarMenu()\n );\n this.translateService.onLangChange.subscribe((_) => {\n this.setupSidebarMenu();\n });\n }\n\n async setupSidebarMenu() {\n const systemSpecifiedMenuItems = await firstValueFrom(\n this.userSubscriptionService.systemSpecifiedMenuItems$\n );\n\n const { sysAdminItems, adminItems, ownerItems } =\n await this.getSystemMenuItemsBasedOnRoles(systemSpecifiedMenuItems);\n\n this.adminMenu = [\n ...adminItems,\n {\n route: `${shortUrls.admin}/${shortUrls.users}`,\n icon: 'boschicon-bosch-ic-user',\n label: this.translateService.instant('menu.users'),\n },\n {\n route: `${shortUrls.admin}/${shortUrls.credentials}`,\n icon: 'boschicon-bosch-ic-keys',\n label: this.translateService.instant('menu.credentials'),\n },\n ];\n\n this.ownerMenu = [\n ...ownerItems,\n {\n route: `${shortUrls.admin}/${shortUrls.maintenance}`,\n icon: 'boschicon-bosch-ic-configuration',\n label: this.translateService.instant('menu.maintenance'),\n },\n {\n route: `${shortUrls.admin}/${shortUrls.views}`,\n icon: 'boschicon-bosch-ic-watch-on',\n label: this.translateService.instant('menu.views'),\n },\n ];\n\n this.systemAdminMenu = [\n ...sysAdminItems,\n {\n route: `${shortUrls.admin}/${shortUrls.systemMaintenance}`,\n icon: 'boschicon-bosch-ic-hammer',\n label: this.translateService.instant('menu.sysMaintenance'),\n },\n ];\n }\n\n async customNavigate(item: ViewMenuItem) {\n this.collapseSideMenu();\n if (item.action.type === ActionTypes.ExternalLink) {\n window.open(item.action.url, '_blank');\n } else {\n this.store$.dispatch(new UpdateInterfaceTitle(item.label));\n // We are at subscription level\n\n this.router.navigate([await this.getUrlWithActiveView(item.id)], {\n relativeTo: this.activatedRoute,\n });\n }\n }\n\n async getUrlWithActiveView(pageId: string) {\n const activeView = await firstValueFrom(\n this.userSubscriptionService.activeView$\n );\n\n return `${activeView.id}/${pageId}`;\n }\n\n homeIconClicked() {\n this.collapseSideMenu();\n this.store$.dispatch(new SetPage(null));\n }\n\n expandSideMenu() {\n this.menuService.sideMenuExpanded$.next(true);\n const positionStrategy = this.positionBuilder\n .flexibleConnectedTo(this.sideMenuExpandedContainerRef?.nativeElement)\n .withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n this.sideMenuExpandedOverlayRef = this.overlayService.openOverlay({\n templateRef: this.sideMenuNavigationRef,\n positionStrategy,\n viewContainerRef: this.viewContainerRef,\n });\n this.sideMenuExpandedOverlayRef.overlayDismissed.subscribe(() =>\n this.menuService.sideMenuExpanded$.next(false)\n );\n }\n\n collapseSideMenu() {\n this.menuService.sideMenuExpanded$.next(false);\n this.sideMenuExpandedOverlayRef?.dismissOverlay();\n }\n\n async getSystemMenuItemsBasedOnRoles(list: ViewMenuItem[]) {\n const partitionArrayByRole = async (\n items: ViewMenuItem[],\n role: UserRole\n ) => {\n const filteredItems = items.filter((item) => item.roles.includes(role));\n\n const matchingRoleItems = await Promise.all(\n filteredItems.filter(\n async (item) =>\n await firstValueFrom(\n this.authService.doesUserHaveMatchingRole(item.roles)\n )\n )\n );\n\n const filteredMappedItems = await Promise.all(\n matchingRoleItems.map(async (item) => ({\n route: await this.getUrlWithActiveView(item.id),\n icon: item.icon,\n label: item.label[this.translateService.currentLang as Language],\n }))\n );\n\n return filteredMappedItems;\n };\n\n const systemAdminItems = await partitionArrayByRole(\n list,\n UserRole.SystemAdmin\n );\n const ownerItems = await partitionArrayByRole(list, UserRole.Owner);\n const adminItems = await partitionArrayByRole(list, UserRole.Admin);\n\n return {\n sysAdminItems: systemAdminItems,\n ownerItems: ownerItems,\n adminItems: adminItems,\n };\n }\n}\n","
\n\n \n \n\n\n \n \n \n \n \n","/**\n * marked v11.0.0 - a markdown parser\n * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst getEscapeReplacement = ch => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n return href;\n}\nconst noopTest = {\n exec: () => null\n};\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text)\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n const text = rtrim(cap[0].replace(/^ *>[ \\t]?/gm, ''), '\\n');\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n const tokens = this.lexer.blockTokens(text);\n this.lexer.state.top = top;\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let raw = '';\n let itemContents = '';\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, t => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n let blankLine = false;\n if (!line && /^ *$/.test(nextLine)) {\n // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) {\n // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n } else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) {\n // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = raw.trimEnd();\n list.items[list.items.length - 1].text = itemContents.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n } else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n } else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n } else {\n item.align.push(null);\n }\n }\n for (const header of headers) {\n item.header.push({\n text: header,\n tokens: this.lexer.inline(header)\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map(cell => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell)\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1])\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u)) return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [{\n type: 'text',\n raw: text,\n text\n }]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [{\n type: 'text',\n raw: text,\n text\n }]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n } else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull )((?:.|\\n(?!\\s*?\\n|bull ))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/).replace(/bull/g, bullet) // lists can interrupt\n.getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/).replace('label', _blockLabel).replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\nconst _comment = /|$)/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n+ '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n+ '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n+ '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n+ '|\\\\n*|$)' // (4)\n+ '|\\\\n*|$)' // (5)\n+ '|?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n+ '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n+ '|(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n+ ')', 'i').replace('comment', _comment).replace('tag', _tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nconst paragraph = edit(_paragraph).replace('hr', hr).replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n.replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n.replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n.getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace('paragraph', paragraph).getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n+ ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n+ '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n.replace('hr', hr).replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n.replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n.getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph).replace('hr', hr).replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)').replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex()\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+?\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '| \\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', _comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace('hr', hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', lheading).replace('|table', '').replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').replace('|tag', '').getRegex()\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\`^|~';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u').replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, \nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u').replace(/punct/g, _punctuation).getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n+ '|[^*]+(?=[^*])' // Consume to delim\n+ '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n+ '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n+ '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n+ '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n+ '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n+ '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n.replace(/punct/g, _punctuation).getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n+ '|[^_]+(?=[^_])' // Consume to delim\n+ '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n+ '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n+ '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n+ '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n+ '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n.replace(/punct/g, _punctuation).getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu').replace(/punct/g, _punctuation).getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace('email', /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment' + '|^[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n+ '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n+ '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n+ '|^' // declaration, e.g. \n+ '|^') // CDATA section\n.replace('comment', _inlineComment).replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/).replace('label', _inlineLabel).replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/).replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace('label', _inlineLabel).replace('ref', _blockLabel).getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace('ref', _blockLabel).getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g').replace('reflink', reflink).replace('nolink', nolink).getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', _inlineLabel).getRegex()\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i').replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n let lastParagraphClipped;\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(extTokenizer => {\n if (token = extTokenizer.call({\n lexer: this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach(getStartIndex => {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({\n src,\n tokens\n });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(extTokenizer => {\n if (token = extTokenizer.call({\n lexer: this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach(getStartIndex => {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n code(code, infostring, escaped) {\n const lang = (infostring || '').match(/^\\S*/)?.[0];\n code = code.replace(/\\n$/, '') + '\\n';\n if (!lang) {\n return '' + (escaped ? code : escape$1(code, true)) + '
\\n';\n }\n return '' + (escaped ? code : escape$1(code, true)) + '
\\n';\n }\n blockquote(quote) {\n return `\\n${quote} \\n`;\n }\n html(html, block) {\n return html;\n }\n heading(text, level, raw) {\n // ignore IDs\n return `${text} \\n`;\n }\n hr() {\n return ' \\n';\n }\n list(body, ordered, start) {\n const type = ordered ? 'ol' : 'ul';\n const startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '' + type + '>\\n';\n }\n listitem(text, task, checked) {\n return `${text} \\n`;\n }\n checkbox(checked) {\n return ' ';\n }\n paragraph(text) {\n return `${text}
\\n`;\n }\n table(header, body) {\n if (body) body = `${body} `;\n return ' \\n' + '\\n' + header + ' \\n' + body + '
\\n';\n }\n tablerow(content) {\n return `\\n${content} \\n`;\n }\n tablecell(content, flags) {\n const type = flags.header ? 'th' : 'td';\n const tag = flags.align ? `<${type} align=\"${flags.align}\">` : `<${type}>`;\n return tag + content + `${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong(text) {\n return `${text} `;\n }\n em(text) {\n return `${text} `;\n }\n codespan(text) {\n return `${text}
`;\n }\n br() {\n return ' ';\n }\n del(text) {\n return `${text}`;\n }\n link(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '' + text + ' ';\n return out;\n }\n image(href, title, text) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = ` ';\n return out;\n }\n text(text) {\n return text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong(text) {\n return text;\n }\n em(text) {\n return text;\n }\n codespan(text) {\n return text;\n }\n del(text) {\n return text;\n }\n html(text) {\n return text;\n }\n text(text) {\n return text;\n }\n link(href, title, text) {\n return '' + text;\n }\n image(href, title, text) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const genericToken = token;\n const ret = this.options.extensions.renderers[genericToken.type].call({\n parser: this\n }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n case 'heading':\n {\n const headingToken = token;\n out += this.renderer.heading(this.parseInline(headingToken.tokens), headingToken.depth, unescape(this.parseInline(headingToken.tokens, this.textRenderer)));\n continue;\n }\n case 'code':\n {\n const codeToken = token;\n out += this.renderer.code(codeToken.text, codeToken.lang, !!codeToken.escaped);\n continue;\n }\n case 'table':\n {\n const tableToken = token;\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < tableToken.header.length; j++) {\n cell += this.renderer.tablecell(this.parseInline(tableToken.header[j].tokens), {\n header: true,\n align: tableToken.align[j]\n });\n }\n header += this.renderer.tablerow(cell);\n let body = '';\n for (let j = 0; j < tableToken.rows.length; j++) {\n const row = tableToken.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n header: false,\n align: tableToken.align[k]\n });\n }\n body += this.renderer.tablerow(cell);\n }\n out += this.renderer.table(header, body);\n continue;\n }\n case 'blockquote':\n {\n const blockquoteToken = token;\n const body = this.parse(blockquoteToken.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n case 'list':\n {\n const listToken = token;\n const ordered = listToken.ordered;\n const start = listToken.start;\n const loose = listToken.loose;\n let body = '';\n for (let j = 0; j < listToken.items.length; j++) {\n const item = listToken.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.renderer.checkbox(!!checked);\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' '\n });\n }\n } else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, !!checked);\n }\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n case 'html':\n {\n const htmlToken = token;\n out += this.renderer.html(htmlToken.text, htmlToken.block);\n continue;\n }\n case 'paragraph':\n {\n const paragraphToken = token;\n out += this.renderer.paragraph(this.parseInline(paragraphToken.tokens));\n continue;\n }\n case 'text':\n {\n let textToken = token;\n let body = textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text;\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + (textToken.tokens ? this.parseInline(textToken.tokens) : textToken.text);\n }\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n default:\n {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n const ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n switch (token.type) {\n case 'escape':\n {\n const escapeToken = token;\n out += renderer.text(escapeToken.text);\n break;\n }\n case 'html':\n {\n const tagToken = token;\n out += renderer.html(tagToken.text);\n break;\n }\n case 'link':\n {\n const linkToken = token;\n out += renderer.link(linkToken.href, linkToken.title, this.parseInline(linkToken.tokens, renderer));\n break;\n }\n case 'image':\n {\n const imageToken = token;\n out += renderer.image(imageToken.href, imageToken.title, imageToken.text);\n break;\n }\n case 'strong':\n {\n const strongToken = token;\n out += renderer.strong(this.parseInline(strongToken.tokens, renderer));\n break;\n }\n case 'em':\n {\n const emToken = token;\n out += renderer.em(this.parseInline(emToken.tokens, renderer));\n break;\n }\n case 'codespan':\n {\n const codespanToken = token;\n out += renderer.codespan(codespanToken.text);\n break;\n }\n case 'br':\n {\n out += renderer.br();\n break;\n }\n case 'del':\n {\n const delToken = token;\n out += renderer.del(this.parseInline(delToken.tokens, renderer));\n break;\n }\n case 'text':\n {\n const textToken = token;\n out += renderer.text(textToken.text);\n break;\n }\n default:\n {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set(['preprocess', 'postprocess']);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n}\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table':\n {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list':\n {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default:\n {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach(childTokens => {\n values = values.concat(this.walkTokens(genericToken[childTokens], callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n args.forEach(pack => {\n // copy options to new object\n const opts = {\n ...pack\n };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach(ext => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) {\n // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer) || prop === 'options') {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer) || ['options', 'rules', 'lexer'].includes(prop)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks) || prop === 'options') {\n throw new Error(`hook '${prop}' does not exist`);\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = arg => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = {\n ...this.defaults,\n ...opts\n };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = {\n ...this.defaults,\n ...opt\n };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = {\n ...options\n };\n const opt = {\n ...this.defaults,\n ...origOpt\n };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then(src => lexer(src, opt)).then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then(tokens => parser(tokens, opt)).then(html => opt.hooks ? opt.hooks.postprocess(html) : html).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n const tokens = lexer(src, opt);\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n } catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return e => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = 'An error occurred:
' + escape$1(e.message + '', true) + ' ';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options = marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { marked } from 'marked';\nimport { firstValueFrom } from 'rxjs';\nimport { PRICE_PLAN_PAGE } from '../../app.const';\nimport { ToastType } from '../../components/toast/toast-message.model';\nimport { ToastMessageService } from '../../components/toast/toast-message.service';\nimport { QuotaError } from '../models';\n@Injectable({\n providedIn: 'root',\n})\nexport class QuotaNotifierService {\n constructor(\n private translateService: TranslateService,\n private toastMessageService: ToastMessageService\n ) {}\n async notify(quotaInfo: QuotaError) {\n const { currentPricePlan, quota, type } = quotaInfo;\n\n const messageToShow = await firstValueFrom(\n this.translateService.get('quota', {\n type: type.toLowerCase(),\n plan: currentPricePlan.toLowerCase(),\n quota,\n pricePlanPage: PRICE_PLAN_PAGE,\n })\n );\n\n const html = await marked(messageToShow, { async: true });\n this.toastMessageService.showNotification({\n messageInfo: {\n message: html,\n type: ToastType.Warning,\n messageIsHTML: true,\n },\n customDismissTime: 15000,\n });\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { firstValueFrom } from 'rxjs';\nimport { env } from '../../../environments/environment';\nimport { LoadingIndicatorService } from '../../components';\nimport { AppSubscription } from '../../shared/models';\nimport { LoggerService } from '../../shared/services/logger.service';\nimport { QuotaNotifierService } from '../../shared/services/quota-notifier.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class JoinDemoService {\n constructor(\n private httpClient: HttpClient,\n private logger: LoggerService,\n private loadingIndicatorService: LoadingIndicatorService,\n private translateService: TranslateService,\n private quotaNotifierService: QuotaNotifierService\n ) {}\n\n async createEvaluationSubscription() {\n const loadingMessage = await firstValueFrom(\n this.translateService.get('loading.subscriptionCreationInProgress')\n );\n this.loadingIndicatorService.changeConfig({\n show: true,\n message: loadingMessage,\n });\n this.httpClient\n .post(\n `${env.API_URL}/subscriptions/${env.DEFAULT_APPLICATION}/join`,\n {},\n { observe: 'body' }\n )\n .subscribe({\n next: (subscriptionInfo) => {\n this.loadingIndicatorService.changeConfig({\n show: false,\n });\n location.href = `/${subscriptionInfo.appConfiguration.id}/${subscriptionInfo.id}`;\n },\n error: (er) => {\n this.loadingIndicatorService.changeConfig({\n show: false,\n });\n if (er.status === 400) {\n this.quotaNotifierService.notify(er.error);\n }\n this.logger.log(er);\n },\n });\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { map, Observable, withLatestFrom } from 'rxjs';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { AuthService } from 'src/app/shared/services/auth.service';\nimport { env } from 'src/environments/environment';\nimport { JoinDemoService } from '../../../../pages/join-demo/join-demo.service';\nimport { RedeemInvitationCodeComponent } from '../../../../shared/misc/redeem-code/redeem-code.component';\nimport { AppSubscription, LoginType } from '../../../../shared/models';\nimport { UserSubscriptionService } from '../../../../shared/services/user-subscriptions.service';\n\n@Component({\n standalone: true,\n selector: 'app-user-menu',\n templateUrl: './user-menu.component.html',\n styleUrls: ['./user-menu.component.scss'],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n RedeemInvitationCodeComponent,\n OverlayModule,\n ],\n})\nexport class UserMenuComponent implements OnInit {\n @Output() dismissOverlay = new EventEmitter();\n LoginType = LoginType;\n\n displayName$: Observable = this.store$.select(\n (state) => state.user.profile.displayname\n );\n\n currentLoginType!: LoginType;\n\n // user can create evaluation subscription when they don't already one and when the login type is not SingleKeyId\n allowCreateEvaluationSandboxSubscription$ =\n this.userSubscriptionService.userSubscriptions$.pipe(\n withLatestFrom(this.authService.currentUserInfo$),\n map(\n ([subscriptions, currentUser]) =>\n currentUser.profile.identityProvider.toLowerCase() !==\n LoginType.SingleKeyId.toLowerCase() &&\n !subscriptions.find((sub) =>\n sub.name.toLowerCase().includes('sandbox-')\n )\n )\n );\n\n constructor(\n private store$: Store,\n public authService: AuthService,\n public userSubscriptionService: UserSubscriptionService,\n private router: Router,\n private joinDemoService: JoinDemoService\n ) {}\n\n ngOnInit(): void {\n this.currentLoginType = this.authService.getCurrentLoginType();\n }\n\n hideMenu() {\n this.dismissOverlay.emit(true);\n }\n\n async changeMenu(subscription: AppSubscription) {\n this.hideMenu();\n const {\n id: subscriptionId,\n appConfiguration: { id: applicationId },\n } = subscription;\n this.router.navigate([`/${applicationId}/${subscriptionId}`]);\n }\n\n open() {\n window.open(env.SINGLE_KEY_ID_MY_PROFILE);\n }\n\n createEvaluationSubscription() {\n this.joinDemoService.createEvaluationSubscription();\n }\n\n showRedeemDialog() {\n this.dismissOverlay.emit({ redeemInvitationCodeClicked: true });\n }\n}\n","\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { OverlayPositionBuilder } from '@angular/cdk/overlay';\nimport { AsyncPipe, NgIf, NgStyle } from '@angular/common';\nimport { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport { Store } from '@ngrx/store';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, tap } from 'rxjs';\nimport { UpdateLanguage } from 'src/app/shared/data/actions/interface.actions';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { RedeemInvitationCodeComponent } from '../../../shared/misc/redeem-code/redeem-code.component';\nimport { MenuService } from '../../../shared/services/menu.service';\nimport {\n OverlayOpenRef,\n OverlayService,\n} from '../../../shared/services/overlay.service';\nimport { SidebarComponent } from '../sidebar/sidebar.component';\nimport { UserMenuComponent } from './user-menu/user-menu.component';\n\n@Component({\n standalone: true,\n selector: 'app-header',\n templateUrl: './dashboard-header.component.html',\n styleUrls: ['./dashboard-header.component.scss'],\n imports: [\n AsyncPipe,\n ReactiveFormsModule,\n TranslateModule,\n UserMenuComponent,\n NgStyle,\n NgIf,\n SidebarComponent,\n RedeemInvitationCodeComponent,\n ],\n})\nexport class HeaderComponent implements OnInit {\n @Input() allowHeaderFunctions = true;\n @ViewChild('userMenuNavElementRef')\n userMenuNavElementRef!: ElementRef;\n userMenuOverlayRef!: OverlayOpenRef;\n readonly defaultTitle = 'Bosch Digital Service Dashboard';\n selectedLanguage$: Observable = this.store$.select(\n (state) => state.interface.language\n );\n\n title$ = this.store$.select((state) => state.interface.title);\n\n languageForm: FormGroup = this.builder.group({\n lang: ['', [Validators.required]],\n });\n\n showLanguagePicker$ = this.store$.select(\n (state) => state.context.publicAppConfig.multiLingual\n );\n\n userLoggedIn$ = this.store$.select((state) => state.user.profileLoaded);\n\n displayName$: Observable = this.store$.select(\n (state) => state.user.profile.displayname\n );\n showUserMenuOverlay: boolean = false;\n userMenuPosition = {} as { x: number; y: number };\n showReedemDialog$ = new BehaviorSubject(false);\n get lang() {\n return this.languageForm.get('lang');\n }\n\n constructor(\n private store$: Store,\n private builder: FormBuilder,\n private overlayService: OverlayService,\n private positionBuilder: OverlayPositionBuilder,\n public menuService: MenuService\n ) {}\n\n ngOnInit(): void {\n this.selectedLanguage$.pipe(tap((lang) => this.lang?.setValue(lang)));\n }\n\n changeLanguage(): void {\n this.store$.dispatch(new UpdateLanguage(this.lang?.value));\n }\n\n showUserMenu() {\n this.showUserMenuOverlay = true;\n this.openOverlay();\n }\n\n hideUserMenu() {\n this.showUserMenuOverlay = false;\n this.userMenuOverlayRef.dismissOverlay();\n }\n\n async openOverlay() {\n const positionStrategy = this.positionBuilder\n .flexibleConnectedTo(this.userMenuNavElementRef.nativeElement)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'center',\n },\n ]);\n\n this.userMenuOverlayRef = this.overlayService.openOverlay({\n component: UserMenuComponent,\n positionStrategy,\n });\n\n this.userMenuOverlayRef.overlayDismissed.subscribe((data: any) => {\n this.showUserMenuOverlay = false;\n this.showReedemDialog$.next(data?.redeemInvitationCodeClicked === true);\n });\n }\n}\n","\n\n \n"],"mappings":"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","names":["options","options","options","keyframes","map","keyframes","NoopAnimationDriver","AnimationDriver","keyframes","options","keyframes","LINE_START","def","transition","style","styleMetadata","keyframes","options","defaults","ast","element","trigger","player","index","state","i","map","SpecialCasedStyles","style","trigger","delegate","fn","data","InjectableAnimationEngine","BrowserAnimationsModule","BaseControlValueAccessor","BuiltInControlValueAccessor","CheckboxControlValueAccessor","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","options","acc","list","NgForm","list","FormControl","options","AbstractFormGroupDirective","NgModelGroup","NgModel","ɵNgNoValidate","NumberValueAccessor","RadioControlRegistryModule","RadioControlRegistry","RadioControlValueAccessor","FormControlDirective","FormGroupDirective","FormGroupName","FormArrayName","FormControlName","SelectControlValueAccessor","NgSelectOption","options","SelectMultipleControlValueAccessor","ɵNgSelectMultipleOption","ɵInternalFormsSharedModule","options","options","FormBuilder","FormsModule","ReactiveFormsModule","Platform","options","MutationObserverFactory","ObserversModule","query","MediaMatcher","query","BreakpointObserver","query","AriaDescriber","InteractivityChecker","window","options","FocusTrapFactory","document","options","InputModalityDetector","LiveAnnouncer","document","options","window","FocusMonitor","document","HighContrastModeDetector","A11yModule","Directionality","BidiModule","VERSION","AnimationCurves","AnimationDurations","MatCommonModule","VERSION","ErrorStateMatcher","MatLineModule","trigger","MatRipple","MatRippleModule","MatPseudoCheckbox","MatPseudoCheckboxModule","options","MatOption","options","MatOptionModule","MatRippleLoader","_c2","MatCheckbox","_MatCheckboxRequiredValidatorModule","MatCheckboxModule","document","window","ScrollDispatcher","options","from","CdkScrollable","document","window","documentElement","ViewportRuler","CdkScrollableModule","ScrollingModule","CdkPortalOutlet","PortalModule","scrollBehaviorSupported","document","html","ScrollStrategyOptions","document","BaseOverlayDispatcher","document","OverlayKeyboardDispatcher","document","OverlayOutsideClickDispatcher","document","OverlayContainer","style","OverlayPositionBuilder","nextUniqueId","Overlay","CdkOverlayOrigin","CdkConnectedOverlay","OverlayModule","options","SharedResizeObserver","_c0","_c1","_c2","_c3","_c4","MatLabel","MatHint","MatFormFieldFloatingLabel","MatFormFieldLineRipple","_c0","_c1","_c2","MatFormFieldNotchedOutline","MatFormFieldControl","nextUniqueId","_defaults","_c3","_c4","MatFormField","MatFormFieldModule","_c0","_c1","_c2","_c3","nextUniqueId","options","MatSelect","MatSelectModule","_c0","style","MatTooltip","_c0","TooltipComponent","MatTooltipModule","i0","ɵɵelementStart","ɵɵlistener","CustomSelectComponent_mat_checkbox_4_Template_mat_checkbox_change_0_listener","$event","ɵɵrestoreView","_r3","ctx_r2","ɵɵnextContext","ɵɵresetView","toggleSelection","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","optionList","length","control","value","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","option_r4","disabled","showTooltip","tooltipTranslationKey","ɵɵtextInterpolate","label","CustomSelectComponent","constructor","elementRef","renderer","multiSelect","selectAllOptionVisible","backgroundColor","wrapperHeight","FormControl","_disabled","event","disabledOptions","enabledOptions","partitionArray","item","enabledValues","map","enabledOption","disabledValues","disabledOption","currentValue","untouchables","filter","includes","updatedValue","checked","patchValue","error","console","info","optionListTrackByFn","index","ngAfterViewInit","elements","nativeElement","querySelectorAll","forEach","element","setStyle","subElements","subElement","ɵɵdirectiveInject","ElementRef","Renderer2","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","CustomSelectComponent_Template","rf","ctx","ɵɵtemplate","CustomSelectComponent_mat_checkbox_4_Template","CustomSelectComponent_mat_option_5_Template","CommonModule","NgForOf","NgIf","MatSelectModule","MatFormField","MatLabel","MatSelect","MatOption","MatFormFieldModule","ReactiveFormsModule","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","MatCheckboxModule","MatCheckbox","MatTooltipModule","MatTooltip","styles","UserService","constructor","logger","httpClient","env","API_URL","log","findAllUsers","id","get","pipe","first","findUserProfile","update","user","debug","url","put","observe","map","_","createInvite","redeemCode","code","fetchAllInvites","deleteUser","newlyInvitedUser","delete","editUserRoles","patch","roles","r","ɵɵinject","LoggerService","HttpClient","factory","ɵfac","providedIn","options","ToastType","ToastMessageService","constructor","domSanitizer","notifications$","BehaviorSubject","showNotification","messageInfo","customDismissTime","id","uuidV4","currentNotifications","getValue","modifiedMessage","messageIsHTML","message","sanitize","SecurityContext","HTML","newNotificationList","slice","next","startNotificationDismissTimer","timeout","setTimeout","filteredNotifications","filter","n","clearTimeout","DEFAULT_TOAST_DISMISS_TIME_MS","showError","type","ToastType","Error","showSuccess","Success","ɵɵinject","DomSanitizer","factory","ɵfac","providedIn","TypingEffectComponent","constructor","dynamicText","ngOnInit","typingSubscription","typeText","ngOnDestroy","stopTypingEffect","unsubscribe","interval","pipe","takeUntil","timer","subscribe","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","TypingEffectComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","CommonModule","styles","inline","CoreModule","StylesheetMap","style","StyleUtils","style","query","style","MatchMedia","list","query","list","query","first","defaults","BreakPointRegistry","PrintHook","list","MediaMarshaller","query","map","BaseDirective2","style","ClassDirective","DefaultClassDirective","ExtendedModule","LayoutStyleBuilder","LayoutDirective","DefaultLayoutDirective","LayoutGapStyleBuilder","LayoutGapDirective","DefaultLayoutGapDirective","FlexStyleBuilder","FlexDirective","DefaultFlexDirective","LayoutAlignStyleBuilder","LayoutAlignDirective","inline","DefaultLayoutAlignDirective","FlexModule","GridModule","FlexLayoutModule","UserQueryInputComponent","constructor","renderer","elementRef","userInput","EventEmitter","inputControl","FormControl","value","disabled","ngOnInit","valueChanges","subscribe","length","maxLength","setValue","substring","emitEvent","ngOnChanges","changes","newDisabledValue","currentValue","disable","enable","focusOnInput","emitValue","emit","reset","onEnterPressed","selectRootElement","nativeElement","querySelector","focus","ɵɵdirectiveInject","Renderer2","ElementRef","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","consts","template","UserQueryInputComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵlistener","UserQueryInputComponent_Template_textarea_keydown_enter_3_listener","ɵɵelementEnd","ɵɵtext","UserQueryInputComponent_Template_button_click_8_listener","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","ɵɵtextInterpolate2","CommonModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","FlexLayoutModule","DefaultLayoutDirective","DefaultLayoutAlignDirective","TranslateModule","TranslatePipe","styles","i0","ɵɵelementContainer","ɵɵelementStart","ɵɵtemplate","ChatWindowComponent_div_15_ng_container_2_Template","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","_r5","ɵɵpipeBind1","ctx_r1","copilotService","chatIntroText","ɵɵsanitizeHtml","ɵɵelementContainerStart","ChatWindowComponent_ng_container_17_ng_container_3_ng_container_1_Template","ɵɵelementContainerEnd","ChatWindowComponent_ng_container_17_ng_container_3_Template","ɵɵpureFunction2","_c1","message_r9","role","_r7","content","ChatWindowComponent_div_19_ng_container_2_Template","ChatWindowComponent","constructor","closed","EventEmitter","maxUserInput","messages$","messages","pipe","tap","length","scrollToBottom","onUserInput","userMessage","sendUserMessage","setTimeout","messagesContainer","nativeElement","scroll","top","scrollHeight","left","behavior","clearChat","ɵɵdirectiveInject","CopilotService","selectors","viewQuery","ChatWindowComponent_Query","rf","ctx","ɵɵlistener","ChatWindowComponent_Template_button_click_2_listener","ChatWindowComponent_Template_button_click_7_listener","emit","ChatWindowComponent_div_15_Template","ChatWindowComponent_ng_container_17_Template","ChatWindowComponent_div_19_Template","ChatWindowComponent_Template_app_user_query_input_userInput_22_listener","$event","ChatWindowComponent_ng_template_24_Template","ɵɵtemplateRefExtractor","ChatWindowComponent_ng_template_26_Template","ɵɵtextInterpolate","ɵɵclassProp","tmp_2_0","tmp_3_0","loading","CommonModule","NgClass","NgForOf","NgIf","NgTemplateOutlet","AsyncPipe","UserQueryInputComponent","TranslateModule","TranslatePipe","TypingEffectComponent","styles","i0","ɵɵelementStart","ɵɵlistener","CoPilotComponent_button_3_Template_button_click_0_listener","ɵɵrestoreView","_r2","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleChat","ɵɵelement","ɵɵelementEnd","CoPilotComponent","constructor","copilotService","chatWindowIsActive","chatWindowCurrentVisibility","subscribe","visible","setChatWindowVisibility","ɵɵdirectiveInject","CopilotService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","CoPilotComponent_Template","rf","ctx","CoPilotComponent_Template_app_chat_window_closed_2_listener","ɵɵtemplate","CoPilotComponent_button_3_Template","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c0","CommonModule","NgClass","NgIf","ChatWindowComponent","styles","isValueChanged","change","currentValue","isFirstChange","stringifyObj","previousValue","i0","ɵɵelementStart","ɵɵlistener","ContainerDialogComponent_button_8_Template_button_click_0_listener","ɵɵrestoreView","_r5","ctx_r4","ɵɵnextContext","ɵɵresetView","cancelled","emit","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r1","subheader","ctx_r2","body","ContainerDialogComponent_button_19_Template_button_click_0_listener","_r7","ctx_r6","ɵɵtextInterpolate","ɵɵpipeBind1","ContainerDialogComponent","constructor","hideCancelButton","EventEmitter","confirmed","themeClass","ngOnChanges","changes","isValueChanged","setThemeClass","currentValue","theme","selectors","inputs","header","confirmButtonText","confirmButtonDisabled","outputs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","ContainerDialogComponent_Template","rf","ctx","ɵɵtemplate","ContainerDialogComponent_button_8_Template","ContainerDialogComponent_div_11_Template","ContainerDialogComponent_div_12_Template","ɵɵprojection","ContainerDialogComponent_Template_button_click_15_listener","ContainerDialogComponent_button_19_Template","ɵɵclassMapInterpolate1","ɵɵattribute","ɵɵproperty","CommonModule","NgIf","TranslateModule","TranslatePipe","styles","PublicFooterComponent","constructor","store$","translateService","windows","window","content$","select","state","context","publicAppConfig","ngOnInit","onLangChange","subscribe","event","privacySetting","locale","lang","ngAfterViewInit","document","getElementById","currentLang","showPrivacy","visible","ɵɵdirectiveInject","Store","TranslateService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","PublicFooterComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵlistener","PublicFooterComponent_Template_a_click_35_listener","ɵɵadvance","ɵɵpropertyInterpolate","tmp_0_0","ɵɵpipeBind1","legalInfo","corporateInformationUrl","ɵɵsanitizeUrl","ɵɵtextInterpolate","tmp_2_0","legalNoticeUrl","tmp_4_0","dataProtectionNoticeUrl","tmp_6_0","termsOfUseUrl","ɵɵtextInterpolate1","tmp_9_0","copyright","AsyncPipe","TranslateModule","TranslatePipe","styles","ErrorComponent","selectors","inputs","allowHeaderFunctions","message","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","ErrorComponent_Template","rf","ctx","i0","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","CommonModule","HeaderComponent","PublicFooterComponent","styles","GrayBoxComponent","selectors","standalone","features","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","GrayBoxComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","CommonModule","styles","i0","ɵɵelementContainerStart","ɵɵelement","ɵɵelementContainerEnd","IDPLogoComponent","constructor","IdentityProvider","selectors","inputs","logo","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","IDPLogoComponent_Template","rf","ctx","ɵɵtemplate","IDPLogoComponent_ng_container_0_Template","IDPLogoComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","ɵɵproperty","SingleKeyId","_r2","CommonModule","NgIf","styles","LoadingIndicatorService","constructor","show$","BehaviorSubject","message$","changeConfig","show","message","next","value","factory","ɵfac","providedIn","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","loadingIndicatorService","message","LoadingIndicatorComponent","constructor","ɵɵdirectiveInject","LoadingIndicatorService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","LoadingIndicatorComponent_Template","rf","ctx","ɵɵtemplate","LoadingIndicatorComponent_div_0_Template","ɵɵproperty","show","NgIf","styles","SearchBoxComponent","constructor","minCharacters","inputChange","EventEmitter","searchInput","FormControl","ngOnInit","valueChanges","pipe","debounceTime","map","str","trimmed","trim","length","distinctUntilChanged","subscribe","value","emit","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","SearchBoxComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpipeBind2","ɵɵpureFunction1","_c0","CommonModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","styles","SortConfigComponent","constructor","sortDirection","SortDirection","NONE","sortChange","EventEmitter","iconTitlePropKey","iconClass","ngOnChanges","changes","isValueChanged","setupProperties","currentValue","updateSortDirection","direction","_sortDirection","ASC","DESC","emit","selectors","inputs","outputs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","SortConfigComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵlistener","SortConfigComponent_Template_span_click_0_listener","ɵɵprojection","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵclassMapInterpolate1","ɵɵproperty","ɵɵpipeBind1","CommonModule","TranslateModule","TranslatePipe","styles","RedeemInvitationCodeComponent","constructor","store$","userService","router","close","EventEmitter","selectedLanguage$","select","state","interface","language","isAccepted","profile$","user","profile","content$","context","publicAppConfig","usersInvites$","allInvitations","redeem","appSubscription","firstValueFrom","redeemCode","code","appConfiguration","id","navigateByUrl","window","location","reload","e","ɵɵdirectiveInject","Store","UserService","Router","selectors","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","RedeemInvitationCodeComponent_Template","rf","ctx","i0","ɵɵelementStart","ɵɵlistener","RedeemInvitationCodeComponent_Template_app_container_dialog_confirmed_0_listener","RedeemInvitationCodeComponent_Template_app_container_dialog_cancelled_0_listener","emit","ɵɵtext","ɵɵelementEnd","RedeemInvitationCodeComponent_Template_input_ngModelChange_12_listener","$event","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","TranslateModule","TranslatePipe","FormsModule","DefaultValueAccessor","NgControlStatus","NgModel","ContainerDialogComponent","styles","MenuService","constructor","sideMenuExpanded$","BehaviorSubject","factory","ɵfac","providedIn","OverlayService","constructor","overlay","openOverlay","component","templateRef","positionStrategy","viewContainerRef","overlayRef","create","hasBackdrop","disposeOnNavigation","backdropClass","portal","ComponentPortal","TemplatePortal","overlayDismissed","Subject","dismissOverlay","data","dispose","next","backdropClick","subscribe","attachedOverlayRef","attach","instance","ɵɵinject","Overlay","factory","ɵfac","providedIn","i0","ɵɵelementContainer","ɵɵelementContainerStart","ɵɵtemplate","SidebarComponent_ng_container_2_ng_container_1_Template","ɵɵelementContainerEnd","ɵɵadvance","ɵɵproperty","_r3","ɵɵelementStart","ɵɵlistener","SidebarComponent_ng_template_4_li_15_Template_li_click_0_listener","ɵɵrestoreView","_r12","ctx_r11","ɵɵnextContext","ɵɵresetView","homeIconClicked","ɵɵelement","ɵɵtext","ɵɵelementEnd","ctx_r5","subscriptionHomeUrl","ɵɵpureFunction0","_c2","ɵɵtextInterpolate","ɵɵpipeBind1","SidebarComponent_ng_template_4_span_17_li_1_Template_a_click_1_listener","_r17","item_r13","$implicit","ctx_r15","customNavigate","id","ɵɵpureFunction1","_c3","ctx_r14","location","pathname","includes","ɵɵclassMapInterpolate1","icon","ɵɵpropertyInterpolate","ɵɵpipeBind2","selectedLanguage$","label","ɵɵtextInterpolate1","SidebarComponent_ng_template_4_span_17_li_1_Template","show","SidebarComponent_ng_template_4_span_24_li_1_Template_li_click_0_listener","_r22","ctx_r21","collapseSideMenu","item_r20","route","SidebarComponent_ng_template_4_span_24_li_1_Template","ctx_r8","adminMenu","SidebarComponent_ng_template_4_span_26_li_1_Template_li_click_0_listener","_r26","ctx_r25","item_r24","SidebarComponent_ng_template_4_span_26_li_1_Template","ctx_r9","ownerMenu","SidebarComponent_ng_template_4_span_28_li_1_Template_li_click_0_listener","_r30","ctx_r29","item_r28","SidebarComponent_ng_template_4_span_28_li_1_Template","ctx_r10","systemAdminMenu","SidebarComponent_ng_template_4_Template_button_click_5_listener","_r32","ctx_r31","expandSideMenu","SidebarComponent_ng_template_4_Template_button_click_9_listener","ctx_r33","SidebarComponent_ng_template_4_li_15_Template","SidebarComponent_ng_template_4_span_17_Template","SidebarComponent_ng_template_4_li_21_Template","SidebarComponent_ng_template_4_span_24_Template","SidebarComponent_ng_template_4_span_26_Template","SidebarComponent_ng_template_4_span_28_Template","_c4","ctx_r2","menuService","sideMenuExpanded$","_c5","authService","isUser$","mappedMenuItems$","isAdmin$","isOwner$","isSystemAdmin$","SidebarComponent","constructor","router","activatedRoute","store$","userSubscriptionService","translateService","overlayService","positionBuilder","viewContainerRef","shortUrls","defaultView","home","select","state","interface","language","views$","subscription","views","viewsLoaded$","viewsLoaded","roles$","user","roles","userSpecifiedMenuItems$","pipe","map","menuItems","menu","doesUserHaveMatchingRole","window","ngOnInit","systemSpecifiedMenuItems$","subscribe","setupSidebarMenu","onLangChange","_","systemSpecifiedMenuItems","firstValueFrom","sysAdminItems","adminItems","ownerItems","getSystemMenuItemsBasedOnRoles","admin","users","instant","credentials","maintenance","systemMaintenance","item","action","type","ActionTypes","ExternalLink","open","url","dispatch","UpdateInterfaceTitle","navigate","getUrlWithActiveView","relativeTo","pageId","activeView","activeView$","SetPage","next","positionStrategy","flexibleConnectedTo","sideMenuExpandedContainerRef","nativeElement","withPositions","originX","originY","overlayX","overlayY","sideMenuExpandedOverlayRef","openOverlay","templateRef","sideMenuNavigationRef","overlayDismissed","dismissOverlay","list","partitionArrayByRole","items","role","filteredItems","filter","matchingRoleItems","Promise","all","filteredMappedItems","currentLang","systemAdminItems","UserRole","SystemAdmin","Owner","Admin","ɵɵdirectiveInject","Router","ActivatedRoute","Store","AuthService","UserSubscriptionService","TranslateService","MenuService","OverlayService","OverlayPositionBuilder","ViewContainerRef","selectors","viewQuery","SidebarComponent_Query","rf","ctx","SidebarComponent_ng_container_2_Template","SidebarComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","CommonModule","NgClass","NgForOf","NgIf","NgTemplateOutlet","NgStyle","AsyncPipe","I18nSelectPipe","RouterLink","RouterLinkActive","TranslateModule","TranslatePipe","styles","html","link","lexer","options","list","tag","text","block","parser","args","ret","walkTokens","src","QuotaNotifierService","constructor","translateService","toastMessageService","notify","quotaInfo","currentPricePlan","quota","type","messageToShow","firstValueFrom","get","toLowerCase","plan","pricePlanPage","PRICE_PLAN_PAGE","html","marked","async","showNotification","messageInfo","message","ToastType","Warning","messageIsHTML","customDismissTime","ɵɵinject","TranslateService","ToastMessageService","factory","ɵfac","providedIn","JoinDemoService","constructor","httpClient","logger","loadingIndicatorService","translateService","quotaNotifierService","createEvaluationSubscription","loadingMessage","firstValueFrom","get","changeConfig","show","message","post","env","API_URL","DEFAULT_APPLICATION","observe","subscribe","next","subscriptionInfo","location","href","appConfiguration","id","error","er","status","notify","log","ɵɵinject","HttpClient","LoggerService","LoadingIndicatorService","TranslateService","QuotaNotifierService","factory","ɵfac","providedIn","i0","ɵɵelementStart","ɵɵlistener","UserMenuComponent_li_5_Template_li_click_0_listener","ɵɵrestoreView","_r4","ctx_r3","ɵɵnextContext","ɵɵresetView","hideMenu","ɵɵtext","UserMenuComponent_li_5_Template_img_click_2_listener","ctx_r5","open","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","UserMenuComponent_li_14_Template_li_click_0_listener","restoredCtx","_r9","item_r6","$implicit","ctx_r8","changeMenu","ɵɵtemplate","UserMenuComponent_li_14_div_4_Template","name","ɵɵproperty","id","ctx_r1","userSubscriptionService","activeSubscriptionId$","UserMenuComponent_li_22_Template_li_click_0_listener","_r11","ctx_r10","createEvaluationSubscription","UserMenuComponent","constructor","store$","authService","router","joinDemoService","dismissOverlay","EventEmitter","LoginType","displayName$","select","state","user","profile","displayname","allowCreateEvaluationSandboxSubscription$","userSubscriptions$","pipe","withLatestFrom","currentUserInfo$","map","subscriptions","currentUser","identityProvider","toLowerCase","SingleKeyId","find","sub","includes","ngOnInit","currentLoginType","getCurrentLoginType","emit","subscription","subscriptionId","appConfiguration","applicationId","navigate","window","env","SINGLE_KEY_ID_MY_PROFILE","showRedeemDialog","redeemInvitationCodeClicked","ɵɵdirectiveInject","Store","AuthService","UserSubscriptionService","Router","JoinDemoService","selectors","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","UserMenuComponent_Template","rf","ctx","UserMenuComponent_li_5_Template","UserMenuComponent_Template_ul_click_13_listener","UserMenuComponent_li_14_Template","UserMenuComponent_Template_a_click_18_listener","UserMenuComponent_li_22_Template","UserMenuComponent_Template_li_click_24_listener","UserMenuComponent_Template_a_click_25_listener","logout","ɵɵtextInterpolate","CommonModule","NgForOf","NgIf","AsyncPipe","RouterModule","TranslateModule","TranslatePipe","OverlayModule","styles","i0","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","ɵɵlistener","HeaderComponent_li_23_Template_select_change_3_listener","ɵɵrestoreView","_r7","ctx_r6","ɵɵnextContext","ɵɵresetView","changeLanguage","ɵɵtext","ɵɵadvance","ɵɵproperty","ctx_r2","languageForm","ɵɵpipeBind1","selectedLanguage$","HeaderComponent_li_25_Template_button_click_1_listener","_r10","ctx_r9","showUserMenuOverlay","hideUserMenu","showUserMenu","ɵɵtextInterpolate","ctx_r3","displayName$","ɵɵnamespaceHTML","HeaderComponent_app_redeem_code_31_Template_app_redeem_code_close_0_listener","_r12","ctx_r11","showReedemDialog$","next","HeaderComponent","lang","get","constructor","store$","builder","overlayService","positionBuilder","menuService","allowHeaderFunctions","defaultTitle","select","state","interface","language","title$","title","group","Validators","required","showLanguagePicker$","context","publicAppConfig","multiLingual","userLoggedIn$","user","profileLoaded","profile","displayname","userMenuPosition","BehaviorSubject","ngOnInit","pipe","tap","setValue","dispatch","UpdateLanguage","value","openOverlay","userMenuOverlayRef","dismissOverlay","positionStrategy","flexibleConnectedTo","userMenuNavElementRef","nativeElement","withPositions","originX","originY","overlayX","overlayY","component","UserMenuComponent","overlayDismissed","subscribe","data","redeemInvitationCodeClicked","ɵɵdirectiveInject","Store","FormBuilder","OverlayService","OverlayPositionBuilder","MenuService","selectors","viewQuery","HeaderComponent_Query","rf","ctx","ɵɵtemplate","HeaderComponent_app_sidebar_1_Template","HeaderComponent_div_5_Template","HeaderComponent_li_23_Template","HeaderComponent_li_25_Template","ɵɵnamespaceSVG","HeaderComponent_app_redeem_code_31_Template","ɵɵtextInterpolate1","AsyncPipe","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TranslateModule","TranslatePipe","NgIf","SidebarComponent","RedeemInvitationCodeComponent","styles"],"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,25,26,27,28,33,34,35,36,37,38,69]}