import { c as dt, f as pt, i as ft } from "@nf-internal/chunk-ALR2ABW3";
import { a as f } from "@nf-internal/chunk-JE6VEUSL";
import { a as ct } from "@nf-internal/chunk-DG2NPXAW";
import { a as z } from "@nf-internal/chunk-P7VGBIY2";
import { k as Ht, lb as _t } from "@nf-internal/chunk-VJYBASWG";
import { a as Z } from "@nf-internal/chunk-XID2BBVI";
import { a as H } from "@nf-internal/chunk-RECHUXGF";
import { d as B } from "@nf-internal/chunk-PGIYYMTQ";
import { d as Lt, f as A, g as Xt, i as w, m as Tt, n as Ft, o as Nt, p as Wt, q as It, r as G } from "@nf-internal/chunk-UAGYDWDP";
import { b as j, c as Yt, d as ht } from "@nf-internal/chunk-T23P62JN";
import "@nf-internal/chunk-MQ6KVUBG";
import { b as lt } from "@nf-internal/chunk-FVDLKYOC";
import { a as M } from "@nf-internal/chunk-DQ6Z6NC4";
import { a as D, b as at } from "@nf-internal/chunk-Y2IKDDHC";
import * as _ from "@angular/core";
import { DOCUMENT as E, NgZone as P, inject as p, Injector as R, RendererFactory2 as Q, afterNextRender as ut, ElementRef as V, InjectionToken as tt, ApplicationRef as zt, Renderer2 as Zt, ANIMATION_MODULE_TYPE as jt, EnvironmentInjector as Gt, EventEmitter as S, TemplateRef as Kt, ViewContainerRef as $t, booleanAttribute as m } from "@angular/core";
import { Location as Ut } from "@angular/common";
import { Subject as O, Subscription as k } from "rxjs";
import { filter as qt, takeWhile as Jt } from "rxjs/operators";
var gt = lt();
function Ot(s) { return new Y(s.get(w), s.get(E)); }
var Y = class {
    _viewportRuler;
    _previousHTMLStyles = { top: "", left: "" };
    _previousScrollPosition;
    _isEnabled = !1;
    _document;
    constructor(t, e) { this._viewportRuler = t, this._document = e; }
    attach() { }
    enable() { if (this._canBeEnabled()) {
        let t = this._document.documentElement;
        this._previousScrollPosition = this._viewportRuler.getViewportScrollPosition(), this._previousHTMLStyles.left = t.style.left || "", this._previousHTMLStyles.top = t.style.top || "", t.style.left = f(-this._previousScrollPosition.left), t.style.top = f(-this._previousScrollPosition.top), t.classList.add("cdk-global-scrollblock"), this._isEnabled = !0;
    } }
    disable() { if (this._isEnabled) {
        let t = this._document.documentElement, e = this._document.body, i = t.style, o = e.style, n = i.scrollBehavior || "", r = o.scrollBehavior || "";
        this._isEnabled = !1, i.left = this._previousHTMLStyles.left, i.top = this._previousHTMLStyles.top, t.classList.remove("cdk-global-scrollblock"), gt && (i.scrollBehavior = o.scrollBehavior = "auto"), window.scroll(this._previousScrollPosition.left, this._previousScrollPosition.top), gt && (i.scrollBehavior = n, o.scrollBehavior = r);
    } }
    _canBeEnabled() { if (this._document.documentElement.classList.contains("cdk-global-scrollblock") || this._isEnabled)
        return !1; let e = this._document.documentElement, i = this._viewportRuler.getViewportSize(); return e.scrollHeight > i.height || e.scrollWidth > i.width; }
};
function kt(s, t) { return new L(s.get(A), s.get(P), s.get(w), t); }
var L = class {
    _scrollDispatcher;
    _ngZone;
    _viewportRuler;
    _config;
    _scrollSubscription = null;
    _overlayRef;
    _initialScrollPosition;
    constructor(t, e, i, o) { this._scrollDispatcher = t, this._ngZone = e, this._viewportRuler = i, this._config = o; }
    attach(t) { this._overlayRef, this._overlayRef = t; }
    enable() { if (this._scrollSubscription)
        return; let t = this._scrollDispatcher.scrolled(0).pipe(qt(e => !e || !this._overlayRef.overlayElement.contains(e.getElementRef().nativeElement))); this._config && this._config.threshold && this._config.threshold > 1 ? (this._initialScrollPosition = this._viewportRuler.getViewportScrollPosition().top, this._scrollSubscription = t.subscribe(() => { let e = this._viewportRuler.getViewportScrollPosition().top; Math.abs(e - this._initialScrollPosition) > this._config.threshold ? this._detach() : this._overlayRef.updatePosition(); })) : this._scrollSubscription = t.subscribe(this._detach); }
    disable() { this._scrollSubscription && (this._scrollSubscription.unsubscribe(), this._scrollSubscription = null); }
    detach() { this.disable(), this._overlayRef = null; }
    _detach = () => { this.disable(), this._overlayRef.hasAttached() && this._ngZone.run(() => this._overlayRef.detach()); };
};
function Qt() { return new C; }
var C = class {
    enable() { }
    disable() { }
    attach() { }
};
function K(s, t) { return t.some(e => { let i = s.bottom < e.top, o = s.top > e.bottom, n = s.right < e.left, r = s.left > e.right; return i || o || n || r; }); }
function yt(s, t) { return t.some(e => { let i = s.top < e.top, o = s.bottom > e.bottom, n = s.left < e.left, r = s.right > e.right; return i || o || n || r; }); }
function et(s, t) { return new X(s.get(A), s.get(w), s.get(P), t); }
var X = class {
    _scrollDispatcher;
    _viewportRuler;
    _ngZone;
    _config;
    _scrollSubscription = null;
    _overlayRef;
    constructor(t, e, i, o) { this._scrollDispatcher = t, this._viewportRuler = e, this._ngZone = i, this._config = o; }
    attach(t) { this._overlayRef, this._overlayRef = t; }
    enable() { if (!this._scrollSubscription) {
        let t = this._config ? this._config.scrollThrottle : 0;
        this._scrollSubscription = this._scrollDispatcher.scrolled(t).subscribe(() => { if (this._overlayRef.updatePosition(), this._config && this._config.autoClose) {
            let e = this._overlayRef.overlayElement.getBoundingClientRect(), { width: i, height: o } = this._viewportRuler.getViewportSize();
            K(e, [{ width: i, height: o, bottom: o, right: i, top: 0, left: 0 }]) && (this.disable(), this._ngZone.run(() => this._overlayRef.detach()));
        } });
    } }
    disable() { this._scrollSubscription && (this._scrollSubscription.unsubscribe(), this._scrollSubscription = null); }
    detach() { this.disable(), this._overlayRef = null; }
}, Ct = (() => { class s {
    _injector = p(R);
    noop = () => new C;
    close = e => kt(this._injector, e);
    block = () => Ot(this._injector);
    reposition = e => et(this._injector, e);
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), x = class {
    positionStrategy;
    scrollStrategy = new C;
    panelClass = "";
    hasBackdrop = !1;
    backdropClass = "cdk-overlay-dark-backdrop";
    disableAnimations;
    width;
    height;
    minWidth;
    minHeight;
    maxWidth;
    maxHeight;
    direction;
    disposeOnNavigation = !1;
    usePopover;
    eventPredicate;
    constructor(t) { if (t) {
        let e = Object.keys(t);
        for (let i of e)
            t[i] !== void 0 && (this[i] = t[i]);
    } }
}, $ = class {
    offsetX;
    offsetY;
    panelClass;
    originX;
    originY;
    overlayX;
    overlayY;
    constructor(t, e, i, o, n) { this.offsetX = i, this.offsetY = o, this.panelClass = n, this.originX = t.originX, this.originY = t.originY, this.overlayX = e.overlayX, this.overlayY = e.overlayY; }
}, U = class {
    isOriginClipped = !1;
    isOriginOutsideView = !1;
    isOverlayClipped = !1;
    isOverlayOutsideView = !1;
}, T = class {
    connectionPair;
    scrollableViewProperties;
    constructor(t, e) { this.connectionPair = t, this.scrollableViewProperties = e; }
};
function te(s, t) { if (t !== "top" && t !== "bottom" && t !== "center")
    throw Error(`ConnectedPosition: Invalid ${s} "${t}". Expected "top", "bottom" or "center".`); }
function ee(s, t) { if (t !== "start" && t !== "end" && t !== "center")
    throw Error(`ConnectedPosition: Invalid ${s} "${t}". Expected "start", "end" or "center".`); }
var Pt = (() => { class s {
    _attachedOverlays = [];
    _document = p(E);
    _isAttached = !1;
    ngOnDestroy() { this.detach(); }
    add(e) { this.remove(e), this._attachedOverlays.push(e); }
    remove(e) { let i = this._attachedOverlays.indexOf(e); i > -1 && this._attachedOverlays.splice(i, 1), this._attachedOverlays.length === 0 && this.detach(); }
    canReceiveEvent(e, i, o) { return o.observers.length < 1 ? !1 : e.eventPredicate ? e.eventPredicate(i) : !0; }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), xt = (() => { class s extends Pt {
    _ngZone = p(P);
    _renderer = p(Q).createRenderer(null, null);
    _cleanupKeydown;
    add(e) { super.add(e), this._isAttached || (this._ngZone.runOutsideAngular(() => { this._cleanupKeydown = this._renderer.listen("body", "keydown", this._keydownListener); }), this._isAttached = !0); }
    detach() { this._isAttached && (this._cleanupKeydown?.(), this._isAttached = !1); }
    _keydownListener = e => { let i = this._attachedOverlays; for (let o = i.length - 1; o > -1; o--) {
        let n = i[o];
        if (this.canReceiveEvent(n, e, n._keydownEvents)) {
            this._ngZone.run(() => n._keydownEvents.next(e));
            break;
        }
    } };
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), Et = (() => { class s extends Pt {
    _platform = p(M);
    _ngZone = p(P);
    _renderer = p(Q).createRenderer(null, null);
    _cursorOriginalValue;
    _cursorStyleIsSet = !1;
    _pointerDownEventTarget = null;
    _cleanups;
    add(e) { if (super.add(e), !this._isAttached) {
        let i = this._document.body, o = { capture: !0 }, n = this._renderer;
        this._cleanups = this._ngZone.runOutsideAngular(() => [n.listen(i, "pointerdown", this._pointerDownListener, o), n.listen(i, "click", this._clickListener, o), n.listen(i, "auxclick", this._clickListener, o), n.listen(i, "contextmenu", this._clickListener, o)]), this._platform.IOS && !this._cursorStyleIsSet && (this._cursorOriginalValue = i.style.cursor, i.style.cursor = "pointer", this._cursorStyleIsSet = !0), this._isAttached = !0;
    } }
    detach() { this._isAttached && (this._cleanups?.forEach(e => e()), this._cleanups = void 0, this._platform.IOS && this._cursorStyleIsSet && (this._document.body.style.cursor = this._cursorOriginalValue, this._cursorStyleIsSet = !1), this._isAttached = !1); }
    _pointerDownListener = e => { this._pointerDownEventTarget = B(e); };
    _clickListener = e => { let i = B(e), o = e.type === "click" && this._pointerDownEventTarget ? this._pointerDownEventTarget : i; this._pointerDownEventTarget = null; let n = this._attachedOverlays.slice(); for (let r = n.length - 1; r > -1; r--) {
        let a = n[r], h = a._outsidePointerEvents;
        if (!(!a.hasAttached() || !this.canReceiveEvent(a, e, h))) {
            if (vt(a.overlayElement, i) || vt(a.overlayElement, o))
                break;
            this._ngZone ? this._ngZone.run(() => h.next(e)) : h.next(e);
        }
    } };
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })();
function vt(s, t) { let e = typeof ShadowRoot < "u" && ShadowRoot, i = t; for (; i;) {
    if (i === s)
        return !0;
    i = e && i instanceof ShadowRoot ? i.host : i.parentNode;
} return !1; }
var Rt = (() => {
    class s {
        static \u0275fac = function (i) { return new (i || s); };
        static \u0275cmp = _.\u0275\u0275defineComponent({ type: s, selectors: [["ng-component"]], hostAttrs: ["cdk-overlay-style-loader", ""], decls: 0, vars: 0, template: function (i, o) { }, styles: [`.cdk-overlay-container, .cdk-global-overlay-wrapper {
  pointer-events: none;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.cdk-overlay-container {
  position: fixed;
}
@layer cdk-overlay {
  .cdk-overlay-container {
    z-index: 1000;
  }
}
.cdk-overlay-container:empty {
  display: none;
}

.cdk-global-overlay-wrapper {
  display: flex;
  position: absolute;
}
@layer cdk-overlay {
  .cdk-global-overlay-wrapper {
    z-index: 1000;
  }
}

.cdk-overlay-pane {
  position: absolute;
  pointer-events: auto;
  box-sizing: border-box;
  display: flex;
  max-width: 100%;
  max-height: 100%;
}
@layer cdk-overlay {
  .cdk-overlay-pane {
    z-index: 1000;
  }
}

.cdk-overlay-backdrop {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  opacity: 0;
  touch-action: manipulation;
}
@layer cdk-overlay {
  .cdk-overlay-backdrop {
    z-index: 1000;
    transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);
  }
}
@media (prefers-reduced-motion) {
  .cdk-overlay-backdrop {
    transition-duration: 1ms;
  }
}

.cdk-overlay-backdrop-showing {
  opacity: 1;
}
@media (forced-colors: active) {
  .cdk-overlay-backdrop-showing {
    opacity: 0.6;
  }
}

@layer cdk-overlay {
  .cdk-overlay-dark-backdrop {
    background: rgba(0, 0, 0, 0.32);
  }
}

.cdk-overlay-transparent-backdrop {
  transition: visibility 1ms linear, opacity 1ms linear;
  visibility: hidden;
  opacity: 1;
}
.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing, .cdk-high-contrast-active .cdk-overlay-transparent-backdrop {
  opacity: 0;
  visibility: visible;
}

.cdk-overlay-backdrop-noop-animation {
  transition: none;
}

.cdk-overlay-connected-position-bounding-box {
  position: absolute;
  display: flex;
  flex-direction: column;
  min-width: 1px;
  min-height: 1px;
}
@layer cdk-overlay {
  .cdk-overlay-connected-position-bounding-box {
    z-index: 1000;
  }
}

.cdk-global-scrollblock {
  position: fixed;
  width: 100%;
  overflow-y: scroll;
}

.cdk-overlay-popover {
  background: none;
  border: none;
  padding: 0;
  outline: 0;
  overflow: visible;
  position: fixed;
  pointer-events: none;
  white-space: normal;
  color: inherit;
  text-decoration: none;
  width: 100%;
  height: 100%;
  inset: auto;
  top: 0;
  left: 0;
}
.cdk-overlay-popover::backdrop {
  display: none;
}
.cdk-overlay-popover .cdk-overlay-backdrop {
  position: fixed;
  z-index: auto;
}
`], encapsulation: 2 });
    }
    return s;
})(), I = (() => { class s {
    _platform = p(M);
    _containerElement;
    _document = p(E);
    _styleLoader = p(z);
    ngOnDestroy() { this._containerElement?.remove(); }
    getContainerElement() { return this._loadStyles(), this._containerElement || this._createContainer(), this._containerElement; }
    _createContainer() { let e = "cdk-overlay-container"; if (this._platform.isBrowser || H()) {
        let o = this._document.querySelectorAll(`.${e}[platform="server"], .${e}[platform="test"]`);
        for (let n = 0; n < o.length; n++)
            o[n].remove();
    } let i = this._document.createElement("div"); i.classList.add(e), H() ? i.setAttribute("platform", "test") : this._platform.isBrowser || i.setAttribute("platform", "server"), this._document.body.appendChild(i), this._containerElement = i; }
    _loadStyles() { this._styleLoader.load(Rt); }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), q = class {
    _renderer;
    _ngZone;
    element;
    _cleanupClick;
    _cleanupTransitionEnd;
    _fallbackTimeout;
    constructor(t, e, i, o) { this._renderer = e, this._ngZone = i, this.element = t.createElement("div"), this.element.classList.add("cdk-overlay-backdrop"), this._cleanupClick = e.listen(this.element, "click", o); }
    detach() { this._ngZone.runOutsideAngular(() => { let t = this.element; clearTimeout(this._fallbackTimeout), this._cleanupTransitionEnd?.(), this._cleanupTransitionEnd = this._renderer.listen(t, "transitionend", this.dispose), this._fallbackTimeout = setTimeout(this.dispose, 500), t.style.pointerEvents = "none", t.classList.remove("cdk-overlay-backdrop-showing"); }); }
    dispose = () => { clearTimeout(this._fallbackTimeout), this._cleanupClick?.(), this._cleanupTransitionEnd?.(), this._cleanupClick = this._cleanupTransitionEnd = this._fallbackTimeout = void 0, this.element.remove(); };
};
function it(s) { return s && s.nodeType === 1; }
var F = class {
    _portalOutlet;
    _host;
    _pane;
    _config;
    _ngZone;
    _keyboardDispatcher;
    _document;
    _location;
    _outsideClickDispatcher;
    _animationsDisabled;
    _injector;
    _renderer;
    _backdropClick = new O;
    _attachments = new O;
    _detachments = new O;
    _positionStrategy;
    _scrollStrategy;
    _locationChanges = k.EMPTY;
    _backdropRef = null;
    _detachContentMutationObserver;
    _detachContentAfterRenderRef;
    _disposed = !1;
    _previousHostParent;
    _keydownEvents = new O;
    _outsidePointerEvents = new O;
    _afterNextRenderRef;
    constructor(t, e, i, o, n, r, a, h, d, l = !1, c, u) { this._portalOutlet = t, this._host = e, this._pane = i, this._config = o, this._ngZone = n, this._keyboardDispatcher = r, this._document = a, this._location = h, this._outsideClickDispatcher = d, this._animationsDisabled = l, this._injector = c, this._renderer = u, o.scrollStrategy && (this._scrollStrategy = o.scrollStrategy, this._scrollStrategy.attach(this)), this._positionStrategy = o.positionStrategy; }
    get overlayElement() { return this._pane; }
    get backdropElement() { return this._backdropRef?.element || null; }
    get hostElement() { return this._host; }
    get eventPredicate() { return this._config?.eventPredicate || null; }
    attach(t) { if (this._disposed)
        return null; this._attachHost(); let e = this._portalOutlet.attach(t); return this._positionStrategy?.attach(this), this._updateStackingOrder(), this._updateElementSize(), this._updateElementDirection(), this._scrollStrategy && this._scrollStrategy.enable(), this._afterNextRenderRef?.destroy(), this._afterNextRenderRef = ut(() => { this.hasAttached() && this.updatePosition(); }, { injector: this._injector }), this._togglePointerEvents(!0), this._config.hasBackdrop && this._attachBackdrop(), this._config.panelClass && this._toggleClasses(this._pane, this._config.panelClass, !0), this._attachments.next(), this._completeDetachContent(), this._keyboardDispatcher.add(this), this._config.disposeOnNavigation && (this._locationChanges = this._location.subscribe(() => this.dispose())), this._outsideClickDispatcher.add(this), typeof e?.onDestroy == "function" && e.onDestroy(() => { this.hasAttached() && this._ngZone.runOutsideAngular(() => Promise.resolve().then(() => this.detach())); }), e; }
    detach() { if (!this.hasAttached())
        return; this.detachBackdrop(), this._togglePointerEvents(!1), this._positionStrategy && this._positionStrategy.detach && this._positionStrategy.detach(), this._scrollStrategy && this._scrollStrategy.disable(); let t = this._portalOutlet.detach(); return this._detachments.next(), this._completeDetachContent(), this._keyboardDispatcher.remove(this), this._detachContentWhenEmpty(), this._locationChanges.unsubscribe(), this._outsideClickDispatcher.remove(this), t; }
    dispose() { if (this._disposed)
        return; let t = this.hasAttached(); this._positionStrategy && this._positionStrategy.dispose(), this._disposeScrollStrategy(), this._backdropRef?.dispose(), this._locationChanges.unsubscribe(), this._keyboardDispatcher.remove(this), this._portalOutlet.dispose(), this._attachments.complete(), this._backdropClick.complete(), this._keydownEvents.complete(), this._outsidePointerEvents.complete(), this._outsideClickDispatcher.remove(this), this._host?.remove(), this._afterNextRenderRef?.destroy(), this._previousHostParent = this._pane = this._host = this._backdropRef = null, t && this._detachments.next(), this._detachments.complete(), this._completeDetachContent(), this._disposed = !0; }
    hasAttached() { return this._portalOutlet.hasAttached(); }
    backdropClick() { return this._backdropClick; }
    attachments() { return this._attachments; }
    detachments() { return this._detachments; }
    keydownEvents() { return this._keydownEvents; }
    outsidePointerEvents() { return this._outsidePointerEvents; }
    getConfig() { return this._config; }
    updatePosition() { this._positionStrategy && this._positionStrategy.apply(); }
    updatePositionStrategy(t) { t !== this._positionStrategy && (this._positionStrategy && this._positionStrategy.dispose(), this._positionStrategy = t, this.hasAttached() && (t.attach(this), this.updatePosition())); }
    updateSize(t) { this._config = D(D({}, this._config), t), this._updateElementSize(); }
    setDirection(t) { this._config = at(D({}, this._config), { direction: t }), this._updateElementDirection(); }
    addPanelClass(t) { this._pane && this._toggleClasses(this._pane, t, !0); }
    removePanelClass(t) { this._pane && this._toggleClasses(this._pane, t, !1); }
    getDirection() { let t = this._config.direction; return t ? typeof t == "string" ? t : t.value : "ltr"; }
    updateScrollStrategy(t) { t !== this._scrollStrategy && (this._disposeScrollStrategy(), this._scrollStrategy = t, this.hasAttached() && (t.attach(this), t.enable())); }
    _updateElementDirection() { this._host.setAttribute("dir", this.getDirection()); }
    _updateElementSize() { if (!this._pane)
        return; let t = this._pane.style; t.width = f(this._config.width), t.height = f(this._config.height), t.minWidth = f(this._config.minWidth), t.minHeight = f(this._config.minHeight), t.maxWidth = f(this._config.maxWidth), t.maxHeight = f(this._config.maxHeight); }
    _togglePointerEvents(t) { this._pane.style.pointerEvents = t ? "" : "none"; }
    _attachHost() { if (!this._host.parentElement) {
        let t = this._config.usePopover ? this._positionStrategy?.getPopoverInsertionPoint?.() : null;
        it(t) ? t.after(this._host) : t?.type === "parent" ? t.element.appendChild(this._host) : this._previousHostParent?.appendChild(this._host);
    } if (this._config.usePopover)
        try {
            this._host.showPopover();
        }
        catch { } }
    _attachBackdrop() { let t = "cdk-overlay-backdrop-showing"; this._backdropRef?.dispose(), this._backdropRef = new q(this._document, this._renderer, this._ngZone, e => { this._backdropClick.next(e); }), this._animationsDisabled && this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"), this._config.backdropClass && this._toggleClasses(this._backdropRef.element, this._config.backdropClass, !0), this._config.usePopover ? this._host.prepend(this._backdropRef.element) : this._host.parentElement.insertBefore(this._backdropRef.element, this._host), !this._animationsDisabled && typeof requestAnimationFrame < "u" ? this._ngZone.runOutsideAngular(() => { requestAnimationFrame(() => this._backdropRef?.element.classList.add(t)); }) : this._backdropRef.element.classList.add(t); }
    _updateStackingOrder() { !this._config.usePopover && this._host.nextSibling && this._host.parentNode.appendChild(this._host); }
    detachBackdrop() { this._animationsDisabled ? (this._backdropRef?.dispose(), this._backdropRef = null) : this._backdropRef?.detach(); }
    _toggleClasses(t, e, i) { let o = Z(e || []).filter(n => !!n); o.length && (i ? t.classList.add(...o) : t.classList.remove(...o)); }
    _detachContentWhenEmpty() { let t = !1; try {
        this._detachContentAfterRenderRef = ut(() => { t = !0, this._detachContent(); }, { injector: this._injector });
    }
    catch (e) {
        if (t)
            throw e;
        this._detachContent();
    } globalThis.MutationObserver && this._pane && (this._detachContentMutationObserver ||= new globalThis.MutationObserver(() => { this._detachContent(); }), this._detachContentMutationObserver.observe(this._pane, { childList: !0 })); }
    _detachContent() { (!this._pane || !this._host || this._pane.children.length === 0) && (this._pane && this._config.panelClass && this._toggleClasses(this._pane, this._config.panelClass, !1), this._host && this._host.parentElement && (this._previousHostParent = this._host.parentElement, this._host.remove()), this._completeDetachContent()); }
    _completeDetachContent() { this._detachContentAfterRenderRef?.destroy(), this._detachContentAfterRenderRef = void 0, this._detachContentMutationObserver?.disconnect(); }
    _disposeScrollStrategy() { let t = this._scrollStrategy; t?.disable(), t?.detach?.(); }
}, mt = "cdk-overlay-connected-position-bounding-box", ie = /([A-Za-z%]+)$/;
function st(s, t) { return new N(t, s.get(w), s.get(E), s.get(M), s.get(I)); }
var N = class {
    _viewportRuler;
    _document;
    _platform;
    _overlayContainer;
    _overlayRef;
    _isInitialRender = !1;
    _lastBoundingBoxSize = { width: 0, height: 0 };
    _isPushed = !1;
    _canPush = !0;
    _growAfterOpen = !1;
    _hasFlexibleDimensions = !0;
    _positionLocked = !1;
    _originRect;
    _overlayRect;
    _viewportRect;
    _containerRect;
    _viewportMargin = 0;
    _scrollables = [];
    _preferredPositions = [];
    _origin;
    _pane;
    _isDisposed = !1;
    _boundingBox = null;
    _lastPosition = null;
    _lastScrollVisibility = null;
    _positionChanges = new O;
    _resizeSubscription = k.EMPTY;
    _offsetX = 0;
    _offsetY = 0;
    _transformOriginSelector;
    _appliedPanelClasses = [];
    _previousPushAmount = null;
    _popoverLocation = "global";
    positionChanges = this._positionChanges;
    get positions() { return this._preferredPositions; }
    constructor(t, e, i, o, n) { this._viewportRuler = e, this._document = i, this._platform = o, this._overlayContainer = n, this.setOrigin(t); }
    attach(t) { this._overlayRef && this._overlayRef, this._validatePositions(), t.hostElement.classList.add(mt), this._overlayRef = t, this._boundingBox = t.hostElement, this._pane = t.overlayElement, this._isDisposed = !1, this._isInitialRender = !0, this._lastPosition = null, this._resizeSubscription.unsubscribe(), this._resizeSubscription = this._viewportRuler.change().subscribe(() => { this._isInitialRender = !0, this.apply(); }); }
    apply() { if (this._isDisposed || !this._platform.isBrowser)
        return; if (!this._isInitialRender && this._positionLocked && this._lastPosition) {
        this.reapplyLastPosition();
        return;
    } this._clearPanelClasses(), this._resetOverlayElementStyles(), this._resetBoundingBoxStyles(), this._viewportRect = this._getNarrowedViewportRect(), this._originRect = this._getOriginRect(), this._overlayRect = this._pane.getBoundingClientRect(), this._containerRect = this._getContainerRect(); let t = this._originRect, e = this._overlayRect, i = this._viewportRect, o = this._containerRect, n = [], r; for (let a of this._preferredPositions) {
        let h = this._getOriginPoint(t, o, a), d = this._getOverlayPoint(h, e, a), l = this._getOverlayFit(d, e, i, a);
        if (l.isCompletelyWithinViewport) {
            this._isPushed = !1, this._applyPosition(a, h);
            return;
        }
        if (this._canFitWithFlexibleDimensions(l, d, i)) {
            n.push({ position: a, origin: h, overlayRect: e, boundingBoxRect: this._calculateBoundingBoxRect(h, a) });
            continue;
        }
        (!r || r.overlayFit.visibleArea < l.visibleArea) && (r = { overlayFit: l, overlayPoint: d, originPoint: h, position: a, overlayRect: e });
    } if (n.length) {
        let a = null, h = -1;
        for (let d of n) {
            let l = d.boundingBoxRect.width * d.boundingBoxRect.height * (d.position.weight || 1);
            l > h && (h = l, a = d);
        }
        this._isPushed = !1, this._applyPosition(a.position, a.origin);
        return;
    } if (this._canPush) {
        this._isPushed = !0, this._applyPosition(r.position, r.originPoint);
        return;
    } this._applyPosition(r.position, r.originPoint); }
    detach() { this._clearPanelClasses(), this._lastPosition = null, this._previousPushAmount = null, this._resizeSubscription.unsubscribe(); }
    dispose() { this._isDisposed || (this._boundingBox && b(this._boundingBox.style, { top: "", left: "", right: "", bottom: "", height: "", width: "", alignItems: "", justifyContent: "" }), this._pane && this._resetOverlayElementStyles(), this._overlayRef && this._overlayRef.hostElement.classList.remove(mt), this.detach(), this._positionChanges.complete(), this._overlayRef = this._boundingBox = null, this._isDisposed = !0); }
    reapplyLastPosition() { if (this._isDisposed || !this._platform.isBrowser)
        return; let t = this._lastPosition; t ? (this._originRect = this._getOriginRect(), this._overlayRect = this._pane.getBoundingClientRect(), this._viewportRect = this._getNarrowedViewportRect(), this._containerRect = this._getContainerRect(), this._applyPosition(t, this._getOriginPoint(this._originRect, this._containerRect, t))) : this.apply(); }
    withScrollableContainers(t) { return this._scrollables = t, this; }
    withPositions(t) { return this._preferredPositions = t, t.indexOf(this._lastPosition) === -1 && (this._lastPosition = null), this._validatePositions(), this; }
    withViewportMargin(t) { return this._viewportMargin = t, this; }
    withFlexibleDimensions(t = !0) { return this._hasFlexibleDimensions = t, this; }
    withGrowAfterOpen(t = !0) { return this._growAfterOpen = t, this; }
    withPush(t = !0) { return this._canPush = t, this; }
    withLockedPosition(t = !0) { return this._positionLocked = t, this; }
    setOrigin(t) { return this._origin = t, this; }
    withDefaultOffsetX(t) { return this._offsetX = t, this; }
    withDefaultOffsetY(t) { return this._offsetY = t, this; }
    withTransformOriginOn(t) { return this._transformOriginSelector = t, this; }
    withPopoverLocation(t) { return this._popoverLocation = t, this; }
    getPopoverInsertionPoint() { return this._popoverLocation === "global" ? null : this._popoverLocation !== "inline" ? this._popoverLocation : this._origin instanceof V ? this._origin.nativeElement : it(this._origin) ? this._origin : null; }
    _getOriginPoint(t, e, i) { let o; if (i.originX == "center")
        o = t.left + t.width / 2;
    else {
        let r = this._isRtl() ? t.right : t.left, a = this._isRtl() ? t.left : t.right;
        o = i.originX == "start" ? r : a;
    } e.left < 0 && (o -= e.left); let n; return i.originY == "center" ? n = t.top + t.height / 2 : n = i.originY == "top" ? t.top : t.bottom, e.top < 0 && (n -= e.top), { x: o, y: n }; }
    _getOverlayPoint(t, e, i) { let o; i.overlayX == "center" ? o = -e.width / 2 : i.overlayX === "start" ? o = this._isRtl() ? -e.width : 0 : o = this._isRtl() ? 0 : -e.width; let n; return i.overlayY == "center" ? n = -e.height / 2 : n = i.overlayY == "top" ? 0 : -e.height, { x: t.x + o, y: t.y + n }; }
    _getOverlayFit(t, e, i, o) { let n = wt(e), { x: r, y: a } = t, h = this._getOffset(o, "x"), d = this._getOffset(o, "y"); h && (r += h), d && (a += d); let l = 0 - r, c = r + n.width - i.width, u = 0 - a, y = a + n.height - i.height, g = this._subtractOverflows(n.width, l, c), v = this._subtractOverflows(n.height, u, y), rt = g * v; return { visibleArea: rt, isCompletelyWithinViewport: n.width * n.height === rt, fitsInViewportVertically: v === n.height, fitsInViewportHorizontally: g == n.width }; }
    _canFitWithFlexibleDimensions(t, e, i) { if (this._hasFlexibleDimensions) {
        let o = i.bottom - e.y, n = i.right - e.x, r = bt(this._overlayRef.getConfig().minHeight), a = bt(this._overlayRef.getConfig().minWidth), h = t.fitsInViewportVertically || r != null && r <= o, d = t.fitsInViewportHorizontally || a != null && a <= n;
        return h && d;
    } return !1; }
    _pushOverlayOnScreen(t, e, i) { if (this._previousPushAmount && this._positionLocked)
        return { x: t.x + this._previousPushAmount.x, y: t.y + this._previousPushAmount.y }; let o = wt(e), n = this._viewportRect, r = Math.max(t.x + o.width - n.width, 0), a = Math.max(t.y + o.height - n.height, 0), h = Math.max(n.top - i.top - t.y, 0), d = Math.max(n.left - i.left - t.x, 0), l = 0, c = 0; return o.width <= n.width ? l = d || -r : l = t.x < this._getViewportMarginStart() ? n.left - i.left - t.x : 0, o.height <= n.height ? c = h || -a : c = t.y < this._getViewportMarginTop() ? n.top - i.top - t.y : 0, this._previousPushAmount = { x: l, y: c }, { x: t.x + l, y: t.y + c }; }
    _applyPosition(t, e) { if (this._setTransformOrigin(t), this._setOverlayElementStyles(e, t), this._setBoundingBoxStyles(e, t), t.panelClass && this._addPanelClasses(t.panelClass), this._positionChanges.observers.length) {
        let i = this._getScrollVisibility();
        if (t !== this._lastPosition || !this._lastScrollVisibility || !se(this._lastScrollVisibility, i)) {
            let o = new T(t, i);
            this._positionChanges.next(o);
        }
        this._lastScrollVisibility = i;
    } this._lastPosition = t, this._isInitialRender = !1; }
    _setTransformOrigin(t) { if (!this._transformOriginSelector)
        return; let e = this._boundingBox.querySelectorAll(this._transformOriginSelector), i, o = t.overlayY; t.overlayX === "center" ? i = "center" : this._isRtl() ? i = t.overlayX === "start" ? "right" : "left" : i = t.overlayX === "start" ? "left" : "right"; for (let n = 0; n < e.length; n++)
        e[n].style.transformOrigin = `${i} ${o}`; }
    _calculateBoundingBoxRect(t, e) { let i = this._viewportRect, o = this._isRtl(), n, r, a; if (e.overlayY === "top")
        r = t.y, n = i.height - r + this._getViewportMarginBottom();
    else if (e.overlayY === "bottom")
        a = i.height - t.y + this._getViewportMarginTop() + this._getViewportMarginBottom(), n = i.height - a + this._getViewportMarginTop();
    else {
        let y = Math.min(i.bottom - t.y + i.top, t.y), g = this._lastBoundingBoxSize.height;
        n = y * 2, r = t.y - y, n > g && !this._isInitialRender && !this._growAfterOpen && (r = t.y - g / 2);
    } let h = e.overlayX === "start" && !o || e.overlayX === "end" && o, d = e.overlayX === "end" && !o || e.overlayX === "start" && o, l, c, u; if (d)
        u = i.width - t.x + this._getViewportMarginStart() + this._getViewportMarginEnd(), l = t.x - this._getViewportMarginStart();
    else if (h)
        c = t.x, l = i.right - t.x - this._getViewportMarginEnd();
    else {
        let y = Math.min(i.right - t.x + i.left, t.x), g = this._lastBoundingBoxSize.width;
        l = y * 2, c = t.x - y, l > g && !this._isInitialRender && !this._growAfterOpen && (c = t.x - g / 2);
    } return { top: r, left: c, bottom: a, right: u, width: l, height: n }; }
    _setBoundingBoxStyles(t, e) { let i = this._calculateBoundingBoxRect(t, e); !this._isInitialRender && !this._growAfterOpen && (i.height = Math.min(i.height, this._lastBoundingBoxSize.height), i.width = Math.min(i.width, this._lastBoundingBoxSize.width)); let o = {}; if (this._hasExactPosition())
        o.top = o.left = "0", o.bottom = o.right = "auto", o.maxHeight = o.maxWidth = "", o.width = o.height = "100%";
    else {
        let n = this._overlayRef.getConfig().maxHeight, r = this._overlayRef.getConfig().maxWidth;
        o.width = f(i.width), o.height = f(i.height), o.top = f(i.top) || "auto", o.bottom = f(i.bottom) || "auto", o.left = f(i.left) || "auto", o.right = f(i.right) || "auto", e.overlayX === "center" ? o.alignItems = "center" : o.alignItems = e.overlayX === "end" ? "flex-end" : "flex-start", e.overlayY === "center" ? o.justifyContent = "center" : o.justifyContent = e.overlayY === "bottom" ? "flex-end" : "flex-start", n && (o.maxHeight = f(n)), r && (o.maxWidth = f(r));
    } this._lastBoundingBoxSize = i, b(this._boundingBox.style, o); }
    _resetBoundingBoxStyles() { b(this._boundingBox.style, { top: "0", left: "0", right: "0", bottom: "0", height: "", width: "", alignItems: "", justifyContent: "" }); }
    _resetOverlayElementStyles() { b(this._pane.style, { top: "", left: "", bottom: "", right: "", position: "", transform: "" }); }
    _setOverlayElementStyles(t, e) { let i = {}, o = this._hasExactPosition(), n = this._hasFlexibleDimensions, r = this._overlayRef.getConfig(); if (o) {
        let l = this._viewportRuler.getViewportScrollPosition();
        b(i, this._getExactOverlayY(e, t, l)), b(i, this._getExactOverlayX(e, t, l));
    }
    else
        i.position = "static"; let a = "", h = this._getOffset(e, "x"), d = this._getOffset(e, "y"); h && (a += `translateX(${h}px) `), d && (a += `translateY(${d}px)`), i.transform = a.trim(), r.maxHeight && (o ? i.maxHeight = f(r.maxHeight) : n && (i.maxHeight = "")), r.maxWidth && (o ? i.maxWidth = f(r.maxWidth) : n && (i.maxWidth = "")), b(this._pane.style, i); }
    _getExactOverlayY(t, e, i) { let o = { top: "", bottom: "" }, n = this._getOverlayPoint(e, this._overlayRect, t); if (this._isPushed && (n = this._pushOverlayOnScreen(n, this._overlayRect, i)), t.overlayY === "bottom") {
        let r = this._document.documentElement.clientHeight;
        o.bottom = `${r - (n.y + this._overlayRect.height)}px`;
    }
    else
        o.top = f(n.y); return o; }
    _getExactOverlayX(t, e, i) { let o = { left: "", right: "" }, n = this._getOverlayPoint(e, this._overlayRect, t); this._isPushed && (n = this._pushOverlayOnScreen(n, this._overlayRect, i)); let r; if (this._isRtl() ? r = t.overlayX === "end" ? "left" : "right" : r = t.overlayX === "end" ? "right" : "left", r === "right") {
        let a = this._document.documentElement.clientWidth;
        o.right = `${a - (n.x + this._overlayRect.width)}px`;
    }
    else
        o.left = f(n.x); return o; }
    _getScrollVisibility() { let t = this._getOriginRect(), e = this._pane.getBoundingClientRect(), i = this._scrollables.map(o => o.getElementRef().nativeElement.getBoundingClientRect()); return { isOriginClipped: yt(t, i), isOriginOutsideView: K(t, i), isOverlayClipped: yt(e, i), isOverlayOutsideView: K(e, i) }; }
    _subtractOverflows(t, ...e) { return e.reduce((i, o) => i - Math.max(o, 0), t); }
    _getNarrowedViewportRect() { let t = this._document.documentElement.clientWidth, e = this._document.documentElement.clientHeight, i = this._viewportRuler.getViewportScrollPosition(); return { top: i.top + this._getViewportMarginTop(), left: i.left + this._getViewportMarginStart(), right: i.left + t - this._getViewportMarginEnd(), bottom: i.top + e - this._getViewportMarginBottom(), width: t - this._getViewportMarginStart() - this._getViewportMarginEnd(), height: e - this._getViewportMarginTop() - this._getViewportMarginBottom() }; }
    _isRtl() { return this._overlayRef.getDirection() === "rtl"; }
    _hasExactPosition() { return !this._hasFlexibleDimensions || this._isPushed; }
    _getOffset(t, e) { return e === "x" ? t.offsetX == null ? this._offsetX : t.offsetX : t.offsetY == null ? this._offsetY : t.offsetY; }
    _validatePositions() { }
    _addPanelClasses(t) { this._pane && Z(t).forEach(e => { e !== "" && this._appliedPanelClasses.indexOf(e) === -1 && (this._appliedPanelClasses.push(e), this._pane.classList.add(e)); }); }
    _clearPanelClasses() { this._pane && (this._appliedPanelClasses.forEach(t => { this._pane.classList.remove(t); }), this._appliedPanelClasses = []); }
    _getViewportMarginStart() { return typeof this._viewportMargin == "number" ? this._viewportMargin : this._viewportMargin?.start ?? 0; }
    _getViewportMarginEnd() { return typeof this._viewportMargin == "number" ? this._viewportMargin : this._viewportMargin?.end ?? 0; }
    _getViewportMarginTop() { return typeof this._viewportMargin == "number" ? this._viewportMargin : this._viewportMargin?.top ?? 0; }
    _getViewportMarginBottom() { return typeof this._viewportMargin == "number" ? this._viewportMargin : this._viewportMargin?.bottom ?? 0; }
    _getOriginRect() { let t = this._origin; if (t instanceof V)
        return t.nativeElement.getBoundingClientRect(); if (t instanceof Element)
        return t.getBoundingClientRect(); let e = t.width || 0, i = t.height || 0; return { top: t.y, bottom: t.y + i, left: t.x, right: t.x + e, height: i, width: e }; }
    _getContainerRect() { let t = this._overlayRef.getConfig().usePopover && this._popoverLocation !== "global", e = this._overlayContainer.getContainerElement(); t && (e.style.display = "block"); let i = e.getBoundingClientRect(); return t && (e.style.display = ""), i; }
};
function b(s, t) { for (let e in t)
    t.hasOwnProperty(e) && (s[e] = t[e]); return s; }
function bt(s) { if (typeof s != "number" && s != null) {
    let [t, e] = s.split(ie);
    return !e || e === "px" ? parseFloat(t) : null;
} return s || null; }
function wt(s) { return { top: Math.floor(s.top), right: Math.floor(s.right), bottom: Math.floor(s.bottom), left: Math.floor(s.left), width: Math.floor(s.width), height: Math.floor(s.height) }; }
function se(s, t) { return s === t ? !0 : s.isOriginClipped === t.isOriginClipped && s.isOriginOutsideView === t.isOriginOutsideView && s.isOverlayClipped === t.isOverlayClipped && s.isOverlayOutsideView === t.isOverlayOutsideView; }
var oe = [{ originX: "start", originY: "bottom", overlayX: "start", overlayY: "top" }, { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom" }, { originX: "end", originY: "bottom", overlayX: "end", overlayY: "top" }, { originX: "end", originY: "top", overlayX: "end", overlayY: "bottom" }], ne = [{ originX: "end", originY: "top", overlayX: "start", overlayY: "top" }, { originX: "end", originY: "bottom", overlayX: "start", overlayY: "bottom" }, { originX: "start", originY: "top", overlayX: "end", overlayY: "top" }, { originX: "start", originY: "bottom", overlayX: "end", overlayY: "bottom" }], St = "cdk-global-overlay-wrapper";
function Dt(s) { return new W; }
var W = class {
    _overlayRef;
    _cssPosition = "static";
    _topOffset = "";
    _bottomOffset = "";
    _alignItems = "";
    _xPosition = "";
    _xOffset = "";
    _width = "";
    _height = "";
    _isDisposed = !1;
    attach(t) { let e = t.getConfig(); this._overlayRef = t, this._width && !e.width && t.updateSize({ width: this._width }), this._height && !e.height && t.updateSize({ height: this._height }), t.hostElement.classList.add(St), this._isDisposed = !1; }
    top(t = "") { return this._bottomOffset = "", this._topOffset = t, this._alignItems = "flex-start", this; }
    left(t = "") { return this._xOffset = t, this._xPosition = "left", this; }
    bottom(t = "") { return this._topOffset = "", this._bottomOffset = t, this._alignItems = "flex-end", this; }
    right(t = "") { return this._xOffset = t, this._xPosition = "right", this; }
    start(t = "") { return this._xOffset = t, this._xPosition = "start", this; }
    end(t = "") { return this._xOffset = t, this._xPosition = "end", this; }
    width(t = "") { return this._overlayRef ? this._overlayRef.updateSize({ width: t }) : this._width = t, this; }
    height(t = "") { return this._overlayRef ? this._overlayRef.updateSize({ height: t }) : this._height = t, this; }
    centerHorizontally(t = "") { return this.left(t), this._xPosition = "center", this; }
    centerVertically(t = "") { return this.top(t), this._alignItems = "center", this; }
    apply() { if (!this._overlayRef || !this._overlayRef.hasAttached())
        return; let t = this._overlayRef.overlayElement.style, e = this._overlayRef.hostElement.style, i = this._overlayRef.getConfig(), { width: o, height: n, maxWidth: r, maxHeight: a } = i, h = (o === "100%" || o === "100vw") && (!r || r === "100%" || r === "100vw"), d = (n === "100%" || n === "100vh") && (!a || a === "100%" || a === "100vh"), l = this._xPosition, c = this._xOffset, u = this._overlayRef.getConfig().direction === "rtl", y = "", g = "", v = ""; h ? v = "flex-start" : l === "center" ? (v = "center", u ? g = c : y = c) : u ? l === "left" || l === "end" ? (v = "flex-end", y = c) : (l === "right" || l === "start") && (v = "flex-start", g = c) : l === "left" || l === "start" ? (v = "flex-start", y = c) : (l === "right" || l === "end") && (v = "flex-end", g = c), t.position = this._cssPosition, t.marginLeft = h ? "0" : y, t.marginTop = d ? "0" : this._topOffset, t.marginBottom = this._bottomOffset, t.marginRight = h ? "0" : g, e.justifyContent = v, e.alignItems = d ? "flex-start" : this._alignItems; }
    dispose() { if (this._isDisposed || !this._overlayRef)
        return; let t = this._overlayRef.overlayElement.style, e = this._overlayRef.hostElement, i = e.style; e.classList.remove(St), i.justifyContent = i.alignItems = t.marginTop = t.marginBottom = t.marginLeft = t.marginRight = t.position = "", this._overlayRef = null, this._isDisposed = !0; }
}, Mt = (() => { class s {
    _injector = p(R);
    global() { return Dt(); }
    flexibleConnectedTo(e) { return st(this._injector, e); }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), ot = new tt("OVERLAY_DEFAULT_CONFIG");
function nt(s, t) { s.get(z).load(Rt); let e = s.get(I), i = s.get(E), o = s.get(ct), n = s.get(zt), r = s.get(j), a = s.get(Zt, null, { optional: !0 }) || s.get(Q).createRenderer(null, null), h = new x(t), d = s.get(ot, null, { optional: !0 })?.usePopover ?? !0; h.direction = h.direction || r.value, !i.body || !("showPopover" in i.body) ? h.usePopover = !1 : h.usePopover = t?.usePopover ?? d; let l = i.createElement("div"), c = i.createElement("div"); l.id = o.getId("cdk-overlay-"), l.classList.add("cdk-overlay-pane"), c.appendChild(l), h.usePopover && (c.setAttribute("popover", "manual"), c.classList.add("cdk-overlay-popover")); let u = h.usePopover ? h.positionStrategy?.getPopoverInsertionPoint?.() : null; return it(u) ? u.after(c) : u?.type === "parent" ? u.element.appendChild(c) : e.getContainerElement().appendChild(c), new F(new pt(l, n, s), c, l, h, s.get(P), s.get(xt), i, s.get(Ut), s.get(Et), t?.disableAnimations ?? s.get(jt, null, { optional: !0 }) === "NoopAnimations", s.get(Gt), a); }
var Bt = (() => { class s {
    scrollStrategies = p(Ct);
    _positionBuilder = p(Mt);
    _injector = p(R);
    create(e) { return nt(this._injector, e); }
    position() { return this._positionBuilder; }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = _.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })(), re = [{ originX: "start", originY: "bottom", overlayX: "start", overlayY: "top" }, { originX: "start", originY: "top", overlayX: "start", overlayY: "bottom" }, { originX: "end", originY: "top", overlayX: "end", overlayY: "bottom" }, { originX: "end", originY: "bottom", overlayX: "end", overlayY: "top" }], ae = new tt("cdk-connected-overlay-scroll-strategy", { providedIn: "root", factory: () => { let s = p(R); return () => et(s); } }), J = (() => { class s {
    elementRef = p(V);
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275dir = _.\u0275\u0275defineDirective({ type: s, selectors: [["", "cdk-overlay-origin", ""], ["", "overlay-origin", ""], ["", "cdkOverlayOrigin", ""]], exportAs: ["cdkOverlayOrigin"] });
} return s; })(), At = new tt("cdk-connected-overlay-default-config"), le = (() => { class s {
    _dir = p(j, { optional: !0 });
    _injector = p(R);
    _overlayRef;
    _templatePortal;
    _backdropSubscription = k.EMPTY;
    _attachSubscription = k.EMPTY;
    _detachSubscription = k.EMPTY;
    _positionSubscription = k.EMPTY;
    _offsetX;
    _offsetY;
    _position;
    _scrollStrategyFactory = p(ae);
    _ngZone = p(P);
    origin;
    positions;
    positionStrategy;
    get offsetX() { return this._offsetX; }
    set offsetX(e) { this._offsetX = e, this._position && this._updatePositionStrategy(this._position); }
    get offsetY() { return this._offsetY; }
    set offsetY(e) { this._offsetY = e, this._position && this._updatePositionStrategy(this._position); }
    width;
    height;
    minWidth;
    minHeight;
    backdropClass;
    panelClass;
    viewportMargin = 0;
    scrollStrategy;
    open = !1;
    disableClose = !1;
    transformOriginSelector;
    hasBackdrop = !1;
    lockPosition = !1;
    flexibleDimensions = !1;
    growAfterOpen = !1;
    push = !1;
    disposeOnNavigation = !1;
    usePopover;
    matchWidth = !1;
    set _config(e) { typeof e != "string" && this._assignConfig(e); }
    backdropClick = new S;
    positionChange = new S;
    attach = new S;
    detach = new S;
    overlayKeydown = new S;
    overlayOutsideClick = new S;
    constructor() { let e = p(Kt), i = p($t), o = p(At, { optional: !0 }), n = p(ot, { optional: !0 }); this.usePopover = n?.usePopover === !1 ? null : "global", this._templatePortal = new dt(e, i), this.scrollStrategy = this._scrollStrategyFactory(), o && this._assignConfig(o); }
    get overlayRef() { return this._overlayRef; }
    get dir() { return this._dir ? this._dir.value : "ltr"; }
    ngOnDestroy() { this._attachSubscription.unsubscribe(), this._detachSubscription.unsubscribe(), this._backdropSubscription.unsubscribe(), this._positionSubscription.unsubscribe(), this._overlayRef?.dispose(); }
    ngOnChanges(e) { this._position && (this._updatePositionStrategy(this._position), this._overlayRef?.updateSize({ width: this._getWidth(), minWidth: this.minWidth, height: this.height, minHeight: this.minHeight }), e.origin && this.open && this._position.apply()), e.open && (this.open ? this.attachOverlay() : this.detachOverlay()); }
    _createOverlay() { (!this.positions || !this.positions.length) && (this.positions = re); let e = this._overlayRef = nt(this._injector, this._buildConfig()); this._attachSubscription = e.attachments().subscribe(() => this.attach.emit()), this._detachSubscription = e.detachments().subscribe(() => this.detach.emit()), e.keydownEvents().subscribe(i => { this.overlayKeydown.next(i), i.keyCode === 27 && !this.disableClose && !_t(i) && (i.preventDefault(), this.detachOverlay()); }), this._overlayRef.outsidePointerEvents().subscribe(i => { let o = this._getOriginElement(), n = B(i); (!o || o !== n && !o.contains(n)) && this.overlayOutsideClick.next(i); }); }
    _buildConfig() { let e = this._position = this.positionStrategy || this._createPositionStrategy(), i = new x({ direction: this._dir || "ltr", positionStrategy: e, scrollStrategy: this.scrollStrategy, hasBackdrop: this.hasBackdrop, disposeOnNavigation: this.disposeOnNavigation, usePopover: !!this.usePopover }); return (this.height || this.height === 0) && (i.height = this.height), (this.minWidth || this.minWidth === 0) && (i.minWidth = this.minWidth), (this.minHeight || this.minHeight === 0) && (i.minHeight = this.minHeight), this.backdropClass && (i.backdropClass = this.backdropClass), this.panelClass && (i.panelClass = this.panelClass), i; }
    _updatePositionStrategy(e) { let i = this.positions.map(o => ({ originX: o.originX, originY: o.originY, overlayX: o.overlayX, overlayY: o.overlayY, offsetX: o.offsetX || this.offsetX, offsetY: o.offsetY || this.offsetY, panelClass: o.panelClass || void 0 })); return e.setOrigin(this._getOrigin()).withPositions(i).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector).withPopoverLocation(this.usePopover === null ? "global" : this.usePopover); }
    _createPositionStrategy() { let e = st(this._injector, this._getOrigin()); return this._updatePositionStrategy(e), e; }
    _getOrigin() { return this.origin instanceof J ? this.origin.elementRef : this.origin; }
    _getOriginElement() { return this.origin instanceof J ? this.origin.elementRef.nativeElement : this.origin instanceof V ? this.origin.nativeElement : typeof Element < "u" && this.origin instanceof Element ? this.origin : null; }
    _getWidth() { return this.width ? this.width : this.matchWidth ? this._getOriginElement()?.getBoundingClientRect?.().width : void 0; }
    attachOverlay() { this._overlayRef || this._createOverlay(); let e = this._overlayRef; e.getConfig().hasBackdrop = this.hasBackdrop, e.updateSize({ width: this._getWidth() }), e.hasAttached() || e.attach(this._templatePortal), this.hasBackdrop ? this._backdropSubscription = e.backdropClick().subscribe(i => this.backdropClick.emit(i)) : this._backdropSubscription.unsubscribe(), this._positionSubscription.unsubscribe(), this.positionChange.observers.length > 0 && (this._positionSubscription = this._position.positionChanges.pipe(Jt(() => this.positionChange.observers.length > 0)).subscribe(i => { this._ngZone.run(() => this.positionChange.emit(i)), this.positionChange.observers.length === 0 && this._positionSubscription.unsubscribe(); })), this.open = !0; }
    detachOverlay() { this._overlayRef?.detach(), this._backdropSubscription.unsubscribe(), this._positionSubscription.unsubscribe(), this.open = !1; }
    _assignConfig(e) { this.origin = e.origin ?? this.origin, this.positions = e.positions ?? this.positions, this.positionStrategy = e.positionStrategy ?? this.positionStrategy, this.offsetX = e.offsetX ?? this.offsetX, this.offsetY = e.offsetY ?? this.offsetY, this.width = e.width ?? this.width, this.height = e.height ?? this.height, this.minWidth = e.minWidth ?? this.minWidth, this.minHeight = e.minHeight ?? this.minHeight, this.backdropClass = e.backdropClass ?? this.backdropClass, this.panelClass = e.panelClass ?? this.panelClass, this.viewportMargin = e.viewportMargin ?? this.viewportMargin, this.scrollStrategy = e.scrollStrategy ?? this.scrollStrategy, this.disableClose = e.disableClose ?? this.disableClose, this.transformOriginSelector = e.transformOriginSelector ?? this.transformOriginSelector, this.hasBackdrop = e.hasBackdrop ?? this.hasBackdrop, this.lockPosition = e.lockPosition ?? this.lockPosition, this.flexibleDimensions = e.flexibleDimensions ?? this.flexibleDimensions, this.growAfterOpen = e.growAfterOpen ?? this.growAfterOpen, this.push = e.push ?? this.push, this.disposeOnNavigation = e.disposeOnNavigation ?? this.disposeOnNavigation, this.usePopover = e.usePopover ?? this.usePopover, this.matchWidth = e.matchWidth ?? this.matchWidth; }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275dir = _.\u0275\u0275defineDirective({ type: s, selectors: [["", "cdk-connected-overlay", ""], ["", "connected-overlay", ""], ["", "cdkConnectedOverlay", ""]], inputs: { origin: [0, "cdkConnectedOverlayOrigin", "origin"], positions: [0, "cdkConnectedOverlayPositions", "positions"], positionStrategy: [0, "cdkConnectedOverlayPositionStrategy", "positionStrategy"], offsetX: [0, "cdkConnectedOverlayOffsetX", "offsetX"], offsetY: [0, "cdkConnectedOverlayOffsetY", "offsetY"], width: [0, "cdkConnectedOverlayWidth", "width"], height: [0, "cdkConnectedOverlayHeight", "height"], minWidth: [0, "cdkConnectedOverlayMinWidth", "minWidth"], minHeight: [0, "cdkConnectedOverlayMinHeight", "minHeight"], backdropClass: [0, "cdkConnectedOverlayBackdropClass", "backdropClass"], panelClass: [0, "cdkConnectedOverlayPanelClass", "panelClass"], viewportMargin: [0, "cdkConnectedOverlayViewportMargin", "viewportMargin"], scrollStrategy: [0, "cdkConnectedOverlayScrollStrategy", "scrollStrategy"], open: [0, "cdkConnectedOverlayOpen", "open"], disableClose: [0, "cdkConnectedOverlayDisableClose", "disableClose"], transformOriginSelector: [0, "cdkConnectedOverlayTransformOriginOn", "transformOriginSelector"], hasBackdrop: [2, "cdkConnectedOverlayHasBackdrop", "hasBackdrop", m], lockPosition: [2, "cdkConnectedOverlayLockPosition", "lockPosition", m], flexibleDimensions: [2, "cdkConnectedOverlayFlexibleDimensions", "flexibleDimensions", m], growAfterOpen: [2, "cdkConnectedOverlayGrowAfterOpen", "growAfterOpen", m], push: [2, "cdkConnectedOverlayPush", "push", m], disposeOnNavigation: [2, "cdkConnectedOverlayDisposeOnNavigation", "disposeOnNavigation", m], usePopover: [0, "cdkConnectedOverlayUsePopover", "usePopover"], matchWidth: [2, "cdkConnectedOverlayMatchWidth", "matchWidth", m], _config: [0, "cdkConnectedOverlay", "_config"] }, outputs: { backdropClick: "backdropClick", positionChange: "positionChange", attach: "attach", detach: "detach", overlayKeydown: "overlayKeydown", overlayOutsideClick: "overlayOutsideClick" }, exportAs: ["cdkConnectedOverlay"], features: [_.\u0275\u0275NgOnChangesFeature] });
} return s; })(), he = (() => { class s {
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275mod = _.\u0275\u0275defineNgModule({ type: s });
    static \u0275inj = _.\u0275\u0275defineInjector({ providers: [Bt], imports: [ht, ft, G, G] });
} return s; })();
import * as Vt from "@angular/core";
import { inject as ce, RendererFactory2 as de } from "@angular/core";
import "@angular/common";
import "rxjs";
import "rxjs/operators";
var ze = (() => { class s extends I {
    _renderer = ce(de).createRenderer(null, null);
    _fullScreenEventName;
    _cleanupFullScreenListener;
    ngOnDestroy() { super.ngOnDestroy(), this._cleanupFullScreenListener?.(); }
    _createContainer() { let e = this._getEventName(); super._createContainer(), this._adjustParentForFullscreenChange(), e && (this._cleanupFullScreenListener?.(), this._cleanupFullScreenListener = this._renderer.listen("document", e, () => { this._adjustParentForFullscreenChange(); })); }
    _adjustParentForFullscreenChange() { this._containerElement && (this.getFullscreenElement() || this._document.body).appendChild(this._containerElement); }
    _getEventName() { if (!this._fullScreenEventName) {
        let e = this._document;
        e.fullscreenEnabled ? this._fullScreenEventName = "fullscreenchange" : e.webkitFullscreenEnabled ? this._fullScreenEventName = "webkitfullscreenchange" : e.mozFullScreenEnabled ? this._fullScreenEventName = "mozfullscreenchange" : e.msFullscreenEnabled && (this._fullScreenEventName = "MSFullscreenChange");
    } return this._fullScreenEventName; }
    getFullscreenElement() { let e = this._document; return e.fullscreenElement || e.webkitFullscreenElement || e.mozFullScreenElement || e.msFullscreenElement || null; }
    static \u0275fac = function (i) { return new (i || s); };
    static \u0275prov = Vt.\u0275\u0275defineService({ token: s, factory: s.\u0275fac });
} return s; })();
export { Y as BlockScrollStrategy, At as CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, le as CdkConnectedOverlay, J as CdkOverlayOrigin, Xt as CdkScrollable, L as CloseScrollStrategy, T as ConnectedOverlayPositionChange, $ as ConnectionPositionPair, N as FlexibleConnectedPositionStrategy, ze as FullscreenOverlayContainer, W as GlobalPositionStrategy, C as NoopScrollStrategy, ot as OVERLAY_DEFAULT_CONFIG, Bt as Overlay, x as OverlayConfig, I as OverlayContainer, xt as OverlayKeyboardDispatcher, he as OverlayModule, Et as OverlayOutsideClickDispatcher, Mt as OverlayPositionBuilder, F as OverlayRef, X as RepositionScrollStrategy, ne as STANDARD_DROPDOWN_ADJACENT_POSITIONS, oe as STANDARD_DROPDOWN_BELOW_POSITIONS, A as ScrollDispatcher, Ct as ScrollStrategyOptions, U as ScrollingVisibility, w as ViewportRuler, Ot as createBlockScrollStrategy, kt as createCloseScrollStrategy, st as createFlexibleConnectedPositionStrategy, Dt as createGlobalPositionStrategy, Qt as createNoopScrollStrategy, nt as createOverlayRef, et as createRepositionScrollStrategy, ee as validateHorizontalPosition, te as validateVerticalPosition, Lt as \u0275\u0275CdkFixedSizeVirtualScroll, It as \u0275\u0275CdkScrollableModule, Ft as \u0275\u0275CdkVirtualForOf, Tt as \u0275\u0275CdkVirtualScrollViewport, Nt as \u0275\u0275CdkVirtualScrollableElement, Wt as \u0275\u0275CdkVirtualScrollableWindow, Yt as \u0275\u0275Dir };
