index.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var component_1 = require('./../common/component.js');
  4. component_1.VantComponent({
  5. relation: {
  6. name: 'badge',
  7. type: 'descendant',
  8. linked: function linked(target) {
  9. this.badges.push(target);
  10. this.setActive(this.data.active);
  11. },
  12. unlinked: function unlinked(target) {
  13. this.badges = this.badges.filter(function (item) {
  14. return item !== target;
  15. });
  16. this.setActive(this.data.active);
  17. }
  18. },
  19. props: {
  20. active: {
  21. type: Number,
  22. value: 0,
  23. observer: 'setActive'
  24. }
  25. },
  26. beforeCreate: function beforeCreate() {
  27. this.badges = [];
  28. this.currentActive = -1;
  29. },
  30. methods: {
  31. setActive: function setActive(active) {
  32. var _a = this,
  33. badges = _a.badges,
  34. currentActive = _a.currentActive;
  35. if (!badges.length) {
  36. return Promise.resolve();
  37. }
  38. this.currentActive = active;
  39. var stack = [];
  40. if (currentActive !== active && badges[currentActive]) {
  41. stack.push(badges[currentActive].setActive(false));
  42. }
  43. if (badges[active]) {
  44. stack.push(badges[active].setActive(true));
  45. }
  46. return Promise.all(stack);
  47. }
  48. }
  49. });
  50. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwicmVsYXRpb24iLCJuYW1lIiwidHlwZSIsImxpbmtlZCIsInVubGlua2VkIiwiaXRlbSIsInByb3BzIiwiYWN0aXZlIiwib2JzZXJ2ZXIiLCJiZWZvcmVDcmVhdGUiLCJtZXRob2RzIiwic2V0QWN0aXZlIiwiX2EiLCJiYWRnZXMiLCJjdXJyZW50QWN0aXZlIiwiUHJvbWlzZSIsInN0YWNrIl0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkUsY0FBVTtBQUNOQyxjQURNLE9BQUE7QUFFTkMsY0FGTSxZQUFBO0FBR05DLGdCQUFRLFNBQUEsTUFBQSxDQUFBLE1BQUEsRUFBa0I7QUFDdEIsaUJBQUEsTUFBQSxDQUFBLElBQUEsQ0FBQSxNQUFBO0FBQ0EsaUJBQUEsU0FBQSxDQUFlLEtBQUEsSUFBQSxDQUFmLE1BQUE7QUFMRSxTQUFBO0FBT05DLGtCQUFVLFNBQUEsUUFBQSxDQUFBLE1BQUEsRUFBa0I7QUFDeEIsaUJBQUEsTUFBQSxHQUFjLEtBQUEsTUFBQSxDQUFBLE1BQUEsQ0FBbUIsVUFBQSxJQUFBLEVBQWdCO0FBQUUsdUJBQU9DLFNBQVAsTUFBQTtBQUFuRCxhQUFjLENBQWQ7QUFDQSxpQkFBQSxTQUFBLENBQWUsS0FBQSxJQUFBLENBQWYsTUFBQTtBQUNIO0FBVkssS0FEWTtBQWF0QkMsV0FBTztBQUNIQyxnQkFBUTtBQUNKTCxrQkFESSxNQUFBO0FBRUpMLG1CQUZJLENBQUE7QUFHSlcsc0JBQVU7QUFITjtBQURMLEtBYmU7QUFvQnRCQyxrQkFBYyxTQUFBLFlBQUEsR0FBWTtBQUN0QixhQUFBLE1BQUEsR0FBQSxFQUFBO0FBQ0EsYUFBQSxhQUFBLEdBQXFCLENBQXJCLENBQUE7QUF0QmtCLEtBQUE7QUF3QnRCQyxhQUFTO0FBQ0xDLG1CQUFXLFNBQUEsU0FBQSxDQUFBLE1BQUEsRUFBa0I7QUFDekIsZ0JBQUlDLEtBQUosSUFBQTtBQUFBLGdCQUFlQyxTQUFTRCxHQUF4QixNQUFBO0FBQUEsZ0JBQW1DRSxnQkFBZ0JGLEdBQW5ELGFBQUE7QUFDQSxnQkFBSSxDQUFDQyxPQUFMLE1BQUEsRUFBb0I7QUFDaEIsdUJBQU9FLFFBQVAsT0FBT0EsRUFBUDtBQUNIO0FBQ0QsaUJBQUEsYUFBQSxHQUFBLE1BQUE7QUFDQSxnQkFBSUMsUUFBSixFQUFBO0FBQ0EsZ0JBQUlGLGtCQUFBQSxNQUFBQSxJQUE0QkQsT0FBaEMsYUFBZ0NBLENBQWhDLEVBQXVEO0FBQ25ERyxzQkFBQUEsSUFBQUEsQ0FBV0gsT0FBQUEsYUFBQUEsRUFBQUEsU0FBQUEsQ0FBWEcsS0FBV0gsQ0FBWEc7QUFDSDtBQUNELGdCQUFJSCxPQUFKLE1BQUlBLENBQUosRUFBb0I7QUFDaEJHLHNCQUFBQSxJQUFBQSxDQUFXSCxPQUFBQSxNQUFBQSxFQUFBQSxTQUFBQSxDQUFYRyxJQUFXSCxDQUFYRztBQUNIO0FBQ0QsbUJBQU9ELFFBQUFBLEdBQUFBLENBQVAsS0FBT0EsQ0FBUDtBQUNIO0FBZkk7QUF4QmEsQ0FBMUJqQiIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGNvbXBvbmVudF8xID0gcmVxdWlyZShcIi4uL2NvbW1vbi9jb21wb25lbnRcIik7XG5jb21wb25lbnRfMS5WYW50Q29tcG9uZW50KHtcbiAgICByZWxhdGlvbjoge1xuICAgICAgICBuYW1lOiAnYmFkZ2UnLFxuICAgICAgICB0eXBlOiAnZGVzY2VuZGFudCcsXG4gICAgICAgIGxpbmtlZDogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5iYWRnZXMucHVzaCh0YXJnZXQpO1xuICAgICAgICAgICAgdGhpcy5zZXRBY3RpdmUodGhpcy5kYXRhLmFjdGl2ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVubGlua2VkOiBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgICAgICB0aGlzLmJhZGdlcyA9IHRoaXMuYmFkZ2VzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaXRlbSAhPT0gdGFyZ2V0OyB9KTtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlKHRoaXMuZGF0YS5hY3RpdmUpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICdzZXRBY3RpdmUnXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmJhZGdlcyA9IFtdO1xuICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmUgPSAtMTtcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgc2V0QWN0aXZlOiBmdW5jdGlvbiAoYWN0aXZlKSB7XG4gICAgICAgICAgICB2YXIgX2EgPSB0aGlzLCBiYWRnZXMgPSBfYS5iYWRnZXMsIGN1cnJlbnRBY3RpdmUgPSBfYS5jdXJyZW50QWN0aXZlO1xuICAgICAgICAgICAgaWYgKCFiYWRnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlID0gYWN0aXZlO1xuICAgICAgICAgICAgdmFyIHN0YWNrID0gW107XG4gICAgICAgICAgICBpZiAoY3VycmVudEFjdGl2ZSAhPT0gYWN0aXZlICYmIGJhZGdlc1tjdXJyZW50QWN0aXZlXSkge1xuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goYmFkZ2VzW2N1cnJlbnRBY3RpdmVdLnNldEFjdGl2ZShmYWxzZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGJhZGdlc1thY3RpdmVdKSB7XG4gICAgICAgICAgICAgICAgc3RhY2sucHVzaChiYWRnZXNbYWN0aXZlXS5zZXRBY3RpdmUodHJ1ZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHN0YWNrKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9