import { EventEmitter, KeyValueChangeRecord, KeyValueDiffer, KeyValueDiffers } from '@angular/core'; import { SelectColor, SelectItem, SelectItemGroup } from '@sowatech/shared/@types'; import { DatasourceComponent } from '@sowatech/shared/ds-datasource'; import { LoggerService } from '@sowatech/shared/logger'; import { Subscription } from 'rxjs'; import { DialogDynamicList, DialogField, DialogFieldButton, DialogFieldCategory, DialogInputSize } from './swt-generic-edit-dialog.types'; import * as i0 from "@angular/core"; export declare abstract class GenericEditDialogBaseComponent { protected logger: LoggerService; private differs; constructor(logger: LoggerService, differs: KeyValueDiffers); private sharedConfig; inputSizeDefault: DialogInputSize; categoriesAsTabs: boolean; onHidden: EventEmitter; onCancel: EventEmitter; onSubmit: EventEmitter; onBeforeSubmit: EventEmitter; onChangeDetected: EventEmitter; protected differ: KeyValueDiffer; protected subscriptions: Array; protected dtoItem: T; editItem: any; mode: any; errorText: string; dynamicLists?: DialogDynamicList[]; submitResult: 'CANCEL' | 'OK' | string; protected onInit(): void; protected doCheck(): void; protected onDestroy(): void; hide(): void; private _inputSizeClass; get inputSizeClass(): string; set inputSizeClass(value: 'input-sm' | 'input-lg' | string); private _inputSize; get inputSize(): DialogInputSize; set inputSize(newSize: DialogInputSize); private getInputSizeClassForInputSize; private readonly dirty; readonly isDirty: import("@angular/core").Signal; resetDirty(): void; setDirty(): void; abstract isShown(): boolean; protected initData(dto?: T, mode?: any, //user-defined 'mode' without any logic in dialog. can e.g. be used to store meta-info like "INSERT|EDIT|DUPLICATE" in multi-role dialogs dynamicLists?: DialogDynamicList[]): void; protected resetData(): void; cancelDialog(): void; /** * Abschluss der Bearbeitung: * Konvertiert die Form-Eingabewerte in den korrekten Typ soweit erforderlich (z.B. string nach number). * Kopiert die Form-Eingabewerte in das Datenobjekt zurück. * Löst Submit Events aus * * @param submitResult */ protected submitDialog(submitResult?: 'OK' | string): void; get isSubmitDisabled(): boolean; showErrors(errors: string[]): void; handleKeyboardEvent(event: KeyboardEvent): void; enterKeyAsTabKey: boolean; configureDialogFields(fieldsOrCategoriesOfFields: DialogField[] | DialogFieldCategory[]): void; get getAllDialogFields(): DialogField[]; protected getDialogField(fieldname: string): DialogField; categories: DialogFieldCategory[]; get visibleCategories(): DialogFieldCategory[]; protected copyToEditItem(dto: T): void; private convertToIsoDate; protected numberToStringEditItem(field: DialogField): void; protected stringToNumberEditItem(field: DialogField): any; protected getValueOfDtoItem(fieldname: string): any; protected initNewEditItem(): void; protected prepareItem(): void; private convertEditItemValuesToCorrectTypes; protected stringToNullOrBool(value: any): boolean; private writeAllEditItemFieldToDtoItemFields; private writeEditItemFieldToDtoItemField; private fieldIsEmpty; private prepareDialogFields; private getControlType; private passwordConfirmInvalid; hasLookups(fieldname: string | DialogField): boolean; getGroupableLookups(field: string | DialogField): SelectItemGroup[]; getLookups(fieldname: string | DialogField): Array; private lookupTypeCheck; private mapGroupedLookups; private isGroupedSelectItem; doOnChange(keyValueChange: KeyValueChangeRecord): void; getSelectItem(fieldname: string): SelectItem; setCatActive(activeCat: DialogFieldCategory): void; private setFirstCatActive; private getDynamicLookupItems; getDynamicDatasource(field: DialogField): DatasourceComponent; private getDynamicList; onButtonClicked(btn: DialogFieldButton, editItem: any): void; doOnDropdownGridShown(fieldname: string): void; private prepareGrid; private datasourceSubscriptions; bindGridSelectionToEditItem(): void; private unSubscribeDatasources; private hasDatePicker; private useBrowserDateInput; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, never, never, { "inputSizeDefault": { "alias": "inputSizeDefault"; "required": false; }; "categoriesAsTabs": { "alias": "categoriesAsTabs"; "required": false; }; }, { "onHidden": "onHidden"; "onCancel": "onCancel"; "onSubmit": "onSubmit"; "onBeforeSubmit": "onBeforeSubmit"; "onChangeDetected": "onChangeDetected"; }, never, never, true, never>; }