import { EventEmitter, OnInit } from '@angular/core'; import { PpConditionConfig, PpForm, PpFormField, PpValueItem } from './forms.type'; import * as _ from 'underscore'; import { FormGroup } from '@angular/forms'; import { PpDataParserService, PpHttpConfig, PpHttpService } from '@penpencil/common'; import { PpNotificationService } from './services/notification.service'; import { PpConditionValidationService } from './services/condition-validation.service'; import { MatDialog } from '@angular/material/dialog'; import { MatChipInputEvent } from '@angular/material/chips'; import { PpButton } from './components/button/button.type'; import * as i0 from "@angular/core"; export declare class PpFormComponent implements OnInit { private apiService; private notificationService; private conditionValidationService; private dataParserService; dialog: MatDialog; private config; formConfig: PpForm; stepperForm: boolean; backButton: PpButton; beforeSubmitFormValue: EventEmitter; formSubmitted: EventEmitter; backButtonClick: EventEmitter; nextButtonClick: EventEmitter; getData: EventEmitter; getExistingFormData: EventEmitter; _: _.UnderscoreStatic; form: FormGroup; formFields: PpFormField[]; formButton: PpButton; errorMsg: string; isLoad: boolean; dataSource: any; columnPerRow: number; header: string; disableSubmitButton: boolean; quillToolbarOptions: { toolbar: (string[] | { header: number; }[] | { list: string; }[] | { script: string; }[] | { indent: string; }[] | { direction: string; }[] | { size: (string | boolean)[]; }[] | { header: (number | boolean)[]; }[] | ({ color: never[]; background?: undefined; } | { background: never[]; color?: undefined; })[] | { font: never[]; }[] | { align: never[]; }[])[]; }; readonly separatorKeysCodes: number[]; private formSubscription; private selectSubscription; private autoCompleteSubscription; private uploadSubscription; private submitFormSubscription; private asyncValidateSubscription; constructor(apiService: PpHttpService, notificationService: PpNotificationService, conditionValidationService: PpConditionValidationService, dataParserService: PpDataParserService, dialog: MatDialog, config: PpHttpConfig); ngOnInit(): void; /** * Process Form Data */ private processFormData; /** * * @param formField : FormField * Set default value in case of edit */ private setDefaultValue; /** * * @param formFields :FormField[] * Check whether select fields has values from api */ private checkValuesForSelectFields; /** * * @param formFields :CanFormField[] */ private setDefaultForAutocomplete; /** * * @param formField : FormField * Set values in case of api in select fields */ private setValuesForSelectFields; /** * * @param formFields :CanFormField[] * Create Formgroup */ private configureForm; /** * * @param formField :CanFormField * Add validation to field */ private setValidators; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and return result */ private relativeMinValidator; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and return result */ private relativeMaxValidator; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and return result */ private relativeEqualsValidator; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and return result */ private relativeNotEqualsValidator; /** * * @param formField :CanFormField * @param control :FormControl */ private asyncValidator; /** * * @param control :AbstractControl * Validate every field after any change */ private validateAllFields; /** * * @param event :Event * @param control :CanFormField * @param spinner * @param input * @param form :FormGroup * Upload File and add res file path to form value */ upload(event: any, control: PpFormField, spinner: any, input: any, form: FormGroup): void; /** * * @param key : string * @param index : number * * Remove image or doc from form value */ removeFile(event: any, control: PpFormField, index: number, form: FormGroup): void; /** * * @param event :MatChipInputEvent * @param key :string * @param form :FormGroup * Add tag to form control */ addTags(event: MatChipInputEvent, control: PpFormField, form: FormGroup): void; /** * * @param value * @param control :CanFormField * @param input * @param form :FormGroup * Add tag to form control from autocomplete */ addTagsFromAutocomplete(value: any, control: PpFormField, input: any, form: FormGroup): void; /** * * @param key : any * @param values :CanValueItem[] * Return Value to be displayed as tag */ getDisplayValueForTags(key: any, values: PpValueItem[]): string | undefined; /** * * @param options :CanValueItem[] * @param selectedValues :Array * Filter values that are not selected */ getDisplayOptionsForTags(options: PpValueItem[], selectedValues: Array): PpValueItem[]; /** * * @param formField :CanFormField * Emit when form value changes */ formValueChange(formField: PpFormField, form: FormGroup): void; /** * * @param formField: CanFormField * @param form: FormGroup */ private changeRelativeValues; /** * * @param formField :CanFormField * Set Related Fields Values */ private getRelatedFieldsData; /** * * @param name : string * Get Relative Form Field */ private getRelativeFormField; /** * * @param name : string * Set Relative Form Field Value */ private setFormFieldValue; /** * Submit Form */ submitForm(): void; private getAllEditedValues; /** * * @param formFields :CanFormField[] * @param values :object * * Remove 'selectAll' from multicheckbox. */ private removeAllFromMultiCheckBox; /** * * @param formFields :CanFormField[] * @param values :object * * Remove values that are not required to send */ private removeNotIncludedValues; /** * * @param data :Array * @param key :string * @param value */ private getObjectFromArray; /** * Set Form Dirty */ private setFormDirty; /** * * @param formFields :CanFormField * Set value has been changed in form field */ private setFormControlDirty; /** * * @param hideFields :CanHideFormFields * @param value * * Hide or show fields onn basis on response */ private hideFormFields; /** * * @param form :FormGroup * @param control :CanFormField * Add new formgroup to formarray */ addNewToFormArray(form: FormGroup, control: PpFormField): void; /** * * @param data:object * @param key:string * * Fetching Value with API KEY */ getValueWithApiKey(data: object, key: string, separators?: Array): any; /** * Set value to autocomplete * @param valueItem :CanValueItem * @param control :CanFormField * @param form :FormGroup */ setValueToAutocomplete(valueItem: PpValueItem, control: PpFormField, form: FormGroup): void; /** * * @param control : CanFormField */ getAutocompletes(control: PpFormField, form: FormGroup, spinner: any): void; /** * * @param displayCondition :CanConditionConfig * @param form :FormGroup * Check whether to display field action or not */ displayValidate(displayCondition: PpConditionConfig, form: FormGroup): boolean | undefined; /** * Back button clicked event */ back(): void; /** * * @param value :CanValueItem * @param control :CanFormField * @param form :FormGroup * Check for multiCheckbox value */ isMultiCheckboxFieldChecked(value: PpValueItem, control: PpFormField, form: FormGroup): boolean; /** * * @param value :CanValueItem * @param control :CanFormField * @param form :FormGroup * * Event that trigger when multiCheckbox value is changed */ multiSelectCheckboxChange(value: PpValueItem, control: PpFormField, form: FormGroup): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }