index.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. current: 'checkbox',
  14. },
  15. classes: ['icon-class', 'label-class'],
  16. props: {
  17. value: Boolean,
  18. disabled: Boolean,
  19. useIconSlot: Boolean,
  20. checkedColor: String,
  21. labelPosition: String,
  22. labelDisabled: Boolean,
  23. shape: {
  24. type: String,
  25. value: 'round'
  26. },
  27. iconSize: {
  28. type: null,
  29. value: 20
  30. }
  31. },
  32. data: {
  33. parentDisabled: false
  34. },
  35. methods: {
  36. emitChange: function (value) {
  37. if (this.parent) {
  38. this.setParentValue(this.parent, value);
  39. }
  40. else {
  41. emit(this, value);
  42. }
  43. },
  44. toggle: function () {
  45. var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
  46. if (!disabled && !parentDisabled) {
  47. this.emitChange(!value);
  48. }
  49. },
  50. onClickLabel: function () {
  51. var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
  52. if (!disabled && !labelDisabled && !parentDisabled) {
  53. this.emitChange(!value);
  54. }
  55. },
  56. setParentValue: function (parent, value) {
  57. var parentValue = parent.data.value.slice();
  58. var name = this.data.name;
  59. var max = parent.data.max;
  60. if (value) {
  61. if (max && parentValue.length >= max) {
  62. return;
  63. }
  64. if (parentValue.indexOf(name) === -1) {
  65. parentValue.push(name);
  66. emit(parent, parentValue);
  67. }
  68. }
  69. else {
  70. var index = parentValue.indexOf(name);
  71. if (index !== -1) {
  72. parentValue.splice(index, 1);
  73. emit(parent, parentValue);
  74. }
  75. }
  76. }
  77. }
  78. });