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
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; |