/** Angular2 */ import * as ng from "@angular/core"; /** Core */ import { CoreComponent } from "cmf.core/src/core"; export interface ItemsGenerator { items(framework: any): Promise; filter?(searchNeedle: string): Promise; } export interface PanelBarModel { headerItem: PanelBarItem; bodyItems: PanelBarItem[]; } export interface PanelBarItem { id?: string; iconClass: string; text: string; disabled?: boolean; tag?: any; hasChild?: boolean; } /** * @whatItDoes * PanelBar basic component. Used to group and display items, typically menu items * * @howToUse * This component is used with the inputs and outputs mentioned below. * * ### Inputs * `PanelBarModel` : **model** - The data collection, indirectly, used to populate the comboBox component. Must have at least one textual field ; * `boolean` : **disabled** - The disabled flag of this component ; * `boolean` : **bodyVisible** - The bodyVisible flag of this component ; * `boolean` : **searchable** - Is panel content searchable . * * ### Outputs * `any` : **headerClick** - Header click event, so the component can inform the upper components that the panelBar header was clicked ; * `any` : **bodyClick** - Body click event, so the component can inform the upper components that the panelBar body was clicked ; * `any` : **itemClick** - Item click event, so the component can inform the upper components that an item was clicked . * `any` : **searchNeedleChange** - Triggered when the search needle changes . * * ### Example * To use the component, assume this HTML Template as an example: * * ```HTML * * * ``` * */ export declare class PanelBar extends CoreComponent { /** * Defines if the element is disabled to be filed */ private _disabled; /** * Defines if the body of the panel bar is visible. Default is false (closed) */ _bodyVisible: boolean; /** * if needle is set, filter the panel contents by it */ _searchNeedle: string; /** * The data collection, indirectly, used to populate the comboBox component. Must have at least one textual field. * */ model: PanelBarModel; /** * Is panel content searchable? */ searchable: boolean; searchNeedleChange: ng.EventEmitter; /** * Gets/Sets the _bodyVisible Property. */ bodyVisible: boolean; /** * Gets/Sets the disabled Property. */ disabled: boolean; /** * Header click event, so the component can inform the upper components that the panelBar header was clicked */ headerClick: ng.EventEmitter; /** * Body click event, so the component can inform the upper components that the panelBar body was clicked */ bodyClick: ng.EventEmitter; /** * Item click event, so the component can inform the upper components that an item was clicked */ itemClick: ng.EventEmitter; constructor(elementRef: ng.ElementRef); /** * Expands panel bar */ expand(): void; /** * Collapses panel bar */ collapse(): void; /** * On header click - hide/show body items, notify parent component */ onHeaderClick(e: Event): void; /** * On header click - notify parent component */ onBodyClick(e: Event): void; /** * On item click - notify parent component */ onItemClick(e: Event, item: PanelBarItem): void; /** * triggered when the search needle changes */ searchNeedleChanged(event: Event): void; } export declare class PanelBarModule { }