| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | 'use strict';Object.defineProperty(exports, '__esModule', { value: true });var component_1 = require('../common/component');var utils_1 = require('../common/utils');component_1.VantComponent({  props: {    text: {      type: String,      value: '',      observer: 'init',    },    mode: {      type: String,      value: '',    },    url: {      type: String,      value: '',    },    openType: {      type: String,      value: 'navigate',    },    delay: {      type: Number,      value: 1,    },    speed: {      type: Number,      value: 60,      observer: 'init',    },    scrollable: null,    leftIcon: {      type: String,      value: '',    },    color: String,    backgroundColor: String,    background: String,    wrapable: Boolean,  },  data: {    show: true,  },  created: function () {    this.resetAnimation = wx.createAnimation({      duration: 0,      timingFunction: 'linear',    });  },  destroyed: function () {    this.timer && clearTimeout(this.timer);  },  mounted: function () {    this.init();  },  methods: {    init: function () {      var _this = this;      utils_1.requestAnimationFrame(function () {        Promise.all([          utils_1.getRect(_this, '.van-notice-bar__content'),          utils_1.getRect(_this, '.van-notice-bar__wrap'),        ]).then(function (rects) {          var contentRect = rects[0],            wrapRect = rects[1];          var _a = _this.data,            speed = _a.speed,            scrollable = _a.scrollable,            delay = _a.delay;          if (            contentRect == null ||            wrapRect == null ||            !contentRect.width ||            !wrapRect.width ||            scrollable === false          ) {            return;          }          if (scrollable || wrapRect.width < contentRect.width) {            var duration =              ((wrapRect.width + contentRect.width) / speed) * 1000;            _this.wrapWidth = wrapRect.width;            _this.contentWidth = contentRect.width;            _this.duration = duration;            _this.animation = wx.createAnimation({              duration: duration,              timingFunction: 'linear',              delay: delay,            });            _this.scroll();          }        });      });    },    scroll: function () {      var _this = this;      this.timer && clearTimeout(this.timer);      this.timer = null;      this.setData({        animationData: this.resetAnimation          .translateX(this.wrapWidth)          .step()          .export(),      });      utils_1.requestAnimationFrame(function () {        _this.setData({          animationData: _this.animation            .translateX(-_this.contentWidth)            .step()            .export(),        });      });      this.timer = setTimeout(function () {        _this.scroll();      }, this.duration);    },    onClickIcon: function (event) {      if (this.data.mode === 'closeable') {        this.timer && clearTimeout(this.timer);        this.timer = null;        this.setData({ show: false });        this.$emit('close', event.detail);      }    },    onClick: function (event) {      this.$emit('click', event);    },  },});
 |