import { Component, OnInit } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { MatTabsModule } from '@angular/material/tabs'; import { MatCardModule } from '@angular/material/card'; import { MatIconModule } from '@angular/material/icon'; import { MatButtonModule } from '@angular/material/button'; import { MatDividerModule } from '@angular/material/divider'; import { DepartmentOnboardingComponent } from './department-onboarding/department-onboarding.component'; import { DepartmentListComponent } from './department-list/department-list.component'; import { UserListComponent } from './user-list/user-list.component'; import { TransactionDashboardComponent } from './transaction-dashboard/transaction-dashboard.component'; import { EventDashboardComponent } from './event-dashboard/event-dashboard.component'; import { LogsViewerComponent } from './logs-viewer/logs-viewer.component'; import { AdminStatsComponent } from './admin-stats/admin-stats.component'; import { BlockchainExplorerMiniComponent } from '../../shared/components'; @Component({ selector: 'app-admin', standalone: true, imports: [ CommonModule, RouterModule, MatTabsModule, MatCardModule, MatIconModule, MatButtonModule, MatDividerModule, DepartmentOnboardingComponent, DepartmentListComponent, UserListComponent, TransactionDashboardComponent, EventDashboardComponent, LogsViewerComponent, AdminStatsComponent, BlockchainExplorerMiniComponent, ], template: `
admin_panel_settings

Admin Portal

Manage the Goa GEL Blockchain Platform

dashboard Dashboard
business Departments
people Users
receipt_long Transactions
event_note Events
description Logs
`, styles: [ ` .admin-container { min-height: 100vh; background-color: var(--dbim-linen); } .admin-header { background: linear-gradient(135deg, var(--dbim-blue-dark) 0%, var(--dbim-blue-mid) 100%); color: white; padding: 32px; box-shadow: var(--shadow-elevated); position: relative; overflow: hidden; &::before { content: ''; position: absolute; top: -50%; right: -20%; width: 60%; height: 200%; background: radial-gradient(circle, rgba(255, 255, 255, 0.1) 0%, transparent 50%); pointer-events: none; } &::after { content: ''; position: absolute; bottom: -50%; left: -10%; width: 40%; height: 150%; background: radial-gradient(circle, rgba(99, 102, 241, 0.2) 0%, transparent 50%); pointer-events: none; } } .header-content { display: flex; align-items: center; gap: 20px; max-width: 1400px; margin: 0 auto; position: relative; z-index: 1; } .header-icon-container { width: 64px; height: 64px; border-radius: 16px; background: rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; backdrop-filter: blur(10px); .header-icon { font-size: 32px; width: 32px; height: 32px; } } .header-text { h1 { margin: 0; font-size: 28px; font-weight: 700; letter-spacing: -0.02em; } .subtitle { margin: 4px 0 0; opacity: 0.9; font-size: 14px; font-weight: 400; } } .admin-content { max-width: 1400px; margin: 0 auto; padding: 24px; } .tabs-card { margin-top: 24px; border-radius: 16px !important; overflow: hidden; } .tab-icon { margin-right: 8px; font-size: 20px; width: 20px; height: 20px; } .tab-content { padding: 24px; background: var(--dbim-white); } .section-divider { margin: 32px 0; } .dashboard-grid { display: grid; grid-template-columns: 1fr 400px; gap: 24px; @media (max-width: 1200px) { grid-template-columns: 1fr; } } .dashboard-main { min-width: 0; } .dashboard-sidebar { min-width: 0; } :host ::ng-deep { .mat-mdc-tab-label { min-width: 120px; } .mat-mdc-tab-header { background: var(--dbim-linen); border-bottom: 1px solid rgba(29, 10, 105, 0.08); } .mat-mdc-tab:not(.mat-mdc-tab-disabled).mdc-tab--active .mdc-tab__text-label { color: var(--dbim-blue-dark); } .mat-mdc-tab-body-wrapper { background: var(--dbim-white); } } `, ], }) export class AdminComponent implements OnInit { ngOnInit(): void { // Initialize admin dashboard } }