@piying/view-angular-core 2.6.3 → 2.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -367,8 +367,8 @@ class AbstractControl {
|
|
|
367
367
|
get valuePath() {
|
|
368
368
|
return this.#getPath(() => this.parent.valuePath, () => !!this.parent.skipValuePath);
|
|
369
369
|
}
|
|
370
|
-
get
|
|
371
|
-
return this.#getPath(() => this.parent.
|
|
370
|
+
get fieldPath() {
|
|
371
|
+
return this.#getPath(() => this.parent.fieldPath, () => false);
|
|
372
372
|
}
|
|
373
373
|
get value() {
|
|
374
374
|
return this.value$$();
|
|
@@ -471,11 +471,11 @@ class AbstractControl {
|
|
|
471
471
|
return null;
|
|
472
472
|
}
|
|
473
473
|
setControl(name, control) { }
|
|
474
|
-
*
|
|
474
|
+
*activatedChildren() { }
|
|
475
475
|
/** 校验和获得值用 */
|
|
476
476
|
reduceChildren(initialValue, fn, shortCircuit) {
|
|
477
477
|
let result = initialValue;
|
|
478
|
-
for (const [key, child] of this.
|
|
478
|
+
for (const [key, child] of this.activatedChildren()) {
|
|
479
479
|
if (!child) {
|
|
480
480
|
continue;
|
|
481
481
|
}
|
|
@@ -661,7 +661,7 @@ class FieldGroup extends FieldGroupbase {
|
|
|
661
661
|
return this.#controls$$();
|
|
662
662
|
}
|
|
663
663
|
children$$ = computed(() => this.#controls$$());
|
|
664
|
-
*
|
|
664
|
+
*activatedChildren() {
|
|
665
665
|
const children = this.children$$();
|
|
666
666
|
for (const key in children) {
|
|
667
667
|
yield [key, children[key]];
|
|
@@ -838,7 +838,7 @@ class FieldArray extends FieldGroupbase {
|
|
|
838
838
|
get controls() {
|
|
839
839
|
return this.children$$();
|
|
840
840
|
}
|
|
841
|
-
*
|
|
841
|
+
*activatedChildren() {
|
|
842
842
|
const children = this.children$$();
|
|
843
843
|
for (let index = 0; index < children.length; index++) {
|
|
844
844
|
yield [index, children[index]];
|
|
@@ -912,25 +912,7 @@ class FieldLogicGroup extends FieldArray {
|
|
|
912
912
|
}
|
|
913
913
|
return this.#childUpdate();
|
|
914
914
|
});
|
|
915
|
-
|
|
916
|
-
let list;
|
|
917
|
-
const fn = this.filterActivateControl$();
|
|
918
|
-
if (fn) {
|
|
919
|
-
list = this.children$$().filter(fn);
|
|
920
|
-
}
|
|
921
|
-
else if (this.type() === 'and') {
|
|
922
|
-
list = this.fixedControls$();
|
|
923
|
-
}
|
|
924
|
-
else if (this.type() === 'or') {
|
|
925
|
-
list = [this.fixedControls$()[this.activateIndex$()]];
|
|
926
|
-
}
|
|
927
|
-
else {
|
|
928
|
-
throw new Error('');
|
|
929
|
-
}
|
|
930
|
-
return list;
|
|
931
|
-
}
|
|
932
|
-
activatedChildren$$ = computed(() => this.#getActivateControls());
|
|
933
|
-
activatedChildrenIterable = computed(() => {
|
|
915
|
+
activatedChildren = computed(() => {
|
|
934
916
|
const filterFn = this.filterActivateControl$();
|
|
935
917
|
const type = this.type();
|
|
936
918
|
if (filterFn) {
|
|
@@ -952,8 +934,10 @@ class FieldLogicGroup extends FieldArray {
|
|
|
952
934
|
});
|
|
953
935
|
getValue(rawData) {
|
|
954
936
|
const controls = rawData
|
|
955
|
-
? this.activatedChildren
|
|
956
|
-
: this.activatedChildren
|
|
937
|
+
? this.activatedChildren().map(([index, control]) => control)
|
|
938
|
+
: this.activatedChildren()
|
|
939
|
+
.map(([index, control]) => control)
|
|
940
|
+
.filter((control) => control.shouldInclude$$());
|
|
957
941
|
const control = controls[0];
|
|
958
942
|
if (controls.length === 0) {
|
|
959
943
|
return this.emptyValue$$();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piying-view-angular-core.mjs","sources":["../../../projects/view-angular-core/convert/util/is-promise.ts","../../../projects/view-angular-core/util/async-validator-convert.ts","../../../projects/view-angular-core/builder-base/type/token.ts","../../../projects/view-angular-core/util/clone.ts","../../../projects/view-angular-core/util/effect-listen.ts","../../../projects/view-angular-core/util/to_observable.ts","../../../projects/view-angular-core/util/computed-with-prev.ts","../../../projects/view-angular-core/field/abstract_model.ts","../../../projects/view-angular-core/field/type.ts","../../../projects/view-angular-core/field/field-group-base.ts","../../../projects/view-angular-core/field/field-group.ts","../../../projects/view-angular-core/field/field-control.ts","../../../projects/view-angular-core/field/field-array.ts","../../../projects/view-angular-core/field/field-logic-group.ts","../../../projects/view-angular-core/field/is-field.ts","../../../projects/view-angular-core/builder-base/util/is-group.ts","../../../projects/view-angular-core/builder-base/create-field.ts","../../../projects/view-angular-core/builder-base/class/parent-map.ts","../../../projects/view-angular-core/util/array-startswith.ts","../../../projects/view-angular-core/util/to-array.ts","../../../projects/view-angular-core/util/sorted-array.ts","../../../projects/view-angular-core/util/lazy-import.ts","../../../projects/view-angular-core/util/create-view-control-link.ts","../../../projects/view-angular-core/util/control-status-to-class.ts","../../../projects/view-angular-core/util/init-listen.ts","../../../projects/view-angular-core/util/get-error.ts","../../../projects/view-angular-core/util/create-observable-signal.ts","../../../projects/view-angular-core/util/create-async-object-signal.ts","../../../projects/view-angular-core/util/create-combine-signal.ts","../../../projects/view-angular-core/builder-base/util/group-flat.ts","../../../projects/view-angular-core/builder-base/field-query.ts","../../../projects/view-angular-core/builder-base/find-config.ts","../../../projects/view-angular-core/builder-base/builder.base.ts","../../../projects/view-angular-core/builder-base/util/find-error.ts","../../../projects/view-angular-core/convert/action/layout.ts","../../../projects/view-angular-core/convert/action/raw-config.ts","../../../projects/view-angular-core/convert/action/component.ts","../../../projects/view-angular-core/convert/action/hook.ts","../../../projects/view-angular-core/convert/action/output.ts","../../../projects/view-angular-core/convert/action/alias.ts","../../../projects/view-angular-core/convert/action/config.ts","../../../projects/view-angular-core/convert/action/value-change.ts","../../../projects/view-angular-core/convert/action/hide-when.ts","../../../projects/view-angular-core/convert/action/disable-when.ts","../../../projects/view-angular-core/convert/action/non-field-control.ts","../../../projects/view-angular-core/convert/action/input-common.ts","../../../projects/view-angular-core/convert/action/wrapper.ts","../../../projects/view-angular-core/convert/action/class.ts","../../../projects/view-angular-core/convert/action/provider.ts","../../../projects/view-angular-core/convert/action/index.ts","../../../projects/view-angular-core/convert/handle/core.schema-handle.ts","../../../projects/view-angular-core/convert/form-convert.ts","../../../projects/view-angular-core/convert/schema/no-control.schema.ts","../../../projects/view-angular-core/piying-view-angular-core.ts"],"sourcesContent":["import { Subscribable } from 'rxjs';\n\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n return !!obj && typeof obj.then === 'function';\n}\nexport function isSubscribable<T>(obj: any): obj is Subscribable<T> {\n return !!obj && typeof obj.subscribe === 'function';\n}\n","import { computed, signal } from '@angular/core';\nimport { isObservable, Observable } from 'rxjs';\nimport { isPromise } from '../convert/util/is-promise';\nexport const ValidatorPending = Symbol('PENDING');\nexport type AsyncValidatorEvent =\n | {\n value: any;\n }\n | {\n error: Error;\n }\n | typeof ValidatorPending;\nfunction promiseToSignal<T>(input: Promise<T>) {\n const value$ = signal<AsyncValidatorEvent>(ValidatorPending);\n input.then((value) => {\n value$.set({ value });\n });\n return value$;\n}\nfunction observableToSignal<T>(input: Observable<T>) {\n const value$ = signal<AsyncValidatorEvent>(ValidatorPending);\n input.subscribe({\n next: (value) => {\n value$.set({ value });\n },\n error: (error) => {\n value$.set({ error });\n },\n });\n return value$;\n}\n\nexport function asyncValidatorToSignal(input: any) {\n if (isPromise(input)) {\n return promiseToSignal(input);\n } else if (isObservable(input)) {\n return observableToSignal(input);\n } else {\n return computed(() => ({ value: input() }));\n }\n}\n","import { InjectionToken, Signal } from '@angular/core';\nimport type {\n PiResolvedCommonViewFieldConfig,\n FormBuilderOptions,\n _PiResolvedCommonViewFieldConfig,\n} from './common-field-config';\nimport type { PiCommonConfig } from './default-config';\n/** 一些默认配置 */\nexport const PI_VIEW_CONFIG_TOKEN = new InjectionToken<PiCommonConfig>(\n 'PI_VIEW_CONFIG',\n);\n/**\n * @internal\n * 内部传参用\n */\nexport const PI_FORM_BUILDER_OPTIONS_TOKEN = new InjectionToken<\n FormBuilderOptions<any>\n>('PI_FORM_BUILDER_OPTIONS');\n/**\n * @internal\n * 内部传参用\n */\nexport const PI_FORM_BUILDER_ALIAS_MAP = new InjectionToken<\n Map<string, PiResolvedCommonViewFieldConfig<any, any>>\n>('PI_FORM_BUILDER_ALIAS_MAP');\n/** 上下文注入 */\nexport const PI_CONTEXT_TOKEN = new InjectionToken<any>('PI_CONTEXT');\n\nexport const PI_VIEW_FIELD_TOKEN = new InjectionToken<\n Signal<_PiResolvedCommonViewFieldConfig>\n>('PI_VIEW_FIELD_TOKEN');\n","import rfdc from 'rfdc';\nexport const clone = rfdc({ proto: false, circles: false });\n","import { CreateEffectOptions, effect, EffectRef } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\n/** 跳过第一个值,假如发射时和初始值不同 */\nexport function effectListen(\n listen: () => any,\n fn: () => void,\n options?: CreateEffectOptions,\n): EffectRef {\n let first = true;\n const oldValue = listen();\n return effect(() => {\n const currentValue = listen();\n if (first) {\n first = false;\n if (!deepEqual(oldValue, currentValue)) {\n fn();\n }\n return;\n }\n return fn();\n }, options);\n}\n","import { Injector, Signal, inject, untracked, DestroyRef } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { effectListen } from './effect-listen';\n\n/**\n * Options for `toObservable`.\n *\n * @publicApi 20.0\n */\nexport interface ToObservableOptions {\n /**\n * The `Injector` to use when creating the underlying `effect` which watches the signal.\n *\n * If this isn't specified, the current [injection context](guide/di/dependency-injection-context)\n * will be used.\n */\n injector?: Injector;\n}\n\n/**\n * Exposes the value of an Angular `Signal` as an RxJS `Observable`.\n *\n * The signal's value will be propagated into the `Observable`'s subscribers using an `effect`.\n *\n * `toObservable` must be called in an injection context unless an injector is provided via options.\n *\n * @publicApi 20.0\n */\nexport function toObservable<T>(\n listen: Signal<any>,\n source: Signal<T>,\n options?: ToObservableOptions,\n): Observable<T> {\n const injector = options?.injector ?? inject(Injector);\n const subject = new BehaviorSubject<T>(source());\n\n const watcher = effectListen(\n listen,\n () => {\n let value: T;\n try {\n value = source();\n } catch (err) {\n untracked(() => subject.error(err));\n return;\n }\n untracked(() => subject.next(value));\n },\n { injector, manualCleanup: true },\n );\n\n injector.get(DestroyRef).onDestroy(() => {\n watcher.destroy();\n subject.complete();\n });\n\n return subject.asObservable();\n}\n","import { computed, CreateComputedOptions, Signal } from '@angular/core';\n\nexport function computedWithPrev<T>(\n computation: (prev: T | undefined) => T,\n options?: CreateComputedOptions<T>,\n): Signal<T> {\n let previous: T | undefined;\n return computed(() => {\n const newValue = computation(previous);\n previous = newValue;\n return newValue;\n }, options);\n}\n","import {\n signal,\n untracked,\n computed,\n Signal,\n Injector,\n linkedSignal,\n} from '@angular/core';\n\nimport { FieldFormConfig$ } from './type';\nimport { SchemaOrPipe } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { Observable } from 'rxjs';\nimport {\n asyncValidatorToSignal,\n ValidatorPending,\n} from '../util/async-validator-convert';\nimport { PI_CONTEXT_TOKEN } from '../builder-base/type/token';\nimport { clone } from '../util/clone';\nimport { toObservable } from '../util/to_observable';\nimport { deepEqual } from 'fast-equals';\nimport { computedWithPrev } from '../util/computed-with-prev';\nexport type ValidationErrorsLegacy = {\n [key: string]: any;\n};\n\nexport type ValidationValibotError2 = {\n kind: 'valibot';\n metadata: [v.BaseIssue<unknown>, ...v.BaseIssue<unknown>[]];\n};\nexport type ValidationErrorError2 = {\n kind: 'error';\n metadata: Error;\n};\nexport type ValidationDescendantError2 = {\n kind: 'descendant';\n key: string | number;\n field: AbstractControl;\n metadata: ValidationCommonError2[];\n};\nexport type ValidationCommonError2 = {\n kind: string;\n metadata?: any;\n message?: string;\n};\nexport type ValidationErrors2 =\n | ValidationValibotError2\n | ValidationErrorError2\n | ValidationDescendantError2\n | ValidationCommonError2;\nexport interface ValidatorFn {\n (\n control: AbstractControl,\n ): ValidationErrorsLegacy | ValidationErrors2[] | undefined;\n}\nexport interface AsyncValidatorFn {\n (\n control: AbstractControl,\n ):\n | Promise<ValidationErrorsLegacy | ValidationErrors2[] | undefined>\n | Observable<ValidationErrorsLegacy | ValidationErrors2[] | undefined>\n | Signal<ValidationErrorsLegacy | ValidationErrors2[] | undefined>;\n}\n\nfunction shortCircuitTrue(value: boolean): boolean {\n return value;\n}\n\nexport const VALID = 'VALID';\n\nexport const INVALID = 'INVALID';\n\nexport const PENDING = 'PENDING';\n\nexport type VALID_STATUS = typeof VALID | typeof INVALID | typeof PENDING;\nexport type FormHooks = 'change' | 'blur' | 'submit';\nexport type AbstractControlParams = ConstructorParameters<\n typeof AbstractControl<any>\n>;\nexport const InitPendingValue = {\n touched: false,\n change: false,\n value: undefined,\n};\nexport abstract class AbstractControl<TValue = any> {\n protected skipValuePath?: boolean;\n pendingStatus = signal(InitPendingValue);\n\n protected readonly emptyValue$$ = computed(() =>\n clone(this.config$().emptyValue),\n );\n /** 父级取值时,当前子级是否包含在内 */\n shouldInclude$$ = computed(\n () =>\n this.valueNoError$$() &&\n (!this.selfDisabled$$() ||\n (this.selfDisabled$$() && this.config$().disabledValue === 'reserve')),\n );\n readonly injector;\n originValue$$!: Signal<TValue | undefined>;\n /** model的value */\n value$$ = computedWithPrev<TValue>((value) => {\n const result = this.#schemaCheck$$();\n return result.success ? result.output : value;\n });\n\n /** 通用的子级,用于查询之类 */\n children$$?: Signal<\n | {\n [s: string]: AbstractControl;\n }\n | ArrayLike<AbstractControl>\n >;\n /** disabled */\n readonly selfDisabled$$ = computed(() => this.config$?.().disabled ?? false);\n /** `self` || `parent` */\n readonly disabled$$: Signal<boolean> = computed(\n () => (this.parent?.disabled$$() || this.selfDisabled$$()) ?? false,\n );\n readonly enabled$$ = computed(() => !this.disabled$$());\n get disabled(): boolean {\n return this.disabled$$();\n }\n get enabled(): boolean {\n return !this.disabled$$();\n }\n enable() {\n this.config$.update((config) => ({ ...config, disabled: false }));\n }\n disable() {\n this.config$.update((config) => ({ ...config, disabled: true }));\n }\n /** touched */\n readonly selfTouched$ = signal(false);\n\n readonly touched$$: Signal<boolean> = computed(() =>\n this.reduceChildren(\n this.selfTouched$(),\n (child, value) => value || child.touched$$(),\n shortCircuitTrue,\n ),\n );\n get touched(): boolean {\n return untracked(this.touched$$);\n }\n get untouched(): boolean {\n return !untracked(this.touched$$);\n }\n /** dirty */\n private readonly selfDirty$ = signal(false);\n\n readonly dirty$$: Signal<boolean> = computed(() =>\n this.reduceChildren(\n this.selfDirty$(),\n (child, value) => value || child.dirty$$(),\n shortCircuitTrue,\n ),\n );\n get dirty(): boolean {\n return untracked(this.dirty$$);\n }\n get pristine(): boolean {\n return !untracked(this.dirty$$);\n }\n /** validator */\n #validators$$ = computed(() => this.config$().validators ?? []);\n #asyncValidators$$ = computed(() => this.config$().asyncValidators ?? []);\n #undefinedable$$ = computed(() => this.config$().undefinedable);\n #nullable$$ = computed(() => this.config$().nullable);\n #isOptionalEmpty = computed(() => {\n if (this.required$$()) {\n return false;\n }\n return (\n (this.#undefinedable$$() && this.originValue$$() === undefined) ||\n (this.#nullable$$() && this.originValue$$() === null)\n );\n });\n protected resetIndex$ = signal(0);\n syncError$ = linkedSignal(\n computed(\n () => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n // 请求同级\n this.resetIndex$();\n if (!this.#isOptionalEmpty()) {\n const childrenResult = this.reduceChildren<ValidationErrors2[]>(\n [],\n (child, value, key) => {\n if (\n (!child.selfDisabled$$() ||\n (child.selfDisabled$$() &&\n child.config$().disabledValue === 'reserve')) &&\n child.errors\n ) {\n value.push({\n kind: 'descendant',\n key: key,\n metadata: child.errors,\n field: child,\n });\n }\n return value;\n },\n );\n if (childrenResult.length) {\n return childrenResult;\n }\n }\n const result = this.#validators$$().flatMap((item) => {\n const result = untracked(() => item(this));\n if (!result) {\n return [];\n }\n if (Array.isArray(result)) {\n return result as ValidationErrors2[];\n }\n return Object.entries(result as ValidationErrorsLegacy).map(\n ([key, value]) =>\n ({\n kind: key,\n metadata: value,\n }) as ValidationErrors2,\n );\n });\n const schemaResult = this.#schemaCheck$$();\n if (!schemaResult.success) {\n return result.concat([\n { kind: 'valibot', metadata: schemaResult.issues },\n ]);\n }\n return result.length ? result : undefined;\n },\n { equal: () => false },\n ),\n );\n asyncErrorRes$$ = computed(() => {\n const result = this.#asyncValidators$$();\n if (result.length === 0) {\n return undefined;\n }\n this.resetIndex$();\n this.originValue$$();\n const dataList = result.map((item) =>\n untracked(() => asyncValidatorToSignal(item(this))),\n );\n return computed(() => {\n const params = dataList.map((item) => item());\n let pendingCount = 0;\n const errorResult = params.flatMap((item) => {\n if (item === ValidatorPending) {\n pendingCount++;\n return [];\n } else if ('value' in item) {\n const result = item.value;\n if (!result) {\n return [];\n }\n if (Array.isArray(result)) {\n return result as ValidationErrors2[];\n }\n return Object.entries(result as ValidationErrorsLegacy).map(\n ([key, value]) =>\n ({\n kind: key,\n metadata: value,\n }) as ValidationErrors2,\n );\n } else {\n return { kind: 'error', metadata: item.error } as ValidationErrors2;\n }\n });\n if (!errorResult.length) {\n if (pendingCount) {\n return ValidatorPending;\n }\n return undefined;\n } else {\n return errorResult;\n }\n });\n });\n asyncError$$ = computed(() => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n const ref = this.asyncErrorRes$$();\n if (ref) {\n const result = ref();\n if (result === ValidatorPending) {\n return PENDING;\n } else {\n return result;\n }\n }\n return undefined;\n });\n rawError$$ = computed(() => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n const syncError = this.syncError$();\n const asyncError = this.asyncError$$();\n if (asyncError === PENDING) {\n return PENDING;\n }\n if (syncError && asyncError) {\n return [...syncError, ...asyncError];\n } else if (syncError || asyncError) {\n return syncError || asyncError;\n } else {\n return undefined;\n }\n });\n valueNoError$$ = computed(() => this.rawError$$() === undefined);\n get errors() {\n const error = this.rawError$$();\n return error === PENDING ? undefined : error;\n }\n /** parent */\n private _parent?: AbstractControl;\n get parent(): AbstractControl | undefined {\n return this._parent;\n }\n #getPath(\n parentPath: () => (string | number)[],\n skip: () => boolean,\n ): (string | number)[] {\n if (!this.parent) {\n return [];\n }\n if (skip()) {\n return parentPath();\n }\n const parentChildren = this.parent!.children$$!();\n let index;\n if (Array.isArray(parentChildren)) {\n index = parentChildren.findIndex((item) => item === this);\n if (index === -1) {\n throw new Error('child index not found');\n }\n } else {\n for (const key in parentChildren) {\n if ((parentChildren as any)[key] === this) {\n index = key;\n break;\n }\n }\n if (!index) {\n throw new Error('child index not found');\n }\n }\n\n return [...parentPath()!, index];\n }\n get valuePath(): (string | number)[] {\n return this.#getPath(\n () => this.parent!.valuePath,\n () => !!this.parent!.skipValuePath,\n );\n }\n get formPath(): (string | number)[] {\n return this.#getPath(\n () => this.parent!.formPath,\n () => false,\n );\n }\n get value() {\n return this.value$$();\n }\n required$$ = computed(() => this.config$().required);\n readonly schemaParser;\n context;\n constructor(rawSchema: SchemaOrPipe, injector: Injector) {\n this.injector = injector;\n this.schemaParser = v.safeParser(rawSchema);\n this.context = this.injector.get(PI_CONTEXT_TOKEN);\n }\n\n #schemaCheck$$ = computed(() => this.schemaParser(this.originValue$$()));\n setParent(parent: AbstractControl | undefined): void {\n this._parent = parent;\n }\n get valid(): boolean {\n return this.status$$() === VALID;\n }\n\n get invalid(): boolean {\n return this.status$$() === INVALID;\n }\n\n get pending(): boolean {\n return this.status$$() === PENDING;\n }\n\n #selfUpdateOn$$ = computed(() => this.config$?.().updateOn);\n updateOn$$: Signal<FormHooks> = computed(\n () => (this.#selfUpdateOn$$() || this.parent?.updateOn$$()) ?? 'change',\n );\n\n markAsTouched(): void {\n this.selfTouched$.set(true);\n }\n\n markAllAsDirty(): void {\n this.markAsDirty();\n this._forEachChild((control) => control.markAllAsDirty());\n }\n\n markAllAsPristine(): void {\n this.markAsPristine();\n this._forEachChild((control) => control.markAllAsPristine());\n }\n\n markAllAsTouched(): void {\n this.markAsTouched();\n this._forEachChild((control) => control.markAllAsTouched());\n }\n markAllAsUntouched(): void {\n this.markAsUntouched();\n this._forEachChild((control) => control.markAllAsUntouched());\n }\n markAsUntouched(): void {\n this.selfTouched$.set(false);\n }\n\n markAsDirty(): void {\n this.selfDirty$.set(true);\n }\n\n markAsPristine(): void {\n this.selfDirty$.set(false);\n }\n\n reset(value?: any) {\n this.pendingStatus.set(InitPendingValue);\n }\n\n getRawValue(): any {\n return this.value;\n }\n\n get<P extends string | (string | number)[]>(path: P): AbstractControl | null {\n let currPath: Array<string | number> | string = path;\n if (currPath == null) return null;\n if (!Array.isArray(currPath)) currPath = currPath.split('.');\n if (currPath.length === 0) return null;\n return currPath.reduce(\n (control: AbstractControl | null, name) => control && control.find(name),\n this,\n );\n }\n\n get root(): AbstractControl {\n let x: AbstractControl = this;\n\n while (x._parent) {\n x = x._parent;\n }\n\n return x;\n }\n\n /** @internal */\n _forEachChild(cb: (c: AbstractControl, key: any) => void) {}\n updateValue(value: any) {}\n config$: FieldFormConfig$ = signal({}, { equal: deepEqual });\n /** @internal */\n initConfig(config: any) {\n this.config$ = config;\n }\n protected getInitValue(value: any) {\n return value ?? this.config$().defaultValue;\n }\n\n #transformer$$ = computed(() => this.config$().transfomer);\n protected transformToModel(value: any, control: AbstractControl<any>) {\n if (this.#transformer$$()) {\n value = this.#transformer$$()?.toModel?.(value, control) ?? value;\n }\n return value;\n }\n /** @internal */\n updateInitValue(value: any) {}\n find(name: string | number): AbstractControl | null {\n return null;\n }\n setControl(name: string | number, control: AbstractControl) {}\n *activatedChildrenIterable(): Iterable<[string | number, AbstractControl]> {}\n /** 校验和获得值用 */\n private reduceChildren<T>(\n initialValue: T,\n fn: (child: AbstractControl<any>, value: T, key: string | number) => T,\n shortCircuit?: (value: T) => boolean,\n ): T {\n let result = initialValue;\n for (const [key, child] of this.activatedChildrenIterable()) {\n if (!child) {\n continue;\n }\n if (shortCircuit?.(result)) {\n break;\n }\n result = fn(child, result, key);\n }\n return result;\n }\n #valueChange: Observable<any> | undefined;\n get valueChanges() {\n return (\n this.#valueChange ??\n (this.#valueChange = toObservable(\n computed(() => ({\n value: this.value$$(),\n disabled: this.disabled$$(),\n })),\n this.value$$,\n {\n injector: this.injector,\n },\n ))\n );\n }\n status$$ = computed(() => {\n if (this.disabled$$()) {\n return VALID;\n }\n let childStatus: VALID_STATUS = VALID;\n if (!this.#isOptionalEmpty()) {\n childStatus = this.reduceChildren<VALID_STATUS>(\n VALID,\n (child, value) => {\n if (value === INVALID || child.status$$() === INVALID) {\n return INVALID;\n } else if (value === PENDING || child.status$$() === PENDING) {\n return PENDING;\n }\n return VALID;\n },\n (v) => v === INVALID || v === PENDING,\n );\n }\n if (childStatus === VALID) {\n if (this.rawError$$()) {\n if (this.rawError$$() !== PENDING) {\n return INVALID;\n } else {\n return PENDING;\n }\n }\n }\n return childStatus;\n });\n #statusChange: Observable<VALID_STATUS> | undefined;\n\n get statusChanges() {\n return (\n this.#statusChange ??\n (this.#statusChange = toObservable(this.status$$, this.status$$, {\n injector: this.injector,\n }))\n );\n }\n /** 仅触发 updateOn: submit 时使用 */\n emitSubmit() {\n if (this.children$$) {\n Object.values(this.children$$()).forEach((child) => {\n if (!child) {\n return;\n }\n child.emitSubmit();\n });\n }\n const pendingStatus = this.pendingStatus();\n if (pendingStatus.touched) {\n this.markAsTouched();\n }\n\n this.pendingStatus.set(InitPendingValue);\n }\n protected isUnChanged() {\n return this.pristine && this.untouched;\n }\n}\n","import { WritableSignal } from '@angular/core';\nimport {\n AbstractControl,\n AsyncValidatorFn,\n FormHooks,\n ValidatorFn,\n} from './abstract_model';\nimport type { Observable, UnaryFunction } from 'rxjs';\nimport { BaseSchema } from 'valibot';\n\nexport type DisabledValueStrategy = 'reserve' | 'delete';\nexport interface FieldTransformerConfig {\n toView?: (value: any, control: AbstractControl) => any;\n toModel?: (value: any, control: AbstractControl) => any;\n}\nexport type LogicType = 'and' | 'or';\nexport type ArrayDeletionMode = 'shrink' | 'mark';\nexport interface FieldFormConfig<T = any> {\n disabled?: boolean;\n /** 删除时value应该如何处理 */\n disabledValue?: DisabledValueStrategy;\n transfomer?: FieldTransformerConfig;\n pipe?: { toModel?: UnaryFunction<Observable<any>, Observable<T>> };\n defaultValue?: any;\n validators?: ValidatorFn[];\n asyncValidators?: AsyncValidatorFn[];\n updateOn?: FormHooks;\n // activateIndex?: number;\n // type?: LogicType;\n /** auto */\n required?: boolean;\n undefinedable?: boolean;\n nullable?: boolean;\n /** array/group/logic group */\n emptyValue?: any;\n /** array */\n deletionMode?: ArrayDeletionMode;\n /** group/array */\n groupMode?: 'loose' | 'default' | 'strict' | 'reset';\n groupKeySchema?: BaseSchema<any, any, any>;\n groupValueSchema?: BaseSchema<any, any, any>;\n /** logic group */\n /** or在更新值时,会自动切换到第一个匹配的 */\n disableOrUpdateActivate?: boolean;\n}\n\nexport type FieldFormConfig$ = WritableSignal<FieldFormConfig>;\nexport type FieldGroupConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport type FieldArrayConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport type FieldLogicGroupConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport const enum UpdateType {\n init = 0,\n update = 1,\n reset = 2,\n}\n","import { signal } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { deepEqual } from 'fast-equals';\nimport { UpdateType } from './type';\n\nexport class FieldGroupbase extends AbstractControl {\n /** @internal */\n protected getResetValue(value: any[] = []) {}\n /** @internal */\n beforeUpdateList: ((value: any, initValue: boolean) => void)[] = [];\n resetValue$ = signal<any>(undefined);\n /** @internal */\n protected submitIndex$ = signal(0);\n\n /** @internal */\n protected _updateValue(value: any, type: UpdateType) {\n const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n if (type === UpdateType.init) {\n this.initedValue = viewValue;\n }\n if (this.config$().groupMode === 'reset') {\n const restValue = this.getResetValue(viewValue);\n this.beforeUpdateList.forEach((fn) =>\n fn(restValue, type !== UpdateType.init),\n );\n } else if (\n this.config$().groupMode === 'loose' ||\n this.config$().groupMode === 'strict'\n ) {\n // loose下为了输出值,strict下为了验证\n const resetValue = this.getResetValue(viewValue);\n this.resetValue$.set(resetValue);\n }\n this._forEachChild((control, key) => {\n if (type === UpdateType.init) {\n control.updateInitValue(viewValue?.[key]);\n } else if (type === UpdateType.update) {\n control.updateValue(viewValue?.[key]);\n } else {\n control.reset(viewValue ? (viewValue as any)[key] : undefined);\n }\n });\n }\n override updateValue(value: any): void {\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n if (this.isUnChanged()) {\n value ??= this.getInitValue(value);\n }\n this._updateValue(value, UpdateType.update);\n }\n\n protected inited = false;\n /** @internal */\n initedValue: any;\n /** @internal */\n override updateInitValue(value: any): void {\n this.inited = true;\n const initValue = this.getInitValue(value);\n this._updateValue(initValue, UpdateType.init);\n }\n override reset(value?: any): void {\n const initValue = this.getInitValue(value);\n this._updateValue(initValue, UpdateType.reset);\n }\n /** @internal */\n _reduceChildren(\n initValue: any,\n fn: (acc: any, control: AbstractControl, name: any) => any,\n ): any {\n let res = initValue;\n this._forEachChild((control: AbstractControl, name: any) => {\n res = fn(res, control, name);\n });\n return res;\n }\n\n override emitSubmit(): void {\n super.emitSubmit();\n this.submitIndex$.update((a) => ++a);\n }\n}\n","import { computed, signal, untracked } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldGroup<\n TControl extends { [K in keyof TControl]: AbstractControl<any> } = any,\n> extends FieldGroupbase {\n #childUpdate() {\n const result = this._reduceChildren(\n { ...this.resetValue$() },\n (acc, control, name) => {\n if (control.shouldInclude$$()) {\n acc[name] = control.value;\n }\n return acc;\n },\n );\n const returnResult = Object.keys(result).length\n ? result\n : this.emptyValue$$();\n\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n #controls$$ = computed(() => ({\n ...this.fixedControls$(),\n ...this.resetControls$(),\n }));\n\n fixedControls$ = signal<Record<string, AbstractControl>>({});\n resetControls$ = signal<Record<string, AbstractControl>>({});\n\n get controls() {\n return this.#controls$$();\n }\n override children$$ = computed(() => this.#controls$$());\n override *activatedChildrenIterable() {\n const children = this.children$$();\n for (const key in children) {\n yield [key, children[key]] as [string, AbstractControl];\n }\n }\n\n removeRestControl(key: string): void {\n if (!this.resetControls$()[key]) {\n return;\n }\n this.resetControls$.update((controls) => {\n controls = { ...controls };\n delete controls[key];\n return controls;\n });\n }\n\n override setControl(key: string, control: AbstractControl): void {\n const controls$ = this.inited ? this.resetControls$ : this.fixedControls$;\n controls$.update((controls) => ({ ...controls, [key]: control }));\n control.setParent(this);\n }\n\n override getRawValue() {\n return this._reduceChildren({}, (acc, control, key) => {\n acc[key] = control.getRawValue();\n return acc;\n });\n }\n clear(): void {\n if (Object.keys(this.resetControls$()).length < 1) return;\n this.beforeUpdateList.forEach((fn) => fn({}, false));\n }\n\n /** @internal */\n override _forEachChild(cb: (c: AbstractControl, key: any) => void): void {\n const controls = this.#controls$$();\n Object.keys(controls).forEach((key) => {\n cb(controls[key], key);\n });\n }\n\n override find(key: string): AbstractControl | null {\n return this.#controls$$()[key];\n }\n\n override getResetValue(inputValue: any) {\n const controls = this.fixedControls$();\n return inputValue\n ? Object.keys(inputValue).reduce(\n (obj, key) => {\n if (!(key in controls)) {\n obj[key] = inputValue[key];\n }\n return obj;\n },\n {} as Record<string, any>,\n )\n : {};\n }\n}\n","import {\n computed,\n DestroyRef,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { deepEqual } from 'fast-equals';\nimport { Subject } from 'rxjs';\n\nexport class FieldControl<TValue = any> extends AbstractControl<TValue> {\n #viewIndex = 0;\n /** 视图变化时model值不变也要更新view */\n private viewIndex$ = signal(0);\n\n /** model输入值 */\n modelValue$: WritableSignal<TValue | undefined> = signal(undefined);\n private modelValueToViewValueOrigin$$ = computed(() => {\n const viewValue = this.modelValue$();\n const toView = this.config$?.().transfomer?.toView;\n if (toView) {\n return toView(viewValue, this);\n }\n return viewValue;\n });\n /** 传入到view中的值 */\n modelValueToViewValue$$ = computed(\n () => {\n this.viewIndex$();\n return this.modelValueToViewValueOrigin$$();\n },\n { equal: () => false },\n );\n /** modelValue + viewValue => modelValue */\n\n override originValue$$ = signal<any>(undefined);\n override reset(formState: TValue = this.config$().defaultValue): void {\n this.markAsPristine();\n this.markAsUntouched();\n this.updateValue(formState);\n super.reset(formState);\n }\n\n #viewSubject$$ = computed(() => {\n const subject = new Subject<any>();\n this.injector.get(DestroyRef).onDestroy(() => {\n subject.complete();\n });\n subject.pipe(this.config$().pipe!.toModel!).subscribe((value: any) => {\n untracked(() => {\n this.#viewValueChange(value);\n });\n });\n return subject;\n });\n\n #viewValueChange(value: TValue | undefined) {\n this.markAllAsDirty();\n this.#viewIndex++;\n this.originValue$$.set(this.transformToModel(value, this));\n }\n\n /** view变更 */\n viewValueChange(value: TValue | undefined) {\n if (this.config$().pipe?.toModel) {\n this.#viewSubject$$().next(value);\n } else {\n this.#viewValueChange(value);\n }\n }\n override updateValue(value: any, force?: boolean): void {\n if (this.isUnChanged() || force) {\n value ??= this.getInitValue(value);\n this.modelValue$.set(value);\n this.originValue$$.set(value);\n this.#viewIndex++;\n this.viewIndex$.set(this.#viewIndex);\n this.resetIndex$.update((a) => a + 1);\n return;\n }\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n this.modelValue$.set(value);\n this.originValue$$.set(value);\n this.viewIndex$.set(this.#viewIndex);\n }\n\n override emitSubmit(): void {\n const pendingStatus = this.pendingStatus();\n\n if (pendingStatus.change) {\n this.viewValueChange(pendingStatus.value);\n }\n super.emitSubmit();\n }\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n this.modelValue$.set(initValue);\n this.originValue$$.set(value);\n }\n}\n","import { computed, signal, untracked } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldArray<\n TControl extends AbstractControl<any> = any,\n> extends FieldGroupbase {\n #deletionMode$$ = computed(() => this.config$().deletionMode ?? 'shrink');\n #childUpdate() {\n let list: any[] = [];\n this._reduceChildren(list, (acc, control, name) => {\n if (control && control.shouldInclude$$()) {\n list.push(control.value$$());\n } else {\n if (this.#deletionMode$$() === 'shrink') {\n return list;\n } else if (this.#deletionMode$$() === 'mark') {\n list.push(undefined);\n }\n }\n return list;\n });\n list = [...list, ...(this.resetValue$() ?? [])];\n const returnResult = list.length === 0 ? this.emptyValue$$() : list;\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n override children$$ = computed(() => [\n ...this.fixedControls$(),\n ...this.resetControls$(),\n ]);\n\n fixedControls$ = signal<AbstractControl[]>([]);\n resetControls$ = signal<AbstractControl[]>([]);\n get controls() {\n return this.children$$();\n }\n override *activatedChildrenIterable(): Iterable<\n [string | number, AbstractControl]\n > {\n const children = this.children$$();\n for (let index = 0; index < children.length; index++) {\n yield [index, children[index]] as [number, AbstractControl];\n }\n }\n removeRestControl(key: number): void {\n if (!this.resetControls$()[key]) {\n return;\n }\n this.resetControls$.update((controls) => {\n controls = controls.slice() as any;\n controls.splice(key, 1);\n return controls;\n });\n }\n\n override setControl(key: number, control: TControl): void {\n const controls$ = this.inited ? this.resetControls$ : this.fixedControls$;\n key = this.inited ? key - this.fixedControls$().length : key;\n controls$.update((list) => {\n list = list.slice() as any;\n list[key] = control;\n return list;\n });\n control.setParent(this);\n }\n\n get length(): number {\n return this.controls.length;\n }\n\n override getRawValue() {\n return this._reduceChildren([], (acc, control, key) => {\n acc[key] = control.getRawValue();\n return acc;\n });\n }\n clear(): void {\n if (this.resetControls$().length < 1) return;\n this.beforeUpdateList.forEach((fn) => fn([], false));\n }\n\n /** @internal */\n override _forEachChild(cb: (c: AbstractControl, key: number) => void): void {\n this.children$$().forEach((control: AbstractControl, index: number) => {\n if (control) {\n cb(control, index);\n }\n });\n }\n\n override find(key: number): AbstractControl {\n return this.children$$()[key];\n }\n override getResetValue(value: any[] = []) {\n return value.slice(this.fixedControls$().length);\n }\n}\n","import { AbstractControl } from './abstract_model';\nimport { FieldArray } from './field-array';\nimport { computed, signal, untracked } from '@angular/core';\nimport { LogicType, UpdateType } from './type';\nimport { deepEqual } from 'fast-equals';\n// 切换索引后,理论上应该触发下值变更,否则不知道值是什么\nexport class FieldLogicGroup extends FieldArray {\n protected override skipValuePath = true;\n activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n /** 过滤激活控件 */\n filterActivateControl$ = signal<\n | ((\n item: AbstractControl,\n index: number,\n list: AbstractControl[],\n ) => boolean)\n | undefined\n >(undefined);\n\n #childUpdate() {\n const returnResult = this.getValue(false);\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n\n #getActivateControls() {\n let list;\n const fn = this.filterActivateControl$();\n if (fn) {\n list = this.children$$().filter(fn);\n } else if (this.type() === 'and') {\n list = this.fixedControls$();\n } else if (this.type() === 'or') {\n list = [this.fixedControls$()[this.activateIndex$()]];\n } else {\n throw new Error('');\n }\n return list;\n }\n activatedChildren$$ = computed(() => this.#getActivateControls());\n override activatedChildrenIterable = computed(() => {\n const filterFn = this.filterActivateControl$();\n const type = this.type();\n if (filterFn) {\n const children = this.children$$();\n return children\n .map((element, index) => [index, element] as [number, AbstractControl])\n .filter(([index, item]) => !!filterFn(item, index, children));\n } else if (type === 'and') {\n return this.fixedControls$().map(\n (control, index) => [index, control] as [number, AbstractControl],\n );\n } else if (type === 'or') {\n const index = this.activateIndex$();\n return [\n [index, this.fixedControls$()[index]] as [number, AbstractControl],\n ];\n }\n\n return [];\n });\n\n getValue(rawData: boolean) {\n const controls = rawData\n ? this.activatedChildren$$()\n : this.activatedChildren$$().filter((control) =>\n control.shouldInclude$$(),\n );\n const control = controls[0];\n if (controls.length === 0) {\n return this.emptyValue$$();\n }\n if (controls.length === 1) {\n return control.value;\n }\n const result = controls.reduce(\n (obj, control) => ({ ...obj, ...control.value$$() }),\n {} as Record<string, any>,\n );\n return Object.keys(result).length ? result : this.emptyValue$$();\n }\n override reset(value?: any[]): void {\n const initValue = this.getInitValue(value);\n this.#updateValue(initValue, UpdateType.reset);\n }\n override getRawValue(): any {\n return this.getValue(true);\n }\n override updateValue(value: any): void {\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n if (this.isUnChanged()) {\n value ??= this.getInitValue(value);\n }\n this.#updateValue(value, UpdateType.update);\n }\n /** @internal */\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n this.#updateValue(initValue, UpdateType.init);\n }\n #updateValue(value: any, type: UpdateType) {\n const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n let isUpdateActivate = false;\n this.fixedControls$().forEach((control, i) => {\n if (type === UpdateType.init) {\n control.updateInitValue(viewValue);\n } else if (type === UpdateType.update) {\n control.updateValue(viewValue);\n } else {\n control.reset(viewValue);\n }\n if (\n !this.config$().disableOrUpdateActivate &&\n !isUpdateActivate &&\n control.valid &&\n control.shouldInclude$$() &&\n this.type() === 'or'\n ) {\n this.activateIndex$.set(i);\n isUpdateActivate = true;\n }\n });\n }\n}\n","import { FieldArray } from './field-array';\nimport { FieldControl } from './field-control';\nimport { FieldGroup } from './field-group';\nimport { FieldLogicGroup } from './field-logic-group';\n\nexport function isFieldGroup(input: any): input is FieldGroup {\n return input instanceof FieldGroup;\n}\nexport function isFieldArray(input: any): input is FieldArray {\n return input instanceof FieldArray;\n}\nexport function isFieldControl(input: any): input is FieldControl {\n return input instanceof FieldControl;\n}\nexport function isFieldLogicGroup(input: any): input is FieldLogicGroup {\n return input instanceof FieldLogicGroup;\n}\n","import { AnyCoreSchemaHandle } from '../../convert';\n\nexport function isGroup(schema: AnyCoreSchemaHandle) {\n return schema.isGroup;\n}\nexport function isArray(schema: AnyCoreSchemaHandle) {\n return schema.isArray;\n}\n","import { Injector } from '@angular/core';\nimport { FieldArray } from '../field/field-array';\nimport { FieldControl } from '../field/field-control';\nimport { FieldGroup } from '../field/field-group';\nimport { FieldLogicGroup } from '../field/field-logic-group';\nimport { isFieldLogicGroup } from '../field/is-field';\nimport { FieldFormConfig$ } from '../field/type';\nimport { AbstractControl } from '../field/abstract_model';\nimport { AnyCoreSchemaHandle } from '../convert';\nimport { isArray, isGroup } from './util/is-group';\nimport { RawKeyPath } from '../util';\nexport function createField(\n parentForm: AbstractControl,\n field: AnyCoreSchemaHandle,\n /** 创建用 */\n key: RawKeyPath,\n formConfig$$: FieldFormConfig$,\n isRoot: boolean,\n injector: Injector,\n) {\n let FieldClass;\n if (field.isLogicAnd || field.isLogicOr) {\n FieldClass = FieldLogicGroup;\n } else if (isGroup(field)) {\n FieldClass = FieldGroup;\n } else if (isArray(field) || field.isTuple) {\n FieldClass = FieldArray;\n } else {\n FieldClass = FieldControl;\n }\n let control;\n if (isRoot) {\n control = new (FieldClass as any)(\n field.checkSchema ?? field.sourceSchema,\n injector,\n ) as AbstractControl;\n if (isFieldLogicGroup(control)) {\n control.type.set(field.isLogicAnd ? 'and' : 'or');\n }\n control.initConfig(formConfig$$);\n } else {\n control = parentForm.get([key]);\n if (!control) {\n control = new (FieldClass as any)(\n field.checkSchema ?? field.sourceSchema,\n injector,\n ) as AbstractControl;\n if (isFieldLogicGroup(control)) {\n control.type.set(field.isLogicAnd ? 'and' : 'or');\n }\n parentForm.setControl?.(key as any, control);\n control.initConfig(formConfig$$);\n }\n }\n return control;\n}\n","export class ParentMap<KEY, VALUE> extends Map<KEY, VALUE> {\n constructor(private parent?: ParentMap<KEY, VALUE>) {\n super();\n }\n override get(key: KEY): VALUE | undefined {\n const result = super.get(key);\n if (result === undefined) {\n return this.parent?.get(key);\n }\n return result;\n }\n}\n","export function arrayStartsWith(list: any[], parts: any[] | any) {\n return (Array.isArray(parts) ? parts : [parts]).every(\n (item, index) => item === list[index],\n );\n}\n","export function toArray(input: any): any[] | undefined {\n return input === undefined\n ? input\n : Array.isArray(input)\n ? input\n : ([input] as const);\n}\n","export class SortedArray<T> extends Array {\n #compareFn;\n constructor(compareFn: (a: T, b: T) => number) {\n super();\n this.#compareFn = compareFn;\n }\n\n override push(...items: any[]): number {\n const result = super.push(...items);\n this.sort(this.#compareFn);\n return result;\n }\n}\n","export type LazyImport<T> = () => Promise<T>;\nconst markSymbol = Symbol();\nexport function lazyMark<T>(fn: LazyImport<T>) {\n return { [markSymbol]: fn };\n}\nexport type LazyMarkType<T> = ReturnType<typeof lazyMark<T>>;\nexport function isLazyMark(input: any): boolean {\n return markSymbol in input;\n}\nexport function getLazyImport<T>(input: any) {\n return (input[markSymbol] ??\n (typeof input === 'function' ? input : undefined)) as T | undefined;\n}\n","import { effect, Injector, untracked } from '@angular/core';\n// import { ControlValueAccessor } from '@angular/forms';\nimport { FieldControl } from '../field/field-control';\nexport interface ControlValueAccessor {\n /**\n * @description\n * Writes a new value to the element.\n *\n * This method is called by the forms API to write to the view when programmatic\n * changes from model to view are requested.\n *\n * @usageNotes\n * ### Write a value to the element\n *\n * The following example writes a value to the native DOM element.\n *\n * ```ts\n * writeValue(value: any): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\n * }\n * ```\n *\n * @param obj The new value for the element\n */\n writeValue(obj: any): void;\n /**\n * @description\n * Registers a callback function that is called when the control's value\n * changes in the UI.\n *\n * This method is called by the forms API on initialization to update the form\n * model when values propagate from the view to the model.\n *\n * When implementing the `registerOnChange` method in your own value accessor,\n * save the given function so your class calls it at the appropriate time.\n *\n * @usageNotes\n * ### Store the change function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnChange(fn: (_: any) => void): void {\n * this._onChange = fn;\n * }\n * ```\n *\n * When the value changes in the UI, call the registered\n * function to allow the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(change)': '_onChange($event.target.value)'\n * }\n * ```\n *\n * @param fn The callback function to register\n */\n registerOnChange(fn: any): void;\n /**\n * @description\n * Registers a callback function that is called by the forms API on initialization\n * to update the form model on blur.\n *\n * When implementing `registerOnTouched` in your own value accessor, save the given\n * function so your class calls it when the control should be considered\n * blurred or \"touched\".\n *\n * @usageNotes\n * ### Store the callback function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnTouched(fn: any): void {\n * this._onTouched = fn;\n * }\n * ```\n *\n * On blur (or equivalent), your class should call the registered function to allow\n * the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(blur)': '_onTouched()'\n * }\n * ```\n *\n * @param fn The callback function to register\n */\n registerOnTouched(fn: any): void;\n /**\n * @description\n * Function that is called by the forms API when the control status changes to\n * or from 'DISABLED'. Depending on the status, it enables or disables the\n * appropriate DOM element.\n *\n * @usageNotes\n * The following is an example of writing the disabled property to a native DOM element:\n *\n * ```ts\n * setDisabledState(isDisabled: boolean): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n * }\n * ```\n *\n * @param isDisabled The disabled status to set on the element\n */\n setDisabledState?(isDisabled: boolean): void;\n}\nexport function createViewControlLink(\n fieldControl: () => FieldControl,\n cva: ControlValueAccessor,\n injector: Injector,\n) {\n cva.registerOnChange((value: any) => {\n if (fieldControl().disabled$$()) {\n return;\n }\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n value: value,\n change: true,\n }));\n if (fieldControl().updateOn$$() === 'change') {\n fieldControl().viewValueChange(value);\n }\n });\n cva.registerOnTouched(() => {\n if (fieldControl().disabled$$()) {\n return;\n }\n const updateOn = fieldControl().updateOn$$();\n const pendingStatus = fieldControl().pendingStatus();\n if (updateOn === 'submit') {\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n touched: true,\n }));\n } else {\n fieldControl().markAsTouched();\n if (pendingStatus.change && updateOn === 'blur') {\n fieldControl().viewValueChange(pendingStatus.value);\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n change: false,\n value: undefined,\n }));\n }\n }\n });\n const disposeList: (() => any)[] = [];\n const ref = effect(\n () => {\n const value = fieldControl().modelValueToViewValue$$();\n untracked(() => {\n cva.writeValue(value);\n });\n },\n { injector: injector },\n );\n cva.writeValue(fieldControl().modelValueToViewValue$$());\n disposeList.push(() => ref.destroy());\n if (cva.setDisabledState) {\n const disabledRef = effect(\n () => {\n const value = fieldControl().disabled$$();\n untracked(() => {\n cva.setDisabledState!(value);\n });\n },\n { injector: injector },\n );\n cva.setDisabledState!(fieldControl().disabled$$());\n disposeList.push(() => disabledRef.destroy());\n }\n return (destroy?: boolean) => {\n disposeList.forEach((fn) => fn());\n // todo 需要优化\n untracked(() => {\n fieldControl().updateValue(fieldControl().value$$(), true);\n });\n };\n}\n","import { AbstractControl } from '../field/abstract_model';\n\nexport function controlStatusList(\n fieldControl?: AbstractControl,\n skipDisabled?: boolean,\n) {\n if (!fieldControl) {\n return [];\n }\n const statusList = [];\n if (!skipDisabled && fieldControl.disabled$$()) {\n statusList.push('disabled');\n }\n if (fieldControl.touched$$()) {\n statusList.push('touched');\n } else {\n statusList.push('untouched');\n }\n if (fieldControl.dirty$$()) {\n statusList.push('dirty');\n } else {\n statusList.push('pristine');\n }\n switch (fieldControl.status$$()) {\n case 'VALID':\n statusList.push('valid');\n break;\n case 'INVALID':\n statusList.push('invalid');\n break;\n case 'PENDING':\n statusList.push('pending');\n break;\n default:\n break;\n }\n return statusList;\n}\n\nexport function fieldControlStatusClass(\n fieldControl?: AbstractControl,\n skipDisabled?: boolean,\n) {\n return controlStatusList(fieldControl, skipDisabled)\n .map((item) => `pi-${item}`)\n .join(' ');\n}\n","import { effect } from '@angular/core';\nimport type { Injector } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\nimport { AbstractControl } from '../field/abstract_model';\n\nexport function initListen(\n input: any,\n control: AbstractControl,\n injector: Injector,\n fn: (input: any) => void,\n) {\n let init = true;\n return effect(\n () => {\n const modelValue = control.value$$();\n if (init) {\n if (!deepEqual(modelValue, input)) {\n fn(modelValue);\n }\n init = false;\n } else {\n fn(modelValue);\n }\n },\n { injector },\n );\n}\n","import { summarize } from 'valibot';\nimport {\n AbstractControl,\n ValidationDescendantError2,\n ValidationErrors2,\n ValidationValibotError2,\n} from '../field/abstract_model';\nimport { FieldArray } from '../field/field-array';\nimport { FieldLogicGroup } from '../field/field-logic-group';\n\nexport interface ErrorSummary {\n /** 方便判断是哪一个控件产生的异常 */\n debugPathList: string[];\n /** 可以用于直接get查询到当前配置 */\n queryPathList: (number | string)[];\n fieldList: AbstractControl[];\n item: Exclude<ValidationErrors2, ValidationDescendantError2>;\n valibotIssueSummary: string | undefined;\n}\nfunction errorItem(\n item: ValidationErrors2,\n prefixList: ValidationDescendantError2[],\n list: ErrorSummary[],\n) {\n if (item.kind === 'descendant') {\n const item2 = item as ValidationDescendantError2;\n item2.metadata.forEach((child) => {\n errorItem(child, prefixList.slice().concat(item2), list);\n });\n } else {\n list.push({\n debugPathList: prefixList.map((item) => {\n const parentField = item.field.parent;\n if (parentField instanceof FieldLogicGroup) {\n return parentField.type() === 'and'\n ? `[∧${item.key}]`\n : `[∨${item.key}]`;\n } else if (parentField instanceof FieldArray) {\n return `[${item.key}]`;\n } else {\n return `${item.key}`;\n }\n }),\n queryPathList: prefixList.map((item) => item.key),\n fieldList: prefixList.map((item) => item.field),\n item: item,\n get valibotIssueSummary() {\n if (item.kind === 'valibot') {\n return summarize((item as ValidationValibotError2).metadata);\n }\n return undefined;\n },\n });\n }\n}\nexport function errorSummary(control?: AbstractControl) {\n if (!control?.errors) {\n return [];\n }\n const list: ErrorSummary[] = [];\n for (const item of control.errors) {\n errorItem(item, [], list);\n }\n return list;\n}\n\nexport const getDeepError = errorSummary;\n","import {\n CreateSignalOptions,\n DestroyRef,\n inject,\n Injector,\n Signal,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n OperatorFunction,\n pipe,\n shareReplay,\n tap,\n} from 'rxjs';\nexport type ObservableSignal<Input, Output> = WritableSignal<Input> & {\n input: Signal<Input>;\n output: Signal<Output>;\n loading: Signal<boolean>;\n input$$: Observable<Input>;\n subject: BehaviorSubject<Input>;\n output$$: Observable<Output>;\n};\nconst DefaultOptions = { autoDestroy: true };\n/** set输入,()输出的是管道后的值, */\nexport function observableSignal<Input, Output>(\n initialValue: Input,\n options?: CreateSignalOptions<Input> & {\n pipe?: OperatorFunction<Input, Output>;\n injector?: Injector;\n autoDestroy?: boolean;\n },\n) {\n options = { ...DefaultOptions, ...options };\n const inputS$ = signal(initialValue, options);\n const outputS$ = signal<any>(undefined);\n const loading$ = signal(false);\n const inputR$ = new BehaviorSubject<any>(undefined);\n inputR$.next(inputS$());\n const data: Observable<Output> = inputR$.pipe(\n tap(() => {\n loading$.set(true);\n }),\n options?.pipe ? options.pipe : (pipe() as any),\n shareReplay(),\n );\n const oldOutputSet = outputS$.set;\n\n data.subscribe((value) => {\n oldOutputSet(value);\n loading$.set(false);\n });\n const oldSet = inputS$.set;\n const changed$ = outputS$ as any as ObservableSignal<Input, Output>;\n changed$.set = (value: Input) => {\n inputR$.next(value);\n return oldSet(value);\n };\n changed$.update = (fn: (value: Input) => Input) => {\n const newValue = fn(inputS$());\n return changed$.set(newValue);\n };\n changed$.output = outputS$;\n changed$.input = inputS$;\n changed$.input$$ = inputR$.asObservable();\n changed$.output$$ = data;\n changed$.subject = inputR$;\n if (options?.injector || options.autoDestroy) {\n const injector = options?.injector ?? inject(Injector, { optional: true });\n if (injector) {\n injector.get(DestroyRef).onDestroy(() => {\n inputR$.complete();\n });\n }\n }\n\n return changed$;\n}\n","import {\n CreateSignalOptions,\n isSignal,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { computed } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { isPromise, isSubscribable } from '../convert/util/is-promise';\nexport type AsyncObjectSignal<Input> = Signal<Input> & {\n connect: (\n key: string,\n value: Signal<any> | Promise<any> | Observable<any> | any,\n ) => void;\n disconnect: (key: string) => void;\n set(value: Input): void;\n update(updateFn: (value: Input) => Input): void;\n map(fn: (input: Input) => any): void;\n};\nexport function asyncObjectSignal<\n Input extends Record<string, any> | undefined,\n>(initialValue: Input, options?: CreateSignalOptions<Input>) {\n const data$ = signal(initialValue);\n const mapFn$ = signal<((value: any) => any) | undefined>(undefined);\n const signalList$ = signal<[string, Signal<any>][]>([]);\n const value$$ = computed(() => {\n const signalList = signalList$();\n const data = data$();\n const mapFn = mapFn$();\n if (!signalList.length) {\n return mapFn ? mapFn(data) : data;\n }\n const data2 = { ...data };\n signalList.forEach(([key, value]) => {\n (data2![key] as Record<string, any>) = value();\n });\n return mapFn ? mapFn(data2) : data2;\n }, options);\n const disposeMap = new Map<string, () => void>();\n const changed$ = value$$ as any as AsyncObjectSignal<Input>;\n changed$.connect = (key, value) => {\n changed$.disconnect(key);\n let dispose: (() => void) | undefined;\n if (isPromise(value)) {\n // promise\n let isDestroy = false;\n value.then((value: any) => {\n if (isDestroy) {\n return;\n }\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n });\n dispose = () => {\n isDestroy = true;\n };\n } else if (isSubscribable(value)) {\n // rxjs\n const ref = value.subscribe({\n next: (value) => {\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n },\n });\n dispose = () => {\n ref.unsubscribe();\n };\n } else if (isSignal(value)) {\n signalList$.update((list) => {\n list = list.slice();\n list.push([key, value]);\n return list;\n });\n dispose = () => {\n signalList$.update((list) => {\n const index = list.findIndex((item) => value === item[1]);\n if (index !== -1) {\n list = list.slice();\n list.splice(index, 1);\n }\n return list;\n });\n };\n } else {\n // 普通类型\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n }\n if (dispose) {\n disposeMap.set(key, dispose);\n }\n };\n changed$.disconnect = (key) => {\n untracked(() => {\n disposeMap.get(key)?.();\n disposeMap.delete(key);\n });\n };\n changed$.set = (key) => {\n data$.set(key);\n };\n changed$.update = (fn: any) => {\n const result = fn(changed$());\n data$.set(result);\n };\n changed$.map = (input) => {\n mapFn$.set(input);\n };\n return changed$;\n}\n","import { CreateSignalOptions, Signal, signal } from '@angular/core';\n\nimport { computed } from '@angular/core';\nexport type CombineSignal<Input> = Signal<Input[]> & {\n add: (item: Signal<Input>, index?: number) => void;\n remove: (item: Signal<Input>) => void;\n items: () => Signal<Input>[];\n clean: () => void;\n update: (fn: (list: Signal<Input>[]) => Signal<Input>[]) => void;\n};\nexport function combineSignal<Input>(\n initialValue: Signal<Input>[] = [],\n options?: CreateSignalOptions<Input[]>,\n) {\n const list$ = signal<Signal<Input>[]>(initialValue);\n const input$$ = computed(() => list$().map((item) => item()), options);\n const changed$ = input$$ as any as CombineSignal<Input>;\n changed$.add = (item, index) => {\n list$.update((list) => {\n if (typeof index === 'number') {\n list = list.slice();\n list.splice(index, 0, item);\n return list;\n }\n return [...list, item];\n });\n };\n changed$.remove = (item) => {\n list$.update((list) => {\n const index = list.indexOf(item);\n if (index === -1) {\n return list;\n }\n list = list.slice();\n list.splice(index, 1);\n return list;\n });\n };\n changed$.items = () => list$();\n changed$.clean = () => list$.set([]);\n changed$.update = (fn) => {\n const list = fn(list$());\n list$.set(list);\n };\n return changed$;\n}\n","import { PiResolvedCommonViewFieldConfig } from '../type';\n\nexport function* groupGenerator(\n list: PiResolvedCommonViewFieldConfig<any, any>[],\n): Generator<PiResolvedCommonViewFieldConfig<any, any>, void, unknown> {\n for (const item of list) {\n if (!item.keyPath?.length && item.fixedChildren?.().length) {\n yield* groupGenerator(item.fixedChildren());\n } else if (item.keyPath?.length) {\n yield item;\n }\n }\n}\n","import { ArraryIterable, arrayStartsWith, KeyPath } from '../util';\nimport {\n _PiResolvedCommonViewFieldConfig,\n PiResolvedCommonViewFieldConfig,\n} from './type/common-field-config';\nimport { groupGenerator } from './util/group-flat';\n\nexport function fieldQuery(\n keyPath: KeyPath,\n field: PiResolvedCommonViewFieldConfig<any, any>,\n aliasMap: Map<string, PiResolvedCommonViewFieldConfig<any, any>>,\n root: PiResolvedCommonViewFieldConfig<any, any>,\n) {\n const firstPath = keyPath[0];\n let list:\n | ArraryIterable<{\n field: _PiResolvedCommonViewFieldConfig;\n level: number;\n }>\n | undefined;\n if (firstPath === '#') {\n field = root;\n list = [{ field: root, level: 1 }];\n } else if (firstPath === '..') {\n list = [{ field: field.parent!, level: 1 }];\n } else if (typeof firstPath === 'string' && firstPath.startsWith('@')) {\n const queryField = aliasMap.get(firstPath.slice(1));\n list = [{ field: queryField!, level: 1 }];\n } else if (field.fixedChildren || field.restChildren) {\n const children = [\n ...(field.fixedChildren?.() ?? []),\n ...(field.restChildren?.() ?? []),\n ];\n list = groupGenerator(children)\n .filter(\n (field) => field.keyPath && arrayStartsWith(keyPath, field.keyPath),\n )\n .map((field) => ({ field: field, level: field.keyPath?.length! }));\n }\n if (!list) {\n return;\n }\n for (const item of list) {\n if (keyPath.length === item.level) {\n return item.field;\n }\n const res = item.field.get(keyPath.slice(item.level));\n if (res) {\n return res;\n }\n }\n return undefined;\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { PI_VIEW_CONFIG_TOKEN } from './type';\nexport const FindConfigToken = new InjectionToken<\n ReturnType<typeof FindConfigFactory>\n>('FindConfig');\nexport function FindConfigFactory() {\n const globalConfig = inject(PI_VIEW_CONFIG_TOKEN);\n return {\n findWrapperComponent: (wrapper: any) => {\n let config;\n let type;\n if (typeof wrapper === 'string') {\n config = globalConfig?.wrappers?.[wrapper];\n if (!config) {\n throw new Error(`🈳wrapper:[${type}]❗`);\n }\n return config?.type;\n }\n return wrapper;\n },\n findComponentConfig: (type: string | any) => {\n if (typeof type === 'string') {\n const config = globalConfig?.types?.[type];\n if (!config) {\n throw new Error(`🈳define:[${type}]❗`);\n }\n return config.type;\n } else {\n return type;\n }\n },\n };\n}\n","import {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_FORM_BUILDER_ALIAS_MAP,\n PI_VIEW_FIELD_TOKEN,\n} from './type/token';\nimport {\n computed,\n DestroyableInjector,\n DestroyRef,\n inject,\n Injector,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { createField } from './create-field';\nimport { ParentMap } from './class/parent-map';\n\nimport { fieldQuery } from './field-query';\n\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreWrapperConfig,\n PiResolvedCommonViewFieldConfig,\n RawCoreWrapperConfig,\n} from './type/common-field-config';\nimport {\n BuildRootInputItem,\n BuildGroupItem,\n BuildArrayItem,\n BuildRootItem,\n} from './type/builder.type';\nimport { FieldArray } from '../field/field-array';\nimport { FieldGroup } from '../field/field-group';\nimport { isFieldLogicGroup, isFieldArray } from '../field/is-field';\nimport { AnyCoreSchemaHandle, CoreSchemaHandle } from '../convert';\nimport { isArray, isGroup } from './util/is-group';\nimport {\n RawKeyPath,\n SortedArray,\n toArray,\n KeyPath,\n asyncObjectSignal,\n combineSignal,\n observableSignal,\n} from '../util';\nimport * as v from 'valibot';\nimport { FindConfigToken } from './find-config';\nimport { map, pipe } from 'rxjs';\n\nexport class FormBuilder<SchemaHandle extends CoreSchemaHandle<any, any>> {\n #scopeMap =\n inject(PI_FORM_BUILDER_ALIAS_MAP, { optional: true }) ??\n new ParentMap<string, PiResolvedCommonViewFieldConfig<any, any>>();\n #options = inject(PI_FORM_BUILDER_OPTIONS_TOKEN);\n #injector = inject(Injector);\n\n #allFieldInitHookList: (() => void)[] = [];\n buildRoot(item: BuildRootInputItem<SchemaHandle>) {\n const field = this.#buildControl(\n {\n type: 'root',\n field: { fullPath: [], injector: this.#injector },\n form: undefined,\n resolvedField$: item.resolvedField$,\n append: () => {},\n },\n item.field,\n 0,\n );\n field.form.control?.updateInitValue(undefined);\n this.allFieldInitHookCall();\n }\n allFieldInitHookCall() {\n const list = this.#allFieldInitHookList;\n this.#allFieldInitHookList = [];\n list.forEach((fn) => fn());\n }\n #buildField(\n item: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n ) {\n item.field.fixedChildren = signal(\n new SortedArray<_PiResolvedCommonViewFieldConfig>(\n (a, b) => a.priority - b.priority,\n ),\n );\n for (let index = 0; index < item.fields.length; index++) {\n this.#buildControl(item, item.fields[index], index);\n }\n if (item.type === 'group') {\n this.#buildGroup(item);\n } else {\n this.#buildArray(item);\n }\n item.field.children = computed(() => [\n ...item.field.fixedChildren!(),\n ...(item.field.restChildren?.() ?? []),\n ]);\n }\n afterResolveConfig(\n rawConfig: SchemaHandle,\n config: _PiResolvedCommonViewFieldConfig,\n ): _PiResolvedCommonViewFieldConfig | undefined {\n return;\n }\n\n #buildControl(\n parent:\n | BuildGroupItem<SchemaHandle>\n | BuildArrayItem<SchemaHandle>\n | BuildRootItem,\n // 单独一项\n field: SchemaHandle,\n index: number,\n ): PiResolvedCommonViewFieldConfig<any, any> {\n const define = !field.type\n ? undefined\n : typeof field.type !== 'string'\n ? field.type\n : this.#findConfig.findComponentConfig(field.type);\n const inputs = asyncObjectSignal(field.inputs);\n const outputs = asyncObjectSignal(field.outputs);\n const attributes = asyncObjectSignal(field.attributes);\n const events = asyncObjectSignal(field.events);\n const formConfig$ = signal(field.formConfig ?? {});\n const renderConfig = signal(field.renderConfig ?? {});\n let control;\n let keyPath: RawKeyPath | undefined = field.key;\n\n if (isFieldLogicGroup(parent.form)) {\n keyPath ??= parent.form.fixedControls$().length;\n } else if (isFieldArray(parent.form)) {\n keyPath ??= index;\n }\n const isRoot = parent.type === 'root';\n const injector = Injector.create({\n providers: [\n ...(field.providers ?? []),\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: () => resolvedConfig,\n },\n ],\n parent: parent.field.injector,\n });\n parent.field.injector.get(DestroyRef).onDestroy(() => {\n if (resolvedConfig.injector) {\n (resolvedConfig.injector as DestroyableInjector).destroy();\n }\n });\n if (!field.nonFieldControl && (keyPath !== undefined || isRoot)) {\n control = createField(\n parent.form as any,\n field,\n keyPath!,\n // 这里也是fullPath\n formConfig$,\n isRoot,\n injector,\n );\n }\n const rootForm = this.#options.form$$;\n let resolvedConfig = {\n id: field.id,\n keyPath: toArray(keyPath),\n key: field.key,\n get fullPath() {\n return [\n ...resolvedConfig.parent.fullPath,\n ...(resolvedConfig.keyPath ?? []),\n ];\n },\n form: {\n parent: parent.form,\n control: control ?? (isGroup(field) ? parent.form : undefined),\n get root() {\n return rootForm();\n },\n },\n get: (keyPath: any) =>\n untracked(() =>\n fieldQuery(\n keyPath,\n resolvedConfig,\n this.#scopeMap,\n this.#options.resolvedField$(),\n ),\n ),\n parent: parent.field,\n origin: field,\n renderConfig: renderConfig,\n formConfig: formConfig$,\n props: asyncObjectSignal(field.props),\n context: this.#options.context,\n priority: field.priority,\n hooks: field.hooks,\n alias: field.alias,\n get inputs() {\n return resolvedConfig.define?.().inputs;\n },\n get outputs() {\n return resolvedConfig.define?.().outputs;\n },\n get events() {\n return resolvedConfig.define?.().events;\n },\n get attributes() {\n return resolvedConfig.define?.().attributes;\n },\n define: define\n ? signal({ type: define, inputs, outputs, attributes, events })\n : undefined,\n wrappers: this.#wrapperToSignal(field.wrappers, injector),\n injector: injector,\n } as any as _PiResolvedCommonViewFieldConfig;\n resolvedConfig =\n this.afterResolveConfig(field, resolvedConfig) ?? resolvedConfig;\n if (field.movePath) {\n this.#moveViewField(field.movePath, resolvedConfig);\n } else {\n if (\n (parent.type === 'group' || parent.type === 'array') &&\n !parent.skipAppend\n ) {\n parent.append(resolvedConfig);\n }\n }\n if (field.alias) {\n this.#scopeMap.set(field.alias, resolvedConfig);\n }\n resolvedConfig.hooks?.fieldResolved?.(resolvedConfig);\n if (isRoot) {\n parent.resolvedField$.set(resolvedConfig);\n }\n // 递归进行解析\n if (isGroup(field) || field.isLogicAnd || field.isLogicOr) {\n this.#buildField({\n type: 'group' as const,\n templateField: field.arrayChild,\n fields: field.children,\n field: resolvedConfig,\n form: (control || parent.form) as FieldGroup,\n append: (field) => {\n resolvedConfig.fixedChildren!().push(field);\n },\n });\n } else if (isArray(field) || field.isTuple) {\n this.#buildField({\n type: 'array' as const,\n templateField: field.arrayChild,\n fields: field.children,\n field: resolvedConfig,\n form: control as FieldArray,\n append: (field) => {\n resolvedConfig.fixedChildren!().push(field);\n },\n });\n }\n if (resolvedConfig.hooks?.allFieldsResolved) {\n this.#allFieldInitHookList.push(() => {\n resolvedConfig.hooks!.allFieldsResolved!(resolvedConfig);\n });\n }\n\n return resolvedConfig;\n }\n\n #buildGroup(buildItem: BuildGroupItem<SchemaHandle>) {\n const { templateField, form, field } = buildItem;\n\n if (templateField && field.form.control) {\n field.restChildren = signal([]);\n const isCheckedKey = (key: any) => {\n if (form.config$().groupKeySchema) {\n if (!v.safeParse(form.config$().groupKeySchema!, key).success) {\n return false;\n }\n }\n return true;\n };\n const updateItem = (key: string, initValue: boolean) => {\n const result = this.#createObjectRestItem(\n { ...buildItem, skipAppend: true },\n {\n ...templateField!,\n key,\n },\n );\n field.restChildren!.update((list) => [...list, result]);\n if (initValue) {\n result.form.control?.updateInitValue(form.initedValue?.[key]);\n }\n return result;\n };\n function removeItem(key: string) {\n field.restChildren!.update((list) => {\n const index = list.findIndex(\n (item) => item.keyPath!.slice(-1)[0] === key,\n );\n list = [...list];\n list.splice(index, 1);\n return list;\n });\n form.removeRestControl(key);\n }\n form.beforeUpdateList.push((restValue = {}, initUpdate) => {\n const restControl = form.resetControls$();\n for (const key in restControl) {\n if (key in restValue) {\n continue;\n }\n removeItem(key);\n }\n let isUpdateItem = false;\n for (const key in restValue) {\n if (key in restControl) {\n continue;\n }\n if (!isCheckedKey(key)) {\n continue;\n }\n isUpdateItem = true;\n updateItem(key, initUpdate);\n }\n if (isUpdateItem) {\n this.allFieldInitHookCall();\n }\n });\n field.action = {\n set: (value, key: string) =>\n untracked(() => {\n if (!isCheckedKey(key)) {\n return false;\n }\n\n const result = updateItem(key, true);\n this.allFieldInitHookCall();\n result.form.control!.updateValue(value);\n return true;\n }),\n remove: (key: string) => {\n untracked(() => {\n removeItem(key);\n });\n },\n };\n }\n }\n #createObjectRestItem(\n parent: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n // 单独一项\n field: AnyCoreSchemaHandle,\n ) {\n const result = this.#buildControl(parent, field as any, 0);\n this.#allFieldInitHookList.push(() => this.allFieldInitHookCall());\n return result;\n }\n\n #buildArray(buildItem: BuildArrayItem<SchemaHandle>) {\n const { templateField, form, field } = buildItem;\n\n if (templateField && field.form.control) {\n const fixedLength = field.fixedChildren?.().length ?? 0;\n field.restChildren = signal([]);\n const updateItem = (\n list: _PiResolvedCommonViewFieldConfig[],\n index: number,\n initValue: boolean,\n ) => {\n const result = this.#createArrayItem(\n buildItem,\n templateField,\n fixedLength + index,\n );\n list[index] = result;\n if (initValue) {\n result.form.control?.updateInitValue(\n form.initedValue?.[fixedLength + index],\n );\n }\n return result;\n };\n function removeItem(\n list: _PiResolvedCommonViewFieldConfig[],\n index: number,\n ) {\n const [deletedItem] = list!.splice(index, 1);\n form.removeRestControl(index);\n if (deletedItem) {\n (deletedItem.injector as DestroyableInjector).destroy();\n deletedItem.injector = undefined as any;\n }\n }\n form.beforeUpdateList.push((resetValue = [], initUpdate) => {\n const controlLength = form.resetControls$().length;\n if (resetValue.length < controlLength) {\n const list = [...field.restChildren!()];\n for (\n let index = list.length - 1;\n index >= resetValue.length;\n index--\n ) {\n removeItem(list, index);\n }\n field.restChildren!.set(list);\n } else if (controlLength < resetValue.length) {\n const list = [...field.restChildren!()];\n for (let index = controlLength; index < resetValue.length; index++) {\n updateItem(list, index, initUpdate);\n }\n field.restChildren!.set(list);\n this.allFieldInitHookCall();\n }\n });\n field.action = {\n set: (value, index: number) =>\n untracked(() => {\n index = (\n typeof index === 'number'\n ? index\n : (field.restChildren?.().length ?? 0)\n )!;\n const list = [...field.restChildren!()];\n const result = updateItem(list, index, true);\n field.restChildren!.set(list);\n this.allFieldInitHookCall();\n result.form.control!.updateValue(value);\n return true;\n }),\n remove: (index: number) => {\n untracked(() => {\n const list = [...field.restChildren!()];\n removeItem(list, index);\n field.restChildren!.set(list);\n });\n },\n };\n }\n }\n #createArrayItem(\n parent: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n // 单独一项\n field: AnyCoreSchemaHandle,\n index: number,\n ) {\n const Builder = this.constructor as any as typeof FormBuilder;\n const injector = Injector.create({\n providers: [\n Builder,\n {\n provide: PI_FORM_BUILDER_ALIAS_MAP,\n useValue: new ParentMap<\n string,\n PiResolvedCommonViewFieldConfig<any, any>\n >(this.#scopeMap),\n },\n ],\n parent: parent.field.injector,\n });\n parent.field.injector.get(DestroyRef).onDestroy(() => {\n injector.destroy();\n });\n const instance = injector.get(Builder);\n const result = instance.#buildControl(\n { ...parent, skipAppend: true },\n field,\n index,\n );\n this.#allFieldInitHookList.push(() => instance.allFieldInitHookCall());\n return result;\n }\n\n #moveViewField(key: KeyPath, inputField: _PiResolvedCommonViewFieldConfig) {\n const parent = fieldQuery(\n key,\n inputField,\n this.#scopeMap,\n this.#options.resolvedField$(),\n );\n\n if (!parent) {\n throw new Error('移动视图项失败');\n }\n const newKeyPath = inputField.fullPath.slice(parent.fullPath.length);\n (inputField as any).keyPath = newKeyPath;\n inputField.parent = parent as any;\n parent.fixedChildren!().push(inputField);\n }\n #findConfig = inject(FindConfigToken);\n #wrapperToSignal(list: RawCoreWrapperConfig[], injector: Injector) {\n return combineSignal(\n list.map((item) =>\n observableSignal<CoreWrapperConfig, CoreWrapperConfig>(\n {\n type: item.type,\n attributes: asyncObjectSignal(item.attributes),\n inputs: asyncObjectSignal(item.inputs),\n outputs: asyncObjectSignal(item.outputs),\n events: asyncObjectSignal(item.events),\n },\n {\n pipe: pipe(\n map((item) => {\n const defaultWrapperConfig =\n this.#findConfig.findWrapperComponent(item.type);\n return { ...item, type: defaultWrapperConfig };\n }),\n ),\n injector: injector,\n },\n ),\n ),\n );\n }\n}\n","import {\n ValidationCommonError2,\n ValidationErrorError2,\n ValidationErrors2,\n ValidationValibotError2,\n} from '../../field/abstract_model';\n\nexport function findError<K extends string>(\n list: ValidationErrors2[] | undefined,\n key: K,\n):\n | (K extends ValidationValibotError2['kind']\n ? ValidationValibotError2\n : K extends ValidationErrorError2['kind']\n ? ValidationErrorError2\n : ValidationCommonError2)\n | undefined {\n if (!list) {\n return undefined;\n }\n\n return list.find((item) => item.kind === key) as any;\n}\n","import type { BaseMetadata } from 'valibot';\nimport { KeyPath } from '../../util';\n\nexport interface LayoutAction<TInput = unknown> extends BaseMetadata<TInput> {\n readonly type: 'layout';\n readonly reference: typeof layout;\n readonly value: {\n keyPath?: KeyPath;\n priority?: number;\n };\n}\n\nexport function layout<TInput>(\n value: LayoutAction['value'],\n): LayoutAction<TInput> {\n return {\n kind: 'metadata',\n type: 'layout',\n reference: layout,\n value: value,\n };\n}\n","import { createRawConfig } from '@piying/valibot-visit';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nexport const rawConfig = createRawConfig<'viewRawConfig', AnyCoreSchemaHandle>(\n 'viewRawConfig',\n);\n","import { defineType } from '@piying/valibot-visit';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { FindConfigToken } from '../../builder-base/find-config';\nimport { rawConfig } from './raw-config';\n\nexport function setComponent<T>(type: any) {\n return typeof type === 'string'\n ? defineType<T>(type)\n : rawConfig<T>((field) => {\n field.type = type;\n });\n}\nexport function findComponent<T>(\n field: _PiResolvedCommonViewFieldConfig,\n type: any,\n) {\n return field.injector.get(FindConfigToken).findComponentConfig(type);\n}\n","import { RawConfigActionCommon } from '@piying/valibot-visit';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nimport { rawConfig } from './raw-config';\ntype Hooks = AnyCoreSchemaHandle['hooks'];\nexport type HooksConfig<T> = <B>(hooks: T) => RawConfigActionCommon<B>;\n/** @deprecated use actions.hook.set */\nexport const setHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = hooks;\n });\n/** @deprecated use actions.hook.patch */\nexport const patchHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = { ...field.hooks, ...hooks };\n });\ntype HooksKey = keyof NonNullable<Hooks>;\nconst DefaultOptions = { position: 'bottom' as const };\nexport type MergeHooksConfig<T> = <B>(\n hooks: T,\n options?: { position: 'top' | 'bottom' },\n) => RawConfigActionCommon<B>;\nexport function mergeHooksFn<T extends AnyCoreSchemaHandle>(\n hooks: T['hooks'],\n options: { position: 'top' | 'bottom' },\n field: T,\n) {\n field.hooks ??= {};\n for (const key in hooks) {\n const oldFn = (field.hooks as any)[key];\n (field.hooks as any)[key] = (...args: any) => {\n if (options.position === 'top') {\n (hooks as any)[key](...args);\n }\n oldFn?.(...args);\n if (options.position === 'bottom') {\n (hooks as any)[key](...args);\n }\n };\n }\n}\n/** @deprecated use actions.hook.merge */\nexport const mergeHooks: MergeHooksConfig<Hooks> = (\n hooks: Hooks,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) => rawConfig((field) => mergeHooksFn(hooks, options, field));\n/** @deprecated use actions.hook.remove */\nexport function removeHooks<T>(list: HooksKey[]) {\n return rawConfig<T>((field) => {\n const oldValue = field.hooks;\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.hooks = oldValue;\n });\n}\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n ViewOutputs,\n} from '../../builder-base';\nimport { combineLatest, map, Observable, skip, startWith, Subject } from 'rxjs';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nimport { mergeHooksFn } from './hook';\nimport { KeyPath } from '../../util';\n\nexport function mergeOutputFn(\n field: _PiResolvedCommonViewFieldConfig,\n outputs: ViewOutputs,\n) {\n field.outputs.update((originOutputs) => {\n originOutputs = { ...originOutputs };\n for (const key in outputs) {\n const oldFn = (originOutputs as any)[key];\n (originOutputs as any)[key] = (...args: any[]) => {\n oldFn?.(...args, field);\n (outputs as any)[key](...args, field);\n };\n }\n return originOutputs;\n });\n}\n\nexport const mergeOutputs = <T>(\n outputs: Record<string, (...args: any[]) => void>,\n) =>\n rawConfig<T>((field) => {\n for (const key in outputs) {\n const oldFn = field.outputs[key];\n field.outputs[key] = (...args: any[]) => {\n if (oldFn) {\n oldFn(...args);\n }\n return (outputs as any)[key](...args);\n };\n }\n });\nexport const asyncMergeOutputs = <T>(\n outputs: Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (...args: any[]) => void\n >,\n) =>\n rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n field.outputs.update((originOutputs) => {\n originOutputs = { ...originOutputs };\n for (const key in outputs) {\n const fn = outputs[key](field);\n const oldFn = (originOutputs as any)[key];\n (originOutputs as any)[key] = (...args: any[]) => {\n if (oldFn) {\n oldFn(...args);\n }\n return fn(...args);\n };\n }\n return originOutputs;\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n });\nexport type EventChangeFn = (\n fn: (\n input: {\n list: KeyPath | undefined;\n output: string;\n }[],\n ) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n) => void;\n\nexport function outputChangeFn(\n rawField: AnyCoreSchemaHandle,\n fn: EventChangeFn,\n) {\n mergeHooksFn(\n {\n allFieldsResolved: (field) =>\n fn((list) => {\n const resultList: {\n subject: Subject<any>;\n field: _PiResolvedCommonViewFieldConfig;\n }[] = [];\n for (const item of list) {\n const emitField = !item.list ? field : field.get(item.list)!;\n const subject = new Subject();\n mergeOutputFn(field, {\n [item.output]: (...args: any[]) => {\n subject.next(args);\n },\n });\n resultList.push({\n subject,\n field: emitField,\n });\n }\n return combineLatest(\n resultList.map(({ subject }) => subject.pipe(startWith(undefined))),\n ).pipe(\n skip(1),\n map((list) => ({\n list,\n field,\n listenFields: resultList.map((item) => item.field),\n })),\n );\n }),\n },\n { position: 'bottom' },\n rawField,\n );\n}\n\nexport function outputChange<T>(fn: EventChangeFn) {\n return rawConfig<T>((field) => outputChangeFn(field, fn));\n}\n","import { rawConfig } from './raw-config';\n\nexport function setAlias<T>(alias: string) {\n return rawConfig<T>((field) => {\n field.alias = alias;\n });\n}\n","import { FieldRenderConfig } from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { rawConfig } from './raw-config';\n\nexport function renderConfig<T>(type: FieldRenderConfig) {\n return rawConfig<T>((field) => {\n field.renderConfig = type;\n });\n}\nexport function formConfig<T>(config: FieldFormConfig<T>) {\n return rawConfig<T>((field) => {\n field.formConfig = { ...field.formConfig, ...config };\n });\n}\n","import { combineLatest, map, Observable, skip } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { rawConfig } from './raw-config';\nimport { KeyPath } from '../../util';\nexport interface ValueChangFnOptions {\n list?: (KeyPath | undefined)[];\n skipInitValue?: boolean;\n}\n\nexport type ValueChangeFn = (\n fn: (input?: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n) => void;\nconst DefaultSelfList = [undefined];\nexport function valueChangeFn(\n field: _PiResolvedCommonViewFieldConfig,\n input: ValueChangFnOptions = {},\n) {\n const listenFields = (input.list ?? DefaultSelfList).map((keyPath) =>\n !keyPath ? field! : field.get(keyPath)!,\n );\n\n return combineLatest(\n listenFields.map((control) =>\n input.skipInitValue\n ? control.form.control!.valueChanges.pipe(skip(1))\n : control.form.control!.valueChanges,\n ),\n ).pipe(map((list) => ({ list, field, listenFields })));\n}\n\nexport function valueChange<TInput>(listenFn: ValueChangeFn) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n listenFn((options) => valueChangeFn(field, options), field);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\n","import { Observable } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { valueChangeFn, ValueChangFnOptions } from './value-change';\nimport { rawConfig } from './raw-config';\nexport interface HideWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n disabled?: boolean;\n\n listen: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n ) => Observable<boolean>;\n}\n\nexport function hideWhen<TInput>(options: HideWhenOption) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n options\n .listen((options) => valueChangeFn(field, options), field)\n .subscribe((hidden) => {\n field.renderConfig.update((value) =>\n !!value.hidden !== hidden\n ? { ...value, hidden: hidden }\n : value,\n );\n if (options.disabled !== undefined && field.formConfig) {\n field.formConfig.update((value) => {\n value = { ...value };\n value.disabled = hidden ? options.disabled! : false;\n return value;\n });\n }\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n\n return field;\n });\n}\n","import { Observable } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { valueChangeFn, ValueChangFnOptions } from './value-change';\nimport { rawConfig } from './raw-config';\nexport interface DisableWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n listen: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n ) => Observable<boolean>;\n}\n\nexport function disableWhen<TInput>(options: DisableWhenOption) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n options\n .listen((options) => valueChangeFn(field, options), field)\n .subscribe((disabled) => {\n if (field.formConfig().disabled !== disabled) {\n field.formConfig.update((value) => ({\n ...value,\n disabled: disabled,\n }));\n }\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n\n return field;\n });\n}\n","import type { BaseMetadata } from 'valibot';\n\nexport interface NonFieldControlAction<\n TInput = unknown,\n> extends BaseMetadata<TInput> {\n readonly type: 'nonFieldControl';\n readonly reference: typeof nonFieldControl;\n readonly value: boolean;\n}\n\nexport function nonFieldControl<TInput>(\n value = true,\n): NonFieldControlAction<TInput> {\n return {\n kind: 'metadata',\n type: 'nonFieldControl',\n reference: nonFieldControl,\n value: value,\n };\n}\n","import { Signal, WritableSignal } from '@angular/core';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { Observable } from 'rxjs';\nimport { RawConfigAction } from '@piying/valibot-visit';\nimport { mergeHooksFn } from './hook';\nimport { AsyncObjectSignal } from '../../util/create-async-object-signal';\nimport { rawConfig } from './raw-config';\n\nimport { asyncMergeOutputs, mergeOutputs } from './output';\n\ntype AsyncResult = Promise<any> | Observable<any> | Signal<any> | (any & {});\ntype AsyncProperty = (field: _PiResolvedCommonViewFieldConfig) => AsyncResult;\ntype ChangeKey = 'inputs' | 'outputs' | 'attributes' | 'events' | 'props';\nexport const CustomDataSymbol = Symbol();\n\nexport const createRemovePropertyFn =\n (key: ChangeKey) =>\n <T>(list: string[]) =>\n rawConfig<T>((rawField, _, ...args) =>\n mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1] as any)[CustomDataSymbol](\n rawField,\n );\n } else {\n data$ = (() => field) as any;\n }\n const obj$ = data$()[key] as AsyncObjectSignal<any>;\n\n list.forEach((key) => {\n obj$.disconnect(key);\n obj$.update((object) => {\n object = { ...object };\n delete object[key];\n return object;\n });\n });\n },\n },\n { position: 'bottom' },\n rawField,\n ),\n );\nexport function createPatchAsyncPropertyFn<\n InputData extends Record<string, AsyncProperty> = Record<\n string,\n AsyncProperty\n >,\n>(key: 'inputs' | 'attributes' | 'events' | 'props' | 'outputs') {\n return <T>(dataObj: InputData) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$ = {\n update: (fn: (a: any) => any) => {\n const value = fn(data$[key]);\n data$[key] = value;\n },\n set: (value: any) => {\n data$[key] = value;\n },\n };\n const inputList = Object.keys(dataObj);\n // 设置初始值\n content$.update((content) => ({\n ...content,\n ...inputList.reduce((obj, item) => {\n obj[item] = content?.[item] ?? undefined;\n return obj;\n }, {} as any),\n }));\n return mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(\n undefined,\n field,\n );\n } else {\n data$ = (() => field) as any;\n }\n const content$: AsyncObjectSignal<any> = data$()[key];\n Object.entries(dataObj).forEach(([key, value]) => {\n const result = value(field);\n content$.connect(key, result);\n });\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\n\nexport function createSetOrPatchPropertyFn<\n InputData extends Record<string, any> = Record<string, any>,\n>(key: ChangeKey, isPatch?: boolean) {\n return <T>(value: InputData) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$ = {\n update: (fn: (a: any) => any) => {\n const value = fn(data$[key]);\n data$[key] = value;\n },\n set: (value: any) => {\n data$[key] = value;\n },\n };\n if (isPatch) {\n content$.update((data) => ({\n ...data,\n ...value,\n }));\n } else {\n content$.set(value);\n }\n });\n}\n\nexport function createMapAsyncPropertyFn(key: ChangeKey) {\n return <T>(\n fn: (field: _PiResolvedCommonViewFieldConfig) => (value: any) => any,\n ) =>\n rawConfig<T>((rawField, _, ...args) =>\n mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(\n undefined,\n field,\n );\n } else {\n data$ = (() => field) as any;\n }\n\n const content$ = data$()[key] as AsyncObjectSignal<any>;\n content$.map(fn(field));\n },\n },\n { position: 'bottom' },\n rawField,\n ),\n );\n}\n\nexport type ConfigAction<T> = RawConfigAction<'viewRawConfig', T, any>;\n\nexport const __actions = {\n inputs: {\n patch: createSetOrPatchPropertyFn('inputs', true),\n set: createSetOrPatchPropertyFn('inputs'),\n patchAsync: createPatchAsyncPropertyFn('inputs'),\n remove: createRemovePropertyFn('inputs'),\n mapAsync: createMapAsyncPropertyFn('inputs'),\n },\n outputs: {\n patch: createSetOrPatchPropertyFn<Record<string, (...args: any[]) => any>>(\n 'outputs',\n true,\n ),\n set: createSetOrPatchPropertyFn<Record<string, (...args: any[]) => any>>(\n 'outputs',\n ),\n patchAsync:\n createPatchAsyncPropertyFn<\n Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (...args: any[]) => any\n >\n >('outputs'),\n remove: createRemovePropertyFn('outputs'),\n merge: mergeOutputs,\n mergeAsync: asyncMergeOutputs,\n mapAsync: createMapAsyncPropertyFn('outputs'),\n },\n attributes: {\n patch: createSetOrPatchPropertyFn('attributes', true),\n set: createSetOrPatchPropertyFn('attributes'),\n patchAsync: createPatchAsyncPropertyFn('attributes'),\n remove: createRemovePropertyFn('attributes'),\n mapAsync: createMapAsyncPropertyFn('attributes'),\n },\n events: {\n patch: createSetOrPatchPropertyFn<Record<string, (event: Event) => any>>(\n 'events',\n true,\n ),\n set: createSetOrPatchPropertyFn<Record<string, (event: Event) => any>>(\n 'events',\n ),\n patchAsync:\n createPatchAsyncPropertyFn<\n Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (event: Event) => any\n >\n >('events'),\n remove: createRemovePropertyFn('events'),\n mapAsync: createMapAsyncPropertyFn('events'),\n },\n props: {\n patch: createSetOrPatchPropertyFn('props', true),\n set: createSetOrPatchPropertyFn('props'),\n patchAsync: createPatchAsyncPropertyFn('props'),\n remove: createRemovePropertyFn('props'),\n mapAsync: createMapAsyncPropertyFn('props'),\n },\n};\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreWrapperConfig,\n PI_VIEW_CONFIG_TOKEN,\n} from '../../builder-base';\nimport {\n ObservableSignal,\n observableSignal,\n SetOptional,\n SetUnWrapper$,\n} from '../../util';\nimport { mergeHooksFn } from './hook';\nimport { Signal } from '@angular/core';\nimport { FindConfigToken } from '../../builder-base/find-config';\nimport { map, pipe } from 'rxjs';\nimport { ConfigAction, CustomDataSymbol } from './input-common';\nimport {\n AsyncObjectSignal,\n asyncObjectSignal,\n} from '../../util/create-async-object-signal';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nfunction createSetOrPatchWrappersFn(isPatch?: boolean) {\n return <T>(\n wrappers: (\n | SetOptional<\n SetUnWrapper$<\n CoreWrapperConfig,\n 'inputs' | 'outputs' | 'attributes' | 'events'\n >,\n 'inputs' | 'outputs' | 'attributes' | 'events'\n >\n | string\n )[],\n ) =>\n rawConfig<T>((rawField, _) => {\n const wrapperConfig =\n rawField.globalConfig.additionalData!['defaultWrapperMetadataGroup'];\n if (!isPatch) {\n rawField.wrappers = [];\n }\n wrappers.forEach((wrapperItem) => {\n if (typeof wrapperItem === 'string') {\n const defaultActions: any[] =\n wrapperConfig[wrapperItem]?.actions ?? [];\n const define = {\n type: wrapperItem,\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n rawField.wrappers.push(define);\n defaultActions.forEach((item) => {\n item.value(rawField, _, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return define;\n } else {\n return field.wrappers\n .items()\n .find(\n (item) =>\n (\n item as ObservableSignal<\n CoreWrapperConfig,\n CoreWrapperConfig\n >\n ).input().type === wrapperItem,\n );\n }\n },\n });\n });\n } else {\n rawField.wrappers.push({\n type: wrapperItem.type,\n inputs: wrapperItem.inputs ?? {},\n outputs: wrapperItem.outputs ?? {},\n attributes: wrapperItem.attributes ?? {},\n events: wrapperItem.events ?? {},\n });\n }\n });\n });\n}\n\nfunction removeWrappers<T>(\n removeList:\n | string[]\n | ((list: Signal<CoreWrapperConfig>[]) => Signal<CoreWrapperConfig>[]),\n) {\n return rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n let list;\n if (typeof removeList === 'function') {\n list = removeList(field.wrappers.items());\n } else {\n list = field.wrappers.items().filter((item) => {\n const type = (item as ObservableSignal<any, any>).input().type;\n return removeList.every((name) => name !== type);\n });\n }\n field.wrappers.update(() => list);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\n\nfunction setSubInitValue<Key extends string>(\n key: Key,\n fn: () => Record<Key, AsyncObjectSignal<any>>,\n initObj: any,\n) {\n if (!Object.keys(initObj[key]).length) {\n return;\n }\n fn()[key].set(initObj[key]);\n}\nfunction patchAsyncWrapper<T>(\n type: any,\n actions?: ConfigAction<any>[],\n options?: { insertIndex?: number },\n) {\n return rawConfig<T>((rawFiled) => {\n // 在这里增加要处理的wrapper类型\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const findConfig = field.injector.get(FindConfigToken);\n const initData = observableSignal<\n CoreWrapperConfig,\n CoreWrapperConfig\n >(\n {\n type,\n attributes: asyncObjectSignal({}),\n events: asyncObjectSignal({}),\n inputs: asyncObjectSignal({}),\n outputs: asyncObjectSignal({}),\n } as CoreWrapperConfig,\n {\n pipe: pipe(\n map((item) => {\n const defaultWrapperConfig = findConfig.findWrapperComponent(\n item.type,\n );\n return { ...item, type: defaultWrapperConfig };\n }),\n ),\n injector: field.injector,\n },\n );\n field.wrappers.add(initData, options?.insertIndex);\n\n const defaultConfig = field.injector.get(PI_VIEW_CONFIG_TOKEN);\n let defaultActions: ConfigAction<any>[] = [];\n if (typeof type === 'string') {\n defaultActions = defaultConfig.wrappers?.[type]?.actions ?? [];\n }\n const allActions = [...defaultActions, ...(actions ?? [])];\n\n for (const item of allActions) {\n const tempField: Partial<AnyCoreSchemaHandle> = {\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return tempField;\n }\n return initData;\n },\n });\n setSubInitValue('inputs', initData, tempField);\n setSubInitValue('outputs', initData, tempField);\n setSubInitValue('attributes', initData, tempField);\n setSubInitValue('events', initData, tempField);\n\n (tempField as any).hooks?.allFieldsResolved?.(field);\n }\n },\n },\n { position: 'bottom' },\n rawFiled,\n );\n });\n}\n\nfunction changeAsyncWrapper<T>(\n indexFn: (list: Signal<CoreWrapperConfig>[]) => any,\n actions: ConfigAction<any>[],\n) {\n return rawConfig<T>((rawFiled) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const initData: () => CoreWrapperConfig = indexFn(\n field.wrappers\n .items()\n .map((item) => (item as ObservableSignal<any, any>).input),\n );\n\n if (!initData) {\n throw new Error(`change wrapper not found`);\n }\n for (const item of actions) {\n const tempField: Partial<AnyCoreSchemaHandle> = {\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return tempField;\n }\n return initData;\n },\n });\n setSubInitValue('inputs', initData, tempField);\n setSubInitValue('outputs', initData, tempField);\n setSubInitValue('attributes', initData, tempField);\n setSubInitValue('events', initData, tempField);\n (tempField as any).hooks?.allFieldsResolved?.(field);\n }\n },\n },\n { position: 'bottom' },\n rawFiled,\n );\n });\n}\nexport const wrappers = {\n set: createSetOrPatchWrappersFn(),\n patch: createSetOrPatchWrappersFn(true),\n patchAsync: patchAsyncWrapper,\n remove: removeWrappers,\n changeAsync: changeAsyncWrapper,\n};\n","import clsx from 'clsx';\nimport { ClassValue } from 'clsx';\nimport { rawConfig } from './raw-config';\nimport { mergeHooksFn } from './hook';\n\nimport { AsyncCallback } from './type/async-callback';\nimport { CustomDataSymbol, __actions as actions } from './input-common';\nimport { ViewAttributes } from '../../builder-base';\n/** 必须防止到所有wrappers操作后面,防止设置错误\n * 设置到顶层,可能是wrapper,也可能是component\n *\n */\nfunction topClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const wrappers = field.wrappers();\n if (wrappers?.length) {\n wrappers[0].attributes.update((attributes) => ({\n ...attributes,\n class: merge\n ? clsx(attributes?.['class'], className)\n : clsx(className),\n }));\n } else {\n field.attributes.update((attributes) => ({\n ...attributes,\n class: merge\n ? clsx(attributes?.['class'], className)\n : clsx(className),\n }));\n }\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\n/** 仅设置在组件上 */\nconst componentClass = <T>(className: ClassValue, merge?: boolean) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$: ViewAttributes = data$['attributes'];\n content$['class'] = merge\n ? clsx(content$['class'], className)\n : clsx(className);\n });\n\nconst bottomClass = componentClass;\nfunction patchAsyncClass<T>(fn: AsyncCallback<string>) {\n return actions.attributes.patchAsync<T>({ class: fn });\n}\n\nfunction asyncTopClass<T>(classNameFn: AsyncCallback<ClassValue>) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const wrappers = field.wrappers();\n if (wrappers?.length) {\n wrappers[0].attributes.connect('class', classNameFn(field));\n } else {\n field.attributes.connect('class', classNameFn(field));\n }\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\nexport const classAction = {\n top: topClass,\n bottom: bottomClass,\n component: componentClass,\n asyncTop: asyncTopClass,\n asyncBottom: patchAsyncClass,\n asyncComponent: patchAsyncClass,\n};\n","import { InjectorProvider } from '../handle/core.schema-handle';\nimport { rawConfig } from './raw-config';\n\nexport function setProviders<T>(providers: InjectorProvider[]) {\n return rawConfig<T>((field) => {\n field.providers = providers;\n });\n}\nexport function patchProviders<T>(providers: InjectorProvider[]) {\n return rawConfig<T>((field) => {\n field.providers ??= [];\n field.providers.push(providers);\n });\n}\nexport function changeProviders<T>(\n providersFn: (input: InjectorProvider[]) => InjectorProvider[],\n) {\n return rawConfig<T>((field) => {\n const result = providersFn(field.providers ?? []);\n field.providers = result;\n });\n}\n","export * from './layout';\nexport { asControl, condition, asVirtualGroup } from '@piying/valibot-visit';\nexport type { RawConfig } from '@piying/valibot-visit';\nexport { rawConfig } from './raw-config';\nexport * from './component';\nexport * from './output';\nexport * from './alias';\nexport * from './config';\nexport * from './hook';\nexport * from './hide-when';\nexport * from './value-change';\nexport * from './disable-when';\nexport * from './non-field-control';\nimport { wrappers } from './wrapper';\nexport { wrappers as ɵwrappers } from './wrapper';\nexport { CustomDataSymbol } from './input-common';\nexport type { ConfigAction } from './input-common';\nimport { classAction } from './class';\nexport { classAction as ɵclassAction } from './class';\nimport { __actions } from './input-common';\nimport { mergeHooks, patchHooks, removeHooks, setHooks } from './hook';\nimport { changeProviders, patchProviders, setProviders } from './provider';\nexport {\n changeProviders as ɵchangeProviders,\n patchProviders as ɵpatchProviders,\n setProviders as ɵsetProviders,\n};\nexport * from './type/async-callback';\nexport const actions = {\n ...__actions,\n class: classAction,\n wrappers,\n hooks: {\n merge: mergeHooks,\n remove: removeHooks,\n set: setHooks,\n patch: patchHooks,\n },\n providers: {\n set: setProviders,\n patch: patchProviders,\n change: changeProviders,\n },\n};\n","import {\n ArraySchema,\n BaseSchema,\n BaseIssue,\n ErrorMessage,\n ArrayIssue,\n} from 'valibot';\n\nimport * as v from 'valibot';\n\nimport {\n BaseSchemaHandle,\n convertSchema,\n DefaultSchema,\n EnumSchema,\n IntersectSchema,\n LazySchema,\n MetadataAction,\n ObjectSchema,\n Schema,\n SchemaOrPipe,\n TupleSchema,\n UnionSchema,\n VoidSchema,\n} from '@piying/valibot-visit';\nimport {\n FieldRenderConfig,\n ViewOutputs,\n ViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n ViewAttributes,\n ViewProps,\n ViewEvents,\n RawCoreWrapperConfig,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { KeyPath } from '../../util';\nimport { NonFieldControlAction } from '../action/non-field-control';\nimport { Provider, StaticProvider } from '@angular/core';\nimport { pick } from 'es-toolkit';\nexport type InjectorProvider = Provider | StaticProvider;\nconst AnyDefine = v.any();\nfunction AnyDefault(\n input: v.BaseSchema<any, any, any>,\n schemahandle: CoreSchemaHandle<any, any>,\n) {\n return schemahandle.undefinedable\n ? v.optional(input)\n : schemahandle.nullable\n ? v.nullable(input)\n : input;\n}\nconst checkOverride = {\n logicGroup: (schemahandle: CoreSchemaHandle<any, any>) =>\n v.pipe(AnyDefault(AnyDefine, schemahandle)),\n array: (schemahandle: CoreSchemaHandle<any, any>) => {\n const source = schemahandle.coreSchema as v.TupleSchema<any[], any>;\n\n const length =\n source &&\n schemahandle.formConfig.groupMode &&\n schemahandle.formConfig.groupMode !== 'reset'\n ? source.items.length\n : undefined;\n\n return v.pipe(\n AnyDefault(\n v.pipe(\n AnyDefine,\n v.check((value: any[]) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (schemahandle.formConfig.groupMode === 'strict') {\n return value.length === length;\n }\n return true;\n }),\n v.transform((value) => {\n if (\n schemahandle.formConfig.groupMode === 'default' &&\n value.length !== length\n ) {\n return value.slice(0, length);\n }\n return value;\n }),\n ),\n schemahandle,\n ),\n );\n },\n group: (schemahandle: CoreSchemaHandle<any, any>) => {\n const source = schemahandle.coreSchema as v.ObjectSchema<any, any>;\n\n const keys =\n source &&\n schemahandle.formConfig.groupMode &&\n schemahandle.formConfig.groupMode !== 'reset'\n ? (Object.keys(source.entries) as unknown as string[])\n : undefined;\n\n return v.pipe(\n AnyDefault(\n v.pipe(\n AnyDefine,\n v.check((value) => {\n if (typeof value !== 'object') {\n return false;\n }\n if (schemahandle.formConfig.groupMode === 'strict') {\n return Object.keys(value).every((key) => key in source.entries);\n }\n return true;\n }),\n v.transform((a) => {\n if (schemahandle.formConfig.groupMode === 'default') {\n return pick(a, keys!);\n }\n return a;\n }),\n ),\n schemahandle,\n ),\n );\n },\n};\nexport class CoreSchemaHandle<\n Self extends CoreSchemaHandle<any, any>,\n RESOLVED_FN extends () => any,\n> extends BaseSchemaHandle<Self> {\n inputs: ViewInputs = {};\n outputs: ViewOutputs = {};\n attributes: ViewAttributes = {};\n events: ViewEvents = {};\n wrappers: RawCoreWrapperConfig[] = [];\n override props: ViewProps = {};\n alias?: string;\n movePath?: KeyPath;\n renderConfig?: FieldRenderConfig;\n /** todo 非表单应该可选 */\n formConfig: FieldFormConfig = {};\n id?: string;\n isLogicAnd = false;\n isLogicOr = false;\n isArray = false;\n isTuple = false;\n nonFieldControl = false;\n hooks?: HookConfig<ReturnType<RESOLVED_FN>>;\n providers?: InjectorProvider[];\n checkSchema?: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>;\n checkActions: (\n | v.BaseValidation<any, any, any>\n | v.BaseTransformation<any, any, any>\n )[] = [];\n override lazySchema(schema: LazySchema): void {\n super.lazySchema(schema);\n if (this.parent) {\n const wrappered = this.lazyWrapped as any as Self;\n if (this.parent.isArray) {\n this.parent.arrayChild = wrappered;\n } else {\n const index = this.parent.children.findIndex((item) => item === this);\n this.parent.children[index] = wrappered;\n }\n wrappered!.parent = this.parent;\n wrappered!.key = this.key;\n }\n }\n override arraySchema(\n schema: ArraySchema<\n BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n ErrorMessage<ArrayIssue> | undefined\n >,\n ): void {\n if (this.isObjectControl) {\n // 不需要设置默认值,因为item属于模板\n return;\n } else {\n this.isArray = true;\n const sh = new this.globalConfig.handle(\n this.globalConfig,\n this,\n schema.item,\n );\n sh.parent = this;\n this.arrayChild = sh;\n convertSchema(schema.item as SchemaOrPipe, sh);\n this.formConfig.groupMode = 'reset';\n this.formConfig.groupValueSchema = schema.item;\n }\n }\n\n override defaultSchema(schema: DefaultSchema): void {\n this.defaultValue = schema.literal;\n }\n override tupleDefault(schema: TupleSchema): void {\n super.tupleDefault(schema);\n this.isTuple = true;\n if (schema.type === 'tuple') {\n this.formConfig.groupMode = 'default';\n } else if (schema.type === 'loose_tuple') {\n this.formConfig.groupMode = 'loose';\n } else if (schema.type === 'strict_tuple') {\n this.formConfig.groupMode = 'strict';\n }\n }\n override objectDefault(schema: ObjectSchema): void {\n super.objectDefault(schema);\n if (schema.type === 'object') {\n this.formConfig.groupMode = 'default';\n } else if (schema.type === 'loose_object') {\n this.formConfig.groupMode = 'loose';\n } else if (schema.type === 'strict_object') {\n this.formConfig.groupMode = 'strict';\n }\n }\n override recordSchema(\n key: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n value: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n ): void {\n super.recordSchema(key, value);\n this.isGroup = true;\n // equal {[name:string]:v.InferOutput< typeof value>}\n this.formConfig.groupKeySchema = key;\n this.formConfig.groupValueSchema = value;\n this.restSchema(value);\n }\n override restSchema(\n schema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n ): void {\n super.restSchema(schema);\n const sh = new this.globalConfig.handle(this.globalConfig, this, schema);\n sh.parent = this;\n this.arrayChild = sh;\n convertSchema(schema as SchemaOrPipe, sh);\n this.formConfig.groupMode = 'reset';\n }\n override enumSchema(schema: EnumSchema): void {\n this.props['options'] = this.props['options'] ?? schema.options;\n }\n override updateProps(key: string, value: any): void {\n this.props[key] = value;\n }\n override intersectBefore(schema: IntersectSchema): void {\n if (this.childrenAsVirtualGroup) {\n } else {\n this.isLogicAnd = true;\n }\n }\n override logicItemSchema(\n schema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n index: number,\n type: 'intersect' | 'union',\n ): void {\n const sh = new this.globalConfig.handle(\n this.globalConfig,\n this as unknown as AnyCoreSchemaHandle,\n schema,\n );\n if (this.childrenAsVirtualGroup) {\n } else {\n sh.key = index;\n }\n sh.setParent(this);\n convertSchema(schema as SchemaOrPipe, sh);\n }\n override unionBefore(schema: UnionSchema): void {\n if (this.childrenAsVirtualGroup) {\n // 这个参数并不应该出现到这里,因为是专门为intersect设计\n } else {\n this.isLogicOr = true;\n }\n }\n\n override beforeSchemaType(schema: Schema): void {\n super.beforeSchemaType(schema);\n this.formConfig.required = !this.undefinedable && !this.nullable;\n this.formConfig.undefinedable = this.undefinedable;\n this.formConfig.nullable = this.nullable;\n }\n override voidSchema(schema: VoidSchema): void {\n this.nonFieldControl = true;\n }\n\n override metadataDefaulthandle(\n metadata: MetadataAction,\n environments: string[],\n ): void {\n switch (metadata.type as any) {\n case 'viewRawConfig': {\n (metadata as any).value(this as any, this.globalConfig.context);\n break;\n }\n case 'layout': {\n this.movePath = (metadata as any).value.keyPath;\n this.priority = (metadata as any).value.priority;\n break;\n }\n case 'nonFieldControl': {\n this.nonFieldControl = (metadata as any as NonFieldControlAction).value;\n break;\n }\n\n default:\n break;\n }\n }\n override validation(\n item: v.BaseValidation<any, any, v.BaseIssue<unknown>>,\n ): void {\n super.validation(item);\n this.checkActions.push(item);\n }\n override transformation(\n item: v.BaseTransformation<any, any, v.BaseIssue<unknown>>,\n ): void {\n super.transformation(item);\n this.checkActions.push(item);\n }\n override end(schema: SchemaOrPipe): void {\n super.end(schema);\n this.formConfig.defaultValue =\n this.defaultValue ?? (this.nullable ? null : undefined);\n if (this.isGroup) {\n this.checkSchema = v.pipe(\n checkOverride.group(this),\n ...this.checkActions,\n );\n } else if (this.isTuple || this.isArray) {\n this.checkSchema = v.pipe(\n checkOverride.array(this),\n ...this.checkActions,\n );\n } else if (this.isLogicAnd || this.isLogicOr) {\n this.checkSchema = v.pipe(\n checkOverride.logicGroup(this),\n ...this.checkActions,\n );\n }\n }\n coreSchema!: v.BaseSchema<any, any, any>;\n override defineSchema(schema: SchemaOrPipe): void {\n super.defineSchema(schema);\n this.coreSchema = schema;\n }\n}\nexport type AnyCoreSchemaHandle = CoreSchemaHandle<\n any,\n () => _PiResolvedCommonViewFieldConfig\n>;\n","import {\n AnyCoreSchemaHandle,\n CoreSchemaHandle,\n} from './handle/core.schema-handle';\n\nimport {\n convertCore,\n ConvertOptions,\n SchemaOrPipe,\n} from '@piying/valibot-visit';\nimport {\n computed,\n DestroyableInjector,\n DestroyRef,\n Injector,\n signal,\n} from '@angular/core';\nimport {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_VIEW_CONFIG_TOKEN,\n PiCommonConfig,\n PiResolvedCommonViewFieldConfig,\n FormBuilder,\n FormBuilderOptions,\n PI_CONTEXT_TOKEN,\n} from '../builder-base';\nimport { FieldGroup } from '../field/field-group';\nimport { SetOptional } from '../util';\nimport {\n FindConfigFactory,\n FindConfigToken,\n} from '../builder-base/find-config';\nimport { BaseMetadata } from 'valibot';\nexport function convert<\n RESULT extends Omit<PiResolvedCommonViewFieldConfig<any, any>, 'define'>,\n>(\n obj: SchemaOrPipe,\n options: SetOptional<\n ConvertOptions<typeof CoreSchemaHandle<any, any>>,\n 'handle'\n > & {\n injector: DestroyableInjector;\n builder: typeof FormBuilder<CoreSchemaHandle<any, any>>;\n fieldGlobalConfig?: PiCommonConfig;\n },\n) {\n const buildOptions: FormBuilderOptions<RESULT> = {\n form$$: computed<FieldGroup>(\n () => buildOptions.resolvedField$()?.form.control as any,\n ),\n resolvedField$: signal(undefined as any),\n context: options.context,\n };\n const injector = Injector.create({\n providers: [\n {\n provide: PI_FORM_BUILDER_OPTIONS_TOKEN,\n useValue: buildOptions,\n },\n {\n provide: PI_VIEW_CONFIG_TOKEN,\n useValue: options.fieldGlobalConfig,\n },\n {\n provide: PI_CONTEXT_TOKEN,\n useValue: options.context,\n },\n { provide: FindConfigToken, useFactory: FindConfigFactory },\n options.builder,\n ],\n parent: options.injector,\n });\n options.injector.get(DestroyRef).onDestroy(() => {\n injector.destroy();\n });\n return convertCore(\n obj,\n (item: AnyCoreSchemaHandle) => {\n // todo\n injector.get(options.builder).buildRoot({\n field: item,\n resolvedField$: buildOptions.resolvedField$,\n });\n return buildOptions.resolvedField$();\n },\n {\n ...options,\n handle: options?.handle ?? (CoreSchemaHandle as any),\n additionalData: {\n defaultWrapperMetadataGroup: options.fieldGlobalConfig?.wrappers,\n injector,\n },\n defaultMetadataActionsGroup: Object.keys(\n options.fieldGlobalConfig?.types ?? {},\n ).reduce(\n (obj, item) => {\n const { actions } = options.fieldGlobalConfig!.types![item];\n if (actions) {\n obj[item] = actions;\n }\n return obj;\n },\n {} as Record<string, BaseMetadata<any>[]>,\n ),\n },\n );\n}\n","import * as v from 'valibot';\n/** NonFieldControl */\nexport const NFCSchema = v.optional(v.void());\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DefaultOptions","actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"piying-view-angular-core.mjs","sources":["../../../projects/view-angular-core/convert/util/is-promise.ts","../../../projects/view-angular-core/util/async-validator-convert.ts","../../../projects/view-angular-core/builder-base/type/token.ts","../../../projects/view-angular-core/util/clone.ts","../../../projects/view-angular-core/util/effect-listen.ts","../../../projects/view-angular-core/util/to_observable.ts","../../../projects/view-angular-core/util/computed-with-prev.ts","../../../projects/view-angular-core/field/abstract_model.ts","../../../projects/view-angular-core/field/type.ts","../../../projects/view-angular-core/field/field-group-base.ts","../../../projects/view-angular-core/field/field-group.ts","../../../projects/view-angular-core/field/field-control.ts","../../../projects/view-angular-core/field/field-array.ts","../../../projects/view-angular-core/field/field-logic-group.ts","../../../projects/view-angular-core/field/is-field.ts","../../../projects/view-angular-core/builder-base/util/is-group.ts","../../../projects/view-angular-core/builder-base/create-field.ts","../../../projects/view-angular-core/builder-base/class/parent-map.ts","../../../projects/view-angular-core/util/array-startswith.ts","../../../projects/view-angular-core/util/to-array.ts","../../../projects/view-angular-core/util/sorted-array.ts","../../../projects/view-angular-core/util/lazy-import.ts","../../../projects/view-angular-core/util/create-view-control-link.ts","../../../projects/view-angular-core/util/control-status-to-class.ts","../../../projects/view-angular-core/util/init-listen.ts","../../../projects/view-angular-core/util/get-error.ts","../../../projects/view-angular-core/util/create-observable-signal.ts","../../../projects/view-angular-core/util/create-async-object-signal.ts","../../../projects/view-angular-core/util/create-combine-signal.ts","../../../projects/view-angular-core/builder-base/util/group-flat.ts","../../../projects/view-angular-core/builder-base/field-query.ts","../../../projects/view-angular-core/builder-base/find-config.ts","../../../projects/view-angular-core/builder-base/builder.base.ts","../../../projects/view-angular-core/builder-base/util/find-error.ts","../../../projects/view-angular-core/convert/action/layout.ts","../../../projects/view-angular-core/convert/action/raw-config.ts","../../../projects/view-angular-core/convert/action/component.ts","../../../projects/view-angular-core/convert/action/hook.ts","../../../projects/view-angular-core/convert/action/output.ts","../../../projects/view-angular-core/convert/action/alias.ts","../../../projects/view-angular-core/convert/action/config.ts","../../../projects/view-angular-core/convert/action/value-change.ts","../../../projects/view-angular-core/convert/action/hide-when.ts","../../../projects/view-angular-core/convert/action/disable-when.ts","../../../projects/view-angular-core/convert/action/non-field-control.ts","../../../projects/view-angular-core/convert/action/input-common.ts","../../../projects/view-angular-core/convert/action/wrapper.ts","../../../projects/view-angular-core/convert/action/class.ts","../../../projects/view-angular-core/convert/action/provider.ts","../../../projects/view-angular-core/convert/action/index.ts","../../../projects/view-angular-core/convert/handle/core.schema-handle.ts","../../../projects/view-angular-core/convert/form-convert.ts","../../../projects/view-angular-core/convert/schema/no-control.schema.ts","../../../projects/view-angular-core/piying-view-angular-core.ts"],"sourcesContent":["import { Subscribable } from 'rxjs';\n\nexport function isPromise<T = any>(obj: any): obj is Promise<T> {\n return !!obj && typeof obj.then === 'function';\n}\nexport function isSubscribable<T>(obj: any): obj is Subscribable<T> {\n return !!obj && typeof obj.subscribe === 'function';\n}\n","import { computed, signal } from '@angular/core';\nimport { isObservable, Observable } from 'rxjs';\nimport { isPromise } from '../convert/util/is-promise';\nexport const ValidatorPending = Symbol('PENDING');\nexport type AsyncValidatorEvent =\n | {\n value: any;\n }\n | {\n error: Error;\n }\n | typeof ValidatorPending;\nfunction promiseToSignal<T>(input: Promise<T>) {\n const value$ = signal<AsyncValidatorEvent>(ValidatorPending);\n input.then((value) => {\n value$.set({ value });\n });\n return value$;\n}\nfunction observableToSignal<T>(input: Observable<T>) {\n const value$ = signal<AsyncValidatorEvent>(ValidatorPending);\n input.subscribe({\n next: (value) => {\n value$.set({ value });\n },\n error: (error) => {\n value$.set({ error });\n },\n });\n return value$;\n}\n\nexport function asyncValidatorToSignal(input: any) {\n if (isPromise(input)) {\n return promiseToSignal(input);\n } else if (isObservable(input)) {\n return observableToSignal(input);\n } else {\n return computed(() => ({ value: input() }));\n }\n}\n","import { InjectionToken, Signal } from '@angular/core';\nimport type {\n PiResolvedCommonViewFieldConfig,\n FormBuilderOptions,\n _PiResolvedCommonViewFieldConfig,\n} from './common-field-config';\nimport type { PiCommonConfig } from './default-config';\n/** 一些默认配置 */\nexport const PI_VIEW_CONFIG_TOKEN = new InjectionToken<PiCommonConfig>(\n 'PI_VIEW_CONFIG',\n);\n/**\n * @internal\n * 内部传参用\n */\nexport const PI_FORM_BUILDER_OPTIONS_TOKEN = new InjectionToken<\n FormBuilderOptions<any>\n>('PI_FORM_BUILDER_OPTIONS');\n/**\n * @internal\n * 内部传参用\n */\nexport const PI_FORM_BUILDER_ALIAS_MAP = new InjectionToken<\n Map<string, PiResolvedCommonViewFieldConfig<any, any>>\n>('PI_FORM_BUILDER_ALIAS_MAP');\n/** 上下文注入 */\nexport const PI_CONTEXT_TOKEN = new InjectionToken<any>('PI_CONTEXT');\n\nexport const PI_VIEW_FIELD_TOKEN = new InjectionToken<\n Signal<_PiResolvedCommonViewFieldConfig>\n>('PI_VIEW_FIELD_TOKEN');\n","import rfdc from 'rfdc';\nexport const clone = rfdc({ proto: false, circles: false });\n","import { CreateEffectOptions, effect, EffectRef } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\n/** 跳过第一个值,假如发射时和初始值不同 */\nexport function effectListen(\n listen: () => any,\n fn: () => void,\n options?: CreateEffectOptions,\n): EffectRef {\n let first = true;\n const oldValue = listen();\n return effect(() => {\n const currentValue = listen();\n if (first) {\n first = false;\n if (!deepEqual(oldValue, currentValue)) {\n fn();\n }\n return;\n }\n return fn();\n }, options);\n}\n","import { Injector, Signal, inject, untracked, DestroyRef } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { effectListen } from './effect-listen';\n\n/**\n * Options for `toObservable`.\n *\n * @publicApi 20.0\n */\nexport interface ToObservableOptions {\n /**\n * The `Injector` to use when creating the underlying `effect` which watches the signal.\n *\n * If this isn't specified, the current [injection context](guide/di/dependency-injection-context)\n * will be used.\n */\n injector?: Injector;\n}\n\n/**\n * Exposes the value of an Angular `Signal` as an RxJS `Observable`.\n *\n * The signal's value will be propagated into the `Observable`'s subscribers using an `effect`.\n *\n * `toObservable` must be called in an injection context unless an injector is provided via options.\n *\n * @publicApi 20.0\n */\nexport function toObservable<T>(\n listen: Signal<any>,\n source: Signal<T>,\n options?: ToObservableOptions,\n): Observable<T> {\n const injector = options?.injector ?? inject(Injector);\n const subject = new BehaviorSubject<T>(source());\n\n const watcher = effectListen(\n listen,\n () => {\n let value: T;\n try {\n value = source();\n } catch (err) {\n untracked(() => subject.error(err));\n return;\n }\n untracked(() => subject.next(value));\n },\n { injector, manualCleanup: true },\n );\n\n injector.get(DestroyRef).onDestroy(() => {\n watcher.destroy();\n subject.complete();\n });\n\n return subject.asObservable();\n}\n","import { computed, CreateComputedOptions, Signal } from '@angular/core';\n\nexport function computedWithPrev<T>(\n computation: (prev: T | undefined) => T,\n options?: CreateComputedOptions<T>,\n): Signal<T> {\n let previous: T | undefined;\n return computed(() => {\n const newValue = computation(previous);\n previous = newValue;\n return newValue;\n }, options);\n}\n","import {\n signal,\n untracked,\n computed,\n Signal,\n Injector,\n linkedSignal,\n} from '@angular/core';\n\nimport { FieldFormConfig$ } from './type';\nimport { SchemaOrPipe } from '@piying/valibot-visit';\nimport * as v from 'valibot';\nimport { Observable } from 'rxjs';\nimport {\n asyncValidatorToSignal,\n ValidatorPending,\n} from '../util/async-validator-convert';\nimport { PI_CONTEXT_TOKEN } from '../builder-base/type/token';\nimport { clone } from '../util/clone';\nimport { toObservable } from '../util/to_observable';\nimport { deepEqual } from 'fast-equals';\nimport { computedWithPrev } from '../util/computed-with-prev';\nexport type ValidationErrorsLegacy = {\n [key: string]: any;\n};\n\nexport type ValidationValibotError2 = {\n kind: 'valibot';\n metadata: [v.BaseIssue<unknown>, ...v.BaseIssue<unknown>[]];\n};\nexport type ValidationErrorError2 = {\n kind: 'error';\n metadata: Error;\n};\nexport type ValidationDescendantError2 = {\n kind: 'descendant';\n key: string | number;\n field: AbstractControl;\n metadata: ValidationCommonError2[];\n};\nexport type ValidationCommonError2 = {\n kind: string;\n metadata?: any;\n message?: string;\n};\nexport type ValidationErrors2 =\n | ValidationValibotError2\n | ValidationErrorError2\n | ValidationDescendantError2\n | ValidationCommonError2;\nexport interface ValidatorFn {\n (\n control: AbstractControl,\n ): ValidationErrorsLegacy | ValidationErrors2[] | undefined;\n}\nexport interface AsyncValidatorFn {\n (\n control: AbstractControl,\n ):\n | Promise<ValidationErrorsLegacy | ValidationErrors2[] | undefined>\n | Observable<ValidationErrorsLegacy | ValidationErrors2[] | undefined>\n | Signal<ValidationErrorsLegacy | ValidationErrors2[] | undefined>;\n}\n\nfunction shortCircuitTrue(value: boolean): boolean {\n return value;\n}\n\nexport const VALID = 'VALID';\n\nexport const INVALID = 'INVALID';\n\nexport const PENDING = 'PENDING';\n\nexport type VALID_STATUS = typeof VALID | typeof INVALID | typeof PENDING;\nexport type FormHooks = 'change' | 'blur' | 'submit';\nexport type AbstractControlParams = ConstructorParameters<\n typeof AbstractControl<any>\n>;\nexport const InitPendingValue = {\n touched: false,\n change: false,\n value: undefined,\n};\nexport abstract class AbstractControl<TValue = any> {\n protected skipValuePath?: boolean;\n pendingStatus = signal(InitPendingValue);\n\n protected readonly emptyValue$$ = computed(() =>\n clone(this.config$().emptyValue),\n );\n /** 父级取值时,当前子级是否包含在内 */\n shouldInclude$$ = computed(\n () =>\n this.valueNoError$$() &&\n (!this.selfDisabled$$() ||\n (this.selfDisabled$$() && this.config$().disabledValue === 'reserve')),\n );\n readonly injector;\n originValue$$!: Signal<TValue | undefined>;\n /** model的value */\n value$$ = computedWithPrev<TValue>((value) => {\n const result = this.#schemaCheck$$();\n return result.success ? result.output : value;\n });\n\n /** 通用的子级,用于查询之类 */\n children$$?: Signal<\n | {\n [s: string]: AbstractControl;\n }\n | ArrayLike<AbstractControl>\n >;\n /** disabled */\n readonly selfDisabled$$ = computed(() => this.config$?.().disabled ?? false);\n /** `self` || `parent` */\n readonly disabled$$: Signal<boolean> = computed(\n () => (this.parent?.disabled$$() || this.selfDisabled$$()) ?? false,\n );\n readonly enabled$$ = computed(() => !this.disabled$$());\n get disabled(): boolean {\n return this.disabled$$();\n }\n get enabled(): boolean {\n return !this.disabled$$();\n }\n enable() {\n this.config$.update((config) => ({ ...config, disabled: false }));\n }\n disable() {\n this.config$.update((config) => ({ ...config, disabled: true }));\n }\n /** touched */\n readonly selfTouched$ = signal(false);\n\n readonly touched$$: Signal<boolean> = computed(() =>\n this.reduceChildren(\n this.selfTouched$(),\n (child, value) => value || child.touched$$(),\n shortCircuitTrue,\n ),\n );\n get touched(): boolean {\n return untracked(this.touched$$);\n }\n get untouched(): boolean {\n return !untracked(this.touched$$);\n }\n /** dirty */\n private readonly selfDirty$ = signal(false);\n\n readonly dirty$$: Signal<boolean> = computed(() =>\n this.reduceChildren(\n this.selfDirty$(),\n (child, value) => value || child.dirty$$(),\n shortCircuitTrue,\n ),\n );\n get dirty(): boolean {\n return untracked(this.dirty$$);\n }\n get pristine(): boolean {\n return !untracked(this.dirty$$);\n }\n /** validator */\n #validators$$ = computed(() => this.config$().validators ?? []);\n #asyncValidators$$ = computed(() => this.config$().asyncValidators ?? []);\n #undefinedable$$ = computed(() => this.config$().undefinedable);\n #nullable$$ = computed(() => this.config$().nullable);\n #isOptionalEmpty = computed(() => {\n if (this.required$$()) {\n return false;\n }\n return (\n (this.#undefinedable$$() && this.originValue$$() === undefined) ||\n (this.#nullable$$() && this.originValue$$() === null)\n );\n });\n protected resetIndex$ = signal(0);\n syncError$ = linkedSignal(\n computed(\n () => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n // 请求同级\n this.resetIndex$();\n if (!this.#isOptionalEmpty()) {\n const childrenResult = this.reduceChildren<ValidationErrors2[]>(\n [],\n (child, value, key) => {\n if (\n (!child.selfDisabled$$() ||\n (child.selfDisabled$$() &&\n child.config$().disabledValue === 'reserve')) &&\n child.errors\n ) {\n value.push({\n kind: 'descendant',\n key: key,\n metadata: child.errors,\n field: child,\n });\n }\n return value;\n },\n );\n if (childrenResult.length) {\n return childrenResult;\n }\n }\n const result = this.#validators$$().flatMap((item) => {\n const result = untracked(() => item(this));\n if (!result) {\n return [];\n }\n if (Array.isArray(result)) {\n return result as ValidationErrors2[];\n }\n return Object.entries(result as ValidationErrorsLegacy).map(\n ([key, value]) =>\n ({\n kind: key,\n metadata: value,\n }) as ValidationErrors2,\n );\n });\n const schemaResult = this.#schemaCheck$$();\n if (!schemaResult.success) {\n return result.concat([\n { kind: 'valibot', metadata: schemaResult.issues },\n ]);\n }\n return result.length ? result : undefined;\n },\n { equal: () => false },\n ),\n );\n asyncErrorRes$$ = computed(() => {\n const result = this.#asyncValidators$$();\n if (result.length === 0) {\n return undefined;\n }\n this.resetIndex$();\n this.originValue$$();\n const dataList = result.map((item) =>\n untracked(() => asyncValidatorToSignal(item(this))),\n );\n return computed(() => {\n const params = dataList.map((item) => item());\n let pendingCount = 0;\n const errorResult = params.flatMap((item) => {\n if (item === ValidatorPending) {\n pendingCount++;\n return [];\n } else if ('value' in item) {\n const result = item.value;\n if (!result) {\n return [];\n }\n if (Array.isArray(result)) {\n return result as ValidationErrors2[];\n }\n return Object.entries(result as ValidationErrorsLegacy).map(\n ([key, value]) =>\n ({\n kind: key,\n metadata: value,\n }) as ValidationErrors2,\n );\n } else {\n return { kind: 'error', metadata: item.error } as ValidationErrors2;\n }\n });\n if (!errorResult.length) {\n if (pendingCount) {\n return ValidatorPending;\n }\n return undefined;\n } else {\n return errorResult;\n }\n });\n });\n asyncError$$ = computed(() => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n const ref = this.asyncErrorRes$$();\n if (ref) {\n const result = ref();\n if (result === ValidatorPending) {\n return PENDING;\n } else {\n return result;\n }\n }\n return undefined;\n });\n rawError$$ = computed(() => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n const syncError = this.syncError$();\n const asyncError = this.asyncError$$();\n if (asyncError === PENDING) {\n return PENDING;\n }\n if (syncError && asyncError) {\n return [...syncError, ...asyncError];\n } else if (syncError || asyncError) {\n return syncError || asyncError;\n } else {\n return undefined;\n }\n });\n valueNoError$$ = computed(() => this.rawError$$() === undefined);\n get errors() {\n const error = this.rawError$$();\n return error === PENDING ? undefined : error;\n }\n /** parent */\n private _parent?: AbstractControl;\n get parent(): AbstractControl | undefined {\n return this._parent;\n }\n #getPath(\n parentPath: () => (string | number)[],\n skip: () => boolean,\n ): (string | number)[] {\n if (!this.parent) {\n return [];\n }\n if (skip()) {\n return parentPath();\n }\n const parentChildren = this.parent!.children$$!();\n let index;\n if (Array.isArray(parentChildren)) {\n index = parentChildren.findIndex((item) => item === this);\n if (index === -1) {\n throw new Error('child index not found');\n }\n } else {\n for (const key in parentChildren) {\n if ((parentChildren as any)[key] === this) {\n index = key;\n break;\n }\n }\n if (!index) {\n throw new Error('child index not found');\n }\n }\n\n return [...parentPath()!, index];\n }\n get valuePath(): (string | number)[] {\n return this.#getPath(\n () => this.parent!.valuePath,\n () => !!this.parent!.skipValuePath,\n );\n }\n get fieldPath(): (string | number)[] {\n return this.#getPath(\n () => this.parent!.fieldPath,\n () => false,\n );\n }\n get value() {\n return this.value$$();\n }\n required$$ = computed(() => this.config$().required);\n readonly schemaParser;\n context;\n constructor(rawSchema: SchemaOrPipe, injector: Injector) {\n this.injector = injector;\n this.schemaParser = v.safeParser(rawSchema);\n this.context = this.injector.get(PI_CONTEXT_TOKEN);\n }\n\n #schemaCheck$$ = computed(() => this.schemaParser(this.originValue$$()));\n setParent(parent: AbstractControl | undefined): void {\n this._parent = parent;\n }\n get valid(): boolean {\n return this.status$$() === VALID;\n }\n\n get invalid(): boolean {\n return this.status$$() === INVALID;\n }\n\n get pending(): boolean {\n return this.status$$() === PENDING;\n }\n\n #selfUpdateOn$$ = computed(() => this.config$?.().updateOn);\n updateOn$$: Signal<FormHooks> = computed(\n () => (this.#selfUpdateOn$$() || this.parent?.updateOn$$()) ?? 'change',\n );\n\n markAsTouched(): void {\n this.selfTouched$.set(true);\n }\n\n markAllAsDirty(): void {\n this.markAsDirty();\n this._forEachChild((control) => control.markAllAsDirty());\n }\n\n markAllAsPristine(): void {\n this.markAsPristine();\n this._forEachChild((control) => control.markAllAsPristine());\n }\n\n markAllAsTouched(): void {\n this.markAsTouched();\n this._forEachChild((control) => control.markAllAsTouched());\n }\n markAllAsUntouched(): void {\n this.markAsUntouched();\n this._forEachChild((control) => control.markAllAsUntouched());\n }\n markAsUntouched(): void {\n this.selfTouched$.set(false);\n }\n\n markAsDirty(): void {\n this.selfDirty$.set(true);\n }\n\n markAsPristine(): void {\n this.selfDirty$.set(false);\n }\n\n reset(value?: any) {\n this.pendingStatus.set(InitPendingValue);\n }\n\n getRawValue(): any {\n return this.value;\n }\n\n get<P extends string | (string | number)[]>(path: P): AbstractControl | null {\n let currPath: Array<string | number> | string = path;\n if (currPath == null) return null;\n if (!Array.isArray(currPath)) currPath = currPath.split('.');\n if (currPath.length === 0) return null;\n return currPath.reduce(\n (control: AbstractControl | null, name) => control && control.find(name),\n this,\n );\n }\n\n get root(): AbstractControl {\n let x: AbstractControl = this;\n\n while (x._parent) {\n x = x._parent;\n }\n\n return x;\n }\n\n /** @internal */\n _forEachChild(cb: (c: AbstractControl, key: any) => void) {}\n updateValue(value: any) {}\n config$: FieldFormConfig$ = signal({}, { equal: deepEqual });\n /** @internal */\n initConfig(config: any) {\n this.config$ = config;\n }\n protected getInitValue(value: any) {\n return value ?? this.config$().defaultValue;\n }\n\n #transformer$$ = computed(() => this.config$().transfomer);\n protected transformToModel(value: any, control: AbstractControl<any>) {\n if (this.#transformer$$()) {\n value = this.#transformer$$()?.toModel?.(value, control) ?? value;\n }\n return value;\n }\n /** @internal */\n updateInitValue(value: any) {}\n find(name: string | number): AbstractControl | null {\n return null;\n }\n setControl(name: string | number, control: AbstractControl) {}\n *activatedChildren(): Iterable<[string | number, AbstractControl]> {}\n /** 校验和获得值用 */\n private reduceChildren<T>(\n initialValue: T,\n fn: (child: AbstractControl<any>, value: T, key: string | number) => T,\n shortCircuit?: (value: T) => boolean,\n ): T {\n let result = initialValue;\n for (const [key, child] of this.activatedChildren()) {\n if (!child) {\n continue;\n }\n if (shortCircuit?.(result)) {\n break;\n }\n result = fn(child, result, key);\n }\n return result;\n }\n #valueChange: Observable<any> | undefined;\n get valueChanges() {\n return (\n this.#valueChange ??\n (this.#valueChange = toObservable(\n computed(() => ({\n value: this.value$$(),\n disabled: this.disabled$$(),\n })),\n this.value$$,\n {\n injector: this.injector,\n },\n ))\n );\n }\n status$$ = computed(() => {\n if (this.disabled$$()) {\n return VALID;\n }\n let childStatus: VALID_STATUS = VALID;\n if (!this.#isOptionalEmpty()) {\n childStatus = this.reduceChildren<VALID_STATUS>(\n VALID,\n (child, value) => {\n if (value === INVALID || child.status$$() === INVALID) {\n return INVALID;\n } else if (value === PENDING || child.status$$() === PENDING) {\n return PENDING;\n }\n return VALID;\n },\n (v) => v === INVALID || v === PENDING,\n );\n }\n if (childStatus === VALID) {\n if (this.rawError$$()) {\n if (this.rawError$$() !== PENDING) {\n return INVALID;\n } else {\n return PENDING;\n }\n }\n }\n return childStatus;\n });\n #statusChange: Observable<VALID_STATUS> | undefined;\n\n get statusChanges() {\n return (\n this.#statusChange ??\n (this.#statusChange = toObservable(this.status$$, this.status$$, {\n injector: this.injector,\n }))\n );\n }\n /** 仅触发 updateOn: submit 时使用 */\n emitSubmit() {\n if (this.children$$) {\n Object.values(this.children$$()).forEach((child) => {\n if (!child) {\n return;\n }\n child.emitSubmit();\n });\n }\n const pendingStatus = this.pendingStatus();\n if (pendingStatus.touched) {\n this.markAsTouched();\n }\n\n this.pendingStatus.set(InitPendingValue);\n }\n protected isUnChanged() {\n return this.pristine && this.untouched;\n }\n}\n","import { WritableSignal } from '@angular/core';\nimport {\n AbstractControl,\n AsyncValidatorFn,\n FormHooks,\n ValidatorFn,\n} from './abstract_model';\nimport type { Observable, UnaryFunction } from 'rxjs';\nimport { BaseSchema } from 'valibot';\n\nexport type DisabledValueStrategy = 'reserve' | 'delete';\nexport interface FieldTransformerConfig {\n toView?: (value: any, control: AbstractControl) => any;\n toModel?: (value: any, control: AbstractControl) => any;\n}\nexport type LogicType = 'and' | 'or';\nexport type ArrayDeletionMode = 'shrink' | 'mark';\nexport interface FieldFormConfig<T = any> {\n disabled?: boolean;\n /** 删除时value应该如何处理 */\n disabledValue?: DisabledValueStrategy;\n transfomer?: FieldTransformerConfig;\n pipe?: { toModel?: UnaryFunction<Observable<any>, Observable<T>> };\n defaultValue?: any;\n validators?: ValidatorFn[];\n asyncValidators?: AsyncValidatorFn[];\n updateOn?: FormHooks;\n // activateIndex?: number;\n // type?: LogicType;\n /** auto */\n required?: boolean;\n undefinedable?: boolean;\n nullable?: boolean;\n /** array/group/logic group */\n emptyValue?: any;\n /** array */\n deletionMode?: ArrayDeletionMode;\n /** group/array */\n groupMode?: 'loose' | 'default' | 'strict' | 'reset';\n groupKeySchema?: BaseSchema<any, any, any>;\n groupValueSchema?: BaseSchema<any, any, any>;\n /** logic group */\n /** or在更新值时,会自动切换到第一个匹配的 */\n disableOrUpdateActivate?: boolean;\n}\n\nexport type FieldFormConfig$ = WritableSignal<FieldFormConfig>;\nexport type FieldGroupConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport type FieldArrayConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport type FieldLogicGroupConfig$ = WritableSignal<\n Omit<FieldFormConfig, 'defaultValue'>\n>;\nexport const enum UpdateType {\n init = 0,\n update = 1,\n reset = 2,\n}\n","import { signal } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { deepEqual } from 'fast-equals';\nimport { UpdateType } from './type';\n\nexport class FieldGroupbase extends AbstractControl {\n /** @internal */\n protected getResetValue(value: any[] = []) {}\n /** @internal */\n beforeUpdateList: ((value: any, initValue: boolean) => void)[] = [];\n resetValue$ = signal<any>(undefined);\n /** @internal */\n protected submitIndex$ = signal(0);\n\n /** @internal */\n protected _updateValue(value: any, type: UpdateType) {\n const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n if (type === UpdateType.init) {\n this.initedValue = viewValue;\n }\n if (this.config$().groupMode === 'reset') {\n const restValue = this.getResetValue(viewValue);\n this.beforeUpdateList.forEach((fn) =>\n fn(restValue, type !== UpdateType.init),\n );\n } else if (\n this.config$().groupMode === 'loose' ||\n this.config$().groupMode === 'strict'\n ) {\n // loose下为了输出值,strict下为了验证\n const resetValue = this.getResetValue(viewValue);\n this.resetValue$.set(resetValue);\n }\n this._forEachChild((control, key) => {\n if (type === UpdateType.init) {\n control.updateInitValue(viewValue?.[key]);\n } else if (type === UpdateType.update) {\n control.updateValue(viewValue?.[key]);\n } else {\n control.reset(viewValue ? (viewValue as any)[key] : undefined);\n }\n });\n }\n override updateValue(value: any): void {\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n if (this.isUnChanged()) {\n value ??= this.getInitValue(value);\n }\n this._updateValue(value, UpdateType.update);\n }\n\n protected inited = false;\n /** @internal */\n initedValue: any;\n /** @internal */\n override updateInitValue(value: any): void {\n this.inited = true;\n const initValue = this.getInitValue(value);\n this._updateValue(initValue, UpdateType.init);\n }\n override reset(value?: any): void {\n const initValue = this.getInitValue(value);\n this._updateValue(initValue, UpdateType.reset);\n }\n /** @internal */\n _reduceChildren(\n initValue: any,\n fn: (acc: any, control: AbstractControl, name: any) => any,\n ): any {\n let res = initValue;\n this._forEachChild((control: AbstractControl, name: any) => {\n res = fn(res, control, name);\n });\n return res;\n }\n\n override emitSubmit(): void {\n super.emitSubmit();\n this.submitIndex$.update((a) => ++a);\n }\n}\n","import { computed, signal, untracked } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldGroup<\n TControl extends { [K in keyof TControl]: AbstractControl<any> } = any,\n> extends FieldGroupbase {\n #childUpdate() {\n const result = this._reduceChildren(\n { ...this.resetValue$() },\n (acc, control, name) => {\n if (control.shouldInclude$$()) {\n acc[name] = control.value;\n }\n return acc;\n },\n );\n const returnResult = Object.keys(result).length\n ? result\n : this.emptyValue$$();\n\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n #controls$$ = computed(() => ({\n ...this.fixedControls$(),\n ...this.resetControls$(),\n }));\n\n fixedControls$ = signal<Record<string, AbstractControl>>({});\n resetControls$ = signal<Record<string, AbstractControl>>({});\n\n get controls() {\n return this.#controls$$();\n }\n override children$$ = computed(() => this.#controls$$());\n override *activatedChildren() {\n const children = this.children$$();\n for (const key in children) {\n yield [key, children[key]] as [string, AbstractControl];\n }\n }\n\n removeRestControl(key: string): void {\n if (!this.resetControls$()[key]) {\n return;\n }\n this.resetControls$.update((controls) => {\n controls = { ...controls };\n delete controls[key];\n return controls;\n });\n }\n\n override setControl(key: string, control: AbstractControl): void {\n const controls$ = this.inited ? this.resetControls$ : this.fixedControls$;\n controls$.update((controls) => ({ ...controls, [key]: control }));\n control.setParent(this);\n }\n\n override getRawValue() {\n return this._reduceChildren({}, (acc, control, key) => {\n acc[key] = control.getRawValue();\n return acc;\n });\n }\n clear(): void {\n if (Object.keys(this.resetControls$()).length < 1) return;\n this.beforeUpdateList.forEach((fn) => fn({}, false));\n }\n\n /** @internal */\n override _forEachChild(cb: (c: AbstractControl, key: any) => void): void {\n const controls = this.#controls$$();\n Object.keys(controls).forEach((key) => {\n cb(controls[key], key);\n });\n }\n\n override find(key: string): AbstractControl | null {\n return this.#controls$$()[key];\n }\n\n override getResetValue(inputValue: any) {\n const controls = this.fixedControls$();\n return inputValue\n ? Object.keys(inputValue).reduce(\n (obj, key) => {\n if (!(key in controls)) {\n obj[key] = inputValue[key];\n }\n return obj;\n },\n {} as Record<string, any>,\n )\n : {};\n }\n}\n","import {\n computed,\n DestroyRef,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { deepEqual } from 'fast-equals';\nimport { Subject } from 'rxjs';\n\nexport class FieldControl<TValue = any> extends AbstractControl<TValue> {\n #viewIndex = 0;\n /** 视图变化时model值不变也要更新view */\n private viewIndex$ = signal(0);\n\n /** model输入值 */\n modelValue$: WritableSignal<TValue | undefined> = signal(undefined);\n private modelValueToViewValueOrigin$$ = computed(() => {\n const viewValue = this.modelValue$();\n const toView = this.config$?.().transfomer?.toView;\n if (toView) {\n return toView(viewValue, this);\n }\n return viewValue;\n });\n /** 传入到view中的值 */\n modelValueToViewValue$$ = computed(\n () => {\n this.viewIndex$();\n return this.modelValueToViewValueOrigin$$();\n },\n { equal: () => false },\n );\n /** modelValue + viewValue => modelValue */\n\n override originValue$$ = signal<any>(undefined);\n override reset(formState: TValue = this.config$().defaultValue): void {\n this.markAsPristine();\n this.markAsUntouched();\n this.updateValue(formState);\n super.reset(formState);\n }\n\n #viewSubject$$ = computed(() => {\n const subject = new Subject<any>();\n this.injector.get(DestroyRef).onDestroy(() => {\n subject.complete();\n });\n subject.pipe(this.config$().pipe!.toModel!).subscribe((value: any) => {\n untracked(() => {\n this.#viewValueChange(value);\n });\n });\n return subject;\n });\n\n #viewValueChange(value: TValue | undefined) {\n this.markAllAsDirty();\n this.#viewIndex++;\n this.originValue$$.set(this.transformToModel(value, this));\n }\n\n /** view变更 */\n viewValueChange(value: TValue | undefined) {\n if (this.config$().pipe?.toModel) {\n this.#viewSubject$$().next(value);\n } else {\n this.#viewValueChange(value);\n }\n }\n override updateValue(value: any, force?: boolean): void {\n if (this.isUnChanged() || force) {\n value ??= this.getInitValue(value);\n this.modelValue$.set(value);\n this.originValue$$.set(value);\n this.#viewIndex++;\n this.viewIndex$.set(this.#viewIndex);\n this.resetIndex$.update((a) => a + 1);\n return;\n }\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n this.modelValue$.set(value);\n this.originValue$$.set(value);\n this.viewIndex$.set(this.#viewIndex);\n }\n\n override emitSubmit(): void {\n const pendingStatus = this.pendingStatus();\n\n if (pendingStatus.change) {\n this.viewValueChange(pendingStatus.value);\n }\n super.emitSubmit();\n }\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n this.modelValue$.set(initValue);\n this.originValue$$.set(value);\n }\n}\n","import { computed, signal, untracked } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldArray<\n TControl extends AbstractControl<any> = any,\n> extends FieldGroupbase {\n #deletionMode$$ = computed(() => this.config$().deletionMode ?? 'shrink');\n #childUpdate() {\n let list: any[] = [];\n this._reduceChildren(list, (acc, control, name) => {\n if (control && control.shouldInclude$$()) {\n list.push(control.value$$());\n } else {\n if (this.#deletionMode$$() === 'shrink') {\n return list;\n } else if (this.#deletionMode$$() === 'mark') {\n list.push(undefined);\n }\n }\n return list;\n });\n list = [...list, ...(this.resetValue$() ?? [])];\n const returnResult = list.length === 0 ? this.emptyValue$$() : list;\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n override children$$ = computed(() => [\n ...this.fixedControls$(),\n ...this.resetControls$(),\n ]);\n\n fixedControls$ = signal<AbstractControl[]>([]);\n resetControls$ = signal<AbstractControl[]>([]);\n get controls() {\n return this.children$$();\n }\n override *activatedChildren(): Iterable<\n [string | number, AbstractControl]\n > {\n const children = this.children$$();\n for (let index = 0; index < children.length; index++) {\n yield [index, children[index]] as [number, AbstractControl];\n }\n }\n removeRestControl(key: number): void {\n if (!this.resetControls$()[key]) {\n return;\n }\n this.resetControls$.update((controls) => {\n controls = controls.slice() as any;\n controls.splice(key, 1);\n return controls;\n });\n }\n\n override setControl(key: number, control: TControl): void {\n const controls$ = this.inited ? this.resetControls$ : this.fixedControls$;\n key = this.inited ? key - this.fixedControls$().length : key;\n controls$.update((list) => {\n list = list.slice() as any;\n list[key] = control;\n return list;\n });\n control.setParent(this);\n }\n\n get length(): number {\n return this.controls.length;\n }\n\n override getRawValue() {\n return this._reduceChildren([], (acc, control, key) => {\n acc[key] = control.getRawValue();\n return acc;\n });\n }\n clear(): void {\n if (this.resetControls$().length < 1) return;\n this.beforeUpdateList.forEach((fn) => fn([], false));\n }\n\n /** @internal */\n override _forEachChild(cb: (c: AbstractControl, key: number) => void): void {\n this.children$$().forEach((control: AbstractControl, index: number) => {\n if (control) {\n cb(control, index);\n }\n });\n }\n\n override find(key: number): AbstractControl {\n return this.children$$()[key];\n }\n override getResetValue(value: any[] = []) {\n return value.slice(this.fixedControls$().length);\n }\n}\n","import { AbstractControl } from './abstract_model';\nimport { FieldArray } from './field-array';\nimport { computed, signal, untracked } from '@angular/core';\nimport { LogicType, UpdateType } from './type';\nimport { deepEqual } from 'fast-equals';\n// 切换索引后,理论上应该触发下值变更,否则不知道值是什么\nexport class FieldLogicGroup extends FieldArray {\n protected override skipValuePath = true;\n activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n /** 过滤激活控件 */\n filterActivateControl$ = signal<\n | ((\n item: AbstractControl,\n index: number,\n list: AbstractControl[],\n ) => boolean)\n | undefined\n >(undefined);\n\n #childUpdate() {\n const returnResult = this.getValue(false);\n return this.transformToModel(returnResult, this);\n }\n override originValue$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => this.#childUpdate());\n }\n return this.#childUpdate();\n });\n\n override activatedChildren = computed(() => {\n const filterFn = this.filterActivateControl$();\n const type = this.type();\n if (filterFn) {\n const children = this.children$$();\n return children\n .map((element, index) => [index, element] as [number, AbstractControl])\n .filter(([index, item]) => !!filterFn(item, index, children));\n } else if (type === 'and') {\n return this.fixedControls$().map(\n (control, index) => [index, control] as [number, AbstractControl],\n );\n } else if (type === 'or') {\n const index = this.activateIndex$();\n return [\n [index, this.fixedControls$()[index]] as [number, AbstractControl],\n ];\n }\n\n return [];\n });\n\n getValue(rawData: boolean) {\n const controls = rawData\n ? this.activatedChildren().map(([index, control]) => control)\n : this.activatedChildren()\n .map(([index, control]) => control)\n .filter((control) => control.shouldInclude$$());\n const control = controls[0];\n if (controls.length === 0) {\n return this.emptyValue$$();\n }\n if (controls.length === 1) {\n return control.value;\n }\n const result = controls.reduce(\n (obj, control) => ({ ...obj, ...control.value$$() }),\n {} as Record<string, any>,\n );\n return Object.keys(result).length ? result : this.emptyValue$$();\n }\n override reset(value?: any[]): void {\n const initValue = this.getInitValue(value);\n this.#updateValue(initValue, UpdateType.reset);\n }\n override getRawValue(): any {\n return this.getValue(true);\n }\n override updateValue(value: any): void {\n if (this.valid && deepEqual(value, this.value$$())) {\n return;\n }\n if (this.isUnChanged()) {\n value ??= this.getInitValue(value);\n }\n this.#updateValue(value, UpdateType.update);\n }\n /** @internal */\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n this.#updateValue(initValue, UpdateType.init);\n }\n #updateValue(value: any, type: UpdateType) {\n const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n let isUpdateActivate = false;\n this.fixedControls$().forEach((control, i) => {\n if (type === UpdateType.init) {\n control.updateInitValue(viewValue);\n } else if (type === UpdateType.update) {\n control.updateValue(viewValue);\n } else {\n control.reset(viewValue);\n }\n if (\n !this.config$().disableOrUpdateActivate &&\n !isUpdateActivate &&\n control.valid &&\n control.shouldInclude$$() &&\n this.type() === 'or'\n ) {\n this.activateIndex$.set(i);\n isUpdateActivate = true;\n }\n });\n }\n}\n","import { FieldArray } from './field-array';\nimport { FieldControl } from './field-control';\nimport { FieldGroup } from './field-group';\nimport { FieldLogicGroup } from './field-logic-group';\n\nexport function isFieldGroup(input: any): input is FieldGroup {\n return input instanceof FieldGroup;\n}\nexport function isFieldArray(input: any): input is FieldArray {\n return input instanceof FieldArray;\n}\nexport function isFieldControl(input: any): input is FieldControl {\n return input instanceof FieldControl;\n}\nexport function isFieldLogicGroup(input: any): input is FieldLogicGroup {\n return input instanceof FieldLogicGroup;\n}\n","import { AnyCoreSchemaHandle } from '../../convert';\n\nexport function isGroup(schema: AnyCoreSchemaHandle) {\n return schema.isGroup;\n}\nexport function isArray(schema: AnyCoreSchemaHandle) {\n return schema.isArray;\n}\n","import { Injector } from '@angular/core';\nimport { FieldArray } from '../field/field-array';\nimport { FieldControl } from '../field/field-control';\nimport { FieldGroup } from '../field/field-group';\nimport { FieldLogicGroup } from '../field/field-logic-group';\nimport { isFieldLogicGroup } from '../field/is-field';\nimport { FieldFormConfig$ } from '../field/type';\nimport { AbstractControl } from '../field/abstract_model';\nimport { AnyCoreSchemaHandle } from '../convert';\nimport { isArray, isGroup } from './util/is-group';\nimport { RawKeyPath } from '../util';\nexport function createField(\n parentForm: AbstractControl,\n field: AnyCoreSchemaHandle,\n /** 创建用 */\n key: RawKeyPath,\n formConfig$$: FieldFormConfig$,\n isRoot: boolean,\n injector: Injector,\n) {\n let FieldClass;\n if (field.isLogicAnd || field.isLogicOr) {\n FieldClass = FieldLogicGroup;\n } else if (isGroup(field)) {\n FieldClass = FieldGroup;\n } else if (isArray(field) || field.isTuple) {\n FieldClass = FieldArray;\n } else {\n FieldClass = FieldControl;\n }\n let control;\n if (isRoot) {\n control = new (FieldClass as any)(\n field.checkSchema ?? field.sourceSchema,\n injector,\n ) as AbstractControl;\n if (isFieldLogicGroup(control)) {\n control.type.set(field.isLogicAnd ? 'and' : 'or');\n }\n control.initConfig(formConfig$$);\n } else {\n control = parentForm.get([key]);\n if (!control) {\n control = new (FieldClass as any)(\n field.checkSchema ?? field.sourceSchema,\n injector,\n ) as AbstractControl;\n if (isFieldLogicGroup(control)) {\n control.type.set(field.isLogicAnd ? 'and' : 'or');\n }\n parentForm.setControl?.(key as any, control);\n control.initConfig(formConfig$$);\n }\n }\n return control;\n}\n","export class ParentMap<KEY, VALUE> extends Map<KEY, VALUE> {\n constructor(private parent?: ParentMap<KEY, VALUE>) {\n super();\n }\n override get(key: KEY): VALUE | undefined {\n const result = super.get(key);\n if (result === undefined) {\n return this.parent?.get(key);\n }\n return result;\n }\n}\n","export function arrayStartsWith(list: any[], parts: any[] | any) {\n return (Array.isArray(parts) ? parts : [parts]).every(\n (item, index) => item === list[index],\n );\n}\n","export function toArray(input: any): any[] | undefined {\n return input === undefined\n ? input\n : Array.isArray(input)\n ? input\n : ([input] as const);\n}\n","export class SortedArray<T> extends Array {\n #compareFn;\n constructor(compareFn: (a: T, b: T) => number) {\n super();\n this.#compareFn = compareFn;\n }\n\n override push(...items: any[]): number {\n const result = super.push(...items);\n this.sort(this.#compareFn);\n return result;\n }\n}\n","export type LazyImport<T> = () => Promise<T>;\nconst markSymbol = Symbol();\nexport function lazyMark<T>(fn: LazyImport<T>) {\n return { [markSymbol]: fn };\n}\nexport type LazyMarkType<T> = ReturnType<typeof lazyMark<T>>;\nexport function isLazyMark(input: any): boolean {\n return markSymbol in input;\n}\nexport function getLazyImport<T>(input: any) {\n return (input[markSymbol] ??\n (typeof input === 'function' ? input : undefined)) as T | undefined;\n}\n","import { effect, Injector, untracked } from '@angular/core';\n// import { ControlValueAccessor } from '@angular/forms';\nimport { FieldControl } from '../field/field-control';\nexport interface ControlValueAccessor {\n /**\n * @description\n * Writes a new value to the element.\n *\n * This method is called by the forms API to write to the view when programmatic\n * changes from model to view are requested.\n *\n * @usageNotes\n * ### Write a value to the element\n *\n * The following example writes a value to the native DOM element.\n *\n * ```ts\n * writeValue(value: any): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\n * }\n * ```\n *\n * @param obj The new value for the element\n */\n writeValue(obj: any): void;\n /**\n * @description\n * Registers a callback function that is called when the control's value\n * changes in the UI.\n *\n * This method is called by the forms API on initialization to update the form\n * model when values propagate from the view to the model.\n *\n * When implementing the `registerOnChange` method in your own value accessor,\n * save the given function so your class calls it at the appropriate time.\n *\n * @usageNotes\n * ### Store the change function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnChange(fn: (_: any) => void): void {\n * this._onChange = fn;\n * }\n * ```\n *\n * When the value changes in the UI, call the registered\n * function to allow the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(change)': '_onChange($event.target.value)'\n * }\n * ```\n *\n * @param fn The callback function to register\n */\n registerOnChange(fn: any): void;\n /**\n * @description\n * Registers a callback function that is called by the forms API on initialization\n * to update the form model on blur.\n *\n * When implementing `registerOnTouched` in your own value accessor, save the given\n * function so your class calls it when the control should be considered\n * blurred or \"touched\".\n *\n * @usageNotes\n * ### Store the callback function\n *\n * The following example stores the provided function as an internal method.\n *\n * ```ts\n * registerOnTouched(fn: any): void {\n * this._onTouched = fn;\n * }\n * ```\n *\n * On blur (or equivalent), your class should call the registered function to allow\n * the forms API to update itself:\n *\n * ```ts\n * host: {\n * '(blur)': '_onTouched()'\n * }\n * ```\n *\n * @param fn The callback function to register\n */\n registerOnTouched(fn: any): void;\n /**\n * @description\n * Function that is called by the forms API when the control status changes to\n * or from 'DISABLED'. Depending on the status, it enables or disables the\n * appropriate DOM element.\n *\n * @usageNotes\n * The following is an example of writing the disabled property to a native DOM element:\n *\n * ```ts\n * setDisabledState(isDisabled: boolean): void {\n * this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n * }\n * ```\n *\n * @param isDisabled The disabled status to set on the element\n */\n setDisabledState?(isDisabled: boolean): void;\n}\nexport function createViewControlLink(\n fieldControl: () => FieldControl,\n cva: ControlValueAccessor,\n injector: Injector,\n) {\n cva.registerOnChange((value: any) => {\n if (fieldControl().disabled$$()) {\n return;\n }\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n value: value,\n change: true,\n }));\n if (fieldControl().updateOn$$() === 'change') {\n fieldControl().viewValueChange(value);\n }\n });\n cva.registerOnTouched(() => {\n if (fieldControl().disabled$$()) {\n return;\n }\n const updateOn = fieldControl().updateOn$$();\n const pendingStatus = fieldControl().pendingStatus();\n if (updateOn === 'submit') {\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n touched: true,\n }));\n } else {\n fieldControl().markAsTouched();\n if (pendingStatus.change && updateOn === 'blur') {\n fieldControl().viewValueChange(pendingStatus.value);\n fieldControl().pendingStatus.update((status) => ({\n ...status,\n change: false,\n value: undefined,\n }));\n }\n }\n });\n const disposeList: (() => any)[] = [];\n const ref = effect(\n () => {\n const value = fieldControl().modelValueToViewValue$$();\n untracked(() => {\n cva.writeValue(value);\n });\n },\n { injector: injector },\n );\n cva.writeValue(fieldControl().modelValueToViewValue$$());\n disposeList.push(() => ref.destroy());\n if (cva.setDisabledState) {\n const disabledRef = effect(\n () => {\n const value = fieldControl().disabled$$();\n untracked(() => {\n cva.setDisabledState!(value);\n });\n },\n { injector: injector },\n );\n cva.setDisabledState!(fieldControl().disabled$$());\n disposeList.push(() => disabledRef.destroy());\n }\n return (destroy?: boolean) => {\n disposeList.forEach((fn) => fn());\n // todo 需要优化\n untracked(() => {\n fieldControl().updateValue(fieldControl().value$$(), true);\n });\n };\n}\n","import { AbstractControl } from '../field/abstract_model';\n\nexport function controlStatusList(\n fieldControl?: AbstractControl,\n skipDisabled?: boolean,\n) {\n if (!fieldControl) {\n return [];\n }\n const statusList = [];\n if (!skipDisabled && fieldControl.disabled$$()) {\n statusList.push('disabled');\n }\n if (fieldControl.touched$$()) {\n statusList.push('touched');\n } else {\n statusList.push('untouched');\n }\n if (fieldControl.dirty$$()) {\n statusList.push('dirty');\n } else {\n statusList.push('pristine');\n }\n switch (fieldControl.status$$()) {\n case 'VALID':\n statusList.push('valid');\n break;\n case 'INVALID':\n statusList.push('invalid');\n break;\n case 'PENDING':\n statusList.push('pending');\n break;\n default:\n break;\n }\n return statusList;\n}\n\nexport function fieldControlStatusClass(\n fieldControl?: AbstractControl,\n skipDisabled?: boolean,\n) {\n return controlStatusList(fieldControl, skipDisabled)\n .map((item) => `pi-${item}`)\n .join(' ');\n}\n","import { effect } from '@angular/core';\nimport type { Injector } from '@angular/core';\nimport { deepEqual } from 'fast-equals';\nimport { AbstractControl } from '../field/abstract_model';\n\nexport function initListen(\n input: any,\n control: AbstractControl,\n injector: Injector,\n fn: (input: any) => void,\n) {\n let init = true;\n return effect(\n () => {\n const modelValue = control.value$$();\n if (init) {\n if (!deepEqual(modelValue, input)) {\n fn(modelValue);\n }\n init = false;\n } else {\n fn(modelValue);\n }\n },\n { injector },\n );\n}\n","import { summarize } from 'valibot';\nimport {\n AbstractControl,\n ValidationDescendantError2,\n ValidationErrors2,\n ValidationValibotError2,\n} from '../field/abstract_model';\nimport { FieldArray } from '../field/field-array';\nimport { FieldLogicGroup } from '../field/field-logic-group';\n\nexport interface ErrorSummary {\n /** 方便判断是哪一个控件产生的异常 */\n debugPathList: string[];\n /** 可以用于直接get查询到当前配置 */\n queryPathList: (number | string)[];\n fieldList: AbstractControl[];\n item: Exclude<ValidationErrors2, ValidationDescendantError2>;\n valibotIssueSummary: string | undefined;\n}\nfunction errorItem(\n item: ValidationErrors2,\n prefixList: ValidationDescendantError2[],\n list: ErrorSummary[],\n) {\n if (item.kind === 'descendant') {\n const item2 = item as ValidationDescendantError2;\n item2.metadata.forEach((child) => {\n errorItem(child, prefixList.slice().concat(item2), list);\n });\n } else {\n list.push({\n debugPathList: prefixList.map((item) => {\n const parentField = item.field.parent;\n if (parentField instanceof FieldLogicGroup) {\n return parentField.type() === 'and'\n ? `[∧${item.key}]`\n : `[∨${item.key}]`;\n } else if (parentField instanceof FieldArray) {\n return `[${item.key}]`;\n } else {\n return `${item.key}`;\n }\n }),\n queryPathList: prefixList.map((item) => item.key),\n fieldList: prefixList.map((item) => item.field),\n item: item,\n get valibotIssueSummary() {\n if (item.kind === 'valibot') {\n return summarize((item as ValidationValibotError2).metadata);\n }\n return undefined;\n },\n });\n }\n}\nexport function errorSummary(control?: AbstractControl) {\n if (!control?.errors) {\n return [];\n }\n const list: ErrorSummary[] = [];\n for (const item of control.errors) {\n errorItem(item, [], list);\n }\n return list;\n}\n\nexport const getDeepError = errorSummary;\n","import {\n CreateSignalOptions,\n DestroyRef,\n inject,\n Injector,\n Signal,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport {\n BehaviorSubject,\n Observable,\n OperatorFunction,\n pipe,\n shareReplay,\n tap,\n} from 'rxjs';\nexport type ObservableSignal<Input, Output> = WritableSignal<Input> & {\n input: Signal<Input>;\n output: Signal<Output>;\n loading: Signal<boolean>;\n input$$: Observable<Input>;\n subject: BehaviorSubject<Input>;\n output$$: Observable<Output>;\n};\nconst DefaultOptions = { autoDestroy: true };\n/** set输入,()输出的是管道后的值, */\nexport function observableSignal<Input, Output>(\n initialValue: Input,\n options?: CreateSignalOptions<Input> & {\n pipe?: OperatorFunction<Input, Output>;\n injector?: Injector;\n autoDestroy?: boolean;\n },\n) {\n options = { ...DefaultOptions, ...options };\n const inputS$ = signal(initialValue, options);\n const outputS$ = signal<any>(undefined);\n const loading$ = signal(false);\n const inputR$ = new BehaviorSubject<any>(undefined);\n inputR$.next(inputS$());\n const data: Observable<Output> = inputR$.pipe(\n tap(() => {\n loading$.set(true);\n }),\n options?.pipe ? options.pipe : (pipe() as any),\n shareReplay(),\n );\n const oldOutputSet = outputS$.set;\n\n data.subscribe((value) => {\n oldOutputSet(value);\n loading$.set(false);\n });\n const oldSet = inputS$.set;\n const changed$ = outputS$ as any as ObservableSignal<Input, Output>;\n changed$.set = (value: Input) => {\n inputR$.next(value);\n return oldSet(value);\n };\n changed$.update = (fn: (value: Input) => Input) => {\n const newValue = fn(inputS$());\n return changed$.set(newValue);\n };\n changed$.output = outputS$;\n changed$.input = inputS$;\n changed$.input$$ = inputR$.asObservable();\n changed$.output$$ = data;\n changed$.subject = inputR$;\n if (options?.injector || options.autoDestroy) {\n const injector = options?.injector ?? inject(Injector, { optional: true });\n if (injector) {\n injector.get(DestroyRef).onDestroy(() => {\n inputR$.complete();\n });\n }\n }\n\n return changed$;\n}\n","import {\n CreateSignalOptions,\n isSignal,\n Signal,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { computed } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { isPromise, isSubscribable } from '../convert/util/is-promise';\nexport type AsyncObjectSignal<Input> = Signal<Input> & {\n connect: (\n key: string,\n value: Signal<any> | Promise<any> | Observable<any> | any,\n ) => void;\n disconnect: (key: string) => void;\n set(value: Input): void;\n update(updateFn: (value: Input) => Input): void;\n map(fn: (input: Input) => any): void;\n};\nexport function asyncObjectSignal<\n Input extends Record<string, any> | undefined,\n>(initialValue: Input, options?: CreateSignalOptions<Input>) {\n const data$ = signal(initialValue);\n const mapFn$ = signal<((value: any) => any) | undefined>(undefined);\n const signalList$ = signal<[string, Signal<any>][]>([]);\n const value$$ = computed(() => {\n const signalList = signalList$();\n const data = data$();\n const mapFn = mapFn$();\n if (!signalList.length) {\n return mapFn ? mapFn(data) : data;\n }\n const data2 = { ...data };\n signalList.forEach(([key, value]) => {\n (data2![key] as Record<string, any>) = value();\n });\n return mapFn ? mapFn(data2) : data2;\n }, options);\n const disposeMap = new Map<string, () => void>();\n const changed$ = value$$ as any as AsyncObjectSignal<Input>;\n changed$.connect = (key, value) => {\n changed$.disconnect(key);\n let dispose: (() => void) | undefined;\n if (isPromise(value)) {\n // promise\n let isDestroy = false;\n value.then((value: any) => {\n if (isDestroy) {\n return;\n }\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n });\n dispose = () => {\n isDestroy = true;\n };\n } else if (isSubscribable(value)) {\n // rxjs\n const ref = value.subscribe({\n next: (value) => {\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n },\n });\n dispose = () => {\n ref.unsubscribe();\n };\n } else if (isSignal(value)) {\n signalList$.update((list) => {\n list = list.slice();\n list.push([key, value]);\n return list;\n });\n dispose = () => {\n signalList$.update((list) => {\n const index = list.findIndex((item) => value === item[1]);\n if (index !== -1) {\n list = list.slice();\n list.splice(index, 1);\n }\n return list;\n });\n };\n } else {\n // 普通类型\n data$.update((lastData) => ({ ...lastData, [key]: value }));\n }\n if (dispose) {\n disposeMap.set(key, dispose);\n }\n };\n changed$.disconnect = (key) => {\n untracked(() => {\n disposeMap.get(key)?.();\n disposeMap.delete(key);\n });\n };\n changed$.set = (key) => {\n data$.set(key);\n };\n changed$.update = (fn: any) => {\n const result = fn(changed$());\n data$.set(result);\n };\n changed$.map = (input) => {\n mapFn$.set(input);\n };\n return changed$;\n}\n","import { CreateSignalOptions, Signal, signal } from '@angular/core';\n\nimport { computed } from '@angular/core';\nexport type CombineSignal<Input> = Signal<Input[]> & {\n add: (item: Signal<Input>, index?: number) => void;\n remove: (item: Signal<Input>) => void;\n items: () => Signal<Input>[];\n clean: () => void;\n update: (fn: (list: Signal<Input>[]) => Signal<Input>[]) => void;\n};\nexport function combineSignal<Input>(\n initialValue: Signal<Input>[] = [],\n options?: CreateSignalOptions<Input[]>,\n) {\n const list$ = signal<Signal<Input>[]>(initialValue);\n const input$$ = computed(() => list$().map((item) => item()), options);\n const changed$ = input$$ as any as CombineSignal<Input>;\n changed$.add = (item, index) => {\n list$.update((list) => {\n if (typeof index === 'number') {\n list = list.slice();\n list.splice(index, 0, item);\n return list;\n }\n return [...list, item];\n });\n };\n changed$.remove = (item) => {\n list$.update((list) => {\n const index = list.indexOf(item);\n if (index === -1) {\n return list;\n }\n list = list.slice();\n list.splice(index, 1);\n return list;\n });\n };\n changed$.items = () => list$();\n changed$.clean = () => list$.set([]);\n changed$.update = (fn) => {\n const list = fn(list$());\n list$.set(list);\n };\n return changed$;\n}\n","import { PiResolvedCommonViewFieldConfig } from '../type';\n\nexport function* groupGenerator(\n list: PiResolvedCommonViewFieldConfig<any, any>[],\n): Generator<PiResolvedCommonViewFieldConfig<any, any>, void, unknown> {\n for (const item of list) {\n if (!item.keyPath?.length && item.fixedChildren?.().length) {\n yield* groupGenerator(item.fixedChildren());\n } else if (item.keyPath?.length) {\n yield item;\n }\n }\n}\n","import { ArraryIterable, arrayStartsWith, KeyPath } from '../util';\nimport {\n _PiResolvedCommonViewFieldConfig,\n PiResolvedCommonViewFieldConfig,\n} from './type/common-field-config';\nimport { groupGenerator } from './util/group-flat';\n\nexport function fieldQuery(\n keyPath: KeyPath,\n field: PiResolvedCommonViewFieldConfig<any, any>,\n aliasMap: Map<string, PiResolvedCommonViewFieldConfig<any, any>>,\n root: PiResolvedCommonViewFieldConfig<any, any>,\n) {\n const firstPath = keyPath[0];\n let list:\n | ArraryIterable<{\n field: _PiResolvedCommonViewFieldConfig;\n level: number;\n }>\n | undefined;\n if (firstPath === '#') {\n field = root;\n list = [{ field: root, level: 1 }];\n } else if (firstPath === '..') {\n list = [{ field: field.parent!, level: 1 }];\n } else if (typeof firstPath === 'string' && firstPath.startsWith('@')) {\n const queryField = aliasMap.get(firstPath.slice(1));\n list = [{ field: queryField!, level: 1 }];\n } else if (field.fixedChildren || field.restChildren) {\n const children = [\n ...(field.fixedChildren?.() ?? []),\n ...(field.restChildren?.() ?? []),\n ];\n list = groupGenerator(children)\n .filter(\n (field) => field.keyPath && arrayStartsWith(keyPath, field.keyPath),\n )\n .map((field) => ({ field: field, level: field.keyPath?.length! }));\n }\n if (!list) {\n return;\n }\n for (const item of list) {\n if (keyPath.length === item.level) {\n return item.field;\n }\n const res = item.field.get(keyPath.slice(item.level));\n if (res) {\n return res;\n }\n }\n return undefined;\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { PI_VIEW_CONFIG_TOKEN } from './type';\nexport const FindConfigToken = new InjectionToken<\n ReturnType<typeof FindConfigFactory>\n>('FindConfig');\nexport function FindConfigFactory() {\n const globalConfig = inject(PI_VIEW_CONFIG_TOKEN);\n return {\n findWrapperComponent: (wrapper: any) => {\n let config;\n let type;\n if (typeof wrapper === 'string') {\n config = globalConfig?.wrappers?.[wrapper];\n if (!config) {\n throw new Error(`🈳wrapper:[${type}]❗`);\n }\n return config?.type;\n }\n return wrapper;\n },\n findComponentConfig: (type: string | any) => {\n if (typeof type === 'string') {\n const config = globalConfig?.types?.[type];\n if (!config) {\n throw new Error(`🈳define:[${type}]❗`);\n }\n return config.type;\n } else {\n return type;\n }\n },\n };\n}\n","import {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_FORM_BUILDER_ALIAS_MAP,\n PI_VIEW_FIELD_TOKEN,\n} from './type/token';\nimport {\n computed,\n DestroyableInjector,\n DestroyRef,\n inject,\n Injector,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { createField } from './create-field';\nimport { ParentMap } from './class/parent-map';\n\nimport { fieldQuery } from './field-query';\n\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreWrapperConfig,\n PiResolvedCommonViewFieldConfig,\n RawCoreWrapperConfig,\n} from './type/common-field-config';\nimport {\n BuildRootInputItem,\n BuildGroupItem,\n BuildArrayItem,\n BuildRootItem,\n} from './type/builder.type';\nimport { FieldArray } from '../field/field-array';\nimport { FieldGroup } from '../field/field-group';\nimport { isFieldLogicGroup, isFieldArray } from '../field/is-field';\nimport { AnyCoreSchemaHandle, CoreSchemaHandle } from '../convert';\nimport { isArray, isGroup } from './util/is-group';\nimport {\n RawKeyPath,\n SortedArray,\n toArray,\n KeyPath,\n asyncObjectSignal,\n combineSignal,\n observableSignal,\n} from '../util';\nimport * as v from 'valibot';\nimport { FindConfigToken } from './find-config';\nimport { map, pipe } from 'rxjs';\n\nexport class FormBuilder<SchemaHandle extends CoreSchemaHandle<any, any>> {\n #scopeMap =\n inject(PI_FORM_BUILDER_ALIAS_MAP, { optional: true }) ??\n new ParentMap<string, PiResolvedCommonViewFieldConfig<any, any>>();\n #options = inject(PI_FORM_BUILDER_OPTIONS_TOKEN);\n #injector = inject(Injector);\n\n #allFieldInitHookList: (() => void)[] = [];\n buildRoot(item: BuildRootInputItem<SchemaHandle>) {\n const field = this.#buildControl(\n {\n type: 'root',\n field: { fullPath: [], injector: this.#injector },\n form: undefined,\n resolvedField$: item.resolvedField$,\n append: () => {},\n },\n item.field,\n 0,\n );\n field.form.control?.updateInitValue(undefined);\n this.allFieldInitHookCall();\n }\n allFieldInitHookCall() {\n const list = this.#allFieldInitHookList;\n this.#allFieldInitHookList = [];\n list.forEach((fn) => fn());\n }\n #buildField(\n item: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n ) {\n item.field.fixedChildren = signal(\n new SortedArray<_PiResolvedCommonViewFieldConfig>(\n (a, b) => a.priority - b.priority,\n ),\n );\n for (let index = 0; index < item.fields.length; index++) {\n this.#buildControl(item, item.fields[index], index);\n }\n if (item.type === 'group') {\n this.#buildGroup(item);\n } else {\n this.#buildArray(item);\n }\n item.field.children = computed(() => [\n ...item.field.fixedChildren!(),\n ...(item.field.restChildren?.() ?? []),\n ]);\n }\n afterResolveConfig(\n rawConfig: SchemaHandle,\n config: _PiResolvedCommonViewFieldConfig,\n ): _PiResolvedCommonViewFieldConfig | undefined {\n return;\n }\n\n #buildControl(\n parent:\n | BuildGroupItem<SchemaHandle>\n | BuildArrayItem<SchemaHandle>\n | BuildRootItem,\n // 单独一项\n field: SchemaHandle,\n index: number,\n ): PiResolvedCommonViewFieldConfig<any, any> {\n const define = !field.type\n ? undefined\n : typeof field.type !== 'string'\n ? field.type\n : this.#findConfig.findComponentConfig(field.type);\n const inputs = asyncObjectSignal(field.inputs);\n const outputs = asyncObjectSignal(field.outputs);\n const attributes = asyncObjectSignal(field.attributes);\n const events = asyncObjectSignal(field.events);\n const formConfig$ = signal(field.formConfig ?? {});\n const renderConfig = signal(field.renderConfig ?? {});\n let control;\n let keyPath: RawKeyPath | undefined = field.key;\n\n if (isFieldLogicGroup(parent.form)) {\n keyPath ??= parent.form.fixedControls$().length;\n } else if (isFieldArray(parent.form)) {\n keyPath ??= index;\n }\n const isRoot = parent.type === 'root';\n const injector = Injector.create({\n providers: [\n ...(field.providers ?? []),\n {\n provide: PI_VIEW_FIELD_TOKEN,\n useValue: () => resolvedConfig,\n },\n ],\n parent: parent.field.injector,\n });\n parent.field.injector.get(DestroyRef).onDestroy(() => {\n if (resolvedConfig.injector) {\n (resolvedConfig.injector as DestroyableInjector).destroy();\n }\n });\n if (!field.nonFieldControl && (keyPath !== undefined || isRoot)) {\n control = createField(\n parent.form as any,\n field,\n keyPath!,\n // 这里也是fullPath\n formConfig$,\n isRoot,\n injector,\n );\n }\n const rootForm = this.#options.form$$;\n let resolvedConfig = {\n id: field.id,\n keyPath: toArray(keyPath),\n key: field.key,\n get fullPath() {\n return [\n ...resolvedConfig.parent.fullPath,\n ...(resolvedConfig.keyPath ?? []),\n ];\n },\n form: {\n parent: parent.form,\n control: control ?? (isGroup(field) ? parent.form : undefined),\n get root() {\n return rootForm();\n },\n },\n get: (keyPath: any) =>\n untracked(() =>\n fieldQuery(\n keyPath,\n resolvedConfig,\n this.#scopeMap,\n this.#options.resolvedField$(),\n ),\n ),\n parent: parent.field,\n origin: field,\n renderConfig: renderConfig,\n formConfig: formConfig$,\n props: asyncObjectSignal(field.props),\n context: this.#options.context,\n priority: field.priority,\n hooks: field.hooks,\n alias: field.alias,\n get inputs() {\n return resolvedConfig.define?.().inputs;\n },\n get outputs() {\n return resolvedConfig.define?.().outputs;\n },\n get events() {\n return resolvedConfig.define?.().events;\n },\n get attributes() {\n return resolvedConfig.define?.().attributes;\n },\n define: define\n ? signal({ type: define, inputs, outputs, attributes, events })\n : undefined,\n wrappers: this.#wrapperToSignal(field.wrappers, injector),\n injector: injector,\n } as any as _PiResolvedCommonViewFieldConfig;\n resolvedConfig =\n this.afterResolveConfig(field, resolvedConfig) ?? resolvedConfig;\n if (field.movePath) {\n this.#moveViewField(field.movePath, resolvedConfig);\n } else {\n if (\n (parent.type === 'group' || parent.type === 'array') &&\n !parent.skipAppend\n ) {\n parent.append(resolvedConfig);\n }\n }\n if (field.alias) {\n this.#scopeMap.set(field.alias, resolvedConfig);\n }\n resolvedConfig.hooks?.fieldResolved?.(resolvedConfig);\n if (isRoot) {\n parent.resolvedField$.set(resolvedConfig);\n }\n // 递归进行解析\n if (isGroup(field) || field.isLogicAnd || field.isLogicOr) {\n this.#buildField({\n type: 'group' as const,\n templateField: field.arrayChild,\n fields: field.children,\n field: resolvedConfig,\n form: (control || parent.form) as FieldGroup,\n append: (field) => {\n resolvedConfig.fixedChildren!().push(field);\n },\n });\n } else if (isArray(field) || field.isTuple) {\n this.#buildField({\n type: 'array' as const,\n templateField: field.arrayChild,\n fields: field.children,\n field: resolvedConfig,\n form: control as FieldArray,\n append: (field) => {\n resolvedConfig.fixedChildren!().push(field);\n },\n });\n }\n if (resolvedConfig.hooks?.allFieldsResolved) {\n this.#allFieldInitHookList.push(() => {\n resolvedConfig.hooks!.allFieldsResolved!(resolvedConfig);\n });\n }\n\n return resolvedConfig;\n }\n\n #buildGroup(buildItem: BuildGroupItem<SchemaHandle>) {\n const { templateField, form, field } = buildItem;\n\n if (templateField && field.form.control) {\n field.restChildren = signal([]);\n const isCheckedKey = (key: any) => {\n if (form.config$().groupKeySchema) {\n if (!v.safeParse(form.config$().groupKeySchema!, key).success) {\n return false;\n }\n }\n return true;\n };\n const updateItem = (key: string, initValue: boolean) => {\n const result = this.#createObjectRestItem(\n { ...buildItem, skipAppend: true },\n {\n ...templateField!,\n key,\n },\n );\n field.restChildren!.update((list) => [...list, result]);\n if (initValue) {\n result.form.control?.updateInitValue(form.initedValue?.[key]);\n }\n return result;\n };\n function removeItem(key: string) {\n field.restChildren!.update((list) => {\n const index = list.findIndex(\n (item) => item.keyPath!.slice(-1)[0] === key,\n );\n list = [...list];\n list.splice(index, 1);\n return list;\n });\n form.removeRestControl(key);\n }\n form.beforeUpdateList.push((restValue = {}, initUpdate) => {\n const restControl = form.resetControls$();\n for (const key in restControl) {\n if (key in restValue) {\n continue;\n }\n removeItem(key);\n }\n let isUpdateItem = false;\n for (const key in restValue) {\n if (key in restControl) {\n continue;\n }\n if (!isCheckedKey(key)) {\n continue;\n }\n isUpdateItem = true;\n updateItem(key, initUpdate);\n }\n if (isUpdateItem) {\n this.allFieldInitHookCall();\n }\n });\n field.action = {\n set: (value, key: string) =>\n untracked(() => {\n if (!isCheckedKey(key)) {\n return false;\n }\n\n const result = updateItem(key, true);\n this.allFieldInitHookCall();\n result.form.control!.updateValue(value);\n return true;\n }),\n remove: (key: string) => {\n untracked(() => {\n removeItem(key);\n });\n },\n };\n }\n }\n #createObjectRestItem(\n parent: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n // 单独一项\n field: AnyCoreSchemaHandle,\n ) {\n const result = this.#buildControl(parent, field as any, 0);\n this.#allFieldInitHookList.push(() => this.allFieldInitHookCall());\n return result;\n }\n\n #buildArray(buildItem: BuildArrayItem<SchemaHandle>) {\n const { templateField, form, field } = buildItem;\n\n if (templateField && field.form.control) {\n const fixedLength = field.fixedChildren?.().length ?? 0;\n field.restChildren = signal([]);\n const updateItem = (\n list: _PiResolvedCommonViewFieldConfig[],\n index: number,\n initValue: boolean,\n ) => {\n const result = this.#createArrayItem(\n buildItem,\n templateField,\n fixedLength + index,\n );\n list[index] = result;\n if (initValue) {\n result.form.control?.updateInitValue(\n form.initedValue?.[fixedLength + index],\n );\n }\n return result;\n };\n function removeItem(\n list: _PiResolvedCommonViewFieldConfig[],\n index: number,\n ) {\n const [deletedItem] = list!.splice(index, 1);\n form.removeRestControl(index);\n if (deletedItem) {\n (deletedItem.injector as DestroyableInjector).destroy();\n deletedItem.injector = undefined as any;\n }\n }\n form.beforeUpdateList.push((resetValue = [], initUpdate) => {\n const controlLength = form.resetControls$().length;\n if (resetValue.length < controlLength) {\n const list = [...field.restChildren!()];\n for (\n let index = list.length - 1;\n index >= resetValue.length;\n index--\n ) {\n removeItem(list, index);\n }\n field.restChildren!.set(list);\n } else if (controlLength < resetValue.length) {\n const list = [...field.restChildren!()];\n for (let index = controlLength; index < resetValue.length; index++) {\n updateItem(list, index, initUpdate);\n }\n field.restChildren!.set(list);\n this.allFieldInitHookCall();\n }\n });\n field.action = {\n set: (value, index: number) =>\n untracked(() => {\n index = (\n typeof index === 'number'\n ? index\n : (field.restChildren?.().length ?? 0)\n )!;\n const list = [...field.restChildren!()];\n const result = updateItem(list, index, true);\n field.restChildren!.set(list);\n this.allFieldInitHookCall();\n result.form.control!.updateValue(value);\n return true;\n }),\n remove: (index: number) => {\n untracked(() => {\n const list = [...field.restChildren!()];\n removeItem(list, index);\n field.restChildren!.set(list);\n });\n },\n };\n }\n }\n #createArrayItem(\n parent: BuildGroupItem<SchemaHandle> | BuildArrayItem<SchemaHandle>,\n // 单独一项\n field: AnyCoreSchemaHandle,\n index: number,\n ) {\n const Builder = this.constructor as any as typeof FormBuilder;\n const injector = Injector.create({\n providers: [\n Builder,\n {\n provide: PI_FORM_BUILDER_ALIAS_MAP,\n useValue: new ParentMap<\n string,\n PiResolvedCommonViewFieldConfig<any, any>\n >(this.#scopeMap),\n },\n ],\n parent: parent.field.injector,\n });\n parent.field.injector.get(DestroyRef).onDestroy(() => {\n injector.destroy();\n });\n const instance = injector.get(Builder);\n const result = instance.#buildControl(\n { ...parent, skipAppend: true },\n field,\n index,\n );\n this.#allFieldInitHookList.push(() => instance.allFieldInitHookCall());\n return result;\n }\n\n #moveViewField(key: KeyPath, inputField: _PiResolvedCommonViewFieldConfig) {\n const parent = fieldQuery(\n key,\n inputField,\n this.#scopeMap,\n this.#options.resolvedField$(),\n );\n\n if (!parent) {\n throw new Error('移动视图项失败');\n }\n const newKeyPath = inputField.fullPath.slice(parent.fullPath.length);\n (inputField as any).keyPath = newKeyPath;\n inputField.parent = parent as any;\n parent.fixedChildren!().push(inputField);\n }\n #findConfig = inject(FindConfigToken);\n #wrapperToSignal(list: RawCoreWrapperConfig[], injector: Injector) {\n return combineSignal(\n list.map((item) =>\n observableSignal<CoreWrapperConfig, CoreWrapperConfig>(\n {\n type: item.type,\n attributes: asyncObjectSignal(item.attributes),\n inputs: asyncObjectSignal(item.inputs),\n outputs: asyncObjectSignal(item.outputs),\n events: asyncObjectSignal(item.events),\n },\n {\n pipe: pipe(\n map((item) => {\n const defaultWrapperConfig =\n this.#findConfig.findWrapperComponent(item.type);\n return { ...item, type: defaultWrapperConfig };\n }),\n ),\n injector: injector,\n },\n ),\n ),\n );\n }\n}\n","import {\n ValidationCommonError2,\n ValidationErrorError2,\n ValidationErrors2,\n ValidationValibotError2,\n} from '../../field/abstract_model';\n\nexport function findError<K extends string>(\n list: ValidationErrors2[] | undefined,\n key: K,\n):\n | (K extends ValidationValibotError2['kind']\n ? ValidationValibotError2\n : K extends ValidationErrorError2['kind']\n ? ValidationErrorError2\n : ValidationCommonError2)\n | undefined {\n if (!list) {\n return undefined;\n }\n\n return list.find((item) => item.kind === key) as any;\n}\n","import type { BaseMetadata } from 'valibot';\nimport { KeyPath } from '../../util';\n\nexport interface LayoutAction<TInput = unknown> extends BaseMetadata<TInput> {\n readonly type: 'layout';\n readonly reference: typeof layout;\n readonly value: {\n keyPath?: KeyPath;\n priority?: number;\n };\n}\n\nexport function layout<TInput>(\n value: LayoutAction['value'],\n): LayoutAction<TInput> {\n return {\n kind: 'metadata',\n type: 'layout',\n reference: layout,\n value: value,\n };\n}\n","import { createRawConfig } from '@piying/valibot-visit';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nexport const rawConfig = createRawConfig<'viewRawConfig', AnyCoreSchemaHandle>(\n 'viewRawConfig',\n);\n","import { defineType } from '@piying/valibot-visit';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { FindConfigToken } from '../../builder-base/find-config';\nimport { rawConfig } from './raw-config';\n\nexport function setComponent<T>(type: any) {\n return typeof type === 'string'\n ? defineType<T>(type)\n : rawConfig<T>((field) => {\n field.type = type;\n });\n}\nexport function findComponent<T>(\n field: _PiResolvedCommonViewFieldConfig,\n type: any,\n) {\n return field.injector.get(FindConfigToken).findComponentConfig(type);\n}\n","import { RawConfigActionCommon } from '@piying/valibot-visit';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nimport { rawConfig } from './raw-config';\ntype Hooks = AnyCoreSchemaHandle['hooks'];\nexport type HooksConfig<T> = <B>(hooks: T) => RawConfigActionCommon<B>;\n/** @deprecated use actions.hook.set */\nexport const setHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = hooks;\n });\n/** @deprecated use actions.hook.patch */\nexport const patchHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = { ...field.hooks, ...hooks };\n });\ntype HooksKey = keyof NonNullable<Hooks>;\nconst DefaultOptions = { position: 'bottom' as const };\nexport type MergeHooksConfig<T> = <B>(\n hooks: T,\n options?: { position: 'top' | 'bottom' },\n) => RawConfigActionCommon<B>;\nexport function mergeHooksFn<T extends AnyCoreSchemaHandle>(\n hooks: T['hooks'],\n options: { position: 'top' | 'bottom' },\n field: T,\n) {\n field.hooks ??= {};\n for (const key in hooks) {\n const oldFn = (field.hooks as any)[key];\n (field.hooks as any)[key] = (...args: any) => {\n if (options.position === 'top') {\n (hooks as any)[key](...args);\n }\n oldFn?.(...args);\n if (options.position === 'bottom') {\n (hooks as any)[key](...args);\n }\n };\n }\n}\n/** @deprecated use actions.hook.merge */\nexport const mergeHooks: MergeHooksConfig<Hooks> = (\n hooks: Hooks,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) => rawConfig((field) => mergeHooksFn(hooks, options, field));\n/** @deprecated use actions.hook.remove */\nexport function removeHooks<T>(list: HooksKey[]) {\n return rawConfig<T>((field) => {\n const oldValue = field.hooks;\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.hooks = oldValue;\n });\n}\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n ViewOutputs,\n} from '../../builder-base';\nimport { combineLatest, map, Observable, skip, startWith, Subject } from 'rxjs';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nimport { mergeHooksFn } from './hook';\nimport { KeyPath } from '../../util';\n\nexport function mergeOutputFn(\n field: _PiResolvedCommonViewFieldConfig,\n outputs: ViewOutputs,\n) {\n field.outputs.update((originOutputs) => {\n originOutputs = { ...originOutputs };\n for (const key in outputs) {\n const oldFn = (originOutputs as any)[key];\n (originOutputs as any)[key] = (...args: any[]) => {\n oldFn?.(...args, field);\n (outputs as any)[key](...args, field);\n };\n }\n return originOutputs;\n });\n}\n\nexport const mergeOutputs = <T>(\n outputs: Record<string, (...args: any[]) => void>,\n) =>\n rawConfig<T>((field) => {\n for (const key in outputs) {\n const oldFn = field.outputs[key];\n field.outputs[key] = (...args: any[]) => {\n if (oldFn) {\n oldFn(...args);\n }\n return (outputs as any)[key](...args);\n };\n }\n });\nexport const asyncMergeOutputs = <T>(\n outputs: Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (...args: any[]) => void\n >,\n) =>\n rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n field.outputs.update((originOutputs) => {\n originOutputs = { ...originOutputs };\n for (const key in outputs) {\n const fn = outputs[key](field);\n const oldFn = (originOutputs as any)[key];\n (originOutputs as any)[key] = (...args: any[]) => {\n if (oldFn) {\n oldFn(...args);\n }\n return fn(...args);\n };\n }\n return originOutputs;\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n });\nexport type EventChangeFn = (\n fn: (\n input: {\n list: KeyPath | undefined;\n output: string;\n }[],\n ) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n) => void;\n\nexport function outputChangeFn(\n rawField: AnyCoreSchemaHandle,\n fn: EventChangeFn,\n) {\n mergeHooksFn(\n {\n allFieldsResolved: (field) =>\n fn((list) => {\n const resultList: {\n subject: Subject<any>;\n field: _PiResolvedCommonViewFieldConfig;\n }[] = [];\n for (const item of list) {\n const emitField = !item.list ? field : field.get(item.list)!;\n const subject = new Subject();\n mergeOutputFn(field, {\n [item.output]: (...args: any[]) => {\n subject.next(args);\n },\n });\n resultList.push({\n subject,\n field: emitField,\n });\n }\n return combineLatest(\n resultList.map(({ subject }) => subject.pipe(startWith(undefined))),\n ).pipe(\n skip(1),\n map((list) => ({\n list,\n field,\n listenFields: resultList.map((item) => item.field),\n })),\n );\n }),\n },\n { position: 'bottom' },\n rawField,\n );\n}\n\nexport function outputChange<T>(fn: EventChangeFn) {\n return rawConfig<T>((field) => outputChangeFn(field, fn));\n}\n","import { rawConfig } from './raw-config';\n\nexport function setAlias<T>(alias: string) {\n return rawConfig<T>((field) => {\n field.alias = alias;\n });\n}\n","import { FieldRenderConfig } from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { rawConfig } from './raw-config';\n\nexport function renderConfig<T>(type: FieldRenderConfig) {\n return rawConfig<T>((field) => {\n field.renderConfig = type;\n });\n}\nexport function formConfig<T>(config: FieldFormConfig<T>) {\n return rawConfig<T>((field) => {\n field.formConfig = { ...field.formConfig, ...config };\n });\n}\n","import { combineLatest, map, Observable, skip } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { rawConfig } from './raw-config';\nimport { KeyPath } from '../../util';\nexport interface ValueChangFnOptions {\n list?: (KeyPath | undefined)[];\n skipInitValue?: boolean;\n}\n\nexport type ValueChangeFn = (\n fn: (input?: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n) => void;\nconst DefaultSelfList = [undefined];\nexport function valueChangeFn(\n field: _PiResolvedCommonViewFieldConfig,\n input: ValueChangFnOptions = {},\n) {\n const listenFields = (input.list ?? DefaultSelfList).map((keyPath) =>\n !keyPath ? field! : field.get(keyPath)!,\n );\n\n return combineLatest(\n listenFields.map((control) =>\n input.skipInitValue\n ? control.form.control!.valueChanges.pipe(skip(1))\n : control.form.control!.valueChanges,\n ),\n ).pipe(map((list) => ({ list, field, listenFields })));\n}\n\nexport function valueChange<TInput>(listenFn: ValueChangeFn) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n listenFn((options) => valueChangeFn(field, options), field);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\n","import { Observable } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { valueChangeFn, ValueChangFnOptions } from './value-change';\nimport { rawConfig } from './raw-config';\nexport interface HideWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n disabled?: boolean;\n\n listen: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n ) => Observable<boolean>;\n}\n\nexport function hideWhen<TInput>(options: HideWhenOption) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n options\n .listen((options) => valueChangeFn(field, options), field)\n .subscribe((hidden) => {\n field.renderConfig.update((value) =>\n !!value.hidden !== hidden\n ? { ...value, hidden: hidden }\n : value,\n );\n if (options.disabled !== undefined && field.formConfig) {\n field.formConfig.update((value) => {\n value = { ...value };\n value.disabled = hidden ? options.disabled! : false;\n return value;\n });\n }\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n\n return field;\n });\n}\n","import { Observable } from 'rxjs';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { valueChangeFn, ValueChangFnOptions } from './value-change';\nimport { rawConfig } from './raw-config';\nexport interface DisableWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n listen: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n listenFields: _PiResolvedCommonViewFieldConfig[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n ) => Observable<boolean>;\n}\n\nexport function disableWhen<TInput>(options: DisableWhenOption) {\n return rawConfig<TInput>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n options\n .listen((options) => valueChangeFn(field, options), field)\n .subscribe((disabled) => {\n if (field.formConfig().disabled !== disabled) {\n field.formConfig.update((value) => ({\n ...value,\n disabled: disabled,\n }));\n }\n });\n },\n },\n { position: 'bottom' },\n field,\n );\n\n return field;\n });\n}\n","import type { BaseMetadata } from 'valibot';\n\nexport interface NonFieldControlAction<\n TInput = unknown,\n> extends BaseMetadata<TInput> {\n readonly type: 'nonFieldControl';\n readonly reference: typeof nonFieldControl;\n readonly value: boolean;\n}\n\nexport function nonFieldControl<TInput>(\n value = true,\n): NonFieldControlAction<TInput> {\n return {\n kind: 'metadata',\n type: 'nonFieldControl',\n reference: nonFieldControl,\n value: value,\n };\n}\n","import { Signal, WritableSignal } from '@angular/core';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base';\nimport { Observable } from 'rxjs';\nimport { RawConfigAction } from '@piying/valibot-visit';\nimport { mergeHooksFn } from './hook';\nimport { AsyncObjectSignal } from '../../util/create-async-object-signal';\nimport { rawConfig } from './raw-config';\n\nimport { asyncMergeOutputs, mergeOutputs } from './output';\n\ntype AsyncResult = Promise<any> | Observable<any> | Signal<any> | (any & {});\ntype AsyncProperty = (field: _PiResolvedCommonViewFieldConfig) => AsyncResult;\ntype ChangeKey = 'inputs' | 'outputs' | 'attributes' | 'events' | 'props';\nexport const CustomDataSymbol = Symbol();\n\nexport const createRemovePropertyFn =\n (key: ChangeKey) =>\n <T>(list: string[]) =>\n rawConfig<T>((rawField, _, ...args) =>\n mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1] as any)[CustomDataSymbol](\n rawField,\n );\n } else {\n data$ = (() => field) as any;\n }\n const obj$ = data$()[key] as AsyncObjectSignal<any>;\n\n list.forEach((key) => {\n obj$.disconnect(key);\n obj$.update((object) => {\n object = { ...object };\n delete object[key];\n return object;\n });\n });\n },\n },\n { position: 'bottom' },\n rawField,\n ),\n );\nexport function createPatchAsyncPropertyFn<\n InputData extends Record<string, AsyncProperty> = Record<\n string,\n AsyncProperty\n >,\n>(key: 'inputs' | 'attributes' | 'events' | 'props' | 'outputs') {\n return <T>(dataObj: InputData) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$ = {\n update: (fn: (a: any) => any) => {\n const value = fn(data$[key]);\n data$[key] = value;\n },\n set: (value: any) => {\n data$[key] = value;\n },\n };\n const inputList = Object.keys(dataObj);\n // 设置初始值\n content$.update((content) => ({\n ...content,\n ...inputList.reduce((obj, item) => {\n obj[item] = content?.[item] ?? undefined;\n return obj;\n }, {} as any),\n }));\n return mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(\n undefined,\n field,\n );\n } else {\n data$ = (() => field) as any;\n }\n const content$: AsyncObjectSignal<any> = data$()[key];\n Object.entries(dataObj).forEach(([key, value]) => {\n const result = value(field);\n content$.connect(key, result);\n });\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\n\nexport function createSetOrPatchPropertyFn<\n InputData extends Record<string, any> = Record<string, any>,\n>(key: ChangeKey, isPatch?: boolean) {\n return <T>(value: InputData) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$ = {\n update: (fn: (a: any) => any) => {\n const value = fn(data$[key]);\n data$[key] = value;\n },\n set: (value: any) => {\n data$[key] = value;\n },\n };\n if (isPatch) {\n content$.update((data) => ({\n ...data,\n ...value,\n }));\n } else {\n content$.set(value);\n }\n });\n}\n\nexport function createMapAsyncPropertyFn(key: ChangeKey) {\n return <T>(\n fn: (field: _PiResolvedCommonViewFieldConfig) => (value: any) => any,\n ) =>\n rawConfig<T>((rawField, _, ...args) =>\n mergeHooksFn(\n {\n allFieldsResolved: (field: _PiResolvedCommonViewFieldConfig) => {\n let data$: WritableSignal<any>;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(\n undefined,\n field,\n );\n } else {\n data$ = (() => field) as any;\n }\n\n const content$ = data$()[key] as AsyncObjectSignal<any>;\n content$.map(fn(field));\n },\n },\n { position: 'bottom' },\n rawField,\n ),\n );\n}\n\nexport type ConfigAction<T> = RawConfigAction<'viewRawConfig', T, any>;\n\nexport const __actions = {\n inputs: {\n patch: createSetOrPatchPropertyFn('inputs', true),\n set: createSetOrPatchPropertyFn('inputs'),\n patchAsync: createPatchAsyncPropertyFn('inputs'),\n remove: createRemovePropertyFn('inputs'),\n mapAsync: createMapAsyncPropertyFn('inputs'),\n },\n outputs: {\n patch: createSetOrPatchPropertyFn<Record<string, (...args: any[]) => any>>(\n 'outputs',\n true,\n ),\n set: createSetOrPatchPropertyFn<Record<string, (...args: any[]) => any>>(\n 'outputs',\n ),\n patchAsync:\n createPatchAsyncPropertyFn<\n Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (...args: any[]) => any\n >\n >('outputs'),\n remove: createRemovePropertyFn('outputs'),\n merge: mergeOutputs,\n mergeAsync: asyncMergeOutputs,\n mapAsync: createMapAsyncPropertyFn('outputs'),\n },\n attributes: {\n patch: createSetOrPatchPropertyFn('attributes', true),\n set: createSetOrPatchPropertyFn('attributes'),\n patchAsync: createPatchAsyncPropertyFn('attributes'),\n remove: createRemovePropertyFn('attributes'),\n mapAsync: createMapAsyncPropertyFn('attributes'),\n },\n events: {\n patch: createSetOrPatchPropertyFn<Record<string, (event: Event) => any>>(\n 'events',\n true,\n ),\n set: createSetOrPatchPropertyFn<Record<string, (event: Event) => any>>(\n 'events',\n ),\n patchAsync:\n createPatchAsyncPropertyFn<\n Record<\n string,\n (field: _PiResolvedCommonViewFieldConfig) => (event: Event) => any\n >\n >('events'),\n remove: createRemovePropertyFn('events'),\n mapAsync: createMapAsyncPropertyFn('events'),\n },\n props: {\n patch: createSetOrPatchPropertyFn('props', true),\n set: createSetOrPatchPropertyFn('props'),\n patchAsync: createPatchAsyncPropertyFn('props'),\n remove: createRemovePropertyFn('props'),\n mapAsync: createMapAsyncPropertyFn('props'),\n },\n};\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreWrapperConfig,\n PI_VIEW_CONFIG_TOKEN,\n} from '../../builder-base';\nimport {\n ObservableSignal,\n observableSignal,\n SetOptional,\n SetUnWrapper$,\n} from '../../util';\nimport { mergeHooksFn } from './hook';\nimport { Signal } from '@angular/core';\nimport { FindConfigToken } from '../../builder-base/find-config';\nimport { map, pipe } from 'rxjs';\nimport { ConfigAction, CustomDataSymbol } from './input-common';\nimport {\n AsyncObjectSignal,\n asyncObjectSignal,\n} from '../../util/create-async-object-signal';\nimport { AnyCoreSchemaHandle } from '../handle/core.schema-handle';\nfunction createSetOrPatchWrappersFn(isPatch?: boolean) {\n return <T>(\n wrappers: (\n | SetOptional<\n SetUnWrapper$<\n CoreWrapperConfig,\n 'inputs' | 'outputs' | 'attributes' | 'events'\n >,\n 'inputs' | 'outputs' | 'attributes' | 'events'\n >\n | string\n )[],\n ) =>\n rawConfig<T>((rawField, _) => {\n const wrapperConfig =\n rawField.globalConfig.additionalData!['defaultWrapperMetadataGroup'];\n if (!isPatch) {\n rawField.wrappers = [];\n }\n wrappers.forEach((wrapperItem) => {\n if (typeof wrapperItem === 'string') {\n const defaultActions: any[] =\n wrapperConfig[wrapperItem]?.actions ?? [];\n const define = {\n type: wrapperItem,\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n rawField.wrappers.push(define);\n defaultActions.forEach((item) => {\n item.value(rawField, _, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return define;\n } else {\n return field.wrappers\n .items()\n .find(\n (item) =>\n (\n item as ObservableSignal<\n CoreWrapperConfig,\n CoreWrapperConfig\n >\n ).input().type === wrapperItem,\n );\n }\n },\n });\n });\n } else {\n rawField.wrappers.push({\n type: wrapperItem.type,\n inputs: wrapperItem.inputs ?? {},\n outputs: wrapperItem.outputs ?? {},\n attributes: wrapperItem.attributes ?? {},\n events: wrapperItem.events ?? {},\n });\n }\n });\n });\n}\n\nfunction removeWrappers<T>(\n removeList:\n | string[]\n | ((list: Signal<CoreWrapperConfig>[]) => Signal<CoreWrapperConfig>[]),\n) {\n return rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n let list;\n if (typeof removeList === 'function') {\n list = removeList(field.wrappers.items());\n } else {\n list = field.wrappers.items().filter((item) => {\n const type = (item as ObservableSignal<any, any>).input().type;\n return removeList.every((name) => name !== type);\n });\n }\n field.wrappers.update(() => list);\n },\n },\n { position: 'bottom' },\n field,\n );\n });\n}\n\nfunction setSubInitValue<Key extends string>(\n key: Key,\n fn: () => Record<Key, AsyncObjectSignal<any>>,\n initObj: any,\n) {\n if (!Object.keys(initObj[key]).length) {\n return;\n }\n fn()[key].set(initObj[key]);\n}\nfunction patchAsyncWrapper<T>(\n type: any,\n actions?: ConfigAction<any>[],\n options?: { insertIndex?: number },\n) {\n return rawConfig<T>((rawFiled) => {\n // 在这里增加要处理的wrapper类型\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const findConfig = field.injector.get(FindConfigToken);\n const initData = observableSignal<\n CoreWrapperConfig,\n CoreWrapperConfig\n >(\n {\n type,\n attributes: asyncObjectSignal({}),\n events: asyncObjectSignal({}),\n inputs: asyncObjectSignal({}),\n outputs: asyncObjectSignal({}),\n } as CoreWrapperConfig,\n {\n pipe: pipe(\n map((item) => {\n const defaultWrapperConfig = findConfig.findWrapperComponent(\n item.type,\n );\n return { ...item, type: defaultWrapperConfig };\n }),\n ),\n injector: field.injector,\n },\n );\n field.wrappers.add(initData, options?.insertIndex);\n\n const defaultConfig = field.injector.get(PI_VIEW_CONFIG_TOKEN);\n let defaultActions: ConfigAction<any>[] = [];\n if (typeof type === 'string') {\n defaultActions = defaultConfig.wrappers?.[type]?.actions ?? [];\n }\n const allActions = [...defaultActions, ...(actions ?? [])];\n\n for (const item of allActions) {\n const tempField: Partial<AnyCoreSchemaHandle> = {\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return tempField;\n }\n return initData;\n },\n });\n setSubInitValue('inputs', initData, tempField);\n setSubInitValue('outputs', initData, tempField);\n setSubInitValue('attributes', initData, tempField);\n setSubInitValue('events', initData, tempField);\n\n (tempField as any).hooks?.allFieldsResolved?.(field);\n }\n },\n },\n { position: 'bottom' },\n rawFiled,\n );\n });\n}\n\nfunction changeAsyncWrapper<T>(\n indexFn: (list: Signal<CoreWrapperConfig>[]) => any,\n actions: ConfigAction<any>[],\n) {\n return rawConfig<T>((rawFiled) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const initData: () => CoreWrapperConfig = indexFn(\n field.wrappers\n .items()\n .map((item) => (item as ObservableSignal<any, any>).input),\n );\n\n if (!initData) {\n throw new Error(`change wrapper not found`);\n }\n for (const item of actions) {\n const tempField: Partial<AnyCoreSchemaHandle> = {\n inputs: {},\n outputs: {},\n attributes: {},\n events: {},\n };\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: (\n rawField: AnyCoreSchemaHandle,\n field: _PiResolvedCommonViewFieldConfig,\n ) => {\n if (rawField) {\n return tempField;\n }\n return initData;\n },\n });\n setSubInitValue('inputs', initData, tempField);\n setSubInitValue('outputs', initData, tempField);\n setSubInitValue('attributes', initData, tempField);\n setSubInitValue('events', initData, tempField);\n (tempField as any).hooks?.allFieldsResolved?.(field);\n }\n },\n },\n { position: 'bottom' },\n rawFiled,\n );\n });\n}\nexport const wrappers = {\n set: createSetOrPatchWrappersFn(),\n patch: createSetOrPatchWrappersFn(true),\n patchAsync: patchAsyncWrapper,\n remove: removeWrappers,\n changeAsync: changeAsyncWrapper,\n};\n","import clsx from 'clsx';\nimport { ClassValue } from 'clsx';\nimport { rawConfig } from './raw-config';\nimport { mergeHooksFn } from './hook';\n\nimport { AsyncCallback } from './type/async-callback';\nimport { CustomDataSymbol, __actions as actions } from './input-common';\nimport { ViewAttributes } from '../../builder-base';\n/** 必须防止到所有wrappers操作后面,防止设置错误\n * 设置到顶层,可能是wrapper,也可能是component\n *\n */\nfunction topClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const wrappers = field.wrappers();\n if (wrappers?.length) {\n wrappers[0].attributes.update((attributes) => ({\n ...attributes,\n class: merge\n ? clsx(attributes?.['class'], className)\n : clsx(className),\n }));\n } else {\n field.attributes.update((attributes) => ({\n ...attributes,\n class: merge\n ? clsx(attributes?.['class'], className)\n : clsx(className),\n }));\n }\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\n/** 仅设置在组件上 */\nconst componentClass = <T>(className: ClassValue, merge?: boolean) =>\n rawConfig<T>((rawField, _, ...args) => {\n let data$;\n if (\n args.length > 0 &&\n typeof args[args.length - 1] === 'object' &&\n CustomDataSymbol in args[args.length - 1]\n ) {\n data$ = (args[args.length - 1][CustomDataSymbol] as any)(rawField);\n } else {\n data$ = rawField;\n }\n const content$: ViewAttributes = data$['attributes'];\n content$['class'] = merge\n ? clsx(content$['class'], className)\n : clsx(className);\n });\n\nconst bottomClass = componentClass;\nfunction patchAsyncClass<T>(fn: AsyncCallback<string>) {\n return actions.attributes.patchAsync<T>({ class: fn });\n}\n\nfunction asyncTopClass<T>(classNameFn: AsyncCallback<ClassValue>) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n const wrappers = field.wrappers();\n if (wrappers?.length) {\n wrappers[0].attributes.connect('class', classNameFn(field));\n } else {\n field.attributes.connect('class', classNameFn(field));\n }\n },\n },\n { position: 'bottom' },\n rawField,\n );\n });\n}\nexport const classAction = {\n top: topClass,\n bottom: bottomClass,\n component: componentClass,\n asyncTop: asyncTopClass,\n asyncBottom: patchAsyncClass,\n asyncComponent: patchAsyncClass,\n};\n","import { InjectorProvider } from '../handle/core.schema-handle';\nimport { rawConfig } from './raw-config';\n\nexport function setProviders<T>(providers: InjectorProvider[]) {\n return rawConfig<T>((field) => {\n field.providers = providers;\n });\n}\nexport function patchProviders<T>(providers: InjectorProvider[]) {\n return rawConfig<T>((field) => {\n field.providers ??= [];\n field.providers.push(providers);\n });\n}\nexport function changeProviders<T>(\n providersFn: (input: InjectorProvider[]) => InjectorProvider[],\n) {\n return rawConfig<T>((field) => {\n const result = providersFn(field.providers ?? []);\n field.providers = result;\n });\n}\n","export * from './layout';\nexport { asControl, condition, asVirtualGroup } from '@piying/valibot-visit';\nexport type { RawConfig } from '@piying/valibot-visit';\nexport { rawConfig } from './raw-config';\nexport * from './component';\nexport * from './output';\nexport * from './alias';\nexport * from './config';\nexport * from './hook';\nexport * from './hide-when';\nexport * from './value-change';\nexport * from './disable-when';\nexport * from './non-field-control';\nimport { wrappers } from './wrapper';\nexport { wrappers as ɵwrappers } from './wrapper';\nexport { CustomDataSymbol } from './input-common';\nexport type { ConfigAction } from './input-common';\nimport { classAction } from './class';\nexport { classAction as ɵclassAction } from './class';\nimport { __actions } from './input-common';\nimport { mergeHooks, patchHooks, removeHooks, setHooks } from './hook';\nimport { changeProviders, patchProviders, setProviders } from './provider';\nexport {\n changeProviders as ɵchangeProviders,\n patchProviders as ɵpatchProviders,\n setProviders as ɵsetProviders,\n};\nexport * from './type/async-callback';\nexport const actions = {\n ...__actions,\n class: classAction,\n wrappers,\n hooks: {\n merge: mergeHooks,\n remove: removeHooks,\n set: setHooks,\n patch: patchHooks,\n },\n providers: {\n set: setProviders,\n patch: patchProviders,\n change: changeProviders,\n },\n};\n","import {\n ArraySchema,\n BaseSchema,\n BaseIssue,\n ErrorMessage,\n ArrayIssue,\n} from 'valibot';\n\nimport * as v from 'valibot';\n\nimport {\n BaseSchemaHandle,\n convertSchema,\n DefaultSchema,\n EnumSchema,\n IntersectSchema,\n LazySchema,\n MetadataAction,\n ObjectSchema,\n Schema,\n SchemaOrPipe,\n TupleSchema,\n UnionSchema,\n VoidSchema,\n} from '@piying/valibot-visit';\nimport {\n FieldRenderConfig,\n ViewOutputs,\n ViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n ViewAttributes,\n ViewProps,\n ViewEvents,\n RawCoreWrapperConfig,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { KeyPath } from '../../util';\nimport { NonFieldControlAction } from '../action/non-field-control';\nimport { Provider, StaticProvider } from '@angular/core';\nimport { pick } from 'es-toolkit';\nexport type InjectorProvider = Provider | StaticProvider;\nconst AnyDefine = v.any();\nfunction AnyDefault(\n input: v.BaseSchema<any, any, any>,\n schemahandle: CoreSchemaHandle<any, any>,\n) {\n return schemahandle.undefinedable\n ? v.optional(input)\n : schemahandle.nullable\n ? v.nullable(input)\n : input;\n}\nconst checkOverride = {\n logicGroup: (schemahandle: CoreSchemaHandle<any, any>) =>\n v.pipe(AnyDefault(AnyDefine, schemahandle)),\n array: (schemahandle: CoreSchemaHandle<any, any>) => {\n const source = schemahandle.coreSchema as v.TupleSchema<any[], any>;\n\n const length =\n source &&\n schemahandle.formConfig.groupMode &&\n schemahandle.formConfig.groupMode !== 'reset'\n ? source.items.length\n : undefined;\n\n return v.pipe(\n AnyDefault(\n v.pipe(\n AnyDefine,\n v.check((value: any[]) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (schemahandle.formConfig.groupMode === 'strict') {\n return value.length === length;\n }\n return true;\n }),\n v.transform((value) => {\n if (\n schemahandle.formConfig.groupMode === 'default' &&\n value.length !== length\n ) {\n return value.slice(0, length);\n }\n return value;\n }),\n ),\n schemahandle,\n ),\n );\n },\n group: (schemahandle: CoreSchemaHandle<any, any>) => {\n const source = schemahandle.coreSchema as v.ObjectSchema<any, any>;\n\n const keys =\n source &&\n schemahandle.formConfig.groupMode &&\n schemahandle.formConfig.groupMode !== 'reset'\n ? (Object.keys(source.entries) as unknown as string[])\n : undefined;\n\n return v.pipe(\n AnyDefault(\n v.pipe(\n AnyDefine,\n v.check((value) => {\n if (typeof value !== 'object') {\n return false;\n }\n if (schemahandle.formConfig.groupMode === 'strict') {\n return Object.keys(value).every((key) => key in source.entries);\n }\n return true;\n }),\n v.transform((a) => {\n if (schemahandle.formConfig.groupMode === 'default') {\n return pick(a, keys!);\n }\n return a;\n }),\n ),\n schemahandle,\n ),\n );\n },\n};\nexport class CoreSchemaHandle<\n Self extends CoreSchemaHandle<any, any>,\n RESOLVED_FN extends () => any,\n> extends BaseSchemaHandle<Self> {\n inputs: ViewInputs = {};\n outputs: ViewOutputs = {};\n attributes: ViewAttributes = {};\n events: ViewEvents = {};\n wrappers: RawCoreWrapperConfig[] = [];\n override props: ViewProps = {};\n alias?: string;\n movePath?: KeyPath;\n renderConfig?: FieldRenderConfig;\n /** todo 非表单应该可选 */\n formConfig: FieldFormConfig = {};\n id?: string;\n isLogicAnd = false;\n isLogicOr = false;\n isArray = false;\n isTuple = false;\n nonFieldControl = false;\n hooks?: HookConfig<ReturnType<RESOLVED_FN>>;\n providers?: InjectorProvider[];\n checkSchema?: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>;\n checkActions: (\n | v.BaseValidation<any, any, any>\n | v.BaseTransformation<any, any, any>\n )[] = [];\n override lazySchema(schema: LazySchema): void {\n super.lazySchema(schema);\n if (this.parent) {\n const wrappered = this.lazyWrapped as any as Self;\n if (this.parent.isArray) {\n this.parent.arrayChild = wrappered;\n } else {\n const index = this.parent.children.findIndex((item) => item === this);\n this.parent.children[index] = wrappered;\n }\n wrappered!.parent = this.parent;\n wrappered!.key = this.key;\n }\n }\n override arraySchema(\n schema: ArraySchema<\n BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n ErrorMessage<ArrayIssue> | undefined\n >,\n ): void {\n if (this.isObjectControl) {\n // 不需要设置默认值,因为item属于模板\n return;\n } else {\n this.isArray = true;\n const sh = new this.globalConfig.handle(\n this.globalConfig,\n this,\n schema.item,\n );\n sh.parent = this;\n this.arrayChild = sh;\n convertSchema(schema.item as SchemaOrPipe, sh);\n this.formConfig.groupMode = 'reset';\n this.formConfig.groupValueSchema = schema.item;\n }\n }\n\n override defaultSchema(schema: DefaultSchema): void {\n this.defaultValue = schema.literal;\n }\n override tupleDefault(schema: TupleSchema): void {\n super.tupleDefault(schema);\n this.isTuple = true;\n if (schema.type === 'tuple') {\n this.formConfig.groupMode = 'default';\n } else if (schema.type === 'loose_tuple') {\n this.formConfig.groupMode = 'loose';\n } else if (schema.type === 'strict_tuple') {\n this.formConfig.groupMode = 'strict';\n }\n }\n override objectDefault(schema: ObjectSchema): void {\n super.objectDefault(schema);\n if (schema.type === 'object') {\n this.formConfig.groupMode = 'default';\n } else if (schema.type === 'loose_object') {\n this.formConfig.groupMode = 'loose';\n } else if (schema.type === 'strict_object') {\n this.formConfig.groupMode = 'strict';\n }\n }\n override recordSchema(\n key: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n value: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n ): void {\n super.recordSchema(key, value);\n this.isGroup = true;\n // equal {[name:string]:v.InferOutput< typeof value>}\n this.formConfig.groupKeySchema = key;\n this.formConfig.groupValueSchema = value;\n this.restSchema(value);\n }\n override restSchema(\n schema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n ): void {\n super.restSchema(schema);\n const sh = new this.globalConfig.handle(this.globalConfig, this, schema);\n sh.parent = this;\n this.arrayChild = sh;\n convertSchema(schema as SchemaOrPipe, sh);\n this.formConfig.groupMode = 'reset';\n }\n override enumSchema(schema: EnumSchema): void {\n this.props['options'] = this.props['options'] ?? schema.options;\n }\n override updateProps(key: string, value: any): void {\n this.props[key] = value;\n }\n override intersectBefore(schema: IntersectSchema): void {\n if (this.childrenAsVirtualGroup) {\n } else {\n this.isLogicAnd = true;\n }\n }\n override logicItemSchema(\n schema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n index: number,\n type: 'intersect' | 'union',\n ): void {\n const sh = new this.globalConfig.handle(\n this.globalConfig,\n this as unknown as AnyCoreSchemaHandle,\n schema,\n );\n if (this.childrenAsVirtualGroup) {\n } else {\n sh.key = index;\n }\n sh.setParent(this);\n convertSchema(schema as SchemaOrPipe, sh);\n }\n override unionBefore(schema: UnionSchema): void {\n if (this.childrenAsVirtualGroup) {\n // 这个参数并不应该出现到这里,因为是专门为intersect设计\n } else {\n this.isLogicOr = true;\n }\n }\n\n override beforeSchemaType(schema: Schema): void {\n super.beforeSchemaType(schema);\n this.formConfig.required = !this.undefinedable && !this.nullable;\n this.formConfig.undefinedable = this.undefinedable;\n this.formConfig.nullable = this.nullable;\n }\n override voidSchema(schema: VoidSchema): void {\n this.nonFieldControl = true;\n }\n\n override metadataDefaulthandle(\n metadata: MetadataAction,\n environments: string[],\n ): void {\n switch (metadata.type as any) {\n case 'viewRawConfig': {\n (metadata as any).value(this as any, this.globalConfig.context);\n break;\n }\n case 'layout': {\n this.movePath = (metadata as any).value.keyPath;\n this.priority = (metadata as any).value.priority;\n break;\n }\n case 'nonFieldControl': {\n this.nonFieldControl = (metadata as any as NonFieldControlAction).value;\n break;\n }\n\n default:\n break;\n }\n }\n override validation(\n item: v.BaseValidation<any, any, v.BaseIssue<unknown>>,\n ): void {\n super.validation(item);\n this.checkActions.push(item);\n }\n override transformation(\n item: v.BaseTransformation<any, any, v.BaseIssue<unknown>>,\n ): void {\n super.transformation(item);\n this.checkActions.push(item);\n }\n override end(schema: SchemaOrPipe): void {\n super.end(schema);\n this.formConfig.defaultValue =\n this.defaultValue ?? (this.nullable ? null : undefined);\n if (this.isGroup) {\n this.checkSchema = v.pipe(\n checkOverride.group(this),\n ...this.checkActions,\n );\n } else if (this.isTuple || this.isArray) {\n this.checkSchema = v.pipe(\n checkOverride.array(this),\n ...this.checkActions,\n );\n } else if (this.isLogicAnd || this.isLogicOr) {\n this.checkSchema = v.pipe(\n checkOverride.logicGroup(this),\n ...this.checkActions,\n );\n }\n }\n coreSchema!: v.BaseSchema<any, any, any>;\n override defineSchema(schema: SchemaOrPipe): void {\n super.defineSchema(schema);\n this.coreSchema = schema;\n }\n}\nexport type AnyCoreSchemaHandle = CoreSchemaHandle<\n any,\n () => _PiResolvedCommonViewFieldConfig\n>;\n","import {\n AnyCoreSchemaHandle,\n CoreSchemaHandle,\n} from './handle/core.schema-handle';\n\nimport {\n convertCore,\n ConvertOptions,\n SchemaOrPipe,\n} from '@piying/valibot-visit';\nimport {\n computed,\n DestroyableInjector,\n DestroyRef,\n Injector,\n signal,\n} from '@angular/core';\nimport {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_VIEW_CONFIG_TOKEN,\n PiCommonConfig,\n PiResolvedCommonViewFieldConfig,\n FormBuilder,\n FormBuilderOptions,\n PI_CONTEXT_TOKEN,\n} from '../builder-base';\nimport { FieldGroup } from '../field/field-group';\nimport { SetOptional } from '../util';\nimport {\n FindConfigFactory,\n FindConfigToken,\n} from '../builder-base/find-config';\nimport { BaseMetadata } from 'valibot';\nexport function convert<\n RESULT extends Omit<PiResolvedCommonViewFieldConfig<any, any>, 'define'>,\n>(\n obj: SchemaOrPipe,\n options: SetOptional<\n ConvertOptions<typeof CoreSchemaHandle<any, any>>,\n 'handle'\n > & {\n injector: DestroyableInjector;\n builder: typeof FormBuilder<CoreSchemaHandle<any, any>>;\n fieldGlobalConfig?: PiCommonConfig;\n },\n) {\n const buildOptions: FormBuilderOptions<RESULT> = {\n form$$: computed<FieldGroup>(\n () => buildOptions.resolvedField$()?.form.control as any,\n ),\n resolvedField$: signal(undefined as any),\n context: options.context,\n };\n const injector = Injector.create({\n providers: [\n {\n provide: PI_FORM_BUILDER_OPTIONS_TOKEN,\n useValue: buildOptions,\n },\n {\n provide: PI_VIEW_CONFIG_TOKEN,\n useValue: options.fieldGlobalConfig,\n },\n {\n provide: PI_CONTEXT_TOKEN,\n useValue: options.context,\n },\n { provide: FindConfigToken, useFactory: FindConfigFactory },\n options.builder,\n ],\n parent: options.injector,\n });\n options.injector.get(DestroyRef).onDestroy(() => {\n injector.destroy();\n });\n return convertCore(\n obj,\n (item: AnyCoreSchemaHandle) => {\n // todo\n injector.get(options.builder).buildRoot({\n field: item,\n resolvedField$: buildOptions.resolvedField$,\n });\n return buildOptions.resolvedField$();\n },\n {\n ...options,\n handle: options?.handle ?? (CoreSchemaHandle as any),\n additionalData: {\n defaultWrapperMetadataGroup: options.fieldGlobalConfig?.wrappers,\n injector,\n },\n defaultMetadataActionsGroup: Object.keys(\n options.fieldGlobalConfig?.types ?? {},\n ).reduce(\n (obj, item) => {\n const { actions } = options.fieldGlobalConfig!.types![item];\n if (actions) {\n obj[item] = actions;\n }\n return obj;\n },\n {} as Record<string, BaseMetadata<any>[]>,\n ),\n },\n );\n}\n","import * as v from 'valibot';\n/** NonFieldControl */\nexport const NFCSchema = v.optional(v.void());\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DefaultOptions","actions"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -146,7 +146,7 @@ declare abstract class AbstractControl<TValue = any> {
|
|
|
146
146
|
private _parent?;
|
|
147
147
|
get parent(): AbstractControl | undefined;
|
|
148
148
|
get valuePath(): (string | number)[];
|
|
149
|
-
get
|
|
149
|
+
get fieldPath(): (string | number)[];
|
|
150
150
|
get value(): TValue;
|
|
151
151
|
required$$: Signal<boolean | undefined>;
|
|
152
152
|
readonly schemaParser: v.SafeParser<SchemaOrPipe, undefined>;
|
|
@@ -175,7 +175,7 @@ declare abstract class AbstractControl<TValue = any> {
|
|
|
175
175
|
protected transformToModel(value: any, control: AbstractControl<any>): any;
|
|
176
176
|
find(name: string | number): AbstractControl | null;
|
|
177
177
|
setControl(name: string | number, control: AbstractControl): void;
|
|
178
|
-
|
|
178
|
+
activatedChildren(): Iterable<[string | number, AbstractControl]>;
|
|
179
179
|
/** 校验和获得值用 */
|
|
180
180
|
private reduceChildren;
|
|
181
181
|
get valueChanges(): Observable<any>;
|
|
@@ -207,7 +207,7 @@ declare class FieldGroup<TControl extends {
|
|
|
207
207
|
children$$: _angular_core.Signal<{
|
|
208
208
|
[x: string]: AbstractControl<any>;
|
|
209
209
|
}>;
|
|
210
|
-
|
|
210
|
+
activatedChildren(): Generator<[string, AbstractControl<any>], void, unknown>;
|
|
211
211
|
removeRestControl(key: string): void;
|
|
212
212
|
setControl(key: string, control: AbstractControl): void;
|
|
213
213
|
getRawValue(): any;
|
|
@@ -242,7 +242,7 @@ declare class FieldArray<TControl extends AbstractControl<any> = any> extends Fi
|
|
|
242
242
|
fixedControls$: _angular_core.WritableSignal<AbstractControl<any>[]>;
|
|
243
243
|
resetControls$: _angular_core.WritableSignal<AbstractControl<any>[]>;
|
|
244
244
|
get controls(): AbstractControl<any>[];
|
|
245
|
-
|
|
245
|
+
activatedChildren(): Iterable<[
|
|
246
246
|
string | number,
|
|
247
247
|
AbstractControl
|
|
248
248
|
]>;
|
|
@@ -263,8 +263,7 @@ declare class FieldLogicGroup extends FieldArray {
|
|
|
263
263
|
/** 过滤激活控件 */
|
|
264
264
|
filterActivateControl$: _angular_core.WritableSignal<((item: AbstractControl, index: number, list: AbstractControl[]) => boolean) | undefined>;
|
|
265
265
|
originValue$$: _angular_core.Signal<any>;
|
|
266
|
-
activatedChildren
|
|
267
|
-
activatedChildrenIterable: _angular_core.Signal<[number, AbstractControl<any>][]>;
|
|
266
|
+
activatedChildren: _angular_core.Signal<[number, AbstractControl<any>][]>;
|
|
268
267
|
getValue(rawData: boolean): any;
|
|
269
268
|
reset(value?: any[]): void;
|
|
270
269
|
getRawValue(): any;
|