three-nebula 10.0.3 → 11.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/.claude/rules/no-coauthor.md +4 -0
  2. package/CHANGELOG.md +33 -0
  3. package/dist/three-nebula.cjs +109 -0
  4. package/dist/three-nebula.cjs.map +1 -0
  5. package/dist/three-nebula.mjs +2968 -0
  6. package/dist/three-nebula.mjs.map +1 -0
  7. package/dist/three-nebula.umd.js +109 -0
  8. package/dist/three-nebula.umd.js.map +1 -0
  9. package/package.json +32 -56
  10. package/specs/01-emitter-hierarchy.md +200 -0
  11. package/specs/02-determinism-scrubbing.md +188 -0
  12. package/specs/03-sound-renderer.md +183 -0
  13. package/specs/04-schema-versioning.md +140 -0
  14. package/specs/05-content-addressed-assets.md +288 -0
  15. package/specs/README.md +80 -0
  16. package/build/cjs/behaviour/Alpha.js +0 -189
  17. package/build/cjs/behaviour/Attraction.js +0 -189
  18. package/build/cjs/behaviour/Behaviour.js +0 -253
  19. package/build/cjs/behaviour/Collision.js +0 -146
  20. package/build/cjs/behaviour/Color.js +0 -148
  21. package/build/cjs/behaviour/CrossZone.js +0 -141
  22. package/build/cjs/behaviour/Force.js +0 -126
  23. package/build/cjs/behaviour/Gravity.js +0 -78
  24. package/build/cjs/behaviour/RandomDrift.js +0 -153
  25. package/build/cjs/behaviour/Repulsion.js +0 -123
  26. package/build/cjs/behaviour/Rotate.js +0 -265
  27. package/build/cjs/behaviour/Scale.js +0 -177
  28. package/build/cjs/behaviour/Spring.js +0 -133
  29. package/build/cjs/behaviour/constants.js +0 -28
  30. package/build/cjs/behaviour/index.js +0 -112
  31. package/build/cjs/behaviour/types.js +0 -33
  32. package/build/cjs/constants/index.js +0 -61
  33. package/build/cjs/core/Particle.js +0 -390
  34. package/build/cjs/core/Pool.js +0 -203
  35. package/build/cjs/core/System.js +0 -366
  36. package/build/cjs/core/constants.js +0 -163
  37. package/build/cjs/core/fromJSON.js +0 -128
  38. package/build/cjs/core/fromJSONAsync.js +0 -239
  39. package/build/cjs/core/index.js +0 -32
  40. package/build/cjs/core/three/Euler.js +0 -233
  41. package/build/cjs/core/three/Math.js +0 -91
  42. package/build/cjs/core/three/Matrix4.js +0 -745
  43. package/build/cjs/core/three/Quaternion.js +0 -451
  44. package/build/cjs/core/three/Vector3.js +0 -464
  45. package/build/cjs/core/three/constants.js +0 -298
  46. package/build/cjs/core/three/index.js +0 -48
  47. package/build/cjs/core/types.js +0 -13
  48. package/build/cjs/debug/Debug.js +0 -209
  49. package/build/cjs/debug/constants.js +0 -19
  50. package/build/cjs/debug/index.js +0 -24
  51. package/build/cjs/debug/log.js +0 -38
  52. package/build/cjs/ease/index.js +0 -149
  53. package/build/cjs/emitter/Emitter.js +0 -791
  54. package/build/cjs/emitter/FollowEmitter.js +0 -146
  55. package/build/cjs/emitter/constants.js +0 -20
  56. package/build/cjs/emitter/index.js +0 -24
  57. package/build/cjs/emitter/types.js +0 -11
  58. package/build/cjs/events/EventDispatcher.js +0 -105
  59. package/build/cjs/events/constants.js +0 -23
  60. package/build/cjs/events/index.js +0 -27
  61. package/build/cjs/index.js +0 -151
  62. package/build/cjs/initializer/Body.js +0 -122
  63. package/build/cjs/initializer/BodySprite.js +0 -146
  64. package/build/cjs/initializer/Initializer.js +0 -109
  65. package/build/cjs/initializer/InitializerUtil.js +0 -54
  66. package/build/cjs/initializer/Life.js +0 -106
  67. package/build/cjs/initializer/Mass.js +0 -101
  68. package/build/cjs/initializer/Position.js +0 -152
  69. package/build/cjs/initializer/Radius.js +0 -118
  70. package/build/cjs/initializer/Rate.js +0 -150
  71. package/build/cjs/initializer/Texture.js +0 -139
  72. package/build/cjs/initializer/Velocity/PolarVelocity.js +0 -102
  73. package/build/cjs/initializer/Velocity/RadialVelocity.js +0 -111
  74. package/build/cjs/initializer/Velocity/VectorVelocity.js +0 -108
  75. package/build/cjs/initializer/Velocity/Velocity.js +0 -94
  76. package/build/cjs/initializer/Velocity/index.js +0 -32
  77. package/build/cjs/initializer/constants.js +0 -43
  78. package/build/cjs/initializer/index.js +0 -100
  79. package/build/cjs/initializer/types.js +0 -35
  80. package/build/cjs/math/ArraySpan.js +0 -103
  81. package/build/cjs/math/Box.js +0 -46
  82. package/build/cjs/math/ColorSpan.js +0 -113
  83. package/build/cjs/math/MathUtils.js +0 -57
  84. package/build/cjs/math/Polar3D.js +0 -115
  85. package/build/cjs/math/Span.js +0 -88
  86. package/build/cjs/math/Vector3D.js +0 -76
  87. package/build/cjs/math/constants.js +0 -35
  88. package/build/cjs/math/index.js +0 -122
  89. package/build/cjs/math/integration.js +0 -59
  90. package/build/cjs/math/types.js +0 -19
  91. package/build/cjs/renderer/BaseRenderer.js +0 -108
  92. package/build/cjs/renderer/CustomRenderer.js +0 -65
  93. package/build/cjs/renderer/GPURenderer/Desktop/index.js +0 -350
  94. package/build/cjs/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -13
  95. package/build/cjs/renderer/GPURenderer/Desktop/shaders/index.js +0 -22
  96. package/build/cjs/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -17
  97. package/build/cjs/renderer/GPURenderer/Mobile/index.js +0 -364
  98. package/build/cjs/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -13
  99. package/build/cjs/renderer/GPURenderer/Mobile/shaders/index.js +0 -22
  100. package/build/cjs/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -15
  101. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -53
  102. package/build/cjs/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -93
  103. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -9
  104. package/build/cjs/renderer/GPURenderer/common/TextureAtlas/index.js +0 -221
  105. package/build/cjs/renderer/GPURenderer/common/constants.js +0 -22
  106. package/build/cjs/renderer/GPURenderer/common/index.js +0 -38
  107. package/build/cjs/renderer/GPURenderer/common/shaders/constants.js +0 -9
  108. package/build/cjs/renderer/GPURenderer/common/stores/Target.js +0 -43
  109. package/build/cjs/renderer/GPURenderer/common/stores/UniqueList.js +0 -51
  110. package/build/cjs/renderer/GPURenderer/common/stores/index.js +0 -22
  111. package/build/cjs/renderer/GPURenderer/index.js +0 -97
  112. package/build/cjs/renderer/MeshRenderer.js +0 -136
  113. package/build/cjs/renderer/SpriteRenderer.js +0 -63
  114. package/build/cjs/renderer/index.js +0 -40
  115. package/build/cjs/renderer/types.js +0 -21
  116. package/build/cjs/utils/ColorUtil.js +0 -39
  117. package/build/cjs/utils/PUID.js +0 -26
  118. package/build/cjs/utils/THREEUtil.js +0 -40
  119. package/build/cjs/utils/Util.js +0 -69
  120. package/build/cjs/utils/index.js +0 -61
  121. package/build/cjs/utils/uid.js +0 -14
  122. package/build/cjs/zone/BoxZone.js +0 -178
  123. package/build/cjs/zone/LineZone.js +0 -101
  124. package/build/cjs/zone/MeshZone.js +0 -101
  125. package/build/cjs/zone/PointZone.js +0 -99
  126. package/build/cjs/zone/ScreenZone.js +0 -164
  127. package/build/cjs/zone/SphereZone.js +0 -155
  128. package/build/cjs/zone/Zone.js +0 -172
  129. package/build/cjs/zone/index.js +0 -56
  130. package/build/cjs/zone/types.js +0 -21
  131. package/build/esm/behaviour/Alpha.js +0 -134
  132. package/build/esm/behaviour/Attraction.js +0 -135
  133. package/build/esm/behaviour/Behaviour.js +0 -215
  134. package/build/esm/behaviour/Collision.js +0 -100
  135. package/build/esm/behaviour/Color.js +0 -101
  136. package/build/esm/behaviour/CrossZone.js +0 -82
  137. package/build/esm/behaviour/Force.js +0 -83
  138. package/build/esm/behaviour/Gravity.js +0 -40
  139. package/build/esm/behaviour/RandomDrift.js +0 -97
  140. package/build/esm/behaviour/Repulsion.js +0 -81
  141. package/build/esm/behaviour/Rotate.js +0 -214
  142. package/build/esm/behaviour/Scale.js +0 -131
  143. package/build/esm/behaviour/Spring.js +0 -90
  144. package/build/esm/behaviour/constants.js +0 -11
  145. package/build/esm/behaviour/index.js +0 -14
  146. package/build/esm/behaviour/types.js +0 -14
  147. package/build/esm/constants/index.js +0 -42
  148. package/build/esm/core/Particle.js +0 -357
  149. package/build/esm/core/Pool.js +0 -161
  150. package/build/esm/core/System.js +0 -320
  151. package/build/esm/core/constants.js +0 -127
  152. package/build/esm/core/fromJSON.js +0 -107
  153. package/build/esm/core/fromJSONAsync.js +0 -210
  154. package/build/esm/core/index.js +0 -4
  155. package/build/esm/core/three/Euler.js +0 -224
  156. package/build/esm/core/three/Math.js +0 -84
  157. package/build/esm/core/three/Matrix4.js +0 -739
  158. package/build/esm/core/three/Quaternion.js +0 -445
  159. package/build/esm/core/three/Vector3.js +0 -457
  160. package/build/esm/core/three/constants.js +0 -148
  161. package/build/esm/core/three/index.js +0 -5
  162. package/build/esm/core/types.js +0 -4
  163. package/build/esm/debug/Debug.js +0 -195
  164. package/build/esm/debug/constants.js +0 -7
  165. package/build/esm/debug/index.js +0 -3
  166. package/build/esm/debug/log.js +0 -31
  167. package/build/esm/ease/index.js +0 -113
  168. package/build/esm/emitter/Emitter.js +0 -701
  169. package/build/esm/emitter/FollowEmitter.js +0 -97
  170. package/build/esm/emitter/constants.js +0 -7
  171. package/build/esm/emitter/index.js +0 -3
  172. package/build/esm/emitter/types.js +0 -3
  173. package/build/esm/events/EventDispatcher.js +0 -82
  174. package/build/esm/events/constants.js +0 -9
  175. package/build/esm/events/index.js +0 -4
  176. package/build/esm/index.js +0 -13
  177. package/build/esm/initializer/Body.js +0 -83
  178. package/build/esm/initializer/BodySprite.js +0 -108
  179. package/build/esm/initializer/Initializer.js +0 -84
  180. package/build/esm/initializer/InitializerUtil.js +0 -48
  181. package/build/esm/initializer/Life.js +0 -66
  182. package/build/esm/initializer/Mass.js +0 -60
  183. package/build/esm/initializer/Position.js +0 -98
  184. package/build/esm/initializer/Radius.js +0 -75
  185. package/build/esm/initializer/Rate.js +0 -107
  186. package/build/esm/initializer/Texture.js +0 -101
  187. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  188. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  189. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  190. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  191. package/build/esm/initializer/Velocity/index.js +0 -4
  192. package/build/esm/initializer/constants.js +0 -26
  193. package/build/esm/initializer/index.js +0 -11
  194. package/build/esm/initializer/types.js +0 -15
  195. package/build/esm/math/ArraySpan.js +0 -62
  196. package/build/esm/math/Box.js +0 -25
  197. package/build/esm/math/ColorSpan.js +0 -71
  198. package/build/esm/math/MathUtils.js +0 -48
  199. package/build/esm/math/Polar3D.js +0 -81
  200. package/build/esm/math/Span.js +0 -63
  201. package/build/esm/math/Vector3D.js +0 -34
  202. package/build/esm/math/constants.js +0 -24
  203. package/build/esm/math/index.js +0 -10
  204. package/build/esm/math/integration.js +0 -47
  205. package/build/esm/math/types.js +0 -7
  206. package/build/esm/renderer/BaseRenderer.js +0 -78
  207. package/build/esm/renderer/CustomRenderer.js +0 -23
  208. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -331
  209. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -23
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -33
  212. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -349
  213. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -20
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -30
  216. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -27
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  218. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  220. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  221. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  222. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  223. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -24
  224. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  225. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  226. package/build/esm/renderer/GPURenderer/index.js +0 -57
  227. package/build/esm/renderer/MeshRenderer.js +0 -94
  228. package/build/esm/renderer/SpriteRenderer.js +0 -26
  229. package/build/esm/renderer/index.js +0 -5
  230. package/build/esm/renderer/types.js +0 -8
  231. package/build/esm/utils/ColorUtil.js +0 -32
  232. package/build/esm/utils/PUID.js +0 -19
  233. package/build/esm/utils/THREEUtil.js +0 -31
  234. package/build/esm/utils/Util.js +0 -60
  235. package/build/esm/utils/index.js +0 -13
  236. package/build/esm/utils/uid.js +0 -3
  237. package/build/esm/zone/BoxZone.js +0 -133
  238. package/build/esm/zone/LineZone.js +0 -61
  239. package/build/esm/zone/MeshZone.js +0 -60
  240. package/build/esm/zone/PointZone.js +0 -59
  241. package/build/esm/zone/ScreenZone.js +0 -116
  242. package/build/esm/zone/SphereZone.js +0 -113
  243. package/build/esm/zone/Zone.js +0 -141
  244. package/build/esm/zone/index.js +0 -7
  245. package/build/esm/zone/types.js +0 -8
  246. package/build/three-nebula.js +0 -2
  247. package/build/three-nebula.js.map +0 -1
