@volverjs/form-vue 1.0.0-beta.16 → 1.0.0-beta.18

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/dist/VvForm.d.ts CHANGED
@@ -1,23 +1,20 @@
1
- import { Component, InjectionKey, DeepReadonly, Ref, PropType, WatchStopHandle } from 'vue';
2
- import { IgnoredUpdater } from '@vueuse/core';
1
+ import { Component, InjectionKey, PropType, SlotsType } from 'vue';
3
2
  import { z } from 'zod';
4
3
  import { FormComponentOptions, FormSchema, FormTemplate, InjectedFormData } from './types';
5
4
  import { FormStatus } from './enums';
6
-
7
5
  export declare function defineForm<Schema extends FormSchema>(schema: Schema, provideKey: InjectionKey<InjectedFormData<Schema>>, options?: FormComponentOptions<Schema>, VvFormTemplate?: Component): {
8
- errors: Ref<z.inferFormattedError<Schema, string> | undefined>;
9
- status: Ref<FormStatus | undefined>;
6
+ clear: () => void;
7
+ errors: import('vue').Ref<z.inferFormattedError<Schema, string> | undefined, z.inferFormattedError<Schema, string> | undefined>;
8
+ formData: import('vue').Ref<Partial<z.TypeOf<Schema> | undefined>, Partial<z.TypeOf<Schema> | undefined>>;
9
+ ignoreUpdates: import('@vueuse/shared').IgnoredUpdater;
10
10
  invalid: import('vue').ComputedRef<boolean>;
11
- readonly: Ref<boolean>;
12
- formData: Ref<Partial<z.TypeOf<Schema> | undefined>>;
13
- validate: (value?: Partial<z.TypeOf<Schema> | undefined>) => Promise<boolean>;
11
+ readonly: import('vue').Ref<boolean, boolean>;
12
+ reset: () => void;
13
+ status: import('vue').Ref<FormStatus | undefined, FormStatus | undefined>;
14
+ stopUpdatesWatch: import('vue').WatchStopHandle;
14
15
  submit: () => Promise<boolean>;
15
- ignoreUpdates: IgnoredUpdater;
16
- stopUpdatesWatch: WatchStopHandle;
17
- /**
18
- * An hack to add types to the default slot
19
- */
20
- VvForm: import('vue').DefineComponent<{
16
+ validate: (value?: Partial<z.TypeOf<Schema> | undefined>, fields?: Set<string>) => Promise<boolean>;
17
+ VvForm: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
21
18
  continuousValidation: {
22
19
  type: BooleanConstructor;
23
20
  default: boolean;
@@ -38,17 +35,19 @@ export declare function defineForm<Schema extends FormSchema>(schema: Schema, pr
38
35
  type: PropType<FormTemplate<Schema>>;
39
36
  default: undefined;
40
37
  };
41
- }, {
42
- formData: Ref<Partial<z.TypeOf<Schema> | undefined>>;
43
- submit: () => Promise<boolean>;
44
- validate: (value?: Partial<z.TypeOf<Schema> | undefined>) => Promise<boolean>;
45
- ignoreUpdates: IgnoredUpdater;
46
- stopUpdatesWatch: WatchStopHandle;
47
- errors: Readonly<Ref<DeepReadonly<z.inferFormattedError<Schema, string>> | undefined>>;
48
- status: Readonly<Ref<FormStatus | undefined>>;
38
+ }>, {
39
+ clear: () => void;
40
+ errors: Readonly<import('vue').Ref<import('vue').DeepReadonly<z.inferFormattedError<Schema, string>> | undefined, import('vue').DeepReadonly<z.inferFormattedError<Schema, string>> | undefined>>;
41
+ formData: import('vue').Ref<Partial<z.TypeOf<Schema> | undefined>, Partial<z.TypeOf<Schema> | undefined>>;
42
+ ignoreUpdates: import('@vueuse/shared').IgnoredUpdater;
49
43
  invalid: import('vue').ComputedRef<boolean>;
50
- isReadonly: Ref<boolean>;
51
- }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "update:modelValue" | "submit" | "update:readonly")[], "invalid" | "valid" | "update:modelValue" | "submit" | "update:readonly", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
44
+ isReadonly: import('vue').Ref<boolean, boolean>;
45
+ reset: () => void;
46
+ status: Readonly<import('vue').Ref<FormStatus | undefined, FormStatus | undefined>>;
47
+ stopUpdatesWatch: import('vue').WatchStopHandle;
48
+ submit: () => Promise<boolean>;
49
+ validate: (value?: Partial<z.TypeOf<Schema> | undefined>, fields?: Set<string>) => Promise<boolean>;
50
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "reset" | "update:modelValue" | "submit" | "update:readonly")[], "invalid" | "valid" | "reset" | "update:modelValue" | "submit" | "update:readonly", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
52
51
  continuousValidation: {
53
52
  type: BooleanConstructor;
54
53
  default: boolean;
@@ -69,33 +68,32 @@ export declare function defineForm<Schema extends FormSchema>(schema: Schema, pr
69
68
  type: PropType<FormTemplate<Schema>>;
70
69
  default: undefined;
71
70
  };
72
- }>> & {
71
+ }>> & Readonly<{
73
72
  onInvalid?: ((...args: any[]) => any) | undefined;
74
73
  onValid?: ((...args: any[]) => any) | undefined;
75
74
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
75
+ onReset?: ((...args: any[]) => any) | undefined;
76
76
  onSubmit?: ((...args: any[]) => any) | undefined;
77
77
  "onUpdate:readonly"?: ((...args: any[]) => any) | undefined;
78
- }, {
78
+ }>, {
79
79
  readonly: boolean;
80
80
  template: FormTemplate<Schema>;
81
81
  modelValue: Record<string, any>;
82
- continuousValidation: boolean;
83
82
  tag: string;
84
- }, {}> & {
85
- new (): {
86
- $slots: {
87
- default: (_: {
88
- formData: unknown extends Partial<z.TypeOf<Schema>> | undefined ? undefined : Partial<z.TypeOf<Schema>> | undefined;
89
- submit: () => Promise<boolean>;
90
- validate: () => Promise<boolean>;
91
- ignoreUpdates: IgnoredUpdater;
92
- stopUpdatesWatch: WatchStopHandle;
93
- errors: Readonly<Ref<DeepReadonly<z.inferFormattedError<Schema>>>>;
94
- status: Ref<DeepReadonly<`${FormStatus}` | undefined>>;
95
- invalid: Ref<DeepReadonly<boolean>>;
96
- readonly: Ref<boolean>;
97
- }) => any;
98
- };
83
+ continuousValidation: boolean;
84
+ }, SlotsType<{
85
+ default: {
86
+ errors: Readonly<import('vue').Ref<import('vue').DeepReadonly<z.inferFormattedError<Schema, string>> | undefined, import('vue').DeepReadonly<z.inferFormattedError<Schema, string>> | undefined>>;
87
+ formData: import('vue').Ref<Partial<z.TypeOf<Schema> | undefined>, Partial<z.TypeOf<Schema> | undefined>>;
88
+ ignoreUpdates: import('@vueuse/shared').IgnoredUpdater;
89
+ invalid: import('vue').ComputedRef<boolean>;
90
+ readonly: import('vue').Ref<boolean, boolean>;
91
+ status: Readonly<import('vue').Ref<FormStatus | undefined, FormStatus | undefined>>;
92
+ stopUpdatesWatch: import('vue').WatchStopHandle;
93
+ submit: () => Promise<boolean>;
94
+ validate: (value?: Partial<z.TypeOf<Schema> | undefined>, fields?: Set<string>) => Promise<boolean>;
95
+ clear: () => void;
96
+ reset: () => void;
99
97
  };
100
- };
98
+ }>, {}, {}, "invalid" | "valid" | "reset" | "status" | "clear" | "errors" | "submit" | "validate" | "readonly" | "template" | "tag", import('vue').ComponentProvideOptions, true, {}, any>;
101
99
  };
