import * as i0 from '@angular/core'; import { OnChanges, ElementRef, AfterContentInit, OnDestroy, NgZone, OnInit } from '@angular/core'; import * as i1 from '@ngbracket/ngx-layout/core'; import { BaseDirective2, StyleUtils, StyleBuilder, MediaMarshaller, LayoutConfigOptions, StyleDefinition, ElementMatcher } from '@ngbracket/ngx-layout/core'; import * as i2 from '@angular/cdk/bidi'; import { Directionality } from '@angular/cdk/bidi'; import { Subject } from 'rxjs'; interface LayoutStyleDisplay { readonly display: string; } declare class LayoutStyleBuilder extends StyleBuilder { buildStyles(input: string, { display }: LayoutStyleDisplay): { display: string; 'box-sizing': string; 'flex-direction': string; 'flex-wrap': string | null; }; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'layout' flexbox styling directive * Defines the positioning flow direction for the child elements: row or column * Optional values: column or row (default) * @see https://css-tricks.com/almanac/properties/f/flex-direction/ * */ declare class LayoutDirective extends BaseDirective2 implements OnChanges { private _config; protected DIRECTIVE_KEY: string; protected inputs: string[]; constructor(elRef: ElementRef, styleUtils: StyleUtils, styleBuilder: LayoutStyleBuilder, marshal: MediaMarshaller, _config: LayoutConfigOptions); protected updateWithValue(input: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultLayoutDirective will be removed in version 21. * Use LayoutDirective directly instead. */ declare class DefaultLayoutDirective extends LayoutDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface LayoutGapParent { directionality: string; items: HTMLElement[]; layout: string; } declare class LayoutGapStyleBuilder extends StyleBuilder { private _styler; private _config; constructor(_styler: StyleUtils, _config: LayoutConfigOptions); buildStyles(gapValue: string, parent: LayoutGapParent): StyleDefinition; sideEffect(gapValue: string, _styles: StyleDefinition, parent: LayoutGapParent): void; private addFallbackUnit; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'layout-padding' styling directive * Defines padding of child elements in a layout container */ declare class LayoutGapDirective extends BaseDirective2 implements AfterContentInit, OnDestroy { protected zone: NgZone; protected directionality: Directionality; protected styleUtils: StyleUtils; protected layout: string; protected DIRECTIVE_KEY: string; protected inputs: string[]; protected observerSubject: Subject; /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */ protected get childrenNodes(): HTMLElement[]; constructor(elRef: ElementRef, zone: NgZone, directionality: Directionality, styleUtils: StyleUtils, styleBuilder: LayoutGapStyleBuilder, marshal: MediaMarshaller); ngAfterContentInit(): void; ngOnDestroy(): void; /** * Cache the parent container 'flex-direction' and update the 'margin' styles */ protected onLayoutChange(matcher: ElementMatcher): void; /** * */ protected updateWithValue(value: string): void; /** We need to override clearStyles because in most cases mru isn't populated */ protected clearStyles(): void; /** Determine if an element will show or hide based on current activation */ protected willDisplay(source: HTMLElement): boolean; protected buildChildObservable(): void; protected observer?: MutationObserver; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultLayoutGapDirective will be removed in version 21. * Use LayoutGapDirective directly instead. */ declare class DefaultLayoutGapDirective extends LayoutGapDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface LayoutAlignParent { layout: string; inline: boolean; } declare class LayoutAlignStyleBuilder extends StyleBuilder { buildStyles(align: string, parent: LayoutAlignParent): StyleDefinition; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'layout-align' flexbox styling directive * Defines positioning of child elements along main and cross axis in a layout container * Optional values: {main-axis} values or {main-axis cross-axis} value pairs * * @see https://css-tricks.com/almanac/properties/j/justify-content/ * @see https://css-tricks.com/almanac/properties/a/align-items/ * @see https://css-tricks.com/almanac/properties/a/align-content/ */ declare class LayoutAlignDirective extends BaseDirective2 { protected DIRECTIVE_KEY: string; protected inputs: string[]; protected layout: string; protected inline: boolean; constructor(elRef: ElementRef, styleUtils: StyleUtils, styleBuilder: LayoutAlignStyleBuilder, marshal: MediaMarshaller); /** * */ protected updateWithValue(value: string): void; /** * Cache the parent container 'flex-direction' and update the 'flex' styles */ protected onLayoutChange(matcher: ElementMatcher): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultLayoutAlignDirective will be removed in version 21. * Use LayoutAlignDirective directly instead. */ declare class DefaultLayoutAlignDirective extends LayoutAlignDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class FlexOrderStyleBuilder extends StyleBuilder { buildStyles(value: string): { order: string | number; }; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'flex-order' flexbox styling directive * Configures the positional ordering of the element in a sorted layout container * @see https://css-tricks.com/almanac/properties/o/order/ */ declare class FlexOrderDirective extends BaseDirective2 implements OnChanges { protected DIRECTIVE_KEY: string; protected inputs: string[]; constructor(elRef: ElementRef, styleUtils: StyleUtils, styleBuilder: FlexOrderStyleBuilder, marshal: MediaMarshaller); protected styleCache: Map; updateWithValue(input: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultFlexOrderDirective will be removed in version 21. * Use FlexOrderDirective directly instead. */ declare class DefaultFlexOrderDirective extends FlexOrderDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface FlexOffsetParent { layout: string; isRtl: boolean; } declare class FlexOffsetStyleBuilder extends StyleBuilder { private _config; constructor(_config: LayoutConfigOptions); buildStyles(offset: string, parent: FlexOffsetParent): StyleDefinition; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'flex-offset' flexbox styling directive * Configures the 'margin-left' of the element in a layout container */ declare class FlexOffsetDirective extends BaseDirective2 implements OnChanges { protected directionality: Directionality; protected DIRECTIVE_KEY: string; protected inputs: string[]; constructor(elRef: ElementRef, directionality: Directionality, styleBuilder: FlexOffsetStyleBuilder, marshal: MediaMarshaller, styler: StyleUtils); /** * Using the current fxFlexOffset value, update the inline CSS * NOTE: this will assign `margin-left` if the parent flex-direction == 'row', * otherwise `margin-top` is used for the offset. */ protected updateWithValue(value?: string | number): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultFlexOffsetDirective will be removed in version 21. * Use FlexOffsetDirective directly instead. */ declare class DefaultFlexOffsetDirective extends FlexOffsetDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class FlexFillStyleBuilder extends StyleBuilder { buildStyles(_input: string): { margin: number; width: string; height: string; 'min-width': string; 'min-height': string; }; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'fxFill' flexbox styling directive * Maximizes width and height of element in a layout container * * NOTE: fxFill is NOT responsive API!! */ declare class FlexFillDirective extends BaseDirective2 { constructor(elRef: ElementRef, styleUtils: StyleUtils, styleBuilder: FlexFillStyleBuilder, marshal: MediaMarshaller); protected styleCache: Map; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } declare class FlexAlignStyleBuilder extends StyleBuilder { buildStyles(input: string): StyleDefinition; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * 'flex-align' flexbox styling directive * Allows element-specific overrides for cross-axis alignments in a layout container * @see https://css-tricks.com/almanac/properties/a/align-self/ */ declare class FlexAlignDirective extends BaseDirective2 { protected DIRECTIVE_KEY: string; protected inputs: string[]; constructor(elRef: ElementRef, styleUtils: StyleUtils, styleBuilder: FlexAlignStyleBuilder, marshal: MediaMarshaller); protected styleCache: Map; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultFlexAlignDirective will be removed in version 21. * Use FlexAlignDirective directly instead. */ declare class DefaultFlexAlignDirective extends FlexAlignDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } interface FlexBuilderParent { direction: string; hasWrap: boolean; } declare class FlexStyleBuilder extends StyleBuilder { protected layoutConfig: LayoutConfigOptions; constructor(layoutConfig: LayoutConfigOptions); buildStyles(input: string, parent: FlexBuilderParent): StyleDefinition; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Directive to control the size of a flex item using flex-basis, flex-grow, and flex-shrink. * Corresponds to the css `flex` shorthand property. * * @see https://css-tricks.com/snippets/css/a-guide-to-flexbox/ */ declare class FlexDirective extends BaseDirective2 implements OnInit { protected layoutConfig: LayoutConfigOptions; protected marshal: MediaMarshaller; protected DIRECTIVE_KEY: string; protected inputs: string[]; protected direction?: string; protected wrap?: boolean; get shrink(): string; set shrink(value: string); get grow(): string; set grow(value: string); protected flexGrow: string; protected flexShrink: string; constructor(elRef: ElementRef, styleUtils: StyleUtils, layoutConfig: LayoutConfigOptions, styleBuilder: FlexStyleBuilder, marshal: MediaMarshaller); ngOnInit(): void; /** * Caches the parent container's 'flex-direction' and updates the element's style. * Used as a handler for layout change events from the parent flex container. */ protected onLayoutChange(matcher: ElementMatcher): void; /** Input to this is exclusively the basis input value */ protected updateWithValue(value: string): void; /** Trigger a style reflow, usually based on a shrink/grow input event */ protected triggerReflow(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * @deprecated The DefaultFlexDirective will be removed in version 21. * Use FlexDirective directly instead. */ declare class DefaultFlexDirective extends FlexDirective { protected inputs: string[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } /** * ***************************************************************** * Define module for the Flex API * ***************************************************************** */ declare class FlexModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { DefaultFlexAlignDirective, DefaultFlexDirective, DefaultFlexOffsetDirective, DefaultFlexOrderDirective, DefaultLayoutAlignDirective, DefaultLayoutDirective, DefaultLayoutGapDirective, FlexAlignDirective, FlexAlignStyleBuilder, FlexDirective, FlexFillDirective, FlexFillStyleBuilder, FlexModule, FlexOffsetDirective, FlexOffsetStyleBuilder, FlexOrderDirective, FlexOrderStyleBuilder, FlexStyleBuilder, LayoutAlignDirective, LayoutAlignStyleBuilder, LayoutDirective, LayoutGapDirective, LayoutGapStyleBuilder, LayoutStyleBuilder }; export type { FlexOffsetParent, LayoutAlignParent, LayoutGapParent, LayoutStyleDisplay };