import { ElementRef, Injector, OnInit, TemplateRef } from '@angular/core'; import { WrappedBoolean } from './models/wrapped-boolean'; import { DataField } from '../models/abstract-data-field'; import { PaperViewService } from '../../navigation/quick-panel/components/paper-view.service'; import { ConfigurationService } from '../../configuration/configuration.service'; import { FormControl } from "@angular/forms"; import { ComponentPortal } from "@angular/cdk/portal"; import { ComponentRegistryService } from "../../registry/component-registry.service"; import * as i0 from "@angular/core"; /** * Provides a responsive layout to data fields where their appearance can change based on the width of space they have available. * * If the width of the available space is less than the `layoutChangeWidthBreakpoint` then the provided `dataFieldTemplate` is displayed at * 100% width. If the width is greater or equal to the breakpoint the datafield template occupies the right half and the left half contains * it's title. * * If the datafield's layout is set to `TemplateAppearance.MATERIAL` the field always occupies 100% of the available space * regardless of it's width. * * See {@link DataField} and {@link TemplateAppearance} for more information. */ export declare abstract class AbstractDataFieldTemplateComponent implements OnInit { protected _paperView: PaperViewService; protected _config: ConfigurationService; protected _componentRegistry: ComponentRegistryService; protected injector: Injector; /** * Content of the datafield that should be displayed in the template */ dataFieldTemplate: TemplateRef; /** * If the available space has a width smaller that this breakpoint the datafield will fill 100% of the available space. * * The breakpoint is only taken into consideration if `TemplateAppearance.NETGRIF` is set on the data field. * * See [DataField.layout]{@link DataField#layout} for more information. */ layoutChangeWidthBreakpoint: number; /** * Field offset defined by task */ offset: number; private _additionalFieldProperties; container: ElementRef; protected _dataField: DataField; protected _isConfiguredNetgrifTemplate: boolean; protected _isNetgrifTemplate: boolean; protected _componentPortal: ComponentPortal; /** * @ignore * The value determines whether the layout should be "small" or not. Data field fills 100% of the width in "small" layout. */ protected _showLargeLayout: WrappedBoolean; protected constructor(_paperView: PaperViewService, _config: ConfigurationService, _componentRegistry: ComponentRegistryService, injector: Injector); ngOnInit(): void; get showLargeLayout(): WrappedBoolean; /** * Datafield model object that should be displayed in the template */ set dataField(dataField: DataField); get dataField(): DataField; get componentPortal(): ComponentPortal; get additionalFieldProperties(): { [k: string]: string | number; }; set additionalFieldProperties(value: { [k: string]: string | number; }); /** * Function that is called when the Component changes dimension and * determines whether the "small" or "large" layout should be displayed. * @param event - event containing the new width of this Component */ evaluateTemplateCondition(): boolean; hasComponent(): boolean; resolveComponentPortal(dataField: DataField, showLargeLayout: WrappedBoolean, formControlRef: FormControl, additionalFieldProperties?: { [k: string]: string | number; }): ComponentPortal; /** * @returns `false` if the data field uses the `TemplateAppearance.MATERIAL` and `true` otherwise. */ protected evaluateTemplate(): boolean; isPaperView(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }