import { Component, EventEmitter, Input, Output } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule } from '@angular/router';
import { FileExplorerComponent } from '../../../components/file-explorer/file-explorer.component';
import { QuickLinksComponent } from '../quick-links/quick-links.component';
import { ScrollableOverlayDirective } from '../../shared/overlay-scrollbar/scrollable-overlay.directive';
import type { VaultNode, TagInfo } from '../../../types';
import { environment } from '../../../environments/environment';
@Component({
selector: 'app-nimbus-sidebar',
standalone: true,
imports: [CommonModule, RouterModule, FileExplorerComponent, QuickLinksComponent, ScrollableOverlayDirective],
host: { class: 'block h-full' },
template: `
{{ vaultName }} - ObsiViewer
-
{{ t.count }}
Empty
ObsiViewer
`
})
export class NimbusSidebarComponent {
@Input() vaultName = '';
@Input() effectiveFileTree: VaultNode[] = [];
@Input() selectedNoteId: string | null = null;
@Input() tags: TagInfo[] = [];
@Output() toggleSidebarRequest = new EventEmitter();
@Output() folderSelected = new EventEmitter();
@Output() fileSelected = new EventEmitter();
@Output() tagSelected = new EventEmitter();
@Output() quickLinkSelected = new EventEmitter();
@Output() markdownPlaygroundSelected = new EventEmitter();
env = environment;
open = { quick: true, folders: true, tags: false, trash: false, tests: true };
onQuickLink(id: string) { this.quickLinkSelected.emit(id); }
onMarkdownPlaygroundClick(): void {
this.markdownPlaygroundSelected.emit();
}
}