import * as i0 from '@angular/core'; import { Signal, AfterContentInit, OnInit } from '@angular/core'; import { ControlContainer, FormBuilder, FormGroup } from '@angular/forms'; import * as R from 'rxjs'; declare class UiContainer { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiTopbar { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } type Align$1 = "left" | "right" | "center"; declare class UiItem { grow: i0.InputSignal; textAlign: i0.InputSignal; get style(): Partial; protected theStyle(): Record; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiDivider { transparent: i0.InputSignalWithTransform; pad: i0.InputSignalWithTransform; theClass(): Record; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } type Align = "left" | "center" | "right"; declare class UiBox { align: i0.InputSignal; pad: i0.InputSignalWithTransform; protected theStyle: Signal>; protected theKlass: Signal<{ pad: boolean; }>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiDialogBox { cancel: i0.OutputEmitterRef; ok: i0.OutputEmitterRef; submit: i0.OutputEmitterRef; protected connectCancel(): void; protected connectOk(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiForm { title: i0.InputSignal; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiFormField implements AfterContentInit { private controlContainer; private el; private control; label: i0.InputSignal; constructor(controlContainer: ControlContainer | null); ngAfterContentInit(): void; protected isInputNeedRequire(): boolean; protected errorMsg(): string | null; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface PagerInput { page: number; size: number; count: number; } interface PagerResult { page: number; prevPage: number; nextPage: number; totalPage: number; selectPages: Array; } declare class UiPager { pager: i0.InputSignal; pageChange: i0.OutputEmitterRef; protected pagerResult: i0.Signal; protected connectToPage(page: number): void; protected connectSelectChange(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } type Suit = "page" | "dialog"; declare class UiSkeleton { suit: i0.InputSignal; theClass(): Record; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare abstract class MaybeTrait { abstract isJust(): boolean; abstract map(f: (value: T) => R): MaybeTrait; abstract flatMap(f: (value: T) => Maybe): Maybe; } declare class Maybe extends MaybeTrait { private value; static Just(value: T): Maybe; static Nothing: Maybe; constructor(value: MaybeTrait); isJust(): boolean; isNothing(): boolean; map(f: (value: T) => R): Maybe; flatMap(f: (value: T) => Maybe): Maybe; unwrap(): T; unwrapOr(def: T): T; unwrapOrOptional(): T | null; } /** * 一些动作的中间值,类似Promise的三个状态。 */ declare class ActionResult { private innerValue; static Ok(value: T): ActionResult; static Pend: ActionResult; static map(f: (value: T, index: number) => R): R.OperatorFunction, ActionResult>; /** * {@link R.switchMap | switchMap}一样的效果。 * 自动`startWith(ActionResult.Pend)`。 */ static switchMap>(f: (value: T, idx: number) => O): R.OperatorFunction>>; /** * {@link R.mergeMap | mergeMap}一样的效果。 * 见{@link switchMap} */ static mergeMap>(f: (value: T, idx: number) => O): R.OperatorFunction>>; static concatMap>(f: (value: T, idx: number) => O): R.OperatorFunction>>; static exhaustMap>(f: (value: T, idx: number) => O): R.OperatorFunction>>; constructor(innerValue: Maybe); isOk(): boolean; get value(): T; } declare class UiTaskDirective implements OnInit { taskFrom: i0.InputSignal>>; private container; private templateRef; ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵdir: i0.ɵɵDirectiveDeclaration, "[task]", never, { "taskFrom": { "alias": "taskFrom"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } declare class DialogHeader { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class DialogFooter { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UiDialog { private dialogRef; show(): void; close(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare abstract class UiBaseDialog { private dialogRef; private resultSubject; private result$; protected fb: FormBuilder; protected init(_: T): void; protected setResult(value: R): void; protected setFinalResult(value: R): void; show(input: T): R.Observable; close(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "ui-base-dialog", never, {}, {}, never, never, true, never>; } declare class UiFormDialog { title: i0.InputSignal; submit: i0.OutputEmitterRef; private dialogRef; protected isLoad: i0.WritableSignal; show(): void; close(): void; setLoad(): void; setUnload(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare abstract class UiBaseFormDialog { private dialogRef; protected fb: FormBuilder; private result; private result$; abstract fg: FormGroup; protected init(_: T): void; show(value: T): R.Observable; close(): void; connectSubmit(): void; abstract submit(): R.Observable; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "ui-base-form-dialog", never, {}, {}, never, never, true, never>; } /** * 仿Haskell的Maybe `fmap`函数。 * @remarks * 该函数将`null`、`undefined`视为Nothing,其余为Just。 * * @example * ``` * fmap(1, inc); // 2 * fmap(0, inc); // 2 * fmap(null, inc); // null * fmap(undefined, inc); // undefined; * ``` * 上述1和0都是正常,会经过`f`(即`inc`)转换,最后得到结果;`null`、`undefined`直接返回本身,不经过`f`。 * * @param value 可能为空的值。 * @param f 转换函数,只对非空的value进行转换。 * @returns 经`f`转换后的值。 */ declare const fmap: (value: T | null | undefined, f: (value: T) => R) => R | null | undefined; /** * 类似{@link fmap},只有`null`是Nothing,其余是Just。 */ declare const fmapNull: (value: T | null, f: (value: T) => R) => R | null; /** * 类似{@link fmap},只有`undefined`是Nothing,其余是Just。 */ declare const fmapUndefined: (value: T | undefined, f: (value: T) => R) => R | undefined; /** * `trim`一条字符串`input`, * 如果trim后为空字符串,则返回undefined,反之返回trim后的结果。 * * @example * ``` * emptyStrToUndefined(" "); // undefined * emptyStrToUndefined(" abc"); // "abc" * ``` */ declare const emptyStrToUndefined: (input: string) => string | undefined; /** * 类似{@link emptyStrToUndefined}, * 空字符串返回`null`。 */ declare const emptyStrToNull: (input: string) => string | null; export { ActionResult, DialogFooter, DialogHeader, UiBaseDialog, UiBaseFormDialog, UiBox, UiContainer, UiDialog, UiDialogBox, UiDivider, UiForm, UiFormDialog, UiFormField, UiItem, UiPager, UiSkeleton, UiTaskDirective, UiTopbar, emptyStrToNull, emptyStrToUndefined, fmap, fmapNull, fmapUndefined }; export type { PagerInput };