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 } from '@angular/core';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import { RegisterClass } from '@memberjunction/global';
import { BaseAdminContainerComponent } from './base-admin-container.component';
import * as i0 from "@angular/core";
import * as i1 from "@memberjunction/ng-ui-components";
/**
 * Admin → Monitoring. System health, SQL execution logs, and outbound
 * communication delivery monitoring.
 */
let AdminMonitoringComponent = class AdminMonitoringComponent extends BaseAdminContainerComponent {
    ContainerTitle = 'Monitoring';
    ContainerIcon = 'fa-solid fa-stethoscope';
    ContainerSubtitle = 'System health and query execution logs';
    // Communication Monitor intentionally NOT included here — outbound delivery
    // monitoring belongs in the Communications app, not in the Admin app.
    Sections = [
        {
            id: 'diagnostics',
            label: 'Diagnostics',
            icon: 'fa-solid fa-stethoscope',
            description: 'Runtime health and connectivity',
            source: { kind: 'resource', driverClass: 'SystemDiagnosticsResource' }
        },
        {
            id: 'sql-logging',
            label: 'SQL Logging',
            icon: 'fa-solid fa-file-code',
            description: 'Captured SQL execution logs',
            source: { kind: 'dashboard', dashboardName: 'SQL Logging' }
        }
    ];
    static ɵfac = /*@__PURE__*/ (() => { let ɵAdminMonitoringComponent_BaseFactory; return function AdminMonitoringComponent_Factory(__ngFactoryType__) { return (ɵAdminMonitoringComponent_BaseFactory || (ɵAdminMonitoringComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AdminMonitoringComponent)))(__ngFactoryType__ || AdminMonitoringComponent); }; })();
    static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AdminMonitoringComponent, selectors: [["mj-admin-monitoring"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 9, consts: [["contentHost", ""], [3, "Title", "Icon", "Subtitle"], ["Direction", "row", 3, "Flex", "Padding"], ["MobileTitle", "Administration", 3, "ItemClicked", "Sections", "ActiveId"], [3, "Loading", "Error"]], template: function AdminMonitoringComponent_Template(rf, ctx) { if (rf & 1) {
            const _r1 = i0.ɵɵgetCurrentView();
            i0.ɵɵelementStart(0, "mj-page-layout");
            i0.ɵɵelement(1, "mj-page-header", 1);
            i0.ɵɵelementStart(2, "mj-page-body", 2)(3, "mj-left-nav", 3);
            i0.ɵɵlistener("ItemClicked", function AdminMonitoringComponent_Template_mj_left_nav_ItemClicked_3_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.OnNavItemClicked($event)); });
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(4, "mj-left-nav-content", 4);
            i0.ɵɵelementContainer(5, null, 0);
            i0.ɵɵelementEnd()()();
        } if (rf & 2) {
            i0.ɵɵadvance();
            i0.ɵɵproperty("Title", ctx.ContainerTitle)("Icon", ctx.ContainerIcon)("Subtitle", ctx.ContainerSubtitle);
            i0.ɵɵadvance();
            i0.ɵɵproperty("Flex", true)("Padding", false);
            i0.ɵɵadvance();
            i0.ɵɵproperty("Sections", ctx.NavSections)("ActiveId", ctx.ActiveSection);
            i0.ɵɵadvance();
            i0.ɵɵproperty("Loading", ctx.IsLoading)("Error", ctx.LoadError);
        } }, dependencies: [i1.MJPageHeaderComponent, i1.MJPageLayoutComponent, i1.MJPageBodyComponent, i1.MJLeftNavComponent, i1.MJLeftNavContentComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n\n\n\n\n\n@media (max-width: 700px) {\n    [_nghost-%COMP%]     mj-page-body.mj-page-body--row {\n        flex-direction: column;\n    }\n}"] });
};
AdminMonitoringComponent = __decorate([
    RegisterClass(BaseResourceComponent, 'AdminMonitoring')
], AdminMonitoringComponent);
export { AdminMonitoringComponent };
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdminMonitoringComponent, [{
        type: Component,
        args: [{ standalone: false, selector: 'mj-admin-monitoring', template: "<mj-page-layout>\n    <mj-page-header\n        [Title]=\"ContainerTitle\"\n        [Icon]=\"ContainerIcon\"\n        [Subtitle]=\"ContainerSubtitle\">\n    </mj-page-header>\n\n    <mj-page-body [Flex]=\"true\" [Padding]=\"false\" Direction=\"row\">\n        <mj-left-nav\n            MobileTitle=\"Administration\"\n            [Sections]=\"NavSections\"\n            [ActiveId]=\"ActiveSection\"\n            (ItemClicked)=\"OnNavItemClicked($event)\">\n        </mj-left-nav>\n        <mj-left-nav-content [Loading]=\"IsLoading\" [Error]=\"LoadError\">\n            <ng-container #contentHost></ng-container>\n        </mj-left-nav-content>\n    </mj-page-body>\n</mj-page-layout>\n", styles: [":host { display: block; height: 100%; }\n\n/* Layout, rail styling, and content-area chrome all live in the shared\n   <mj-page-body> / <mj-left-nav> / <mj-left-nav-content> components. The\n   only thing this file owns is the responsive collapse of the parent flex\n   direction at narrow viewports. See Section 10 of explorer-chrome-conventions. */\n@media (max-width: 700px) {\n    :host ::ng-deep mj-page-body.mj-page-body--row {\n        flex-direction: column;\n    }\n}\n"] }]
    }], null, null); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AdminMonitoringComponent, { className: "AdminMonitoringComponent", filePath: "src/Admin/admin-monitoring.component.ts", lineNumber: 17 }); })();
//# sourceMappingURL=admin-monitoring.component.js.map