three-nebula 11.0.0 → 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 (248) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/three-nebula.cjs +109 -0
  3. package/dist/three-nebula.cjs.map +1 -0
  4. package/dist/three-nebula.mjs +2968 -0
  5. package/dist/three-nebula.mjs.map +1 -0
  6. package/dist/three-nebula.umd.js +109 -0
  7. package/dist/three-nebula.umd.js.map +1 -0
  8. package/package.json +23 -47
  9. package/specs/01-emitter-hierarchy.md +200 -0
  10. package/specs/02-determinism-scrubbing.md +188 -0
  11. package/specs/03-sound-renderer.md +183 -0
  12. package/specs/04-schema-versioning.md +140 -0
  13. package/specs/05-content-addressed-assets.md +288 -0
  14. package/specs/README.md +80 -0
  15. package/build/cjs/behaviour/Alpha.js +0 -189
  16. package/build/cjs/behaviour/Attraction.js +0 -189
  17. package/build/cjs/behaviour/Behaviour.js +0 -253
  18. package/build/cjs/behaviour/Collision.js +0 -146
  19. package/build/cjs/behaviour/Color.js +0 -148
  20. package/build/cjs/behaviour/CrossZone.js +0 -141
  21. package/build/cjs/behaviour/Force.js +0 -126
  22. package/build/cjs/behaviour/Gravity.js +0 -78
  23. package/build/cjs/behaviour/RandomDrift.js +0 -153
  24. package/build/cjs/behaviour/Repulsion.js +0 -123
  25. package/build/cjs/behaviour/Rotate.js +0 -265
  26. package/build/cjs/behaviour/Scale.js +0 -177
  27. package/build/cjs/behaviour/Spring.js +0 -133
  28. package/build/cjs/behaviour/constants.js +0 -28
  29. package/build/cjs/behaviour/index.js +0 -112
  30. package/build/cjs/behaviour/types.js +0 -33
  31. package/build/cjs/constants/index.js +0 -61
  32. package/build/cjs/core/Particle.js +0 -390
  33. package/build/cjs/core/Pool.js +0 -203
  34. package/build/cjs/core/System.js +0 -366
  35. package/build/cjs/core/constants.js +0 -163
  36. package/build/cjs/core/fromJSON.js +0 -128
  37. package/build/cjs/core/fromJSONAsync.js +0 -239
  38. package/build/cjs/core/index.js +0 -32
  39. package/build/cjs/core/three/Euler.js +0 -233
  40. package/build/cjs/core/three/Math.js +0 -91
  41. package/build/cjs/core/three/Matrix4.js +0 -745
  42. package/build/cjs/core/three/Quaternion.js +0 -451
  43. package/build/cjs/core/three/Vector3.js +0 -464
  44. package/build/cjs/core/three/constants.js +0 -298
  45. package/build/cjs/core/three/index.js +0 -48
  46. package/build/cjs/core/types.js +0 -13
  47. package/build/cjs/debug/Debug.js +0 -209
  48. package/build/cjs/debug/constants.js +0 -19
  49. package/build/cjs/debug/index.js +0 -24
  50. package/build/cjs/debug/log.js +0 -38
  51. package/build/cjs/ease/index.js +0 -149
  52. package/build/cjs/emitter/Emitter.js +0 -798
  53. package/build/cjs/emitter/FollowEmitter.js +0 -146
  54. package/build/cjs/emitter/constants.js +0 -20
  55. package/build/cjs/emitter/index.js +0 -24
  56. package/build/cjs/emitter/types.js +0 -11
  57. package/build/cjs/events/EventDispatcher.js +0 -105
  58. package/build/cjs/events/constants.js +0 -23
  59. package/build/cjs/events/index.js +0 -27
  60. package/build/cjs/index.js +0 -151
  61. package/build/cjs/initializer/Body.js +0 -122
  62. package/build/cjs/initializer/BodySprite.js +0 -146
  63. package/build/cjs/initializer/Initializer.js +0 -109
  64. package/build/cjs/initializer/InitializerUtil.js +0 -54
  65. package/build/cjs/initializer/Life.js +0 -106
  66. package/build/cjs/initializer/Mass.js +0 -101
  67. package/build/cjs/initializer/Position.js +0 -152
  68. package/build/cjs/initializer/Radius.js +0 -118
  69. package/build/cjs/initializer/Rate.js +0 -150
  70. package/build/cjs/initializer/Rotation.js +0 -95
  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 -108
  79. package/build/cjs/initializer/types.js +0 -37
  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 -371
  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 -385
  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 -58
  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 -45
  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 -68
  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 -12
  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 -708
  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/Rotation.js +0 -54
  187. package/build/esm/initializer/Texture.js +0 -101
  188. package/build/esm/initializer/Velocity/PolarVelocity.js +0 -63
  189. package/build/esm/initializer/Velocity/RadialVelocity.js +0 -72
  190. package/build/esm/initializer/Velocity/VectorVelocity.js +0 -69
  191. package/build/esm/initializer/Velocity/Velocity.js +0 -52
  192. package/build/esm/initializer/Velocity/index.js +0 -4
  193. package/build/esm/initializer/constants.js +0 -26
  194. package/build/esm/initializer/index.js +0 -12
  195. package/build/esm/initializer/types.js +0 -16
  196. package/build/esm/math/ArraySpan.js +0 -62
  197. package/build/esm/math/Box.js +0 -25
  198. package/build/esm/math/ColorSpan.js +0 -71
  199. package/build/esm/math/MathUtils.js +0 -48
  200. package/build/esm/math/Polar3D.js +0 -81
  201. package/build/esm/math/Span.js +0 -63
  202. package/build/esm/math/Vector3D.js +0 -34
  203. package/build/esm/math/constants.js +0 -24
  204. package/build/esm/math/index.js +0 -10
  205. package/build/esm/math/integration.js +0 -47
  206. package/build/esm/math/types.js +0 -7
  207. package/build/esm/renderer/BaseRenderer.js +0 -78
  208. package/build/esm/renderer/CustomRenderer.js +0 -23
  209. package/build/esm/renderer/GPURenderer/Desktop/index.js +0 -357
  210. package/build/esm/renderer/GPURenderer/Desktop/shaders/fragmentShader.js +0 -30
  211. package/build/esm/renderer/GPURenderer/Desktop/shaders/index.js +0 -3
  212. package/build/esm/renderer/GPURenderer/Desktop/shaders/vertexShader.js +0 -36
  213. package/build/esm/renderer/GPURenderer/Mobile/index.js +0 -375
  214. package/build/esm/renderer/GPURenderer/Mobile/shaders/fragmentShader.js +0 -27
  215. package/build/esm/renderer/GPURenderer/Mobile/shaders/index.js +0 -3
  216. package/build/esm/renderer/GPURenderer/Mobile/shaders/vertexShader.js +0 -33
  217. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/constants.js +0 -30
  218. package/build/esm/renderer/GPURenderer/common/ParticleBuffer/index.js +0 -70
  219. package/build/esm/renderer/GPURenderer/common/TextureAtlas/constants.js +0 -2
  220. package/build/esm/renderer/GPURenderer/common/TextureAtlas/index.js +0 -206
  221. package/build/esm/renderer/GPURenderer/common/constants.js +0 -13
  222. package/build/esm/renderer/GPURenderer/common/index.js +0 -4
  223. package/build/esm/renderer/GPURenderer/common/shaders/constants.js +0 -2
  224. package/build/esm/renderer/GPURenderer/common/stores/Target.js +0 -26
  225. package/build/esm/renderer/GPURenderer/common/stores/UniqueList.js +0 -29
  226. package/build/esm/renderer/GPURenderer/common/stores/index.js +0 -3
  227. package/build/esm/renderer/GPURenderer/index.js +0 -57
  228. package/build/esm/renderer/MeshRenderer.js +0 -93
  229. package/build/esm/renderer/SpriteRenderer.js +0 -30
  230. package/build/esm/renderer/index.js +0 -5
  231. package/build/esm/renderer/types.js +0 -8
  232. package/build/esm/utils/ColorUtil.js +0 -32
  233. package/build/esm/utils/PUID.js +0 -19
  234. package/build/esm/utils/THREEUtil.js +0 -31
  235. package/build/esm/utils/Util.js +0 -60
  236. package/build/esm/utils/index.js +0 -13
  237. package/build/esm/utils/uid.js +0 -3
  238. package/build/esm/zone/BoxZone.js +0 -133
  239. package/build/esm/zone/LineZone.js +0 -61
  240. package/build/esm/zone/MeshZone.js +0 -60
  241. package/build/esm/zone/PointZone.js +0 -59
  242. package/build/esm/zone/ScreenZone.js +0 -116
  243. package/build/esm/zone/SphereZone.js +0 -113
  244. package/build/esm/zone/Zone.js +0 -141
  245. package/build/esm/zone/index.js +0 -7
  246. package/build/esm/zone/types.js +0 -8
  247. package/build/three-nebula.js +0 -2
  248. 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=