@piying/view-angular-core 2.1.5 → 2.1.6

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.
@@ -2431,6 +2431,7 @@ class CoreSchemaHandle extends BaseSchemaHandle {
2431
2431
  this.isGroup = true;
2432
2432
  // equal {[name:string]:v.InferOutput< typeof value>}
2433
2433
  this.formConfig.groupKeySchema = key;
2434
+ this.formConfig.groupValueSchema = value;
2434
2435
  this.restSchema(value);
2435
2436
  }
2436
2437
  restSchema(schema) {
@@ -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/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/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/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 } from '@angular/core';\nimport type {\n PiResolvedCommonViewFieldConfig,\n FormBuilderOptions,\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","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 {\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';\nexport type ValidationErrors = {\n [key: string]: any;\n};\nexport interface ValidatorFn {\n (control: AbstractControl): ValidationErrors | undefined;\n}\nexport interface AsyncValidatorFn {\n (\n control: AbstractControl,\n ):\n | Promise<ValidationErrors | undefined>\n | Observable<ValidationErrors | undefined>\n | Signal<ValidationErrors | 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 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 /** model的value */\n value$$!: Signal<TValue | undefined>;\n /** 已激活的子级,用于校验获得返回值之类 */\n activatedChildren$$?: Signal<AbstractControl[]>;\n /** 通用的子级,用于查询之类 */\n children$$?: Signal<AbstractControl[]>;\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 protected resetIndex$ = signal(0);\n syncError$ = linkedSignal(\n computed(\n () => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n this.resetIndex$();\n this.value$$();\n const result = this.#validators$$().reduce((obj, item) => {\n const result = untracked(() => item(this));\n if (result) {\n obj = { ...obj, ...result };\n }\n return obj;\n }, {} as ValidationErrors);\n const schemaResult = this.#schemaCheck$$();\n if (!schemaResult.success) {\n return { ...result, valibot: schemaResult.issues };\n }\n return Object.keys(result).length\n ? (result as ValidationErrors)\n : 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.value$$();\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.reduce(\n (obj, item) => {\n if (item === ValidatorPending) {\n pendingCount++;\n return obj;\n } else if ('value' in item) {\n return { ...obj, ...item.value };\n } else {\n return { ...obj, error: item.error };\n }\n },\n {} as Record<string, any>,\n );\n if (!Object.keys(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\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.value$$()));\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 protected transfomerToModel$$ = computed(\n () => this.config$().transfomer?.toModel,\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 /** 校验和获得值用 */\n private reduceChildren<T>(\n initialValue: T,\n fn: (child: AbstractControl<any>, value: T) => T,\n shortCircuit?: (value: T) => boolean,\n ): T {\n const childrenMap = (this.activatedChildren$$ ?? this.children$$)?.();\n if (!childrenMap) {\n return initialValue;\n }\n let value = initialValue;\n for (const child of childrenMap) {\n if (!child) {\n continue;\n }\n if (shortCircuit?.(value)) {\n break;\n }\n value = fn(child, value);\n }\n return value;\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 const 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 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 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 /** 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 /** 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 (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.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\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(() => Object.values(this.#controls$$()));\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 override value$$ = signal<any>(undefined);\n\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 const toModel = this.config$?.().transfomer?.toModel;\n const originValue = toModel ? toModel(value, this) : value;\n const transfomered = this.schemaParser(originValue);\n if (transfomered.success) {\n this.value$$.set(transfomered.output);\n this.syncError$.update((data) => {\n if (data) {\n delete data['valibot'];\n }\n return data && Object.keys(data).length ? data : undefined;\n });\n } else {\n this.syncError$.update((data) => ({\n ...data,\n valibot: transfomered.issues,\n }));\n }\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.value$$.set(value);\n this.#viewIndex++;\n this.viewIndex$.set(this.#viewIndex);\n this.resetIndex$.update((a) => a + 1);\n return;\n }\n if (deepEqual(value, this.value$$())) {\n return;\n }\n this.modelValue$.set(value);\n this.value$$.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.value$$.set(initValue);\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.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\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\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 activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n activateControls$ = signal<AbstractControl[] | undefined>(undefined);\n #childUpdate() {\n const returnResult = this.getValue(false);\n return this.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\n }\n return this.#childUpdate();\n });\n\n #getActivateControls() {\n let list;\n if (this.activateControls$()) {\n list = this.activateControls$()!;\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 override activatedChildren$$ = computed(() => this.#getActivateControls());\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 (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.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.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 { AbstractControl } from '../field/abstract_model';\nimport { isFieldArray, isFieldGroup } from '../field/is-field';\n\nexport function getDeepError(control?: AbstractControl) {\n if (!control) {\n return [];\n }\n const list = [];\n const controlList = [control];\n while (controlList.length) {\n const control = controlList.shift()!;\n if (control.valid) {\n continue;\n }\n list.push({ control, errors: control.errors });\n if (isFieldArray(control) || isFieldGroup(control)) {\n (control.activatedChildren$$ ?? control.children$$)().forEach(\n (control) => {\n controlList.push(control);\n },\n );\n }\n }\n return list;\n}\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 let 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 let 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} from './type/token';\nimport {\n computed,\n DestroyRef,\n EnvironmentInjector,\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 PiResolvedCommonViewFieldConfig,\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 { RawKeyPath, SortedArray, toArray, KeyPath } from '../util';\nimport * as v from 'valibot';\nimport { FindConfigToken } from './find-config';\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 #envInjector = inject(EnvironmentInjector);\n #allFieldInitHookList: (() => void)[] = [];\n\n buildRoot(item: BuildRootInputItem<SchemaHandle>) {\n const field = this.#buildControl(\n {\n type: 'root',\n field: { fullPath: [] },\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 let define = !field.type\n ? undefined\n : typeof field.type !== 'string'\n ? field.type\n : this.#findConfig.findComponentConfig(field.type);\n const inputs = field.inputs;\n const outputs = field.outputs;\n\n const attributes = field.attributes;\n\n const events = field.events;\n\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 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 this.#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: 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: field.wrappers,\n injector: this.#envInjector,\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!.destroy();\n (deletedItem.injector as any) = undefined;\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 { provide: EnvironmentInjector, useFactory: () => injector },\n ],\n parent: this.#envInjector,\n });\n this.#envInjector.get(DestroyRef).onDestroy(() => {\n result.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 result.injector = injector.get(EnvironmentInjector);\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}\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 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 if (oldFn) {\n oldFn(...args);\n }\n return (outputs as any)[key](...args);\n };\n }\n return originOutputs;\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<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][CustomDataSymbol];\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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$: AsyncObjectSignal<any> = data$()[key];\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 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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()[key] as WritableSignal<any>;\n if (isPatch) {\n content$.update((data) => ({\n ...data,\n ...value,\n }));\n } else {\n content$.set(value);\n }\n });\n}\nexport function createMapPropertyFn(key: ChangeKey) {\n return <T>(fn: (value: any) => any) =>\n rawConfig<T>((rawField, _, ...args) => {\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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()[key] as AsyncObjectSignal<any>;\n content$.map(fn);\n });\n}\nexport function createMapAsyncPropertyFn(key: ChangeKey) {\n return <T>(\n fn: (field: _PiResolvedCommonViewFieldConfig) => (value: any) => any,\n ) =>\n rawConfig<T>((rawField, _, ...args) => {\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];\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 map: createMapPropertyFn('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 map: createMapPropertyFn('outputs'),\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 map: createMapPropertyFn('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 map: createMapPropertyFn('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 map: createMapPropertyFn('props'),\n mapAsync: createMapAsyncPropertyFn('props'),\n },\n};\n","import { rawConfig } from './raw-config';\nimport { CoreWrapperConfig, PI_VIEW_CONFIG_TOKEN } 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 { asyncObjectSignal } from '../../util/create-async-object-signal';\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 return rawConfig<T>((rawField, _) => {\n const wrapperConfig =\n rawField.globalConfig.additionalData!['defaultWrapperMetadataGroup'];\n const injector = rawField.globalConfig.additionalData!['injector'];\n const OptionDefine = {\n pipe: pipe(\n map((item: any) => {\n if (typeof item.type === 'string') {\n const type = wrapperConfig[item.type].type;\n if (!type) {\n throw new Error(`🈳wrapper:[${type}]❗`);\n }\n return { ...item, type: type };\n }\n\n return item;\n }),\n ),\n injector: injector,\n };\n if (!isPatch) {\n rawField.wrappers.clean();\n }\n wrappers.forEach((item) => {\n if (typeof item === 'string') {\n const defaultActions: any[] = wrapperConfig[item]?.actions ?? [];\n const define = observableSignal(\n {\n type: item,\n inputs: asyncObjectSignal({}),\n outputs: asyncObjectSignal({}),\n attributes: asyncObjectSignal({}),\n events: asyncObjectSignal({}),\n },\n OptionDefine,\n );\n rawField.wrappers.add(define);\n defaultActions.forEach((item) => {\n item.value(rawField, _, {\n [CustomDataSymbol]: define,\n });\n });\n } else {\n rawField.wrappers.add(\n observableSignal(\n {\n type: item.type,\n inputs: asyncObjectSignal(item.inputs ?? {}),\n outputs: asyncObjectSignal(item.outputs ?? {}),\n attributes: asyncObjectSignal(item.attributes ?? {}),\n events: asyncObjectSignal(item.events ?? {}),\n },\n OptionDefine,\n ),\n );\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 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 = {};\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: initData,\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 = 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 = {};\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: initData,\n });\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';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base/type/common-field-config';\n\nimport { AsyncCallback } from './type/async-callback';\nimport { CustomDataSymbol, __actions as actions } from './input-common';\nimport { WritableSignal } from '@angular/core';\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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()['attributes'] as WritableSignal<any>;\n content$.update((data) => ({\n ...data,\n class: merge ? clsx(data?.['class'], className) : clsx(className),\n }));\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","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';\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};\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 CoreWrapperConfig,\n ViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n ViewAttributes,\n ViewProps,\n ViewEvents,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { asyncObjectSignal, combineSignal, KeyPath } from '../../util';\nimport { NonFieldControlAction } from '../action/non-field-control';\n\nexport class CoreSchemaHandle<\n Self extends CoreSchemaHandle<any, any>,\n RESOLVED_FN extends () => any,\n> extends BaseSchemaHandle<Self> {\n inputs = asyncObjectSignal<ViewInputs>({});\n outputs = asyncObjectSignal<ViewOutputs>({});\n attributes = asyncObjectSignal<ViewAttributes>({});\n events = asyncObjectSignal<ViewEvents>({});\n wrappers = combineSignal<CoreWrapperConfig>([]);\n override props = asyncObjectSignal<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 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 }\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.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.update((data) => ({\n ...data,\n options: data['options'] ?? schema.options,\n }));\n }\n override updateProps(key: string, value: any): void {\n this.props.update((data) => ({\n ...data,\n [key]: value,\n }));\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 }\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 end(schema: SchemaOrPipe): void {\n super.end(schema);\n this.formConfig.defaultValue = this.defaultValue;\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 { computed, EnvironmentInjector, Injector, signal } 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: Injector;\n builder: typeof FormBuilder<CoreSchemaHandle<any, any>>;\n fieldGlobalConfig?: PiCommonConfig;\n registerOnDestroy?: (fn: any) => void;\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 { provide: EnvironmentInjector, useFactory: () => injector },\n ],\n parent: options.injector,\n });\n options.registerOnDestroy?.(() => {\n injector.get(EnvironmentInjector).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/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/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/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 } from '@angular/core';\nimport type {\n PiResolvedCommonViewFieldConfig,\n FormBuilderOptions,\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","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 {\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';\nexport type ValidationErrors = {\n [key: string]: any;\n};\nexport interface ValidatorFn {\n (control: AbstractControl): ValidationErrors | undefined;\n}\nexport interface AsyncValidatorFn {\n (\n control: AbstractControl,\n ):\n | Promise<ValidationErrors | undefined>\n | Observable<ValidationErrors | undefined>\n | Signal<ValidationErrors | 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 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 /** model的value */\n value$$!: Signal<TValue | undefined>;\n /** 已激活的子级,用于校验获得返回值之类 */\n activatedChildren$$?: Signal<AbstractControl[]>;\n /** 通用的子级,用于查询之类 */\n children$$?: Signal<AbstractControl[]>;\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 protected resetIndex$ = signal(0);\n syncError$ = linkedSignal(\n computed(\n () => {\n const disabled = this.disabled$$();\n if (disabled) {\n return undefined;\n }\n this.resetIndex$();\n this.value$$();\n const result = this.#validators$$().reduce((obj, item) => {\n const result = untracked(() => item(this));\n if (result) {\n obj = { ...obj, ...result };\n }\n return obj;\n }, {} as ValidationErrors);\n const schemaResult = this.#schemaCheck$$();\n if (!schemaResult.success) {\n return { ...result, valibot: schemaResult.issues };\n }\n return Object.keys(result).length\n ? (result as ValidationErrors)\n : 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.value$$();\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.reduce(\n (obj, item) => {\n if (item === ValidatorPending) {\n pendingCount++;\n return obj;\n } else if ('value' in item) {\n return { ...obj, ...item.value };\n } else {\n return { ...obj, error: item.error };\n }\n },\n {} as Record<string, any>,\n );\n if (!Object.keys(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\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.value$$()));\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 protected transfomerToModel$$ = computed(\n () => this.config$().transfomer?.toModel,\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 /** 校验和获得值用 */\n private reduceChildren<T>(\n initialValue: T,\n fn: (child: AbstractControl<any>, value: T) => T,\n shortCircuit?: (value: T) => boolean,\n ): T {\n const childrenMap = (this.activatedChildren$$ ?? this.children$$)?.();\n if (!childrenMap) {\n return initialValue;\n }\n let value = initialValue;\n for (const child of childrenMap) {\n if (!child) {\n continue;\n }\n if (shortCircuit?.(value)) {\n break;\n }\n value = fn(child, value);\n }\n return value;\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 const 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 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 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 /** 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 (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.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\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(() => Object.values(this.#controls$$()));\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 override value$$ = signal<any>(undefined);\n\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 const toModel = this.config$?.().transfomer?.toModel;\n const originValue = toModel ? toModel(value, this) : value;\n const transfomered = this.schemaParser(originValue);\n if (transfomered.success) {\n this.value$$.set(transfomered.output);\n this.syncError$.update((data) => {\n if (data) {\n delete data['valibot'];\n }\n return data && Object.keys(data).length ? data : undefined;\n });\n } else {\n this.syncError$.update((data) => ({\n ...data,\n valibot: transfomered.issues,\n }));\n }\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.value$$.set(value);\n this.#viewIndex++;\n this.viewIndex$.set(this.#viewIndex);\n this.resetIndex$.update((a) => a + 1);\n return;\n }\n if (deepEqual(value, this.value$$())) {\n return;\n }\n this.modelValue$.set(value);\n this.value$$.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.value$$.set(initValue);\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.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\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\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 activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n activateControls$ = signal<AbstractControl[] | undefined>(undefined);\n #childUpdate() {\n const returnResult = this.getValue(false);\n return this.transfomerToModel$$()?.(returnResult, this) ?? returnResult;\n }\n override value$$ = computed<any>(() => {\n if (this.updateOn$$() === 'submit') {\n this.submitIndex$();\n return untracked(() => {\n return this.#childUpdate();\n });\n }\n return this.#childUpdate();\n });\n\n #getActivateControls() {\n let list;\n if (this.activateControls$()) {\n list = this.activateControls$()!;\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 override activatedChildren$$ = computed(() => this.#getActivateControls());\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 (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.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.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 { AbstractControl } from '../field/abstract_model';\nimport { isFieldArray, isFieldGroup } from '../field/is-field';\n\nexport function getDeepError(control?: AbstractControl) {\n if (!control) {\n return [];\n }\n const list = [];\n const controlList = [control];\n while (controlList.length) {\n const control = controlList.shift()!;\n if (control.valid) {\n continue;\n }\n list.push({ control, errors: control.errors });\n if (isFieldArray(control) || isFieldGroup(control)) {\n (control.activatedChildren$$ ?? control.children$$)().forEach(\n (control) => {\n controlList.push(control);\n },\n );\n }\n }\n return list;\n}\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 let 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 let 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} from './type/token';\nimport {\n computed,\n DestroyRef,\n EnvironmentInjector,\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 PiResolvedCommonViewFieldConfig,\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 { RawKeyPath, SortedArray, toArray, KeyPath } from '../util';\nimport * as v from 'valibot';\nimport { FindConfigToken } from './find-config';\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 #envInjector = inject(EnvironmentInjector);\n #allFieldInitHookList: (() => void)[] = [];\n\n buildRoot(item: BuildRootInputItem<SchemaHandle>) {\n const field = this.#buildControl(\n {\n type: 'root',\n field: { fullPath: [] },\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 let define = !field.type\n ? undefined\n : typeof field.type !== 'string'\n ? field.type\n : this.#findConfig.findComponentConfig(field.type);\n const inputs = field.inputs;\n const outputs = field.outputs;\n\n const attributes = field.attributes;\n\n const events = field.events;\n\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 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 this.#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: 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: field.wrappers,\n injector: this.#envInjector,\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!.destroy();\n (deletedItem.injector as any) = undefined;\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 { provide: EnvironmentInjector, useFactory: () => injector },\n ],\n parent: this.#envInjector,\n });\n this.#envInjector.get(DestroyRef).onDestroy(() => {\n result.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 result.injector = injector.get(EnvironmentInjector);\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}\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 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 if (oldFn) {\n oldFn(...args);\n }\n return (outputs as any)[key](...args);\n };\n }\n return originOutputs;\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<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][CustomDataSymbol];\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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$: AsyncObjectSignal<any> = data$()[key];\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 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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()[key] as WritableSignal<any>;\n if (isPatch) {\n content$.update((data) => ({\n ...data,\n ...value,\n }));\n } else {\n content$.set(value);\n }\n });\n}\nexport function createMapPropertyFn(key: ChangeKey) {\n return <T>(fn: (value: any) => any) =>\n rawConfig<T>((rawField, _, ...args) => {\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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()[key] as AsyncObjectSignal<any>;\n content$.map(fn);\n });\n}\nexport function createMapAsyncPropertyFn(key: ChangeKey) {\n return <T>(\n fn: (field: _PiResolvedCommonViewFieldConfig) => (value: any) => any,\n ) =>\n rawConfig<T>((rawField, _, ...args) => {\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];\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 map: createMapPropertyFn('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 map: createMapPropertyFn('outputs'),\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 map: createMapPropertyFn('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 map: createMapPropertyFn('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 map: createMapPropertyFn('props'),\n mapAsync: createMapAsyncPropertyFn('props'),\n },\n};\n","import { rawConfig } from './raw-config';\nimport { CoreWrapperConfig, PI_VIEW_CONFIG_TOKEN } 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 { asyncObjectSignal } from '../../util/create-async-object-signal';\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 return rawConfig<T>((rawField, _) => {\n const wrapperConfig =\n rawField.globalConfig.additionalData!['defaultWrapperMetadataGroup'];\n const injector = rawField.globalConfig.additionalData!['injector'];\n const OptionDefine = {\n pipe: pipe(\n map((item: any) => {\n if (typeof item.type === 'string') {\n const type = wrapperConfig[item.type].type;\n if (!type) {\n throw new Error(`🈳wrapper:[${type}]❗`);\n }\n return { ...item, type: type };\n }\n\n return item;\n }),\n ),\n injector: injector,\n };\n if (!isPatch) {\n rawField.wrappers.clean();\n }\n wrappers.forEach((item) => {\n if (typeof item === 'string') {\n const defaultActions: any[] = wrapperConfig[item]?.actions ?? [];\n const define = observableSignal(\n {\n type: item,\n inputs: asyncObjectSignal({}),\n outputs: asyncObjectSignal({}),\n attributes: asyncObjectSignal({}),\n events: asyncObjectSignal({}),\n },\n OptionDefine,\n );\n rawField.wrappers.add(define);\n defaultActions.forEach((item) => {\n item.value(rawField, _, {\n [CustomDataSymbol]: define,\n });\n });\n } else {\n rawField.wrappers.add(\n observableSignal(\n {\n type: item.type,\n inputs: asyncObjectSignal(item.inputs ?? {}),\n outputs: asyncObjectSignal(item.outputs ?? {}),\n attributes: asyncObjectSignal(item.attributes ?? {}),\n events: asyncObjectSignal(item.events ?? {}),\n },\n OptionDefine,\n ),\n );\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 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 = {};\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: initData,\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 = 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 = {};\n (item.value as any)(tempField, undefined, {\n [CustomDataSymbol]: initData,\n });\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';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base/type/common-field-config';\n\nimport { AsyncCallback } from './type/async-callback';\nimport { CustomDataSymbol, __actions as actions } from './input-common';\nimport { WritableSignal } from '@angular/core';\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$: 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];\n } else {\n data$ = (() => rawField) as any;\n }\n const content$ = data$()['attributes'] as WritableSignal<any>;\n content$.update((data) => ({\n ...data,\n class: merge ? clsx(data?.['class'], className) : clsx(className),\n }));\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","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';\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};\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 CoreWrapperConfig,\n ViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n ViewAttributes,\n ViewProps,\n ViewEvents,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { asyncObjectSignal, combineSignal, KeyPath } from '../../util';\nimport { NonFieldControlAction } from '../action/non-field-control';\n\nexport class CoreSchemaHandle<\n Self extends CoreSchemaHandle<any, any>,\n RESOLVED_FN extends () => any,\n> extends BaseSchemaHandle<Self> {\n inputs = asyncObjectSignal<ViewInputs>({});\n outputs = asyncObjectSignal<ViewOutputs>({});\n attributes = asyncObjectSignal<ViewAttributes>({});\n events = asyncObjectSignal<ViewEvents>({});\n wrappers = combineSignal<CoreWrapperConfig>([]);\n override props = asyncObjectSignal<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 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 }\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.update((data) => ({\n ...data,\n options: data['options'] ?? schema.options,\n }));\n }\n override updateProps(key: string, value: any): void {\n this.props.update((data) => ({\n ...data,\n [key]: value,\n }));\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 }\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 end(schema: SchemaOrPipe): void {\n super.end(schema);\n this.formConfig.defaultValue = this.defaultValue;\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 { computed, EnvironmentInjector, Injector, signal } 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: Injector;\n builder: typeof FormBuilder<CoreSchemaHandle<any, any>>;\n fieldGlobalConfig?: PiCommonConfig;\n registerOnDestroy?: (fn: any) => void;\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 { provide: EnvironmentInjector, useFactory: () => injector },\n ],\n parent: options.injector,\n });\n options.registerOnDestroy?.(() => {\n injector.get(EnvironmentInjector).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
@@ -38,6 +38,7 @@ interface FieldFormConfig<T = any> {
38
38
  /** group/array */
39
39
  groupMode?: 'loose' | 'default' | 'strict' | 'reset';
40
40
  groupKeySchema?: BaseSchema<any, any, any>;
41
+ groupValueSchema?: BaseSchema<any, any, any>;
41
42
  /** logic group */
42
43
  /** or在更新值时,会自动切换到第一个匹配的 */
43
44
  disableOrUpdateActivate?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piying/view-angular-core",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "homepage": "https://piying-org.github.io/website/docs/client/intro",
5
5
  "repository": {
6
6
  "url": "https://github.com/piying-org/piying-view"