1
0
mirror of synced 2025-02-16 20:53:13 +03:00
vue-formulario/src/index.ts
2021-06-14 14:02:10 +03:00

36 lines
1.2 KiB
TypeScript

import { VueConstructor } from 'vue'
import Formulario, { FormularioOptions } from '@/Formulario.ts'
import FormularioField from '@/FormularioField.vue'
import FormularioFieldGroup from '@/FormularioFieldGroup.vue'
import FormularioForm from '@/FormularioForm.vue'
export default {
Formulario,
install (Vue: VueConstructor, options?: FormularioOptions): void {
Vue.component('FormularioField', FormularioField)
Vue.component('FormularioFieldGroup', FormularioFieldGroup)
Vue.component('FormularioForm', FormularioForm)
// @deprecated Use FormularioField instead
Vue.component('FormularioInput', FormularioField)
// @deprecated Use FormularioFieldGroup instead
Vue.component('FormularioGrouping', FormularioFieldGroup)
Vue.mixin({
beforeCreate () {
const o = this.$options as Record<string, any>
if (typeof o.formulario === 'function') {
this.$formulario = o.formulario()
} else if (o.parent && o.parent.$formulario) {
this.$formulario = o.parent.$formulario
} else {
this.$formulario = new Formulario(options)
}
}
})
},
}