import * as ng from "@angular/core"; import { CoreComponent } from "cmf.core/src/core"; import { BasePropertyEditorOptions } from "cmf.core/src/domain/extensions/caches/entityType"; import { EditorType, PropertyEditorType, PropertyEditorCollectionType } from "../propertyEditor/propertyEditor"; import { PropertyContainer } from "../propertyContainer/propertyContainer"; import { FontSize, TextAlignment } from "cmf.core.controls/src/components/label/label"; export { EditorType, PropertyEditorType, PropertyEditorCollectionType }; export { FontSize, TextAlignment }; export interface PropertyToRender { name: string; property: PropertiesEditorProperty; } /** * Export type for PropertyChange event */ export declare type PropertyChangeArgs = [string, PropertiesEditorProperty]; /** * Properties Editor Component * * Create a form for multiple editable fields easily. * * ### Example * * ``` * * * * ``` */ export declare class PropertiesEditor extends CoreComponent implements ng.DoCheck { private _elementRef; private _keyValueDiffers; private _keyValueDiffer; private _keyInstanceDiffer; private _propertiesToRenderMap; _propertiesToRenderValueMap: Map; _propertiesToRender: PropertyToRender[]; /** * Gets or sets the instance with the properties to edit. */ instance: any; /** * Gets or sets the properties to edit. */ properties: { [key: string]: PropertiesEditorProperty; }; /** * If true, the nested property editors will have support tokens enabled. * Defaults to false. */ supportTokens: boolean; /** * Property Change event emitter. */ propertyChange: ng.EventEmitter; /** * Property Container access. */ propertyContainer: PropertyContainer; /** * Properties Editor Constructor */ constructor(_elementRef: ng.ElementRef, _keyValueDiffers: ng.KeyValueDiffers); /** * On Value Change Event Handling */ onValueChange(value: any, propertyName: string, propertyMeta: PropertiesEditorProperty): void; ngDoCheck(): void; private updatePropertiesToRenderMap; } export interface PropertiesEditorProperty extends BasePropertyEditorOptions { /** * Bypass the automatic editor type resolution by specifying the editor type to use. */ nestedEditorType?: EditorType; /** * Label fontSize property. */ fontSize?: FontSize; /** * Value fontSize property. */ valueFontSize?: FontSize; /** * Text alignment property */ alignment?: TextAlignment; /** * Align to top-left. * By default it is undefined. */ topLeftAligned?: boolean; /** * Is to auto resize */ autoResize?: boolean; } export declare class PropertiesEditorModule { }