1
0
mirror of synced 2024-11-22 05:16:05 +03:00
Go to file
Kruglov Kirill ee0d8a8983
Merge pull request #25 from retailcrm/dependabot/npm_and_yarn/lodash-4.17.21
chore(deps): bump lodash from 4.17.19 to 4.17.21
2021-05-12 15:46:41 +03:00
.github/ISSUE_TEMPLATE Library renamed to formulario 2020-05-22 14:22:56 +03:00
build fix: Disabled terser due to problems in builded files 2020-11-11 11:32:43 +03:00
dist 0.5.1 2020-11-17 09:36:13 +03:00
src fix: fixed removing array item in form data 2020-11-16 17:42:26 +03:00
storybook chore: Replaced old stories 2020-11-09 09:52:04 +03:00
test feat: custom model setter and getter props are added for FormularioInput 2020-11-13 12:13:55 +03:00
.editorconfig Changed intend_size 2020-05-21 14:30:55 +03:00
.eslintignore chore: Added storybook, removed vue-i18n (was not in use) 2020-10-19 13:45:28 +03:00
.eslintrc.js fix: Updated rollup-terser-plugin build dependency 2020-10-27 17:43:49 +03:00
.gitignore docs: Added storybook for case of array of fields 2020-11-02 11:54:50 +03:00
.npmignore chore: .npmignore & build config 2020-10-19 13:45:31 +03:00
.travis.yml Updates build to use node 11 2019-11-01 14:35:06 -04:00
babel.config.js style: Fixed style of babel.config.js 2020-10-19 13:45:18 +03:00
docker-compose.yml chore: Docker configuration for dev 2020-10-19 13:45:17 +03:00
LICENSE.txt Library renamed to formulario 2020-05-22 14:22:56 +03:00
Makefile chore: Docker configuration for dev 2020-10-19 13:45:17 +03:00
package.json 0.5.1 2020-11-17 09:36:13 +03:00
README.md docs: Fixed README.md 2020-11-10 10:27:51 +03:00
tsconfig.json chore: Build config fixes, modules paths correction 2020-10-19 13:45:15 +03:00
yarn.lock Merge pull request #25 from retailcrm/dependabot/npm_and_yarn/lodash-4.17.21 2021-05-12 15:46:41 +03:00

What is Vue Formulario?

Vue Formulario is a library, based on Vue Formulate, that handles the core logic for working with forms and gives full control on the form presentation.

Examples

Every form control have to rendered inside FormularioInput component. This component provides id and context in v-slot props. Control should use context.model as v-model and context.runValidation as handler for blur event (it is necessary for validation when property validationBehavior is demand). Errors list for a field can be accessed through context.allErrors.

The example below creates the authorization form from data:

{
    "username": "",
    "password": "",
    "options": {
        "anonymous": false,
        "tags": ["test"]
    }
}
<FormularioForm
    v-model="formData"
    name="formName"
>
    <FormularioInput
        v-slot="{ context }"
        name="username"
        validation="required|email"
        validation-behavior="live"
    >
        <input
            v-model="context.model"
            type="text"
            @blur="context.runValidation"
        >
        <div v-if="context.allErrors.length > 0">
            <span
                v-for="(error, index) in context.allErrors"
                :key="index"
            >
                {{ error }}
            </span>
        </div>
    </FormularioInput>

    <FormularioInput
        v-slot="{ context }"
        name="password"
        validation="required|min:4,length"
    >
        <input
            v-model="context.model"
            type="password"
        >
    </FormularioInput>

    <FormularioGrouping name="options">
        <FormularioInput
            v-slot="{ context }"
            name="anonymous"
        >
            <div>
                <input
                    id="options-anonymous"
                    v-model="context.model"
                    type="checkbox"
                >
                <label for="options-anonymous">As anonymous</label>
            </div>
        </FormularioInput>
    </FormularioGrouping>

    <FormularioInput
        v-slot="{ context }"
        name="options.tags[0]"
    >
        <input
            v-model="context.model"
            type="text"
        >
    </FormularioInput>
</FormularioForm>

License

MIT

Copyright (c) 2020-present, RetailDriver LLC
Copyright (c) 2020-present, Braid LLC