index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var component_1 = require('../common/component');
  4. component_1.VantComponent({
  5. relation: {
  6. name: 'collapse-item',
  7. type: 'descendant',
  8. current: 'collapse',
  9. },
  10. props: {
  11. value: {
  12. type: null,
  13. observer: 'updateExpanded',
  14. },
  15. accordion: {
  16. type: Boolean,
  17. observer: 'updateExpanded',
  18. },
  19. border: {
  20. type: Boolean,
  21. value: true,
  22. },
  23. },
  24. methods: {
  25. updateExpanded: function () {
  26. this.children.forEach(function (child) {
  27. child.updateExpanded();
  28. });
  29. },
  30. switch: function (name, expanded) {
  31. var _a = this.data,
  32. accordion = _a.accordion,
  33. value = _a.value;
  34. var changeItem = name;
  35. if (!accordion) {
  36. name = expanded
  37. ? (value || []).concat(name)
  38. : (value || []).filter(function (activeName) {
  39. return activeName !== name;
  40. });
  41. } else {
  42. name = expanded ? name : '';
  43. }
  44. if (expanded) {
  45. this.$emit('open', changeItem);
  46. } else {
  47. this.$emit('close', changeItem);
  48. }
  49. this.$emit('change', name);
  50. this.$emit('input', name);
  51. },
  52. },
  53. });