import { EventEmitter, OnInit, QueryList, TemplateRef } from '@angular/core'; import { MatDialog, MatDialogRef } from '@angular/material/dialog'; import { IBaseFieldComponent } from '../../../interfaces/iBaseFieldComponent.interface'; import { BaseField, FieldTypeEnum, DataGetterTypeEnum } from '../../../models/baseField.model'; import { DynamicModuleListConfig } from '../../../models/dynamicModuleListConfig.model'; import { Form } from '../../../models/form.model'; import { Record } from '../../../models/record.model'; import { ListFormRecordComponent } from '../form-records/list-form-record/list-form-record.component'; import { EndPointConfiguration } from '../../../models/endPointConfiguration.model'; import { DynAttachment } from '../../../models/dynAttachment'; import { DynamicLoaderDirectiveData, eventOut } from '../../../directives/dynamic-loader/dynamic-loader.directive'; import { UtilityHelperService } from '../../../services/utilityHelper.services'; import { DynamicModuleCompileConfig } from '../../../models/dynamicModuleCompileConfig.model'; import { FireTrigger } from '../../../models/trigger.model'; import * as i0 from "@angular/core"; export declare class DynamicModuleFieldFixComponent implements OnInit, IBaseFieldComponent { private dialog; private utilityHelperService; configurations: DynamicModuleCompileConfig; endPointConfiguration: EndPointConfiguration; field: BaseField; form: Form; record: Record; formulaObject: any; inConfig: boolean; userID: number; QueryEditorComponent: DynamicLoaderDirectiveData; recordChange: EventEmitter; out: EventEmitter; fireTrigger: EventEmitter; configList: DynamicModuleListConfig; FieldTypeEnum: typeof FieldTypeEnum; DataGetterTypeEnum: typeof DataGetterTypeEnum; directlyOpenTable: boolean; dmloaded: boolean; loadedDBGetter: boolean; DBGetterFieldsLoaded: boolean; selectedInnerForm: Form; selectedInnerFormRecord: Record; indexInnerFormRecord: number; onlyViewInnerFormRecord: boolean; dialogInnerFormRecordRef: MatDialogRef>; dialogInnerFormRecord: TemplateRef; fieldTemplate: QueryList; listInnerFormRecords: QueryList; constructor(dialog: MatDialog, utilityHelperService: UtilityHelperService); updateField(): void; ngOnInit(): void; /** * Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record. * Serve ad aggiornare il valore di tutti i campi che hanno una formula. */ onRecordChange(): void; /** * Metodo per recuperare una InnerForm a partire dal Field che la rappresenta. * @param field Campo a partire dal quale si vuole recuperare la InnerForm. * @returns Restituisce un oggetto di tipo Form. */ getInnerFormFromField(field: BaseField): Form; /** * Metodo per aprire un dialog in cui aggiungere/modificare/visualizzare un record appartenente * a una form di dettaglio. * @param record Evento di output del componente list-form-record, contiene il record selezionato e un booleno che indica * se l'utente vuole modificare o visualizzare l'elemento selezionato. * @param innerForm Contiene la Form di dettaglio dalla quale è stato richiesto il record. */ onAddViewEditInnerFormRecord(record: { record: Record; onlyView: boolean; }, field: BaseField): void; /** * Metodo invocato al salvataggio o alla chiusura del dialog di aggiunta/modifica/visualizzazione * di un record di una form di dettaglio. * @param record Oggetto restituito dal componente add-form-field (questo qui) contenente il Record * aggiornato dall'utente. Se null allora l'utente non ha modificato nulla e ha chiuso il dialog. */ onSaveInnerFormRecord(record: Record): void; onImageDraw(event: DynAttachment): void; onImageMark(event: DynAttachment): void; onExternalComponentOut(ev: eventOut): void; onSelectedValue(value: any): void; /** * Gestisce il recupero dei dati dinamici (Dynamic Module Getter) in base alla modalità. */ manageDMGetter(): void; /** * Esegue la chiamata se la modalità è "contestualizzata alla risposta", * utilizzando l'ID della risposta originaria. */ private handleResponseContextualized; /** * Gestisce tutte le altre modalità, inclusa la contestualizzazione per ID esterno. */ private handleNonContextualized; /** * Costruisce i parametri richiesti dalla chiamata API in base al contesto. */ private buildBaseParams; /** * Imposta il valore del campo nel record corrente, usando la colonna specificata. */ private setFieldValue; /** * Esegue la chiamata API in modalità contestualizzata e assegna il risultato. */ private fetchDataWithContextualization; /** * Esegue la chiamata API in modalità NON contestualizzata e assegna il risultato. */ private fetchDataWithoutContextualization; /** * Seleziona la risposta corretta tra le disponibili, in base alla cardinalità. */ private pickAnswer; onFireTrigger(ev: FireTrigger): void; reloadDBGetter(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }