UNPKG

@fext/vue-form-builder

Version:

Build powerful vue form with JSON schema and composition api.

253 lines (231 loc) 6.66 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var vueUse = require('@fext/vue-use'); var __vue_normalize__ = _interopDefault(require('vue-runtime-helpers/dist/normalize-component.mjs')); // var script = { name: 'ant-form-adaptor', props: { tip: String, tooltip: String, name: String, size: { type: String, default: 'default' }, label: String, rules: { type: [String, Object] }, value: { required: false }, props: { type: Object, default: function _default() { return {}; }, required: false }, items: { type: Array, default: function _default() { return []; }, required: false }, extend: { type: Object, default: function _default() { return {}; } }, metadata: { type: Object, default: function _default() { return {}; } }, formValues: { type: Object, required: false } }, setup: function setup(props, context) { var _useFormElement = vueUse.useFormElement(props, context), dirty = _useFormElement.dirty, isRequired = _useFormElement.isRequired, localValue = _useFormElement.localValue, setInitialValue = _useFormElement.setInitialValue, updateLocalValue = _useFormElement.updateLocalValue; return { dirty: dirty, isRequired: isRequired, localValue: localValue, setInitialValue: setInitialValue, updateLocalValue: updateLocalValue }; }, data: function data() { return {}; }, computed: { component: function component() { return this.extend.component || 'a-input'; }, isSelect: function isSelect() { return this.component === 'a-select'; }, isMultipleSelect: function isMultipleSelect() { return this.isSelect && this.props.multiple; }, isRadio: function isRadio() { return this.component === 'a-radio-group'; }, isCheckbox: function isCheckbox() { return this.component === 'a-checkbox-group'; } }, created: function created() { var localValue = this.localValue, isMultipleSelect = this.isMultipleSelect, isCheckbox = this.isCheckbox; if (localValue == null) { if (isMultipleSelect || isCheckbox) { this.setInitialValue([]); } } }, methods: { updateAntLocalValue: function updateAntLocalValue(source) { if (source.target) { this.updateLocalValue(source.target.value); } else { this.updateLocalValue(source); } } } }; /* script */ var __vue_script__ = script; /* template */ var __vue_render__ = function __vue_render__() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c("validation-provider", { attrs: { rules: _vm.rules }, scopedSlots: _vm._u([{ key: "default", fn: function fn(ref) { var errors = ref.errors; return [_c("a-form-item", { attrs: { size: _vm.size, required: _vm.isRequired, validateStatus: errors.length ? "error" : null, help: errors[0], extra: _vm.tip }, scopedSlots: _vm._u([{ key: "label", fn: function fn() { return [_c("span", [_vm._v(_vm._s(_vm.label))]), _vm._v(" "), _c("span", [_c("a-tooltip", { attrs: { title: _vm.tooltip, placement: "top" } }, [_c("a-icon", { attrs: { type: "question-circle" } })], 1)], 1) ]; }, proxy: true }], null, true) }, [_vm._v(" "), _vm.isSelect ? _c(_vm.component, _vm._b({ tag: "component", attrs: { value: _vm.localValue }, on: { change: _vm.updateAntLocalValue } }, "component", _vm.props, false), _vm._l(_vm.items, function (item) { return _c("a-select-option", { key: item.value, attrs: { value: item.value } }, [_vm._v("\n " + _vm._s(item.text) + "\n ")]); }), 1) : _vm.isRadio ? _c(_vm.component, _vm._b({ tag: "component", attrs: { value: _vm.localValue }, on: { change: _vm.updateAntLocalValue } }, "component", _vm.props, false), _vm._l(_vm.items, function (item) { return _c("a-radio", { key: item.value, attrs: { value: item.value } }, [_vm._v("\n " + _vm._s(item.text) + "\n ")]); }), 1) : _vm.isCheckbox ? _c(_vm.component, _vm._b({ tag: "component", attrs: { value: _vm.localValue }, on: { change: _vm.updateAntLocalValue } }, "component", _vm.props, false), _vm._l(_vm.items, function (item) { return _c("a-checkbox", { key: item.value, attrs: { value: item.value } }, [_vm._v("\n " + _vm._s(item.text) + "\n ")]); }), 1) : _c(_vm.component, _vm._b({ tag: "component", attrs: { value: _vm.localValue }, on: { change: _vm.updateAntLocalValue } }, "component", _vm.props, false))], 1)]; } }]) }); }; var __vue_staticRenderFns__ = []; __vue_render__._withStripped = true; /* style */ var __vue_inject_styles__ = undefined; /* scoped */ var __vue_scope_id__ = undefined; /* module identifier */ var __vue_module_identifier__ = undefined; /* functional template */ var __vue_is_functional_template__ = false; /* style inject */ /* style inject SSR */ /* style inject shadow dom */ var __vue_component__ = /*#__PURE__*/__vue_normalize__({ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ }, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined); var install = function installAntFormAdaptor(Vue) { Vue.component('ant-form-adaptor', __vue_component__); }; var antFormAdaptor = { install: install }; exports.AntFormAdaptor = __vue_component__; exports.default = antFormAdaptor;