import { AfterViewInit, EventEmitter, Injector, QueryList } from '@angular/core'; import { CoreBaseComponent } from '../common/base.component'; import { Layout } from '../common/layout'; import { SmeResponsiveWindowBreakpoints } from '../common/sme-responsive-window-manager.component'; import { LayoutConfig, LayoutDrivenType } from './layout-config'; import { LayoutDefinitionComponent } from './layout-definition.component'; import { LayoutItemComponent } from './layout-item.component'; import * as i0 from "@angular/core"; /** * Layout component */ export declare class LayoutComponent extends CoreBaseComponent implements AfterViewInit { /** * The source name to use for logging */ protected get logSourceName(): string; /** * The layout items content children. */ private layoutItems; /** * The layout definition content children. */ private definitions; /** * The current layout definition value based on custom layout definition and the browser window size. */ currentLayoutDefinition: LayoutDefinitionComponent; /** * The default horizontal space in between layout items. */ itemHorizontalSpace: number; /** * The default vertical space in between layout items. */ itemVerticalSpace: number; /** * If true, will always use full width of the row for rendering. */ oneColumn: boolean; /** * If true, will always try to fill the whole row for each layout item. */ tryToFillWholeRow: boolean; /** * The layout definition. */ definition: { [columnCount: number]: { lowerWidth?: number; upperWidth?: number; }; }; /** * If false, it will not assign extra paddings to the right for the last layout item. */ padLastItem: boolean; /** * If true, not extra right padding when there is only one item that uses the whole width of the row. */ noExtraRightPaddingOneItemPerRow: boolean; /** * It determines whether the layout is for settings where it contains a left and right layout item. * If true, will apply special design for settings layout. * On phone-up, the left side navigation layout item will be using a fixed width by default 300px, * the right side layout item will be using the remaining width by default. * * On phone-down or 400% zoom, nothing is different from the regular settings page, * the left right layout will be transformed to top bottom layout. */ layoutConfig: LayoutConfig; /** * Implementation of the Layout interface */ layoutChanged: EventEmitter; /** * Implementation of the Layout interface */ windowBreakpointChanged: EventEmitter; private columnCount; private columnSpanTotal; private layoutResponsiveWindowManager; private layoutDrivenType; private currentLayoutItemConfig; private readonly stylePixel; get currentLayoutDefinitionName(): string; get currentLayoutDrivenType(): LayoutDrivenType; get currentWindowBreakpoint(): SmeResponsiveWindowBreakpoints; get currentLayoutItems(): QueryList; constructor(injector: Injector, layout: Layout); ngAfterViewInit(): void; /** * The open API for refreshing the control externally. */ refresh(): void; /** * On layout changed event handler, occurs every time the layout has been changed. */ onLayoutChanged(): void; /** * The deferred layout changed handler. */ private deferredOnLayoutChanged; /** * The on window breakpoint changed handler. * Adding yield for component to get ElementRef after initialization. */ onWindowBreakpointChanged(): void; protected getInitialHostClasses(): string[]; protected updateLayout(): void; private updateLayoutConfig; private resetFlex; private setLayoutDrivenType; private getTotalColumnSpan; private updateCurrentLayoutDefinition; private layoutDefinitionWithColumnSpanCalculation; private configDrivenCalculation; /** * It deal with configurations that only has either percentage or number. * Aiming at performance optimization. * * @param layoutItems The layout item object array * @param availableLayoutWidthInPixel available width in pixel horizontally. */ private configDrivenCalculationDefault; /** * It deal with configurations that only has both percentage and number. * Aiming at performance optimization. * * @param layoutItems The layout item object array * @param availableLayoutWidthInPixel available width in pixel horizontally. */ private configDrivenCalculationHybrid; private updateCustomConfig; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }