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 { RegisterClass } from '@memberjunction/global';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import { RunView } from '@memberjunction/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@memberjunction/ng-ui-components";
function CommunicationLogsResourceComponent_For_28_Conditional_19_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "span", 14);
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const log_r1 = i0.ɵɵnextContext().$implicit;
    i0.ɵɵproperty("title", log_r1.ErrorMessage);
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate1(" ", log_r1.ErrorMessage, " ");
} }
function CommunicationLogsResourceComponent_For_28_Conditional_20_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "span", 15);
    i0.ɵɵtext(1, "\u2014");
    i0.ɵɵelementEnd();
} }
function CommunicationLogsResourceComponent_For_28_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "tr")(1, "td")(2, "span", 11);
    i0.ɵɵelement(3, "i");
    i0.ɵɵtext(4);
    i0.ɵɵelementEnd()();
    i0.ɵɵelementStart(5, "td")(6, "span", 12);
    i0.ɵɵelement(7, "i");
    i0.ɵɵtext(8);
    i0.ɵɵelementEnd()();
    i0.ɵɵelementStart(9, "td")(10, "span", 13);
    i0.ɵɵelement(11, "i");
    i0.ɵɵtext(12);
    i0.ɵɵelementEnd()();
    i0.ɵɵelementStart(13, "td");
    i0.ɵɵtext(14);
    i0.ɵɵelementEnd();
    i0.ɵɵelementStart(15, "td");
    i0.ɵɵtext(16);
    i0.ɵɵpipe(17, "date");
    i0.ɵɵelementEnd();
    i0.ɵɵelementStart(18, "td");
    i0.ɵɵconditionalCreate(19, CommunicationLogsResourceComponent_For_28_Conditional_19_Template, 2, 2, "span", 14);
    i0.ɵɵconditionalCreate(20, CommunicationLogsResourceComponent_For_28_Conditional_20_Template, 2, 0, "span", 15);
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const log_r1 = ctx.$implicit;
    const ctx_r1 = i0.ɵɵnextContext();
    i0.ɵɵadvance(2);
    i0.ɵɵproperty("ngClass", ctx_r1.getStatusClass(log_r1.Status));
    i0.ɵɵadvance();
    i0.ɵɵclassMap(ctx_r1.getStatusIcon(log_r1.Status));
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate1(" ", log_r1.Status, " ");
    i0.ɵɵadvance(2);
    i0.ɵɵproperty("ngClass", log_r1.Direction.toLowerCase());
    i0.ɵɵadvance();
    i0.ɵɵclassMap(log_r1.Direction === "Sending" ? "fa-solid fa-arrow-up-right" : "fa-solid fa-arrow-down-left");
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate1(" ", log_r1.Direction, " ");
    i0.ɵɵadvance(3);
    i0.ɵɵclassMap(ctx_r1.getProviderIcon(log_r1.CommunicationProvider));
    i0.ɵɵstyleProp("color", ctx_r1.getProviderColor(log_r1.CommunicationProvider));
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate1(" ", log_r1.CommunicationProvider, " ");
    i0.ɵɵadvance(2);
    i0.ɵɵtextInterpolate(log_r1.CommunicationProviderMessageType);
    i0.ɵɵadvance(2);
    i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(17, 17, log_r1.MessageDate, "medium"));
    i0.ɵɵadvance(3);
    i0.ɵɵconditional(log_r1.ErrorMessage ? 19 : -1);
    i0.ɵɵadvance();
    i0.ɵɵconditional(!log_r1.ErrorMessage ? 20 : -1);
} }
function CommunicationLogsResourceComponent_Conditional_29_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "tr")(1, "td", 16)(2, "div", 17);
    i0.ɵɵelement(3, "i", 18);
    i0.ɵɵelementStart(4, "p");
    i0.ɵɵtext(5, "No logs found matching your criteria");
    i0.ɵɵelementEnd()()()();
} }
let CommunicationLogsResourceComponent = class CommunicationLogsResourceComponent extends BaseResourceComponent {
    cdr;
    logs = [];
    filteredLogs = [];
    isLoading = false;
    statusFilter = '';
    searchTerm = '';
    constructor(cdr) {
        super();
        this.cdr = cdr;
    }
    async ngOnInit() {
        super.ngOnInit();
        await this.loadData();
        this.NotifyLoadComplete();
    }
    ngOnDestroy() {
        super.ngOnDestroy();
    }
    async loadData() {
        try {
            this.isLoading = true;
            this.cdr.detectChanges();
            const rv = RunView.FromMetadataProvider(this.ProviderToUse);
            const result = await rv.RunView({
                EntityName: 'MJ: Communication Logs',
                OrderBy: 'MessageDate DESC',
                MaxRows: 200,
                ResultType: 'entity_object'
            });
            if (result.Success) {
                this.logs = result.Results;
                this.applyFilter();
            }
        }
        catch (error) {
            console.error('Error loading logs:', error);
        }
        finally {
            this.isLoading = false;
            this.cdr.detectChanges();
        }
    }
    onSearchValue(value) {
        this.searchTerm = (value ?? '').toLowerCase();
        this.applyFilter();
    }
    onStatusFilter(status) {
        this.statusFilter = status;
        this.applyFilter();
    }
    // -- Concise chrome: Status lives behind the one Filter popover -----------
    get filterFields() {
        return [{
                key: 'status',
                type: 'chips',
                label: 'Status',
                chipOptions: [
                    { text: 'All', value: '' },
                    { text: 'Sent', value: 'Complete', icon: 'fa-solid fa-check-circle' },
                    { text: 'Failed', value: 'Failed', icon: 'fa-solid fa-times-circle' },
                    { text: 'Pending', value: 'Pending', icon: 'fa-solid fa-clock' },
                ],
            }];
    }
    get filterValues() {
        return { status: this.statusFilter };
    }
    get ActiveFilterCount() {
        return this.statusFilter ? 1 : 0;
    }
    onFilterValuesChange(values) {
        this.onStatusFilter(values['status'] ?? '');
    }
    resetFilters() {
        this.onStatusFilter('');
    }
    getStatusClass(status) {
        const s = (status || '').toLowerCase();
        if (s === 'complete')
            return 'complete';
        if (s === 'failed')
            return 'failed';
        if (s === 'pending')
            return 'pending';
        if (s === 'in-progress')
            return 'in-progress';
        return '';
    }
    getStatusIcon(status) {
        const s = (status || '').toLowerCase();
        if (s === 'complete')
            return 'fa-solid fa-check';
        if (s === 'failed')
            return 'fa-solid fa-xmark';
        if (s === 'pending')
            return 'fa-solid fa-clock';
        if (s === 'in-progress')
            return 'fa-solid fa-spinner';
        return 'fa-solid fa-circle';
    }
    getProviderIcon(name) {
        if (!name)
            return 'fa-solid fa-server';
        const n = name.toLowerCase();
        if (n.includes('sendgrid'))
            return 'fa-solid fa-envelope';
        if (n.includes('twilio'))
            return 'fa-solid fa-comment-sms';
        if (n.includes('gmail') || n.includes('google'))
            return 'fa-brands fa-google';
        if (n.includes('microsoft') || n.includes('graph'))
            return 'fa-brands fa-microsoft';
        return 'fa-solid fa-server';
    }
    getProviderColor(name) {
        if (!name)
            return 'inherit';
        const n = name.toLowerCase();
        if (n.includes('sendgrid'))
            return '#1A82E2';
        if (n.includes('twilio'))
            return '#F22F46';
        if (n.includes('gmail') || n.includes('google'))
            return '#EA4335';
        if (n.includes('microsoft') || n.includes('graph'))
            return '#0078D4';
        return 'inherit';
    }
    applyFilter() {
        let filtered = this.logs;
        if (this.statusFilter) {
            filtered = filtered.filter(l => l.Status === this.statusFilter);
        }
        if (this.searchTerm) {
            filtered = filtered.filter(l => l.CommunicationProvider?.toLowerCase().includes(this.searchTerm) ||
                l.CommunicationProviderMessageType?.toLowerCase().includes(this.searchTerm) ||
                l.Status?.toLowerCase().includes(this.searchTerm) ||
                l.ErrorMessage?.toLowerCase().includes(this.searchTerm));
        }
        this.filteredLogs = filtered;
        this.cdr.detectChanges();
    }
    async GetResourceDisplayName(data) {
        return 'Message Logs';
    }
    async GetResourceIconClass(data) {
        return 'fa-solid fa-list-ul';
    }
    static ɵfac = function CommunicationLogsResourceComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CommunicationLogsResourceComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
    static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CommunicationLogsResourceComponent, selectors: [["mj-communication-logs-resource"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 30, vars: 7, consts: [["Title", "Logs", "Icon", "fa-solid fa-list-ul"], ["actions", ""], [3, "Clicked", "Loading"], ["toolbar", ""], ["Placeholder", "Search messages, providers, recipients...", 3, "ValueChange"], [3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [3, "Flex"], [1, "logs-card"], [1, "table-wrapper"], [1, "log-table"], [1, "log-status-badge", 3, "ngClass"], [1, "log-direction", 3, "ngClass"], [1, "log-provider-badge"], [1, "log-error-text", 3, "title"], [1, "no-error"], ["colspan", "6", 1, "no-data"], [1, "empty-state"], [1, "fa-solid", "fa-inbox"]], template: function CommunicationLogsResourceComponent_Template(rf, ctx) { if (rf & 1) {
            i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0)(2, "div", 1)(3, "mj-refresh-button", 2);
            i0.ɵɵlistener("Clicked", function CommunicationLogsResourceComponent_Template_mj_refresh_button_Clicked_3_listener() { return ctx.loadData(); });
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(4, "div", 3)(5, "mj-page-search", 4);
            i0.ɵɵlistener("ValueChange", function CommunicationLogsResourceComponent_Template_mj_page_search_ValueChange_5_listener($event) { return ctx.onSearchValue($event); });
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(6, "mj-filter-popover", 5);
            i0.ɵɵlistener("ClearAllRequested", function CommunicationLogsResourceComponent_Template_mj_filter_popover_ClearAllRequested_6_listener() { return ctx.resetFilters(); });
            i0.ɵɵelementStart(7, "mj-filter-panel", 6);
            i0.ɵɵlistener("ValuesChange", function CommunicationLogsResourceComponent_Template_mj_filter_panel_ValuesChange_7_listener($event) { return ctx.onFilterValuesChange($event); })("Reset", function CommunicationLogsResourceComponent_Template_mj_filter_panel_Reset_7_listener() { return ctx.resetFilters(); });
            i0.ɵɵelementEnd()()()();
            i0.ɵɵelementStart(8, "mj-page-body", 7)(9, "div", 8)(10, "div", 9)(11, "table", 10)(12, "thead")(13, "tr")(14, "th");
            i0.ɵɵtext(15, "Status");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(16, "th");
            i0.ɵɵtext(17, "Direction");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(18, "th");
            i0.ɵɵtext(19, "Provider");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(20, "th");
            i0.ɵɵtext(21, "Type");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(22, "th");
            i0.ɵɵtext(23, "Date");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(24, "th");
            i0.ɵɵtext(25, "Error");
            i0.ɵɵelementEnd()()();
            i0.ɵɵelementStart(26, "tbody");
            i0.ɵɵrepeaterCreate(27, CommunicationLogsResourceComponent_For_28_Template, 21, 20, "tr", null, i0.ɵɵrepeaterTrackByIdentity);
            i0.ɵɵconditionalCreate(29, CommunicationLogsResourceComponent_Conditional_29_Template, 6, 0, "tr");
            i0.ɵɵelementEnd()()()()()();
        } if (rf & 2) {
            i0.ɵɵadvance(3);
            i0.ɵɵproperty("Loading", ctx.isLoading);
            i0.ɵɵadvance(3);
            i0.ɵɵproperty("ActiveCount", ctx.ActiveFilterCount)("ShowClearAll", ctx.ActiveFilterCount > 0);
            i0.ɵɵadvance();
            i0.ɵɵproperty("Fields", ctx.filterFields)("Values", ctx.filterValues);
            i0.ɵɵadvance();
            i0.ɵɵproperty("Flex", true);
            i0.ɵɵadvance(19);
            i0.ɵɵrepeater(ctx.filteredLogs);
            i0.ɵɵadvance(2);
            i0.ɵɵconditional(ctx.filteredLogs.length === 0 && !ctx.isLoading ? 29 : -1);
        } }, dependencies: [i1.NgClass, i2.MJPageHeaderComponent, i2.MJPageLayoutComponent, i2.MJPageBodyComponent, i2.MJPageSearchComponent, i2.MJFilterPopoverComponent, i2.MJFilterPanelComponent, i2.MJRefreshButtonComponent, i1.DatePipe], styles: ["\n\n    .logs-card[_ngcontent-%COMP%] {\n        flex: 1;\n        min-height: 0;\n        background: var(--mj-bg-surface-card);\n        border: 1px solid var(--mj-border-default);\n        border-radius: 12px;\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n    }\n\n    \n\n    .table-wrapper[_ngcontent-%COMP%] { flex: 1; overflow-y: auto; }\n\n    .log-table[_ngcontent-%COMP%] {\n        width: 100%;\n        border-collapse: collapse;\n        font-size: 12px;\n    }\n    .log-table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%] {\n        background: var(--mj-bg-surface-sunken);\n        position: sticky; top: 0; z-index: 1;\n    }\n    .log-table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%] {\n        padding: 10px 16px;\n        text-align: left;\n        font-weight: 700; font-size: 10px;\n        text-transform: uppercase; letter-spacing: 0.5px;\n        color: var(--mj-text-muted);\n        border-bottom: 1px solid var(--mj-border-default);\n        white-space: nowrap;\n    }\n    .log-table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%] {\n        padding: 12px 16px;\n        border-bottom: 1px solid var(--mj-border-default);\n        color: var(--mj-text-primary);\n        vertical-align: middle;\n    }\n    .log-table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%] { transition: background 0.15s; }\n    .log-table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover { background: var(--mj-bg-surface-sunken); }\n\n    .log-status-badge[_ngcontent-%COMP%] {\n        display: inline-flex; align-items: center;\n        gap: 4px; font-size: 11px; font-weight: 600;\n        padding: 3px 10px;\n        border-radius: 4px;\n    }\n    .log-status-badge.complete[_ngcontent-%COMP%] {\n        background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-success);\n    }\n    .log-status-badge.failed[_ngcontent-%COMP%] {\n        background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-error);\n    }\n    .log-status-badge.pending[_ngcontent-%COMP%] {\n        background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-warning);\n    }\n    .log-status-badge.in-progress[_ngcontent-%COMP%] {\n        background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n        color: var(--mj-brand-primary);\n    }\n\n    .log-direction[_ngcontent-%COMP%] {\n        display: flex; align-items: center;\n        gap: 4px; font-size: 11px;\n        color: var(--mj-text-muted);\n    }\n    .log-direction[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] { font-size: 10px; }\n    .log-direction.sending[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] { color: var(--mj-brand-primary); }\n    .log-direction.receiving[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] { color: var(--mj-status-success); }\n\n    .log-provider-badge[_ngcontent-%COMP%] {\n        display: inline-flex; align-items: center;\n        gap: 6px; padding: 3px 10px;\n        border-radius: 4px;\n        background: var(--mj-bg-surface-sunken);\n        font-weight: 500;\n    }\n\n    .log-error-text[_ngcontent-%COMP%] {\n        color: var(--mj-status-error);\n        max-width: 200px;\n        overflow: hidden; text-overflow: ellipsis;\n        white-space: nowrap; font-size: 11px;\n        display: block;\n    }\n    .no-error[_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n    .no-data[_ngcontent-%COMP%] { padding: 0 !important; }\n    .empty-state[_ngcontent-%COMP%] {\n        display: flex; flex-direction: column;\n        align-items: center; justify-content: center;\n        padding: 48px 0; color: var(--mj-text-muted);\n    }\n    .empty-state[_ngcontent-%COMP%]   i[_ngcontent-%COMP%] { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n    .empty-state[_ngcontent-%COMP%]   p[_ngcontent-%COMP%] { margin: 0; font-size: 13px; }"] });
};
CommunicationLogsResourceComponent = __decorate([
    RegisterClass(BaseResourceComponent, 'CommunicationLogsResource')
], CommunicationLogsResourceComponent);
export { CommunicationLogsResourceComponent };
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommunicationLogsResourceComponent, [{
        type: Component,
        args: [{ standalone: false, selector: 'mj-communication-logs-resource', template: `
    <mj-page-layout>
      <mj-page-header Title="Logs" Icon="fa-solid fa-list-ul">
        <div actions>
          <mj-refresh-button [Loading]="isLoading" (Clicked)="loadData()"></mj-refresh-button>
        </div>
        <div toolbar>
          <mj-page-search
            Placeholder="Search messages, providers, recipients..."
            (ValueChange)="onSearchValue($event)">
          </mj-page-search>
          <mj-filter-popover
            [ActiveCount]="ActiveFilterCount"
            [ShowClearAll]="ActiveFilterCount > 0"
            (ClearAllRequested)="resetFilters()">
            <mj-filter-panel
              [Fields]="filterFields"
              [Values]="filterValues"
              (ValuesChange)="onFilterValuesChange($event)"
              (Reset)="resetFilters()">
            </mj-filter-panel>
          </mj-filter-popover>
        </div>
      </mj-page-header>
      <mj-page-body [Flex]="true">
        <div class="logs-card">
        <div class="table-wrapper">
          <table class="log-table">
            <thead>
              <tr>
                <th>Status</th>
                <th>Direction</th>
                <th>Provider</th>
                <th>Type</th>
                <th>Date</th>
                <th>Error</th>
              </tr>
            </thead>
            <tbody>
              @for (log of filteredLogs; track log) {
                <tr>
                  <td>
                    <span class="log-status-badge" [ngClass]="getStatusClass(log.Status)">
                      <i [class]="getStatusIcon(log.Status)"></i>
                      {{log.Status}}
                    </span>
                  </td>
                  <td>
                    <span class="log-direction" [ngClass]="log.Direction.toLowerCase()">
                      <i [class]="log.Direction === 'Sending' ? 'fa-solid fa-arrow-up-right' : 'fa-solid fa-arrow-down-left'"></i>
                      {{log.Direction}}
                    </span>
                  </td>
                  <td>
                    <span class="log-provider-badge">
                      <i [class]="getProviderIcon(log.CommunicationProvider)" [style.color]="getProviderColor(log.CommunicationProvider)"></i>
                      {{log.CommunicationProvider}}
                    </span>
                  </td>
                  <td>{{log.CommunicationProviderMessageType}}</td>
                  <td>{{log.MessageDate | date:'medium'}}</td>
                  <td>
                    @if (log.ErrorMessage) {
                      <span class="log-error-text" [title]="log.ErrorMessage">
                        {{log.ErrorMessage}}
                      </span>
                    }
                    @if (!log.ErrorMessage) {
                      <span class="no-error">&mdash;</span>
                    }
                  </td>
                </tr>
              }
              @if (filteredLogs.length === 0 && !isLoading) {
                <tr>
                  <td colspan="6" class="no-data">
                    <div class="empty-state">
                      <i class="fa-solid fa-inbox"></i>
                      <p>No logs found matching your criteria</p>
                    </div>
                  </td>
                </tr>
              }
            </tbody>
          </table>
        </div>
        </div>
      </mj-page-body>
    </mj-page-layout>
    `, styles: ["\n    /* Card wrapper inside <mj-page-body>: the table sits in a tinted card. */\n    .logs-card {\n        flex: 1;\n        min-height: 0;\n        background: var(--mj-bg-surface-card);\n        border: 1px solid var(--mj-border-default);\n        border-radius: 12px;\n        overflow: hidden;\n        display: flex;\n        flex-direction: column;\n    }\n\n    /* TABLE */\n    .table-wrapper { flex: 1; overflow-y: auto; }\n\n    .log-table {\n        width: 100%;\n        border-collapse: collapse;\n        font-size: 12px;\n    }\n    .log-table thead {\n        background: var(--mj-bg-surface-sunken);\n        position: sticky; top: 0; z-index: 1;\n    }\n    .log-table th {\n        padding: 10px 16px;\n        text-align: left;\n        font-weight: 700; font-size: 10px;\n        text-transform: uppercase; letter-spacing: 0.5px;\n        color: var(--mj-text-muted);\n        border-bottom: 1px solid var(--mj-border-default);\n        white-space: nowrap;\n    }\n    .log-table td {\n        padding: 12px 16px;\n        border-bottom: 1px solid var(--mj-border-default);\n        color: var(--mj-text-primary);\n        vertical-align: middle;\n    }\n    .log-table tbody tr { transition: background 0.15s; }\n    .log-table tbody tr:hover { background: var(--mj-bg-surface-sunken); }\n\n    .log-status-badge {\n        display: inline-flex; align-items: center;\n        gap: 4px; font-size: 11px; font-weight: 600;\n        padding: 3px 10px;\n        border-radius: 4px;\n    }\n    .log-status-badge.complete {\n        background: color-mix(in srgb, var(--mj-status-success) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-success);\n    }\n    .log-status-badge.failed {\n        background: color-mix(in srgb, var(--mj-status-error) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-error);\n    }\n    .log-status-badge.pending {\n        background: color-mix(in srgb, var(--mj-status-warning) 15%, var(--mj-bg-surface));\n        color: var(--mj-status-warning);\n    }\n    .log-status-badge.in-progress {\n        background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n        color: var(--mj-brand-primary);\n    }\n\n    .log-direction {\n        display: flex; align-items: center;\n        gap: 4px; font-size: 11px;\n        color: var(--mj-text-muted);\n    }\n    .log-direction i { font-size: 10px; }\n    .log-direction.sending i { color: var(--mj-brand-primary); }\n    .log-direction.receiving i { color: var(--mj-status-success); }\n\n    .log-provider-badge {\n        display: inline-flex; align-items: center;\n        gap: 6px; padding: 3px 10px;\n        border-radius: 4px;\n        background: var(--mj-bg-surface-sunken);\n        font-weight: 500;\n    }\n\n    .log-error-text {\n        color: var(--mj-status-error);\n        max-width: 200px;\n        overflow: hidden; text-overflow: ellipsis;\n        white-space: nowrap; font-size: 11px;\n        display: block;\n    }\n    .no-error { color: var(--mj-text-muted); }\n\n    .no-data { padding: 0 !important; }\n    .empty-state {\n        display: flex; flex-direction: column;\n        align-items: center; justify-content: center;\n        padding: 48px 0; color: var(--mj-text-muted);\n    }\n    .empty-state i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }\n    .empty-state p { margin: 0; font-size: 13px; }\n  "] }]
    }], () => [{ type: i0.ChangeDetectorRef }], null); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CommunicationLogsResourceComponent, { className: "CommunicationLogsResourceComponent", filePath: "src/Communication/communication-logs-resource.component.ts", lineNumber: 203 }); })();
//# sourceMappingURL=communication-logs-resource.component.js.map