1
0
mirror of synced 2025-01-19 00:41:43 +03:00
Kruglov Kirill e1a10ee61e
Merge pull request #9 from cmath10/proposal-cleanup
Validation logic refactor, dead code removal, plugin system removed, file upload functionality removed
2020-10-23 14:14:39 +03:00
2020-10-19 13:45:31 +03:00
2020-10-21 10:58:40 +03:00
2020-10-23 13:37:51 +03:00
2020-10-22 17:23:45 +03:00
2020-05-21 14:30:55 +03:00
2020-10-20 17:41:28 +03:00
2020-10-19 13:45:31 +03:00
2019-11-01 14:35:06 -04:00
2020-05-22 14:22:56 +03:00
2020-10-19 13:45:17 +03:00
2020-10-21 10:58:40 +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.blurHandler as handler for blur event (it is necessary for validation when property errorBehavior is blur). Errors object list for field can be accessed through context.allErrors. Each error is an object with fields message (translated message), rule (rule name) and context.

The example below creates the authorization form from data:

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

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

        <FormularioGrouping name="options">
            <FormularioInput
                v-slot="vSlot"
                name="anonym"
            >
                <div>
                    <input
                        :id="vSlot.id"
                        v-model="vSlot.context.model"
                        type="checkbox"
                    >
                    <label :for="vSlot.id">As anonym</label>
                </div>
            </FormularioInput>
        </FormularioGrouping>

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

License

MIT

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

Description
No description provided
Readme 4.2 MiB
Languages
JavaScript 58.4%
TypeScript 26.6%
Vue 14.8%
Makefile 0.2%