index.js 7.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var component_1 = require('./../common/component.js');
  4. var safe_area_1 = require('./../mixins/safe-area.js');
  5. component_1.VantComponent({
  6. mixins: [safe_area_1.safeArea()],
  7. relation: {
  8. name: 'tabbar-item',
  9. type: 'descendant',
  10. linked: function linked(target) {
  11. this.children.push(target);
  12. target.parent = this;
  13. target.updateFromParent();
  14. },
  15. unlinked: function unlinked(target) {
  16. this.children = this.children.filter(function (item) {
  17. return item !== target;
  18. });
  19. this.updateChildren();
  20. }
  21. },
  22. props: {
  23. active: {
  24. type: [Number, String],
  25. observer: 'updateChildren'
  26. },
  27. activeColor: {
  28. type: String,
  29. observer: 'updateChildren'
  30. },
  31. inactiveColor: {
  32. type: String,
  33. observer: 'updateChildren'
  34. },
  35. fixed: {
  36. type: Boolean,
  37. value: true
  38. },
  39. border: {
  40. type: Boolean,
  41. value: true
  42. },
  43. zIndex: {
  44. type: Number,
  45. value: 1
  46. }
  47. },
  48. beforeCreate: function beforeCreate() {
  49. this.children = [];
  50. },
  51. methods: {
  52. updateChildren: function updateChildren() {
  53. var children = this.children;
  54. if (!Array.isArray(children) || !children.length) {
  55. return Promise.resolve();
  56. }
  57. return Promise.all(children.map(function (child) {
  58. return child.updateFromParent();
  59. }));
  60. },
  61. onChange: function onChange(child) {
  62. var index = this.children.indexOf(child);
  63. var active = child.data.name || index;
  64. if (active !== this.data.active) {
  65. this.$emit('change', active);
  66. }
  67. }
  68. }
  69. });
  70. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwic2FmZV9hcmVhXzEiLCJtaXhpbnMiLCJyZWxhdGlvbiIsIm5hbWUiLCJ0eXBlIiwibGlua2VkIiwidGFyZ2V0IiwidW5saW5rZWQiLCJpdGVtIiwicHJvcHMiLCJhY3RpdmUiLCJvYnNlcnZlciIsImFjdGl2ZUNvbG9yIiwiaW5hY3RpdmVDb2xvciIsImZpeGVkIiwiYm9yZGVyIiwiekluZGV4IiwiYmVmb3JlQ3JlYXRlIiwibWV0aG9kcyIsInVwZGF0ZUNoaWxkcmVuIiwiY2hpbGRyZW4iLCJBcnJheSIsIlByb21pc2UiLCJjaGlsZCIsIm9uQ2hhbmdlIiwiaW5kZXgiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxjQUFjQyxRQUFsQiwwQkFBa0JBLENBQWxCO0FBQ0EsSUFBSUMsY0FBY0QsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkcsWUFBUSxDQUFDRCxZQURhLFFBQ2JBLEVBQUQsQ0FEYztBQUV0QkUsY0FBVTtBQUNOQyxjQURNLGFBQUE7QUFFTkMsY0FGTSxZQUFBO0FBR05DLGdCQUFRLFNBQUEsTUFBQSxDQUFBLE1BQUEsRUFBa0I7QUFDdEIsaUJBQUEsUUFBQSxDQUFBLElBQUEsQ0FBQSxNQUFBO0FBQ0FDLG1CQUFBQSxNQUFBQSxHQUFBQSxJQUFBQTtBQUNBQSxtQkFBQUEsZ0JBQUFBO0FBTkUsU0FBQTtBQVFOQyxrQkFBVSxTQUFBLFFBQUEsQ0FBQSxNQUFBLEVBQWtCO0FBQ3hCLGlCQUFBLFFBQUEsR0FBZ0IsS0FBQSxRQUFBLENBQUEsTUFBQSxDQUFxQixVQUFBLElBQUEsRUFBZ0I7QUFBRSx1QkFBT0MsU0FBUCxNQUFBO0FBQXZELGFBQWdCLENBQWhCO0FBQ0EsaUJBQUEsY0FBQTtBQUNIO0FBWEssS0FGWTtBQWV0QkMsV0FBTztBQUNIQyxnQkFBUTtBQUNKTixrQkFBTSxDQUFBLE1BQUEsRUFERixNQUNFLENBREY7QUFFSk8sc0JBQVU7QUFGTixTQURMO0FBS0hDLHFCQUFhO0FBQ1RSLGtCQURTLE1BQUE7QUFFVE8sc0JBQVU7QUFGRCxTQUxWO0FBU0hFLHVCQUFlO0FBQ1hULGtCQURXLE1BQUE7QUFFWE8sc0JBQVU7QUFGQyxTQVRaO0FBYUhHLGVBQU87QUFDSFYsa0JBREcsT0FBQTtBQUVIUCxtQkFBTztBQUZKLFNBYko7QUFpQkhrQixnQkFBUTtBQUNKWCxrQkFESSxPQUFBO0FBRUpQLG1CQUFPO0FBRkgsU0FqQkw7QUFxQkhtQixnQkFBUTtBQUNKWixrQkFESSxNQUFBO0FBRUpQLG1CQUFPO0FBRkg7QUFyQkwsS0FmZTtBQXlDdEJvQixrQkFBYyxTQUFBLFlBQUEsR0FBWTtBQUN0QixhQUFBLFFBQUEsR0FBQSxFQUFBO0FBMUNrQixLQUFBO0FBNEN0QkMsYUFBUztBQUNMQyx3QkFBZ0IsU0FBQSxjQUFBLEdBQVk7QUFDeEIsZ0JBQUlDLFdBQVcsS0FBZixRQUFBO0FBQ0EsZ0JBQUksQ0FBQ0MsTUFBQUEsT0FBQUEsQ0FBRCxRQUFDQSxDQUFELElBQTRCLENBQUNELFNBQWpDLE1BQUEsRUFBa0Q7QUFDOUMsdUJBQU9FLFFBQVAsT0FBT0EsRUFBUDtBQUNIO0FBQ0QsbUJBQU8sUUFBQSxHQUFBLENBQVksU0FBQSxHQUFBLENBQWEsVUFBQSxLQUFBLEVBQWlCO0FBQUUsdUJBQU9DLE1BQVAsZ0JBQU9BLEVBQVA7QUFBbkQsYUFBbUIsQ0FBWixDQUFQO0FBTkMsU0FBQTtBQVFMQyxrQkFBVSxTQUFBLFFBQUEsQ0FBQSxLQUFBLEVBQWlCO0FBQ3ZCLGdCQUFJQyxRQUFRLEtBQUEsUUFBQSxDQUFBLE9BQUEsQ0FBWixLQUFZLENBQVo7QUFDQSxnQkFBSWYsU0FBU2EsTUFBQUEsSUFBQUEsQ0FBQUEsSUFBQUEsSUFBYixLQUFBO0FBQ0EsZ0JBQUliLFdBQVcsS0FBQSxJQUFBLENBQWYsTUFBQSxFQUFpQztBQUM3QixxQkFBQSxLQUFBLENBQUEsUUFBQSxFQUFBLE1BQUE7QUFDSDtBQUNKO0FBZEk7QUE1Q2EsQ0FBMUJaIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgY29tcG9uZW50XzEgPSByZXF1aXJlKFwiLi4vY29tbW9uL2NvbXBvbmVudFwiKTtcbnZhciBzYWZlX2FyZWFfMSA9IHJlcXVpcmUoXCIuLi9taXhpbnMvc2FmZS1hcmVhXCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgbWl4aW5zOiBbc2FmZV9hcmVhXzEuc2FmZUFyZWEoKV0sXG4gICAgcmVsYXRpb246IHtcbiAgICAgICAgbmFtZTogJ3RhYmJhci1pdGVtJyxcbiAgICAgICAgdHlwZTogJ2Rlc2NlbmRhbnQnLFxuICAgICAgICBsaW5rZWQ6IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCh0YXJnZXQpO1xuICAgICAgICAgICAgdGFyZ2V0LnBhcmVudCA9IHRoaXM7XG4gICAgICAgICAgICB0YXJnZXQudXBkYXRlRnJvbVBhcmVudCgpO1xuICAgICAgICB9LFxuICAgICAgICB1bmxpbmtlZDogZnVuY3Rpb24gKHRhcmdldCkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtICE9PSB0YXJnZXQ7IH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBwcm9wczoge1xuICAgICAgICBhY3RpdmU6IHtcbiAgICAgICAgICAgIHR5cGU6IFtOdW1iZXIsIFN0cmluZ10sXG4gICAgICAgICAgICBvYnNlcnZlcjogJ3VwZGF0ZUNoaWxkcmVuJ1xuICAgICAgICB9LFxuICAgICAgICBhY3RpdmVDb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICd1cGRhdGVDaGlsZHJlbidcbiAgICAgICAgfSxcbiAgICAgICAgaW5hY3RpdmVDb2xvcjoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICd1cGRhdGVDaGlsZHJlbidcbiAgICAgICAgfSxcbiAgICAgICAgZml4ZWQ6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBib3JkZXI6IHtcbiAgICAgICAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICAgICAgICB2YWx1ZTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB6SW5kZXg6IHtcbiAgICAgICAgICAgIHR5cGU6IE51bWJlcixcbiAgICAgICAgICAgIHZhbHVlOiAxXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNoaWxkcmVuKSB8fCAhY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGNoaWxkcmVuLm1hcChmdW5jdGlvbiAoY2hpbGQpIHsgcmV0dXJuIGNoaWxkLnVwZGF0ZUZyb21QYXJlbnQoKTsgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmNoaWxkcmVuLmluZGV4T2YoY2hpbGQpO1xuICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IGNoaWxkLmRhdGEubmFtZSB8fCBpbmRleDtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgIT09IHRoaXMuZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBhY3RpdmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=