{"version":3,"file":"drifloon.mjs","sources":["../../../projects/drifloon/src/lib/container/container.ts","../../../projects/drifloon/src/lib/container/container.html","../../../projects/drifloon/src/lib/topbar/topbar.ts","../../../projects/drifloon/src/lib/topbar/topbar.html","../../../projects/drifloon/src/lib/internal/cssstylebuilder.ts","../../../projects/drifloon/src/lib/item/item.ts","../../../projects/drifloon/src/lib/item/item.html","../../../projects/drifloon/src/lib/divider/divider.ts","../../../projects/drifloon/src/lib/divider/divider.html","../../../projects/drifloon/src/lib/box/box.ts","../../../projects/drifloon/src/lib/box/box.html","../../../projects/drifloon/src/lib/box/dialog-box.ts","../../../projects/drifloon/src/lib/box/dialogbox.html","../../../projects/drifloon/src/lib/form/form.ts","../../../projects/drifloon/src/lib/form/form.html","../../../projects/drifloon/src/lib/form/formfield.ts","../../../projects/drifloon/src/lib/form/formfield.html","../../../projects/drifloon/src/lib/pager/pager.ts","../../../projects/drifloon/src/lib/pager/pager.html","../../../projects/drifloon/src/lib/skeleton/skeleton.ts","../../../projects/drifloon/src/lib/skeleton/skeleton.html","../../../projects/drifloon/src/lib/internal/maybe.ts","../../../projects/drifloon/src/lib/task/task.ts","../../../projects/drifloon/src/lib/dialog/dialog.ts","../../../projects/drifloon/src/lib/dialog/dialog.html","../../../projects/drifloon/src/lib/dialog/formdialog.ts","../../../projects/drifloon/src/lib/dialog/formdialog.html","../../../projects/drifloon/src/external.ts","../../../projects/drifloon/src/drifloon.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'ui-container',\n\timports: [],\n\ttemplateUrl: './container.html',\n\tstyleUrl: './container.css'\n})\nexport class UiContainer {\n\n}\n","<div class=\"ui container\">\n\t<ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n\tselector: 'ui-topbar',\n\timports: [],\n\ttemplateUrl: './topbar.html',\n\tstyleUrl: './topbar.css'\n})\nexport class UiTopbar {\n\n}\n","<div class=\"ui topbar\">\n\t<ng-content />\n</div>\n","export class CssStyleBuilder {\n\tprivate css: Partial<CSSStyleDeclaration> = {};\n\n\tset<K extends keyof CSSStyleDeclaration>(\n\t\tkey: K,\n\t\tvalue: CSSStyleDeclaration[K]\n\t): this {\n\t\tthis.css[key] = value;\n\t\treturn this;\n\t}\n\n\tsetOptional<K extends keyof CSSStyleDeclaration>(\n\t\tkey: K,\n\t\tvalue: CSSStyleDeclaration[K] | null | undefined\n\t): this {\n\t\tif (value === null || value === undefined) {\n\t\t\treturn this;\n\t\t}\n\n\t\treturn this.set(key, value);\n\t}\n\n\tbuild(): Partial<CSSStyleDeclaration> {\n\t\treturn this.css;\n\t}\n}\n","import { Component, HostBinding, input } from '@angular/core';\nimport { CssStyleBuilder } from '../internal/cssstylebuilder';\n\ntype Align = \"left\" | \"right\" | \"center\";\n\n@Component({\n\tselector: 'ui-item',\n\timports: [],\n\ttemplateUrl: './item.html',\n\tstyleUrl: './item.css',\n})\nexport class UiItem {\n\tgrow = input<number | null>(null);\n\ttextAlign = input<Align | null>(null);\n\n\t@HostBinding(\"style\")\n\tget style(): Partial<CSSStyleDeclaration> {\n\t\tlet cssBuilder = new CssStyleBuilder();\n\t\tcssBuilder.setOptional(\"flexGrow\", this.grow()?.toString());\n\t\tcssBuilder.setOptional(\"textAlign\", this.textAlign());\n\n\t\treturn cssBuilder.build();\n\t}\n\n\tprotected theStyle(): Record<string, any> {\n\t\treturn {\n\t\t\t\"flex-grow\": this.grow()\n\t\t};\n\t}\n}\n","<ng-content />\n","import { booleanAttribute, Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'ui-divider',\n\timports: [],\n\ttemplateUrl: './divider.html',\n\tstyleUrl: './divider.css'\n})\nexport class UiDivider {\n\ttransparent = input(false, { transform: booleanAttribute });\n\tpad = input(false, { transform: booleanAttribute });\n\n\ttheClass(): Record<string, boolean> {\n\t\treturn {\n\t\t\ttransparent: this.transparent(),\n\t\t\tpad: this.pad()\n\t\t};\n\t}\n}\n","<hr class=\"ui divider\" [class]=\"theClass()\" />\n","import { booleanAttribute, Component, computed, input, Signal } from '@angular/core';\nimport { CssStyleBuilder } from '../internal/cssstylebuilder';\n\ntype Align = \"left\" | \"center\" | \"right\";\n\n@Component({\n\tselector: 'ui-box',\n\timports: [],\n\ttemplateUrl: './box.html',\n\tstyleUrl: './box.css'\n})\nexport class UiBox {\n\talign = input<Align | null>(null);\n\tpad = input(false, { transform: booleanAttribute});\n\n\tprotected theStyle: Signal<Partial<CSSStyleDeclaration>> = computed(() => {\n\t\tconst builder = new CssStyleBuilder();\n\t\tbuilder.setOptional(\"justifyContent\", this.align());\n\n\t\treturn builder.build();\n\t});\n\n\tprotected theKlass = computed(() => {\n\t\treturn {\n\t\t\tpad: this.pad()\n\t\t};\n\t});\n}\n","<div class=\"ui box\" [class]=\"theKlass()\" [style]=\"theStyle()\">\n\t<ng-content />\n</div>\n","import { Component, output } from \"@angular/core\";\nimport { UiBox } from \"./box\";\n\n@Component({\n\tselector: \"ui-dialog-box\",\n\timports: [UiBox],\n\tstyleUrl: \"./dialogbox.css\",\n\ttemplateUrl: \"./dialogbox.html\"\n})\nexport class UiDialogBox {\n\tcancel = output<void>();\n\tok = output<void>();\n\tsubmit = output<boolean>();\n\n\tprotected connectCancel(): void {\n\t\tthis.cancel.emit();\n\t\tthis.submit.emit(false);\n\t}\n\n\tprotected connectOk(): void {\n\t\tthis.ok.emit();\n\t\tthis.submit.emit(true);\n\t}\n}\n","<ui-box align=\"right\">\n\t<button class=\"button\" (click)=\"connectCancel()\">不好</button>\n\t<button class=\"button\" (click)=\"connectOk()\">好</button>\n</ui-box>\n","import { Component, input } from '@angular/core';\n\n@Component({\n\tselector: 'ui-form',\n\timports: [],\n\ttemplateUrl: './form.html',\n\tstyleUrl: './form.css'\n})\nexport class UiForm {\n\ttitle = input(\"请填写\");\n}\n","<div class=\"ui form\">\n\t<fieldset>\n\t\t<legend>{{ title() }}</legend>\n\t\t<div class=\"body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t</fieldset>\n</div>\n","import {\n\tComponent,\n\tElementRef,\n\tHost,\n\tinput,\n\tOptional,\n\tSkipSelf,\n    viewChild,\n\tAfterContentInit,\n} from \"@angular/core\";\nimport {\n\tAbstractControl,\n\tControlContainer,\n\tFormsModule,\n\tNG_VALUE_ACCESSOR,\n\tValidators\n} from \"@angular/forms\";\n\n@Component({\n\tselector: \"ui-form-field\",\n\timports: [FormsModule],\n\tstyleUrl: \"./form.css\",\n\ttemplateUrl: \"./formfield.html\",\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tmulti: true,\n\t\t\tuseExisting: UiFormField\n\t\t}\n\t]\n})\nexport class UiFormField implements AfterContentInit {\n\tprivate el = viewChild<ElementRef>(\"el\");\n\tprivate control: AbstractControl | undefined;\n\n\tlabel = input(\"\");\n\n\tconstructor(\n\t\t@Optional() @Host() @SkipSelf()\n\t\tprivate controlContainer: ControlContainer | null\n\t) {\n\t}\n\n\tngAfterContentInit(): void {\n\t\tif (!this.controlContainer) {\n\t\t\treturn ;\n\t\t}\n\n\t\tconst controlEl = this.el()?.nativeElement?.querySelector(\"[formControlName]\") as (HTMLBaseElement | null);\n\t\tconst name = controlEl?.getAttribute(\"formControlName\");\n\t\tif (name) {\n\t\t\tconst control = this.controlContainer?.control?.get(name);\n\t\t\tif (control) {\n\t\t\t\tthis.control = control;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected isInputNeedRequire(): boolean {\n\t\tconst b = this.control?.hasValidator(Validators.required);\n\t\treturn b === true;\n\t}\n\n\tprotected errorMsg(): string | null {\n\t\tif (!this.control) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.control.valid) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (!this.control.dirty) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.control.hasError(\"required\")) {\n\t\t\treturn `${this.label()}未填写！`;\n\t\t}\n\n\t\treturn `${this.label()}格式不正确！`;\n\t}\n}\n","<div class=\"ui field\" [class.require]=\"isInputNeedRequire()\">\n\t<label>{{ label() }}</label>\n\t<div #el class=\"control\">\n\t\t<ng-content />\n\n\t\t@if (errorMsg(); as errMsg) {\n\t\t<div class=\"error\">{{ errMsg }}</div>\n\t\t}\n\t</div>\n</div>\n","import { Component, computed, input, output } from '@angular/core';\n\nexport interface PagerInput {\n\tpage: number;\n\tsize: number;\n\tcount: number;\n}\n\ninterface PagerResult {\n\tpage: number;\n\tprevPage: number;\n\tnextPage: number;\n\ttotalPage: number;\n\tselectPages: Array<number>;\n}\n\nconst range = (start: number, end: number): Array<number> => {\n\tlet xs = [];\n\tfor (let i = start; i <= end; ++i) {\n\t\txs.push(i);\n\t}\n\n\treturn xs;\n}\n\n@Component({\n\tselector: 'ui-pager',\n\timports: [],\n\ttemplateUrl: './pager.html',\n\tstyleUrl: './pager.css'\n})\nexport class UiPager {\n\tpager = input.required<PagerInput>();\n\tpageChange = output<number>();\n\n\tprotected pagerResult = computed<PagerResult>(() => {\n\t\tconst pager = this.pager();\n\t\tconst totalPage = Math.max(pager.page, Math.ceil(pager.count / pager.size));\n\n\t\tconst prevPage = Math.max(1, pager.page - 1);\n\t\tconst nextPage = Math.min(totalPage, pager.page + 1);\n\n\t\tconst prevCuror = Math.max(1, pager.page - 4);\n\t\tconst prevRange = range(prevCuror, pager.page - 1);\n\n\t\tconst nextCuror = Math.min(totalPage, pager.page + 4);\n\t\tconst nextRange = range(pager.page, nextCuror);\n\n\t\treturn {\n\t\t\tpage: pager.page,\n\t\t\tprevPage,\n\t\t\tnextPage,\n\t\t\ttotalPage,\n\t\t\tselectPages: prevRange.concat(nextRange)\n\t\t};\n\t});\n\n\tprotected connectToPage(page: number): void {\n\t\tif (this.pager().page !== page) {\n\t\t\tthis.pageChange.emit(page);\n\t\t}\n\t}\n\n\tprotected connectSelectChange(event: Event): void {\n\t\tconst el = (event.target as HTMLSelectElement);\n\t\tconst value = parseInt(el.value);\n\t\tthis.connectToPage(value);\n\t}\n}\n","<div class=\"ui pager\">\n\t<button class=\"button\" (click)=\"connectToPage(1)\">第一页</button>\n\t<button class=\"button\" (click)=\"connectToPage(pagerResult().prevPage)\">上一页</button>\n\t<select class=\"selection\" [value]=\"pagerResult().page\" (change)=\"connectSelectChange($event)\">\n\t\t@for (page of pagerResult().selectPages; track page) {\n\t\t<option [selected]=\"pagerResult().page === page\" [value]=\"page\">第{{ page }}页</option>\n\t\t}\n\t</select>\n\t<button class=\"button\" (click)=\"connectToPage(pagerResult().nextPage)\">下一页</button>\n\t<button class=\"button\" (click)=\"connectToPage(pagerResult().totalPage)\">最后页</button>\n</div>\n","import { Component, input } from '@angular/core';\n\ntype Suit = \"page\" | \"dialog\";\n\n@Component({\n\tselector: 'ui-skeleton',\n\timports: [],\n\ttemplateUrl: './skeleton.html',\n\tstyleUrl: './skeleton.css'\n})\nexport class UiSkeleton {\n\tsuit = input<Suit>(\"page\");\n\n\ttheClass(): Record<string, boolean> {\n\t\treturn {\n\t\t\tpage: this.suit() === \"page\",\n\t\t\tdialog: this.suit() === \"dialog\"\n\t\t};\n\t}\n}\n","<div class=\"ui skeleton\" aria-busy=\"true\" [class]=\"theClass()\">\n\t@if (suit() === \"page\") {\n\t<div>正在加载……</div>\n\t}\n\n\t<progress></progress>\n</div>\n","abstract class MaybeTrait<T> {\n\tabstract isJust(): boolean;\n\tabstract map<R>(f: (value: T) => R): MaybeTrait<R>;\n\tabstract flatMap<R>(f: (value: T) => Maybe<R>): Maybe<R>;\n}\n\nclass Just<T> extends MaybeTrait<T> {\n\treadonly tag = \"Just\";\n\n\tconstructor(public value: T) {\n\t\tsuper()\n\t}\n\n\toverride isJust(): boolean {\n\t\treturn true;\n\t}\n\n\toverride map<R>(f: (value: T) => R): Just<R> {\n\t\treturn new Just(f(this.value));\n\t}\n\n\toverride flatMap<R>(f: (value: T) => Maybe<R>): Maybe<R> {\n\t\treturn f(this.value);\n\t}\n}\n\nclass Nothing<T> extends MaybeTrait<T> {\n\treadonly tag = \"Nothing\";\n\n\tstatic Nothing: Nothing<any> = new Nothing;\n\n\toverride isJust(): boolean {\n\t\treturn false;\n\t}\n\n\toverride map<R>(_: (value: T) => R): Nothing<R> {\n\t\treturn Nothing.Nothing;\n\t}\n\n\toverride flatMap<R>(_: (value: T) => Maybe<R>): Maybe<R> {\n\t\treturn Maybe.Nothing;\n\t}\n}\n\nexport class Maybe<T> extends MaybeTrait<T> {\n\tstatic Just<T>(value: T): Maybe<T> {\n\t\treturn new Maybe(new Just(value));\n\t}\n\n\tstatic Nothing: Maybe<any> = new Maybe(Nothing.Nothing);\n\n\tconstructor(private value: MaybeTrait<T>) {\n\t\tsuper();\n\t}\n\n\toverride isJust(): boolean {\n\t\treturn this.value.isJust();\n\n\t}\n\n\tisNothing(): boolean {\n\t\treturn !this.isJust();\n\t}\n\n\toverride map<R>(f: (value: T) => R): Maybe<R> {\n\t\treturn new Maybe(this.value.map(f));\n\t}\n\n\toverride flatMap<R>(f: (value: T) => Maybe<R>): Maybe<R> {\n\t\treturn this.value.flatMap(f);\n\t}\n\n\tunwrap(): T {\n\t\tif (this.value instanceof Just) {\n\t\t\treturn this.value.value;\n\t\t}\n\n\t\tthrow new Error(\"尝试从Nothing取值！\");\n\t}\n\n\tunwrapOr(def: T): T {\n\t\tif (this.value instanceof Just) {\n\t\t\treturn this.value.value;\n\t\t}\n\n\t\treturn def;\n\t}\n\n\tunwrapOrOptional(): T | null {\n\t\tif (this.value instanceof Just) {\n\t\t\treturn this.value.value;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","import {\n\tDirective,\n\tinject,\n\tinput,\n\tOnInit,\n\tTemplateRef,\n\tViewContainerRef\n} from \"@angular/core\";\nimport { Maybe } from \"../internal/maybe\";\nimport { UiSkeleton } from \"../skeleton/skeleton\";\nimport * as R from \"rxjs\";\n\n/**\n * 一些动作的中间值，类似Promise的三个状态。\n */\nexport class ActionResult<T> {\n\tstatic Ok<T>(value: T): ActionResult<T> {\n\t\treturn new ActionResult(Maybe.Just(value));\n\t}\n\n\tstatic Pend: ActionResult<any> = new ActionResult(Maybe.Nothing);\n\n\tstatic map<T, R>(\n\t\tf: (value: T, index: number) => R\n\t): R.OperatorFunction<ActionResult<T>, ActionResult<R>> {\n\t\treturn source => source.pipe(\n\t\t\tR.map((value, idx) => {\n\t\t\t\tconst v = value.innerValue.map(v => f(v, idx));\n\t\t\t\treturn new ActionResult(v);\n\t\t\t})\n\t\t);\n\t}\n\n\t/**\n\t * {@link R.switchMap | switchMap}一样的效果。\n\t * 自动`startWith(ActionResult.Pend)`。\n\t */\n\tstatic switchMap<T, O extends R.Observable<any>>(\n\t\tf: (value: T, idx: number) => O\n\t): R.OperatorFunction<T, ActionResult<R.ObservedValueOf<O>>> {\n\t\treturn source => source.pipe(\n\t\t\tR.switchMap((item, idx) => {\n\t\t\t\treturn f(item, idx).pipe(\n\t\t\t\t\tR.map(ActionResult.Ok),\n\t\t\t\t\tR.startWith(ActionResult.Pend)\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\t/**\n\t * {@link R.mergeMap | mergeMap}一样的效果。\n\t * 见{@link switchMap}\n\t */\n\tstatic mergeMap<T, O extends R.Observable<any>>(\n\t\tf: (value: T, idx: number) => O\n\t): R.OperatorFunction<T, ActionResult<R.ObservedValueOf<O>>> {\n\t\treturn source => source.pipe(\n\t\t\tR.mergeMap((item, idx) => {\n\t\t\t\treturn f(item, idx).pipe(\n\t\t\t\t\tR.map(ActionResult.Ok),\n\t\t\t\t\tR.startWith(ActionResult.Pend),\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tstatic concatMap<T, O extends R.Observable<any>>(\n\t\tf: (value: T, idx: number) => O\n\t): R.OperatorFunction<T, ActionResult<R.ObservedValueOf<O>>> {\n\t\treturn source => source.pipe(\n\t\t\tR.concatMap((item, idx) => {\n\t\t\t\treturn f(item, idx).pipe(\n\t\t\t\t\tR.map(ActionResult.Ok),\n\t\t\t\t\tR.startWith(ActionResult.Pend)\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tstatic exhaustMap<T, O extends R.Observable<any>>(\n\t\tf: (value: T, idx: number) => O\n\t): R.OperatorFunction<T, ActionResult<R.ObservedValueOf<O>>> {\n\t\treturn source => source.pipe(\n\t\t\tR.exhaustMap((item, idx) => {\n\t\t\t\treturn f(item, idx).pipe(\n\t\t\t\t\tR.map(ActionResult.Ok),\n\t\t\t\t\tR.startWith(ActionResult.Pend)\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\t}\n\n\tconstructor(private innerValue: Maybe<T>) {}\n\n\tisOk(): boolean {\n\t\treturn this.innerValue.isJust();\n\t}\n\n\tget value(): T {\n\t\treturn this.innerValue.unwrap();\n\t}\n}\n\n@Directive({\n\tselector: \"[task]\"\n})\nexport class UiTaskDirective<T> implements OnInit {\n\ttaskFrom = input.required<R.Observable<ActionResult<T>>>();\n\n\tprivate container = inject(ViewContainerRef);\n\tprivate templateRef = inject(TemplateRef);\n\n\tngOnInit(): void {\n\t\tthis.taskFrom()\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.container.clear();\n\t\t\t\tif (!value.isOk()) {\n\t\t\t\t\tthis.container.createComponent(UiSkeleton);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.container.createEmbeddedView(this.templateRef, {\n\t\t\t\t\t$implicit: value.value\n\t\t\t\t});\n\t\t\t});\n\t}\n}\n","import {\n\tComponent,\n\tElementRef,\n\tinject,\n\tviewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport * as R from \"rxjs\";\n\n@Component({\n\tselector: \"dialog-header\",\n\ttemplate: \"<ng-content />\"\n})\nexport class DialogHeader {}\n\n@Component({\n\tselector: \"dialog-footer\",\n\ttemplate: \"<ng-content />\"\n})\nexport class DialogFooter {}\n\n@Component({\n\tselector: 'ui-dialog',\n\timports: [],\n\ttemplateUrl: \"./dialog.html\",\n\tstyleUrl: './dialog.css'\n})\nexport class UiDialog {\n\tprivate dialogRef = viewChild<ElementRef<HTMLDialogElement>>(\"dialog\");\n\n\tshow(): void {\n\t\tthis.dialogRef()?.nativeElement.showModal();\n\t}\n\n\tclose(): void {\n\t\tthis.dialogRef()?.nativeElement.close();\n\t}\n}\n\n@Component({\n\tselector: \"ui-base-dialog\",\n\ttemplate: \"\"\n})\nexport abstract class UiBaseDialog<T, R> {\n\tprivate dialogRef = viewChild(UiDialog);\n\tprivate resultSubject = new R.Subject<R>();\n\tprivate result$ = this.resultSubject.asObservable();\n\tprotected fb = inject(FormBuilder);\n\n\tprotected init(_: T): void {}\n\n\tprotected setResult(value: R): void {\n\t\tthis.resultSubject.next(value);\n\t}\n\n\tprotected setFinalResult(value: R): void {\n\t\tthis.setResult(value);\n\t\tthis.close();\n\t}\n\n\tshow(input: T): R.Observable<R> {\n\t\tthis.init(input);\n\t\tthis.dialogRef()?.show();\n\t\treturn this.result$;\n\t}\n\n\tclose(): void {\n\t\tthis.dialogRef()?.close();\n\t}\n}\n","<dialog #dialog class=\"ui dialog\">\n\t<ng-content />\n</dialog>\n","import { Component, inject, input, output, signal, viewChild } from \"@angular/core\";\nimport { UiDialog } from \"./dialog\";\nimport { UiDialogBox } from \"../box/dialog-box\";\nimport { UiForm } from \"../form/form\";\nimport { UiSkeleton } from \"../skeleton/skeleton\";\nimport { FormBuilder, FormGroup } from \"@angular/forms\";\nimport * as R from \"rxjs\";\n\n@Component({\n\tselector: \"ui-form-dialog\",\n\ttemplateUrl: \"./formdialog.html\",\n\timports: [\n\t\tUiDialog,\n\t\tUiDialogBox,\n\t\tUiForm,\n\t\tUiSkeleton\n\t]\n})\nexport class UiFormDialog {\n\ttitle = input<string>(\"请填写\");\n\tsubmit = output<void>();\n\n\tprivate dialogRef = viewChild.required(UiDialog);\n\tprotected isLoad = signal(false);\n\n\tshow(): void {\n\t\tthis.dialogRef().show();\n\t}\n\n\tclose(): void {\n\t\tthis.dialogRef().close();\n\t}\n\n\tsetLoad(): void {\n\t\tthis.isLoad.set(true);\n\t}\n\n\tsetUnload(): void {\n\t\tthis.isLoad.set(false);\n\t}\n}\n\n@Component({\n\tselector: \"ui-base-form-dialog\",\n\ttemplate: \"\"\n})\nexport abstract class UiBaseFormDialog<T, R> {\n\tprivate dialogRef = viewChild(UiFormDialog);\n\tprotected fb = inject(FormBuilder);\n\tprivate result = new R.Subject<R>();\n\tprivate result$ = this.result.asObservable();\n\n\tabstract fg: FormGroup;\n\n\tprotected init(_: T): void {}\n\n\tshow(value: T): R.Observable<R> {\n\t\tthis.init(value);\n\t\tthis.dialogRef()?.show();\n\t\treturn this.result$;\n\t}\n\n\tclose(): void {\n\t\tthis.dialogRef()?.close();\n\t}\n\n\tconnectSubmit(): void {\n\t\tthis.fg.markAllAsDirty();\n\t\tif (this.fg.invalid) {\n\t\t\treturn ;\n\t\t}\n\n\t\tthis.dialogRef()?.setLoad();\n\n\t\tthis.submit()\n\t\t\t.pipe(\n\t\t\t\tR.finalize(() => this.dialogRef()?.setUnload())\n\t\t\t)\n\t\t\t.subscribe(value => {\n\t\t\t\tthis.result.next(value);\n\t\t\t\tthis.dialogRef()?.setUnload();\n\t\t\t\tthis.dialogRef()?.close();\n\t\t\t});\n\t}\n\n\tabstract submit(): R.Observable<R>;\n}\n","<ui-dialog>\n\t<ng-content select=\"dialog-header\" />\n\n\t<ui-form [title]=\"title()\">\n\t\t<ng-content />\n\t</ui-form>\n\n\t<ng-content select=\"dialog-footer\" />\n\n\t@if (isLoad()) {\n\t<ui-skeleton suit=\"dialog\" />\n\t}\n\t@else {\n\t<ui-dialog-box (cancel)=\"close()\" (ok)=\"submit.emit()\" />\n\t}\n</ui-dialog>\n","/**\n * 仿Haskell的Maybe `fmap`函数。\n * @remarks\n * 该函数将`null`、`undefined`视为Nothing，其余为Just。\n *\n * @example\n * ```\n * fmap(1, inc); // 2\n * fmap(0, inc); // 2\n * fmap(null, inc); // null\n * fmap(undefined, inc); // undefined;\n * ```\n * 上述1和0都是正常，会经过`f`(即`inc`)转换，最后得到结果；`null`、`undefined`直接返回本身，不经过`f`。\n *\n * @param value 可能为空的值。\n * @param f 转换函数，只对非空的value进行转换。\n * @returns 经`f`转换后的值。\n */\nexport const fmap = <T, R>(\n\tvalue: T | null | undefined,\n\tf: (value: T) => R,\n): R | null | undefined => {\n\tif (value === null) {\n\t\treturn null;\n\t}\n\telse if (value === undefined) {\n\t\treturn undefined;\n\t}\n\n\treturn f(value);\n};\n\n/**\n * 类似{@link fmap}，只有`null`是Nothing，其余是Just。\n */\nexport const fmapNull = <T, R>(\n\tvalue: T | null,\n\tf: (value: T) => R\n): R | null => {\n\tif (value === null) {\n\t\treturn null;\n\t}\n\n\treturn f(value);\n};\n\n/**\n * 类似{@link fmap}，只有`undefined`是Nothing，其余是Just。\n */\nexport const fmapUndefined = <T, R>(\n\tvalue: T | undefined,\n\tf: (value: T) => R\n): R | undefined => {\n\tif (value === undefined) {\n\t\treturn undefined;\n\t}\n\n\treturn f(value);\n};\n\n/**\n * `trim`一条字符串`input`，\n * 如果trim后为空字符串，则返回undefined，反之返回trim后的结果。\n *\n * @example\n * ```\n * emptyStrToUndefined(\"  \"); // undefined\n * emptyStrToUndefined(\"  abc\"); // \"abc\"\n * ```\n */\nexport const emptyStrToUndefined = (input: string): string | undefined => {\n\tconst s= input.trim();\n\tif (s.length === 0) {\n\t\treturn undefined;\n\t}\n\treturn s;\n};\n\n/**\n * 类似{@link emptyStrToUndefined}，\n * 空字符串返回`null`。\n */\nexport const emptyStrToNull = (input: string): string | null => {\n\tconst s = input.trim();\n\tif (s.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn s;\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}