import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core'; import { FilterPopoverCategory, FilterPopoverOption, FilterPopoverSelection } from '../../models/filter-popover.model'; import * as i0 from "@angular/core"; /** * FilterPopoverComponent renders a configurable multi-category filter popup. * Positioned via CSS absolute — parent must wrap trigger + this component * in a `position: relative` container. * * Supports single or multi-category mode: * - Single category: left nav is hidden, only checkbox list shown. * - Multi-category: left nav with category selection + right panel. * * @export * @class FilterPopoverComponent * @implements {OnChanges} */ export declare class FilterPopoverComponent implements OnChanges { /** Controls visibility */ isOpen: boolean; /** Filter categories with their options — parent defines what to show */ categories: FilterPopoverCategory[]; /** Header title text */ title: string; /** Clear all button text */ clearAllLabel: string; /** Select all link text */ selectAllLabel: string; /** Deselect all link text */ deselectAllLabel: string; /** Reset button text */ resetLabel: string; /** Apply button text */ applyLabel: string; /** No results message */ noResultsMessage: string; /** Search placeholder prefix (appended with category label) */ searchPlaceholderPrefix: string; /** Emits the current selection when user clicks Apply */ filterApplied: EventEmitter; /** Emits when user clicks Reset */ filterReset: EventEmitter; /** Emits when the popover should be closed (backdrop click or after Apply). */ closed: EventEmitter; /** Currently active category index */ activeCategoryIndex: number; /** Search term for filtering options */ searchTerm: string; /** Internal working copy of categories */ workingCategories: FilterPopoverCategory[]; /** * Refreshes working copy when opening or categories change. */ ngOnChanges(changes: SimpleChanges): void; /** Whether this is a single-category filter (hides left nav) */ get isSingleCategory(): boolean; /** Total number of selected options across all categories */ get totalSelectedCount(): number; /** Currently active category */ get activeCategory(): FilterPopoverCategory | undefined; /** Options filtered by search term for the active category */ get filteredOptions(): FilterPopoverOption[]; /** Whether all visible options are checked */ get isAllVisibleSelected(): boolean; /** Selects a category from the left nav */ onCategorySelect(index: number): void; /** Toggles a single checkbox option */ onOptionToggle(option: FilterPopoverOption): void; /** Toggles all visible options */ onSelectAll(): void; /** Applies filter and emits selection */ onApply(): void; /** Resets all selections */ onReset(): void; /** Clears all (same as reset) */ onClearAll(): void; /** Closes via backdrop click */ onBackdropClick(): void; trackByCategory(index: number): number; trackByOption(_index: number, option: FilterPopoverOption): string; private initWorkingCopy; private recalculateSelectedCount; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }