UNPKG

2.48 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.TrailMaker = void 0;
4const Utils_1 = require("../../../Utils");
5const Enums_1 = require("../../../Enums");
6const ExternalInteractorBase_1 = require("../../../Core/ExternalInteractorBase");
7class TrailMaker extends ExternalInteractorBase_1.ExternalInteractorBase {
8 constructor(container) {
9 super(container);
10 this.delay = 0;
11 }
12 interact(delta) {
13 var _a, _b, _c, _d;
14 if (!this.container.retina.reduceFactor) {
15 return;
16 }
17 const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail, optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;
18 if (this.delay < optDelay) {
19 this.delay += delta.value;
20 }
21 if (this.delay < optDelay) {
22 return;
23 }
24 let canEmit = true;
25 if (trailOptions.pauseOnStop) {
26 if (container.interactivity.mouse.position === this.lastPosition ||
27 (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this.lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&
28 ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this.lastPosition) === null || _d === void 0 ? void 0 : _d.y))) {
29 canEmit = false;
30 }
31 }
32 if (container.interactivity.mouse.position) {
33 this.lastPosition = {
34 x: container.interactivity.mouse.position.x,
35 y: container.interactivity.mouse.position.y,
36 };
37 }
38 else {
39 delete this.lastPosition;
40 }
41 if (canEmit) {
42 container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);
43 }
44 this.delay -= optDelay;
45 }
46 isEnabled() {
47 const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = options.interactivity.events;
48 return ((mouse.clicking && mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.ClickMode.trail, events.onClick.mode)) ||
49 (mouse.inside && !!mouse.position && (0, Utils_1.isInArray)(Enums_1.HoverMode.trail, events.onHover.mode)));
50 }
51 reset() {
52 }
53}
54exports.TrailMaker = TrailMaker;