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.

73 lines
1.6 KiB

"use strict";
exports.__esModule = true;
exports.default = void 0;
var _utils = require("../utils");
var _field = require("../mixins/field");
var _relation = require("../mixins/relation");
var _createNamespace = (0, _utils.createNamespace)('checkbox-group'),
createComponent = _createNamespace[0],
bem = _createNamespace[1];
var _default2 = createComponent({
mixins: [(0, _relation.ParentMixin)('vanCheckbox'), _field.FieldMixin],
props: {
max: [Number, String],
disabled: Boolean,
direction: String,
iconSize: [Number, String],
checkedColor: String,
value: {
type: Array,
default: function _default() {
return [];
}
}
},
watch: {
value: function value(val) {
this.$emit('change', val);
}
},
methods: {
// @exposed-api
toggleAll: function toggleAll(options) {
if (options === void 0) {
options = {};
}
if (typeof options === 'boolean') {
options = {
checked: options
};
}
var _options = options,
checked = _options.checked,
skipDisabled = _options.skipDisabled;
var children = this.children.filter(function (item) {
if (item.disabled && skipDisabled) {
return item.checked;
}
return checked != null ? checked : !item.checked;
});
var names = children.map(function (item) {
return item.name;
});
this.$emit('input', names);
}
},
render: function render() {
var h = arguments[0];
return h("div", {
"class": bem([this.direction])
}, [this.slots()]);
}
});
exports.default = _default2;