{ "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';\r\nimport { NavigationStart, Router } from '@angular/router';\r\nimport { filter, ReplaySubject, take } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToggleService {\r\n\r\n toggleState: boolean = false;\r\n\r\n\r\n private toggleStateSource: ReplaySubject = new ReplaySubject(1);\r\n public toggleState$ = this.toggleStateSource.asObservable();\r\n\r\n constructor(router: Router) {\r\n router.events\r\n .pipe(filter(event => event instanceof NavigationStart))\r\n .subscribe((event) => {\r\n this.toggleState = false;\r\n this.toggleStateSource.next(this.toggleState);\r\n });\r\n this.toggleStateSource.next(false);\r\n }\r\n\r\n toggle() {\r\n this.toggleState = !this.toggleState;\r\n this.toggleStateSource.pipe(take(1)).subscribe(state => {\r\n this.toggleState = !state;\r\n this.toggleStateSource.next(this.toggleState);\r\n });\r\n \r\n }\r\n\r\n set(state: boolean) {\r\n this.toggleState = state;\r\n this.toggleStateSource.next(state);\r\n }\r\n}\r\n", "import {\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n EventEmitter,\r\n inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport {NgbOffcanvas, NgbTooltip} from '@ng-bootstrap/ng-bootstrap';\r\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\r\nimport { NavService } from 'src/app/_services/nav.service';\r\nimport { ToggleService } from 'src/app/_services/toggle.service';\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {TranslocoDirective} from \"@jsverse/transloco\";\r\nimport {tap} from \"rxjs\";\r\n\r\n/**\r\n * This should go on all pages which have the side nav present and is not Settings related.\r\n * Content inside [main] selector should not have any padding top or bottom, they are included in this component.\r\n */\r\n@Component({\r\n selector: 'app-side-nav-companion-bar',\r\n standalone: true,\r\n imports: [NgbTooltip, TranslocoDirective],\r\n templateUrl: './side-nav-companion-bar.component.html',\r\n styleUrls: ['./side-nav-companion-bar.component.scss']\r\n})\r\nexport class SideNavCompanionBarComponent implements OnInit {\r\n\r\n private readonly cdRef = inject(ChangeDetectorRef);\r\n\r\n /**\r\n * If the page should show a filter\r\n */\r\n @Input() hasFilter: boolean = false;\r\n /**\r\n * If the page should show an extra section button\r\n */\r\n @Input() hasExtras: boolean = false;\r\n\r\n /**\r\n * This implies there is a filter in effect on the underlying page. Will show UI styles to imply this to the user.\r\n */\r\n @Input() filterActive: boolean = false;\r\n\r\n @Input() extraDrawer!: TemplateRef;\r\n\r\n\r\n @Output() filterOpen: EventEmitter = new EventEmitter();\r\n\r\n isFilterOpen = false;\r\n isExtrasOpen = false;\r\n\r\n private readonly destroyRef = inject(DestroyRef);\r\n\r\n constructor(private navService: NavService, private utilityService: UtilityService, public toggleService: ToggleService,\r\n private offcanvasService: NgbOffcanvas) {\r\n }\r\n\r\n ngOnInit(): void {\r\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\r\n this.navService.sideNavCollapsed$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(sideNavCollapsed => {\r\n if (this.isFilterOpen && sideNavCollapsed && this.utilityService.getActiveBreakpoint() < Breakpoint.Tablet) {\r\n this.isFilterOpen = false;\r\n this.filterOpen.emit(this.isFilterOpen);\r\n }\r\n });\r\n\r\n this.toggleService.toggleState$.pipe(takeUntilDestroyed(this.destroyRef), tap(isOpen => {\r\n this.isFilterOpen = isOpen;\r\n this.cdRef.markForCheck();\r\n })).subscribe();\r\n }\r\n\r\n openExtrasDrawer() {\r\n if (this.extraDrawer === undefined) return;\r\n\r\n this.isExtrasOpen = true;\r\n const drawerRef = this.offcanvasService.open(this.extraDrawer, {position: 'end', scroll: true});\r\n drawerRef.closed.subscribe(() => this.isExtrasOpen = false);\r\n drawerRef.dismissed.subscribe(() => this.isExtrasOpen = false);\r\n }\r\n\r\n}\r\n", "\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n @if (hasExtras) {\r\n \r\n }\r\n\r\n @if (hasFilter) {\r\n \r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n"], "mappings": "2eAOA,IAAaA,GAAa,IAAA,CAApB,MAAOA,CAAa,CAQxBC,YAAYC,EAAc,CAN1B,KAAAC,YAAuB,GAGf,KAAAC,kBAA4C,IAAIC,EAAuB,CAAC,EACzE,KAAAC,aAAe,KAAKF,kBAAkBG,aAAY,EAGvDL,EAAOM,OACNC,KAAKC,EAAOC,GAASA,aAAiBC,CAAe,CAAC,EACtDC,UAAWF,GAAS,CACnB,KAAKR,YAAc,GACnB,KAAKC,kBAAkBU,KAAK,KAAKX,WAAW,CAC9C,CAAC,EACD,KAAKC,kBAAkBU,KAAK,EAAK,CACnC,CAEAC,QAAM,CACJ,KAAKZ,YAAc,CAAC,KAAKA,YACzB,KAAKC,kBAAkBK,KAAKO,EAAK,CAAC,CAAC,EAAEH,UAAUI,GAAQ,CACrD,KAAKd,YAAc,CAACc,EACpB,KAAKb,kBAAkBU,KAAK,KAAKX,WAAW,CAC9C,CAAC,CAEH,CAEAe,IAAID,EAAc,CAChB,KAAKd,YAAcc,EACnB,KAAKb,kBAAkBU,KAAKG,CAAK,CACnC,iDA9BWjB,GAAamB,EAAAC,CAAA,CAAA,CAAA,CAAA,iCAAbpB,EAAaqB,QAAbrB,EAAasB,UAAAC,WAFZ,MAAM,CAAA,CAAA,SAEPvB,CAAa,GAAA,wIEKlBwB,EAAA,EAAA,SAAA,CAAA,EAA4CC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAG,iBAAA,CAAkB,CAAA,CAAA,EACrEC,EAAA,EAAA,IAAA,CAAA,EACAR,EAAA,EAAA,OAAA,CAAA,EAA8BS,EAAA,CAAA,EAA4BC,EAAA,EAAO,oCAF2DC,EAAA,aAAAC,EAAA,qBAAA,CAAA,oCAE9FC,EAAA,CAAA,EAAAC,EAAAF,EAAA,qBAAA,CAAA,4BAc1BJ,EAAA,EAAA,IAAA,EAAA,kBAA0CO,EAAA,SAAAX,EAAAY,YAAA,sCAThDhB,EAAA,EAAA,SAAA,CAAA,EAAuCC,EAAA,QAAA,UAAA,CAAAC,EAAAe,CAAA,EAAA,IAAAb,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAASF,EAAAc,cAAAC,OAAA,CAAsB,CAAA,CAAA,EAMpEnB,EAAA,EAAA,KAAA,EACEQ,EAAA,EAAA,IAAA,CAAA,EACAY,EAAA,EAAAC,GAAA,EAAA,EAAA,IAAA,CAAA,EAGFX,EAAA,EAGAV,EAAA,EAAA,OAAA,CAAA,EAA8BS,EAAA,CAAA,EAA4BC,EAAA,EAAO,wHAN/DG,EAAA,CAAA,EAAAS,EAAAlB,EAAAY,aAAA,EAAA,EAAA,EAM4BH,EAAA,CAAA,EAAAC,EAAAF,EAAA,qBAAA,CAAA,6BAjCxCW,EAAA,CAAA,EACEvB,EAAA,EAAA,MAAA,CAAA,EAAoE,EAAA,KAAA,EAEhEwB,EAAA,CAAA,EACAA,EAAA,EAAA,CAAA,EACFd,EAAA,EACAV,EAAA,EAAA,KAAA,EACEwB,EAAA,EAAA,CAAA,EACFd,EAAA,EACAV,EAAA,EAAA,KAAA,EAEEoB,EAAA,EAAAK,EAAA,EAAA,EAAA,SAAA,CAAA,EAAiB,EAAAC,GAAA,EAAA,EAAA,SAAA,CAAA,EA0BnBhB,EAAA,EAAM,sBA1BJG,EAAA,CAAA,EAAAS,EAAAlB,EAAAuB,UAAA,EAAA,EAAA,EAOAd,EAAA,EAAAS,EAAAlB,EAAAwB,UAAA,EAAA,EAAA,GDYN,IAAaC,IAA4B,IAAA,CAAnC,MAAOA,CAA4B,CA4BvCC,YAAoBC,EAAgCC,EAAuCd,EACjFe,EAA8B,CADpB,KAAAF,WAAAA,EAAgC,KAAAC,eAAAA,EAAuC,KAAAd,cAAAA,EACjF,KAAAe,iBAAAA,EA3BO,KAAAC,MAAQC,EAAOC,CAAiB,EAKxC,KAAAR,UAAqB,GAIrB,KAAAD,UAAqB,GAKrB,KAAAU,aAAwB,GAKvB,KAAAC,WAAoC,IAAIC,EAElD,KAAAvB,aAAe,GACf,KAAAwB,aAAe,GAEE,KAAAC,WAAaN,EAAOO,CAAU,CAI/C,CAEAC,UAAQ,CAEN,KAAKZ,WAAWa,kBAAkBC,KAAKC,EAAmB,KAAKL,UAAU,CAAC,EAAEM,UAAUC,GAAmB,CACnG,KAAKhC,cAAgBgC,GAAoB,KAAKhB,eAAeiB,oBAAmB,EAAKC,EAAWC,SAClG,KAAKnC,aAAe,GACpB,KAAKsB,WAAWc,KAAK,KAAKpC,YAAY,EAE1C,CAAC,EAED,KAAKE,cAAcmC,aAAaR,KAAKC,EAAmB,KAAKL,UAAU,EAAGa,EAAIC,GAAS,CACrF,KAAKvC,aAAeuC,EACpB,KAAKrB,MAAMsB,aAAY,CACzB,CAAC,CAAC,EAAET,UAAS,CACf,CAEAxC,kBAAgB,CACd,GAAI,KAAKkD,cAAgBC,OAAW,OAEpC,KAAKlB,aAAe,GACpB,IAAMmB,EAAY,KAAK1B,iBAAiB2B,KAAK,KAAKH,YAAa,CAACI,SAAU,MAAOC,OAAQ,EAAI,CAAC,EAC9FH,EAAUI,OAAOhB,UAAU,IAAM,KAAKP,aAAe,EAAK,EAC1DmB,EAAUK,UAAUjB,UAAU,IAAM,KAAKP,aAAe,EAAK,CAC/D,iDAtDWX,GAA4BoC,EAAAC,CAAA,EAAAD,EAAAE,CAAA,EAAAF,EAAAG,CAAA,EAAAH,EAAAI,CAAA,CAAA,CAAA,CAAA,+BAA5BxC,EAA4ByC,UAAA,CAAA,CAAA,4BAAA,CAAA,EAAAC,OAAA,CAAA3C,UAAA,YAAAD,UAAA,YAAAU,aAAA,eAAAoB,YAAA,aAAA,EAAAe,QAAA,CAAAlC,WAAA,YAAA,EAAAmC,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,mBAAAC,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,EAAA,OAAA,SAAA,0BAAA,oBAAA,EAAA,CAAA,YAAA,OAAA,EAAA,MAAA,gBAAA,YAAA,EAAA,YAAA,EAAA,CAAA,KAAA,mBAAA,EAAA,MAAA,WAAA,WAAA,EAAA,CAAA,YAAA,OAAA,EAAA,MAAA,gBAAA,YAAA,EAAA,QAAA,YAAA,EAAA,CAAA,cAAA,OAAA,EAAA,WAAA,YAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,KAAA,mBAAA,EAAA,MAAA,WAAA,YAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,WAAA,EAAA,CAAA,cAAA,OAAA,EAAA,WAAA,UAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,cAAA,OAAA,EAAA,WAAA,UAAA,eAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,SC9BzC9D,EAAA,EAAAgE,GAAA,GAAA,EAAA,eAAA,CAAA,QAAiCzE,EAAA,gBAAA,wBAAA,iBD0BrB0E,EAAYC,CAAkB,EAAAC,OAAA,CAAA;0EAAA,CAAA,CAAA,CAAA,SAI7B1D,CAA4B,GAAA", "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"] }