vfg-next
Version:
A schema-based form generator component for Vue.js 3
47 lines (40 loc) • 1.43 kB
JavaScript
export * from "./utils/fieldsLoader";
export { default as fullComponents } from "./utils/fullComponents";
export { default as coreComponents } from "./utils/coreComponents";
export { default as schema } from "./utils/schema";
export { default as abstractField } from "./fields/abstractField";
export { default as dateFieldHelper } from "./utils/dateFieldHelper";
import _component from "./formGenerator.vue";
export const component = _component;
import _validators from "./utils/validators";
export const validators = _validators;
import { fieldComponents as _fieldComponents } from "./utils/schema";
export const fieldComponents = _fieldComponents;
let _app;
export const registerComponent = (components) => {
Object.keys(components).forEach((key) => {
_app.component(key, components[key]);
_fieldComponents[key] = components[key];
});
};
export default {
install(app, options) {
_app = app;
_app.component("VueFormGenerator", component);
_validators.init(app);
_app.config.globalProperties.VFG = {
component: _component,
validators: _validators,
};
if (options) {
if (options.components) registerComponent(options.components);
if (options.validators) {
for (let key in options.validators) {
if ({}.hasOwnProperty.call(options.validators, key)) {
_validators[key] = options.validators[key];
}
}
}
}
},
};