@form-create/component-elm-checkbox
Version:
@form-create/element-ui 内置组件
126 lines (125 loc) • 3.67 kB
JavaScript
/*!
* FormCreate 低代码表单渲染器
* @form-create/component-elm-checkbox v2.6.3
* (c) 2018-2024 xaboy
* Github https://github.com/xaboy/form-create
* Site https://form-create.com/
* Released under the MIT License.
*/
var y = Object.defineProperty;
var a = Object.getOwnPropertySymbols;
var m = Object.prototype.hasOwnProperty, v = Object.prototype.propertyIsEnumerable;
var p = (n, e, r) => e in n ? y(n, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[e] = r, l = (n, e) => {
for (var r in e || (e = {}))
m.call(e, r) && p(n, r, e[r]);
if (a)
for (var r of a(e))
v.call(e, r) && p(n, r, e[r]);
return n;
};
function g(n) {
return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, "default") ? n.default : n;
}
function u() {
return u = Object.assign ? Object.assign.bind() : function(n) {
for (var e, r = 1; r < arguments.length; r++) for (var t in e = arguments[r], e) Object.prototype.hasOwnProperty.call(e, t) && (n[t] = e[t]);
return n;
}, u.apply(this, arguments);
}
var O = ["attrs", "props", "domProps"], j = ["class", "style", "directives"], x = ["on", "nativeOn"], A = function(n) {
return n.reduce(function(e, r) {
for (var t in r) if (!e[t]) e[t] = r[t];
else if (O.indexOf(t) !== -1) e[t] = u({}, e[t], r[t]);
else if (j.indexOf(t) !== -1) {
var i = e[t] instanceof Array ? e[t] : [e[t]], f = r[t] instanceof Array ? r[t] : [r[t]];
e[t] = [].concat(i, f);
} else if (x.indexOf(t) !== -1)
for (var o in r[t]) if (e[t][o]) {
var c = e[t][o] instanceof Array ? e[t][o] : [e[t][o]], d = r[t][o] instanceof Array ? r[t][o] : [r[t][o]];
e[t][o] = [].concat(c, d);
} else e[t][o] = r[t][o];
else if (t === "hook") for (var s in r[t]) e[t][s] = e[t][s] ? C(e[t][s], r[t][s]) : r[t][s];
else e[t] = r[t];
return e;
}, {});
}, C = function(n, e) {
return function() {
n && n.apply(this, arguments), e && e.apply(this, arguments);
};
}, k = A;
const h = /* @__PURE__ */ g(k);
function I(n, e) {
return Object.keys(n).reduce((r, t) => (r.push(n[t]), r), []);
}
const E = "fcCheckbox", P = {
name: E,
props: {
formCreateInject: {
type: Object,
required: !0
},
value: {
type: Array,
default: () => []
},
type: String
},
watch: {
"formCreateInject.options": {
handler() {
this.update();
},
deep: !0
},
value() {
this.update();
}
},
data() {
return {
trueValue: []
};
},
methods: {
options() {
const n = this.formCreateInject.options;
return Array.isArray(n) ? n : [];
},
onInput(n) {
this.$emit("input", this.options().filter((e) => n.indexOf(e.label) !== -1).map((e) => e.value).filter((e) => e !== void 0));
},
update() {
const n = Array.isArray(this.value) ? this.value : [this.value];
this.trueValue = this.options().filter((e) => n.indexOf(e.value) !== -1).map((e) => e.label);
}
},
created() {
this.update();
},
render() {
const n = arguments[0];
return n("ElCheckboxGroup", h([{}, this.formCreateInject.prop, {}, {
props: {
value: this.trueValue
}
}, {
ref: "el",
on: {
input: this.onInput
}
}]), [this.options().map((e, r) => {
const t = l({}, e), i = this.type === "button" ? "ElCheckboxButton" : "ElCheckbox";
return delete t.value, n(i, h([{}, {
props: t
}, {
key: i + r + "-" + e.value
}]));
}), I(this.$slots)]);
},
mounted() {
this.$emit("fc.el", this.$refs.el);
}
};
export {
P as default
};