import { BehaviorSubject } from 'rxjs'; import * as _angular_core from '@angular/core'; import { OnInit, EventEmitter, AfterContentInit, QueryList } from '@angular/core'; /** * Provides control and state of the sidepanel used in workspace-sidepanel. * * ### Import * * ```typescript * import { SidepanelService } from '@talenra/ngx-base/workspace-sidepanel'; * ``` */ declare class SidepanelService { /** * Provides whether the sidepanel is hidden. Note that the state * (hidden or visible) is kept even if the current layout does not involve * a sidepanel. * * Used by * - {@link WorkspaceSidepanelComponent} */ readonly isHidden$: BehaviorSubject; /** * Hide or show the sidepanel * * see {@link WorkspaceSidepanelComponent} */ setHidden(isHidden: boolean): void; /** * Provides whether the sidepanel is expanded. Note that the state * (collapsed or expanded) is kept even if the current layout does not involve * a sidepanel. * * Used by * - {@link WorkspaceSidepanelComponent} */ readonly isExpanded$: BehaviorSubject; /** * Collapses or expands the sidepanel * * see {@link WorkspaceSidepanelComponent} */ setExpanded(isExpanded: boolean): void; /** * Provides the sidepanel's state (current item). * * Used by * - {@link WorkspaceSidepanelComponent} */ readonly selectedItem$: BehaviorSubject; /** * Updates the current sidepanel item. */ setSelectedItem(key: null | string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Represents an item displayed in the sidepanel section of a workspace-layout * of type "sidepanel". * * Used by * - {@link WorkspaceSidepanelComponent} * * ### Import * * ```typescript * import { SidepanelItem } from '@talenra/ngx-base/workspace-sidepanel'; * ``` */ interface SidepanelItem { /** * Unique key used to identify the item */ key: string; /** * Label displayed to the user */ label: string; /** * Identifier of the icon displayed. A list of all icons supported is included in the README of package * `@talenra/icons`. */ icon: string; /** * A counter value attached to the label (visually represented as badge/call-out). Typically a number that represents * the number of items contained in this navigation item. */ counter?: number; /** * The maximum value of the counter. If the counter value exceeds this limit, "+" will be displayed (e.g. * "99+"). */ counterMax?: number; } /** * Wrapper for content do be displayed in a sidepanel. * * see {@link WorkspaceSidepanelComponent} * * ### Import * * ```typescript * import { WorkspaceSidepanelModule } from '@talenra/ngx-base/workspace-sidepanel'; * ``` * * ../../#/workspace-layout/workspace-sidepanel */ declare class SidepanelComponent implements OnInit { /** * Unique identifier for the sidepanel */ key: string; /** * The name of the sidepanel as displayed to the user */ label: string; /** * Identifier of the icon displayed. A list of all icons supported is * included in the README of package `@talenra/icons`. */ icon: string; /** * A counter value attached to the icon (visually represented as badge/call-out). Typically a number that represents * the number of items contained in this sidepanel. */ get counter(): number | undefined; /** Set counter value */ set counter(value: number | undefined); private _counter?; /** * The maximum value of the counter. If the counter value exceeds this limit, "+" will be displayed (e.g. * "99+"). * * ```html * * ``` */ get counterMax(): number | undefined; /** Set counterMax value */ set counterMax(value: number | undefined); private _counterMax?; /** * Determine whether a vertical scroll is applied if the sidepanel's content * exceeds the available height. */ useScroll: boolean; /** * Determine whether the panel shall indent its content horizontally (false) * or not (true). Be aware, that '{ fullwidth: true, useScroll: true }' will * render a space for the vertical scrollbar. Use '{ fullwidth: true, useScroll: false }' * will render the content edge-to-edge and gives you the opportunity to implement * a custom scroll behavior. */ fullwidth: boolean; /** * Triggered whenever counter value is updated. */ counterUpdate: EventEmitter; /** * Triggered whenever counterMax value is updated. */ counterMaxUpdate: EventEmitter; private isSelected; private sidepanelService; private destroyRef; /** @internal */ ngOnInit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; static ngAcceptInputType_counter: unknown; static ngAcceptInputType_counterMax: unknown; static ngAcceptInputType_useScroll: unknown; static ngAcceptInputType_fullwidth: unknown; } /** * Provides a template for content that involves the sidepanel feature. * * ### Import * * ```typescript * import { WorkspaceSidepanelModule } from '@talenra/ngx-base/workspace-sidepanel'; * ``` * * ../../#/workspace-layout/workspace-sidepanel */ declare class WorkspaceSidepanelComponent implements AfterContentInit { /** * If true, the content passed to the component will be wrapped by Content Layout component that controls the * vertical layout and behaviour (e.g. takes care of scrolling). * * ```html * *
My header
*
My toolbar
*
My content
*
* ``` * * @see {@link ContentLayoutComponent} */ useContentLayout: _angular_core.InputSignalWithTransform; /** * Determines whether the layout uses a header element. Has no effect if `useContentLayout` is `false`. * * ```html * * *
My header
*
* ``` * * @see {@link ContentLayoutComponent#useHeader} */ useHeader: _angular_core.InputSignalWithTransform; /** * Determines whether the layout uses a sticky bar element. Has no effect if `useContentLayout` is `false`. * * ```html * * *
My sticky bar
*
*/ useStickyBar: _angular_core.InputSignalWithTransform; /** * Determines whether the layout uses a sticky footer element. Has no effect if `useContentLayout` is `false`. * * @see {@link ContentLayoutComponent#useStickyFooter} for more information. * * @example * * *
My sticky footer
*
*/ useStickyFooter: _angular_core.InputSignalWithTransform; /** * Determines whether the content is allowed to take the full height and to cover the * header when scrolled. Has no effect if `useContentLayout` is `false`. * * @see {@link ContentLayoutComponent#overscrollHeader} for more information. * * @example * *
My header
*
My scrollable Content
*
*/ overscrollHeader: _angular_core.InputSignalWithTransform; /** * Vertical offset of sidebar and panels * * @deprecation */ headerHeightLegacy: _angular_core.InputSignalWithTransform; /** @internal */ panels: SidepanelItem[]; /** Reference to Workspace Header instance's element */ private headerElement; /** Resize Observer used to track header's height and align position of Sidepanels and Sidebar */ private headerObserver; /** Height of the header element */ private headerHeight; /** @internal */ panelsContent: QueryList; /** * Determines whether UI transitions are active. Used to block transitions during initialization to prevent * flickering. */ private useTransition; private readonly destroyRef; protected sidepanelService: SidepanelService; /** @internal */ constructor(); /** @internal */ ngAfterContentInit(): void; /** * Read properties from panels and store in property `panels` */ private initPanels; /** * This is fancy: We need to adjust the vertical offset of sidebar and panels * from _outside_. This method returns the styles needed. -> Better solutions * welcome! * * @internal */ protected panelStyleAdjust: _angular_core.Signal<{ marginTop: string; height: string; }>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { SidepanelComponent, SidepanelService, WorkspaceSidepanelComponent }; export type { SidepanelItem };