You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/components/FormLoader/FactoryPattern.vue

35 lines
828 B

5 years ago
<template>
5 years ago
<v-flex :class="element.width">
5 years ago
<component v-bind:is="element.type" :values="values" :element="element" @input="changeValue" ></component>
5 years ago
</v-flex>
5 years ago
</template>
<script>
import Vue from 'vue'
const requireElement = require.context('./Elements', true, /\.vue$/);
requireElement.keys().forEach(fileName => {
// Replace ./ and .vue
const elementName = fileName.replace(/(\.\/|\.vue)/g, '')
Vue.component(elementName,
() => import(`./Elements/${elementName}.vue`)
)
});
export default {
props:{
element:{
type: Object,
required: true
5 years ago
},
values: {
required: false,
type: Object,
5 years ago
}
},
5 years ago
methods:{
changeValue() {
this.$emit('input', this.values)
}
}
5 years ago
}
</script>