var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Component, ChangeDetectionStrategy } from '@angular/core';
import { BaseDashboard } from '@memberjunction/ng-shared';
import { RegisterClass } from '@memberjunction/global';
import { Subject } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
import { SharedService } from '@memberjunction/ng-shared';
import * as i0 from "@angular/core";
import * as i1 from "./services/scheduling-instrumentation.service";
import * as i2 from "./components/scheduling-overview.component";
import * as i3 from "./components/scheduling-jobs.component";
import * as i4 from "./components/scheduling-activity.component";
function SchedulingDashboardComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "div", 5);
    i0.ɵɵelement(1, "i", 19);
    i0.ɵɵelementStart(2, "span");
    i0.ɵɵtext(3);
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r0 = i0.ɵɵnextContext();
    i0.ɵɵadvance(3);
    i0.ɵɵtextInterpolate2("", ctx_r0.AlertCount, " Alert", ctx_r0.AlertCount !== 1 ? "s" : "");
} }
function SchedulingDashboardComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "div", 6);
    i0.ɵɵelement(1, "i", 20);
    i0.ɵɵelementStart(2, "span");
    i0.ɵɵtext(3, "Healthy");
    i0.ɵɵelementEnd()();
} }
function SchedulingDashboardComponent_Conditional_27_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "span", 14);
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const ctx_r0 = i0.ɵɵnextContext();
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate(ctx_r0.ActiveJobCount);
} }
function SchedulingDashboardComponent_Case_34_Template(rf, ctx) { if (rf & 1) {
    const _r2 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", 18)(1, "app-scheduling-overview", 21);
    i0.ɵɵlistener("stateChange", function SchedulingDashboardComponent_Case_34_Template_app_scheduling_overview_stateChange_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnDashboardStateChange($event)); });
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r0 = i0.ɵɵnextContext();
    i0.ɵɵadvance();
    i0.ɵɵproperty("initialState", ctx_r0.DashboardState);
} }
function SchedulingDashboardComponent_Case_35_Template(rf, ctx) { if (rf & 1) {
    const _r3 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", 18)(1, "app-scheduling-jobs", 21);
    i0.ɵɵlistener("stateChange", function SchedulingDashboardComponent_Case_35_Template_app_scheduling_jobs_stateChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnJobsStateChange($event)); });
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r0 = i0.ɵɵnextContext();
    i0.ɵɵadvance();
    i0.ɵɵproperty("initialState", ctx_r0.JobsState);
} }
function SchedulingDashboardComponent_Case_36_Template(rf, ctx) { if (rf & 1) {
    const _r4 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", 18)(1, "app-scheduling-activity", 21);
    i0.ɵɵlistener("stateChange", function SchedulingDashboardComponent_Case_36_Template_app_scheduling_activity_stateChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnActivityStateChange($event)); });
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r0 = i0.ɵɵnextContext();
    i0.ɵɵadvance();
    i0.ɵɵproperty("initialState", ctx_r0.ActivityState);
} }
let SchedulingDashboardComponent = class SchedulingDashboardComponent extends BaseDashboard {
    cdr;
    schedulingService;
    IsLoading = false;
    ActiveTab = 'dashboard';
    DashboardState = {};
    JobsState = {};
    ActivityState = {};
    visitedTabs = new Set();
    stateChangeSubject = new Subject();
    ActiveJobCount = 0;
    AlertCount = 0;
    kpiSub;
    alertSub;
    NavigationItems = [
        { id: 'dashboard', text: 'Dashboard', icon: 'fa-solid fa-gauge-high' },
        { id: 'jobs', text: 'Jobs', icon: 'fa-solid fa-calendar-check' },
        { id: 'activity', text: 'Activity', icon: 'fa-solid fa-clock-rotate-left' }
    ];
    constructor(cdr, schedulingService) {
        super();
        this.cdr = cdr;
        this.schedulingService = schedulingService;
        this.setupStateManagement();
    }
    async GetResourceDisplayName(data) {
        return 'Scheduling';
    }
    ngAfterViewInit() {
        this.visitedTabs.add(this.ActiveTab);
        this.loadSidebarCounts();
        this.cdr.detectChanges();
    }
    ngOnDestroy() {
        this.stateChangeSubject.complete();
        if (this.kpiSub)
            this.kpiSub.unsubscribe();
        if (this.alertSub)
            this.alertSub.unsubscribe();
    }
    loadSidebarCounts() {
        this.kpiSub = this.schedulingService.kpis$.subscribe(kpis => {
            this.ActiveJobCount = kpis.totalActiveJobs;
            this.cdr.markForCheck();
        });
        this.alertSub = this.schedulingService.alerts$.subscribe(alerts => {
            this.AlertCount = alerts.length;
            this.cdr.markForCheck();
        });
    }
    OnTabChange(tabId) {
        this.ActiveTab = tabId;
        this.visitedTabs.add(tabId);
        setTimeout(() => {
            SharedService.Instance.InvokeManualResize();
        }, 100);
        this.emitStateChange();
        this.cdr.markForCheck();
    }
    HasVisited(tabId) {
        return this.visitedTabs.has(tabId);
    }
    setupStateManagement() {
        this.stateChangeSubject.pipe(debounceTime(50)).subscribe(state => {
            this.UserStateChanged.emit(state);
        });
    }
    emitStateChange() {
        this.stateChangeSubject.next({
            activeTab: this.ActiveTab,
            dashboardState: this.DashboardState,
            jobsState: this.JobsState,
            activityState: this.ActivityState
        });
    }
    OnDashboardStateChange(state) {
        this.DashboardState = state;
        this.emitStateChange();
    }
    OnJobsStateChange(state) {
        this.JobsState = state;
        this.emitStateChange();
    }
    OnActivityStateChange(state) {
        this.ActivityState = state;
        this.emitStateChange();
    }
    GetCurrentTabLabel() {
        const item = this.NavigationItems.find(n => n.id === this.ActiveTab);
        return item ? item.text : 'Scheduling';
    }
    initDashboard() {
        this.IsLoading = false;
    }
    loadData() {
        if (this.Config?.userState) {
            const state = this.Config.userState;
            if (state.activeTab) {
                this.ActiveTab = state.activeTab;
                this.visitedTabs.add(state.activeTab);
            }
            if (state.dashboardState)
                this.DashboardState = state.dashboardState;
            if (state.jobsState)
                this.JobsState = state.jobsState;
            if (state.activityState)
                this.ActivityState = state.activityState;
            this.cdr.markForCheck();
        }
        this.NotifyLoadComplete();
    }
    static ɵfac = function SchedulingDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SchedulingDashboardComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.SchedulingInstrumentationService)); };
    static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SchedulingDashboardComponent, selectors: [["mj-scheduling-dashboard"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 37, vars: 11, consts: [[1, "scheduling-dashboard-container"], [1, "dashboard-header"], [1, "header-title"], [1, "fa-solid", "fa-calendar-check"], [1, "header-actions"], [1, "status-badge"], [1, "status-badge", "healthy"], [1, "tab-label"], [1, "dashboard-content"], [1, "sidebar"], [1, "sidebar-section"], [1, "sidebar-section-title"], [1, "nav-item", 3, "click"], [1, "fa-solid", "fa-gauge-high"], [1, "badge"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "main-content"], [1, "tab-container"], [1, "tab-content"], [1, "fa-solid", "fa-triangle-exclamation"], [1, "fa-solid", "fa-circle-check"], [3, "stateChange", "initialState"]], template: function SchedulingDashboardComponent_Template(rf, ctx) { if (rf & 1) {
            i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
            i0.ɵɵelement(3, "i", 3);
            i0.ɵɵelementStart(4, "span");
            i0.ɵɵtext(5, "Job Scheduling");
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(6, "div", 4);
            i0.ɵɵconditionalCreate(7, SchedulingDashboardComponent_Conditional_7_Template, 4, 2, "div", 5);
            i0.ɵɵconditionalCreate(8, SchedulingDashboardComponent_Conditional_8_Template, 4, 0, "div", 6);
            i0.ɵɵelementStart(9, "span", 7);
            i0.ɵɵtext(10);
            i0.ɵɵelementEnd()()();
            i0.ɵɵelementStart(11, "div", 8)(12, "div", 9)(13, "div", 10)(14, "div", 11);
            i0.ɵɵtext(15, "Overview");
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(16, "div", 12);
            i0.ɵɵlistener("click", function SchedulingDashboardComponent_Template_div_click_16_listener() { return ctx.OnTabChange("dashboard"); });
            i0.ɵɵelement(17, "i", 13);
            i0.ɵɵelementStart(18, "span");
            i0.ɵɵtext(19, "Dashboard");
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(20, "div", 10)(21, "div", 11);
            i0.ɵɵtext(22, "Management");
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(23, "div", 12);
            i0.ɵɵlistener("click", function SchedulingDashboardComponent_Template_div_click_23_listener() { return ctx.OnTabChange("jobs"); });
            i0.ɵɵelement(24, "i", 3);
            i0.ɵɵelementStart(25, "span");
            i0.ɵɵtext(26, "Jobs");
            i0.ɵɵelementEnd();
            i0.ɵɵconditionalCreate(27, SchedulingDashboardComponent_Conditional_27_Template, 2, 1, "span", 14);
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(28, "div", 12);
            i0.ɵɵlistener("click", function SchedulingDashboardComponent_Template_div_click_28_listener() { return ctx.OnTabChange("activity"); });
            i0.ɵɵelement(29, "i", 15);
            i0.ɵɵelementStart(30, "span");
            i0.ɵɵtext(31, "Activity");
            i0.ɵɵelementEnd()()();
            i0.ɵɵelementStart(32, "div", 16)(33, "div", 17);
            i0.ɵɵconditionalCreate(34, SchedulingDashboardComponent_Case_34_Template, 2, 1, "div", 18)(35, SchedulingDashboardComponent_Case_35_Template, 2, 1, "div", 18)(36, SchedulingDashboardComponent_Case_36_Template, 2, 1, "div", 18);
            i0.ɵɵelementEnd()()()();
        } if (rf & 2) {
            let tmp_7_0;
            i0.ɵɵadvance(7);
            i0.ɵɵconditional(ctx.AlertCount > 0 ? 7 : -1);
            i0.ɵɵadvance();
            i0.ɵɵconditional(ctx.AlertCount === 0 ? 8 : -1);
            i0.ɵɵadvance(2);
            i0.ɵɵtextInterpolate(ctx.GetCurrentTabLabel());
            i0.ɵɵadvance(6);
            i0.ɵɵclassProp("selected", ctx.ActiveTab === "dashboard");
            i0.ɵɵadvance(7);
            i0.ɵɵclassProp("selected", ctx.ActiveTab === "jobs");
            i0.ɵɵadvance(4);
            i0.ɵɵconditional(ctx.ActiveJobCount > 0 ? 27 : -1);
            i0.ɵɵadvance();
            i0.ɵɵclassProp("selected", ctx.ActiveTab === "activity");
            i0.ɵɵadvance(6);
            i0.ɵɵconditional((tmp_7_0 = ctx.ActiveTab) === "dashboard" ? 34 : tmp_7_0 === "jobs" ? 35 : tmp_7_0 === "activity" ? 36 : -1);
        } }, dependencies: [i2.SchedulingOverviewComponent, i3.SchedulingJobsComponent, i4.SchedulingActivityComponent], styles: [".scheduling-dashboard-container[_ngcontent-%COMP%] {\n    display: flex;\n    flex-direction: column;\n    height: 100%;\n    width: 100%;\n    background-color: var(--mj-bg-surface-sunken);\n    color: var(--mj-text-primary);\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n}\n\n\n\n.dashboard-header[_ngcontent-%COMP%] {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 16px 24px;\n    background: var(--mj-brand-primary);\n    border-bottom: 1px solid var(--mj-border-default);\n    box-shadow: var(--mj-shadow-md);\n    flex-shrink: 0;\n}\n\n.header-title[_ngcontent-%COMP%] {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-size: 1.25rem;\n    font-weight: 600;\n    color: var(--mj-text-inverse);\n}\n\n.header-title[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n    color: var(--mj-text-inverse);\n    font-size: 1.5rem;\n}\n\n.header-actions[_ngcontent-%COMP%] {\n    display: flex;\n    align-items: center;\n    gap: 16px;\n}\n\n.tab-label[_ngcontent-%COMP%] {\n    font-size: 0.875rem;\n    font-weight: 500;\n    color: var(--mj-text-inverse);\n    background: rgba(255,255,255,0.15);\n    padding: 6px 14px;\n    border-radius: 20px;\n    backdrop-filter: blur(4px);\n}\n\n.status-badge[_ngcontent-%COMP%] {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    font-size: 0.75rem;\n    font-weight: 600;\n    color: var(--mj-status-warning);\n    background: rgba(251, 191, 36, 0.15);\n    padding: 6px 12px;\n    border-radius: 20px;\n}\n\n.status-badge.healthy[_ngcontent-%COMP%] {\n    color: var(--mj-status-success);\n    background: rgba(52, 211, 153, 0.15);\n}\n\n\n\n.dashboard-content[_ngcontent-%COMP%] {\n    display: flex;\n    flex: 1;\n    overflow: hidden;\n}\n\n\n\n.sidebar[_ngcontent-%COMP%] {\n    width: 240px;\n    background-color: var(--mj-bg-surface-card);\n    border-right: 1px solid var(--mj-border-default);\n    padding: 20px 0;\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    flex-shrink: 0;\n}\n\n.sidebar-section[_ngcontent-%COMP%] {\n    padding: 0 16px;\n    margin-bottom: 4px;\n}\n\n.sidebar-section[_ngcontent-%COMP%]:not(:first-child) {\n    margin-top: 16px;\n}\n\n.sidebar-section-title[_ngcontent-%COMP%] {\n    font-size: 0.7rem;\n    font-weight: 700;\n    color: var(--mj-text-muted);\n    text-transform: uppercase;\n    letter-spacing: 0.05em;\n    padding: 8px 0;\n}\n\n.nav-item[_ngcontent-%COMP%] {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    padding: 12px 20px;\n    margin: 0 8px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    color: var(--mj-text-secondary);\n    font-weight: 500;\n    border-radius: 10px;\n    font-size: 0.9rem;\n}\n\n.nav-item[_ngcontent-%COMP%]:hover {\n    background-color: var(--mj-bg-surface-sunken);\n    color: var(--mj-brand-primary);\n}\n\n.nav-item.selected[_ngcontent-%COMP%] {\n    background: var(--mj-brand-primary);\n    color: var(--mj-text-inverse);\n    box-shadow: var(--mj-shadow-md);\n}\n\n.nav-item[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] {\n    width: 20px;\n    text-align: center;\n    font-size: 1rem;\n}\n\n.nav-item[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%] {\n    margin-left: auto;\n    font-size: 0.7rem;\n    font-weight: 700;\n    padding: 2px 8px;\n    border-radius: 12px;\n    background: rgba(0, 118, 182, 0.1);\n    color: var(--mj-brand-primary);\n}\n\n.nav-item.selected[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%] {\n    background: rgba(255,255,255,0.2);\n    color: var(--mj-text-inverse);\n}\n\n\n\n.main-content[_ngcontent-%COMP%] {\n    flex: 1;\n    overflow-y: auto;\n    padding: 24px;\n    background: var(--mj-bg-surface-sunken);\n}\n\n.tab-container[_ngcontent-%COMP%] {\n    height: 100%;\n}\n\n.tab-content[_ngcontent-%COMP%] {\n    height: 100%;\n    animation: _ngcontent-%COMP%_fadeIn 0.3s ease;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n    from { opacity: 0; transform: translateY(8px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n\n\n\n@media (max-width: 1024px) {\n    .sidebar[_ngcontent-%COMP%] {\n        width: 200px;\n    }\n    .main-content[_ngcontent-%COMP%] {\n        padding: 20px;\n    }\n}\n\n@media (max-width: 768px) {\n    .dashboard-content[_ngcontent-%COMP%] {\n        flex-direction: column;\n    }\n    .sidebar[_ngcontent-%COMP%] {\n        width: 100%;\n        flex-direction: row;\n        padding: 12px;\n        gap: 0;\n        overflow-x: auto;\n        border-right: none;\n        border-bottom: 1px solid var(--mj-border-default);\n    }\n    .sidebar-section[_ngcontent-%COMP%] {\n        display: none;\n    }\n    .nav-item[_ngcontent-%COMP%] {\n        flex-direction: column;\n        padding: 10px 16px;\n        margin: 0 4px;\n        gap: 6px;\n        white-space: nowrap;\n        font-size: 12px;\n    }\n    .nav-item[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%] {\n        position: absolute;\n        top: 4px;\n        right: 4px;\n        margin-left: 0;\n        font-size: 9px;\n        padding: 1px 5px;\n    }\n    .main-content[_ngcontent-%COMP%] {\n        padding: 16px;\n    }\n    .dashboard-header[_ngcontent-%COMP%] {\n        padding: 12px 16px;\n    }\n    .header-title[_ngcontent-%COMP%] {\n        font-size: 1rem;\n    }\n    .tab-label[_ngcontent-%COMP%] {\n        display: none;\n    }\n    .status-badge[_ngcontent-%COMP%]   span[_ngcontent-%COMP%] {\n        display: none;\n    }\n}"], changeDetection: 0 });
};
SchedulingDashboardComponent = __decorate([
    RegisterClass(BaseDashboard, 'SchedulingDashboard')
], SchedulingDashboardComponent);
export { SchedulingDashboardComponent };
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SchedulingDashboardComponent, [{
        type: Component,
        args: [{ standalone: false, selector: 'mj-scheduling-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scheduling-dashboard-container\">\n  <div class=\"dashboard-header\">\n    <div class=\"header-title\">\n      <i class=\"fa-solid fa-calendar-check\"></i>\n      <span>Job Scheduling</span>\n    </div>\n    <div class=\"header-actions\">\n      @if (AlertCount > 0) {\n        <div class=\"status-badge\">\n          <i class=\"fa-solid fa-triangle-exclamation\"></i>\n          <span>{{AlertCount}} Alert{{AlertCount !== 1 ? 's' : ''}}</span>\n        </div>\n      }\n      @if (AlertCount === 0) {\n        <div class=\"status-badge healthy\">\n          <i class=\"fa-solid fa-circle-check\"></i>\n          <span>Healthy</span>\n        </div>\n      }\n      <span class=\"tab-label\">{{GetCurrentTabLabel()}}</span>\n    </div>\n  </div>\n\n  <div class=\"dashboard-content\">\n    <div class=\"sidebar\">\n      <div class=\"sidebar-section\">\n        <div class=\"sidebar-section-title\">Overview</div>\n      </div>\n      <div class=\"nav-item\" [class.selected]=\"ActiveTab === 'dashboard'\" (click)=\"OnTabChange('dashboard')\">\n        <i class=\"fa-solid fa-gauge-high\"></i>\n        <span>Dashboard</span>\n      </div>\n\n      <div class=\"sidebar-section\">\n        <div class=\"sidebar-section-title\">Management</div>\n      </div>\n      <div class=\"nav-item\" [class.selected]=\"ActiveTab === 'jobs'\" (click)=\"OnTabChange('jobs')\">\n        <i class=\"fa-solid fa-calendar-check\"></i>\n        <span>Jobs</span>\n        @if (ActiveJobCount > 0) {\n          <span class=\"badge\">{{ActiveJobCount}}</span>\n        }\n      </div>\n      <div class=\"nav-item\" [class.selected]=\"ActiveTab === 'activity'\" (click)=\"OnTabChange('activity')\">\n        <i class=\"fa-solid fa-clock-rotate-left\"></i>\n        <span>Activity</span>\n      </div>\n    </div>\n\n    <div class=\"main-content\">\n      <div class=\"tab-container\">\n        @switch (ActiveTab) {\n          @case ('dashboard') {\n            <div class=\"tab-content\">\n              <app-scheduling-overview\n                [initialState]=\"DashboardState\"\n                (stateChange)=\"OnDashboardStateChange($event)\">\n              </app-scheduling-overview>\n            </div>\n          }\n          @case ('jobs') {\n            <div class=\"tab-content\">\n              <app-scheduling-jobs\n                [initialState]=\"JobsState\"\n                (stateChange)=\"OnJobsStateChange($event)\">\n              </app-scheduling-jobs>\n            </div>\n          }\n          @case ('activity') {\n            <div class=\"tab-content\">\n              <app-scheduling-activity\n                [initialState]=\"ActivityState\"\n                (stateChange)=\"OnActivityStateChange($event)\">\n              </app-scheduling-activity>\n            </div>\n          }\n        }\n      </div>\n    </div>\n  </div>\n</div>\n", styles: [".scheduling-dashboard-container {\n    display: flex;\n    flex-direction: column;\n    height: 100%;\n    width: 100%;\n    background-color: var(--mj-bg-surface-sunken);\n    color: var(--mj-text-primary);\n    font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n}\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dashboard-header {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    padding: 16px 24px;\n    background: var(--mj-brand-primary);\n    border-bottom: 1px solid var(--mj-border-default);\n    box-shadow: var(--mj-shadow-md);\n    flex-shrink: 0;\n}\n\n.header-title {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    font-size: 1.25rem;\n    font-weight: 600;\n    color: var(--mj-text-inverse);\n}\n\n.header-title i {\n    color: var(--mj-text-inverse);\n    font-size: 1.5rem;\n}\n\n.header-actions {\n    display: flex;\n    align-items: center;\n    gap: 16px;\n}\n\n.tab-label {\n    font-size: 0.875rem;\n    font-weight: 500;\n    color: var(--mj-text-inverse);\n    background: rgba(255,255,255,0.15);\n    padding: 6px 14px;\n    border-radius: 20px;\n    backdrop-filter: blur(4px);\n}\n\n.status-badge {\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    font-size: 0.75rem;\n    font-weight: 600;\n    color: var(--mj-status-warning);\n    background: rgba(251, 191, 36, 0.15);\n    padding: 6px 12px;\n    border-radius: 20px;\n}\n\n.status-badge.healthy {\n    color: var(--mj-status-success);\n    background: rgba(52, 211, 153, 0.15);\n}\n\n/* \u2500\u2500 Layout \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.dashboard-content {\n    display: flex;\n    flex: 1;\n    overflow: hidden;\n}\n\n/* \u2500\u2500 Sidebar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.sidebar {\n    width: 240px;\n    background-color: var(--mj-bg-surface-card);\n    border-right: 1px solid var(--mj-border-default);\n    padding: 20px 0;\n    display: flex;\n    flex-direction: column;\n    gap: 4px;\n    flex-shrink: 0;\n}\n\n.sidebar-section {\n    padding: 0 16px;\n    margin-bottom: 4px;\n}\n\n.sidebar-section:not(:first-child) {\n    margin-top: 16px;\n}\n\n.sidebar-section-title {\n    font-size: 0.7rem;\n    font-weight: 700;\n    color: var(--mj-text-muted);\n    text-transform: uppercase;\n    letter-spacing: 0.05em;\n    padding: 8px 0;\n}\n\n.nav-item {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    padding: 12px 20px;\n    margin: 0 8px;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    color: var(--mj-text-secondary);\n    font-weight: 500;\n    border-radius: 10px;\n    font-size: 0.9rem;\n}\n\n.nav-item:hover {\n    background-color: var(--mj-bg-surface-sunken);\n    color: var(--mj-brand-primary);\n}\n\n.nav-item.selected {\n    background: var(--mj-brand-primary);\n    color: var(--mj-text-inverse);\n    box-shadow: var(--mj-shadow-md);\n}\n\n.nav-item i {\n    width: 20px;\n    text-align: center;\n    font-size: 1rem;\n}\n\n.nav-item .badge {\n    margin-left: auto;\n    font-size: 0.7rem;\n    font-weight: 700;\n    padding: 2px 8px;\n    border-radius: 12px;\n    background: rgba(0, 118, 182, 0.1);\n    color: var(--mj-brand-primary);\n}\n\n.nav-item.selected .badge {\n    background: rgba(255,255,255,0.2);\n    color: var(--mj-text-inverse);\n}\n\n/* \u2500\u2500 Main Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n.main-content {\n    flex: 1;\n    overflow-y: auto;\n    padding: 24px;\n    background: var(--mj-bg-surface-sunken);\n}\n\n.tab-container {\n    height: 100%;\n}\n\n.tab-content {\n    height: 100%;\n    animation: fadeIn 0.3s ease;\n}\n\n@keyframes fadeIn {\n    from { opacity: 0; transform: translateY(8px); }\n    to { opacity: 1; transform: translateY(0); }\n}\n\n/* \u2500\u2500 Responsive \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@media (max-width: 1024px) {\n    .sidebar {\n        width: 200px;\n    }\n    .main-content {\n        padding: 20px;\n    }\n}\n\n@media (max-width: 768px) {\n    .dashboard-content {\n        flex-direction: column;\n    }\n    .sidebar {\n        width: 100%;\n        flex-direction: row;\n        padding: 12px;\n        gap: 0;\n        overflow-x: auto;\n        border-right: none;\n        border-bottom: 1px solid var(--mj-border-default);\n    }\n    .sidebar-section {\n        display: none;\n    }\n    .nav-item {\n        flex-direction: column;\n        padding: 10px 16px;\n        margin: 0 4px;\n        gap: 6px;\n        white-space: nowrap;\n        font-size: 12px;\n    }\n    .nav-item .badge {\n        position: absolute;\n        top: 4px;\n        right: 4px;\n        margin-left: 0;\n        font-size: 9px;\n        padding: 1px 5px;\n    }\n    .main-content {\n        padding: 16px;\n    }\n    .dashboard-header {\n        padding: 12px 16px;\n    }\n    .header-title {\n        font-size: 1rem;\n    }\n    .tab-label {\n        display: none;\n    }\n    .status-badge span {\n        display: none;\n    }\n}\n"] }]
    }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.SchedulingInstrumentationService }], null); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SchedulingDashboardComponent, { className: "SchedulingDashboardComponent", filePath: "src/Scheduling/scheduling-dashboard.component.ts", lineNumber: 25 }); })();
//# sourceMappingURL=scheduling-dashboard.component.js.map