@@ -1,9 +1,8 @@
1
- import { Component, InjectionKey, PropType, Ref, ConcreteComponent } from 'vue';
2
- import { z } from 'zod';
1
+ import { Component, ConcreteComponent, DeepReadonly, InjectionKey, PropType, Ref, SlotsType } from 'vue';
2
+ import { inferFormattedError, TypeOf, z } from 'zod';
3
3
  import { FormFieldType } from './enums';
4
- import { InjectedFormData, InjectedFormWrapperData, InjectedFormFieldData, FormFieldComponentOptions, Path, FormSchema } from './types';
5
-
6
- export declare function defineFormField<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>, formFieldInjectionKey: InjectionKey<InjectedFormFieldData<Schema>>, options?: FormFieldComponentOptions): import('vue').DefineComponent<{
4
+ import { FormFieldComponentOptions, FormSchema, InjectedFormData, InjectedFormFieldData, InjectedFormWrapperData, Path } from './types';
5
+ export declare function defineFormField<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>, formFieldInjectionKey: InjectionKey<InjectedFormFieldData<Schema>>, options?: FormFieldComponentOptions): import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
6
  type: {
8
7
  type: PropType<`${FormFieldType}`>;
9
8
  validator: (value: FormFieldType) => boolean;
@@ -37,7 +36,7 @@ export declare function defineFormField<Schema extends FormSchema>(formProvideKe
37
36
  type: BooleanConstructor;
38
37
  default: undefined;
39
38
  };
40
- }, {
39
+ }>, {
41
40
  component: import('vue').ComputedRef<{
42
41
  new (...args: any[]): any;
43
42
  __isFragment?: never;
@@ -48,7 +47,7 @@ export declare function defineFormField<Schema extends FormSchema>(formProvideKe
48
47
  name: {} | ([{
49
48
  type: PropType<Path<z.infer<Schema>>>;
50
49
  required: true;
51
- }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? import('@vue/shared').IfAny<V, V, D> : V : {
50
+ }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import('@vue/shared').IfAny<V, V, D> : V : V : {
52
51
  type: PropType<Path<z.infer<Schema>>>;
53
52
  required: true;
54
53
  });
@@ -57,11 +56,11 @@ export declare function defineFormField<Schema extends FormSchema>(formProvideKe
57
56
  type: FormFieldType | undefined;
58
57
  invalidLabel: any;
59
58
  modelValue: any;
60
- readonly: {} | undefined;
59
+ readonly: boolean;
61
60
  'onUpdate:modelValue': (value: unknown) => void;
62
61
  }>;
63
62
  invalid: import('vue').ComputedRef<boolean>;
64
- }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "update:formData" | "update:modelValue")[], "invalid" | "valid" | "update:formData" | "update:modelValue", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
63
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid" | "update:formData" | "update:modelValue")[], "invalid" | "valid" | "update:formData" | "update:modelValue", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
65
64
  type: {
66
65
  type: PropType<`${FormFieldType}`>;
67
66
  validator: (value: FormFieldType) => boolean;
@@ -95,17 +94,17 @@ export declare function defineFormField<Schema extends FormSchema>(formProvideKe
95
94
  type: BooleanConstructor;
96
95
  default: undefined;
97
96
  };
98
- }>> & {
97
+ }>> & Readonly<{
99
98
  onInvalid?: ((...args: any[]) => any) | undefined;
100
99
  onValid?: ((...args: any[]) => any) | undefined;
101
100
  "onUpdate:formData"?: ((...args: any[]) => any) | undefined;
102
101
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
103
- }, {
102
+ }>, {
104
103
  type: "number" | "text" | "email" | "password" | "tel" | "url" | "search" | "date" | "time" | "datetime-local" | "month" | "week" | "color" | "select" | "checkbox" | "radio" | "textarea" | "radioGroup" | "checkboxGroup" | "combobox" | "custom";
105
104
  props: [{
106
105
  type: PropType<Partial<z.infer<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<z.infer<Schema>> | undefined)>>;
107
106
  default: () => {};
108
- }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? import('@vue/shared').IfAny<V, V, D> : V : {
107
+ }] extends [import('vue').Prop<infer V, infer D>] ? unknown extends V ? keyof V extends never ? import('@vue/shared').IfAny<V, V, D> : V : V : {
109
108
  type: PropType<Partial<z.infer<Schema> | undefined | ((formData?: Ref<ObjectConstructor>) => Partial<z.infer<Schema>> | undefined)>>;
110
109
  default: () => {};
111
110
  };
@@ -114,4 +113,17 @@ export declare function defineFormField<Schema extends FormSchema>(formProvideKe
114
113
  defaultValue: string | number | boolean | unknown[] | Record<string, any>;
115
114
  lazyLoad: boolean;
116
115
  readonly: boolean;
117
- }, {}>;
116
+ }, SlotsType<{
117
+ default: {
118
+ errors: z.inferFormattedError<Schema>;
119
+ formData?: Partial<TypeOf<Schema>>;
120
+ formErrors?: DeepReadonly<inferFormattedError<Schema, string>>;
121
+ invalid: boolean;
122
+ invalidLabel: string;
123
+ modelValue: unknown;
124
+ onUpdate: (value: unknown) => void;
125
+ readonly: boolean;
126
+ submit?: InjectedFormData<Schema>["submit"];
127
+ validate?: InjectedFormData<Schema>["validate"];
128
+ };
129
+ }>, {}, {}, "invalid" | "type" | "component" | "errors" | "hasProps" | "invalidLabel" | "is", import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,9 +1,8 @@
1
- import { Component, PropType, InjectionKey, DeepReadonly, Ref, VNode } from 'vue';
2
- import { TypeOf, z } from 'zod';
1
+ import { Component, DeepReadonly, InjectionKey, PropType, SlotsType, VNode } from 'vue';
3
2
  import { FormSchema, InjectedFormData, FormTemplate } from './types';
3
+ import { inferFormattedError, TypeOf } from 'zod';
4
4
  import { FormStatus } from './enums';
5
-
6
- export declare function defineFormTemplate<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, VvFormField: Component): import('vue').DefineComponent<{
5
+ export declare function defineFormTemplate<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, VvFormField: Component): import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
6
  schema: {
8
7
  type: PropType<FormTemplate<Schema>>;
9
8
  required: true;
@@ -12,11 +11,11 @@ export declare function defineFormTemplate<Schema extends FormSchema>(formProvid
12
11
  type: PropType<Record<string, unknown>>;
13
12
  default: () => {};
14
13
  };
15
- }, (() => (VNode<import('vue').RendererNode, import('vue').RendererElement, {
14
+ }>, (() => (VNode<import('vue').RendererNode, import('vue').RendererElement, {
16
15
  [key: string]: any;
17
16
  }> | VNode<import('vue').RendererNode, import('vue').RendererElement, {
18
17
  [key: string]: any;
19
- }>[] | undefined)[]) | undefined, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
18
+ }>[] | undefined)[]) | undefined, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
20
19
  schema: {
21
20
  type: PropType<FormTemplate<Schema>>;
22
21
  required: true;
@@ -25,19 +24,17 @@ export declare function defineFormTemplate<Schema extends FormSchema>(formProvid
25
24
  type: PropType<Record<string, unknown>>;
26
25
  default: () => {};
27
26
  };
28
- }>>, {
27
+ }>> & Readonly<{}>, {
29
28
  scope: Record<string, unknown>;
30
- }, {}> & {
31
- new (): {
32
- $slots: {
33
- default: (_: {
34
- formData: unknown extends Partial<TypeOf<Schema>> | undefined ? undefined : Partial<TypeOf<Schema>> | undefined;
35
- submit: () => Promise<boolean>;
36
- validate: () => Promise<boolean>;
37
- errors: Readonly<Ref<DeepReadonly<z.inferFormattedError<Schema>>>>;
38
- status: Ref<DeepReadonly<`${FormStatus}` | undefined>>;
39
- invalid: Ref<DeepReadonly<boolean>>;
40
- }) => any;
41
- };
29
+ }, SlotsType<{
30
+ default: {
31
+ errors?: DeepReadonly<inferFormattedError<Schema, string>>;
32
+ formData?: Partial<TypeOf<Schema>>;
33
+ invalid: boolean;
34
+ status?: FormStatus;
35
+ submit?: InjectedFormData<Schema>["submit"];
36
+ validate?: InjectedFormData<Schema>["validate"];
37
+ clear?: InjectedFormData<Schema>["clear"];
38
+ reset?: InjectedFormData<Schema>["reset"];
42
39
  };
43
- };
40
+ }>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -1,8 +1,7 @@
1
- import { InjectionKey, Ref, DeepReadonly } from 'vue';
2
- import { TypeOf, z } from 'zod';
1
+ import { DeepReadonly, InjectionKey, Ref, SlotsType } from 'vue';
2
+ import { inferFormattedError, TypeOf, z } from 'zod';
3
3
  import { FormSchema, InjectedFormData, InjectedFormWrapperData } from './types';
