1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.TrailMaker = void 0;
|
4 | const Utils_1 = require("../../../Utils");
|
5 | const Enums_1 = require("../../../Enums");
|
6 | const ExternalInteractorBase_1 = require("../../../Core/ExternalInteractorBase");
|
7 | class 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 | }
|
54 | exports.TrailMaker = TrailMaker;
|