import { OnInit, OnDestroy, EventEmitter, Injector, NgZone, ChangeDetectorRef, ElementRef } from '@angular/core'; import { Router, ActivatedRoute, UrlSegment } from '@angular/router'; import { FormGroup } from '@angular/forms'; import { Observable } from 'rxjs/Observable'; import { Subscription } from 'rxjs/Subscription'; import 'rxjs/add/observable/combineLatest'; import { DialogService, NavigationService } from '../../services'; import { IFormControlComponent, IFormDataTypeComponent } from '../o-form-data-component.class'; import { IComponent } from '../o-component.class'; import { OFormToolbarComponent } from './o-form-toolbar.component'; export declare const DEFAULT_INPUTS_O_FORM: string[]; export declare const DEFAULT_OUTPUTS_O_FORM: string[]; export interface OFormInitializationOptions { entity?: string; service?: string; columns?: string; visibleColumns?: string; keys?: string; sortColumns?: string; editableColumns?: string; parentKeys?: string; } export declare class OFormComponent implements OnInit, OnDestroy { protected router: Router; protected actRoute: ActivatedRoute; protected zone: NgZone; protected cd: ChangeDetectorRef; protected injector: Injector; protected elRef: ElementRef; static BACK_ACTION: string; static CLOSE_DETAIL_ACTION: string; static RELOAD_ACTION: string; static GO_EDIT_ACTION: string; static EDIT_ACTION: string; static INSERT_ACTION: string; static GO_INSERT_ACTION: string; static DELETE_ACTION: string; static PARENT_KEYS_KEY: string; static DEFAULT_INPUTS_O_FORM: string[]; static DEFAULT_OUTPUTS_O_FORM: string[]; static DEFAULT_QUERY_METHOD: string; static DEFAULT_INSERT_METHOD: string; static DEFAULT_UPDATE_METHOD: string; static DEFAULT_DELETE_METHOD: string; static DEFAULT_LAYOUT_DIRECTION: string; showHeader: boolean; headerMode: string; labelheader: string; labelHeaderAlign: string; headeractions: string; showHeaderActionsText: string; entity: string; keys: string; columns: string; service: string; stayInRecordAfterInsert: boolean; stayInRecordAfterEdit: boolean; serviceType: string; protected queryOnInit: boolean; protected parentKeys: string; protected queryMethod: string; protected insertMethod: string; protected updateMethod: string; protected deleteMethod: string; layoutFill: boolean; protected _layoutDirection: string; isDetailForm: boolean; keysArray: string[]; colsArray: string[]; dataService: any; _pKeysEquiv: {}; formGroup: FormGroup; onFormDataLoaded: EventEmitter; beforeCloseDetail: EventEmitter; beforeGoEditMode: EventEmitter; onFormModeChange: EventEmitter; loading: boolean; formData: Object; navigationData: Array; currentIndex: number; mode: number; protected dialogService: DialogService; protected navigationService: NavigationService; protected _formToolbar: OFormToolbarComponent; protected _components: Object; protected _compSQLTypes: Object; protected qParamSub: any; protected queryParams: any; protected urlParamSub: any; urlParams: Object; protected urlSub: any; protected urlSegments: any; protected formDataCache: Object; protected formParentKeysValues: Object; protected hasScrolled: boolean; onFormInitStream: EventEmitter; onUrlParamChangedStream: EventEmitter; protected reloadStream: Observable; protected dynamicFormSuscription: Subscription; static Mode(): any; track(event: any): void; constructor(router: Router, actRoute: ActivatedRoute, zone: NgZone, cd: ChangeDetectorRef, injector: Injector, elRef: ElementRef); registerFormComponent(comp: any): void; registerSQLTypeFormComponent(comp: IFormDataTypeComponent): void; registerFormControlComponent(comp: IFormControlComponent): void; unregisterFormComponent(comp: IComponent): void; unregisterFormControlComponent(comp: IFormControlComponent): void; unregisterSQLTypeFormComponent(comp: IFormDataTypeComponent): void; registerToolbar(fToolbar: OFormToolbarComponent): void; getComponents(): Object; load(): any; getDataValue(attr: string): any; getDataValues(): Object; clearData(): void; executeToolbarAction(action: string): Observable; ngOnInit(): void; initialize(): void; reinitialize(options: OFormInitializationOptions): void; configureService(): void; ngOnDestroy(): void; destroy(): void; ngAfterViewInit(): void; protected determinateFormMode(): void; protected determinateModeFromUrlSegment(segment: UrlSegment): void; _setComponentsEditable(state: boolean): void; setFormMode(mode: number): void; _setData(data: any): void; protected _updateFormData(newFormData: Object): void; _emitData(data: any): void; _backAction(): void; _closeDetailAction(): void; _stayInRecordAfterInsert(insertedKeys: Object): void; _reloadAction(useFilter?: boolean): void; _goInsertMode(): void; _insertAction(): void; _goEditMode(): void; _editAction(): void; _deleteAction(): Observable; queryData(filter: any): void; getAttributesToQuery(): Array; insertData(values: any, sqlTypes?: Object): Observable; getAttributesValuesToInsert(): Object; getAttributesSQLTypes(): Object; protected postCorrectInsert(result: any): void; protected postIncorrectInsert(result: any): void; updateData(filter: any, values: any, sqlTypes?: Object): Observable; getAttributesValuesToUpdate(): Object; protected postCorrectUpdate(result: any): void; protected postIncorrectUpdate(result: any): void; deleteData(filter: any): Observable; protected postCorrectDelete(result: any): void; protected postIncorrectDelete(result: any): void; toJSONData(data: any): {}; toFormValueData(data: any): Object; protected objectToFormValueData(data: Object): Object; protected getCurrentKeysValues(): {}; protected getKeysValues(): {}; protected getNestedLevelsNumber(): number; protected getFullUrlSegments(): any[]; isInQueryMode(): boolean; isInInsertMode(): boolean; isInUpdateMode(): boolean; isInInitialMode(): boolean; setQueryMode(): void; setInsertMode(): void; setUpdateMode(): void; setInitialMode(): void; registerDynamicFormComponent(dynamicForm: any): void; unregisterDynamicFormComponent(dynamicForm: any): void; getRequiredComponents(): Object; layoutDirection: string; } export declare class OFormModule { }