@piying/view-angular-core 1.3.2 → 1.3.3
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.
|
@@ -1312,6 +1312,14 @@ class FormBuilder {
|
|
|
1312
1312
|
const { templateField, form, field } = buildItem;
|
|
1313
1313
|
if (templateField && field.form.control) {
|
|
1314
1314
|
field.restChildren = signal([]);
|
|
1315
|
+
const isCheckedKey = (key) => {
|
|
1316
|
+
if (form.config$().groupKeySchema) {
|
|
1317
|
+
if (!v.safeParse(form.config$().groupKeySchema, key).success) {
|
|
1318
|
+
return false;
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
return true;
|
|
1322
|
+
};
|
|
1315
1323
|
const updateItem = (key, initValue) => {
|
|
1316
1324
|
const result = this.#createObjectRestItem({ ...buildItem, skipAppend: true }, {
|
|
1317
1325
|
...templateField,
|
|
@@ -1345,6 +1353,9 @@ class FormBuilder {
|
|
|
1345
1353
|
if (key in restControl) {
|
|
1346
1354
|
continue;
|
|
1347
1355
|
}
|
|
1356
|
+
if (!isCheckedKey(key)) {
|
|
1357
|
+
continue;
|
|
1358
|
+
}
|
|
1348
1359
|
isUpdateItem = true;
|
|
1349
1360
|
updateItem(key, initUpdate);
|
|
1350
1361
|
}
|
|
@@ -1354,10 +1365,14 @@ class FormBuilder {
|
|
|
1354
1365
|
});
|
|
1355
1366
|
field.action = {
|
|
1356
1367
|
set: (value, key) => {
|
|
1357
|
-
untracked(() => {
|
|
1368
|
+
return untracked(() => {
|
|
1369
|
+
if (!isCheckedKey(key)) {
|
|
1370
|
+
return false;
|
|
1371
|
+
}
|
|
1358
1372
|
const result = updateItem(key, true);
|
|
1359
1373
|
this.allFieldInitHookCall();
|
|
1360
1374
|
result.form.control.updateValue(value);
|
|
1375
|
+
return true;
|
|
1361
1376
|
});
|
|
1362
1377
|
},
|
|
1363
1378
|
remove: (key) => {
|
|
@@ -1416,7 +1431,7 @@ class FormBuilder {
|
|
|
1416
1431
|
});
|
|
1417
1432
|
field.action = {
|
|
1418
1433
|
set: (value, index) => {
|
|
1419
|
-
untracked(() => {
|
|
1434
|
+
return untracked(() => {
|
|
1420
1435
|
index = (typeof index === 'number'
|
|
1421
1436
|
? index
|
|
1422
1437
|
: (field.restChildren?.().length ?? 0));
|
|
@@ -1425,6 +1440,7 @@ class FormBuilder {
|
|
|
1425
1440
|
field.restChildren.set(list);
|
|
1426
1441
|
this.allFieldInitHookCall();
|
|
1427
1442
|
result.form.control.updateValue(value);
|
|
1443
|
+
return true;
|
|
1428
1444
|
});
|
|
1429
1445
|
},
|
|
1430
1446
|
remove: (index) => {
|
|
@@ -1711,11 +1727,13 @@ function patchAsyncFn(patchKey) {
|
|
|
1711
1727
|
};
|
|
1712
1728
|
return mergeHooksFn({
|
|
1713
1729
|
[hookName]: (field) => {
|
|
1730
|
+
const result = asyncInputMerge(Object.entries(dataObj).reduce((obj, [key, value]) => {
|
|
1731
|
+
obj[key] = value(field);
|
|
1732
|
+
return obj;
|
|
1733
|
+
}, {}), field[patchKey]);
|
|
1734
|
+
field.define.attributes = result;
|
|
1714
1735
|
field[patchKey] =
|
|
1715
|
-
|
|
1716
|
-
obj[key] = value(field);
|
|
1717
|
-
return obj;
|
|
1718
|
-
}, {}), field[patchKey]);
|
|
1736
|
+
result;
|
|
1719
1737
|
},
|
|
1720
1738
|
}, { position: options?.addPosition ?? 'bottom' }, rawField);
|
|
1721
1739
|
});
|
|
@@ -2016,6 +2034,9 @@ function componentClass(className, merge) {
|
|
|
2016
2034
|
};
|
|
2017
2035
|
});
|
|
2018
2036
|
}
|
|
2037
|
+
function patchAsyncClass(fn) {
|
|
2038
|
+
return patchAsyncAttributes({ class: fn });
|
|
2039
|
+
}
|
|
2019
2040
|
|
|
2020
2041
|
function nonFieldControl(value = true) {
|
|
2021
2042
|
return {
|
|
@@ -2104,6 +2125,7 @@ class CoreSchemaHandle extends BaseSchemaHandle {
|
|
|
2104
2125
|
super.recordSchema(key, value);
|
|
2105
2126
|
this.isGroup = true;
|
|
2106
2127
|
// equal {[name:string]:v.InferOutput< typeof value>}
|
|
2128
|
+
this.formConfig.groupKeySchema = key;
|
|
2107
2129
|
this.restSchema(value);
|
|
2108
2130
|
}
|
|
2109
2131
|
restSchema(schema) {
|
|
@@ -2226,5 +2248,5 @@ const NFCSchema = v.optional(v.void());
|
|
|
2226
2248
|
* Generated bundle index. Do not edit.
|
|
2227
2249
|
*/
|
|
2228
2250
|
|
|
2229
|
-
export { AbstractControl, CoreSchemaHandle, FieldArray, FieldControl, FieldGroup, FieldLogicGroup, FormBuilder, INVALID, NFCSchema, PENDING, PI_CONTEXT_TOKEN, PI_FORM_BUILDER_ALIAS_MAP, PI_FORM_BUILDER_OPTIONS_TOKEN, PI_VIEW_CONFIG_TOKEN, SortedArray, UpdateType, VALID, arrayStartsWith, asyncInputMerge, clone, componentClass, controlStatusList, convert, createViewControlLink, disableWhen, effectListen, fieldControlStatusClass, formConfig, hideWhen, isArray, isFieldArray, isFieldControl, isFieldGroup, isFieldLogicGroup, isGroup, layout, mergeHooks, mergeHooksFn, mergeOutputFn, mergeOutputs, nonFieldControl, outputChange, outputChangeFn, patchAsyncAttributes, patchAsyncFn, patchAsyncInputs, patchAsyncProps, patchAttributes, patchHooks, patchInputs, patchOutputs, patchProps, patchWrappers, rawConfig, removeAttributes, removeHooks, removeInputs, removeOutputs, removeProps, removeWrappers, renderConfig, setAlias, setAttributes, setComponent, setHooks, setInputs, setOutputs, setProps, setWrappers, toArray, toObservable, topClass, unWrapSignal$1 as unWrapSignal, valueChange, valueChangeFn };
|
|
2251
|
+
export { AbstractControl, CoreSchemaHandle, FieldArray, FieldControl, FieldGroup, FieldLogicGroup, FormBuilder, INVALID, NFCSchema, PENDING, PI_CONTEXT_TOKEN, PI_FORM_BUILDER_ALIAS_MAP, PI_FORM_BUILDER_OPTIONS_TOKEN, PI_VIEW_CONFIG_TOKEN, SortedArray, UpdateType, VALID, arrayStartsWith, asyncInputMerge, clone, componentClass, controlStatusList, convert, createViewControlLink, disableWhen, effectListen, fieldControlStatusClass, formConfig, hideWhen, isArray, isFieldArray, isFieldControl, isFieldGroup, isFieldLogicGroup, isGroup, layout, mergeHooks, mergeHooksFn, mergeOutputFn, mergeOutputs, nonFieldControl, outputChange, outputChangeFn, patchAsyncAttributes, patchAsyncClass, patchAsyncFn, patchAsyncInputs, patchAsyncProps, patchAttributes, patchHooks, patchInputs, patchOutputs, patchProps, patchWrappers, rawConfig, removeAttributes, removeHooks, removeInputs, removeOutputs, removeProps, removeWrappers, renderConfig, setAlias, setAttributes, setComponent, setHooks, setInputs, setOutputs, setProps, setWrappers, toArray, toObservable, topClass, unWrapSignal$1 as unWrapSignal, valueChange, valueChangeFn };
|
|
2230
2252
|
//# sourceMappingURL=piying-view-angular-core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piying-view-angular-core.mjs","sources":["../../../projects/view-angular-core/src/util/array-startswith.ts","../../../projects/view-angular-core/src/util/effect-listen.ts","../../../projects/view-angular-core/src/util/to_observable.ts","../../../projects/view-angular-core/src/util/clone.ts","../../../projects/view-angular-core/src/util/unwrap-signal.ts","../../../projects/view-angular-core/src/util/to-array.ts","../../../projects/view-angular-core/src/util/sorted-array.ts","../../../projects/view-angular-core/src/util/create-view-control-link.ts","../../../projects/view-angular-core/src/util/control-status-to-class.ts","../../../projects/view-angular-core/src/convert/util/is-promise.ts","../../../projects/view-angular-core/src/util/async-validator-convert.ts","../../../projects/view-angular-core/src/builder-base/type/token.ts","../../../projects/view-angular-core/src/field/abstract_model.ts","../../../projects/view-angular-core/src/field/type.ts","../../../projects/view-angular-core/src/field/field-group-base.ts","../../../projects/view-angular-core/src/field/field-array.ts","../../../projects/view-angular-core/src/field/field-control.ts","../../../projects/view-angular-core/src/field/field-logic-group.ts","../../../projects/view-angular-core/src/field/is-field.ts","../../../projects/view-angular-core/src/field/field-group.ts","../../../projects/view-angular-core/src/builder-base/util/is-group.ts","../../../projects/view-angular-core/src/builder-base/create-field.ts","../../../projects/view-angular-core/src/builder-base/util/unwrap-signal.ts","../../../projects/view-angular-core/src/builder-base/const.ts","../../../projects/view-angular-core/src/builder-base/class/parent-map.ts","../../../projects/view-angular-core/src/builder-base/util/group-flat.ts","../../../projects/view-angular-core/src/builder-base/field-query.ts","../../../projects/view-angular-core/src/builder-base/builder.base.ts","../../../projects/view-angular-core/src/convert/action/layout.ts","../../../projects/view-angular-core/src/convert/action/raw-config.ts","../../../projects/view-angular-core/src/convert/action/component.ts","../../../projects/view-angular-core/src/convert/action/hook.ts","../../../projects/view-angular-core/src/convert/action/input.ts","../../../projects/view-angular-core/src/convert/action/attribute.ts","../../../projects/view-angular-core/src/convert/action/prop.ts","../../../projects/view-angular-core/src/convert/action/output.ts","../../../projects/view-angular-core/src/convert/action/wrapper.ts","../../../projects/view-angular-core/src/convert/action/alias.ts","../../../projects/view-angular-core/src/convert/action/config.ts","../../../projects/view-angular-core/src/convert/action/value-change.ts","../../../projects/view-angular-core/src/convert/action/hide-when.ts","../../../projects/view-angular-core/src/convert/action/disable-when.ts","../../../projects/view-angular-core/src/convert/action/class.ts","../../../projects/view-angular-core/src/convert/action/non-field-control.ts","../../../projects/view-angular-core/src/convert/handle/core.schema-handle.ts","../../../projects/view-angular-core/src/convert/form-convert.ts","../../../projects/view-angular-core/src/convert/schema/no-control.schema.ts","../../../projects/view-angular-core/piying-view-angular-core.ts"],"sourcesContent":["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","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 rfdc from 'rfdc';\nexport const clone = rfdc({ proto: false, circles: false });\n","import { isSignal, Signal, WritableSignal } from '@angular/core';\n\nexport function unWrapSignal<T>(value?: T | Signal<T>) {\n return isSignal(value) ? value() : value;\n}\n\nexport type UnWrapSignal<T> = T extends Signal<infer Value> ? Value : T;\n\nexport type SignalInputValue<T> = T | Signal<T> | WritableSignal<T> | undefined;\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","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 () => {\n disposeList.forEach((fn) => fn());\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 { 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 {\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 { clone, toObservable } from '../util';\nimport {\n asyncValidatorToSignal,\n ValidatorPending,\n} from '../util/async-validator-convert';\nimport { PI_CONTEXT_TOKEN } from '../builder-base/type/token';\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>;\n\nexport abstract class AbstractControl<TValue = any> {\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 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\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({});\n /** @internal */\n initConfig(config: any) {\n this.config$ = config;\n }\n protected getInitValue(value: any) {\n return value ?? this.config$().defaultValue;\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 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.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 }\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';\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}\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 _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 (this.config$().groupMode === 'loose') {\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","import { computed, signal } 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 override value$$ = computed<any>(() => {\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 (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\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 {\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';\nconst InitPendingValue = {\n touched: false,\n change: false,\n value: undefined,\n};\nexport class FieldControl<TValue = any> extends AbstractControl<TValue> {\n pendingStatus = signal(InitPendingValue);\n\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 }\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 if (pendingStatus.touched) {\n this.markAsTouched();\n }\n if (pendingStatus.change) {\n this.viewValueChange(pendingStatus.value);\n }\n this.pendingStatus.set(InitPendingValue);\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 { AbstractControl } from './abstract_model';\nimport { FieldArray } from './field-array';\nimport { computed, signal } from '@angular/core';\nimport { LogicType } from './type';\nimport { deepEqual } from 'fast-equals';\n// 切换索引后,理论上应该触发下值变更,否则不知道值是什么\nexport class FieldLogicGroup extends FieldArray {\n /** 待定参数 */\n activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n activateControl$ = signal<AbstractControl[] | undefined>(undefined);\n override value$$ = computed<any>(() => {\n const returnResult = this.getValue(false);\n return (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\n });\n\n #getActivateControls() {\n let list;\n if (this.activateControl$()) {\n list = this.activateControl$()!;\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 getValue(rawData: boolean) {\n const controls = rawData\n ? this.#getActivateControls()\n : this.#getActivateControls().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 const viewValue =\n this.config$().transfomer?.toView?.(initValue, this) ?? initValue;\n this.fixedControls$().forEach((control, i) => {\n control.reset(viewValue);\n });\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 const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n this.fixedControls$().forEach((control, i) => {\n control.updateValue(viewValue);\n });\n }\n /** @internal */\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n const viewValue =\n this.config$().transfomer?.toView?.(initValue, this) ?? initValue;\n this.fixedControls$().forEach((control, i) => {\n control.updateInitValue(viewValue);\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 { computed, signal } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { isFieldLogicGroup } from './is-field';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldGroup<\n TControl extends { [K in keyof TControl]: AbstractControl<any> } = any,\n> extends FieldGroupbase {\n override value$$ = computed<any>(() => {\n const result = this._reduceChildren(\n { ...this.#looseValue$$() },\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 return (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\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, item) => {\n if (!(item in controls)) {\n obj[item] = inputValue[item];\n }\n return obj;\n },\n {} as Record<string, any>,\n )\n : {};\n }\n #looseValue$$ = computed(() => {\n const resetValue = this.resetValue$();\n if (!resetValue || isFieldLogicGroup(this.parent)) {\n return undefined;\n }\n return resetValue;\n });\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","import { isSignal, Signal } from '@angular/core';\n\nexport function unWrapSignal<T>(value?: T | Signal<T>) {\n return isSignal(value) ? value() : value;\n}\n","import { DefaultConfigKey } from './type';\nimport { ConfigMergeStrategy } from './type/common-field-config';\n\nexport const DCONFIG_EFAULT_MERGE_STRAGEGY: Record<\n DefaultConfigKey,\n ConfigMergeStrategy\n> = {\n props: 'merge',\n formConfig: 'merge',\n renderConfig: 'merge',\n inputs: 'merge',\n outputs: 'merge',\n wrappers: 'replace',\n attributes: 'merge',\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","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 {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_FORM_BUILDER_ALIAS_MAP,\n PI_VIEW_CONFIG_TOKEN,\n} from './type/token';\nimport {\n computed,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\n\nimport { createField } from './create-field';\nimport { unWrapSignal } from './util/unwrap-signal';\nimport { DCONFIG_EFAULT_MERGE_STRAGEGY } from './const';\nimport { ParentMap } from './class/parent-map';\n\nimport { fieldQuery } from './field-query';\n\nimport {\n _PiResolvedCommonViewFieldConfig,\n ConfigMergeStrategy,\n CoreRawWrapperConfig,\n CoreResolvedWrapperConfig,\n PiCommonDefaultConfig,\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 {\n RawKeyPath,\n SortedArray,\n SignalInputValue,\n UnWrapSignal,\n clone,\n toArray,\n KeyPath,\n} from '../util';\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 #globalConfig = inject(PI_VIEW_CONFIG_TOKEN);\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 // 利用类型查引用,\n let viewDefaultConfig: PiCommonDefaultConfig | undefined;\n const type = field.type;\n let define;\n if (type) {\n const result = this.#resolveComponent(type);\n viewDefaultConfig = result.defaultConfig;\n define = result.define;\n }\n const mergeStrategy = this.#globalConfig?.defaultConfigMergeStrategy;\n\n const inputs = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.inputs,\n viewDefaultConfig?.inputs,\n field.inputs,\n ],\n false,\n mergeStrategy?.inputs ?? DCONFIG_EFAULT_MERGE_STRAGEGY.inputs,\n );\n const outputs = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.outputs,\n viewDefaultConfig?.outputs,\n field.outputs,\n ],\n false,\n mergeStrategy?.outputs ?? DCONFIG_EFAULT_MERGE_STRAGEGY.outputs,\n );\n const attributes = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.attributes,\n viewDefaultConfig?.attributes,\n field.attributes,\n ],\n false,\n mergeStrategy?.attributes ?? DCONFIG_EFAULT_MERGE_STRAGEGY.attributes,\n );\n const wrappers1 = this.configMergeRaw(\n [\n this.#globalConfig?.defaultConfig?.wrappers,\n viewDefaultConfig?.wrappers,\n field.wrappers,\n ],\n true,\n mergeStrategy?.wrappers ?? DCONFIG_EFAULT_MERGE_STRAGEGY.wrappers,\n );\n const wrappers = this.#resolveWrappers(wrappers1);\n const props = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.props,\n viewDefaultConfig?.props,\n field.props,\n ],\n false,\n mergeStrategy?.props ?? DCONFIG_EFAULT_MERGE_STRAGEGY.props,\n );\n\n const formConfig$ = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.formConfig,\n viewDefaultConfig?.formConfig,\n field.formConfig,\n ],\n false,\n mergeStrategy?.formConfig ?? DCONFIG_EFAULT_MERGE_STRAGEGY.formConfig,\n );\n const renderConfig = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.renderConfig,\n viewDefaultConfig?.renderConfig,\n field.renderConfig,\n ],\n false,\n mergeStrategy?.renderConfig ?? DCONFIG_EFAULT_MERGE_STRAGEGY.renderConfig,\n );\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 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,\n context: this.#options.context,\n priority: field.priority,\n hooks: field.hooks,\n alias: field.alias,\n inputs: inputs,\n outputs: outputs,\n attributes,\n define: define ? { ...define, inputs, outputs, attributes } : undefined,\n wrappers,\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 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 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 const result = updateItem(key, true);\n this.allFieldInitHookCall();\n result.form.control!.updateValue(value);\n });\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 = 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 });\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 #resolveComponent(type: string | any) {\n let define;\n let defaultConfig;\n // 查引用\n if (typeof type === 'string') {\n const config = this.#globalConfig?.types?.[type];\n if (!config) {\n throw new Error(`🈳define:[${type}]❗`);\n }\n defaultConfig = config;\n if (Object.keys(config).length) {\n define = {\n ...config,\n };\n return {\n define: { ...config },\n defaultConfig,\n };\n }\n } else {\n return { define: { type: type } };\n }\n return {\n define,\n defaultConfig,\n };\n }\n\n protected configMergeRaw<T extends SignalInputValue<any>>(\n list: T[],\n isArray: boolean,\n strategy: ConfigMergeStrategy,\n ): UnWrapSignal<NonNullable<T>> {\n let value;\n if (isArray) {\n if (strategy === 'merge') {\n value = list\n .filter(Boolean)\n .flat()\n .map((item) => unWrapSignal(item)) as any;\n } else {\n value = list.reduce(\n (data, item: any) => unWrapSignal(item) ?? data,\n [],\n ) as any;\n }\n } else {\n if (strategy === 'merge') {\n value = list.reduce(\n (obj, item: any) => ({\n ...obj,\n ...unWrapSignal(item),\n }),\n {},\n ) as any;\n } else {\n value = list.reduce(\n (data, item: any) => unWrapSignal(item) ?? data,\n {},\n ) as any;\n }\n }\n return clone(value) as any;\n }\n /**\n * 后面覆盖前面\n * */\n protected configMerge<T extends SignalInputValue<any>>(\n list: T[],\n isArray: boolean,\n strategy: ConfigMergeStrategy,\n ): WritableSignal<UnWrapSignal<NonNullable<T>>> {\n return signal(this.configMergeRaw(list, isArray, strategy));\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 #resolveWrappers(\n wrappers?: CoreRawWrapperConfig[],\n ): WritableSignal<CoreResolvedWrapperConfig[]> {\n const result = (wrappers ?? []).map((wrapper) => {\n // 查引用1\n if (typeof wrapper === 'string') {\n const config = this.#globalConfig?.wrappers?.[wrapper];\n if (!config) {\n throw new Error(`🈳wrapper:[${wrapper}]❗`);\n }\n return {\n ...config,\n inputs: signal(config.inputs),\n attributes: signal(config.attributes),\n };\n } else if (typeof wrapper.type === 'string') {\n // 查引用2\n const config = this.#globalConfig?.wrappers?.[wrapper.type];\n if (!config) {\n throw new Error(`🈳wrapper:[${wrapper.type}]❗`);\n }\n return {\n inputs: signal({ ...config.inputs, ...wrapper.inputs }),\n outputs: { ...config.outputs, ...wrapper.outputs },\n attributes: signal({ ...config.attributes, ...wrapper.attributes }),\n type: config.type,\n };\n } else {\n return {\n ...wrapper,\n inputs: signal(wrapper.inputs),\n attributes: signal(wrapper.attributes),\n };\n }\n });\n return signal(result);\n }\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 { rawConfig } from './raw-config';\n\nexport function setComponent<T>(type: any) {\n return rawConfig<T>((field) => {\n field.type = type;\n });\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>;\nexport const setHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = hooks;\n });\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}\nexport const mergeHooks: MergeHooksConfig<Hooks> = (\n hooks: Hooks,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) => rawConfig((field) => mergeHooksFn(hooks, options, field));\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 {\n computed,\n isSignal,\n linkedSignal,\n Signal,\n WritableSignal,\n} from '@angular/core';\nimport { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreRawViewInputs,\n} from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { Observable } from 'rxjs';\nimport { isPromise, isSubscribable } from '../util/is-promise';\nimport { unWrapSignal, Writeable } from '../../util';\nexport function setInputs<T>(inputs: CoreRawViewInputs) {\n return rawConfig<T>((field) => {\n field.inputs = inputs;\n });\n}\nexport function patchInputs<T>(inputs: CoreRawViewInputs) {\n return rawConfig<T>((field) => {\n field.inputs = {\n ...field.inputs,\n ...inputs,\n };\n });\n}\nexport function removeInputs<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.inputs);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.inputs = oldValue;\n });\n}\nexport function asyncInputMerge(\n dataObj: Record<string, any>,\n data$: WritableSignal<any>,\n) {\n const signalObj = {} as Record<string, Signal<any>>;\n const inputList = Object.keys(dataObj);\n\n inputList.forEach((key) => {\n const result = dataObj[key];\n if (isPromise(result)) {\n // promise\n result.then((value: any) => {\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = value;\n return lastData;\n });\n });\n } else if (isSubscribable(result)) {\n // rxjs\n result.subscribe({\n next: (value) => {\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = value;\n return lastData;\n });\n },\n });\n } else if (isSignal(result)) {\n signalObj[key] = result;\n } else {\n // 普通类型\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = result;\n return lastData;\n });\n }\n });\n const signalKeyList = Object.keys(signalObj);\n\n if (signalKeyList.length) {\n return linkedSignal(\n computed(() => ({\n ...data$(),\n ...signalKeyList.reduce(\n (obj, key) => ({ ...obj, [key]: signalObj[key]() }),\n {} as Record<string, any>,\n ),\n })),\n );\n }\n return data$;\n}\nexport function patchAsyncFn(patchKey: 'props' | 'inputs' | 'attributes') {\n return <T>(\n dataObj: Record<\n string,\n (\n field: _PiResolvedCommonViewFieldConfig,\n ) => Promise<any> | Observable<any> | Signal<any> | (any & {})\n >,\n options?: {\n addPosition: 'top' | 'bottom';\n hookName: 'fieldResolved' | 'allFieldsResolved';\n },\n ) =>\n rawConfig<T>((rawField) => {\n const inputList = Object.keys(dataObj);\n const hookName = options?.hookName ?? ('allFieldsResolved' as const);\n // 设置初始值\n rawField[patchKey] = {\n ...rawField[patchKey],\n ...inputList.reduce((obj, item) => {\n obj[item] = rawField[patchKey]?.[item] ?? undefined;\n return obj;\n }, {} as any),\n };\n return mergeHooksFn(\n {\n [hookName]: (field: _PiResolvedCommonViewFieldConfig) => {\n (field as Writeable<_PiResolvedCommonViewFieldConfig>)[patchKey] =\n asyncInputMerge(\n Object.entries(dataObj).reduce(\n (obj, [key, value]) => {\n obj[key] = value(field);\n return obj;\n },\n {} as Record<string, any>,\n ),\n field[patchKey],\n );\n },\n },\n { position: options?.addPosition ?? 'bottom' },\n rawField,\n );\n });\n}\nexport const patchAsyncInputs = patchAsyncFn('inputs');\n","import { rawConfig } from './raw-config';\nimport { CoreRawViewAttributes } from '../../builder-base';\nimport { unWrapSignal } from '../../util';\nimport { patchAsyncFn } from './input';\nexport function setAttributes<T>(attributes: CoreRawViewAttributes) {\n return rawConfig<T>((field) => {\n field.attributes = attributes;\n });\n}\nexport function patchAttributes<T>(attributes: CoreRawViewAttributes) {\n return rawConfig<T>((field) => {\n field.attributes = {\n ...field.attributes,\n ...attributes,\n };\n });\n}\nexport function removeAttributes<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.attributes);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.attributes = oldValue;\n });\n}\nexport const patchAsyncAttributes = patchAsyncFn('attributes');\n","import { rawConfig } from './raw-config';\nimport { CoreRawProps } from '../../builder-base';\nimport { unWrapSignal } from '../../util';\nimport { patchAsyncFn } from './input';\nexport function setProps<T>(props: CoreRawProps) {\n return rawConfig<T>((field) => {\n field.props = props;\n });\n}\nexport function patchProps<T>(props: CoreRawProps) {\n return rawConfig<T>((field) => {\n field.props = {\n ...field.props,\n ...props,\n };\n });\n}\nexport function removeProps<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.props);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.props = oldValue;\n });\n}\nexport const patchAsyncProps = patchAsyncFn('props');\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreRawViewOutputs,\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';\nexport function setOutputs<T>(outputs: CoreRawViewOutputs) {\n return rawConfig<T>((field) => {\n field.outputs = outputs;\n });\n}\nexport function patchOutputs<T>(outputs: CoreRawViewOutputs) {\n return rawConfig<T>((field) => {\n const oldValue = field.outputs;\n field.outputs = {\n ...oldValue,\n ...outputs,\n };\n });\n}\nexport function removeOutputs<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = field.outputs;\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.outputs = oldValue;\n });\n}\n\nexport function mergeOutputFn(\n field: _PiResolvedCommonViewFieldConfig,\n outputs: CoreRawViewOutputs,\n options: { position: 'top' | 'bottom' },\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 if (options.position === 'top') {\n (outputs as any)[key](...args, field);\n }\n oldFn?.(...args, field);\n if (options.position === 'bottom') {\n (outputs as any)[key](...args, field);\n }\n };\n }\n return originOutputs;\n });\n}\nconst DefaultOptions = { position: 'bottom' as const };\n\nexport const mergeOutputs = <T>(\n outputs: Record<string, (...args: any[]) => void>,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) =>\n rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n mergeOutputFn(field, outputs, options);\n },\n },\n { position: 'bottom' },\n field,\n );\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(\n field,\n {\n [item.output]: (...args: any[]) => {\n subject.next(args);\n },\n },\n { position: 'bottom' },\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';\nimport { CoreRawWrapperConfig } from '../../builder-base';\nimport { toArray } from '../../util';\n\nexport function setWrappers<T>(wrappers: CoreRawWrapperConfig[]) {\n return rawConfig<T>((field) => {\n field.wrappers = wrappers;\n });\n}\ntype PatchWrappersOptions = {\n position: 'head' | 'tail';\n};\nconst defaultValue: PatchWrappersOptions = {\n position: 'tail',\n};\nexport function patchWrappers<T>(\n wrappers: CoreRawWrapperConfig | CoreRawWrapperConfig[],\n options: PatchWrappersOptions = defaultValue,\n) {\n return rawConfig<T>((field) => {\n const list = toArray(wrappers)!;\n field.wrappers ??= [];\n if (options.position === 'tail') {\n field.wrappers.push(...list);\n } else {\n field.wrappers.unshift(...list);\n }\n });\n}\nexport function removeWrappers<T>(list: string[]) {\n return rawConfig<T>((field) => {\n if (!field.wrappers) {\n return;\n }\n const wrappers = field.wrappers;\n for (let i = 0; i < list.length; i++) {\n const name = list[i];\n for (let j = 0; j < wrappers.length; j++) {\n const config = wrappers[j];\n const name2 = typeof config === 'string' ? config : config.type;\n if (name2 === name) {\n wrappers.splice(j, 1);\n break;\n }\n }\n }\n field.wrappers = wrappers;\n });\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}\nexport interface ChangeWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n fn: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n input: ValueChangFnOptions;\n }>,\n ) => void;\n}\nexport type ValueChangeFn = (\n fn: (input?: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n) => void;\nconst DefaultSelfList = [undefined];\nexport function valueChangeFn(\n field: _PiResolvedCommonViewFieldConfig,\n input: ValueChangFnOptions = {},\n) {\n const list = (input.list ?? DefaultSelfList).map((keyPath) =>\n !keyPath ? field.form.control! : field.get(keyPath)!.form.control!,\n );\n\n return combineLatest(\n list.map((control) =>\n input.skipInitValue\n ? control.valueChanges.pipe(skip(1))\n : control.valueChanges,\n ),\n ).pipe(map((list) => ({ list, field, listenFields: list })));\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 clsx from 'clsx';\nimport { ClassValue } from 'clsx';\nimport { rawConfig } from './raw-config';\nimport { mergeHooksFn } from './hook';\n/** 必须防止到所有wrappers操作后面,防止设置错误\n * 设置到顶层,可能是wrapper,也可能是component\n *\n */\nexport function topClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n fieldResolved: (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/** 仅设置在组件上 */\nexport function componentClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((field) => {\n field.attributes = {\n ...field.attributes,\n class: merge\n ? clsx(field.attributes?.['class'], className)\n : clsx(className),\n };\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 {\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 CoreRawViewOutputs,\n CoreRawWrapperConfig,\n CoreRawViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { 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?: CoreRawViewInputs;\n outputs?: CoreRawViewOutputs;\n wrappers?: CoreRawWrapperConfig[];\n attributes?: Record<string, any>;\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.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 ??= {};\n this.props['options'] ??= schema.options;\n }\n override intersectBefore(schema: IntersectSchema): void {\n if (this.childrenAsVirtualGroup) {\n // 临时修复,需要把action分为前后两个部分\n if (this.type === 'intersect') {\n this.type = 'intersect-group';\n }\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';\nexport function convert<\n RESULT extends Omit<PiResolvedCommonViewFieldConfig<any, any>, 'define'>,\n>(\n obj: SchemaOrPipe,\n options: SetOptional<ConvertOptions, 'handle'> & {\n injector: Injector;\n builder: typeof FormBuilder;\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 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 },\n );\n}\n","import * as v from 'valibot';\nexport const NFCSchema = v.optional(v.void());\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["unWrapSignal","DefaultOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"piying-view-angular-core.mjs","sources":["../../../projects/view-angular-core/src/util/array-startswith.ts","../../../projects/view-angular-core/src/util/effect-listen.ts","../../../projects/view-angular-core/src/util/to_observable.ts","../../../projects/view-angular-core/src/util/clone.ts","../../../projects/view-angular-core/src/util/unwrap-signal.ts","../../../projects/view-angular-core/src/util/to-array.ts","../../../projects/view-angular-core/src/util/sorted-array.ts","../../../projects/view-angular-core/src/util/create-view-control-link.ts","../../../projects/view-angular-core/src/util/control-status-to-class.ts","../../../projects/view-angular-core/src/convert/util/is-promise.ts","../../../projects/view-angular-core/src/util/async-validator-convert.ts","../../../projects/view-angular-core/src/builder-base/type/token.ts","../../../projects/view-angular-core/src/field/abstract_model.ts","../../../projects/view-angular-core/src/field/type.ts","../../../projects/view-angular-core/src/field/field-group-base.ts","../../../projects/view-angular-core/src/field/field-array.ts","../../../projects/view-angular-core/src/field/field-control.ts","../../../projects/view-angular-core/src/field/field-logic-group.ts","../../../projects/view-angular-core/src/field/is-field.ts","../../../projects/view-angular-core/src/field/field-group.ts","../../../projects/view-angular-core/src/builder-base/util/is-group.ts","../../../projects/view-angular-core/src/builder-base/create-field.ts","../../../projects/view-angular-core/src/builder-base/util/unwrap-signal.ts","../../../projects/view-angular-core/src/builder-base/const.ts","../../../projects/view-angular-core/src/builder-base/class/parent-map.ts","../../../projects/view-angular-core/src/builder-base/util/group-flat.ts","../../../projects/view-angular-core/src/builder-base/field-query.ts","../../../projects/view-angular-core/src/builder-base/builder.base.ts","../../../projects/view-angular-core/src/convert/action/layout.ts","../../../projects/view-angular-core/src/convert/action/raw-config.ts","../../../projects/view-angular-core/src/convert/action/component.ts","../../../projects/view-angular-core/src/convert/action/hook.ts","../../../projects/view-angular-core/src/convert/action/input.ts","../../../projects/view-angular-core/src/convert/action/attribute.ts","../../../projects/view-angular-core/src/convert/action/prop.ts","../../../projects/view-angular-core/src/convert/action/output.ts","../../../projects/view-angular-core/src/convert/action/wrapper.ts","../../../projects/view-angular-core/src/convert/action/alias.ts","../../../projects/view-angular-core/src/convert/action/config.ts","../../../projects/view-angular-core/src/convert/action/value-change.ts","../../../projects/view-angular-core/src/convert/action/hide-when.ts","../../../projects/view-angular-core/src/convert/action/disable-when.ts","../../../projects/view-angular-core/src/convert/action/class.ts","../../../projects/view-angular-core/src/convert/action/non-field-control.ts","../../../projects/view-angular-core/src/convert/handle/core.schema-handle.ts","../../../projects/view-angular-core/src/convert/form-convert.ts","../../../projects/view-angular-core/src/convert/schema/no-control.schema.ts","../../../projects/view-angular-core/piying-view-angular-core.ts"],"sourcesContent":["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","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 rfdc from 'rfdc';\nexport const clone = rfdc({ proto: false, circles: false });\n","import { isSignal, Signal, WritableSignal } from '@angular/core';\n\nexport function unWrapSignal<T>(value?: T | Signal<T>) {\n return isSignal(value) ? value() : value;\n}\n\nexport type UnWrapSignal<T> = T extends Signal<infer Value> ? Value : T;\n\nexport type SignalInputValue<T> = T | Signal<T> | WritableSignal<T> | undefined;\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","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 () => {\n disposeList.forEach((fn) => fn());\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 { 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 {\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 { clone, toObservable } from '../util';\nimport {\n asyncValidatorToSignal,\n ValidatorPending,\n} from '../util/async-validator-convert';\nimport { PI_CONTEXT_TOKEN } from '../builder-base/type/token';\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>;\n\nexport abstract class AbstractControl<TValue = any> {\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 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\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({});\n /** @internal */\n initConfig(config: any) {\n this.config$ = config;\n }\n protected getInitValue(value: any) {\n return value ?? this.config$().defaultValue;\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 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.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 }\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}\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 _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 (this.config$().groupMode === 'loose') {\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","import { computed, signal } 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 override value$$ = computed<any>(() => {\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 (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\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 {\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';\nconst InitPendingValue = {\n touched: false,\n change: false,\n value: undefined,\n};\nexport class FieldControl<TValue = any> extends AbstractControl<TValue> {\n pendingStatus = signal(InitPendingValue);\n\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 }\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 if (pendingStatus.touched) {\n this.markAsTouched();\n }\n if (pendingStatus.change) {\n this.viewValueChange(pendingStatus.value);\n }\n this.pendingStatus.set(InitPendingValue);\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 { AbstractControl } from './abstract_model';\nimport { FieldArray } from './field-array';\nimport { computed, signal } from '@angular/core';\nimport { LogicType } from './type';\nimport { deepEqual } from 'fast-equals';\n// 切换索引后,理论上应该触发下值变更,否则不知道值是什么\nexport class FieldLogicGroup extends FieldArray {\n /** 待定参数 */\n activateIndex$ = signal(0);\n type = signal<LogicType>('and');\n activateControl$ = signal<AbstractControl[] | undefined>(undefined);\n override value$$ = computed<any>(() => {\n const returnResult = this.getValue(false);\n return (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\n });\n\n #getActivateControls() {\n let list;\n if (this.activateControl$()) {\n list = this.activateControl$()!;\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 getValue(rawData: boolean) {\n const controls = rawData\n ? this.#getActivateControls()\n : this.#getActivateControls().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 const viewValue =\n this.config$().transfomer?.toView?.(initValue, this) ?? initValue;\n this.fixedControls$().forEach((control, i) => {\n control.reset(viewValue);\n });\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 const viewValue = this.config$().transfomer?.toView?.(value, this) ?? value;\n this.fixedControls$().forEach((control, i) => {\n control.updateValue(viewValue);\n });\n }\n /** @internal */\n override updateInitValue(value: any): void {\n const initValue = this.getInitValue(value);\n const viewValue =\n this.config$().transfomer?.toView?.(initValue, this) ?? initValue;\n this.fixedControls$().forEach((control, i) => {\n control.updateInitValue(viewValue);\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 { computed, signal } from '@angular/core';\n\nimport { AbstractControl } from './abstract_model';\nimport { isFieldLogicGroup } from './is-field';\nimport { FieldGroupbase } from './field-group-base';\n\nexport class FieldGroup<\n TControl extends { [K in keyof TControl]: AbstractControl<any> } = any,\n> extends FieldGroupbase {\n override value$$ = computed<any>(() => {\n const result = this._reduceChildren(\n { ...this.#looseValue$$() },\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 return (\n this.config$().transfomer?.toModel?.(returnResult, this) ?? returnResult\n );\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, item) => {\n if (!(item in controls)) {\n obj[item] = inputValue[item];\n }\n return obj;\n },\n {} as Record<string, any>,\n )\n : {};\n }\n #looseValue$$ = computed(() => {\n const resetValue = this.resetValue$();\n if (!resetValue || isFieldLogicGroup(this.parent)) {\n return undefined;\n }\n return resetValue;\n });\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","import { isSignal, Signal } from '@angular/core';\n\nexport function unWrapSignal<T>(value?: T | Signal<T>) {\n return isSignal(value) ? value() : value;\n}\n","import { DefaultConfigKey } from './type';\nimport { ConfigMergeStrategy } from './type/common-field-config';\n\nexport const DCONFIG_EFAULT_MERGE_STRAGEGY: Record<\n DefaultConfigKey,\n ConfigMergeStrategy\n> = {\n props: 'merge',\n formConfig: 'merge',\n renderConfig: 'merge',\n inputs: 'merge',\n outputs: 'merge',\n wrappers: 'replace',\n attributes: 'merge',\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","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 {\n PI_FORM_BUILDER_OPTIONS_TOKEN,\n PI_FORM_BUILDER_ALIAS_MAP,\n PI_VIEW_CONFIG_TOKEN,\n} from './type/token';\nimport {\n computed,\n DestroyRef,\n EnvironmentInjector,\n inject,\n Injector,\n signal,\n untracked,\n WritableSignal,\n} from '@angular/core';\n\nimport { createField } from './create-field';\nimport { unWrapSignal } from './util/unwrap-signal';\nimport { DCONFIG_EFAULT_MERGE_STRAGEGY } from './const';\nimport { ParentMap } from './class/parent-map';\n\nimport { fieldQuery } from './field-query';\n\nimport {\n _PiResolvedCommonViewFieldConfig,\n ConfigMergeStrategy,\n CoreRawWrapperConfig,\n CoreResolvedWrapperConfig,\n PiCommonDefaultConfig,\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 {\n RawKeyPath,\n SortedArray,\n SignalInputValue,\n UnWrapSignal,\n clone,\n toArray,\n KeyPath,\n} from '../util';\nimport * as v from 'valibot';\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 #globalConfig = inject(PI_VIEW_CONFIG_TOKEN);\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 // 利用类型查引用,\n let viewDefaultConfig: PiCommonDefaultConfig | undefined;\n const type = field.type;\n let define;\n if (type) {\n const result = this.#resolveComponent(type);\n viewDefaultConfig = result.defaultConfig;\n define = result.define;\n }\n const mergeStrategy = this.#globalConfig?.defaultConfigMergeStrategy;\n\n const inputs = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.inputs,\n viewDefaultConfig?.inputs,\n field.inputs,\n ],\n false,\n mergeStrategy?.inputs ?? DCONFIG_EFAULT_MERGE_STRAGEGY.inputs,\n );\n const outputs = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.outputs,\n viewDefaultConfig?.outputs,\n field.outputs,\n ],\n false,\n mergeStrategy?.outputs ?? DCONFIG_EFAULT_MERGE_STRAGEGY.outputs,\n );\n const attributes = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.attributes,\n viewDefaultConfig?.attributes,\n field.attributes,\n ],\n false,\n mergeStrategy?.attributes ?? DCONFIG_EFAULT_MERGE_STRAGEGY.attributes,\n );\n const wrappers1 = this.configMergeRaw(\n [\n this.#globalConfig?.defaultConfig?.wrappers,\n viewDefaultConfig?.wrappers,\n field.wrappers,\n ],\n true,\n mergeStrategy?.wrappers ?? DCONFIG_EFAULT_MERGE_STRAGEGY.wrappers,\n );\n const wrappers = this.#resolveWrappers(wrappers1);\n const props = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.props,\n viewDefaultConfig?.props,\n field.props,\n ],\n false,\n mergeStrategy?.props ?? DCONFIG_EFAULT_MERGE_STRAGEGY.props,\n );\n\n const formConfig$ = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.formConfig,\n viewDefaultConfig?.formConfig,\n field.formConfig,\n ],\n false,\n mergeStrategy?.formConfig ?? DCONFIG_EFAULT_MERGE_STRAGEGY.formConfig,\n );\n const renderConfig = this.configMerge(\n [\n this.#globalConfig?.defaultConfig?.renderConfig,\n viewDefaultConfig?.renderConfig,\n field.renderConfig,\n ],\n false,\n mergeStrategy?.renderConfig ?? DCONFIG_EFAULT_MERGE_STRAGEGY.renderConfig,\n );\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 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,\n context: this.#options.context,\n priority: field.priority,\n hooks: field.hooks,\n alias: field.alias,\n inputs: inputs,\n outputs: outputs,\n attributes,\n define: define ? { ...define, inputs, outputs, attributes } : undefined,\n wrappers,\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 return 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 },\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 = 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 return 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 },\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 #resolveComponent(type: string | any) {\n let define;\n let defaultConfig;\n // 查引用\n if (typeof type === 'string') {\n const config = this.#globalConfig?.types?.[type];\n if (!config) {\n throw new Error(`🈳define:[${type}]❗`);\n }\n defaultConfig = config;\n if (Object.keys(config).length) {\n define = {\n ...config,\n };\n return {\n define: { ...config },\n defaultConfig,\n };\n }\n } else {\n return { define: { type: type } };\n }\n return {\n define,\n defaultConfig,\n };\n }\n\n protected configMergeRaw<T extends SignalInputValue<any>>(\n list: T[],\n isArray: boolean,\n strategy: ConfigMergeStrategy,\n ): UnWrapSignal<NonNullable<T>> {\n let value;\n if (isArray) {\n if (strategy === 'merge') {\n value = list\n .filter(Boolean)\n .flat()\n .map((item) => unWrapSignal(item)) as any;\n } else {\n value = list.reduce(\n (data, item: any) => unWrapSignal(item) ?? data,\n [],\n ) as any;\n }\n } else {\n if (strategy === 'merge') {\n value = list.reduce(\n (obj, item: any) => ({\n ...obj,\n ...unWrapSignal(item),\n }),\n {},\n ) as any;\n } else {\n value = list.reduce(\n (data, item: any) => unWrapSignal(item) ?? data,\n {},\n ) as any;\n }\n }\n return clone(value) as any;\n }\n /**\n * 后面覆盖前面\n * */\n protected configMerge<T extends SignalInputValue<any>>(\n list: T[],\n isArray: boolean,\n strategy: ConfigMergeStrategy,\n ): WritableSignal<UnWrapSignal<NonNullable<T>>> {\n return signal(this.configMergeRaw(list, isArray, strategy));\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 #resolveWrappers(\n wrappers?: CoreRawWrapperConfig[],\n ): WritableSignal<CoreResolvedWrapperConfig[]> {\n const result = (wrappers ?? []).map((wrapper) => {\n // 查引用1\n if (typeof wrapper === 'string') {\n const config = this.#globalConfig?.wrappers?.[wrapper];\n if (!config) {\n throw new Error(`🈳wrapper:[${wrapper}]❗`);\n }\n return {\n ...config,\n inputs: signal(config.inputs),\n attributes: signal(config.attributes),\n };\n } else if (typeof wrapper.type === 'string') {\n // 查引用2\n const config = this.#globalConfig?.wrappers?.[wrapper.type];\n if (!config) {\n throw new Error(`🈳wrapper:[${wrapper.type}]❗`);\n }\n return {\n inputs: signal({ ...config.inputs, ...wrapper.inputs }),\n outputs: { ...config.outputs, ...wrapper.outputs },\n attributes: signal({ ...config.attributes, ...wrapper.attributes }),\n type: config.type,\n };\n } else {\n return {\n ...wrapper,\n inputs: signal(wrapper.inputs),\n attributes: signal(wrapper.attributes),\n };\n }\n });\n return signal(result);\n }\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 { rawConfig } from './raw-config';\n\nexport function setComponent<T>(type: any) {\n return rawConfig<T>((field) => {\n field.type = type;\n });\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>;\nexport const setHooks: HooksConfig<Hooks> = (hooks) =>\n rawConfig((field) => {\n field.hooks = hooks;\n });\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}\nexport const mergeHooks: MergeHooksConfig<Hooks> = (\n hooks: Hooks,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) => rawConfig((field) => mergeHooksFn(hooks, options, field));\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 {\n computed,\n isSignal,\n linkedSignal,\n Signal,\n WritableSignal,\n} from '@angular/core';\nimport { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreRawViewInputs,\n} from '../../builder-base';\nimport { mergeHooksFn } from './hook';\nimport { Observable } from 'rxjs';\nimport { isPromise, isSubscribable } from '../util/is-promise';\nimport { unWrapSignal, Writeable } from '../../util';\nexport function setInputs<T>(inputs: CoreRawViewInputs) {\n return rawConfig<T>((field) => {\n field.inputs = inputs;\n });\n}\nexport function patchInputs<T>(inputs: CoreRawViewInputs) {\n return rawConfig<T>((field) => {\n field.inputs = {\n ...field.inputs,\n ...inputs,\n };\n });\n}\nexport function removeInputs<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.inputs);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.inputs = oldValue;\n });\n}\nexport function asyncInputMerge(\n dataObj: Record<string, any>,\n data$: WritableSignal<any>,\n) {\n const signalObj = {} as Record<string, Signal<any>>;\n const inputList = Object.keys(dataObj);\n\n inputList.forEach((key) => {\n const result = dataObj[key];\n if (isPromise(result)) {\n // promise\n result.then((value: any) => {\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = value;\n return lastData;\n });\n });\n } else if (isSubscribable(result)) {\n // rxjs\n result.subscribe({\n next: (value) => {\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = value;\n return lastData;\n });\n },\n });\n } else if (isSignal(result)) {\n signalObj[key] = result;\n } else {\n // 普通类型\n data$.update((lastData) => {\n lastData = { ...lastData };\n lastData[key] = result;\n return lastData;\n });\n }\n });\n const signalKeyList = Object.keys(signalObj);\n\n if (signalKeyList.length) {\n return linkedSignal(\n computed(() => ({\n ...data$(),\n ...signalKeyList.reduce(\n (obj, key) => ({ ...obj, [key]: signalObj[key]() }),\n {} as Record<string, any>,\n ),\n })),\n );\n }\n return data$;\n}\nexport function patchAsyncFn(patchKey: 'props' | 'inputs' | 'attributes') {\n return <T>(\n dataObj: Record<\n string,\n (\n field: _PiResolvedCommonViewFieldConfig,\n ) => Promise<any> | Observable<any> | Signal<any> | (any & {})\n >,\n options?: {\n addPosition: 'top' | 'bottom';\n hookName: 'fieldResolved' | 'allFieldsResolved';\n },\n ) =>\n rawConfig<T>((rawField) => {\n const inputList = Object.keys(dataObj);\n const hookName = options?.hookName ?? ('allFieldsResolved' as const);\n // 设置初始值\n rawField[patchKey] = {\n ...rawField[patchKey],\n ...inputList.reduce((obj, item) => {\n obj[item] = rawField[patchKey]?.[item] ?? undefined;\n return obj;\n }, {} as any),\n };\n return mergeHooksFn(\n {\n [hookName]: (field: _PiResolvedCommonViewFieldConfig) => {\n const result = asyncInputMerge(\n Object.entries(dataObj).reduce(\n (obj, [key, value]) => {\n obj[key] = value(field);\n return obj;\n },\n {} as Record<string, any>,\n ),\n field[patchKey],\n );\n field.define!.attributes = result;\n (field as Writeable<_PiResolvedCommonViewFieldConfig>)[patchKey] =\n result;\n },\n },\n { position: options?.addPosition ?? 'bottom' },\n rawField,\n );\n });\n}\nexport const patchAsyncInputs = patchAsyncFn('inputs');\n","import { rawConfig } from './raw-config';\nimport { CoreRawViewAttributes } from '../../builder-base';\nimport { unWrapSignal } from '../../util';\nimport { patchAsyncFn } from './input';\nexport function setAttributes<T>(attributes: CoreRawViewAttributes) {\n return rawConfig<T>((field) => {\n field.attributes = attributes;\n });\n}\nexport function patchAttributes<T>(attributes: CoreRawViewAttributes) {\n return rawConfig<T>((field) => {\n field.attributes = {\n ...field.attributes,\n ...attributes,\n };\n });\n}\nexport function removeAttributes<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.attributes);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.attributes = oldValue;\n });\n}\nexport const patchAsyncAttributes = patchAsyncFn('attributes');\n","import { rawConfig } from './raw-config';\nimport { CoreRawProps } from '../../builder-base';\nimport { unWrapSignal } from '../../util';\nimport { patchAsyncFn } from './input';\nexport function setProps<T>(props: CoreRawProps) {\n return rawConfig<T>((field) => {\n field.props = props;\n });\n}\nexport function patchProps<T>(props: CoreRawProps) {\n return rawConfig<T>((field) => {\n field.props = {\n ...field.props,\n ...props,\n };\n });\n}\nexport function removeProps<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = unWrapSignal(field.props);\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.props = oldValue;\n });\n}\nexport const patchAsyncProps = patchAsyncFn('props');\n","import { rawConfig } from './raw-config';\nimport {\n _PiResolvedCommonViewFieldConfig,\n CoreRawViewOutputs,\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';\nexport function setOutputs<T>(outputs: CoreRawViewOutputs) {\n return rawConfig<T>((field) => {\n field.outputs = outputs;\n });\n}\nexport function patchOutputs<T>(outputs: CoreRawViewOutputs) {\n return rawConfig<T>((field) => {\n const oldValue = field.outputs;\n field.outputs = {\n ...oldValue,\n ...outputs,\n };\n });\n}\nexport function removeOutputs<T>(list: string[]) {\n return rawConfig<T>((field) => {\n const oldValue = field.outputs;\n if (!oldValue) {\n return;\n }\n list.forEach((item) => {\n delete oldValue[item];\n });\n field.outputs = oldValue;\n });\n}\n\nexport function mergeOutputFn(\n field: _PiResolvedCommonViewFieldConfig,\n outputs: CoreRawViewOutputs,\n options: { position: 'top' | 'bottom' },\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 if (options.position === 'top') {\n (outputs as any)[key](...args, field);\n }\n oldFn?.(...args, field);\n if (options.position === 'bottom') {\n (outputs as any)[key](...args, field);\n }\n };\n }\n return originOutputs;\n });\n}\nconst DefaultOptions = { position: 'bottom' as const };\n\nexport const mergeOutputs = <T>(\n outputs: Record<string, (...args: any[]) => void>,\n options: { position: 'top' | 'bottom' } = DefaultOptions,\n) =>\n rawConfig<T>((field) => {\n mergeHooksFn(\n {\n allFieldsResolved: (field) => {\n mergeOutputFn(field, outputs, options);\n },\n },\n { position: 'bottom' },\n field,\n );\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(\n field,\n {\n [item.output]: (...args: any[]) => {\n subject.next(args);\n },\n },\n { position: 'bottom' },\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';\nimport { CoreRawWrapperConfig } from '../../builder-base';\nimport { toArray } from '../../util';\n\nexport function setWrappers<T>(wrappers: CoreRawWrapperConfig[]) {\n return rawConfig<T>((field) => {\n field.wrappers = wrappers;\n });\n}\ntype PatchWrappersOptions = {\n position: 'head' | 'tail';\n};\nconst defaultValue: PatchWrappersOptions = {\n position: 'tail',\n};\nexport function patchWrappers<T>(\n wrappers: CoreRawWrapperConfig | CoreRawWrapperConfig[],\n options: PatchWrappersOptions = defaultValue,\n) {\n return rawConfig<T>((field) => {\n const list = toArray(wrappers)!;\n field.wrappers ??= [];\n if (options.position === 'tail') {\n field.wrappers.push(...list);\n } else {\n field.wrappers.unshift(...list);\n }\n });\n}\nexport function removeWrappers<T>(list: string[]) {\n return rawConfig<T>((field) => {\n if (!field.wrappers) {\n return;\n }\n const wrappers = field.wrappers;\n for (let i = 0; i < list.length; i++) {\n const name = list[i];\n for (let j = 0; j < wrappers.length; j++) {\n const config = wrappers[j];\n const name2 = typeof config === 'string' ? config : config.type;\n if (name2 === name) {\n wrappers.splice(j, 1);\n break;\n }\n }\n }\n field.wrappers = wrappers;\n });\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}\nexport interface ChangeWhenOption<\n T extends _PiResolvedCommonViewFieldConfig = _PiResolvedCommonViewFieldConfig,\n> {\n fn: (\n fn: (input: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n input: ValueChangFnOptions;\n }>,\n ) => void;\n}\nexport type ValueChangeFn = (\n fn: (input?: ValueChangFnOptions) => Observable<{\n field: _PiResolvedCommonViewFieldConfig;\n list: any[];\n }>,\n field: _PiResolvedCommonViewFieldConfig,\n) => void;\nconst DefaultSelfList = [undefined];\nexport function valueChangeFn(\n field: _PiResolvedCommonViewFieldConfig,\n input: ValueChangFnOptions = {},\n) {\n const list = (input.list ?? DefaultSelfList).map((keyPath) =>\n !keyPath ? field.form.control! : field.get(keyPath)!.form.control!,\n );\n\n return combineLatest(\n list.map((control) =>\n input.skipInitValue\n ? control.valueChanges.pipe(skip(1))\n : control.valueChanges,\n ),\n ).pipe(map((list) => ({ list, field, listenFields: list })));\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 clsx from 'clsx';\nimport { ClassValue } from 'clsx';\nimport { rawConfig } from './raw-config';\nimport { mergeHooksFn } from './hook';\nimport { patchAsyncAttributes } from './attribute';\nimport { _PiResolvedCommonViewFieldConfig } from '../../builder-base/type/common-field-config';\nimport { Observable } from 'rxjs';\nimport { Signal } from '@angular/core';\n/** 必须防止到所有wrappers操作后面,防止设置错误\n * 设置到顶层,可能是wrapper,也可能是component\n *\n */\nexport function topClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((rawField) => {\n mergeHooksFn(\n {\n fieldResolved: (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/** 仅设置在组件上 */\nexport function componentClass<T>(className: ClassValue, merge?: boolean) {\n return rawConfig<T>((field) => {\n field.attributes = {\n ...field.attributes,\n class: merge\n ? clsx(field.attributes?.['class'], className)\n : clsx(className),\n };\n });\n}\nexport function patchAsyncClass<T>(\n fn: (\n field: _PiResolvedCommonViewFieldConfig,\n ) => Promise<any> | Observable<any> | Signal<any> | (any & {}),\n) {\n return patchAsyncAttributes<T>({ class: fn });\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 {\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 CoreRawViewOutputs,\n CoreRawWrapperConfig,\n CoreRawViewInputs,\n _PiResolvedCommonViewFieldConfig,\n HookConfig,\n} from '../../builder-base';\nimport { FieldFormConfig } from '../../field/type';\nimport { 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?: CoreRawViewInputs;\n outputs?: CoreRawViewOutputs;\n wrappers?: CoreRawWrapperConfig[];\n attributes?: Record<string, any>;\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 ??= {};\n this.props['options'] ??= schema.options;\n }\n override intersectBefore(schema: IntersectSchema): void {\n if (this.childrenAsVirtualGroup) {\n // 临时修复,需要把action分为前后两个部分\n if (this.type === 'intersect') {\n this.type = 'intersect-group';\n }\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';\nexport function convert<\n RESULT extends Omit<PiResolvedCommonViewFieldConfig<any, any>, 'define'>,\n>(\n obj: SchemaOrPipe,\n options: SetOptional<ConvertOptions, 'handle'> & {\n injector: Injector;\n builder: typeof FormBuilder;\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 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 },\n );\n}\n","import * as v from 'valibot';\nexport const NFCSchema = v.optional(v.void());\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["unWrapSignal","DefaultOptions"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -2,11 +2,11 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { WritableSignal, Signal, Injector, CreateEffectOptions, EffectRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as rxjs from 'rxjs';
|
|
4
4
|
import { UnaryFunction, Observable } from 'rxjs';
|
|
5
|
+
import * as v from 'valibot';
|
|
6
|
+
import { BaseSchema, BaseMetadata, ArraySchema, BaseIssue, ErrorMessage, ArrayIssue } from 'valibot';
|
|
5
7
|
import * as _piying_valibot_visit from '@piying/valibot-visit';
|
|
6
8
|
import { SchemaOrPipe, BaseSchemaHandle, LazySchema, DefaultSchema, TupleSchema, ObjectSchema, EnumSchema, IntersectSchema, UnionSchema, Schema, VoidSchema, MetadataAction, RawConfigActionCommon, ConvertOptions } from '@piying/valibot-visit';
|
|
7
9
|
export { RawConfig, asControl, asVirtualGroup, changeObject, condition, getDefaults, getSchemaByIssuePath, getSchemaMetadata } from '@piying/valibot-visit';
|
|
8
|
-
import * as v from 'valibot';
|
|
9
|
-
import { BaseMetadata, ArraySchema, BaseSchema, BaseIssue, ErrorMessage, ArrayIssue } from 'valibot';
|
|
10
10
|
import * as _piying_view_angular_core from '@piying/view-angular-core';
|
|
11
11
|
import { ClassValue } from 'clsx';
|
|
12
12
|
|
|
@@ -37,6 +37,7 @@ interface FieldFormConfig<T = any> {
|
|
|
37
37
|
deletionMode?: ArrayDeletionMode;
|
|
38
38
|
/** group/array */
|
|
39
39
|
groupMode?: 'loose' | 'default' | 'strict' | 'reset';
|
|
40
|
+
groupKeySchema?: BaseSchema<any, any, any>;
|
|
40
41
|
}
|
|
41
42
|
type FieldFormConfig$ = WritableSignal<FieldFormConfig>;
|
|
42
43
|
type FieldGroupConfig$ = WritableSignal<Omit<FieldFormConfig, 'defaultValue'>>;
|
|
@@ -571,6 +572,7 @@ declare function disableWhen<TInput>(options: DisableWhenOption): _piying_valibo
|
|
|
571
572
|
declare function topClass<T>(className: ClassValue, merge?: boolean): _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
572
573
|
/** 仅设置在组件上 */
|
|
573
574
|
declare function componentClass<T>(className: ClassValue, merge?: boolean): _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
575
|
+
declare function patchAsyncClass<T>(fn: (field: _PiResolvedCommonViewFieldConfig) => Promise<any> | Observable<any> | Signal<any> | (any & {})): _piying_valibot_visit.RawConfigAction<"viewRawConfig", T, _piying_view_angular_core.AnyCoreSchemaHandle>;
|
|
574
576
|
|
|
575
577
|
interface NonFieldControlAction<TInput = unknown> extends BaseMetadata<TInput> {
|
|
576
578
|
readonly type: 'nonFieldControl';
|
|
@@ -632,7 +634,7 @@ type PiResolvedCommonViewFieldConfig<SelfResolvedFn extends () => any, Define> =
|
|
|
632
634
|
readonly context?: any;
|
|
633
635
|
get: (keyPath: KeyPath, aliasNotFoundFn?: (name: string, field: PiResolvedCommonViewFieldConfig<any, any>) => PiResolvedCommonViewFieldConfig<any, any>) => ReturnType<SelfResolvedFn> | undefined;
|
|
634
636
|
action: {
|
|
635
|
-
set: (value: any, index?: any) =>
|
|
637
|
+
set: (value: any, index?: any) => boolean;
|
|
636
638
|
remove: (index: any) => void;
|
|
637
639
|
};
|
|
638
640
|
readonly define?: Define;
|
|
@@ -731,5 +733,5 @@ declare const PI_CONTEXT_TOKEN: InjectionToken<any>;
|
|
|
731
733
|
declare function isGroup(schema: AnyCoreSchemaHandle): boolean | undefined;
|
|
732
734
|
declare function isArray(schema: AnyCoreSchemaHandle): boolean;
|
|
733
735
|
|
|
734
|
-
export { AbstractControl, CoreSchemaHandle, FieldArray, FieldControl, FieldGroup, FieldLogicGroup, FormBuilder, INVALID, NFCSchema, PENDING, PI_CONTEXT_TOKEN, PI_VIEW_CONFIG_TOKEN, SortedArray, UpdateType, VALID, arrayStartsWith, asyncInputMerge, clone, componentClass, controlStatusList, convert, createViewControlLink, disableWhen, effectListen, fieldControlStatusClass, formConfig, hideWhen, isArray, isFieldArray, isFieldControl, isFieldGroup, isFieldLogicGroup, isGroup, layout, mergeHooks, mergeHooksFn, mergeOutputFn, mergeOutputs, nonFieldControl, outputChange, outputChangeFn, patchAsyncAttributes, patchAsyncFn, patchAsyncInputs, patchAsyncProps, patchAttributes, patchHooks, patchInputs, patchOutputs, patchProps, patchWrappers, rawConfig, removeAttributes, removeHooks, removeInputs, removeOutputs, removeProps, removeWrappers, renderConfig, setAlias, setAttributes, setComponent, setHooks, setInputs, setOutputs, setProps, setWrappers, toArray, toObservable, topClass, unWrapSignal, valueChange, valueChangeFn };
|
|
736
|
+
export { AbstractControl, CoreSchemaHandle, FieldArray, FieldControl, FieldGroup, FieldLogicGroup, FormBuilder, INVALID, NFCSchema, PENDING, PI_CONTEXT_TOKEN, PI_VIEW_CONFIG_TOKEN, SortedArray, UpdateType, VALID, arrayStartsWith, asyncInputMerge, clone, componentClass, controlStatusList, convert, createViewControlLink, disableWhen, effectListen, fieldControlStatusClass, formConfig, hideWhen, isArray, isFieldArray, isFieldControl, isFieldGroup, isFieldLogicGroup, isGroup, layout, mergeHooks, mergeHooksFn, mergeOutputFn, mergeOutputs, nonFieldControl, outputChange, outputChangeFn, patchAsyncAttributes, patchAsyncClass, patchAsyncFn, patchAsyncInputs, patchAsyncProps, patchAttributes, patchHooks, patchInputs, patchOutputs, patchProps, patchWrappers, rawConfig, removeAttributes, removeHooks, removeInputs, removeOutputs, removeProps, removeWrappers, renderConfig, setAlias, setAttributes, setComponent, setHooks, setInputs, setOutputs, setProps, setWrappers, toArray, toObservable, topClass, unWrapSignal, valueChange, valueChangeFn };
|
|
735
737
|
export type { AbstractControlParams, AnyCoreSchemaHandle, ArraryIterable, ArrayDeletionMode, AsyncValidatorFn, BuildArrayItem, BuildGroupItem, BuildRootInputItem, BuildRootItem, ChangeWhenOption, ConfigMergeStrategy, ControlValueAccessor, CoreRawComponentDefine, CoreRawProps, CoreRawViewAttributes, CoreRawViewInputs, CoreRawViewOutputs, CoreRawWrapperConfig, CoreResolvedComponentDefine, CoreResolvedWrapperConfig, CoreWrapperConfig1, DefaultConfigKey, DisableWhenOption, DisabledValueStrategy, EventChangeFn, FieldArrayConfig$, FieldFormConfig, FieldFormConfig$, FieldGroupConfig$, FieldLogicGroupConfig$, FieldRenderConfig, FieldTransformerConfig, FormBuilderOptions, FormHooks, HideWhenOption, HookConfig, HooksConfig, KeyPath, LayoutAction, LazyImport, LogicType, MergeHooksConfig, NonFieldControlAction, PiCommonConfig, PiCommonDefaultConfig, PiResolvedCommonViewFieldConfig, QueryPath, RawKeyPath, SetOptional, SetReadonly, SetWrapper$, SetWrapper$$, SignalInputValue, ToObservableOptions, UnWrapSignal, VALID_STATUS, ValidationErrors, ValidatorFn, ValueChangFnOptions, ValueChangeFn, Wrapper$, Writeable, _PiResolvedCommonViewFieldConfig };
|