UNPKG

@hug/ngx-sidenav

Version:
1 lines 4.73 kB
{"version":3,"file":"hug-ngx-sidenav.mjs","sources":["../../../projects/sidenav/src/sidenav.service.ts","../../../projects/sidenav/src/hug-ngx-sidenav.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NgxMediaService } from '@hug/ngx-core';\nimport { mergeWith, Observable, ReplaySubject, shareReplay, switchMap, take } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport type SidenavMode = 'over' | 'side';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxSidenavService {\n public readonly openChanged$: Observable<boolean>;\n public readonly modeChanged$: Observable<SidenavMode>;\n public readonly hiddenChanged$: Observable<boolean>;\n\n protected mediaService = inject(NgxMediaService);\n\n private readonly opened$ = new ReplaySubject<boolean>(1);\n private readonly mode$ = new ReplaySubject<SidenavMode>(1);\n private readonly hidden$ = new ReplaySubject<boolean>(1);\n private readonly toggle$ = new ReplaySubject<void>(1);\n\n public constructor() {\n const alias$ = this.mediaService.mediaChanged$.pipe(\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n const toggleChanged$ = this.toggle$.pipe(\n switchMap(() => this.openChanged$.pipe(\n take(1),\n map(opened => !opened)\n )),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n this.openChanged$ = alias$.pipe(\n map(alias => alias === 'lg' || alias === 'xl'),\n mergeWith(this.opened$, toggleChanged$),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n this.modeChanged$ = alias$.pipe(\n map(alias => alias === 'xs' ? 'over' : 'side'),\n mergeWith(this.mode$),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n\n this.hiddenChanged$ = alias$.pipe(\n map(alias => alias === 'xs'),\n mergeWith(this.hidden$),\n shareReplay({ bufferSize: 1, refCount: false })\n );\n }\n\n public open(): void {\n this.opened$.next(true);\n }\n\n public close(): void {\n this.opened$.next(false);\n }\n\n public toggle(): void {\n this.toggle$.next();\n }\n\n public hide(): void {\n this.hidden$.next(true);\n }\n\n public show(): void {\n this.hidden$.next(false);\n }\n\n public mode(value: SidenavMode): void {\n this.mode$.next(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}