4
-
5
- export declare function defineFormWrapper<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>): import('vue').DefineComponent<{
4
+ export declare function defineFormWrapper<Schema extends FormSchema>(formProvideKey: InjectionKey<InjectedFormData<Schema>>, wrapperProvideKey: InjectionKey<InjectedFormWrapperData<Schema>>): import('vue').DefineComponent<import('vue').ExtractPropTypes<{
6
5
  name: {
7
6
  type: StringConstructor;
8
7
  required: true;
@@ -11,15 +10,18 @@ export declare function defineFormWrapper<Schema extends FormSchema>(formProvide
11
10
  type: StringConstructor;
12
11
  default: undefined;
13
12
  };
14
- }, {
15
- formData: Ref<Partial<TypeOf<Schema>> | undefined> | undefined;
16
- errors: Readonly<Ref<DeepReadonly<z.inferFormattedError<Schema, string>> | undefined>> | undefined;
17
- submit: (() => Promise<boolean>) | undefined;
18
- validate: (() => Promise<boolean>) | undefined;
13
+ }>, {
14
+ clear: (() => void) | undefined;
15
+ errors: Readonly<Ref<DeepReadonly<inferFormattedError<Schema, string>> | undefined, DeepReadonly<inferFormattedError<Schema, string>> | undefined>> | undefined;
16
+ fields: Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
17
+ fieldsErrors: Ref<Map<string, inferFormattedError<Schema, string>>, Map<string, inferFormattedError<Schema, string>>>;
18
+ formData: Ref<Partial<TypeOf<Schema>> | undefined, Partial<TypeOf<Schema>> | undefined> | undefined;
19
19
  invalid: import('vue').ComputedRef<boolean>;
20
- fields: Ref<Set<string> & Omit<Set<string>, keyof Set<any>>>;
21
- fieldsErrors: Ref<Map<string, z.inferFormattedError<Schema, string>>>;
22
- }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid")[], "invalid" | "valid", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
20
+ reset: (() => void) | undefined;
21
+ submit: (() => Promise<boolean>) | undefined;
22
+ validate: ((formData?: Partial<TypeOf<Schema>> | undefined, fields?: Set<string>) => Promise<boolean>) | undefined;
23
+ validateWrapper: () => Promise<boolean>;
24
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("invalid" | "valid")[], "invalid" | "valid", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
23
25
  name: {
24
26
  type: StringConstructor;
25
27
  required: true;
@@ -28,24 +30,22 @@ export declare function defineFormWrapper<Schema extends FormSchema>(formProvide
28
30
  type: StringConstructor;
29
31
  default: undefined;
30
32
  };
31
- }>> & {
33
+ }>> & Readonly<{
32
34
  onInvalid?: ((...args: any[]) => any) | undefined;
33
35
  onValid?: ((...args: any[]) => any) | undefined;
34
- }, {
36
+ }>, {
35
37
  tag: string;
36
- }, {}> & {
37
- new (): {
38
- $slots: {
39
- default: (_: {
40
- invalid: boolean;
41
- formData: unknown extends Partial<TypeOf<Schema>> | undefined ? undefined : Partial<TypeOf<Schema>> | undefined;
42
- submit: () => Promise<boolean>;
43
- validate: () => Promise<boolean>;
44
- errors: Readonly<Ref<DeepReadonly<z.inferFormattedError<Schema>>>>;
45
- fieldsErrors: Map<string, Record<string, {
46
- _errors: string[];
47
- }>>;
48
- }) => any;
49
- };
38
+ }, SlotsType<{
39
+ default: {
40
+ errors?: DeepReadonly<z.inferFormattedError<Schema>>;
41
+ formData?: Partial<TypeOf<Schema>>;
42
+ formErrors?: DeepReadonly<inferFormattedError<Schema, string>>;
43
+ invalid: boolean;
44
+ submit?: InjectedFormData<Schema>["submit"];
45
+ validate?: InjectedFormData<Schema>["validate"];
46
+ validateWrapper?: () => Promise<boolean>;
47
+ fieldsErrors: Map<string, inferFormattedError<Schema, string>>;
48
+ clear?: InjectedFormData<Schema>["clear"];
49
+ reset?: InjectedFormData<Schema>["reset"];
50
50
  };
51
- };
51
+ }>, {}, {}, "invalid" | "reset" | "clear" | "errors" | "submit" | "validate" | "formData" | "tag" | "fields" | "fieldsErrors" | "validateWrapper", import('vue').ComponentProvideOptions, true, {}, any>;
package/dist/enums.d.ts CHANGED
@@ -25,6 +25,7 @@ export declare enum FormStatus {
25
25
  invalid = "invalid",
26
26
  valid = "valid",
27
27
  submitting = "submitting",
28
+ reset = "reset",
28
29
  updated = "updated",
29
30
  unknown = "unknown"
30
31
  }