{"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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"}