6
6
<a href =" https://www.npmjs.com/package/@asigloo/vue-dynamic-forms " >
7
7
<img src="https://badgen.net/npm/v/@asigloo/vue-dynamic-forms/next" alt="Current npm version">
8
8
</a >
9
- <a href =" https://bundlephobia.com/result?p=@asigloo/vue-dynamic-forms " >
10
- <img src="https://flat.badgen.net/bundlephobia/min/@asigloo/vue-dynamic-forms@next " alt="Minified size">
9
+ <a href =" https://bundlephobia.com/result?p=@asigloo/vue-dynamic-forms@latest " >
10
+ <img src="https://flat.badgen.net/bundlephobia/min/@asigloo/vue-dynamic-forms" alt="Minified size">
11
11
</a >
12
12
<a href =" https://vuejs.org " >
13
13
<img src="https://flat.badgen.net/badge/vue.js/3.x.x/4fc08d?icon=github" alt="Vue.js version">
@@ -25,47 +25,131 @@ So, wouldn't it be more economical to create the forms dynamically? Based on met
25
25
26
26
That's ** Vue Dynamic Forms** .
27
27
28
- ## Status: Beta
28
+ ## Status: Stable
29
29
30
- This is the Vue ` 3.x.x ` compatible version. The focus right now is out of the box ` Typescript ` support, three shakeable, improve accesiility and be lighter in size. For Vue ` 2.x.x ` please use the library tags [ 2.x] ( https://github.com/alvarosaburido/vue-dynamic-forms/tree/2.x ) .
30
+ This is the Vue ` 3.x.x ` compatible version. Out of the box ` Typescript ` support, three shakeable, improved accesiility and be lighter in size. For Vue ` 2.x.x ` please use the library tags [ 2.x] ( https://github.com/alvarosaburido/vue-dynamic-forms/tree/2.x ) .
31
31
32
32
## Documentation
33
33
34
34
Complete documentation and examples available at
35
35
36
36
- ** [ Documentation] ( https://vue-dynamic-forms.netlify.app ) **
37
- - ** [ Sandbox Demo ] ( https://codesandbox.io/s/vue-dynamic-forms-ftzes ) **
37
+ - ** [ Demos ] ( #demos ) **
38
38
- ** Migration Guide** (soon)
39
39
40
40
## Installation
41
41
42
42
``` bash
43
- $ npm install @asigloo/vue-dynamic-forms@next
43
+ $ npm install @asigloo/vue-dynamic-forms
44
44
```
45
45
46
46
or if you prefer yarn
47
47
48
48
``` bash
49
- $ yarn add @asigloo/vue-dynamic-forms@next
49
+ $ yarn add @asigloo/vue-dynamic-forms
50
50
```
51
51
52
52
## Usage
53
53
54
- The installation and usage has change to align with new Vue 3 initialization process.
54
+ The installation and usage has change to align with new Vue 3 plugin process.
55
55
56
56
To create a new ` Dynamic Form ` instance, use the ` createDynamicForms ` function;
57
57
58
58
``` js
59
59
import { createApp } from ' vue' ;
60
60
import { createDynamicForms } from ' @asigloo/vue-dynamic-forms' ;
61
61
62
- const VueDynamicForms = createDynamicForms ({} );
62
+ const VueDynamicForms = createDynamicForms ();
63
63
64
64
export const app = createApp (App);
65
65
66
66
app .use (VueDynamicForms);
67
67
```
68
68
69
+ In your component:
70
+
71
+ ``` vue
72
+ <template>
73
+ <dynamic-form :form="form" @change="valueChanged" />
74
+ </template>
75
+
76
+ <script lang="ts">
77
+ import { computed, defineComponent, reactive } from 'vue';
78
+
79
+ import {
80
+ CheckboxField,
81
+ TextField,
82
+ SelectField,
83
+ } from '@asigloo/vue-dynamic-forms';
84
+
85
+ export default defineComponent({
86
+ name: 'BasicDemo',
87
+ setup() {
88
+ const form = computed(() => ({
89
+ id: 'basic-demo',
90
+ fields: {
91
+ username: TextField({
92
+ label: 'Username',
93
+ }),
94
+ games: SelectField({
95
+ label: 'Games',
96
+ options: [
97
+ {
98
+ value: 'the-last-of-us',
99
+ label: 'The Last of Us II',
100
+ },
101
+ {
102
+ value: 'death-stranding',
103
+ label: 'Death Stranding',
104
+ },
105
+ {
106
+ value: 'nier-automata',
107
+ label: 'Nier Automata',
108
+ },
109
+ ],
110
+ }),
111
+ checkIfAwesome: CheckboxField({
112
+ label: 'Remember Me',
113
+ }),
114
+ },
115
+ }));
116
+
117
+ function valueChanged(values) {
118
+ console.log('Values', values);
119
+ }
120
+
121
+ return {
122
+ form,
123
+ valueChanged,
124
+ };
125
+ },
126
+ });
127
+ </script>
128
+ ```
129
+
130
+ ## Demos
131
+
132
+ ![ Vue Dynamic Forms Demo] ( https://res.cloudinary.com/alvarosaburido/image/upload/v1610265908/vue-dynamic-forms-demo.png )
133
+
134
+ We've prepared some demos to show different use cases of the library and how to use each type of input field.
135
+
136
+ To check them just run the command bellow which run the app at ` http://localhost:6044/ `
137
+
138
+ ```
139
+ yarn run serve
140
+ ```
141
+
142
+ - [x] General Form
143
+ - [x] Text Fields
144
+ - [x] Number Fields
145
+ - [x] Select Fields
146
+ - [x] Textarea Fields
147
+ - [x] Radio Fields
148
+ - [x] Login
149
+ - [x] Custom Fields
150
+ - [ ] Axios form (Retrieve form structure from an API)
151
+ - [ ] TailwindCSS styling
152
+
69
153
## Development
70
154
71
155
### Project setup
@@ -92,22 +176,22 @@ yarn run build
92
176
yarn run build:dts
93
177
```
94
178
95
- ### Run your tests
179
+ ### Lints and fixes files
96
180
97
181
```
98
- yarn run test
182
+ yarn run lint
99
183
```
100
184
101
- ### Lints and fixes files
185
+ ### Run your unit tests
102
186
103
187
```
104
- yarn run lint
188
+ yarn run test
105
189
```
106
190
107
- ### Run your unit tests
191
+ ### Run your e2e tests
108
192
109
193
```
110
- yarn run test:unit
194
+ yarn run test
111
195
```
112
196
113
197
## Contributing
0 commit comments