@connect-soft/form-generator 1.1.0-alpha8 → 1.1.0-alpha9
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.
- package/README.md +219 -0
- package/dist/index.js +415 -42
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +410 -44
- package/dist/index.mjs.map +1 -1
- package/dist/types/components/form/fields-context.d.ts +26 -0
- package/dist/types/components/form/fields-context.d.ts.map +1 -0
- package/dist/types/components/form/form-generator-typed.d.ts +49 -0
- package/dist/types/components/form/form-generator-typed.d.ts.map +1 -0
- package/dist/types/components/form/form-generator.d.ts +7 -20
- package/dist/types/components/form/form-generator.d.ts.map +1 -1
- package/dist/types/components/form/form-utils.d.ts +4 -2
- package/dist/types/components/form/form-utils.d.ts.map +1 -1
- package/dist/types/components/form/index.d.ts +1 -1
- package/dist/types/components/form/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import React, { createElement, Fragment, memo, useCallback,
|
|
2
|
+
import React, { createElement, Fragment, memo, useCallback, useContext, createContext, useRef, useMemo, useImperativeHandle } from 'react';
|
|
3
3
|
import * as n$1 from 'zod/v4/core';
|
|
4
4
|
import { c } from 'react/compiler-runtime';
|
|
5
5
|
import { z } from 'zod';
|
|
@@ -3387,6 +3387,167 @@ function createTemplateFields(fieldEntries) {
|
|
|
3387
3387
|
return new Proxy({}, handler);
|
|
3388
3388
|
}
|
|
3389
3389
|
|
|
3390
|
+
const FieldsContext = /*#__PURE__*/createContext(null);
|
|
3391
|
+
function FieldsProvider(t0) {
|
|
3392
|
+
const $ = c(9);
|
|
3393
|
+
const {
|
|
3394
|
+
children,
|
|
3395
|
+
fields,
|
|
3396
|
+
namePrefix
|
|
3397
|
+
} = t0;
|
|
3398
|
+
let map;
|
|
3399
|
+
if ($[0] !== fields || $[1] !== namePrefix) {
|
|
3400
|
+
map = new Map();
|
|
3401
|
+
const addFields = (items, prefix) => {
|
|
3402
|
+
items.forEach(item => {
|
|
3403
|
+
if ("fields" in item && Array.isArray(item.fields)) {
|
|
3404
|
+
const arrayPrefix = prefix ? `${prefix}.${item.name}` : item.name;
|
|
3405
|
+
addFields(item.fields, arrayPrefix);
|
|
3406
|
+
} else {
|
|
3407
|
+
const fieldName = prefix ? `${prefix}.${item.name}` : item.name;
|
|
3408
|
+
map.set(fieldName, item);
|
|
3409
|
+
if (prefix) {
|
|
3410
|
+
map.set(item.name, item);
|
|
3411
|
+
}
|
|
3412
|
+
}
|
|
3413
|
+
});
|
|
3414
|
+
};
|
|
3415
|
+
addFields(fields, namePrefix);
|
|
3416
|
+
$[0] = fields;
|
|
3417
|
+
$[1] = namePrefix;
|
|
3418
|
+
$[2] = map;
|
|
3419
|
+
} else {
|
|
3420
|
+
map = $[2];
|
|
3421
|
+
}
|
|
3422
|
+
const fieldsMap = map;
|
|
3423
|
+
let t1;
|
|
3424
|
+
if ($[3] !== fieldsMap || $[4] !== namePrefix) {
|
|
3425
|
+
t1 = {
|
|
3426
|
+
fields: fieldsMap,
|
|
3427
|
+
namePrefix
|
|
3428
|
+
};
|
|
3429
|
+
$[3] = fieldsMap;
|
|
3430
|
+
$[4] = namePrefix;
|
|
3431
|
+
$[5] = t1;
|
|
3432
|
+
} else {
|
|
3433
|
+
t1 = $[5];
|
|
3434
|
+
}
|
|
3435
|
+
const value = t1;
|
|
3436
|
+
let t2;
|
|
3437
|
+
if ($[6] !== children || $[7] !== value) {
|
|
3438
|
+
t2 = jsx(FieldsContext.Provider, {
|
|
3439
|
+
value,
|
|
3440
|
+
children
|
|
3441
|
+
});
|
|
3442
|
+
$[6] = children;
|
|
3443
|
+
$[7] = value;
|
|
3444
|
+
$[8] = t2;
|
|
3445
|
+
} else {
|
|
3446
|
+
t2 = $[8];
|
|
3447
|
+
}
|
|
3448
|
+
return t2;
|
|
3449
|
+
}
|
|
3450
|
+
function useFieldProps(name) {
|
|
3451
|
+
const $ = c(23);
|
|
3452
|
+
const context = useContext(FieldsContext);
|
|
3453
|
+
const form = useFormContext();
|
|
3454
|
+
if (!context) {
|
|
3455
|
+
throw new Error("useFieldProps must be used within FormGenerator or FieldsProvider");
|
|
3456
|
+
}
|
|
3457
|
+
if (!form) {
|
|
3458
|
+
throw new Error("useFieldProps must be used within a FormProvider context");
|
|
3459
|
+
}
|
|
3460
|
+
const {
|
|
3461
|
+
fields,
|
|
3462
|
+
namePrefix
|
|
3463
|
+
} = context;
|
|
3464
|
+
const fullName = namePrefix ? `${namePrefix}.${name}` : name;
|
|
3465
|
+
let t0;
|
|
3466
|
+
if ($[0] !== fields || $[1] !== fullName || $[2] !== name) {
|
|
3467
|
+
t0 = fields.get(fullName) || fields.get(name);
|
|
3468
|
+
$[0] = fields;
|
|
3469
|
+
$[1] = fullName;
|
|
3470
|
+
$[2] = name;
|
|
3471
|
+
$[3] = t0;
|
|
3472
|
+
} else {
|
|
3473
|
+
t0 = $[3];
|
|
3474
|
+
}
|
|
3475
|
+
const field = t0;
|
|
3476
|
+
if (!field) {
|
|
3477
|
+
throw new Error(`Field "${name}" not found in form fields. ` + `Available fields: ${Array.from(fields.keys()).join(", ")}`);
|
|
3478
|
+
}
|
|
3479
|
+
let t1;
|
|
3480
|
+
if ($[4] !== form.control || $[5] !== fullName) {
|
|
3481
|
+
t1 = {
|
|
3482
|
+
control: form.control,
|
|
3483
|
+
name: fullName
|
|
3484
|
+
};
|
|
3485
|
+
$[4] = form.control;
|
|
3486
|
+
$[5] = fullName;
|
|
3487
|
+
$[6] = t1;
|
|
3488
|
+
} else {
|
|
3489
|
+
t1 = $[6];
|
|
3490
|
+
}
|
|
3491
|
+
const {
|
|
3492
|
+
field: controllerField,
|
|
3493
|
+
fieldState
|
|
3494
|
+
} = useController(t1);
|
|
3495
|
+
let t2;
|
|
3496
|
+
if ($[7] !== field || $[8] !== fullName) {
|
|
3497
|
+
t2 = {
|
|
3498
|
+
...field,
|
|
3499
|
+
name: fullName
|
|
3500
|
+
};
|
|
3501
|
+
$[7] = field;
|
|
3502
|
+
$[8] = fullName;
|
|
3503
|
+
$[9] = t2;
|
|
3504
|
+
} else {
|
|
3505
|
+
t2 = $[9];
|
|
3506
|
+
}
|
|
3507
|
+
let t3;
|
|
3508
|
+
if ($[10] !== fieldState.error || $[11] !== fieldState.invalid || $[12] !== fieldState.isDirty || $[13] !== fieldState.isTouched) {
|
|
3509
|
+
t3 = {
|
|
3510
|
+
invalid: fieldState.invalid,
|
|
3511
|
+
error: fieldState.error,
|
|
3512
|
+
isDirty: fieldState.isDirty,
|
|
3513
|
+
isTouched: fieldState.isTouched
|
|
3514
|
+
};
|
|
3515
|
+
$[10] = fieldState.error;
|
|
3516
|
+
$[11] = fieldState.invalid;
|
|
3517
|
+
$[12] = fieldState.isDirty;
|
|
3518
|
+
$[13] = fieldState.isTouched;
|
|
3519
|
+
$[14] = t3;
|
|
3520
|
+
} else {
|
|
3521
|
+
t3 = $[14];
|
|
3522
|
+
}
|
|
3523
|
+
let t4;
|
|
3524
|
+
if ($[15] !== controllerField.name || $[16] !== controllerField.onBlur || $[17] !== controllerField.onChange || $[18] !== controllerField.ref || $[19] !== controllerField.value || $[20] !== t2 || $[21] !== t3) {
|
|
3525
|
+
t4 = {
|
|
3526
|
+
name: controllerField.name,
|
|
3527
|
+
value: controllerField.value,
|
|
3528
|
+
onChange: controllerField.onChange,
|
|
3529
|
+
onBlur: controllerField.onBlur,
|
|
3530
|
+
ref: controllerField.ref,
|
|
3531
|
+
field: t2,
|
|
3532
|
+
fieldState: t3
|
|
3533
|
+
};
|
|
3534
|
+
$[15] = controllerField.name;
|
|
3535
|
+
$[16] = controllerField.onBlur;
|
|
3536
|
+
$[17] = controllerField.onChange;
|
|
3537
|
+
$[18] = controllerField.ref;
|
|
3538
|
+
$[19] = controllerField.value;
|
|
3539
|
+
$[20] = t2;
|
|
3540
|
+
$[21] = t3;
|
|
3541
|
+
$[22] = t4;
|
|
3542
|
+
} else {
|
|
3543
|
+
t4 = $[22];
|
|
3544
|
+
}
|
|
3545
|
+
return t4;
|
|
3546
|
+
}
|
|
3547
|
+
function useFieldsContext() {
|
|
3548
|
+
return useContext(FieldsContext);
|
|
3549
|
+
}
|
|
3550
|
+
|
|
3390
3551
|
function deepMerge(target, source) {
|
|
3391
3552
|
const result = {
|
|
3392
3553
|
...target
|
|
@@ -3497,10 +3658,7 @@ function buildDefaultValues(fields) {
|
|
|
3497
3658
|
return values;
|
|
3498
3659
|
}
|
|
3499
3660
|
|
|
3500
|
-
function
|
|
3501
|
-
return props.schema !== undefined;
|
|
3502
|
-
}
|
|
3503
|
-
function FormGeneratorImpl(props) {
|
|
3661
|
+
function FormGenerator(props) {
|
|
3504
3662
|
const {
|
|
3505
3663
|
fields,
|
|
3506
3664
|
defaultValues,
|
|
@@ -3516,6 +3674,8 @@ function FormGeneratorImpl(props) {
|
|
|
3516
3674
|
ref,
|
|
3517
3675
|
validateTypes
|
|
3518
3676
|
} = props;
|
|
3677
|
+
const onSubmit = props.onSubmit;
|
|
3678
|
+
const formRef = useRef(null);
|
|
3519
3679
|
useMemo(() => {
|
|
3520
3680
|
if (validateTypes) {
|
|
3521
3681
|
const registeredTypes = getRegisteredFieldTypes();
|
|
@@ -3526,15 +3686,7 @@ function FormGeneratorImpl(props) {
|
|
|
3526
3686
|
validateFieldTypes(fields, registeredTypes, options);
|
|
3527
3687
|
}
|
|
3528
3688
|
}, [fields, validateTypes]);
|
|
3529
|
-
const
|
|
3530
|
-
const onSubmit = props.onSubmit;
|
|
3531
|
-
const formRef = useRef(null);
|
|
3532
|
-
const schema = useMemo(() => {
|
|
3533
|
-
if (userSchema) {
|
|
3534
|
-
return userSchema;
|
|
3535
|
-
}
|
|
3536
|
-
return buildSchema(fields);
|
|
3537
|
-
}, [fields, userSchema]);
|
|
3689
|
+
const schema = useMemo(() => buildSchema(fields), [fields]);
|
|
3538
3690
|
const mergedDefaultValues = useMemo(() => {
|
|
3539
3691
|
const builtDefaults = buildDefaultValues(fields);
|
|
3540
3692
|
return defaultValues ? deepMerge(builtDefaults, defaultValues) : builtDefaults;
|
|
@@ -3646,31 +3798,242 @@ function FormGeneratorImpl(props) {
|
|
|
3646
3798
|
if (!children) {
|
|
3647
3799
|
return jsx(FormProvider, {
|
|
3648
3800
|
...form,
|
|
3649
|
-
children:
|
|
3801
|
+
children: jsx(FieldsProvider, {
|
|
3802
|
+
fields: fields,
|
|
3803
|
+
children: jsxs("form", {
|
|
3804
|
+
ref: formRef,
|
|
3805
|
+
onSubmit: handleSubmit,
|
|
3806
|
+
className: className,
|
|
3807
|
+
children: [jsxs(FieldsWrapper, {
|
|
3808
|
+
children: [regularFields.map((field_2, index_0) => jsx(FieldWrapper, {
|
|
3809
|
+
name: field_2.name,
|
|
3810
|
+
type: field_2.type,
|
|
3811
|
+
className: field_2.className,
|
|
3812
|
+
children: jsx(FieldRenderer, {
|
|
3813
|
+
field: field_2
|
|
3814
|
+
})
|
|
3815
|
+
}, field_2.name || `field-${index_0}`)), arrayFields.map(arrayField => jsx(FieldWrapper, {
|
|
3816
|
+
name: arrayField.name,
|
|
3817
|
+
type: "array",
|
|
3818
|
+
className: arrayField.className,
|
|
3819
|
+
children: jsx(ArrayFieldRenderer, {
|
|
3820
|
+
field: arrayField
|
|
3821
|
+
})
|
|
3822
|
+
}, arrayField.name))]
|
|
3823
|
+
}), jsx(SubmitButton, {
|
|
3824
|
+
disabled: disabled || form.formState.isSubmitting,
|
|
3825
|
+
isSubmitting: form.formState.isSubmitting,
|
|
3826
|
+
children: submitText
|
|
3827
|
+
})]
|
|
3828
|
+
})
|
|
3829
|
+
})
|
|
3830
|
+
});
|
|
3831
|
+
}
|
|
3832
|
+
const renderProps = {
|
|
3833
|
+
fields: templateFields,
|
|
3834
|
+
arrays: Object.fromEntries(arrayFields.map(arrayField_0 => [arrayField_0.name, {
|
|
3835
|
+
field: arrayField_0
|
|
3836
|
+
}])),
|
|
3837
|
+
buttons,
|
|
3838
|
+
title,
|
|
3839
|
+
description,
|
|
3840
|
+
form: form,
|
|
3841
|
+
isSubmitting: form.formState.isSubmitting,
|
|
3842
|
+
isValid: form.formState.isValid,
|
|
3843
|
+
isDirty: form.formState.isDirty,
|
|
3844
|
+
renderField,
|
|
3845
|
+
FieldWrapper,
|
|
3846
|
+
FieldsWrapper
|
|
3847
|
+
};
|
|
3848
|
+
const renderFn = children;
|
|
3849
|
+
return jsx(FormProvider, {
|
|
3850
|
+
...form,
|
|
3851
|
+
children: jsx(FieldsProvider, {
|
|
3852
|
+
fields: fields,
|
|
3853
|
+
children: jsx("form", {
|
|
3650
3854
|
ref: formRef,
|
|
3651
3855
|
onSubmit: handleSubmit,
|
|
3652
3856
|
className: className,
|
|
3653
|
-
children:
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3857
|
+
children: renderFn(renderProps)
|
|
3858
|
+
})
|
|
3859
|
+
})
|
|
3860
|
+
});
|
|
3861
|
+
}
|
|
3862
|
+
|
|
3863
|
+
function typedField() {
|
|
3864
|
+
return field => field;
|
|
3865
|
+
}
|
|
3866
|
+
function typedFields(fields) {
|
|
3867
|
+
return fields;
|
|
3868
|
+
}
|
|
3869
|
+
function StrictFormGenerator(props) {
|
|
3870
|
+
const {
|
|
3871
|
+
schema,
|
|
3872
|
+
fields,
|
|
3873
|
+
onSubmit,
|
|
3874
|
+
defaultValues,
|
|
3875
|
+
className,
|
|
3876
|
+
submitText = 'Submit',
|
|
3877
|
+
disabled,
|
|
3878
|
+
mode = 'onChange',
|
|
3879
|
+
title,
|
|
3880
|
+
description,
|
|
3881
|
+
showReset = false,
|
|
3882
|
+
resetText = 'Reset',
|
|
3883
|
+
children,
|
|
3884
|
+
ref,
|
|
3885
|
+
validateTypes
|
|
3886
|
+
} = props;
|
|
3887
|
+
const formRef = useRef(null);
|
|
3888
|
+
useMemo(() => {
|
|
3889
|
+
if (validateTypes) {
|
|
3890
|
+
const registeredTypes = getRegisteredFieldTypes();
|
|
3891
|
+
const options = typeof validateTypes === 'object' ? validateTypes : {
|
|
3892
|
+
throwOnError: false,
|
|
3893
|
+
warn: true
|
|
3894
|
+
};
|
|
3895
|
+
validateFieldTypes(fields, registeredTypes, options);
|
|
3896
|
+
}
|
|
3897
|
+
}, [fields, validateTypes]);
|
|
3898
|
+
const mergedDefaultValues = useMemo(() => {
|
|
3899
|
+
const builtDefaults = buildDefaultValues(fields);
|
|
3900
|
+
return defaultValues ? deepMerge(builtDefaults, defaultValues) : builtDefaults;
|
|
3901
|
+
}, [fields, defaultValues]);
|
|
3902
|
+
const form = useForm({
|
|
3903
|
+
resolver: a(schema),
|
|
3904
|
+
defaultValues: mergedDefaultValues,
|
|
3905
|
+
mode
|
|
3906
|
+
});
|
|
3907
|
+
const handleSubmit = form.handleSubmit(async data => {
|
|
3908
|
+
await onSubmit(data);
|
|
3909
|
+
});
|
|
3910
|
+
const handleReset = useCallback(() => {
|
|
3911
|
+
form.reset(mergedDefaultValues);
|
|
3912
|
+
}, [form, mergedDefaultValues]);
|
|
3913
|
+
useImperativeHandle(ref, () => ({
|
|
3914
|
+
setValues: values => {
|
|
3915
|
+
Object.entries(values).forEach(([key, value]) => {
|
|
3916
|
+
form.setValue(key, value, {
|
|
3917
|
+
shouldValidate: true,
|
|
3918
|
+
shouldDirty: true
|
|
3919
|
+
});
|
|
3920
|
+
});
|
|
3921
|
+
},
|
|
3922
|
+
getValues: () => form.getValues(),
|
|
3923
|
+
reset: values_0 => {
|
|
3924
|
+
if (values_0) {
|
|
3925
|
+
form.reset(deepMerge(mergedDefaultValues, values_0));
|
|
3926
|
+
} else {
|
|
3927
|
+
form.reset(mergedDefaultValues);
|
|
3928
|
+
}
|
|
3929
|
+
},
|
|
3930
|
+
submit: async () => {
|
|
3931
|
+
await handleSubmit();
|
|
3932
|
+
},
|
|
3933
|
+
clearErrors: () => form.clearErrors(),
|
|
3934
|
+
setError: (name, error) => form.setError(name, error),
|
|
3935
|
+
isValid: () => form.formState.isValid,
|
|
3936
|
+
isDirty: () => form.formState.isDirty,
|
|
3937
|
+
form: form
|
|
3938
|
+
}), [form, handleSubmit, mergedDefaultValues]);
|
|
3939
|
+
const SubmitButton = getFormComponent('SubmitButton');
|
|
3940
|
+
const FieldWrapper = getFormComponent('FieldWrapper');
|
|
3941
|
+
const FieldsWrapper = getFormComponent('FieldsWrapper');
|
|
3942
|
+
const {
|
|
3943
|
+
regularFields,
|
|
3944
|
+
arrayFields
|
|
3945
|
+
} = useMemo(() => {
|
|
3946
|
+
const regular = [];
|
|
3947
|
+
const arrays = [];
|
|
3948
|
+
fields.forEach(field => {
|
|
3949
|
+
if (isArrayField(field)) {
|
|
3950
|
+
arrays.push(field);
|
|
3951
|
+
} else {
|
|
3952
|
+
regular.push(field);
|
|
3953
|
+
}
|
|
3954
|
+
});
|
|
3955
|
+
return {
|
|
3956
|
+
regularFields: regular,
|
|
3957
|
+
arrayFields: arrays
|
|
3958
|
+
};
|
|
3959
|
+
}, [fields]);
|
|
3960
|
+
const fieldEntries = useMemo(() => {
|
|
3961
|
+
const entries = new Map();
|
|
3962
|
+
regularFields.forEach((field_0, index) => {
|
|
3963
|
+
if (!field_0.hidden) {
|
|
3964
|
+
const element = jsx(FieldWrapper, {
|
|
3965
|
+
name: field_0.name,
|
|
3966
|
+
type: field_0.type,
|
|
3967
|
+
className: field_0.className,
|
|
3968
|
+
children: jsx(FieldRenderer, {
|
|
3969
|
+
field: field_0
|
|
3970
|
+
})
|
|
3971
|
+
}, field_0.name || `field-${index}`);
|
|
3972
|
+
entries.set(field_0.name, {
|
|
3973
|
+
field: field_0,
|
|
3974
|
+
element,
|
|
3975
|
+
accessed: false
|
|
3976
|
+
});
|
|
3977
|
+
}
|
|
3978
|
+
});
|
|
3979
|
+
return entries;
|
|
3980
|
+
}, [regularFields, FieldWrapper]);
|
|
3981
|
+
const templateFields = useMemo(() => createTemplateFields(fieldEntries), [fieldEntries]);
|
|
3982
|
+
const buttons = useMemo(() => {
|
|
3983
|
+
const result = {
|
|
3984
|
+
submit: jsx(SubmitButton, {
|
|
3985
|
+
disabled: disabled || form.formState.isSubmitting,
|
|
3986
|
+
isSubmitting: form.formState.isSubmitting,
|
|
3987
|
+
children: submitText
|
|
3988
|
+
}, "submit")
|
|
3989
|
+
};
|
|
3990
|
+
if (showReset) {
|
|
3991
|
+
result.reset = jsx("button", {
|
|
3992
|
+
type: "button",
|
|
3993
|
+
onClick: handleReset,
|
|
3994
|
+
disabled: disabled,
|
|
3995
|
+
children: resetText
|
|
3996
|
+
}, "reset");
|
|
3997
|
+
}
|
|
3998
|
+
return result;
|
|
3999
|
+
}, [SubmitButton, disabled, form.formState.isSubmitting, submitText, showReset, resetText, handleReset]);
|
|
4000
|
+
const renderField = useCallback((field_1, options_0) => {
|
|
4001
|
+
return jsx(FieldRenderer, {
|
|
4002
|
+
field: field_1,
|
|
4003
|
+
namePrefix: options_0 === null || options_0 === void 0 ? void 0 : options_0.namePrefix
|
|
4004
|
+
});
|
|
4005
|
+
}, []);
|
|
4006
|
+
if (!children) {
|
|
4007
|
+
return jsx(FormProvider, {
|
|
4008
|
+
...form,
|
|
4009
|
+
children: jsx(FieldsProvider, {
|
|
4010
|
+
fields: fields,
|
|
4011
|
+
children: jsxs("form", {
|
|
4012
|
+
ref: formRef,
|
|
4013
|
+
onSubmit: handleSubmit,
|
|
4014
|
+
className: className,
|
|
4015
|
+
children: [jsxs(FieldsWrapper, {
|
|
4016
|
+
children: [regularFields.map((field_2, index_0) => jsx(FieldWrapper, {
|
|
4017
|
+
name: field_2.name,
|
|
4018
|
+
type: field_2.type,
|
|
4019
|
+
className: field_2.className,
|
|
4020
|
+
children: jsx(FieldRenderer, {
|
|
4021
|
+
field: field_2
|
|
4022
|
+
})
|
|
4023
|
+
}, field_2.name || `field-${index_0}`)), arrayFields.map(arrayField => jsx(FieldWrapper, {
|
|
4024
|
+
name: arrayField.name,
|
|
4025
|
+
type: "array",
|
|
4026
|
+
className: arrayField.className,
|
|
4027
|
+
children: jsx(ArrayFieldRenderer, {
|
|
4028
|
+
field: arrayField
|
|
4029
|
+
})
|
|
4030
|
+
}, arrayField.name))]
|
|
4031
|
+
}), jsx(SubmitButton, {
|
|
4032
|
+
disabled: disabled || form.formState.isSubmitting,
|
|
4033
|
+
isSubmitting: form.formState.isSubmitting,
|
|
4034
|
+
children: submitText
|
|
4035
|
+
})]
|
|
4036
|
+
})
|
|
3674
4037
|
})
|
|
3675
4038
|
});
|
|
3676
4039
|
}
|
|
@@ -3693,17 +4056,20 @@ function FormGeneratorImpl(props) {
|
|
|
3693
4056
|
const renderFn = children;
|
|
3694
4057
|
return jsx(FormProvider, {
|
|
3695
4058
|
...form,
|
|
3696
|
-
children: jsx(
|
|
3697
|
-
|
|
3698
|
-
|
|
3699
|
-
|
|
3700
|
-
|
|
4059
|
+
children: jsx(FieldsProvider, {
|
|
4060
|
+
fields: fields,
|
|
4061
|
+
children: jsx("form", {
|
|
4062
|
+
ref: formRef,
|
|
4063
|
+
onSubmit: handleSubmit,
|
|
4064
|
+
className: className,
|
|
4065
|
+
children: renderFn(renderProps)
|
|
4066
|
+
})
|
|
3701
4067
|
})
|
|
3702
4068
|
});
|
|
3703
4069
|
}
|
|
3704
|
-
function
|
|
3705
|
-
return
|
|
4070
|
+
function createFieldFactory(_schema) {
|
|
4071
|
+
return field => field;
|
|
3706
4072
|
}
|
|
3707
4073
|
|
|
3708
|
-
export { ArrayFieldRenderer, Controller, FieldRenderer, FormGenerator, FormProvider, clearAllRegistries, clearFieldRegistry, clearFormComponentRegistry, createArrayField, createField, getFieldComponent, getFormComponent, getFormComponents, getRegisteredFieldTypes, hasFieldType, hasFormComponent, isArrayField, registerField, registerFields, registerFormComponent, registerFormComponents, resetFormComponentRegistry, strictFields, unregisterField, useArrayField, useFieldArray, useForm, useFormContext, useWatch, validateFieldType, validateFieldTypes };
|
|
4074
|
+
export { ArrayFieldRenderer, Controller, FieldRenderer, FieldsProvider, FormGenerator, FormProvider, StrictFormGenerator, clearAllRegistries, clearFieldRegistry, clearFormComponentRegistry, createArrayField, createField, createFieldFactory, getFieldComponent, getFormComponent, getFormComponents, getRegisteredFieldTypes, hasFieldType, hasFormComponent, isArrayField, registerField, registerFields, registerFormComponent, registerFormComponents, resetFormComponentRegistry, strictFields, typedField, typedFields, unregisterField, useArrayField, useFieldArray, useFieldProps, useFieldsContext, useForm, useFormContext, useWatch, validateFieldType, validateFieldTypes };
|
|
3709
4075
|
//# sourceMappingURL=index.mjs.map
|