index.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var component_1 = require("../common/component");
  4. function emit(target, value) {
  5. target.$emit('input', value);
  6. target.$emit('change', value);
  7. }
  8. component_1.VantComponent({
  9. field: true,
  10. relation: {
  11. name: 'checkbox-group',
  12. type: 'ancestor',
  13. linked: function (target) {
  14. this.parent = target;
  15. },
  16. unlinked: function () {
  17. this.parent = null;
  18. }
  19. },
  20. classes: ['icon-class', 'label-class'],
  21. props: {
  22. value: Boolean,
  23. disabled: Boolean,
  24. useIconSlot: Boolean,
  25. checkedColor: String,
  26. labelPosition: String,
  27. labelDisabled: Boolean,
  28. shape: {
  29. type: String,
  30. value: 'round'
  31. }
  32. },
  33. methods: {
  34. emitChange: function (value) {
  35. if (this.parent) {
  36. this.setParentValue(this.parent, value);
  37. }
  38. else {
  39. emit(this, value);
  40. }
  41. },
  42. toggle: function () {
  43. var _a = this.data, disabled = _a.disabled, value = _a.value;
  44. if (!disabled) {
  45. this.emitChange(!value);
  46. }
  47. },
  48. onClickLabel: function () {
  49. var _a = this.data, labelDisabled = _a.labelDisabled, disabled = _a.disabled, value = _a.value;
  50. if (!disabled && !labelDisabled) {
  51. this.emitChange(!value);
  52. }
  53. },
  54. setParentValue: function (parent, value) {
  55. var parentValue = parent.data.value.slice();
  56. var name = this.data.name;
  57. var max = parent.data.max;
  58. if (value) {
  59. if (max && parentValue.length >= max) {
  60. return;
  61. }
  62. if (parentValue.indexOf(name) === -1) {
  63. parentValue.push(name);
  64. emit(parent, parentValue);
  65. }
  66. }
  67. else {
  68. var index = parentValue.indexOf(name);
  69. if (index !== -1) {
  70. parentValue.splice(index, 1);
  71. emit(parent, parentValue);
  72. }
  73. }
  74. }
  75. }
  76. });