@@ -1,146 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
23
-
24
- var _math = require("../math");
25
-
26
- var _types = require("./types");
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- /**
33
- * Behaviour that causes particles to move away from other particles they collide with.
34
- */
35
- var Collision = /*#__PURE__*/function (_Behaviour) {
36
- (0, _inherits2["default"])(Collision, _Behaviour);
37
-
38
- var _super = _createSuper(Collision);
39
-
40
- /**
41
- * Constructs a Collision behaviour instance.
42
- *
43
- * @param {Emitter} emitter - The emitter containing the particles to detect collisions against
44
- * @param {boolean} useMass - Determiens whether to use mass or not
45
- * @param {function} onCollide - Function to call when particles collide
46
- * @param {number} life - The life of the particle
47
- * @param {function} easing - The behaviour's decaying trend
48
- * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
49
- * @return void
50
- */
51
- function Collision(emitter, useMass, onCollide, life, easing) {
52
- var _this;
53
-
54
- var isEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
55
- (0, _classCallCheck2["default"])(this, Collision);
56
- _this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_COLLISION, isEnabled);
57
-
58
- _this.reset(emitter, useMass, onCollide);
59
-
60
- return _this;
61
- }
62
- /**
63
- * Resets the behaviour properties.
64
- *
65
- * @param {Emitter} emitter - The emitter containing the particles to detect collisions against
66
- * @param {boolean} useMass - Determiens whether to use mass or not
67
- * @param {function} onCollide - Function to call when particles collide
68
- * @param {number} life - The life of the particle
69
- * @param {function} easing - The behaviour's decaying trend
70
- * @return void
71
- */
72
-
73
-
74
- (0, _createClass2["default"])(Collision, [{
75
- key: "reset",
76
- value: function reset(emitter, useMass, onCollide, life, easing) {
77
- this.emitter = emitter;
78
- this.useMass = useMass;
79
- this.onCollide = onCollide;
80
- this.particles = [];
81
- this.delta = new _math.Vector3D();
82
- life && (0, _get2["default"])((0, _getPrototypeOf2["default"])(Collision.prototype), "reset", this).call(this, life, easing);
83
- }
84
- /**
85
- * Detects collisions with other particles and calls the
86
- * onCollide function on colliding particles.
87
- *
88
- * @param {Particle} particle - the particle to apply the behaviour to
89
- * @param {number} time - particle engine time
90
- * @param {integer} index - the particle index
91
- * @return void
92
- */
93
-
94
- }, {
95
- key: "mutate",
96
- value: function mutate(particle, time, index) {
97
- var particles = this.emitter ? this.emitter.particles.slice(index) : this.particles.slice(index);
98
- var otherParticle, lengthSq, overlap, distance, averageMass1, averageMass2;
99
- var i = particles.length;
100
-
101
- while (i--) {
102
- otherParticle = particles[i];
103
-
104
- if (otherParticle == particle) {
105
- continue;
106
- }
107
-
108
- this.delta.copy(otherParticle.position).sub(particle.position);
109
- lengthSq = this.delta.lengthSq();
110
- distance = particle.radius + otherParticle.radius;
111
-
112
- if (lengthSq <= distance * distance) {
113
- overlap = distance - Math.sqrt(lengthSq);
114
- overlap += 0.5;
115
- averageMass1 = this._getAverageMass(particle, otherParticle);
116
- averageMass2 = this._getAverageMass(otherParticle, particle);
117
- particle.position.add(this.delta.clone().normalize().scalar(overlap * -averageMass1));
118
- otherParticle.position.add(this.delta.normalize().scalar(overlap * averageMass2));
119
- this.onCollide && this.onCollide(particle, otherParticle);
120
- }
121
- }
122
- }
123
- /**
124
- * Gets the average mass of both particles.
125
- *
126
- * @param {Particle} particleA - The first particle
127
- * @param {Particle} particleB - The second particle
128
- * @return {number}
129
- */
130
-
131
- }, {
132
- key: "_getAverageMass",
133
- value: function _getAverageMass(particleA, particleB) {
134
- return this.useMass ? particleB.mass / (particleA.mass + particleB.mass) : 0.5;
135
- } // TODO
136
-
137
- }, {
138
- key: "fromJSON",
139
- value: function fromJSON(json) {} // eslint-disable-line
140
-
141
- }]);
142
- return Collision;
143
- }(_Behaviour2["default"]);
144
-
145
- exports["default"] = Collision;
146
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sbGlzaW9uLmpzIl0sIm5hbWVzIjpbIkNvbGxpc2lvbiIsImVtaXR0ZXIiLCJ1c2VNYXNzIiwib25Db2xsaWRlIiwibGlmZSIsImVhc2luZyIsImlzRW5hYmxlZCIsInR5cGUiLCJyZXNldCIsInBhcnRpY2xlcyIsImRlbHRhIiwiVmVjdG9yM0QiLCJwYXJ0aWNsZSIsInRpbWUiLCJpbmRleCIsInNsaWNlIiwib3RoZXJQYXJ0aWNsZSIsImxlbmd0aFNxIiwib3ZlcmxhcCIsImRpc3RhbmNlIiwiYXZlcmFnZU1hc3MxIiwiYXZlcmFnZU1hc3MyIiwiaSIsImxlbmd0aCIsImNvcHkiLCJwb3NpdGlvbiIsInN1YiIsInJhZGl1cyIsIk1hdGgiLCJzcXJ0IiwiX2dldEF2ZXJhZ2VNYXNzIiwiYWRkIiwiY2xvbmUiLCJub3JtYWxpemUiLCJzY2FsYXIiLCJwYXJ0aWNsZUEiLCJwYXJ0aWNsZUIiLCJtYXNzIiwianNvbiIsIkJlaGF2aW91ciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBO0FBQ0E7QUFDQTtJQUNxQkEsUzs7Ozs7QUFDbkI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLHFCQUFZQyxPQUFaLEVBQXFCQyxPQUFyQixFQUE4QkMsU0FBOUIsRUFBeUNDLElBQXpDLEVBQStDQyxNQUEvQyxFQUF5RTtBQUFBOztBQUFBLFFBQWxCQyxTQUFrQix1RUFBTixJQUFNO0FBQUE7QUFDdkUsOEJBQU1GLElBQU4sRUFBWUMsTUFBWixFQUFvQkUsK0JBQXBCLEVBQTBCRCxTQUExQjs7QUFFQSxVQUFLRSxLQUFMLENBQVdQLE9BQVgsRUFBb0JDLE9BQXBCLEVBQTZCQyxTQUE3Qjs7QUFIdUU7QUFJeEU7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7MEJBQ1FGLE8sRUFBU0MsTyxFQUFTQyxTLEVBQVdDLEksRUFBTUMsTSxFQUFRO0FBQy9DLFdBQUtKLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFdBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFdBQUtDLFNBQUwsR0FBaUJBLFNBQWpCO0FBQ0EsV0FBS00sU0FBTCxHQUFpQixFQUFqQjtBQUNBLFdBQUtDLEtBQUwsR0FBYSxJQUFJQyxjQUFKLEVBQWI7QUFFQVAsTUFBQUEsSUFBSSwyR0FBZ0JBLElBQWhCLEVBQXNCQyxNQUF0QixDQUFKO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7MkJBQ1NPLFEsRUFBVUMsSSxFQUFNQyxLLEVBQU87QUFDNUIsVUFBTUwsU0FBUyxHQUFHLEtBQUtSLE9BQUwsR0FDZCxLQUFLQSxPQUFMLENBQWFRLFNBQWIsQ0FBdUJNLEtBQXZCLENBQTZCRCxLQUE3QixDQURjLEdBRWQsS0FBS0wsU0FBTCxDQUFlTSxLQUFmLENBQXFCRCxLQUFyQixDQUZKO0FBSUEsVUFBSUUsYUFBSixFQUFtQkMsUUFBbkIsRUFBNkJDLE9BQTdCLEVBQXNDQyxRQUF0QyxFQUFnREMsWUFBaEQsRUFBOERDLFlBQTlEO0FBRUEsVUFBSUMsQ0FBQyxHQUFHYixTQUFTLENBQUNjLE1BQWxCOztBQUVBLGFBQU9ELENBQUMsRUFBUixFQUFZO0FBQ1ZOLFFBQUFBLGFBQWEsR0FBR1AsU0FBUyxDQUFDYSxDQUFELENBQXpCOztBQUVBLFlBQUlOLGFBQWEsSUFBSUosUUFBckIsRUFBK0I7QUFDN0I7QUFDRDs7QUFFRCxhQUFLRixLQUFMLENBQVdjLElBQVgsQ0FBZ0JSLGFBQWEsQ0FBQ1MsUUFBOUIsRUFBd0NDLEdBQXhDLENBQTRDZCxRQUFRLENBQUNhLFFBQXJEO0FBRUFSLFFBQUFBLFFBQVEsR0FBRyxLQUFLUCxLQUFMLENBQVdPLFFBQVgsRUFBWDtBQUNBRSxRQUFBQSxRQUFRLEdBQUdQLFFBQVEsQ0FBQ2UsTUFBVCxHQUFrQlgsYUFBYSxDQUFDVyxNQUEzQzs7QUFFQSxZQUFJVixRQUFRLElBQUlFLFFBQVEsR0FBR0EsUUFBM0IsRUFBcUM7QUFDbkNELFVBQUFBLE9BQU8sR0FBR0MsUUFBUSxHQUFHUyxJQUFJLENBQUNDLElBQUwsQ0FBVVosUUFBVixDQUFyQjtBQUNBQyxVQUFBQSxPQUFPLElBQUksR0FBWDtBQUVBRSxVQUFBQSxZQUFZLEdBQUcsS0FBS1UsZUFBTCxDQUFxQmxCLFFBQXJCLEVBQStCSSxhQUEvQixDQUFmO0FBQ0FLLFVBQUFBLFlBQVksR0FBRyxLQUFLUyxlQUFMLENBQXFCZCxhQUFyQixFQUFvQ0osUUFBcEMsQ0FBZjtBQUVBQSxVQUFBQSxRQUFRLENBQUNhLFFBQVQsQ0FBa0JNLEdBQWxCLENBQ0UsS0FBS3JCLEtBQUwsQ0FDR3NCLEtBREgsR0FFR0MsU0FGSCxHQUdHQyxNQUhILENBR1VoQixPQUFPLEdBQUcsQ0FBQ0UsWUFIckIsQ0FERjtBQU9BSixVQUFBQSxhQUFhLENBQUNTLFFBQWQsQ0FBdUJNLEdBQXZCLENBQ0UsS0FBS3JCLEtBQUwsQ0FBV3VCLFNBQVgsR0FBdUJDLE1BQXZCLENBQThCaEIsT0FBTyxHQUFHRyxZQUF4QyxDQURGO0FBSUEsZUFBS2xCLFNBQUwsSUFBa0IsS0FBS0EsU0FBTCxDQUFlUyxRQUFmLEVBQXlCSSxhQUF6QixDQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O29DQUNrQm1CLFMsRUFBV0MsUyxFQUFXO0FBQ3BDLGFBQU8sS0FBS2xDLE9BQUwsR0FDSGtDLFNBQVMsQ0FBQ0MsSUFBVixJQUFrQkYsU0FBUyxDQUFDRSxJQUFWLEdBQWlCRCxTQUFTLENBQUNDLElBQTdDLENBREcsR0FFSCxHQUZKO0FBR0QsSyxDQUVEOzs7OzZCQUNTQyxJLEVBQU0sQ0FBRSxDLENBQUM7Ozs7RUF6R21CQyxzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IEJFSEFWSU9VUl9UWVBFX0NPTExJU0lPTiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQmVoYXZpb3VyIHRoYXQgY2F1c2VzIHBhcnRpY2xlcyB0byBtb3ZlIGF3YXkgZnJvbSBvdGhlciBwYXJ0aWNsZXMgdGhleSBjb2xsaWRlIHdpdGguXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbGxpc2lvbiBleHRlbmRzIEJlaGF2aW91ciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQ29sbGlzaW9uIGJlaGF2aW91ciBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHtFbWl0dGVyfSBlbWl0dGVyIC0gVGhlIGVtaXR0ZXIgY29udGFpbmluZyB0aGUgcGFydGljbGVzIHRvIGRldGVjdCBjb2xsaXNpb25zIGFnYWluc3RcbiAgICogQHBhcmFtIHtib29sZWFufSB1c2VNYXNzIC0gRGV0ZXJtaWVucyB3aGV0aGVyIHRvIHVzZSBtYXNzIG9yIG5vdFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNvbGxpZGUgLSBGdW5jdGlvbiB0byBjYWxsIHdoZW4gcGFydGljbGVzIGNvbGxpZGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoZW1pdHRlciwgdXNlTWFzcywgb25Db2xsaWRlLCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICBzdXBlcihsaWZlLCBlYXNpbmcsIHR5cGUsIGlzRW5hYmxlZCk7XG5cbiAgICB0aGlzLnJlc2V0KGVtaXR0ZXIsIHVzZU1hc3MsIG9uQ29sbGlkZSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtFbWl0dGVyfSBlbWl0dGVyIC0gVGhlIGVtaXR0ZXIgY29udGFpbmluZyB0aGUgcGFydGljbGVzIHRvIGRldGVjdCBjb2xsaXNpb25zIGFnYWluc3RcbiAgICogQHBhcmFtIHtib29sZWFufSB1c2VNYXNzIC0gRGV0ZXJtaWVucyB3aGV0aGVyIHRvIHVzZSBtYXNzIG9yIG5vdFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBvbkNvbGxpZGUgLSBGdW5jdGlvbiB0byBjYWxsIHdoZW4gcGFydGljbGVzIGNvbGxpZGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgcmVzZXQoZW1pdHRlciwgdXNlTWFzcywgb25Db2xsaWRlLCBsaWZlLCBlYXNpbmcpIHtcbiAgICB0aGlzLmVtaXR0ZXIgPSBlbWl0dGVyO1xuICAgIHRoaXMudXNlTWFzcyA9IHVzZU1hc3M7XG4gICAgdGhpcy5vbkNvbGxpZGUgPSBvbkNvbGxpZGU7XG4gICAgdGhpcy5wYXJ0aWNsZXMgPSBbXTtcbiAgICB0aGlzLmRlbHRhID0gbmV3IFZlY3RvcjNEKCk7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZWN0cyBjb2xsaXNpb25zIHdpdGggb3RoZXIgcGFydGljbGVzIGFuZCBjYWxscyB0aGVcbiAgICogb25Db2xsaWRlIGZ1bmN0aW9uIG9uIGNvbGxpZGluZyBwYXJ0aWNsZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGljbGV9IHBhcnRpY2xlIC0gdGhlIHBhcnRpY2xlIHRvIGFwcGx5IHRoZSBiZWhhdmlvdXIgdG9cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRpbWUgLSBwYXJ0aWNsZSBlbmdpbmUgdGltZVxuICAgKiBAcGFyYW0ge2ludGVnZXJ9IGluZGV4IC0gdGhlIHBhcnRpY2xlIGluZGV4XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgbXV0YXRlKHBhcnRpY2xlLCB0aW1lLCBpbmRleCkge1xuICAgIGNvbnN0IHBhcnRpY2xlcyA9IHRoaXMuZW1pdHRlclxuICAgICAgPyB0aGlzLmVtaXR0ZXIucGFydGljbGVzLnNsaWNlKGluZGV4KVxuICAgICAgOiB0aGlzLnBhcnRpY2xlcy5zbGljZShpbmRleCk7XG5cbiAgICBsZXQgb3RoZXJQYXJ0aWNsZSwgbGVuZ3RoU3EsIG92ZXJsYXAsIGRpc3RhbmNlLCBhdmVyYWdlTWFzczEsIGF2ZXJhZ2VNYXNzMjtcblxuICAgIGxldCBpID0gcGFydGljbGVzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIG90aGVyUGFydGljbGUgPSBwYXJ0aWNsZXNbaV07XG5cbiAgICAgIGlmIChvdGhlclBhcnRpY2xlID09IHBhcnRpY2xlKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmRlbHRhLmNvcHkob3RoZXJQYXJ0aWNsZS5wb3NpdGlvbikuc3ViKHBhcnRpY2xlLnBvc2l0aW9uKTtcblxuICAgICAgbGVuZ3RoU3EgPSB0aGlzLmRlbHRhLmxlbmd0aFNxKCk7XG4gICAgICBkaXN0YW5jZSA9IHBhcnRpY2xlLnJhZGl1cyArIG90aGVyUGFydGljbGUucmFkaXVzO1xuXG4gICAgICBpZiAobGVuZ3RoU3EgPD0gZGlzdGFuY2UgKiBkaXN0YW5jZSkge1xuICAgICAgICBvdmVybGFwID0gZGlzdGFuY2UgLSBNYXRoLnNxcnQobGVuZ3RoU3EpO1xuICAgICAgICBvdmVybGFwICs9IDAuNTtcblxuICAgICAgICBhdmVyYWdlTWFzczEgPSB0aGlzLl9nZXRBdmVyYWdlTWFzcyhwYXJ0aWNsZSwgb3RoZXJQYXJ0aWNsZSk7XG4gICAgICAgIGF2ZXJhZ2VNYXNzMiA9IHRoaXMuX2dldEF2ZXJhZ2VNYXNzKG90aGVyUGFydGljbGUsIHBhcnRpY2xlKTtcblxuICAgICAgICBwYXJ0aWNsZS5wb3NpdGlvbi5hZGQoXG4gICAgICAgICAgdGhpcy5kZWx0YVxuICAgICAgICAgICAgLmNsb25lKClcbiAgICAgICAgICAgIC5ub3JtYWxpemUoKVxuICAgICAgICAgICAgLnNjYWxhcihvdmVybGFwICogLWF2ZXJhZ2VNYXNzMSlcbiAgICAgICAgKTtcblxuICAgICAgICBvdGhlclBhcnRpY2xlLnBvc2l0aW9uLmFkZChcbiAgICAgICAgICB0aGlzLmRlbHRhLm5vcm1hbGl6ZSgpLnNjYWxhcihvdmVybGFwICogYXZlcmFnZU1hc3MyKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMub25Db2xsaWRlICYmIHRoaXMub25Db2xsaWRlKHBhcnRpY2xlLCBvdGhlclBhcnRpY2xlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYXZlcmFnZSBtYXNzIG9mIGJvdGggcGFydGljbGVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpY2xlfSBwYXJ0aWNsZUEgLSBUaGUgZmlyc3QgcGFydGljbGVcbiAgICogQHBhcmFtIHtQYXJ0aWNsZX0gcGFydGljbGVCIC0gVGhlIHNlY29uZCBwYXJ0aWNsZVxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBfZ2V0QXZlcmFnZU1hc3MocGFydGljbGVBLCBwYXJ0aWNsZUIpIHtcbiAgICByZXR1cm4gdGhpcy51c2VNYXNzXG4gICAgICA/IHBhcnRpY2xlQi5tYXNzIC8gKHBhcnRpY2xlQS5tYXNzICsgcGFydGljbGVCLm1hc3MpXG4gICAgICA6IDAuNTtcbiAgfVxuXG4gIC8vIFRPRE9cbiAgZnJvbUpTT04oanNvbikge30gLy8gZXNsaW50LWRpc2FibGUtbGluZVxufVxuIl19
@@ -1,148 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _math = require("../math");
23
-
24
- var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
25
-
26
- var _utils = require("../utils");
27
-
28
- var _ease = require("../ease");
29
-
30
- var _types = require("./types");
31
-
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
-
34
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
-
36
- /**
37
- * A behaviour which mutates the color of a particle over time.
38
- *
39
- */
40
- var Color = /*#__PURE__*/function (_Behaviour) {
41
- (0, _inherits2["default"])(Color, _Behaviour);
42
-
43
- var _super = _createSuper(Color);
44
-
45
- /**
46
- * Constructs a Color behaviour instance.
47
- *
48
- * @param {number|string} colorA - the starting color
49
- * @param {number|string} colorB - the ending color
50
- * @param {number} life - the life of the particle
51
- * @param {function} easing - The behaviour's decaying trend
52
- * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
53
- * @return void
54
- */
55
- function Color(colorA, colorB, life, easing) {
56
- var _this;
57
-
58
- var isEnabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
59
- (0, _classCallCheck2["default"])(this, Color);
60
- _this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_COLOR, isEnabled);
61
-
62
- _this.reset(colorA, colorB);
63
-
64
- return _this;
65
- }
66
- /**
67
- * Gets the _same property which determines if the alpha are the same.
68
- *
69
- * @return {boolean}
70
- */
71
-
72
-
73
- (0, _createClass2["default"])(Color, [{
74
- key: "reset",
75
- value: function reset(colorA, colorB, life, easing) {
76
- this.same = colorB === null || colorB === undefined ? true : false;
77
- this.colorA = (0, _math.createColorSpan)(colorA);
78
- this.colorB = (0, _math.createColorSpan)(colorB);
79
- life && (0, _get2["default"])((0, _getPrototypeOf2["default"])(Color.prototype), "reset", this).call(this, life, easing);
80
- }
81
- }, {
82
- key: "initialize",
83
- value: function initialize(particle) {
84
- particle.transform.colorA = _utils.ColorUtil.getRGB(this.colorA.getValue());
85
- particle.useColor = true;
86
- particle.transform.colorB = this.same ? particle.transform.colorA : _utils.ColorUtil.getRGB(this.colorB.getValue());
87
- }
88
- }, {
89
- key: "mutate",
90
- value: function mutate(particle, time, index) {
91
- this.energize(particle, time, index);
92
-
93
- if (!this._same) {
94
- particle.color.r = _math.MathUtils.lerp(particle.transform.colorA.r, particle.transform.colorB.r, this.energy);
95
- particle.color.g = _math.MathUtils.lerp(particle.transform.colorA.g, particle.transform.colorB.g, this.energy);
96
- particle.color.b = _math.MathUtils.lerp(particle.transform.colorA.b, particle.transform.colorB.b, this.energy);
97
- } else {
98
- particle.color.r = particle.transform.colorA.r;
99
- particle.color.g = particle.transform.colorA.g;
100
- particle.color.b = particle.transform.colorA.b;
101
- }
102
- }
103
- /**
104
- * Creates a Color initializer from JSON.
105
- *
106
- * @param {object} json - The JSON to construct the instance from.
107
- * @property {number} json.colorA - The starting color
108
- * @property {number} json.colorB - The ending color
109
- * @property {number} json.life - The life of the particle
110
- * @property {string} json.easing - The behaviour's decaying trend
111
- * @return {Color}
112
- */
113
-
114
- }, {
115
- key: "same",
116
- get: function get() {
117
- return this._same;
118
- }
119
- /**
120
- * Sets the _same property which determines if the alpha are the same.
121
- *
122
- * @param {boolean} same
123
- * @return {boolean}
124
- */
125
- ,
126
- set: function set(same) {
127
- /**
128
- * @type {boolean}
129
- */
130
- this._same = same;
131
- }
132
- }], [{
133
- key: "fromJSON",
134
- value: function fromJSON(json) {
135
- var colorA = json.colorA,
136
- colorB = json.colorB,
137
- life = json.life,
138
- easing = json.easing,
139
- _json$isEnabled = json.isEnabled,
140
- isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
141
- return new Color(colorA, colorB, life, (0, _ease.getEasingByName)(easing), isEnabled);
142
- }
143
- }]);
144
- return Color;
145
- }(_Behaviour2["default"]);
146
-
147
- exports["default"] = Color;
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ29sb3IuanMiXSwibmFtZXMiOlsiQ29sb3IiLCJjb2xvckEiLCJjb2xvckIiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwidHlwZSIsInJlc2V0Iiwic2FtZSIsInVuZGVmaW5lZCIsInBhcnRpY2xlIiwidHJhbnNmb3JtIiwiQ29sb3JVdGlsIiwiZ2V0UkdCIiwiZ2V0VmFsdWUiLCJ1c2VDb2xvciIsInRpbWUiLCJpbmRleCIsImVuZXJnaXplIiwiX3NhbWUiLCJjb2xvciIsInIiLCJNYXRoVXRpbHMiLCJsZXJwIiwiZW5lcmd5IiwiZyIsImIiLCJqc29uIiwiQmVoYXZpb3VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7SUFDcUJBLEs7Ozs7O0FBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0UsaUJBQVlDLE1BQVosRUFBb0JDLE1BQXBCLEVBQTRCQyxJQUE1QixFQUFrQ0MsTUFBbEMsRUFBNEQ7QUFBQTs7QUFBQSxRQUFsQkMsU0FBa0IsdUVBQU4sSUFBTTtBQUFBO0FBQzFELDhCQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JFLDJCQUFwQixFQUEwQkQsU0FBMUI7O0FBRUEsVUFBS0UsS0FBTCxDQUFXTixNQUFYLEVBQW1CQyxNQUFuQjs7QUFIMEQ7QUFJM0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBOzs7OzswQkFrQlFELE0sRUFBUUMsTSxFQUFRQyxJLEVBQU1DLE0sRUFBUTtBQUNsQyxXQUFLSSxJQUFMLEdBQVlOLE1BQU0sS0FBSyxJQUFYLElBQW1CQSxNQUFNLEtBQUtPLFNBQTlCLEdBQTBDLElBQTFDLEdBQWlELEtBQTdEO0FBRUEsV0FBS1IsTUFBTCxHQUFjLDJCQUFnQkEsTUFBaEIsQ0FBZDtBQUNBLFdBQUtDLE1BQUwsR0FBYywyQkFBZ0JBLE1BQWhCLENBQWQ7QUFDQUMsTUFBQUEsSUFBSSx1R0FBZ0JBLElBQWhCLEVBQXNCQyxNQUF0QixDQUFKO0FBQ0Q7OzsrQkFFVU0sUSxFQUFVO0FBQ25CQSxNQUFBQSxRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLEdBQTRCVyxpQkFBVUMsTUFBVixDQUFpQixLQUFLWixNQUFMLENBQVlhLFFBQVosRUFBakIsQ0FBNUI7QUFFQUosTUFBQUEsUUFBUSxDQUFDSyxRQUFULEdBQW9CLElBQXBCO0FBQ0FMLE1BQUFBLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlQsTUFBbkIsR0FBNEIsS0FBS00sSUFBTCxHQUN4QkUsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQURLLEdBRXhCVyxpQkFBVUMsTUFBVixDQUFpQixLQUFLWCxNQUFMLENBQVlZLFFBQVosRUFBakIsQ0FGSjtBQUdEOzs7MkJBRU1KLFEsRUFBVU0sSSxFQUFNQyxLLEVBQU87QUFDNUIsV0FBS0MsUUFBTCxDQUFjUixRQUFkLEVBQXdCTSxJQUF4QixFQUE4QkMsS0FBOUI7O0FBRUEsVUFBSSxDQUFDLEtBQUtFLEtBQVYsRUFBaUI7QUFDZlQsUUFBQUEsUUFBUSxDQUFDVSxLQUFULENBQWVDLENBQWYsR0FBbUJDLGdCQUFVQyxJQUFWLENBQ2pCYixRQUFRLENBQUNDLFNBQVQsQ0FBbUJWLE1BQW5CLENBQTBCb0IsQ0FEVCxFQUVqQlgsUUFBUSxDQUFDQyxTQUFULENBQW1CVCxNQUFuQixDQUEwQm1CLENBRlQsRUFHakIsS0FBS0csTUFIWSxDQUFuQjtBQUtBZCxRQUFBQSxRQUFRLENBQUNVLEtBQVQsQ0FBZUssQ0FBZixHQUFtQkgsZ0JBQVVDLElBQVYsQ0FDakJiLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlYsTUFBbkIsQ0FBMEJ3QixDQURULEVBRWpCZixRQUFRLENBQUNDLFNBQVQsQ0FBbUJULE1BQW5CLENBQTBCdUIsQ0FGVCxFQUdqQixLQUFLRCxNQUhZLENBQW5CO0FBS0FkLFFBQUFBLFFBQVEsQ0FBQ1UsS0FBVCxDQUFlTSxDQUFmLEdBQW1CSixnQkFBVUMsSUFBVixDQUNqQmIsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixDQUEwQnlCLENBRFQsRUFFakJoQixRQUFRLENBQUNDLFNBQVQsQ0FBbUJULE1BQW5CLENBQTBCd0IsQ0FGVCxFQUdqQixLQUFLRixNQUhZLENBQW5CO0FBS0QsT0FoQkQsTUFnQk87QUFDTGQsUUFBQUEsUUFBUSxDQUFDVSxLQUFULENBQWVDLENBQWYsR0FBbUJYLFFBQVEsQ0FBQ0MsU0FBVCxDQUFtQlYsTUFBbkIsQ0FBMEJvQixDQUE3QztBQUNBWCxRQUFBQSxRQUFRLENBQUNVLEtBQVQsQ0FBZUssQ0FBZixHQUFtQmYsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixDQUEwQndCLENBQTdDO0FBQ0FmLFFBQUFBLFFBQVEsQ0FBQ1UsS0FBVCxDQUFlTSxDQUFmLEdBQW1CaEIsUUFBUSxDQUFDQyxTQUFULENBQW1CVixNQUFuQixDQUEwQnlCLENBQTdDO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O3dCQXJFYTtBQUNULGFBQU8sS0FBS1AsS0FBWjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztzQkFDV1gsSSxFQUFNO0FBQ2I7QUFDSjtBQUNBO0FBQ0ksV0FBS1csS0FBTCxHQUFhWCxJQUFiO0FBQ0Q7Ozs2QkF1RGVtQixJLEVBQU07QUFBQSxVQUNaMUIsTUFEWSxHQUN1QzBCLElBRHZDLENBQ1oxQixNQURZO0FBQUEsVUFDSkMsTUFESSxHQUN1Q3lCLElBRHZDLENBQ0p6QixNQURJO0FBQUEsVUFDSUMsSUFESixHQUN1Q3dCLElBRHZDLENBQ0l4QixJQURKO0FBQUEsVUFDVUMsTUFEVixHQUN1Q3VCLElBRHZDLENBQ1V2QixNQURWO0FBQUEsNEJBQ3VDdUIsSUFEdkMsQ0FDa0J0QixTQURsQjtBQUFBLFVBQ2tCQSxTQURsQixnQ0FDOEIsSUFEOUI7QUFHcEIsYUFBTyxJQUFJTCxLQUFKLENBQVVDLE1BQVYsRUFBa0JDLE1BQWxCLEVBQTBCQyxJQUExQixFQUFnQywyQkFBZ0JDLE1BQWhCLENBQWhDLEVBQXlEQyxTQUF6RCxDQUFQO0FBQ0Q7OztFQWhHZ0N1QixzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdGhVdGlscywgY3JlYXRlQ29sb3JTcGFuIH0gZnJvbSAnLi4vbWF0aCc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgQ29sb3JVdGlsIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9DT0xPUiBhcyB0eXBlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBiZWhhdmlvdXIgd2hpY2ggbXV0YXRlcyB0aGUgY29sb3Igb2YgYSBwYXJ0aWNsZSBvdmVyIHRpbWUuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xvciBleHRlbmRzIEJlaGF2aW91ciB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgQ29sb3IgYmVoYXZpb3VyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGNvbG9yQSAtIHRoZSBzdGFydGluZyBjb2xvclxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGNvbG9yQiAtIHRoZSBlbmRpbmcgY29sb3JcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSB0aGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqIEByZXR1cm4gdm9pZFxuICAgKi9cbiAgY29uc3RydWN0b3IoY29sb3JBLCBjb2xvckIsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoY29sb3JBLCBjb2xvckIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIF9zYW1lIHByb3BlcnR5IHdoaWNoIGRldGVybWluZXMgaWYgdGhlIGFscGhhIGFyZSB0aGUgc2FtZS5cbiAgICpcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cbiAgICovXG4gIGdldCBzYW1lKCkge1xuICAgIHJldHVybiB0aGlzLl9zYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIF9zYW1lIHByb3BlcnR5IHdoaWNoIGRldGVybWluZXMgaWYgdGhlIGFscGhhIGFyZSB0aGUgc2FtZS5cbiAgICpcbiAgICogQHBhcmFtIHtib29sZWFufSBzYW1lXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAqL1xuICBzZXQgc2FtZShzYW1lKSB7XG4gICAgLyoqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgdGhpcy5fc2FtZSA9IHNhbWU7XG4gIH1cblxuICByZXNldChjb2xvckEsIGNvbG9yQiwgbGlmZSwgZWFzaW5nKSB7XG4gICAgdGhpcy5zYW1lID0gY29sb3JCID09PSBudWxsIHx8IGNvbG9yQiA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgdGhpcy5jb2xvckEgPSBjcmVhdGVDb2xvclNwYW4oY29sb3JBKTtcbiAgICB0aGlzLmNvbG9yQiA9IGNyZWF0ZUNvbG9yU3Bhbihjb2xvckIpO1xuICAgIGxpZmUgJiYgc3VwZXIucmVzZXQobGlmZSwgZWFzaW5nKTtcbiAgfVxuXG4gIGluaXRpYWxpemUocGFydGljbGUpIHtcbiAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBID0gQ29sb3JVdGlsLmdldFJHQih0aGlzLmNvbG9yQS5nZXRWYWx1ZSgpKTtcblxuICAgIHBhcnRpY2xlLnVzZUNvbG9yID0gdHJ1ZTtcbiAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JCID0gdGhpcy5zYW1lXG4gICAgICA/IHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckFcbiAgICAgIDogQ29sb3JVdGlsLmdldFJHQih0aGlzLmNvbG9yQi5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBpZiAoIXRoaXMuX3NhbWUpIHtcbiAgICAgIHBhcnRpY2xlLmNvbG9yLnIgPSBNYXRoVXRpbHMubGVycChcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5yLFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JCLnIsXG4gICAgICAgIHRoaXMuZW5lcmd5XG4gICAgICApO1xuICAgICAgcGFydGljbGUuY29sb3IuZyA9IE1hdGhVdGlscy5sZXJwKFxuICAgICAgICBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLmcsXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckIuZyxcbiAgICAgICAgdGhpcy5lbmVyZ3lcbiAgICAgICk7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5iID0gTWF0aFV0aWxzLmxlcnAoXG4gICAgICAgIHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEuYixcbiAgICAgICAgcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQi5iLFxuICAgICAgICB0aGlzLmVuZXJneVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFydGljbGUuY29sb3IuciA9IHBhcnRpY2xlLnRyYW5zZm9ybS5jb2xvckEucjtcbiAgICAgIHBhcnRpY2xlLmNvbG9yLmcgPSBwYXJ0aWNsZS50cmFuc2Zvcm0uY29sb3JBLmc7XG4gICAgICBwYXJ0aWNsZS5jb2xvci5iID0gcGFydGljbGUudHJhbnNmb3JtLmNvbG9yQS5iO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29sb3IgaW5pdGlhbGl6ZXIgZnJvbSBKU09OLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0ganNvbiAtIFRoZSBKU09OIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgZnJvbS5cbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24uY29sb3JBIC0gVGhlIHN0YXJ0aW5nIGNvbG9yXG4gICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBqc29uLmNvbG9yQiAtIFRoZSBlbmRpbmcgY29sb3JcbiAgICogQHByb3BlcnR5IHtudW1iZXJ9IGpzb24ubGlmZSAtIFRoZSBsaWZlIG9mIHRoZSBwYXJ0aWNsZVxuICAgKiBAcHJvcGVydHkge3N0cmluZ30ganNvbi5lYXNpbmcgLSBUaGUgYmVoYXZpb3VyJ3MgZGVjYXlpbmcgdHJlbmRcbiAgICogQHJldHVybiB7Q29sb3J9XG4gICAqL1xuICBzdGF0aWMgZnJvbUpTT04oanNvbikge1xuICAgIGNvbnN0IHsgY29sb3JBLCBjb2xvckIsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSB9ID0ganNvbjtcblxuICAgIHJldHVybiBuZXcgQ29sb3IoY29sb3JBLCBjb2xvckIsIGxpZmUsIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0=
@@ -1,141 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var Zone = _interopRequireWildcard(require("../zone"));
29
-
30
- var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
31
-
32
- var _constants = require("./constants");
33
-
34
- var _ease = require("../ease");
35
-
36
- var _types = require("./types");
37
-
38
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
-
40
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- /**
47
- * Behaviour that allows for specific functions to be called on particles when
48
- * they interact with a zone.
49
- *
50
- */
51
- var CrossZone = /*#__PURE__*/function (_Behaviour) {
52
- (0, _inherits2["default"])(CrossZone, _Behaviour);
53
-
54
- var _super = _createSuper(CrossZone);
55
-
56
- /**
57
- * Constructs a CrossZone behaviour instance.
58
- *
59
- * @param {Zone} zone - the zone used to apply to particles with this behaviour
60
- * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross'
61
- * @param {number} life - The life of the particle
62
- * @param {function} easing - The behaviour's decaying trend
63
- * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
64
- */
65
- function CrossZone(zone, crossType, life, easing, isEnabled) {
66
- var _this;
67
-
68
- (0, _classCallCheck2["default"])(this, CrossZone);
69
- _this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_CROSS_ZONE, isEnabled);
70
-
71
- _this.reset(zone, crossType);
72
-
73
- return _this;
74
- }
75
- /**
76
- * Resets the behaviour properties.
77
- *
78
- * @param {Zone} zone - the zone used to apply to particles with this behaviour
79
- * @param {string} [crossType=DEFAULT_CROSS_TYPE] - enum of cross types, valid strings include 'dead', 'bound', 'cross'
80
- * @param {number} life - The life of the particle
81
- * @param {function} easing - The behaviour's decaying trend
82
- */
83
-
84
-
85
- (0, _createClass2["default"])(CrossZone, [{
86
- key: "reset",
87
- value: function reset(zone) {
88
- var crossType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.DEFAULT_CROSS_TYPE;
89
- var life = arguments.length > 2 ? arguments[2] : undefined;
90
- var easing = arguments.length > 3 ? arguments[3] : undefined;
91
-
92
- /**
93
- * @desc The zone used to apply to particles with this behaviour
94
- * @type {Zone}
95
- */
96
- this.zone = zone;
97
- this.zone.crossType = crossType;
98
- life && (0, _get2["default"])((0, _getPrototypeOf2["default"])(CrossZone.prototype), "reset", this).call(this, life, easing);
99
- }
100
- /**
101
- * Applies the behaviour to the particle.
102
- *
103
- * @see {@link '../zone/Zone.js'} crossing
104
- * @param {object} particle - the particle to apply the behaviour to
105
- * @param {number} time - engine time
106
- * @param {integer} index - the particle index
107
- * @return void
108
- */
109
-
110
- }, {
111
- key: "mutate",
112
- value: function mutate(particle, time, index) {
113
- this.energize(particle, time, index);
114
- this.zone.crossing.call(this.zone, particle);
115
- }
116
- /**
117
- * Creates a CrossZone initializer from JSON.
118
- *
119
- * @param {object} json - The JSON to construct the instance from.
120
- * @return {CrossZone}
121
- */
122
-
123
- }], [{
124
- key: "fromJSON",
125
- value: function fromJSON(json) {
126
- var zoneType = json.zoneType,
127
- zoneParams = json.zoneParams,
128
- crossType = json.crossType,
129
- life = json.life,
130
- easing = json.easing,
131
- _json$isEnabled = json.isEnabled,
132
- isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
133
- var zone = (0, _construct2["default"])(Zone[zoneType], (0, _toConsumableArray2["default"])(Object.values(zoneParams)));
134
- return new CrossZone(zone, crossType, life, (0, _ease.getEasingByName)(easing), isEnabled);
135
- }
136
- }]);
137
- return CrossZone;
138
- }(_Behaviour2["default"]);
139
-
140
- exports["default"] = CrossZone;
141
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvQ3Jvc3Nab25lLmpzIl0sIm5hbWVzIjpbIkNyb3NzWm9uZSIsInpvbmUiLCJjcm9zc1R5cGUiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwidHlwZSIsInJlc2V0IiwiREVGQVVMVF9DUk9TU19UWVBFIiwicGFydGljbGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImNyb3NzaW5nIiwiY2FsbCIsImpzb24iLCJ6b25lVHlwZSIsInpvbmVQYXJhbXMiLCJab25lIiwiT2JqZWN0IiwidmFsdWVzIiwiQmVoYXZpb3VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDcUJBLFM7Ozs7O0FBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNFLHFCQUFZQyxJQUFaLEVBQWtCQyxTQUFsQixFQUE2QkMsSUFBN0IsRUFBbUNDLE1BQW5DLEVBQTJDQyxTQUEzQyxFQUFzRDtBQUFBOztBQUFBO0FBQ3BELDhCQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JFLGdDQUFwQixFQUEwQkQsU0FBMUI7O0FBRUEsVUFBS0UsS0FBTCxDQUFXTixJQUFYLEVBQWlCQyxTQUFqQjs7QUFIb0Q7QUFJckQ7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzswQkFDUUQsSSxFQUFvRDtBQUFBLFVBQTlDQyxTQUE4Qyx1RUFBbENNLDZCQUFrQztBQUFBLFVBQWRMLElBQWM7QUFBQSxVQUFSQyxNQUFROztBQUN4RDtBQUNKO0FBQ0E7QUFDQTtBQUNJLFdBQUtILElBQUwsR0FBWUEsSUFBWjtBQUNBLFdBQUtBLElBQUwsQ0FBVUMsU0FBVixHQUFzQkEsU0FBdEI7QUFFQUMsTUFBQUEsSUFBSSwyR0FBZ0JBLElBQWhCLEVBQXNCQyxNQUF0QixDQUFKO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7MkJBQ1NLLFEsRUFBVUMsSSxFQUFNQyxLLEVBQU87QUFDNUIsV0FBS0MsUUFBTCxDQUFjSCxRQUFkLEVBQXdCQyxJQUF4QixFQUE4QkMsS0FBOUI7QUFFQSxXQUFLVixJQUFMLENBQVVZLFFBQVYsQ0FBbUJDLElBQW5CLENBQXdCLEtBQUtiLElBQTdCLEVBQW1DUSxRQUFuQztBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzZCQUNrQk0sSSxFQUFNO0FBQUEsVUFFbEJDLFFBRmtCLEdBUWhCRCxJQVJnQixDQUVsQkMsUUFGa0I7QUFBQSxVQUdsQkMsVUFIa0IsR0FRaEJGLElBUmdCLENBR2xCRSxVQUhrQjtBQUFBLFVBSWxCZixTQUprQixHQVFoQmEsSUFSZ0IsQ0FJbEJiLFNBSmtCO0FBQUEsVUFLbEJDLElBTGtCLEdBUWhCWSxJQVJnQixDQUtsQlosSUFMa0I7QUFBQSxVQU1sQkMsTUFOa0IsR0FRaEJXLElBUmdCLENBTWxCWCxNQU5rQjtBQUFBLDRCQVFoQlcsSUFSZ0IsQ0FPbEJWLFNBUGtCO0FBQUEsVUFPbEJBLFNBUGtCLGdDQU9OLElBUE07QUFVcEIsVUFBTUosSUFBSSwrQkFBT2lCLElBQUksQ0FBQ0YsUUFBRCxDQUFYLHNDQUF5QkcsTUFBTSxDQUFDQyxNQUFQLENBQWNILFVBQWQsQ0FBekIsRUFBVjtBQUVBLGFBQU8sSUFBSWpCLFNBQUosQ0FDTEMsSUFESyxFQUVMQyxTQUZLLEVBR0xDLElBSEssRUFJTCwyQkFBZ0JDLE1BQWhCLENBSkssRUFLTEMsU0FMSyxDQUFQO0FBT0Q7OztFQTNFb0NnQixzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFpvbmUgZnJvbSAnLi4vem9uZSc7XG5cbmltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgREVGQVVMVF9DUk9TU19UWVBFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RWFzaW5nQnlOYW1lIH0gZnJvbSAnLi4vZWFzZSc7XG5pbXBvcnQgeyBCRUhBVklPVVJfVFlQRV9DUk9TU19aT05FIGFzIHR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBhbGxvd3MgZm9yIHNwZWNpZmljIGZ1bmN0aW9ucyB0byBiZSBjYWxsZWQgb24gcGFydGljbGVzIHdoZW5cbiAqIHRoZXkgaW50ZXJhY3Qgd2l0aCBhIHpvbmUuXG4gKlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDcm9zc1pvbmUgZXh0ZW5kcyBCZWhhdmlvdXIge1xuICAvKipcbiAgICogQ29uc3RydWN0cyBhIENyb3NzWm9uZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzRW5hYmxlZD10cnVlXSAtIERldGVybWluZXMgaWYgdGhlIGJlaGF2aW91ciB3aWxsIGJlIGFwcGxpZWQgb3Igbm90XG4gICAqL1xuICBjb25zdHJ1Y3Rvcih6b25lLCBjcm9zc1R5cGUsIGxpZmUsIGVhc2luZywgaXNFbmFibGVkKSB7XG4gICAgc3VwZXIobGlmZSwgZWFzaW5nLCB0eXBlLCBpc0VuYWJsZWQpO1xuXG4gICAgdGhpcy5yZXNldCh6b25lLCBjcm9zc1R5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgYmVoYXZpb3VyIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7Wm9uZX0gem9uZSAtIHRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IFtjcm9zc1R5cGU9REVGQVVMVF9DUk9TU19UWVBFXSAtIGVudW0gb2YgY3Jvc3MgdHlwZXMsIHZhbGlkIHN0cmluZ3MgaW5jbHVkZSAnZGVhZCcsICdib3VuZCcsICdjcm9zcydcbiAgICogQHBhcmFtIHtudW1iZXJ9IGxpZmUgLSBUaGUgbGlmZSBvZiB0aGUgcGFydGljbGVcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZWFzaW5nIC0gVGhlIGJlaGF2aW91cidzIGRlY2F5aW5nIHRyZW5kXG4gICAqL1xuICByZXNldCh6b25lLCBjcm9zc1R5cGUgPSBERUZBVUxUX0NST1NTX1RZUEUsIGxpZmUsIGVhc2luZykge1xuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSB6b25lIHVzZWQgdG8gYXBwbHkgdG8gcGFydGljbGVzIHdpdGggdGhpcyBiZWhhdmlvdXJcbiAgICAgKiBAdHlwZSB7Wm9uZX1cbiAgICAgKi9cbiAgICB0aGlzLnpvbmUgPSB6b25lO1xuICAgIHRoaXMuem9uZS5jcm9zc1R5cGUgPSBjcm9zc1R5cGU7XG5cbiAgICBsaWZlICYmIHN1cGVyLnJlc2V0KGxpZmUsIGVhc2luZyk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgYmVoYXZpb3VyIHRvIHRoZSBwYXJ0aWNsZS5cbiAgICpcbiAgICogQHNlZSB7QGxpbmsgJy4uL3pvbmUvWm9uZS5qcyd9IGNyb3NzaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICB0aGlzLnpvbmUuY3Jvc3NpbmcuY2FsbCh0aGlzLnpvbmUsIHBhcnRpY2xlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ3Jvc3Nab25lIGluaXRpYWxpemVyIGZyb20gSlNPTi5cbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IGpzb24gLSBUaGUgSlNPTiB0byBjb25zdHJ1Y3QgdGhlIGluc3RhbmNlIGZyb20uXG4gICAqIEByZXR1cm4ge0Nyb3NzWm9uZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3Qge1xuICAgICAgem9uZVR5cGUsXG4gICAgICB6b25lUGFyYW1zLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGVhc2luZyxcbiAgICAgIGlzRW5hYmxlZCA9IHRydWUsXG4gICAgfSA9IGpzb247XG5cbiAgICBjb25zdCB6b25lID0gbmV3IFpvbmVbem9uZVR5cGVdKC4uLk9iamVjdC52YWx1ZXMoem9uZVBhcmFtcykpO1xuXG4gICAgcmV0dXJuIG5ldyBDcm9zc1pvbmUoXG4gICAgICB6b25lLFxuICAgICAgY3Jvc3NUeXBlLFxuICAgICAgbGlmZSxcbiAgICAgIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLFxuICAgICAgaXNFbmFibGVkXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,126 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _Behaviour2 = _interopRequireDefault(require("./Behaviour"));
21
-
22
- var _math = require("../math");
23
-
24
- var _ease = require("../ease");
25
-
26
- var _types = require("./types");
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- /**
33
- * Behaviour that forces particles along a specific axis.
34
- *
35
- */
36
- var Force = /*#__PURE__*/function (_Behaviour) {
37
- (0, _inherits2["default"])(Force, _Behaviour);
38
-
39
- var _super = _createSuper(Force);
40
-
41
- /**
42
- * Constructs a Force behaviour instance.
43
- *
44
- * @param {number} fx - the x axis force
45
- * @param {number} fy - the y axis force
46
- * @param {number} fz - the z axis force
47
- * @param {number} life - the life of the particle
48
- * @param {function} easing - The behaviour's decaying trend
49
- * @param {boolean} [isEnabled=true] - Determines if the behaviour will be applied or not
50
- * @return void
51
- */
52
- function Force(fx, fy, fz, life, easing) {
53
- var _this;
54
-
55
- var isEnabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
56
- (0, _classCallCheck2["default"])(this, Force);
57
- _this = _super.call(this, life, easing, _types.BEHAVIOUR_TYPE_FORCE, isEnabled);
58
-
59
- _this.reset(fx, fy, fz);
60
-
61
- return _this;
62
- }
63
- /**
64
- * Resets the behaviour properties.
65
- *
66
- * @param {number} fx - the x axis force
67
- * @param {number} fy - the y axis force
68
- * @param {number} fz - the z axis force
69
- */
70
-
71
-
72
- (0, _createClass2["default"])(Force, [{
73
- key: "reset",
74
- value: function reset(fx, fy, fz) {
75
- /**
76
- * @desc The normalized force to exert on the particle in
77
- * @type {Vector3D}
78
- */
79
- this.force = this.normalizeForce(new _math.Vector3D(fx, fy, fz));
80
- /**
81
- * @desc The id of the force vector
82
- * @property {number} this.force.id
83
- */
84
-
85
- this.force.id = Math.random();
86
- }
87
- /**
88
- * Mutates the particle.acceleration property.
89
- *
90
- * @param {object} particle - the particle to apply the behaviour to
91
- * @param {number} time - engine time
92
- * @param {integer} index - the particle index
93
- * @return void
94
- */
95
-
96
- }, {
97
- key: "mutate",
98
- value: function mutate(particle, time, index) {
99
- this.energize(particle, time, index);
100
- particle.acceleration.add(this.force);
101
- }
102
- /**
103
- * Creates a Force initializer from JSON.
104
- *
105
- * @param {object} json - The JSON to construct the instance from.
106
- * @return {Force}
107
- */
108
-
109
- }], [{
110
- key: "fromJSON",
111
- value: function fromJSON(json) {
112
- var fx = json.fx,
113
- fy = json.fy,
114
- fz = json.fz,
115
- life = json.life,
116
- easing = json.easing,
117
- _json$isEnabled = json.isEnabled,
118
- isEnabled = _json$isEnabled === void 0 ? true : _json$isEnabled;
119
- return new Force(fx, fy, fz, life, (0, _ease.getEasingByName)(easing), isEnabled);
120
- }
121
- }]);
122
- return Force;
123
- }(_Behaviour2["default"]);
124
-
125
- exports["default"] = Force;
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZWhhdmlvdXIvRm9yY2UuanMiXSwibmFtZXMiOlsiRm9yY2UiLCJmeCIsImZ5IiwiZnoiLCJsaWZlIiwiZWFzaW5nIiwiaXNFbmFibGVkIiwidHlwZSIsInJlc2V0IiwiZm9yY2UiLCJub3JtYWxpemVGb3JjZSIsIlZlY3RvcjNEIiwiaWQiLCJNYXRoIiwicmFuZG9tIiwicGFydGljbGUiLCJ0aW1lIiwiaW5kZXgiLCJlbmVyZ2l6ZSIsImFjY2VsZXJhdGlvbiIsImFkZCIsImpzb24iLCJCZWhhdmlvdXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDcUJBLEs7Ozs7O0FBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRSxpQkFBWUMsRUFBWixFQUFnQkMsRUFBaEIsRUFBb0JDLEVBQXBCLEVBQXdCQyxJQUF4QixFQUE4QkMsTUFBOUIsRUFBd0Q7QUFBQTs7QUFBQSxRQUFsQkMsU0FBa0IsdUVBQU4sSUFBTTtBQUFBO0FBQ3RELDhCQUFNRixJQUFOLEVBQVlDLE1BQVosRUFBb0JFLDJCQUFwQixFQUEwQkQsU0FBMUI7O0FBRUEsVUFBS0UsS0FBTCxDQUFXUCxFQUFYLEVBQWVDLEVBQWYsRUFBbUJDLEVBQW5COztBQUhzRDtBQUl2RDtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzswQkFDUUYsRSxFQUFJQyxFLEVBQUlDLEUsRUFBSTtBQUNoQjtBQUNKO0FBQ0E7QUFDQTtBQUNJLFdBQUtNLEtBQUwsR0FBYSxLQUFLQyxjQUFMLENBQW9CLElBQUlDLGNBQUosQ0FBYVYsRUFBYixFQUFpQkMsRUFBakIsRUFBcUJDLEVBQXJCLENBQXBCLENBQWI7QUFFQTtBQUNKO0FBQ0E7QUFDQTs7QUFDSSxXQUFLTSxLQUFMLENBQVdHLEVBQVgsR0FBZ0JDLElBQUksQ0FBQ0MsTUFBTCxFQUFoQjtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OzsyQkFDU0MsUSxFQUFVQyxJLEVBQU1DLEssRUFBTztBQUM1QixXQUFLQyxRQUFMLENBQWNILFFBQWQsRUFBd0JDLElBQXhCLEVBQThCQyxLQUE5QjtBQUVBRixNQUFBQSxRQUFRLENBQUNJLFlBQVQsQ0FBc0JDLEdBQXRCLENBQTBCLEtBQUtYLEtBQS9CO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7NkJBQ2tCWSxJLEVBQU07QUFBQSxVQUNacEIsRUFEWSxHQUNtQ29CLElBRG5DLENBQ1pwQixFQURZO0FBQUEsVUFDUkMsRUFEUSxHQUNtQ21CLElBRG5DLENBQ1JuQixFQURRO0FBQUEsVUFDSkMsRUFESSxHQUNtQ2tCLElBRG5DLENBQ0psQixFQURJO0FBQUEsVUFDQUMsSUFEQSxHQUNtQ2lCLElBRG5DLENBQ0FqQixJQURBO0FBQUEsVUFDTUMsTUFETixHQUNtQ2dCLElBRG5DLENBQ01oQixNQUROO0FBQUEsNEJBQ21DZ0IsSUFEbkMsQ0FDY2YsU0FEZDtBQUFBLFVBQ2NBLFNBRGQsZ0NBQzBCLElBRDFCO0FBR3BCLGFBQU8sSUFBSU4sS0FBSixDQUFVQyxFQUFWLEVBQWNDLEVBQWQsRUFBa0JDLEVBQWxCLEVBQXNCQyxJQUF0QixFQUE0QiwyQkFBZ0JDLE1BQWhCLENBQTVCLEVBQXFEQyxTQUFyRCxDQUFQO0FBQ0Q7OztFQS9EZ0NnQixzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCZWhhdmlvdXIgZnJvbSAnLi9CZWhhdmlvdXInO1xuaW1wb3J0IHsgVmVjdG9yM0QgfSBmcm9tICcuLi9tYXRoJztcbmltcG9ydCB7IGdldEVhc2luZ0J5TmFtZSB9IGZyb20gJy4uL2Vhc2UnO1xuaW1wb3J0IHsgQkVIQVZJT1VSX1RZUEVfRk9SQ0UgYXMgdHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuLyoqXG4gKiBCZWhhdmlvdXIgdGhhdCBmb3JjZXMgcGFydGljbGVzIGFsb25nIGEgc3BlY2lmaWMgYXhpcy5cbiAqXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcmNlIGV4dGVuZHMgQmVoYXZpb3VyIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBGb3JjZSBiZWhhdmlvdXIgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeCAtIHRoZSB4IGF4aXMgZm9yY2VcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ5IC0gdGhlIHkgYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnogLSB0aGUgeiBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsaWZlIC0gdGhlIGxpZmUgb2YgdGhlIHBhcnRpY2xlXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGVhc2luZyAtIFRoZSBiZWhhdmlvdXIncyBkZWNheWluZyB0cmVuZFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc0VuYWJsZWQ9dHJ1ZV0gLSBEZXRlcm1pbmVzIGlmIHRoZSBiZWhhdmlvdXIgd2lsbCBiZSBhcHBsaWVkIG9yIG5vdFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIGNvbnN0cnVjdG9yKGZ4LCBmeSwgZnosIGxpZmUsIGVhc2luZywgaXNFbmFibGVkID0gdHJ1ZSkge1xuICAgIHN1cGVyKGxpZmUsIGVhc2luZywgdHlwZSwgaXNFbmFibGVkKTtcblxuICAgIHRoaXMucmVzZXQoZngsIGZ5LCBmeik7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBiZWhhdmlvdXIgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZ4IC0gdGhlIHggYXhpcyBmb3JjZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZnkgLSB0aGUgeSBheGlzIGZvcmNlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmeiAtIHRoZSB6IGF4aXMgZm9yY2VcbiAgICovXG4gIHJlc2V0KGZ4LCBmeSwgZnopIHtcbiAgICAvKipcbiAgICAgKiBAZGVzYyBUaGUgbm9ybWFsaXplZCBmb3JjZSB0byBleGVydCBvbiB0aGUgcGFydGljbGUgaW5cbiAgICAgKiBAdHlwZSB7VmVjdG9yM0R9XG4gICAgICovXG4gICAgdGhpcy5mb3JjZSA9IHRoaXMubm9ybWFsaXplRm9yY2UobmV3IFZlY3RvcjNEKGZ4LCBmeSwgZnopKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjIFRoZSBpZCBvZiB0aGUgZm9yY2UgdmVjdG9yXG4gICAgICogQHByb3BlcnR5IHtudW1iZXJ9IHRoaXMuZm9yY2UuaWRcbiAgICAgKi9cbiAgICB0aGlzLmZvcmNlLmlkID0gTWF0aC5yYW5kb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNdXRhdGVzIHRoZSBwYXJ0aWNsZS5hY2NlbGVyYXRpb24gcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBwYXJ0aWNsZSAtIHRoZSBwYXJ0aWNsZSB0byBhcHBseSB0aGUgYmVoYXZpb3VyIHRvXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aW1lIC0gZW5naW5lIHRpbWVcbiAgICogQHBhcmFtIHtpbnRlZ2VyfSBpbmRleCAtIHRoZSBwYXJ0aWNsZSBpbmRleFxuICAgKiBAcmV0dXJuIHZvaWRcbiAgICovXG4gIG11dGF0ZShwYXJ0aWNsZSwgdGltZSwgaW5kZXgpIHtcbiAgICB0aGlzLmVuZXJnaXplKHBhcnRpY2xlLCB0aW1lLCBpbmRleCk7XG5cbiAgICBwYXJ0aWNsZS5hY2NlbGVyYXRpb24uYWRkKHRoaXMuZm9yY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBGb3JjZSBpbml0aWFsaXplciBmcm9tIEpTT04uXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBqc29uIC0gVGhlIEpTT04gdG8gY29uc3RydWN0IHRoZSBpbnN0YW5jZSBmcm9tLlxuICAgKiBAcmV0dXJuIHtGb3JjZX1cbiAgICovXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uKSB7XG4gICAgY29uc3QgeyBmeCwgZnksIGZ6LCBsaWZlLCBlYXNpbmcsIGlzRW5hYmxlZCA9IHRydWUgfSA9IGpzb247XG5cbiAgICByZXR1cm4gbmV3IEZvcmNlKGZ4LCBmeSwgZnosIGxpZmUsIGdldEVhc2luZ0J5TmFtZShlYXNpbmcpLCBpc0VuYWJsZWQpO1xuICB9XG59XG4iXX0=