@volverjs/form-vue 1.0.0-beta.26 → 1.0.0-beta.27
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 +25 -5
- package/dist/VvForm.d.ts +4 -4
- package/dist/index.d.ts +91 -604
- package/dist/index.es.js +408 -408
- package/dist/index.umd.js +1 -1
- package/dist/types.d.ts +4 -3
- package/package.json +1 -1
- package/src/VvForm.ts +2 -1
- package/src/VvFormWrapper.ts +22 -23
- package/src/index.ts +1 -1
- package/src/types.ts +4 -3
package/README.md
CHANGED
|
@@ -58,6 +58,10 @@ const form = createForm({
|
|
|
58
58
|
// updateThrottle: number - default 500
|
|
59
59
|
// continuousValidation: boolean - default false
|
|
60
60
|
// sideEffects?: (data: any) => void
|
|
61
|
+
// scope?: string - Defines a unique scope for the form instance (singletons)
|
|
62
|
+
// class?: new (data?: any) => Type - Type constructor for form data
|
|
63
|
+
// Example:
|
|
64
|
+
// class: class User { constructor(data?: any) { Object.assign(this, data) } }
|
|
61
65
|
})
|
|
62
66
|
|
|
63
67
|
app.use(form)
|
|
@@ -161,6 +165,8 @@ const { VvForm, VvFormWrapper, VvFormField } = useForm(schema, {
|
|
|
161
165
|
// updateThrottle: number - default 500
|
|
162
166
|
// continuousValidation: boolean - default false
|
|
163
167
|
// sideEffects?: (formData: any) => void
|
|
168
|
+
// scope?: string
|
|
169
|
+
// class?: new (data?: any) => Type
|
|
164
170
|
})
|
|
165
171
|
</script>
|
|
166
172
|
|
|
@@ -193,7 +199,8 @@ const {
|
|
|
193
199
|
VvFormTemplate,
|
|
194
200
|
formData,
|
|
195
201
|
status,
|
|
196
|
-
errors
|
|
202
|
+
errors,
|
|
203
|
+
wrappers
|
|
197
204
|
} = useForm(schema, {
|
|
198
205
|
lazyLoad: true
|
|
199
206
|
})
|
|
@@ -206,7 +213,8 @@ export default {
|
|
|
206
213
|
VvFormTemplate,
|
|
207
214
|
formData,
|
|
208
215
|
status,
|
|
209
|
-
errors
|
|
216
|
+
errors,
|
|
217
|
+
wrappers
|
|
210
218
|
}
|
|
211
219
|
```
|
|
212
220
|
|
|
@@ -218,13 +226,13 @@ The wrapper status is invalid if at least one of the fields inside it is invalid
|
|
|
218
226
|
```vue
|
|
219
227
|
<template>
|
|
220
228
|
<VvForm>
|
|
221
|
-
<VvFormWrapper v-slot="{ invalid }">
|
|
229
|
+
<VvFormWrapper v-slot="{ invalid }" name="firstSection">
|
|
222
230
|
<div class="form-section-1">
|
|
223
231
|
<span v-if="invalid">There is a validation error</span>
|
|
224
232
|
<!-- form fields of section 1 -->
|
|
225
233
|
</div>
|
|
226
234
|
</VvFormWrapper>
|
|
227
|
-
<VvFormWrapper v-slot="{ invalid }">
|
|
235
|
+
<VvFormWrapper v-slot="{ invalid }" name="secondSection">
|
|
228
236
|
<div class="form-section-2">
|
|
229
237
|
<span v-if="invalid">There is a validation error</span>
|
|
230
238
|
<!-- form fields of the section 2 -->
|
|
@@ -240,7 +248,7 @@ The wrapper status is invalid if at least one of the fields inside it is invalid
|
|
|
240
248
|
<template>
|
|
241
249
|
<VvForm>
|
|
242
250
|
<!-- main VvFormWrapper -->
|
|
243
|
-
<VvFormWrapper v-slot="{ invalid }">
|
|
251
|
+
<VvFormWrapper v-slot="{ invalid }" name="firstSection">
|
|
244
252
|
<!-- add VvFormFields to wrapper -->
|
|
245
253
|
<div class="form-section">
|
|
246
254
|
<span v-if="invalid">There is a validation error</span>
|
|
@@ -257,6 +265,18 @@ The wrapper status is invalid if at least one of the fields inside it is invalid
|
|
|
257
265
|
</template>
|
|
258
266
|
```
|
|
259
267
|
|
|
268
|
+
The `wrappers` map provides access to form wrapper data.
|
|
269
|
+
This allows for better control over form validation state and data management.
|
|
270
|
+
|
|
271
|
+
```vue
|
|
272
|
+
<script setup>
|
|
273
|
+
const { wrappers } = useForm(schema)
|
|
274
|
+
|
|
275
|
+
// Access wrapper data
|
|
276
|
+
const isFirstSectionInvalid = computed(() => wrappers.get('firstSection').invalid)
|
|
277
|
+
</script>
|
|
278
|
+
```
|
|
279
|
+
|
|
260
280
|
### VvFormField
|
|
261
281
|
|
|
262
282
|
`VvFormField` allow you to render a form field or a [`@volverjs/ui-vue`](https://github.com/volverjs/ui-vue) input component inside a form.
|
package/dist/VvForm.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Component, InjectionKey, PropType, SlotsType } from 'vue';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { FormComponentOptions, FormSchema, FormTemplate, InjectedFormData } from './types';
|
|
3
|
+
import { FormComponentOptions, FormSchema, FormTemplate, InjectedFormData, InjectedFormWrapperData } from './types';
|
|
4
4
|
import { FormStatus } from './enums';
|
|
5
|
-
export declare function defineForm<Schema extends FormSchema, Type, FormTemplateComponent extends Component
|
|
5
|
+
export declare function defineForm<Schema extends FormSchema, Type, FormTemplateComponent extends Component>(schema: Schema, provideKey: InjectionKey<InjectedFormData<Schema, Type>>, options: FormComponentOptions<Schema, Type>, VvFormTemplate: FormTemplateComponent, wrappers: Map<string, InjectedFormWrapperData<Schema>>): {
|
|
6
6
|
clear: () => void;
|
|
7
7
|
errors: import('vue').Ref<z.inferFormattedError<Schema, string> | undefined, z.inferFormattedError<Schema, string> | undefined>;
|
|
8
8
|
formData: import('vue').Ref<(undefined extends Type ? Partial<z.TypeOf<Schema>> : Type) | undefined, (undefined extends Type ? Partial<z.TypeOf<Schema>> : Type) | undefined>;
|
|
@@ -11,7 +11,7 @@ export declare function defineForm<Schema extends FormSchema, Type, FormTemplate
|
|
|
11
11
|
readonly: import('vue').Ref<boolean, boolean>;
|
|
12
12
|
reset: () => void;
|
|
13
13
|
status: import('vue').Ref<FormStatus | undefined, FormStatus | undefined>;
|
|
14
|
-
wrappers: Map<string,
|
|
14
|
+
wrappers: Map<string, InjectedFormWrapperData<Schema>>;
|
|
15
15
|
stopUpdatesWatch: import('vue').WatchStopHandle;
|
|
16
16
|
submit: () => Promise<boolean>;
|
|
17
17
|
validate: (value?: (undefined extends Type ? Partial<z.TypeOf<Schema>> : Type) | undefined, fields?: Set<string>) => Promise<boolean>;
|
|
@@ -48,7 +48,7 @@ export declare function defineForm<Schema extends FormSchema, Type, FormTemplate
|
|
|
48
48
|
stopUpdatesWatch: import('vue').WatchStopHandle;
|
|
49
49
|
submit: () => Promise<boolean>;
|
|
50
50
|
validate: (value?: (undefined extends Type ? Partial<z.TypeOf<Schema>> : Type) | undefined, fields?: Set<string>) => Promise<boolean>;
|
|
51
|
-
wrappers: Map<string,
|
|
51
|
+
wrappers: Map<string, InjectedFormWrapperData<Schema>>;
|
|
52
52
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "reset" | "submit" | "update:modelValue" | "update:readonly")[], "invalid" | "valid" | "reset" | "submit" | "update:modelValue" | "update:readonly", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
53
53
|
continuousValidation: {
|
|
54
54
|
type: BooleanConstructor;
|