143 lines
6.6 KiB
JavaScript
143 lines
6.6 KiB
JavaScript
"use strict";
|
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
}) : (function(o, m, k, k2) {
|
|
if (k2 === undefined) k2 = k;
|
|
o[k2] = m[k];
|
|
}));
|
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
};
|
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
});
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.loadEmittersPlugin = void 0;
|
|
const tsparticles_engine_1 = require("tsparticles-engine");
|
|
const CircleShape_1 = require("./Shapes/Circle/CircleShape");
|
|
const Emitter_1 = require("./Options/Classes/Emitter");
|
|
const Emitters_1 = require("./Emitters");
|
|
const ShapeManager_1 = require("./ShapeManager");
|
|
const SquareShape_1 = require("./Shapes/Square/SquareShape");
|
|
class EmittersPlugin {
|
|
constructor(engine) {
|
|
this._engine = engine;
|
|
this.id = "emitters";
|
|
}
|
|
getPlugin(container) {
|
|
return new Emitters_1.Emitters(this._engine, container);
|
|
}
|
|
loadOptions(options, source) {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
return;
|
|
}
|
|
if (source === null || source === void 0 ? void 0 : source.emitters) {
|
|
options.emitters = (0, tsparticles_engine_1.executeOnSingleOrMultiple)(source.emitters, (emitter) => {
|
|
const tmp = new Emitter_1.Emitter();
|
|
tmp.load(emitter);
|
|
return tmp;
|
|
});
|
|
}
|
|
const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;
|
|
if (interactivityEmitters) {
|
|
if (interactivityEmitters instanceof Array) {
|
|
options.interactivity.modes.emitters = {
|
|
random: {
|
|
count: 1,
|
|
enable: true,
|
|
},
|
|
value: interactivityEmitters.map((s) => {
|
|
const tmp = new Emitter_1.Emitter();
|
|
tmp.load(s);
|
|
return tmp;
|
|
}),
|
|
};
|
|
}
|
|
else {
|
|
const emitterMode = interactivityEmitters;
|
|
if (emitterMode.value !== undefined) {
|
|
if (emitterMode.value instanceof Array) {
|
|
options.interactivity.modes.emitters = {
|
|
random: {
|
|
count: (_c = emitterMode.random.count) !== null && _c !== void 0 ? _c : 1,
|
|
enable: (_d = emitterMode.random.enable) !== null && _d !== void 0 ? _d : false,
|
|
},
|
|
value: emitterMode.value.map((s) => {
|
|
const tmp = new Emitter_1.Emitter();
|
|
tmp.load(s);
|
|
return tmp;
|
|
}),
|
|
};
|
|
}
|
|
else {
|
|
const tmp = new Emitter_1.Emitter();
|
|
tmp.load(emitterMode.value);
|
|
options.interactivity.modes.emitters = {
|
|
random: {
|
|
count: (_e = emitterMode.random.count) !== null && _e !== void 0 ? _e : 1,
|
|
enable: (_f = emitterMode.random.enable) !== null && _f !== void 0 ? _f : false,
|
|
},
|
|
value: tmp,
|
|
};
|
|
}
|
|
}
|
|
else {
|
|
const emitterOptions = (options.interactivity.modes.emitters = {
|
|
random: {
|
|
count: 1,
|
|
enable: false,
|
|
},
|
|
value: new Emitter_1.Emitter(),
|
|
});
|
|
emitterOptions.value.load(interactivityEmitters);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
needsPlugin(options) {
|
|
var _a, _b, _c;
|
|
if (!options) {
|
|
return false;
|
|
}
|
|
const emitters = options.emitters;
|
|
return ((emitters instanceof Array && !!emitters.length) ||
|
|
emitters !== undefined ||
|
|
(!!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&
|
|
(0, tsparticles_engine_1.isInArray)("emitter", options.interactivity.events.onClick.mode)));
|
|
}
|
|
}
|
|
function loadEmittersPlugin(engine) {
|
|
return __awaiter(this, void 0, void 0, function* () {
|
|
if (!engine.emitterShapeManager) {
|
|
engine.emitterShapeManager = new ShapeManager_1.ShapeManager(engine);
|
|
}
|
|
if (!engine.addEmitterShape) {
|
|
engine.addEmitterShape = (name, shape) => {
|
|
var _a;
|
|
(_a = engine.emitterShapeManager) === null || _a === void 0 ? void 0 : _a.addShape(name, shape);
|
|
};
|
|
}
|
|
const plugin = new EmittersPlugin(engine);
|
|
yield engine.addPlugin(plugin);
|
|
engine.addEmitterShape("circle", new CircleShape_1.CircleShape());
|
|
engine.addEmitterShape("square", new SquareShape_1.SquareShape());
|
|
});
|
|
}
|
|
exports.loadEmittersPlugin = loadEmittersPlugin;
|
|
__exportStar(require("./EmitterContainer"), exports);
|
|
__exportStar(require("./EmittersEngine"), exports);
|
|
__exportStar(require("./Enums/EmitterClickMode"), exports);
|
|
__exportStar(require("./Enums/EmitterShapeType"), exports);
|