@tarojs/components
Version:
74 lines (68 loc) • 1.87 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
const index = require('./index-a7069008.js');
const index$1 = require('./index-b873e40f.js');
const helper = require('./helper-ad6306f6.js');
require('@tarojs/taro');
const indexCss = "taro-view-core{display:block}";
const View = 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);
}
}
componentDidRender() {
helper.handleStencilNodes(this.el);
}
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)));
}
get el() { return index.getElement(this); }
};
View.style = indexCss;
exports.taro_view_core = View;