import { NavigationExtras, Router } from '@angular/router'; import { MessageBoxService } from '@sowatech/shared/dialogs'; import { GenericEditDialogService, GridColumnButtonEvent, IDialogConfiguration, DialogDynamicList, GenericEditDialogResult } from '@sowatech/shared/swt-generic'; import { MonoTypeOperatorFunction, OperatorFunction } from 'rxjs'; type ValueOrFunction = T | ((params: Parameters) => T); /** Wert, der im Fehlerfall verwendet werden kann, um Fehler zu erkennen und im Observable Stream zu ignorieren */ declare const ERROR_VALUE: Readonly<{ _error: true; }>; /** * Operator, um im Fehlerfall den Edit Dialog zu öffnen und den Fehler dort anzuzeigen. * Beispiel: * ```ts * create$.pipe( * showDialog(new CreateDialog()), * webApiCall(dto => this.webApi.create(dto), catchAndShowDialogErrors()), * ); * ``` */ declare function catchAndShowDialogErrors(dialog?: GenericEditDialogService): MonoTypeOperatorFunction; /** * Zur Anzeige eines Confirm Dialogs. Texte können als konstanter String oder als Funktion, die jedes Mal evaluiert wird, angegeben werden. * Beispiel: * ```ts * delete$.pipe( * showConfirm(({ name }) => `Möchten Sie ${name} wirklich löschen?`, 'Löschen?'), * switchMap(dto => this.webApi.delete(dto)), * ); * ``` */ declare function showConfirm(text: ValueOrFunction, title?: ValueOrFunction, messageBox?: MessageBoxService): MonoTypeOperatorFunction; /** * @deprecated Nur für debugging */ declare function consoleWarn(label?: any): MonoTypeOperatorFunction; /** * @deprecated Nur für debugging */ declare function consoleCount(label: string): MonoTypeOperatorFunction; /** * Verkürzt das Mappen aller Items einer Liste. * * Ohne mapEach: `map(list => list.map(item => new Model(item)))` * * Mit mapEach: `mapEach(item => new Model(item))` */ declare function mapEach(fn: (source: In) => Out): OperatorFunction; declare function notUndefined(): OperatorFunction; declare function notNull(): OperatorFunction; /** * Filtert ein Observable von `GridColumnButtonEvent` nach dem ident. * @param ident */ declare function filterButtonIdent(ident: string): MonoTypeOperatorFunction; type DialogModeType = any; /** * Examples: * ```ts * showDialog(new MyDialog()) // Dialog anzeigen * showDialog(dto => new MyDialog(dto.flag)) // Dialog anhand der Daten modifizieren * showDialog(new MyDialog(), dto => ({ value: dto.a, text: dto.b })) // Dialog vorausfüllen * showDialog(new MyDialog(), null, () => ({ lookups: [{ key: 'datasource', datasource: this.lookupDatasource }] })) // Datasource für Grid * ``` */ declare function showDialog(config: ValueOrFunction, Input>, dto?: ((input: Input) => Partial | null) | null, options?: ((input: Input) => { mode?: DialogModeType; lookups: DialogDynamicList[]; }) | null, dialog?: GenericEditDialogService): OperatorFunction>; /** * Wrapper für einen WebApi Call, mit dem man Fehler behandeln kann, ohne die äußere Subscription zu beenden. * Sollte mit einem Error Handler benutzt werden. * ```ts * webApiCall(() => this.webApi.getList(), handleError('Laden der Liste')) * webApiCall(dto => this.webApi.create(dto), catchAndShowDialogErrors()) * ``` */ declare function webApiCall(fn: (input: Input) => Promise, ...pipes: [MonoTypeOperatorFunction, ...MonoTypeOperatorFunction[]]): OperatorFunction; declare function navigateTo(fn: (input: T) => (string | number)[], extrasFn?: (input: T) => NavigationExtras, router?: Router): MonoTypeOperatorFunction; /** * Wenn die Bedingung **nicht** erfüllt ist, wird die angegebene Fehlermeldung im Dialog angezeigt. * Beispiel: * ```ts * pipe( * showDialog(new CreateDialog()), * dialogAssert(({ start, end } => end >= start, 'Das Ende darf nicht vor dem Start liegen'), * ) * ``` */ declare function dialogAssert(condition: (input: T) => boolean, errorMessage: string, dialog?: GenericEditDialogService): MonoTypeOperatorFunction; export { ERROR_VALUE, catchAndShowDialogErrors, consoleCount, consoleWarn, dialogAssert, filterButtonIdent, mapEach, navigateTo, notNull, notUndefined, showConfirm, showDialog, webApiCall };