import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
import { Observable } from 'rxjs';
import { PoDynamicFormField } from './interfaces/po-dynamic-form-field.interface';
import { PoDynamicFormBaseComponent } from './po-dynamic-form-base.component';
import { PoDynamicFormLoadService } from './po-dynamic-form-load/po-dynamic-form-load.service';
import { PoDynamicFormValidationService } from './po-dynamic-form-validation/po-dynamic-form-validation.service';
/**
* @docsExtends PoDynamicFormBaseComponent
*
* @example
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
export declare class PoDynamicFormComponent extends PoDynamicFormBaseComponent implements OnInit, OnDestroy {
private readonly changes;
private readonly loadService;
private readonly validationService;
fieldsComponent: {
focus: (property: string) => void;
updatePreviousValue: () => void;
showAdditionalHelp: (property: string) => void;
};
disabledForm: boolean;
displayAdditionalHelp: boolean;
private _form;
private onLoadSubscription;
private sendFormSubscription;
private readonly comboOptionSubject;
set form(value: NgForm);
get form(): NgForm;
constructor(changes: ChangeDetectorRef, loadService: PoDynamicFormLoadService, validationService: PoDynamicFormValidationService);
ngOnDestroy(): void;
ngOnInit(): void;
/**
* Função que atribui foco ao campo desejado.
*
* Para utilizá-la é necessário capturar a instância do `dynamic form`, como por exemplo:
*
* ``` html
*
* ```
*
* ``` javascript
* import { PoDynamicFormComponent, PoDynamicFormField } from '@po-ui/ng-components';
*
* ...
*
* @ViewChild('dynamicForm', { static: true }) dynamicForm: PoDynamicFormComponent;
*
* fields: Array = [
* { property: 'fieldOne' },
* { property: 'fieldTwo' }
* ];
*
* fieldFocus() {
* this.dynamicForm.focus('fieldTwo');
* }
* ```
*
* @param {string} property Nome da propriedade atribuída ao `PoDynamicFormField.property`.
*/
focus(property: string): void;
getObjectValue(): Observable;
sendObjectValue(objectValue: any): void;
/**
* Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
* Para isso, será necessário configurar uma tecla de atalho utilizando o evento `keydown`.
*
* ```
* import { PoDynamicModule } from '@po-ui/ng-components';
* ...
* @ViewChild('dynamicForm', { static: true }) dynamicForm: PoDynamicFormComponent;
*
* fields: Array = [
* {
* property: 'name',
* ...
* help: 'Mensagem de ajuda.',
* helper: 'Mensagem de ajuda complementar com o componente po-helper implementado.',
* keydown: this.onKeyDown.bind(this, 'name')
* },
* ]
*
* onKeyDown(property: string, event: KeyboardEvent): void {
* if (event.code === 'F9') {
* this.dynamicForm.showAdditionalHelp(property);
* }
* }
* ```
*
* @param { string } property Identificador da coluna.
*/
showAdditionalHelp(property: string): void;
validateForm(field: PoDynamicFormField): void;
private applyFormUpdatesOnLoad;
private applyFormValidation;
private disableForm;
private emitForm;
private loadDataOnInitialize;
private removeListeners;
private setFocusOnFieldByProperty;
private updateModelOnLoad;
private updateModelWithValidation;
}