37 lines
1.2 KiB
JavaScript
37 lines
1.2 KiB
JavaScript
import { __spreadArray } from "tslib";
|
|
import { Component, triggerEvent, getValueFromProps } from '../../_util/simply';
|
|
import { CheckboxGroupDefaultProps } from './props';
|
|
import mixinValue from '../../mixins/value';
|
|
Component(CheckboxGroupDefaultProps, {
|
|
onChange: function (args, e) {
|
|
if (getValueFromProps(this, 'disabled')) {
|
|
return;
|
|
}
|
|
var event;
|
|
event = e;
|
|
var currentValue = this.getValue();
|
|
var index = event.currentTarget.dataset.index;
|
|
var selectValue = getValueFromProps(this, 'options')[index].value;
|
|
if (currentValue.indexOf(selectValue) > -1) {
|
|
currentValue = currentValue.filter(function (v) { return v !== selectValue; });
|
|
}
|
|
else {
|
|
currentValue = __spreadArray(__spreadArray([], currentValue, true), [selectValue], false);
|
|
}
|
|
if (!this.isControlled()) {
|
|
this.update(currentValue);
|
|
}
|
|
triggerEvent(this, 'change', currentValue, e);
|
|
},
|
|
}, null, [
|
|
mixinValue({
|
|
transformValue: function (val) {
|
|
var value = val || [];
|
|
return {
|
|
needUpdate: true,
|
|
value: value,
|
|
};
|
|
},
|
|
}),
|
|
]);
|