{"version":3,"sources":["node_modules/@angular/material/fesm2022/sidenav.mjs"],"sourcesContent":["import * as i1 from '@angular/cdk/scrolling';\nimport { CdkScrollable, CdkScrollableModule } from '@angular/cdk/scrolling';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, EventEmitter, Optional, Input, Output, ViewChild, QueryList, ANIMATION_MODULE_TYPE, ContentChildren, ContentChild, NgModule } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i2 from '@angular/cdk/a11y';\nimport * as i4 from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport * as i3 from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject, fromEvent, merge } from 'rxjs';\nimport { filter, map, mapTo, takeUntil, distinctUntilChanged, take, startWith, debounceTime } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\n\n/**\n * Animations used by the Material drawers.\n * @docs-private\n */\nconst _c0 = [\"*\"];\nconst _c1 = [\"content\"];\nconst _c2 = [[[\"mat-drawer\"]], [[\"mat-drawer-content\"]], \"*\"];\nconst _c3 = [\"mat-drawer\", \"mat-drawer-content\", \"*\"];\nfunction MatDrawerContainer_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵlistener(\"click\", function MatDrawerContainer_Conditional_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onBackdropClicked());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-drawer-shown\", ctx_r1._isShowingBackdrop());\n }\n}\nfunction MatDrawerContainer_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-drawer-content\");\n i0.ɵɵprojection(1, 2);\n i0.ɵɵelementEnd();\n }\n}\nconst _c4 = [[[\"mat-sidenav\"]], [[\"mat-sidenav-content\"]], \"*\"];\nconst _c5 = [\"mat-sidenav\", \"mat-sidenav-content\", \"*\"];\nfunction MatSidenavContainer_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵlistener(\"click\", function MatSidenavContainer_Conditional_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1._onBackdropClicked());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"mat-drawer-shown\", ctx_r1._isShowingBackdrop());\n }\n}\nfunction MatSidenavContainer_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-sidenav-content\");\n i0.ɵɵprojection(1, 2);\n i0.ɵɵelementEnd();\n }\n}\nconst _c6 = \".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color);box-shadow:var(--mat-sidenav-container-elevation-shadow);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);width:var(--mat-sidenav-container-width);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\";\nconst matDrawerAnimations = {\n /** Animation that slides a drawer in and out. */\n transformDrawer: /*#__PURE__*/trigger('transform', [\n /*#__PURE__*/\n // We remove the `transform` here completely, rather than setting it to zero, because:\n // 1. Having a transform can cause elements with ripples or an animated\n // transform to shift around in Chrome with an RTL layout (see #10023).\n // 2. 3d transforms causes text to appear blurry on IE and Edge.\n state('open, open-instant', /*#__PURE__*/style({\n 'transform': 'none',\n 'visibility': 'visible'\n })), /*#__PURE__*/state('void', /*#__PURE__*/style({\n // Avoids the shadow showing up when closed in SSR.\n 'box-shadow': 'none',\n 'visibility': 'hidden'\n })), /*#__PURE__*/transition('void => open-instant', /*#__PURE__*/animate('0ms')), /*#__PURE__*/transition('void <=> open, open-instant => void', /*#__PURE__*/animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))])\n};\n\n/**\n * Throws an exception when two MatDrawer are matching the same position.\n * @docs-private\n */\nfunction throwMatDuplicatedDrawerError(position) {\n throw Error(`A drawer was already declared for 'position=\"${position}\"'`);\n}\n/** Configures whether drawers should use auto sizing by default. */\nconst MAT_DRAWER_DEFAULT_AUTOSIZE = /*#__PURE__*/new InjectionToken('MAT_DRAWER_DEFAULT_AUTOSIZE', {\n providedIn: 'root',\n factory: MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY\n});\n/**\n * Used to provide a drawer container to a drawer while avoiding circular references.\n * @docs-private\n */\nconst MAT_DRAWER_CONTAINER = /*#__PURE__*/new InjectionToken('MAT_DRAWER_CONTAINER');\n/** @docs-private */\nfunction MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY() {\n return false;\n}\nlet MatDrawerContent = /*#__PURE__*/(() => {\n class MatDrawerContent extends CdkScrollable {\n constructor(_changeDetectorRef, _container, elementRef, scrollDispatcher, ngZone) {\n super(elementRef, scrollDispatcher, ngZone);\n this._changeDetectorRef = _changeDetectorRef;\n this._container = _container;\n }\n ngAfterContentInit() {\n this._container._contentMarginChanges.subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n static {\n this.ɵfac = function MatDrawerContent_Factory(t) {\n return new (t || MatDrawerContent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(forwardRef(() => MatDrawerContainer)), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawerContent,\n selectors: [[\"mat-drawer-content\"]],\n hostAttrs: [1, \"mat-drawer-content\"],\n hostVars: 4,\n hostBindings: function MatDrawerContent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"margin-left\", ctx._container._contentMargins.left, \"px\")(\"margin-right\", ctx._container._contentMargins.right, \"px\");\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useExisting: MatDrawerContent\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatDrawerContent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDrawerContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * This component corresponds to a drawer that can be opened on the drawer container.\n */\nlet MatDrawer = /*#__PURE__*/(() => {\n class MatDrawer {\n /** The side that the drawer is attached to. */\n get position() {\n return this._position;\n }\n set position(value) {\n // Make sure we have a valid value.\n value = value === 'end' ? 'end' : 'start';\n if (value !== this._position) {\n // Static inputs in Ivy are set before the element is in the DOM.\n if (this._isAttached) {\n this._updatePositionInParent(value);\n }\n this._position = value;\n this.onPositionChanged.emit();\n }\n }\n /** Mode of the drawer; one of 'over', 'push' or 'side'. */\n get mode() {\n return this._mode;\n }\n set mode(value) {\n this._mode = value;\n this._updateFocusTrapState();\n this._modeChanged.next();\n }\n /** Whether the drawer can be closed with the escape key or by clicking on the backdrop. */\n get disableClose() {\n return this._disableClose;\n }\n set disableClose(value) {\n this._disableClose = coerceBooleanProperty(value);\n }\n /**\n * Whether the drawer should focus the first focusable element automatically when opened.\n * Defaults to false in when `mode` is set to `side`, otherwise defaults to `true`. If explicitly\n * enabled, focus will be moved into the sidenav in `side` mode as well.\n * @breaking-change 14.0.0 Remove boolean option from autoFocus. Use string or AutoFocusTarget\n * instead.\n */\n get autoFocus() {\n const value = this._autoFocus;\n // Note that usually we don't allow autoFocus to be set to `first-tabbable` in `side` mode,\n // because we don't know how the sidenav is being used, but in some cases it still makes\n // sense to do it. The consumer can explicitly set `autoFocus`.\n if (value == null) {\n if (this.mode === 'side') {\n return 'dialog';\n } else {\n return 'first-tabbable';\n }\n }\n return value;\n }\n set autoFocus(value) {\n if (value === 'true' || value === 'false' || value == null) {\n value = coerceBooleanProperty(value);\n }\n this._autoFocus = value;\n }\n /**\n * Whether the drawer is opened. We overload this because we trigger an event when it\n * starts or end.\n */\n get opened() {\n return this._opened;\n }\n set opened(value) {\n this.toggle(coerceBooleanProperty(value));\n }\n constructor(_elementRef, _focusTrapFactory, _focusMonitor, _platform, _ngZone, _interactivityChecker, _doc, _container) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n this._focusMonitor = _focusMonitor;\n this._platform = _platform;\n this._ngZone = _ngZone;\n this._interactivityChecker = _interactivityChecker;\n this._doc = _doc;\n this._container = _container;\n this._focusTrap = null;\n this._elementFocusedBeforeDrawerWasOpened = null;\n /** Whether the drawer is initialized. Used for disabling the initial animation. */\n this._enableAnimations = false;\n this._position = 'start';\n this._mode = 'over';\n this._disableClose = false;\n this._opened = false;\n /** Emits whenever the drawer has started animating. */\n this._animationStarted = new Subject();\n /** Emits whenever the drawer is done animating. */\n this._animationEnd = new Subject();\n /** Current state of the sidenav animation. */\n this._animationState = 'void';\n /** Event emitted when the drawer open state is changed. */\n this.openedChange =\n // Note this has to be async in order to avoid some issues with two-bindings (see #8872).\n new EventEmitter( /* isAsync */true);\n /** Event emitted when the drawer has been opened. */\n this._openedStream = this.openedChange.pipe(filter(o => o), map(() => {}));\n /** Event emitted when the drawer has started opening. */\n this.openedStart = this._animationStarted.pipe(filter(e => e.fromState !== e.toState && e.toState.indexOf('open') === 0), mapTo(undefined));\n /** Event emitted when the drawer has been closed. */\n this._closedStream = this.openedChange.pipe(filter(o => !o), map(() => {}));\n /** Event emitted when the drawer has started closing. */\n this.closedStart = this._animationStarted.pipe(filter(e => e.fromState !== e.toState && e.toState === 'void'), mapTo(undefined));\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Event emitted when the drawer's position changes. */\n // tslint:disable-next-line:no-output-on-prefix\n this.onPositionChanged = new EventEmitter();\n /**\n * An observable that emits when the drawer mode changes. This is used by the drawer container to\n * to know when to when the mode changes so it can adapt the margins on the content.\n */\n this._modeChanged = new Subject();\n this.openedChange.subscribe(opened => {\n if (opened) {\n if (this._doc) {\n this._elementFocusedBeforeDrawerWasOpened = this._doc.activeElement;\n }\n this._takeFocus();\n } else if (this._isFocusWithinDrawer()) {\n this._restoreFocus(this._openedVia || 'program');\n }\n });\n /**\n * Listen to `keydown` events outside the zone so that change detection is not run every\n * time a key is pressed. Instead we re-enter the zone only if the `ESC` key is pressed\n * and we don't have close disabled.\n */\n this._ngZone.runOutsideAngular(() => {\n fromEvent(this._elementRef.nativeElement, 'keydown').pipe(filter(event => {\n return event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event);\n }), takeUntil(this._destroyed)).subscribe(event => this._ngZone.run(() => {\n this.close();\n event.stopPropagation();\n event.preventDefault();\n }));\n });\n // We need a Subject with distinctUntilChanged, because the `done` event\n // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\n this._animationEnd.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState;\n })).subscribe(event => {\n const {\n fromState,\n toState\n } = event;\n if (toState.indexOf('open') === 0 && fromState === 'void' || toState === 'void' && fromState.indexOf('open') === 0) {\n this.openedChange.emit(this._opened);\n }\n });\n }\n /**\n * Focuses the provided element. If the element is not focusable, it will add a tabIndex\n * attribute to forcefully focus it. The attribute is removed after focus is moved.\n * @param element The element to focus.\n */\n _forceFocus(element, options) {\n if (!this._interactivityChecker.isFocusable(element)) {\n element.tabIndex = -1;\n // The tabindex attribute should be removed to avoid navigating to that element again\n this._ngZone.runOutsideAngular(() => {\n const callback = () => {\n element.removeEventListener('blur', callback);\n element.removeEventListener('mousedown', callback);\n element.removeAttribute('tabindex');\n };\n element.addEventListener('blur', callback);\n element.addEventListener('mousedown', callback);\n });\n }\n element.focus(options);\n }\n /**\n * Focuses the first element that matches the given selector within the focus trap.\n * @param selector The CSS selector for the element to set focus to.\n */\n _focusByCssSelector(selector, options) {\n let elementToFocus = this._elementRef.nativeElement.querySelector(selector);\n if (elementToFocus) {\n this._forceFocus(elementToFocus, options);\n }\n }\n /**\n * Moves focus into the drawer. Note that this works even if\n * the focus trap is disabled in `side` mode.\n */\n _takeFocus() {\n if (!this._focusTrap) {\n return;\n }\n const element = this._elementRef.nativeElement;\n // When autoFocus is not on the sidenav, if the element cannot be focused or does\n // not exist, focus the sidenav itself so the keyboard navigation still works.\n // We need to check that `focus` is a function due to Universal.\n switch (this.autoFocus) {\n case false:\n case 'dialog':\n return;\n case true:\n case 'first-tabbable':\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n if (!hasMovedFocus && typeof this._elementRef.nativeElement.focus === 'function') {\n element.focus();\n }\n });\n break;\n case 'first-heading':\n this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role=\"heading\"]');\n break;\n default:\n this._focusByCssSelector(this.autoFocus);\n break;\n }\n }\n /**\n * Restores focus to the element that was originally focused when the drawer opened.\n * If no element was focused at that time, the focus will be restored to the drawer.\n */\n _restoreFocus(focusOrigin) {\n if (this.autoFocus === 'dialog') {\n return;\n }\n if (this._elementFocusedBeforeDrawerWasOpened) {\n this._focusMonitor.focusVia(this._elementFocusedBeforeDrawerWasOpened, focusOrigin);\n } else {\n this._elementRef.nativeElement.blur();\n }\n this._elementFocusedBeforeDrawerWasOpened = null;\n }\n /** Whether focus is currently within the drawer. */\n _isFocusWithinDrawer() {\n const activeEl = this._doc.activeElement;\n return !!activeEl && this._elementRef.nativeElement.contains(activeEl);\n }\n ngAfterViewInit() {\n this._isAttached = true;\n // Only update the DOM position when the sidenav is positioned at\n // the end since we project the sidenav before the content by default.\n if (this._position === 'end') {\n this._updatePositionInParent('end');\n }\n // Needs to happen after the position is updated\n // so the focus trap anchors are in the right place.\n if (this._platform.isBrowser) {\n this._focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement);\n this._updateFocusTrapState();\n }\n }\n ngAfterContentChecked() {\n // Enable the animations after the lifecycle hooks have run, in order to avoid animating\n // drawers that are open by default. When we're on the server, we shouldn't enable the\n // animations, because we don't want the drawer to animate the first time the user sees\n // the page.\n if (this._platform.isBrowser) {\n this._enableAnimations = true;\n }\n }\n ngOnDestroy() {\n this._focusTrap?.destroy();\n this._anchor?.remove();\n this._anchor = null;\n this._animationStarted.complete();\n this._animationEnd.complete();\n this._modeChanged.complete();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /**\n * Open the drawer.\n * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n * Used for focus management after the sidenav is closed.\n */\n open(openedVia) {\n return this.toggle(true, openedVia);\n }\n /** Close the drawer. */\n close() {\n return this.toggle(false);\n }\n /** Closes the drawer with context that the backdrop was clicked. */\n _closeViaBackdropClick() {\n // If the drawer is closed upon a backdrop click, we always want to restore focus. We\n // don't need to check whether focus is currently in the drawer, as clicking on the\n // backdrop causes blurs the active element.\n return this._setOpen( /* isOpen */false, /* restoreFocus */true, 'mouse');\n }\n /**\n * Toggle this drawer.\n * @param isOpen Whether the drawer should be open.\n * @param openedVia Whether the drawer was opened by a key press, mouse click or programmatically.\n * Used for focus management after the sidenav is closed.\n */\n toggle(isOpen = !this.opened, openedVia) {\n // If the focus is currently inside the drawer content and we are closing the drawer,\n // restore the focus to the initially focused element (when the drawer opened).\n if (isOpen && openedVia) {\n this._openedVia = openedVia;\n }\n const result = this._setOpen(isOpen, /* restoreFocus */!isOpen && this._isFocusWithinDrawer(), this._openedVia || 'program');\n if (!isOpen) {\n this._openedVia = null;\n }\n return result;\n }\n /**\n * Toggles the opened state of the drawer.\n * @param isOpen Whether the drawer should open or close.\n * @param restoreFocus Whether focus should be restored on close.\n * @param focusOrigin Origin to use when restoring focus.\n */\n _setOpen(isOpen, restoreFocus, focusOrigin) {\n this._opened = isOpen;\n if (isOpen) {\n this._animationState = this._enableAnimations ? 'open' : 'open-instant';\n } else {\n this._animationState = 'void';\n if (restoreFocus) {\n this._restoreFocus(focusOrigin);\n }\n }\n this._updateFocusTrapState();\n return new Promise(resolve => {\n this.openedChange.pipe(take(1)).subscribe(open => resolve(open ? 'open' : 'close'));\n });\n }\n _getWidth() {\n return this._elementRef.nativeElement ? this._elementRef.nativeElement.offsetWidth || 0 : 0;\n }\n /** Updates the enabled state of the focus trap. */\n _updateFocusTrapState() {\n if (this._focusTrap) {\n // Trap focus only if the backdrop is enabled. Otherwise, allow end user to interact with the\n // sidenav content.\n this._focusTrap.enabled = !!this._container?.hasBackdrop;\n }\n }\n /**\n * Updates the position of the drawer in the DOM. We need to move the element around ourselves\n * when it's in the `end` position so that it comes after the content and the visual order\n * matches the tab order. We also need to be able to move it back to `start` if the sidenav\n * started off as `end` and was changed to `start`.\n */\n _updatePositionInParent(newPosition) {\n // Don't move the DOM node around on the server, because it can throw off hydration.\n if (!this._platform.isBrowser) {\n return;\n }\n const element = this._elementRef.nativeElement;\n const parent = element.parentNode;\n if (newPosition === 'end') {\n if (!this._anchor) {\n this._anchor = this._doc.createComment('mat-drawer-anchor');\n parent.insertBefore(this._anchor, element);\n }\n parent.appendChild(element);\n } else if (this._anchor) {\n this._anchor.parentNode.insertBefore(element, this._anchor);\n }\n }\n static {\n this.ɵfac = function MatDrawer_Factory(t) {\n return new (t || MatDrawer)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.FocusTrapFactory), i0.ɵɵdirectiveInject(i2.FocusMonitor), i0.ɵɵdirectiveInject(i3.Platform), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i2.InteractivityChecker), i0.ɵɵdirectiveInject(DOCUMENT, 8), i0.ɵɵdirectiveInject(MAT_DRAWER_CONTAINER, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawer,\n selectors: [[\"mat-drawer\"]],\n viewQuery: function MatDrawer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n }\n },\n hostAttrs: [\"tabIndex\", \"-1\", 1, \"mat-drawer\"],\n hostVars: 12,\n hostBindings: function MatDrawer_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵsyntheticHostListener(\"@transform.start\", function MatDrawer_animation_transform_start_HostBindingHandler($event) {\n return ctx._animationStarted.next($event);\n })(\"@transform.done\", function MatDrawer_animation_transform_done_HostBindingHandler($event) {\n return ctx._animationEnd.next($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵsyntheticHostProperty(\"@transform\", ctx._animationState);\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵclassProp(\"mat-drawer-end\", ctx.position === \"end\")(\"mat-drawer-over\", ctx.mode === \"over\")(\"mat-drawer-push\", ctx.mode === \"push\")(\"mat-drawer-side\", ctx.mode === \"side\")(\"mat-drawer-opened\", ctx.opened);\n }\n },\n inputs: {\n position: \"position\",\n mode: \"mode\",\n disableClose: \"disableClose\",\n autoFocus: \"autoFocus\",\n opened: \"opened\"\n },\n outputs: {\n openedChange: \"openedChange\",\n _openedStream: \"opened\",\n openedStart: \"openedStart\",\n _closedStream: \"closed\",\n closedStart: \"closedStart\",\n onPositionChanged: \"positionChanged\"\n },\n exportAs: [\"matDrawer\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-drawer-inner-container\"]],\n template: function MatDrawer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n dependencies: [CdkScrollable],\n encapsulation: 2,\n data: {\n animation: [matDrawerAnimations.transformDrawer]\n },\n changeDetection: 0\n });\n }\n }\n return MatDrawer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * `` component.\n *\n * This is the parent component to one or two ``s that validates the state internally\n * and coordinates the backdrop and content styling.\n */\nlet MatDrawerContainer = /*#__PURE__*/(() => {\n class MatDrawerContainer {\n /** The drawer child with the `start` position. */\n get start() {\n return this._start;\n }\n /** The drawer child with the `end` position. */\n get end() {\n return this._end;\n }\n /**\n * Whether to automatically resize the container whenever\n * the size of any of its drawers changes.\n *\n * **Use at your own risk!** Enabling this option can cause layout thrashing by measuring\n * the drawers on every change detection cycle. Can be configured globally via the\n * `MAT_DRAWER_DEFAULT_AUTOSIZE` token.\n */\n get autosize() {\n return this._autosize;\n }\n set autosize(value) {\n this._autosize = coerceBooleanProperty(value);\n }\n /**\n * Whether the drawer container should have a backdrop while one of the sidenavs is open.\n * If explicitly set to `true`, the backdrop will be enabled for drawers in the `side`\n * mode as well.\n */\n get hasBackdrop() {\n return this._drawerHasBackdrop(this._start) || this._drawerHasBackdrop(this._end);\n }\n set hasBackdrop(value) {\n this._backdropOverride = value == null ? null : coerceBooleanProperty(value);\n }\n /** Reference to the CdkScrollable instance that wraps the scrollable content. */\n get scrollable() {\n return this._userContent || this._content;\n }\n constructor(_dir, _element, _ngZone, _changeDetectorRef, viewportRuler, defaultAutosize = false, _animationMode) {\n this._dir = _dir;\n this._element = _element;\n this._ngZone = _ngZone;\n this._changeDetectorRef = _changeDetectorRef;\n this._animationMode = _animationMode;\n /** Drawers that belong to this container. */\n this._drawers = new QueryList();\n /** Event emitted when the drawer backdrop is clicked. */\n this.backdropClick = new EventEmitter();\n /** Emits when the component is destroyed. */\n this._destroyed = new Subject();\n /** Emits on every ngDoCheck. Used for debouncing reflows. */\n this._doCheckSubject = new Subject();\n /**\n * Margins to be applied to the content. These are used to push / shrink the drawer content when a\n * drawer is open. We use margin rather than transform even for push mode because transform breaks\n * fixed position elements inside of the transformed element.\n */\n this._contentMargins = {\n left: null,\n right: null\n };\n this._contentMarginChanges = new Subject();\n // If a `Dir` directive exists up the tree, listen direction changes\n // and update the left/right properties to point to the proper start/end.\n if (_dir) {\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this._validateDrawers();\n this.updateContentMargins();\n });\n }\n // Since the minimum width of the sidenav depends on the viewport width,\n // we need to recompute the margins if the viewport changes.\n viewportRuler.change().pipe(takeUntil(this._destroyed)).subscribe(() => this.updateContentMargins());\n this._autosize = defaultAutosize;\n }\n ngAfterContentInit() {\n this._allDrawers.changes.pipe(startWith(this._allDrawers), takeUntil(this._destroyed)).subscribe(drawer => {\n this._drawers.reset(drawer.filter(item => !item._container || item._container === this));\n this._drawers.notifyOnChanges();\n });\n this._drawers.changes.pipe(startWith(null)).subscribe(() => {\n this._validateDrawers();\n this._drawers.forEach(drawer => {\n this._watchDrawerToggle(drawer);\n this._watchDrawerPosition(drawer);\n this._watchDrawerMode(drawer);\n });\n if (!this._drawers.length || this._isDrawerOpen(this._start) || this._isDrawerOpen(this._end)) {\n this.updateContentMargins();\n }\n this._changeDetectorRef.markForCheck();\n });\n // Avoid hitting the NgZone through the debounce timeout.\n this._ngZone.runOutsideAngular(() => {\n this._doCheckSubject.pipe(debounceTime(10),\n // Arbitrary debounce time, less than a frame at 60fps\n takeUntil(this._destroyed)).subscribe(() => this.updateContentMargins());\n });\n }\n ngOnDestroy() {\n this._contentMarginChanges.complete();\n this._doCheckSubject.complete();\n this._drawers.destroy();\n this._destroyed.next();\n this._destroyed.complete();\n }\n /** Calls `open` of both start and end drawers */\n open() {\n this._drawers.forEach(drawer => drawer.open());\n }\n /** Calls `close` of both start and end drawers */\n close() {\n this._drawers.forEach(drawer => drawer.close());\n }\n /**\n * Recalculates and updates the inline styles for the content. Note that this should be used\n * sparingly, because it causes a reflow.\n */\n updateContentMargins() {\n // 1. For drawers in `over` mode, they don't affect the content.\n // 2. For drawers in `side` mode they should shrink the content. We do this by adding to the\n // left margin (for left drawer) or right margin (for right the drawer).\n // 3. For drawers in `push` mode the should shift the content without resizing it. We do this by\n // adding to the left or right margin and simultaneously subtracting the same amount of\n // margin from the other side.\n let left = 0;\n let right = 0;\n if (this._left && this._left.opened) {\n if (this._left.mode == 'side') {\n left += this._left._getWidth();\n } else if (this._left.mode == 'push') {\n const width = this._left._getWidth();\n left += width;\n right -= width;\n }\n }\n if (this._right && this._right.opened) {\n if (this._right.mode == 'side') {\n right += this._right._getWidth();\n } else if (this._right.mode == 'push') {\n const width = this._right._getWidth();\n right += width;\n left -= width;\n }\n }\n // If either `right` or `left` is zero, don't set a style to the element. This\n // allows users to specify a custom size via CSS class in SSR scenarios where the\n // measured widths will always be zero. Note that we reset to `null` here, rather\n // than below, in order to ensure that the types in the `if` below are consistent.\n left = left || null;\n right = right || null;\n if (left !== this._contentMargins.left || right !== this._contentMargins.right) {\n this._contentMargins = {\n left,\n right\n };\n // Pull back into the NgZone since in some cases we could be outside. We need to be careful\n // to do it only when something changed, otherwise we can end up hitting the zone too often.\n this._ngZone.run(() => this._contentMarginChanges.next(this._contentMargins));\n }\n }\n ngDoCheck() {\n // If users opted into autosizing, do a check every change detection cycle.\n if (this._autosize && this._isPushed()) {\n // Run outside the NgZone, otherwise the debouncer will throw us into an infinite loop.\n this._ngZone.runOutsideAngular(() => this._doCheckSubject.next());\n }\n }\n /**\n * Subscribes to drawer events in order to set a class on the main container element when the\n * drawer is open and the backdrop is visible. This ensures any overflow on the container element\n * is properly hidden.\n */\n _watchDrawerToggle(drawer) {\n drawer._animationStarted.pipe(filter(event => event.fromState !== event.toState), takeUntil(this._drawers.changes)).subscribe(event => {\n // Set the transition class on the container so that the animations occur. This should not\n // be set initially because animations should only be triggered via a change in state.\n if (event.toState !== 'open-instant' && this._animationMode !== 'NoopAnimations') {\n this._element.nativeElement.classList.add('mat-drawer-transition');\n }\n this.updateContentMargins();\n this._changeDetectorRef.markForCheck();\n });\n if (drawer.mode !== 'side') {\n drawer.openedChange.pipe(takeUntil(this._drawers.changes)).subscribe(() => this._setContainerClass(drawer.opened));\n }\n }\n /**\n * Subscribes to drawer onPositionChanged event in order to\n * re-validate drawers when the position changes.\n */\n _watchDrawerPosition(drawer) {\n if (!drawer) {\n return;\n }\n // NOTE: We need to wait for the microtask queue to be empty before validating,\n // since both drawers may be swapping positions at the same time.\n drawer.onPositionChanged.pipe(takeUntil(this._drawers.changes)).subscribe(() => {\n this._ngZone.onMicrotaskEmpty.pipe(take(1)).subscribe(() => {\n this._validateDrawers();\n });\n });\n }\n /** Subscribes to changes in drawer mode so we can run change detection. */\n _watchDrawerMode(drawer) {\n if (drawer) {\n drawer._modeChanged.pipe(takeUntil(merge(this._drawers.changes, this._destroyed))).subscribe(() => {\n this.updateContentMargins();\n this._changeDetectorRef.markForCheck();\n });\n }\n }\n /** Toggles the 'mat-drawer-opened' class on the main 'mat-drawer-container' element. */\n _setContainerClass(isAdd) {\n const classList = this._element.nativeElement.classList;\n const className = 'mat-drawer-container-has-open';\n if (isAdd) {\n classList.add(className);\n } else {\n classList.remove(className);\n }\n }\n /** Validate the state of the drawer children components. */\n _validateDrawers() {\n this._start = this._end = null;\n // Ensure that we have at most one start and one end drawer.\n this._drawers.forEach(drawer => {\n if (drawer.position == 'end') {\n if (this._end != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatDuplicatedDrawerError('end');\n }\n this._end = drawer;\n } else {\n if (this._start != null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throwMatDuplicatedDrawerError('start');\n }\n this._start = drawer;\n }\n });\n this._right = this._left = null;\n // Detect if we're LTR or RTL.\n if (this._dir && this._dir.value === 'rtl') {\n this._left = this._end;\n this._right = this._start;\n } else {\n this._left = this._start;\n this._right = this._end;\n }\n }\n /** Whether the container is being pushed to the side by one of the drawers. */\n _isPushed() {\n return this._isDrawerOpen(this._start) && this._start.mode != 'over' || this._isDrawerOpen(this._end) && this._end.mode != 'over';\n }\n _onBackdropClicked() {\n this.backdropClick.emit();\n this._closeModalDrawersViaBackdrop();\n }\n _closeModalDrawersViaBackdrop() {\n // Close all open drawers where closing is not disabled and the mode is not `side`.\n [this._start, this._end].filter(drawer => drawer && !drawer.disableClose && this._drawerHasBackdrop(drawer)).forEach(drawer => drawer._closeViaBackdropClick());\n }\n _isShowingBackdrop() {\n return this._isDrawerOpen(this._start) && this._drawerHasBackdrop(this._start) || this._isDrawerOpen(this._end) && this._drawerHasBackdrop(this._end);\n }\n _isDrawerOpen(drawer) {\n return drawer != null && drawer.opened;\n }\n // Whether argument drawer should have a backdrop when it opens\n _drawerHasBackdrop(drawer) {\n if (this._backdropOverride == null) {\n return !!drawer && drawer.mode !== 'side';\n }\n return this._backdropOverride;\n }\n static {\n this.ɵfac = function MatDrawerContainer_Factory(t) {\n return new (t || MatDrawerContainer)(i0.ɵɵdirectiveInject(i4.Directionality, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(MAT_DRAWER_DEFAULT_AUTOSIZE), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatDrawerContainer,\n selectors: [[\"mat-drawer-container\"]],\n contentQueries: function MatDrawerContainer_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatDrawerContent, 5);\n i0.ɵɵcontentQuery(dirIndex, MatDrawer, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allDrawers = _t);\n }\n },\n viewQuery: function MatDrawerContainer_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(MatDrawerContent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._userContent = _t.first);\n }\n },\n hostAttrs: [1, \"mat-drawer-container\"],\n hostVars: 2,\n hostBindings: function MatDrawerContainer_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-drawer-container-explicit-backdrop\", ctx._backdropOverride);\n }\n },\n inputs: {\n autosize: \"autosize\",\n hasBackdrop: \"hasBackdrop\"\n },\n outputs: {\n backdropClick: \"backdropClick\"\n },\n exportAs: [\"matDrawerContainer\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatDrawerContainer\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c3,\n decls: 4,\n vars: 2,\n consts: [[1, \"mat-drawer-backdrop\"], [1, \"mat-drawer-backdrop\", 3, \"click\"]],\n template: function MatDrawerContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵtemplate(0, MatDrawerContainer_Conditional_0_Template, 1, 2, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵtemplate(3, MatDrawerContainer_Conditional_3_Template, 2, 0, \"mat-drawer-content\");\n }\n if (rf & 2) {\n i0.ɵɵconditional(0, ctx.hasBackdrop ? 0 : -1);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, !ctx._content ? 3 : -1);\n }\n },\n dependencies: [MatDrawerContent],\n styles: [\".mat-drawer-container{position:relative;z-index:1;color:var(--mat-sidenav-content-text-color);background-color:var(--mat-sidenav-content-background-color);box-sizing:border-box;-webkit-overflow-scrolling:touch;display:block;overflow:hidden}.mat-drawer-container[fullscreen]{top:0;left:0;right:0;bottom:0;position:absolute}.mat-drawer-container[fullscreen].mat-drawer-container-has-open{overflow:hidden}.mat-drawer-container.mat-drawer-container-explicit-backdrop .mat-drawer-side{z-index:3}.mat-drawer-container.ng-animate-disabled .mat-drawer-backdrop,.mat-drawer-container.ng-animate-disabled .mat-drawer-content,.ng-animate-disabled .mat-drawer-container .mat-drawer-backdrop,.ng-animate-disabled .mat-drawer-container .mat-drawer-content{transition:none}.mat-drawer-backdrop{top:0;left:0;right:0;bottom:0;position:absolute;display:block;z-index:3;visibility:hidden}.mat-drawer-backdrop.mat-drawer-shown{visibility:visible;background-color:var(--mat-sidenav-scrim-color)}.mat-drawer-transition .mat-drawer-backdrop{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:background-color,visibility}.cdk-high-contrast-active .mat-drawer-backdrop{opacity:.5}.mat-drawer-content{position:relative;z-index:1;display:block;height:100%;overflow:auto}.mat-drawer-transition .mat-drawer-content{transition-duration:400ms;transition-timing-function:cubic-bezier(0.25, 0.8, 0.25, 1);transition-property:transform,margin-left,margin-right}.mat-drawer{position:relative;z-index:4;color:var(--mat-sidenav-container-text-color);box-shadow:var(--mat-sidenav-container-elevation-shadow);background-color:var(--mat-sidenav-container-background-color);border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);width:var(--mat-sidenav-container-width);display:block;position:absolute;top:0;bottom:0;z-index:3;outline:0;box-sizing:border-box;overflow-y:auto;transform:translate3d(-100%, 0, 0)}.cdk-high-contrast-active .mat-drawer,.cdk-high-contrast-active [dir=rtl] .mat-drawer.mat-drawer-end{border-right:solid 1px currentColor}.cdk-high-contrast-active [dir=rtl] .mat-drawer,.cdk-high-contrast-active .mat-drawer.mat-drawer-end{border-left:solid 1px currentColor;border-right:none}.mat-drawer.mat-drawer-side{z-index:2}.mat-drawer.mat-drawer-end{right:0;transform:translate3d(100%, 0, 0);border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0}[dir=rtl] .mat-drawer{border-top-left-radius:var(--mat-sidenav-container-shape);border-bottom-left-radius:var(--mat-sidenav-container-shape);border-top-right-radius:0;border-bottom-right-radius:0;transform:translate3d(100%, 0, 0)}[dir=rtl] .mat-drawer.mat-drawer-end{border-top-right-radius:var(--mat-sidenav-container-shape);border-bottom-right-radius:var(--mat-sidenav-container-shape);border-top-left-radius:0;border-bottom-left-radius:0;left:0;right:auto;transform:translate3d(-100%, 0, 0)}.mat-drawer[style*=\\\"visibility: hidden\\\"]{display:none}.mat-drawer-side{box-shadow:none;border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid}.mat-drawer-side.mat-drawer-end{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side{border-left-color:var(--mat-sidenav-container-divider-color);border-left-width:1px;border-left-style:solid;border-right:none}[dir=rtl] .mat-drawer-side.mat-drawer-end{border-right-color:var(--mat-sidenav-container-divider-color);border-right-width:1px;border-right-style:solid;border-left:none}.mat-drawer-inner-container{width:100%;height:100%;overflow:auto;-webkit-overflow-scrolling:touch}.mat-sidenav-fixed{position:fixed}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatDrawerContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSidenavContent = /*#__PURE__*/(() => {\n class MatSidenavContent extends MatDrawerContent {\n constructor(changeDetectorRef, container, elementRef, scrollDispatcher, ngZone) {\n super(changeDetectorRef, container, elementRef, scrollDispatcher, ngZone);\n }\n static {\n this.ɵfac = function MatSidenavContent_Factory(t) {\n return new (t || MatSidenavContent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(forwardRef(() => MatSidenavContainer)), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.ScrollDispatcher), i0.ɵɵdirectiveInject(i0.NgZone));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenavContent,\n selectors: [[\"mat-sidenav-content\"]],\n hostAttrs: [1, \"mat-drawer-content\", \"mat-sidenav-content\"],\n hostVars: 4,\n hostBindings: function MatSidenavContent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵstyleProp(\"margin-left\", ctx._container._contentMargins.left, \"px\")(\"margin-right\", ctx._container._contentMargins.right, \"px\");\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useExisting: MatSidenavContent\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function MatSidenavContent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatSidenavContent;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSidenav = /*#__PURE__*/(() => {\n class MatSidenav extends MatDrawer {\n constructor() {\n super(...arguments);\n this._fixedInViewport = false;\n this._fixedTopGap = 0;\n this._fixedBottomGap = 0;\n }\n /** Whether the sidenav is fixed in the viewport. */\n get fixedInViewport() {\n return this._fixedInViewport;\n }\n set fixedInViewport(value) {\n this._fixedInViewport = coerceBooleanProperty(value);\n }\n /**\n * The gap between the top of the sidenav and the top of the viewport when the sidenav is in fixed\n * mode.\n */\n get fixedTopGap() {\n return this._fixedTopGap;\n }\n set fixedTopGap(value) {\n this._fixedTopGap = coerceNumberProperty(value);\n }\n /**\n * The gap between the bottom of the sidenav and the bottom of the viewport when the sidenav is in\n * fixed mode.\n */\n get fixedBottomGap() {\n return this._fixedBottomGap;\n }\n set fixedBottomGap(value) {\n this._fixedBottomGap = coerceNumberProperty(value);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSidenav_BaseFactory;\n return function MatSidenav_Factory(t) {\n return (ɵMatSidenav_BaseFactory || (ɵMatSidenav_BaseFactory = i0.ɵɵgetInheritedFactory(MatSidenav)))(t || MatSidenav);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenav,\n selectors: [[\"mat-sidenav\"]],\n hostAttrs: [\"tabIndex\", \"-1\", 1, \"mat-drawer\", \"mat-sidenav\"],\n hostVars: 17,\n hostBindings: function MatSidenav_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"align\", null);\n i0.ɵɵstyleProp(\"top\", ctx.fixedInViewport ? ctx.fixedTopGap : null, \"px\")(\"bottom\", ctx.fixedInViewport ? ctx.fixedBottomGap : null, \"px\");\n i0.ɵɵclassProp(\"mat-drawer-end\", ctx.position === \"end\")(\"mat-drawer-over\", ctx.mode === \"over\")(\"mat-drawer-push\", ctx.mode === \"push\")(\"mat-drawer-side\", ctx.mode === \"side\")(\"mat-drawer-opened\", ctx.opened)(\"mat-sidenav-fixed\", ctx.fixedInViewport);\n }\n },\n inputs: {\n fixedInViewport: \"fixedInViewport\",\n fixedTopGap: \"fixedTopGap\",\n fixedBottomGap: \"fixedBottomGap\"\n },\n exportAs: [\"matSidenav\"],\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"content\", \"\"], [\"cdkScrollable\", \"\", 1, \"mat-drawer-inner-container\"]],\n template: function MatSidenav_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n dependencies: [CdkScrollable],\n encapsulation: 2,\n data: {\n animation: [matDrawerAnimations.transformDrawer]\n },\n changeDetection: 0\n });\n }\n }\n return MatSidenav;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSidenavContainer = /*#__PURE__*/(() => {\n class MatSidenavContainer extends MatDrawerContainer {\n constructor() {\n super(...arguments);\n this._allDrawers = undefined;\n // We need an initializer here to avoid a TS error.\n this._content = undefined;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSidenavContainer_BaseFactory;\n return function MatSidenavContainer_Factory(t) {\n return (ɵMatSidenavContainer_BaseFactory || (ɵMatSidenavContainer_BaseFactory = i0.ɵɵgetInheritedFactory(MatSidenavContainer)))(t || MatSidenavContainer);\n };\n })();\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSidenavContainer,\n selectors: [[\"mat-sidenav-container\"]],\n contentQueries: function MatSidenavContainer_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatSidenavContent, 5);\n i0.ɵɵcontentQuery(dirIndex, MatSidenav, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._content = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._allDrawers = _t);\n }\n },\n hostAttrs: [1, \"mat-drawer-container\", \"mat-sidenav-container\"],\n hostVars: 2,\n hostBindings: function MatSidenavContainer_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"mat-drawer-container-explicit-backdrop\", ctx._backdropOverride);\n }\n },\n exportAs: [\"matSidenavContainer\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_DRAWER_CONTAINER,\n useExisting: MatSidenavContainer\n }]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c5,\n decls: 4,\n vars: 2,\n consts: [[1, \"mat-drawer-backdrop\"], [1, \"mat-drawer-backdrop\", 3, \"click\"]],\n template: function MatSidenavContainer_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c4);\n i0.ɵɵtemplate(0, MatSidenavContainer_Conditional_0_Template, 1, 2, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵtemplate(3, MatSidenavContainer_Conditional_3_Template, 2, 0, \"mat-sidenav-content\");\n }\n if (rf & 2) {\n i0.ɵɵconditional(0, ctx.hasBackdrop ? 0 : -1);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, !ctx._content ? 3 : -1);\n }\n },\n dependencies: [MatSidenavContent],\n styles: [_c6],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatSidenavContainer;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSidenavModule = /*#__PURE__*/(() => {\n class MatSidenavModule {\n static {\n this.ɵfac = function MatSidenavModule_Factory(t) {\n return new (t || MatSidenavModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSidenavModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule, CdkScrollableModule, CdkScrollableModule, MatCommonModule]\n });\n }\n }\n return MatSidenavModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_DRAWER_DEFAULT_AUTOSIZE, MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY, MatDrawer, MatDrawerContainer, MatDrawerContent, MatSidenav, MatSidenavContainer, MatSidenavContent, MatSidenavModule, matDrawerAnimations, throwMatDuplicatedDrawerError };\n"],"mappings":"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","names":["_c0","_c1","_c2","_c3","MatDrawerContainer_Conditional_0_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","ɵɵelementEnd","ɵɵclassProp","MatDrawerContainer_Conditional_3_Template","ɵɵprojection","_c4","_c5","MatSidenavContainer_Conditional_0_Template","MatSidenavContainer_Conditional_3_Template","_c6","matDrawerAnimations","trigger","state","style","transition","animate","MAT_DRAWER_DEFAULT_AUTOSIZE","InjectionToken","MAT_DRAWER_DEFAULT_AUTOSIZE_FACTORY","MAT_DRAWER_CONTAINER","MatDrawerContent","_MatDrawerContent","CdkScrollable","_changeDetectorRef","_container","elementRef","scrollDispatcher","ngZone","ɵɵdirectiveInject","ChangeDetectorRef","forwardRef","MatDrawerContainer","ElementRef","ScrollDispatcher","NgZone","ɵɵdefineComponent","rf","ctx","ɵɵstyleProp","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","_c0","ɵɵprojectionDef","ɵɵprojection","MatDrawer","_MatDrawer","value","coerceBooleanProperty","_elementRef","_focusTrapFactory","_focusMonitor","_platform","_ngZone","_interactivityChecker","_doc","Subject","EventEmitter","filter","o","map","e","mapTo","opened","fromEvent","event","hasModifierKey","takeUntil","distinctUntilChanged","x","y","fromState","toState","element","options","callback","selector","elementToFocus","hasMovedFocus","focusOrigin","activeEl","openedVia","isOpen","result","restoreFocus","resolve","take","open","newPosition","parent","FocusTrapFactory","FocusMonitor","Platform","InteractivityChecker","DOCUMENT","ɵɵviewQuery","_c1","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵsyntheticHostListener","$event","ɵɵsyntheticHostProperty","ɵɵattribute","ɵɵclassProp","ɵɵelementStart","ɵɵelementEnd","matDrawerAnimations","_MatDrawerContainer","_dir","_element","viewportRuler","defaultAutosize","_animationMode","QueryList","startWith","drawer","item","debounceTime","left","right","width","merge","isAdd","classList","className","Directionality","ViewportRuler","ANIMATION_MODULE_TYPE","dirIndex","ɵɵcontentQuery","_c3","_c2","ɵɵtemplate","MatDrawerContainer_Conditional_0_Template","MatDrawerContainer_Conditional_3_Template","ɵɵconditional","ɵɵadvance","MatSidenavContent","_MatSidenavContent","changeDetectorRef","container","MatSidenavContainer","MatSidenav","_MatSidenav","coerceNumberProperty","ɵMatSidenav_BaseFactory","t","ɵɵgetInheritedFactory","_MatSidenavContainer","ɵMatSidenavContainer_BaseFactory","_c5","_c4","MatSidenavContainer_Conditional_0_Template","MatSidenavContainer_Conditional_3_Template","_c6","MatSidenavModule","_MatSidenavModule","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","CdkScrollableModule"],"x_google_ignoreList":[0]}