'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

const index = require('./index-e1b469cd.js');
const index$1 = require('./index-067a58c1.js');

const coverViewCss = "taro-cover-view-core{display:block}";

const CoverView = class {
  constructor(hostRef) {
    index.registerInstance(this, hostRef);
    this.onLongPress = index.createEvent(this, "longpress", 7);
    this.startTime = 0;
    this.animation = undefined;
    this.hoverClass = undefined;
    this.hoverStartTime = 50;
    this.hoverStayTime = 400;
    this.hover = false;
    this.touch = false;
  }
  onTouchStart() {
    if (this.hoverClass) {
      this.touch = true;
      setTimeout(() => {
        if (this.touch) {
          this.hover = true;
        }
      }, this.hoverStartTime);
    }
    this.timeoutEvent = setTimeout(() => {
      this.onLongPress.emit();
    }, 350);
    this.startTime = Date.now();
  }
  onTouchMove() {
    clearTimeout(this.timeoutEvent);
  }
  onTouchEnd() {
    const spanTime = Date.now() - this.startTime;
    if (spanTime < 350) {
      clearTimeout(this.timeoutEvent);
    }
    if (this.hoverClass) {
      this.touch = false;
      setTimeout(() => {
        if (!this.touch) {
          this.hover = false;
        }
      }, this.hoverStayTime);
    }
  }
  render() {
    const cls = index$1.classnames({
      [`${this.hoverClass}`]: this.hover
    });
    let attr = {};
    if (!!this.animation) {
      attr['animation'] = this.animation;
      attr['data-animation'] = this.animation;
    }
    return (index.h(index.Host, Object.assign({ class: cls }, attr), index.h("slot", null)));
  }
};
CoverView.style = coverViewCss;

exports.taro_cover_view_core = CoverView;

//# sourceMappingURL=taro-cover-view-core.cjs.entry.js.map