import { AfterViewChecked, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { MatChipInputEvent } from '@angular/material/chips'; import { MatDialog } from '@angular/material/dialog'; import { PpDataParserService, PpHttpConfig, PpHttpService } from '@penpencil/common'; import * as _ from 'underscore'; import { PpButton } from './components/button/button.type'; import { PpConditionValidationService } from './services/condition-validation.service'; import { FormsService } from './services/forms.service'; import { PpNotificationService } from './services/notification.service'; import { PpForm, PpFormField, PpValueItem } from './types/forms.type'; import * as i0 from "@angular/core"; export declare class PpFormComponent implements OnInit, AfterViewChecked, OnDestroy { private apiService; private formsService; private notificationService; private conditionValidationService; private dataParserService; private readonly changeDetectorRef; 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; selectApiLoading: { [key: string]: boolean; }; selectApiError: { [key: string]: string; }; selectCurrentValueOptionsLoaded: { [key: string]: boolean; }; pageOffset: number; imageSrcForMultipleSelect: string[]; configForCkEditer: { base_url: string; height: number; suffix: string; paste_data_images: boolean; paste_block_drop: boolean; external_plugins: { tiny_mce_wiris: string; }; htmlAllowedTags: string[]; htmlAllowedAttrs: string[]; valid_children: string; force_br_newlines: boolean; force_p_newlines: boolean; extended_valid_elements: string; draggable_modal: boolean; plugins: string[]; table_toolbar: string; toolbar: string; paste_preprocess: typeof import("./constants/meta-props").paste_preprocess; image_title: boolean; automatic_uploads: boolean; file_picker_types: string; file_picker_callback: typeof import("./constants/meta-props").file_picker_callback; setup(editor: any): void; }; readonly separatorKeysCodes: number[]; private formSubscription; private selectSubscription; private autoCompleteSubscription; private uploadSubscription; private submitFormSubscription; private asyncValidateSubscription; private selectAllValuesBackup; constructor(apiService: PpHttpService, formsService: FormsService, notificationService: PpNotificationService, conditionValidationService: PpConditionValidationService, dataParserService: PpDataParserService, changeDetectorRef: ChangeDetectorRef, dialog: MatDialog, config: PpHttpConfig); ngAfterViewChecked(): void; 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 getValidators; /** * * @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 validation :CanRelativeValidation * @param control :FormControl * Compare values and mark required */ private relativeRequiredValidator; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and disable it */ private relativeDisabledValidator; disabledMessage(formField: PpFormField): string | undefined; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare values and mark selection limit */ private relativeSelectionLimit; /** * * @param validation :CanRelativeValidation * @param control :FormControl * Compare multiple values with a formula for comparison */ private relativeFormulaValidation; /** * * @param formField :CanFormField * @param control :FormControl */ private asyncValidator; /** * * @param control :AbstractControl * Validate every field after any change */ private validateAllFields; loadImageAndCheckDimensions(event: any, control: PpFormField): Promise; private getDimentionErrorMessage; /** * * @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): Promise; /** * * @param control : formField Config * @param event : event Object * @param form : FormGroup * @param input : #input element * * Show error for invalid files. */ showInvalidFileFormatError({ control, event, form, input, message, }: { control: PpFormField; event: any; form: FormGroup; input: any; message: string; }): 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[]; toggleSelectAll(control: any): void; /** * * @param formField :CanFormField * Emit when form value changes */ formValueChange(formField: PpFormField, form: FormGroup): void; /** * * @param formField: CanFormField * @param form: FormGroup */ private changeRelativeValues; private relativeSetValuesInForm; private relativeSetDynamicallyInForm; private findRelativeFormField; /** * * @param formField :CanFormField * Set Related Fields Values */ private getRelatedFieldsData; /** * * @param name : string * Get Relative Form Field */ private getRelativeFormField; onSubmit(): void; /** * Submit Form */ submitForm(): void; /** * * @param formFields :CanFormField[] * @param values :object * * Remove 'selectAll' from multicheckbox. */ private removeAllFromMultiCheckBox; /** * Removes select search fields from data before submitting */ private removeSelectSearchTextFields; /** * Set Form Dirty */ private setFormDirty; /** * * @param hideFields :CanHideFormFields * @param value * * Hide or show fields onn basis on response */ private hideFormFields; removeConfigurationDefaultValueFromChildFields(parentField: PpFormField): void; private addDataInArrayChildField; private getNestedFormGroupForArrayElement; /** * * @param form :FormGroup * @param control :CanFormField * Add new formgroup to formarray */ addNewToFormArray(form: FormGroup, control: PpFormField): void; /** * 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(control: PpFormField, form: FormGroup): any; /** * 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; patchValueOnAnotherField(control: PpFormField): void; openPpFormModal(control: PpFormField): Promise; getAllRelatedValues(relatedField: any, formField: any, isNewCall: boolean): Promise; private getPreSelectedOptionsForSelect; getAllValues(control: PpFormField, resolve: Function): void; /** * * @param control * @param callback * loads options for select control */ private loadSelectData; isPermissionError(control: PpFormField): boolean; getPermissionNameToDisplay(control: PpFormField): string; copyPermissionName(control: PpFormField): void; /** * * @param control * @returns whether current selected values' options have been loaded or not */ isSelectCurrentValueOptionsLoaded(control: PpFormField): boolean; isOptionDisabled(value: string, formField: PpFormField, form: FormGroup): boolean; onSelectSearchTextChange(searchText: string, control: PpFormField): void; onScroll(control: PpFormField): void; private getConfig; ngOnDestroy(): void; openPreview(previewUrl: string): void; private getRelativeQueryParamValue; private getSelectOptionsValues; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }