{ "version": 3, "sources": ["src/app/_services/toggle.service.ts", "src/app/sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component.ts", "src/app/sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component.html"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { filter, ReplaySubject, take } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToggleService {\n\n toggleState: boolean = false;\n\n\n private toggleStateSource: ReplaySubject = new ReplaySubject(1);\n public toggleState$ = this.toggleStateSource.asObservable();\n\n constructor(router: Router) {\n router.events\n .pipe(filter(event => event instanceof NavigationStart))\n .subscribe((event) => {\n this.toggleState = false;\n this.toggleStateSource.next(this.toggleState);\n });\n this.toggleStateSource.next(false);\n }\n\n toggle() {\n this.toggleState = !this.toggleState;\n this.toggleStateSource.pipe(take(1)).subscribe(state => {\n this.toggleState = !state;\n this.toggleStateSource.next(this.toggleState);\n });\n \n }\n\n set(state: boolean) {\n this.toggleState = state;\n this.toggleStateSource.next(state);\n }\n}\n", "import {\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output,\n TemplateRef\n} from '@angular/core';\nimport {NgbOffcanvas, NgbTooltip} from '@ng-bootstrap/ng-bootstrap';\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\nimport { NavService } from 'src/app/_services/nav.service';\nimport { ToggleService } from 'src/app/_services/toggle.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {TranslocoDirective} from \"@jsverse/transloco\";\nimport {tap} from \"rxjs\";\n\n/**\n * This should go on all pages which have the side nav present and is not Settings related.\n * Content inside [main] selector should not have any padding top or bottom, they are included in this component.\n */\n@Component({\n selector: 'app-side-nav-companion-bar',\n standalone: true,\n imports: [NgbTooltip, TranslocoDirective],\n templateUrl: './side-nav-companion-bar.component.html',\n styleUrls: ['./side-nav-companion-bar.component.scss']\n})\nexport class SideNavCompanionBarComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * If the page should show a filter\n */\n @Input() hasFilter: boolean = false;\n /**\n * If the page should show an extra section button\n */\n @Input() hasExtras: boolean = false;\n\n /**\n * This implies there is a filter in effect on the underlying page. Will show UI styles to imply this to the user.\n */\n @Input() filterActive: boolean = false;\n\n @Input() extraDrawer!: TemplateRef;\n\n\n @Output() filterOpen: EventEmitter = new EventEmitter();\n\n isFilterOpen = false;\n isExtrasOpen = false;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private navService: NavService, private utilityService: UtilityService, public toggleService: ToggleService,\n private offcanvasService: NgbOffcanvas) {\n }\n\n ngOnInit(): void {\n // If user opens side nav while filter is open on mobile, then collapse filter (as it doesn't render well) TODO: Change this when we have new drawer\n this.navService.sideNavCollapsed$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(sideNavCollapsed => {\n if (this.isFilterOpen && sideNavCollapsed && this.utilityService.getActiveBreakpoint() < Breakpoint.Tablet) {\n this.isFilterOpen = false;\n this.filterOpen.emit(this.isFilterOpen);\n }\n });\n\n this.toggleService.toggleState$.pipe(takeUntilDestroyed(this.destroyRef), tap(isOpen => {\n this.isFilterOpen = isOpen;\n this.cdRef.markForCheck();\n })).subscribe();\n }\n\n openExtrasDrawer() {\n if (this.extraDrawer === undefined) return;\n\n this.isExtrasOpen = true;\n const drawerRef = this.offcanvasService.open(this.extraDrawer, {position: 'end', scroll: true});\n drawerRef.closed.subscribe(() => this.isExtrasOpen = false);\n drawerRef.dismissed.subscribe(() => this.isExtrasOpen = false);\n }\n\n}\n", "\n
\n
\n \n \n
\n
\n \n
\n
\n\n @if (hasExtras) {\n \n }\n\n @if (hasFilter) {\n \n }\n\n
\n\n
\n
\n"], "mappings": "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", "names": ["ToggleService", "constructor", "router", "toggleState", "toggleStateSource", "ReplaySubject", "toggleState$", "asObservable", "events", "pipe", "filter", "event", "NavigationStart", "subscribe", "next", "toggle", "take", "state", "set", "\u0275\u0275inject", "Router", "factory", "\u0275fac", "providedIn", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openExtrasDrawer", "\u0275\u0275element", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "t_r3", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "\u0275\u0275classProp", "isFilterOpen", "_r4", "toggleService", "toggle", "\u0275\u0275template", "SideNavCompanionBarComponent_ng_container_0_Conditional_9_Conditional_3_Template", "\u0275\u0275conditional", "\u0275\u0275elementContainerStart", "\u0275\u0275projection", "SideNavCompanionBarComponent_ng_container_0_Conditional_8_Template", "SideNavCompanionBarComponent_ng_container_0_Conditional_9_Template", "hasExtras", "hasFilter", "SideNavCompanionBarComponent", "constructor", "navService", "utilityService", "offcanvasService", "cdRef", "inject", "ChangeDetectorRef", "filterActive", "filterOpen", "EventEmitter", "isExtrasOpen", "destroyRef", "DestroyRef", "ngOnInit", "sideNavCollapsed$", "pipe", "takeUntilDestroyed", "subscribe", "sideNavCollapsed", "getActiveBreakpoint", "Breakpoint", "Tablet", "emit", "toggleState$", "tap", "isOpen", "markForCheck", "extraDrawer", "undefined", "drawerRef", "open", "position", "scroll", "closed", "dismissed", "\u0275\u0275directiveInject", "NavService", "UtilityService", "ToggleService", "NgbOffcanvas", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "ngContentSelectors", "_c1", "decls", "vars", "consts", "template", "rf", "ctx", "SideNavCompanionBarComponent_ng_container_0_Template", "NgbTooltip", "TranslocoDirective", "styles"] }