| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- "use strict";
- exports.__esModule = true;
- exports["default"] = void 0;
- var _utils = require("../utils");
- var _checkbox = require("../mixins/checkbox");
- var _use = (0, _utils.use)('checkbox'),
- sfc = _use[0],
- bem = _use[1];
- var _default = sfc({
- mixins: [(0, _checkbox.CheckboxMixin)('van-checkbox-group', bem)],
- computed: {
- checked: {
- get: function get() {
- return this.parent ? this.parent.value.indexOf(this.name) !== -1 : this.value;
- },
- set: function set(val) {
- if (this.parent) {
- this.setParentValue(val);
- } else {
- this.$emit('input', val);
- }
- }
- }
- },
- watch: {
- value: function value(val) {
- this.$emit('change', val);
- }
- },
- methods: {
- toggle: function toggle() {
- var _this = this;
- var checked = !this.checked; // When toggle method is called multiple times at the same time,
- // only the last call is valid.
- // This is a hack for usage inside Cell.
- clearTimeout(this.toggleTask);
- this.toggleTask = setTimeout(function () {
- _this.checked = checked;
- });
- },
- onClickIcon: function onClickIcon() {
- if (!this.isDisabled) {
- this.toggle();
- }
- },
- onClickLabel: function onClickLabel() {
- if (!this.isDisabled && !this.labelDisabled) {
- this.toggle();
- }
- },
- setParentValue: function setParentValue(val) {
- var parent = this.parent;
- var value = parent.value.slice();
- if (val) {
- if (parent.max && value.length >= parent.max) {
- return;
- }
- /* istanbul ignore else */
- if (value.indexOf(this.name) === -1) {
- value.push(this.name);
- parent.$emit('input', value);
- }
- } else {
- var index = value.indexOf(this.name);
- /* istanbul ignore else */
- if (index !== -1) {
- value.splice(index, 1);
- parent.$emit('input', value);
- }
- }
- }
- }
- });
- exports["default"] = _default;
|