12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- "use strict";
- exports.__esModule = true;
- exports.default = void 0;
- var _utils = require("../utils");
- var _checkbox = require("../mixins/checkbox");
- var _createNamespace = (0, _utils.createNamespace)('checkbox'),
- createComponent = _createNamespace[0],
- bem = _createNamespace[1];
- var _default = createComponent({
- mixins: [(0, _checkbox.CheckboxMixin)({
- bem: bem,
- role: 'checkbox',
- parent: 'vanCheckbox'
- })],
- computed: {
- checked: {
- get: function get() {
- if (this.parent) {
- return this.parent.value.indexOf(this.name) !== -1;
- }
- return 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: {
- // @exposed-api
- toggle: function toggle(checked) {
- var _this = this;
- if (checked === void 0) {
- 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;
- });
- },
- 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;
|