cheetah-form
v1.2.0
Published
A Vuetify Json based form generator
Downloads
6
Maintainers
Readme
Cheetah forms
Table of Contents
About The Project
Cheetah Forms is a simple JSON form builder for generating a Vuetify Form with just a JSON. Cheetah Forms uses Vuetify to make you form a Material designed form
Fields Form
Groups Form
Features:
- JSON based
- Grid support
- Default fields
- Validation
- Default style
Built With
Getting Started
Prerequisites
This is an example of how to list things you need to use the software and how to install them.
- npm
npm install npm@latest -g
Installation
- Install NPM packages
npm install cheetah-form
Usage
Basic usage
<cheetah-form :schema="schema" :model="model" @save="save"></cheetah-form>
with:
schema
: the json configuration of the form (required)model
: the starting value of your model (required)@save
: event for handeling the save (returns edited model)
JSON FORM FORMAT
{
"code": "profile-parent",
"title": "title",
"subtitle": "subtitle",
"fields": [{
"type": "text-field",
"name": "Naam",
"required": true,
"model": "name",
"cols": {...}
},
"groups": []
}
with:
code
: the form unique codetitle
: the title of the form (optional)subtitle
: ths subtitle of the form (optional)fields
: array of fields for the form (is ignored is groups has a value)groups
: when you want to create a form of multiple parts use groups
JSON FIELD FORMAT
{
"type": "text-field",
"name": "Name",
"required": true,
"disabled": false,
"placeholder": 'placeholder',
"hint": 'hint',
"model": "user.name",
"prefix": "+32",
"cols": 12
}
with:
type
: the type of field (check suported types) (required)name
: the label of the field (required)model
: model in doted notation (required)required
: if the field is required or not (optional)disabled
: if the field is disabled or not (optional)placeholder
: the placeholder (optional)hint
: the hint (optional)prefix
: a prefix added before the field (optional)cols
: the width of the field (1-12, default: 12)
JSON GROUP FORMAT
{
"id": 1,
"title": "Name",
"fields": [],
}
with:
id
: id of the group (required)title
: the title of the group (required)fields
: array of fields (see Json Field format) (required)
SUPPORTED TYPES
text-field
: a normal text fieldspecial additional options:
- number field
attributes: { type: 'number', min: 1000 max: 1000 }
- number field
textarea
: a normal textareaspecial additional options:
select
: a normal selectspecial additional options:
string items
items: ['Men', 'Woman']
object items
itemValue: 'key', itemText: 'label', items: [{ 'label': 'label', 'key': 'someKey', },{ 'label': 'label2', 'key': 'someKey2', }]
combobox
: a comboboxspecial additional options:
string items
items: ['Men', 'Woman']
object items
itemValue: 'key', itemText: 'label', items: [{ 'label': 'label', 'key': 'someKey', },{ 'label': 'label2', 'key': 'someKey2', }]
toggler
: a switchspecial additional options:
radio
: radiospecial additional options:
- object items
options: [{ 'label': 'label', 'value': 'someKey', },{ 'label': 'label2', 'value': 'someKey2', }]
- object items
checkbox
: a simple checkbox ###### special additional options:password
: a password input field with hide and reviel option ###### special additional options:
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Siebe Vander Henst - @vh_siebe - [email protected]
Project Link: https://github.com/siebevh/Cheetah-forms