/**
 * @fileoverview MCP Filter Panel Component
 *
 * Provides filtering controls for the MCP Dashboard.
 * Matches the pattern used by agent-filter-panel component.
 *
 * @module MCP Filter Panel
 */
import { Component, Input, Output, EventEmitter } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
const _forTrack0 = ($index, $item) => $item.value;
function MCPFilterPanelComponent_For_23_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "option", 14);
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const option_r1 = ctx.$implicit;
    i0.ɵɵproperty("value", option_r1.value);
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate(option_r1.text);
} }
function MCPFilterPanelComponent_Conditional_24_For_6_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "option", 14);
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const option_r4 = ctx.$implicit;
    i0.ɵɵproperty("value", option_r4.value);
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate(option_r4.text);
} }
function MCPFilterPanelComponent_Conditional_24_Template(rf, ctx) { if (rf & 1) {
    const _r2 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", 8)(1, "label", 9);
    i0.ɵɵelement(2, "span", 18);
    i0.ɵɵtext(3, " Server Status ");
    i0.ɵɵelementEnd();
    i0.ɵɵelementStart(4, "select", 13);
    i0.ɵɵlistener("ngModelChange", function MCPFilterPanelComponent_Conditional_24_Template_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onServerStatusChange($event)); });
    i0.ɵɵrepeaterCreate(5, MCPFilterPanelComponent_Conditional_24_For_6_Template, 2, 2, "option", 14, _forTrack0);
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r2 = i0.ɵɵnextContext();
    i0.ɵɵadvance(4);
    i0.ɵɵproperty("ngModel", ctx_r2.filters.serverStatus);
    i0.ɵɵadvance();
    i0.ɵɵrepeater(ctx_r2.serverStatusOptions);
} }
function MCPFilterPanelComponent_Conditional_25_For_6_Template(rf, ctx) { if (rf & 1) {
    i0.ɵɵelementStart(0, "option", 14);
    i0.ɵɵtext(1);
    i0.ɵɵelementEnd();
} if (rf & 2) {
    const option_r6 = ctx.$implicit;
    i0.ɵɵproperty("value", option_r6.value);
    i0.ɵɵadvance();
    i0.ɵɵtextInterpolate(option_r6.text);
} }
function MCPFilterPanelComponent_Conditional_25_Template(rf, ctx) { if (rf & 1) {
    const _r5 = i0.ɵɵgetCurrentView();
    i0.ɵɵelementStart(0, "div", 8)(1, "label", 9);
    i0.ɵɵelement(2, "span", 19);
    i0.ɵɵtext(3, " Connection Status ");
    i0.ɵɵelementEnd();
    i0.ɵɵelementStart(4, "select", 13);
    i0.ɵɵlistener("ngModelChange", function MCPFilterPanelComponent_Conditional_25_Template_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onConnectionStatusChange($event)); });
    i0.ɵɵrepeaterCreate(5, MCPFilterPanelComponent_Conditional_25_For_6_Template, 2, 2, "option", 14, _forTrack0);
    i0.ɵɵelementEnd()();
} if (rf & 2) {
    const ctx_r2 = i0.ɵɵnextContext();
    i0.ɵɵadvance(4);
    i0.ɵɵproperty("ngModel", ctx_r2.filters.connectionStatus);
    i0.ɵɵadvance();
    i0.ɵɵrepeater(ctx_r2.connectionStatusOptions);
} }
export class MCPFilterPanelComponent {
    filters = {
        searchTerm: '',
        serverStatus: 'all',
        connectionStatus: 'all',
        toolStatus: 'all',
        logStatus: 'all'
    };
    activeTab = 'servers';
    totalCount = 0;
    filteredCount = 0;
    filtersChange = new EventEmitter();
    closePanel = new EventEmitter();
    serverStatusOptions = [
        { text: 'All Statuses', value: 'all' },
        { text: 'Active', value: 'Active' },
        { text: 'Inactive', value: 'Inactive' }
    ];
    connectionStatusOptions = [
        { text: 'All Statuses', value: 'all' },
        { text: 'Active', value: 'Active' },
        { text: 'Inactive', value: 'Inactive' },
        { text: 'Error', value: 'Error' }
    ];
    toolStatusOptions = [
        { text: 'All Statuses', value: 'all' },
        { text: 'Active', value: 'Active' },
        { text: 'Deprecated', value: 'Deprecated' }
    ];
    logStatusOptions = [
        { text: 'All Statuses', value: 'all' },
        { text: 'Success', value: 'Success' },
        { text: 'Error', value: 'Error' },
        { text: 'Running', value: 'Running' }
    ];
    onFilterChange() {
        this.filtersChange.emit(this.filters);
    }
    onSearchChange(value) {
        this.filters = { ...this.filters, searchTerm: value };
        this.onFilterChange();
    }
    onServerStatusChange(value) {
        this.filters = { ...this.filters, serverStatus: value };
        this.onFilterChange();
    }
    onConnectionStatusChange(value) {
        this.filters = { ...this.filters, connectionStatus: value };
        this.onFilterChange();
    }
    onToolStatusChange(value) {
        this.filters = { ...this.filters, toolStatus: value };
        this.onFilterChange();
    }
    onLogStatusChange(value) {
        this.filters = { ...this.filters, logStatus: value };
        this.onFilterChange();
    }
    resetAllFilters() {
        this.filters = {
            searchTerm: '',
            serverStatus: 'all',
            connectionStatus: 'all',
            toolStatus: 'all',
            logStatus: 'all'
        };
        this.onFilterChange();
    }
    toggleFilterPanel() {
        this.closePanel.emit();
    }
    get hasActiveFilters() {
        return this.filters.searchTerm !== '' ||
            this.filters.serverStatus !== 'all' ||
            this.filters.connectionStatus !== 'all' ||
            this.filters.toolStatus !== 'all' ||
            this.filters.logStatus !== 'all';
    }
    get currentStatusOptions() {
        switch (this.activeTab) {
            case 'servers':
                return this.serverStatusOptions;
            case 'connections':
                return this.connectionStatusOptions;
            case 'tools':
                return this.toolStatusOptions;
            case 'logs':
                return this.logStatusOptions;
            default:
                return this.serverStatusOptions;
        }
    }
    get currentStatusValue() {
        switch (this.activeTab) {
            case 'servers':
                return this.filters.serverStatus;
            case 'connections':
                return this.filters.connectionStatus;
            case 'tools':
                return this.filters.toolStatus;
            case 'logs':
                return this.filters.logStatus;
            default:
                return 'all';
        }
    }
    onCurrentStatusChange(value) {
        switch (this.activeTab) {
            case 'servers':
                this.onServerStatusChange(value);
                break;
            case 'connections':
                this.onConnectionStatusChange(value);
                break;
            case 'tools':
                this.onToolStatusChange(value);
                break;
            case 'logs':
                this.onLogStatusChange(value);
                break;
        }
    }
    getTabLabel() {
        switch (this.activeTab) {
            case 'servers':
                return 'Server';
            case 'connections':
                return 'Connection';
            case 'tools':
                return 'Tool';
            case 'logs':
                return 'Log';
            default:
                return 'Item';
        }
    }
    static ɵfac = function MCPFilterPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MCPFilterPanelComponent)(); };
    static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MCPFilterPanelComponent, selectors: [["mj-mcp-filter-panel"]], inputs: { filters: "filters", activeTab: "activeTab", totalCount: "totalCount", filteredCount: "filteredCount" }, outputs: { filtersChange: "filtersChange", closePanel: "closePanel" }, standalone: false, decls: 30, vars: 11, consts: [[1, "filter-panel"], [1, "filter-panel-header"], [1, "filter-summary-inline"], [1, "summary-value"], [1, "summary-label"], [1, "close-btn", 3, "click"], [1, "fa-solid", "fa-times"], [1, "filter-content"], [1, "filter-group"], [1, "filter-label"], [1, "fa-solid", "fa-search"], ["type", "text", 1, "filter-input", 3, "ngModelChange", "ngModel", "placeholder"], [1, "fa-solid", "fa-toggle-on"], [1, "filter-select", 3, "ngModelChange", "ngModel"], [3, "value"], [1, "filter-actions"], ["title", "Reset all filters", 1, "reset-btn", 3, "click"], [1, "fa-solid", "fa-undo"], [1, "fa-solid", "fa-server"], [1, "fa-solid", "fa-link"]], template: function MCPFilterPanelComponent_Template(rf, ctx) { if (rf & 1) {
            i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h3");
            i0.ɵɵtext(3, "MCP Filters");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(4, "div", 2)(5, "span", 3);
            i0.ɵɵtext(6);
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(7, "span", 4);
            i0.ɵɵtext(8);
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(9, "button", 5);
            i0.ɵɵlistener("click", function MCPFilterPanelComponent_Template_button_click_9_listener() { return ctx.toggleFilterPanel(); });
            i0.ɵɵelement(10, "span", 6);
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(11, "div", 7)(12, "div", 8)(13, "label", 9);
            i0.ɵɵelement(14, "span", 10);
            i0.ɵɵtext(15, " Search ");
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(16, "input", 11);
            i0.ɵɵlistener("ngModelChange", function MCPFilterPanelComponent_Template_input_ngModelChange_16_listener($event) { return ctx.onSearchChange($event); });
            i0.ɵɵelementEnd()();
            i0.ɵɵelementStart(17, "div", 8)(18, "label", 9);
            i0.ɵɵelement(19, "span", 12);
            i0.ɵɵtext(20);
            i0.ɵɵelementEnd();
            i0.ɵɵelementStart(21, "select", 13);
            i0.ɵɵlistener("ngModelChange", function MCPFilterPanelComponent_Template_select_ngModelChange_21_listener($event) { return ctx.onCurrentStatusChange($event); });
            i0.ɵɵrepeaterCreate(22, MCPFilterPanelComponent_For_23_Template, 2, 2, "option", 14, _forTrack0);
            i0.ɵɵelementEnd()();
            i0.ɵɵconditionalCreate(24, MCPFilterPanelComponent_Conditional_24_Template, 7, 1, "div", 8);
            i0.ɵɵconditionalCreate(25, MCPFilterPanelComponent_Conditional_25_Template, 7, 1, "div", 8);
            i0.ɵɵelementStart(26, "div", 15)(27, "button", 16);
            i0.ɵɵlistener("click", function MCPFilterPanelComponent_Template_button_click_27_listener() { return ctx.resetAllFilters(); });
            i0.ɵɵelement(28, "span", 17);
            i0.ɵɵtext(29, " Reset Filters ");
            i0.ɵɵelementEnd()()()();
        } if (rf & 2) {
            i0.ɵɵadvance(6);
            i0.ɵɵtextInterpolate(ctx.filteredCount);
            i0.ɵɵadvance(2);
            i0.ɵɵtextInterpolate1("of ", ctx.totalCount);
            i0.ɵɵadvance(8);
            i0.ɵɵproperty("placeholder", i0.ɵɵinterpolate1("Search ", ctx.getTabLabel().toLowerCase(), "s..."))("ngModel", ctx.filters.searchTerm);
            i0.ɵɵadvance(4);
            i0.ɵɵtextInterpolate1(" ", ctx.getTabLabel(), " Status ");
            i0.ɵɵadvance();
            i0.ɵɵproperty("ngModel", ctx.currentStatusValue);
            i0.ɵɵadvance();
            i0.ɵɵrepeater(ctx.currentStatusOptions);
            i0.ɵɵadvance(2);
            i0.ɵɵconditional(ctx.activeTab === "connections" || ctx.activeTab === "tools" || ctx.activeTab === "logs" ? 24 : -1);
            i0.ɵɵadvance();
            i0.ɵɵconditional(ctx.activeTab === "logs" ? 25 : -1);
            i0.ɵɵadvance(2);
            i0.ɵɵclassProp("has-filters", ctx.hasActiveFilters);
        } }, dependencies: [i1.NgSelectOption, i1.ɵNgSelectMultipleOption, i1.DefaultValueAccessor, i1.SelectControlValueAccessor, i1.NgControlStatus, i1.NgModel], styles: ["\n\n\n.filter-panel[_ngcontent-%COMP%] {\n  height: 100%;\n  background: var(--mj-bg-surface);\n  border-right: 1px solid var(--mj-border-default);\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n\n\n\n.filter-panel-header[_ngcontent-%COMP%] {\n  padding: 20px;\n  border-bottom: 1px solid var(--mj-bg-surface-sunken);\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-shrink: 0;\n  background: var(--mj-bg-surface-card);\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%] {\n  margin: 0;\n  font-size: 16px;\n  font-weight: 700;\n  color: var(--mj-text-primary);\n  flex: 1;\n  letter-spacing: -0.02em;\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .filter-summary-inline[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: baseline;\n  gap: 4px;\n  margin-right: 16px;\n  font-size: 13px;\n  padding: 6px 12px;\n  background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n  border-radius: 20px;\n  border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .filter-summary-inline[_ngcontent-%COMP%]   .summary-value[_ngcontent-%COMP%] {\n  font-weight: 700;\n  color: var(--mj-brand-primary);\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .filter-summary-inline[_ngcontent-%COMP%]   .summary-label[_ngcontent-%COMP%] {\n  color: var(--mj-brand-primary);\n  font-weight: 500;\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .close-btn[_ngcontent-%COMP%] {\n  background: transparent;\n  border: none;\n  padding: 8px;\n  cursor: pointer;\n  color: var(--mj-text-disabled);\n  border-radius: 8px;\n  transition: all 0.2s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .close-btn[_ngcontent-%COMP%]:hover {\n  background: var(--mj-bg-surface-sunken);\n  color: var(--mj-text-secondary);\n}\n\n.filter-panel-header[_ngcontent-%COMP%]   .close-btn[_ngcontent-%COMP%]   .fa-solid[_ngcontent-%COMP%] {\n  font-size: 14px;\n}\n\n\n\n.filter-content[_ngcontent-%COMP%] {\n  flex: 1;\n  overflow-y: auto;\n  overflow-x: hidden;\n  padding: 20px;\n}\n\n\n\n.filter-group[_ngcontent-%COMP%] {\n  margin-bottom: 24px;\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-label[_ngcontent-%COMP%] {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 10px;\n  font-size: 12px;\n  font-weight: 700;\n  color: var(--mj-text-muted);\n  text-transform: uppercase;\n  letter-spacing: 0.75px;\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-label[_ngcontent-%COMP%]   .fa-solid[_ngcontent-%COMP%] {\n  font-size: 13px;\n  color: var(--mj-brand-primary);\n  width: 16px;\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-input[_ngcontent-%COMP%], \n.filter-group[_ngcontent-%COMP%]   .filter-select[_ngcontent-%COMP%] {\n  width: 100%;\n  padding: 12px 14px;\n  border: 1px solid var(--mj-border-default);\n  border-radius: 10px;\n  font-size: 14px;\n  background: var(--mj-bg-surface);\n  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n  box-sizing: border-box;\n  color: var(--mj-text-secondary);\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-input[_ngcontent-%COMP%]:focus, \n.filter-group[_ngcontent-%COMP%]   .filter-select[_ngcontent-%COMP%]:focus {\n  outline: none;\n  border-color: var(--mj-brand-primary);\n  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-input[_ngcontent-%COMP%]::placeholder {\n  color: var(--mj-text-disabled);\n}\n\n.filter-group[_ngcontent-%COMP%]   .filter-select[_ngcontent-%COMP%] {\n  cursor: pointer;\n  appearance: none;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 14px center;\n  padding-right: 36px;\n}\n\n\n\n.filter-actions[_ngcontent-%COMP%] {\n  margin-top: 28px;\n  padding-top: 20px;\n  border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.filter-actions[_ngcontent-%COMP%]   .reset-btn[_ngcontent-%COMP%] {\n  width: 100%;\n  padding: 12px 16px;\n  background: var(--mj-bg-surface-card);\n  border: 1px solid var(--mj-border-default);\n  border-radius: 10px;\n  color: var(--mj-text-muted);\n  font-size: 14px;\n  font-weight: 600;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n  box-sizing: border-box;\n}\n\n.filter-actions[_ngcontent-%COMP%]   .reset-btn[_ngcontent-%COMP%]:hover {\n  background: var(--mj-bg-surface-sunken);\n  border-color: var(--mj-border-strong);\n  color: var(--mj-text-secondary);\n  transform: translateY(-1px);\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.filter-actions[_ngcontent-%COMP%]   .reset-btn.has-filters[_ngcontent-%COMP%] {\n  background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n  border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n  color: var(--mj-brand-primary);\n}\n\n.filter-actions[_ngcontent-%COMP%]   .reset-btn.has-filters[_ngcontent-%COMP%]:hover {\n  background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n  border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n  color: var(--mj-brand-primary);\n}\n\n.filter-actions[_ngcontent-%COMP%]   .reset-btn[_ngcontent-%COMP%]   .fa-solid[_ngcontent-%COMP%] {\n  font-size: 13px;\n}\n\n\n\n.filter-content[_ngcontent-%COMP%]::-webkit-scrollbar {\n  width: 6px;\n}\n\n.filter-content[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n  background: var(--mj-bg-surface-card);\n  border-radius: 3px;\n}\n\n.filter-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n  background: var(--mj-border-strong);\n  border-radius: 3px;\n}\n\n.filter-content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n  background: var(--mj-text-disabled);\n}"] });
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MCPFilterPanelComponent, [{
        type: Component,
        args: [{ standalone: false, selector: 'mj-mcp-filter-panel', template: "<div class=\"filter-panel\">\n  <div class=\"filter-panel-header\">\n    <h3>MCP Filters</h3>\n    <div class=\"filter-summary-inline\">\n      <span class=\"summary-value\">{{ filteredCount }}</span>\n      <span class=\"summary-label\">of {{ totalCount }}</span>\n    </div>\n    <button class=\"close-btn\" (click)=\"toggleFilterPanel()\">\n      <span class=\"fa-solid fa-times\"></span>\n    </button>\n  </div>\n\n  <div class=\"filter-content\">\n    <!-- Search Filter -->\n    <div class=\"filter-group\">\n      <label class=\"filter-label\">\n        <span class=\"fa-solid fa-search\"></span>\n        Search\n      </label>\n      <input\n        type=\"text\"\n        class=\"filter-input\"\n        [ngModel]=\"filters.searchTerm\"\n        (ngModelChange)=\"onSearchChange($event)\"\n        placeholder=\"Search {{ getTabLabel().toLowerCase() }}s...\">\n    </div>\n\n    <!-- Status Filter (context-aware based on active tab) -->\n    <div class=\"filter-group\">\n      <label class=\"filter-label\">\n        <span class=\"fa-solid fa-toggle-on\"></span>\n        {{ getTabLabel() }} Status\n      </label>\n      <select\n        class=\"filter-select\"\n        [ngModel]=\"currentStatusValue\"\n        (ngModelChange)=\"onCurrentStatusChange($event)\">\n        @for (option of currentStatusOptions; track option.value) {\n          <option [value]=\"option.value\">{{ option.text }}</option>\n        }\n      </select>\n    </div>\n\n    <!-- Additional filters visible based on context -->\n    @if (activeTab === 'connections' || activeTab === 'tools' || activeTab === 'logs') {\n      <div class=\"filter-group\">\n        <label class=\"filter-label\">\n          <span class=\"fa-solid fa-server\"></span>\n          Server Status\n        </label>\n        <select\n          class=\"filter-select\"\n          [ngModel]=\"filters.serverStatus\"\n          (ngModelChange)=\"onServerStatusChange($event)\">\n          @for (option of serverStatusOptions; track option.value) {\n            <option [value]=\"option.value\">{{ option.text }}</option>\n          }\n        </select>\n      </div>\n    }\n\n    @if (activeTab === 'logs') {\n      <div class=\"filter-group\">\n        <label class=\"filter-label\">\n          <span class=\"fa-solid fa-link\"></span>\n          Connection Status\n        </label>\n        <select\n          class=\"filter-select\"\n          [ngModel]=\"filters.connectionStatus\"\n          (ngModelChange)=\"onConnectionStatusChange($event)\">\n          @for (option of connectionStatusOptions; track option.value) {\n            <option [value]=\"option.value\">{{ option.text }}</option>\n          }\n        </select>\n      </div>\n    }\n\n    <!-- Reset Button -->\n    <div class=\"filter-actions\">\n      <button\n        class=\"reset-btn\"\n        (click)=\"resetAllFilters()\"\n        title=\"Reset all filters\"\n        [class.has-filters]=\"hasActiveFilters\">\n        <span class=\"fa-solid fa-undo\"></span>\n        Reset Filters\n      </button>\n    </div>\n  </div>\n</div>\n", styles: ["/* MCP Filter Panel - Matching Agent Filter Panel Design */\n\n.filter-panel {\n  height: 100%;\n  background: var(--mj-bg-surface);\n  border-right: 1px solid var(--mj-border-default);\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n}\n\n/* Header */\n.filter-panel-header {\n  padding: 20px;\n  border-bottom: 1px solid var(--mj-bg-surface-sunken);\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  flex-shrink: 0;\n  background: var(--mj-bg-surface-card);\n}\n\n.filter-panel-header h3 {\n  margin: 0;\n  font-size: 16px;\n  font-weight: 700;\n  color: var(--mj-text-primary);\n  flex: 1;\n  letter-spacing: -0.02em;\n}\n\n.filter-panel-header .filter-summary-inline {\n  display: flex;\n  align-items: baseline;\n  gap: 4px;\n  margin-right: 16px;\n  font-size: 13px;\n  padding: 6px 12px;\n  background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n  border-radius: 20px;\n  border: 1px solid color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n}\n\n.filter-panel-header .filter-summary-inline .summary-value {\n  font-weight: 700;\n  color: var(--mj-brand-primary);\n}\n\n.filter-panel-header .filter-summary-inline .summary-label {\n  color: var(--mj-brand-primary);\n  font-weight: 500;\n}\n\n.filter-panel-header .close-btn {\n  background: transparent;\n  border: none;\n  padding: 8px;\n  cursor: pointer;\n  color: var(--mj-text-disabled);\n  border-radius: 8px;\n  transition: all 0.2s ease;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.filter-panel-header .close-btn:hover {\n  background: var(--mj-bg-surface-sunken);\n  color: var(--mj-text-secondary);\n}\n\n.filter-panel-header .close-btn .fa-solid {\n  font-size: 14px;\n}\n\n/* Content Area */\n.filter-content {\n  flex: 1;\n  overflow-y: auto;\n  overflow-x: hidden;\n  padding: 20px;\n}\n\n/* Filter Groups */\n.filter-group {\n  margin-bottom: 24px;\n}\n\n.filter-group .filter-label {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  margin-bottom: 10px;\n  font-size: 12px;\n  font-weight: 700;\n  color: var(--mj-text-muted);\n  text-transform: uppercase;\n  letter-spacing: 0.75px;\n}\n\n.filter-group .filter-label .fa-solid {\n  font-size: 13px;\n  color: var(--mj-brand-primary);\n  width: 16px;\n}\n\n.filter-group .filter-input,\n.filter-group .filter-select {\n  width: 100%;\n  padding: 12px 14px;\n  border: 1px solid var(--mj-border-default);\n  border-radius: 10px;\n  font-size: 14px;\n  background: var(--mj-bg-surface);\n  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n  box-sizing: border-box;\n  color: var(--mj-text-secondary);\n}\n\n.filter-group .filter-input:focus,\n.filter-group .filter-select:focus {\n  outline: none;\n  border-color: var(--mj-brand-primary);\n  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mj-brand-primary) 15%, transparent);\n}\n\n.filter-group .filter-input::placeholder {\n  color: var(--mj-text-disabled);\n}\n\n.filter-group .filter-select {\n  cursor: pointer;\n  appearance: none;\n  background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E\");\n  background-repeat: no-repeat;\n  background-position: right 14px center;\n  padding-right: 36px;\n}\n\n/* Filter Actions */\n.filter-actions {\n  margin-top: 28px;\n  padding-top: 20px;\n  border-top: 1px solid var(--mj-bg-surface-sunken);\n}\n\n.filter-actions .reset-btn {\n  width: 100%;\n  padding: 12px 16px;\n  background: var(--mj-bg-surface-card);\n  border: 1px solid var(--mj-border-default);\n  border-radius: 10px;\n  color: var(--mj-text-muted);\n  font-size: 14px;\n  font-weight: 600;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  gap: 10px;\n  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n  box-sizing: border-box;\n}\n\n.filter-actions .reset-btn:hover {\n  background: var(--mj-bg-surface-sunken);\n  border-color: var(--mj-border-strong);\n  color: var(--mj-text-secondary);\n  transform: translateY(-1px);\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n\n.filter-actions .reset-btn.has-filters {\n  background: color-mix(in srgb, var(--mj-brand-primary) 15%, var(--mj-bg-surface));\n  border-color: color-mix(in srgb, var(--mj-brand-primary) 40%, transparent);\n  color: var(--mj-brand-primary);\n}\n\n.filter-actions .reset-btn.has-filters:hover {\n  background: color-mix(in srgb, var(--mj-brand-primary) 25%, var(--mj-bg-surface));\n  border-color: color-mix(in srgb, var(--mj-brand-primary) 50%, transparent);\n  color: var(--mj-brand-primary);\n}\n\n.filter-actions .reset-btn .fa-solid {\n  font-size: 13px;\n}\n\n/* Scrollbar Styling */\n.filter-content::-webkit-scrollbar {\n  width: 6px;\n}\n\n.filter-content::-webkit-scrollbar-track {\n  background: var(--mj-bg-surface-card);\n  border-radius: 3px;\n}\n\n.filter-content::-webkit-scrollbar-thumb {\n  background: var(--mj-border-strong);\n  border-radius: 3px;\n}\n\n.filter-content::-webkit-scrollbar-thumb:hover {\n  background: var(--mj-text-disabled);\n}\n"] }]
    }], null, { filters: [{
            type: Input
        }], activeTab: [{
            type: Input
        }], totalCount: [{
            type: Input
        }], filteredCount: [{
            type: Input
        }], filtersChange: [{
            type: Output
        }], closePanel: [{
            type: Output
        }] }); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MCPFilterPanelComponent, { className: "MCPFilterPanelComponent", filePath: "src/MCP/mcp-filter-panel.component.ts", lineNumber: 19 }); })();
//# sourceMappingURL=mcp-filter-panel.component.js.map