/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { AfterViewChecked, ElementRef, EventEmitter, OnChanges, QueryList, SimpleChange, TemplateRef, OnInit, OnDestroy } from '@angular/core';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { PanelBarExpandMode } from './panelbar-expand-mode';
import { PanelBarItemComponent } from './panelbar-item.component';
import { PanelBarItemModel } from './panelbar-item-model';
import { PanelBarService } from "./panelbar.service";
import { PanelBarItemTemplateDirective } from "./panelbar-item-template.directive";
import { PanelBarSelectEvent, PanelBarExpandEvent, PanelBarCollapseEvent, PanelBarStateChangeEvent, PanelBarItemClickEvent } from './events';
import * as i0 from "@angular/core";
/**
* Represents the Kendo UI PanelBar component for Angular.
* Displays hierarchical data as an expandable and collapsible accordion-style interface ([see overview]({% slug overview_panelbar %})).
*
* @example
* ```typescript
* @Component({
* selector: 'my-app',
* template: `
*
*
* `
* })
* class AppComponent {
* items = [
* { title: 'Item 1', expanded: true, content: 'Content 1' },
* { title: 'Item 2', content: 'Content 2' }
* ];
* }
* ```
* @remarks
* Supported children components are: {@link PanelBarItemComponent}.
*/
export declare class PanelBarComponent implements AfterViewChecked, OnChanges, OnInit, OnDestroy {
private localization;
/**
* Sets the expand mode of the PanelBar through the `PanelBarExpandMode` enum ([see example]({% slug expandmodes_panelbar %})).
*
* @default 'multiple
*/
expandMode: PanelBarExpandMode;
/**
* Allows the PanelBar to modify the selected state of the items.
*
* @default true
*/
selectable: boolean;
/**
* Sets the animate state of the PanelBar ([see example]({% slug animations_panelbar %})).
*
* @default true
*/
animate: boolean;
/**
* Sets the height of the component when the `"full"` expand mode is used.
* This option is ignored when the `"multiple"` or `"single"` expand modes are used.
*
* @default '400px'
*/
height: any;
/**
* When set to `true`, the PanelBar renders the content of all items and they are persisted in the DOM
* ([see example]({% slug templates_panelbar %}#toc-collections)).
*
* @default false
*/
get keepItemContent(): boolean;
set keepItemContent(keepItemContent: boolean);
/**
* Sets the items of the PanelBar as an array of `PanelBarItemModel` instances
* ([see example]({% slug items_panelbar %})).
*/
set items(data: Array);
get items(): Array;
/**
* Fires when the state of the PanelBar changes.
* This event is triggered when an item is selected, expanded, or collapsed.
* ([see example](slug:routing_panelbar#using-router-service)).
* The event data contains a collection of all items that are modified.
*/
stateChange: EventEmitter;
/**
* Fires when an item is about to be selected.
* This event is preventable. If you cancel it, the item will not be selected
* ([see example]({% slug events_panelbar %})).
*/
select: EventEmitter;
/**
* Fires when an item is about to be expanded.
* This event is preventable. If you cancel it, the item will remain collapsed
* ([see example]({% slug events_panelbar %})).
*/
expand: EventEmitter;
/**
* Fires when an item is about to be collapsed.
* This event is preventable. If you cancel it, the item will remain expanded
* ([see example]({% slug events_panelbar %})).
*/
collapse: EventEmitter;
/**
* Fires when an item is clicked ([see example]({% slug events_panelbar %})).
*/
itemClick: EventEmitter;
hostClasses: boolean;
tabIndex: number;
role: string;
activeDescendant: string;
get hostHeight(): string;
get overflow(): string;
get dir(): string;
template: PanelBarItemTemplateDirective;
contentItems: QueryList;
contentChildItems: QueryList;
viewChildItems: QueryList;
/**
* @hidden
*/
showLicenseWatermark: boolean;
private allItems;
private childrenItems;
private isViewInit;
private focused;
private _items;
private _keepItemContent;
private elementRef;
private eventService;
private keyBindings;
private subs;
constructor(elementRef: ElementRef, eventService: PanelBarService, localization: LocalizationService);
/**
* @hidden
*/
invertKeys(original: any, inverted: any): any;
get computedKeys(): Object;
ngOnDestroy(): void;
ngOnInit(): void;
ngAfterViewChecked(): void;
ngOnChanges(changes: {
[propertyName: string]: SimpleChange;
}): void;
get templateRef(): TemplateRef;
/**
* @hidden
*/
onComponentClick(event: any): void;
/**
* @hidden
*/
onComponentFocus(): void;
/**
* @hidden
*/
onComponentBlur(): void;
/**
* @hidden
*/
onComponentKeyDown(event: any): void;
/**
* @hidden
*/
emitEvent(event: string, item: PanelBarItemComponent): any;
private get viewItems();
private validateConfiguration;
private updateChildrenHeight;
private onItemAction;
private isVisible;
private getVisibleParent;
private focusItem;
private moveFocus;
private focusLastItem;
private focusFirstItem;
private focusNextItem;
private focusPreviousItem;
private expandItem;
private collapseItem;
private selectFocusedItem;
private visibleItems;
private flatVisibleItems;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}