import { EventEmitter, OnDestroy, OnInit } from '@angular/core'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { FilterData, LocalStorageCommunicator, MetaData, ResponseModel, VipErrorResponse } from '@ngvip/service'; import { ImportTemplate } from './import-template.model'; import { FieldConfig, ListSet } from '../../dynamic-form/field.interface'; import { DynamicFormComponent, DynamicFormConfig } from '../../dynamic-form/dynamic-form.component'; import { UntypedFormBuilder, UntypedFormGroup, ValidatorFn } from '@angular/forms'; import { VipDialogService, VipSnackbarService } from '@ngvip/ui'; import { ImportDataService } from '../import-data.service'; import { AbstractFormComponent } from '../../dynamic-form/abstract-form-component'; import { DynamicFormDataService } from '../../dynamic-form/dynamic-form-data.service'; import { MatDialogRef } from '@angular/material/dialog'; import * as i0 from "@angular/core"; export declare class ImportTemplateComponent extends AbstractFormComponent implements OnInit, OnDestroy { private formBuilder; private snackBarService; private importDataService; private dynamicFormDataService; protected localStorageCommunicator: LocalStorageCommunicator; protected dialogService: VipDialogService; templates$: BehaviorSubject; config: TemplateConfig; set dialogRef(dialogRef: MatDialogRef); get dialogRef(): MatDialogRef; backPressed: EventEmitter; dynamicForm: DynamicFormComponent; metaData: MetaData[]; columnList: ListSet[]; dynamicFormConfig: DynamicFormConfig; create: boolean; importForm: UntypedFormGroup; columnHeaders: BehaviorSubject; previousColumnHeaders: ListSet[]; selectedFormData: object; operationInProgress$: Subject; disableSaveButton: boolean; selectedTemplate: ImportTemplate; nextTemplate: ImportTemplate; oldTemplate: ImportTemplate; templateListCollapsed: boolean; deleteMap: Map; private _dialogRef; private fileColumnHeaders; constructor(formBuilder: UntypedFormBuilder, snackBarService: VipSnackbarService, importDataService: ImportDataService, dynamicFormDataService: DynamicFormDataService, localStorageCommunicator: LocalStorageCommunicator, dialogService: VipDialogService); /** * Validate that two select fields do not have the same selection */ static duplicateMappingValidator(): ValidatorFn; checkForDuplicates(): ValidatorFn; ngOnInit(): void; private initializeDialog; /** * Turn the column MetaData into ListSets to be consumed by the dynamic form. * @param metaData */ parseMetaData(metaData: MetaData[]): void; /** * On template selection clear the current template and if dirty alert the user * @param template */ templateSelected(template: ImportTemplate): void; /** * Clear the current form configs and then build the new configs off the newly selected template */ selectNextTemplate(): void; transitionHandler(): void; /** * Delete sent template * @param event MouseEvent to halt any DOM events * @param template Template to deleted */ deleteTemplate(event: MouseEvent, template: ImportTemplate): void; /** * Convert the column MetaData into fieldConfigs to be consumed by the Dynamic Form * @param metaData */ convertToFieldConfigs(metaData: MetaData[]): FieldConfig[]; /** * On File Selection loop through the file and parse out the headers and then * create the dynamic form config based on the parsed headers * @param $event */ onFileChange($event: any): void; /** * Return the FileName to be used in the Seleciton Input * @param file */ formatFileName(file: File): string; /** * Create an empty template and set it as the current template */ createTemplate(): void; /** * Clear both the Import Template Form and the Dynamic Form */ clearForm(): void; /** * Send the Form Information off to the supplied create or update functions from the template config */ submit(): void; disableSave(): boolean; disableEscToClose(): boolean; disableCtrlSToSave(): boolean; isDirty(): boolean; reset(): void; showErrorMessage(error: VipErrorResponse): void; haltEvent(event: MouseEvent): void; back(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export interface TemplateConfig { application: string; metaData: MetaData[] | Observable; list: (params?: any) => Observable>; update?: (model: ImportTemplate, oldModel: ImportTemplate) => Observable; read?: (options?: FilterData[]) => Observable>; create: (model: ImportTemplate) => Observable; delete: (model: ImportTemplate) => Observable; defaultDownloadHandler?: () => void; canDelete?: (model: ImportTemplate) => boolean; }