@vived/core 1.2.2 → 1.2.4

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 (570) hide show
  1. package/dist/cjs/AppObject/AppObject.js +59 -0
  2. package/dist/cjs/AppObject/AppObject.js.map +1 -0
  3. package/dist/cjs/AppObject/AppObject.test.js +113 -0
  4. package/dist/cjs/AppObject/AppObject.test.js.map +1 -0
  5. package/dist/cjs/AppObject/AppObjectComponent.js +82 -0
  6. package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -0
  7. package/dist/cjs/AppObject/AppObjectComponent.test.js +132 -0
  8. package/dist/cjs/AppObject/AppObjectComponent.test.js.map +1 -0
  9. package/dist/cjs/AppObject/AppObjectController.js +12 -0
  10. package/dist/cjs/AppObject/AppObjectController.js.map +1 -0
  11. package/dist/cjs/AppObject/AppObjectEntity.js +38 -0
  12. package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -0
  13. package/dist/cjs/AppObject/AppObjectEntity.test.js +108 -0
  14. package/dist/cjs/AppObject/AppObjectEntity.test.js.map +1 -0
  15. package/dist/cjs/AppObject/AppObjectEntityRepo.js +56 -0
  16. package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -0
  17. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +149 -0
  18. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +1 -0
  19. package/dist/cjs/AppObject/AppObjectPM.js +40 -0
  20. package/dist/cjs/AppObject/AppObjectPM.js.map +1 -0
  21. package/dist/cjs/AppObject/AppObjectPM.test.js +103 -0
  22. package/dist/cjs/AppObject/AppObjectPM.test.js.map +1 -0
  23. package/dist/cjs/AppObject/AppObjectRepo.js +133 -0
  24. package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -0
  25. package/dist/cjs/AppObject/AppObjectRepo.test.js +213 -0
  26. package/dist/cjs/AppObject/AppObjectRepo.test.js.map +1 -0
  27. package/dist/cjs/AppObject/AppObjectUC.js +12 -0
  28. package/dist/cjs/AppObject/AppObjectUC.js.map +1 -0
  29. package/dist/cjs/AppObject/AppObjectView.js +12 -0
  30. package/dist/cjs/AppObject/AppObjectView.js.map +1 -0
  31. package/dist/cjs/AppObject/getSingletonComponent.js +7 -0
  32. package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -0
  33. package/dist/cjs/AppObject/getSingletonComponent.test.js +13 -0
  34. package/dist/cjs/AppObject/getSingletonComponent.test.js.map +1 -0
  35. package/dist/cjs/AppObject/index.js +27 -0
  36. package/dist/cjs/AppObject/index.js.map +1 -0
  37. package/dist/cjs/AppObject/printAppObjectDetails.js +18 -0
  38. package/dist/cjs/AppObject/printAppObjectDetails.js.map +1 -0
  39. package/dist/cjs/Entities/MemoizedAngle.js +23 -0
  40. package/dist/cjs/Entities/MemoizedAngle.js.map +1 -0
  41. package/dist/cjs/Entities/MemoizedAngle.test.js +30 -0
  42. package/dist/cjs/Entities/MemoizedAngle.test.js.map +1 -0
  43. package/dist/cjs/Entities/MemoizedBoolean.js +23 -0
  44. package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -0
  45. package/dist/cjs/Entities/MemoizedBoolean.test.js +34 -0
  46. package/dist/cjs/Entities/MemoizedBoolean.test.js.map +1 -0
  47. package/dist/cjs/Entities/MemoizedColor.js +24 -0
  48. package/dist/cjs/Entities/MemoizedColor.js.map +1 -0
  49. package/dist/cjs/Entities/MemoizedColor.test.js +32 -0
  50. package/dist/cjs/Entities/MemoizedColor.test.js.map +1 -0
  51. package/dist/cjs/Entities/MemoizedNumber.js +23 -0
  52. package/dist/cjs/Entities/MemoizedNumber.js.map +1 -0
  53. package/dist/cjs/Entities/MemoizedNumber.test.js +29 -0
  54. package/dist/cjs/Entities/MemoizedNumber.test.js.map +1 -0
  55. package/dist/cjs/Entities/MemoizedQuaternion.js +24 -0
  56. package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -0
  57. package/dist/cjs/Entities/MemoizedQuaternion.test.js +32 -0
  58. package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +1 -0
  59. package/dist/cjs/Entities/MemoizedString.js +23 -0
  60. package/dist/cjs/Entities/MemoizedString.js.map +1 -0
  61. package/dist/cjs/Entities/MemoizedString.test.js +29 -0
  62. package/dist/cjs/Entities/MemoizedString.test.js.map +1 -0
  63. package/dist/cjs/Entities/MemoizedVector2.js +24 -0
  64. package/dist/cjs/Entities/MemoizedVector2.js.map +1 -0
  65. package/dist/cjs/Entities/MemoizedVector2.test.js +32 -0
  66. package/dist/cjs/Entities/MemoizedVector2.test.js.map +1 -0
  67. package/dist/cjs/Entities/MemoizedVector3.js +24 -0
  68. package/dist/cjs/Entities/MemoizedVector3.js.map +1 -0
  69. package/dist/cjs/Entities/MemoizedVector3.test.js +32 -0
  70. package/dist/cjs/Entities/MemoizedVector3.test.js.map +1 -0
  71. package/dist/cjs/Entities/ObservableEntity.js +20 -0
  72. package/dist/cjs/Entities/ObservableEntity.js.map +1 -0
  73. package/dist/cjs/Entities/ObservableEntity.test.js +25 -0
  74. package/dist/cjs/Entities/ObservableEntity.test.js.map +1 -0
  75. package/dist/cjs/Entities/ObserverList.js +27 -0
  76. package/dist/cjs/Entities/ObserverList.js.map +1 -0
  77. package/dist/cjs/Entities/ObserverList.test.js +44 -0
  78. package/dist/cjs/Entities/ObserverList.test.js.map +1 -0
  79. package/dist/cjs/Entities/RangedNumber.js +36 -0
  80. package/dist/cjs/Entities/RangedNumber.js.map +1 -0
  81. package/dist/cjs/Entities/RangedNumber.test.js +96 -0
  82. package/dist/cjs/Entities/RangedNumber.test.js.map +1 -0
  83. package/dist/cjs/Entities/index.js +28 -0
  84. package/dist/cjs/Entities/index.js.map +1 -0
  85. package/dist/cjs/Types/AppBoundary.js +3 -0
  86. package/dist/cjs/Types/AppBoundary.js.map +1 -0
  87. package/dist/cjs/Types/EaseFn.js +3 -0
  88. package/dist/cjs/Types/EaseFn.js.map +1 -0
  89. package/dist/cjs/Types/PmAdapter.js +3 -0
  90. package/dist/cjs/Types/PmAdapter.js.map +1 -0
  91. package/dist/cjs/Types/SingletonPmAdapter.js +3 -0
  92. package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -0
  93. package/dist/cjs/Types/index.js +21 -0
  94. package/dist/cjs/Types/index.js.map +1 -0
  95. package/dist/cjs/Utilities/LengthConverters.js +21 -0
  96. package/dist/cjs/Utilities/LengthConverters.js.map +1 -0
  97. package/dist/cjs/Utilities/LengthConverters.test.js +24 -0
  98. package/dist/cjs/Utilities/LengthConverters.test.js.map +1 -0
  99. package/dist/cjs/Utilities/LerpNumber.js +85 -0
  100. package/dist/cjs/Utilities/LerpNumber.js.map +1 -0
  101. package/dist/cjs/Utilities/LerpNumber.test.js +90 -0
  102. package/dist/cjs/Utilities/LerpNumber.test.js.map +1 -0
  103. package/dist/cjs/Utilities/degreesToRadians.js +7 -0
  104. package/dist/cjs/Utilities/degreesToRadians.js.map +1 -0
  105. package/dist/cjs/Utilities/degreesToRadians.test.js +9 -0
  106. package/dist/cjs/Utilities/degreesToRadians.test.js.map +1 -0
  107. package/dist/cjs/Utilities/easeFunctions.js +208 -0
  108. package/dist/cjs/Utilities/easeFunctions.js.map +1 -0
  109. package/dist/cjs/Utilities/easeFunctions.test.js +209 -0
  110. package/dist/cjs/Utilities/easeFunctions.test.js.map +1 -0
  111. package/dist/cjs/Utilities/generateUniqueID.js +8 -0
  112. package/dist/cjs/Utilities/generateUniqueID.js.map +1 -0
  113. package/dist/cjs/Utilities/index.js +22 -0
  114. package/dist/cjs/Utilities/index.js.map +1 -0
  115. package/dist/cjs/Utilities/interpolateNumber.js +18 -0
  116. package/dist/cjs/Utilities/interpolateNumber.js.map +1 -0
  117. package/dist/cjs/Utilities/interpolateNumber.test.js +26 -0
  118. package/dist/cjs/Utilities/interpolateNumber.test.js.map +1 -0
  119. package/dist/cjs/ValueObjects/Angle.js +47 -0
  120. package/dist/cjs/ValueObjects/Angle.js.map +1 -0
  121. package/dist/cjs/ValueObjects/Angle.test.js +28 -0
  122. package/dist/cjs/ValueObjects/Angle.test.js.map +1 -0
  123. package/dist/cjs/ValueObjects/Color.js +859 -0
  124. package/dist/cjs/ValueObjects/Color.js.map +1 -0
  125. package/dist/cjs/ValueObjects/Color.test.js +147 -0
  126. package/dist/cjs/ValueObjects/Color.test.js.map +1 -0
  127. package/dist/cjs/ValueObjects/LineSegment2D.js +72 -0
  128. package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -0
  129. package/dist/cjs/ValueObjects/LineSegment2D.test.js +102 -0
  130. package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +1 -0
  131. package/dist/cjs/ValueObjects/Matrix.js +466 -0
  132. package/dist/cjs/ValueObjects/Matrix.js.map +1 -0
  133. package/dist/cjs/ValueObjects/Matrix.test.js +385 -0
  134. package/dist/cjs/ValueObjects/Matrix.test.js.map +1 -0
  135. package/dist/cjs/ValueObjects/ParametricLine.js +77 -0
  136. package/dist/cjs/ValueObjects/ParametricLine.js.map +1 -0
  137. package/dist/cjs/ValueObjects/ParametricLine.test.js +126 -0
  138. package/dist/cjs/ValueObjects/ParametricLine.test.js.map +1 -0
  139. package/dist/cjs/ValueObjects/ParametricPlane.js +65 -0
  140. package/dist/cjs/ValueObjects/ParametricPlane.js.map +1 -0
  141. package/dist/cjs/ValueObjects/ParametricPlane.test.js +101 -0
  142. package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +1 -0
  143. package/dist/cjs/ValueObjects/Quaternion.js +290 -0
  144. package/dist/cjs/ValueObjects/Quaternion.js.map +1 -0
  145. package/dist/cjs/ValueObjects/Quaternion.test.js +240 -0
  146. package/dist/cjs/ValueObjects/Quaternion.test.js.map +1 -0
  147. package/dist/cjs/ValueObjects/Rectangle.js +24 -0
  148. package/dist/cjs/ValueObjects/Rectangle.js.map +1 -0
  149. package/dist/cjs/ValueObjects/Rectangle.test.js +32 -0
  150. package/dist/cjs/ValueObjects/Rectangle.test.js.map +1 -0
  151. package/dist/cjs/ValueObjects/Vector2.js +184 -0
  152. package/dist/cjs/ValueObjects/Vector2.js.map +1 -0
  153. package/dist/cjs/ValueObjects/Vector2.test.js +136 -0
  154. package/dist/cjs/ValueObjects/Vector2.test.js.map +1 -0
  155. package/dist/cjs/ValueObjects/Vector3.js +231 -0
  156. package/dist/cjs/ValueObjects/Vector3.js.map +1 -0
  157. package/dist/cjs/ValueObjects/Vector3.test.js +188 -0
  158. package/dist/cjs/ValueObjects/Vector3.test.js.map +1 -0
  159. package/dist/cjs/ValueObjects/index.js +27 -0
  160. package/dist/cjs/ValueObjects/index.js.map +1 -0
  161. package/dist/cjs/index.js +22 -0
  162. package/dist/cjs/index.js.map +1 -0
  163. package/dist/esm/AppObject/AppObject.js +54 -0
  164. package/dist/esm/AppObject/AppObject.js.map +1 -0
  165. package/dist/esm/AppObject/AppObject.test.js +110 -0
  166. package/dist/esm/AppObject/AppObject.test.js.map +1 -0
  167. package/dist/esm/AppObject/AppObjectComponent.js +78 -0
  168. package/dist/esm/AppObject/AppObjectComponent.js.map +1 -0
  169. package/dist/esm/AppObject/AppObjectComponent.test.js +130 -0
  170. package/dist/esm/AppObject/AppObjectComponent.test.js.map +1 -0
  171. package/dist/esm/AppObject/AppObjectController.js +8 -0
  172. package/dist/esm/AppObject/AppObjectController.js.map +1 -0
  173. package/dist/esm/AppObject/AppObjectEntity.js +34 -0
  174. package/dist/esm/AppObject/AppObjectEntity.js.map +1 -0
  175. package/dist/esm/AppObject/AppObjectEntity.test.js +106 -0
  176. package/dist/esm/AppObject/AppObjectEntity.test.js.map +1 -0
  177. package/dist/esm/AppObject/AppObjectEntityRepo.js +52 -0
  178. package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -0
  179. package/dist/esm/AppObject/AppObjectEntityRepo.test.js +147 -0
  180. package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +1 -0
  181. package/dist/esm/AppObject/AppObjectPM.js +36 -0
  182. package/dist/esm/AppObject/AppObjectPM.js.map +1 -0
  183. package/dist/esm/AppObject/AppObjectPM.test.js +101 -0
  184. package/dist/esm/AppObject/AppObjectPM.test.js.map +1 -0
  185. package/dist/esm/AppObject/AppObjectRepo.js +128 -0
  186. package/dist/esm/AppObject/AppObjectRepo.js.map +1 -0
  187. package/dist/esm/AppObject/AppObjectRepo.test.js +211 -0
  188. package/dist/esm/AppObject/AppObjectRepo.test.js.map +1 -0
  189. package/dist/esm/AppObject/AppObjectUC.js +8 -0
  190. package/dist/esm/AppObject/AppObjectUC.js.map +1 -0
  191. package/dist/esm/AppObject/AppObjectView.js +8 -0
  192. package/dist/esm/AppObject/AppObjectView.js.map +1 -0
  193. package/dist/esm/AppObject/getSingletonComponent.js +4 -0
  194. package/dist/esm/AppObject/getSingletonComponent.js.map +1 -0
  195. package/dist/esm/AppObject/getSingletonComponent.test.js +11 -0
  196. package/dist/esm/AppObject/getSingletonComponent.test.js.map +1 -0
  197. package/dist/esm/AppObject/index.js +11 -0
  198. package/dist/esm/AppObject/index.js.map +1 -0
  199. package/dist/esm/AppObject/printAppObjectDetails.js +15 -0
  200. package/dist/esm/AppObject/printAppObjectDetails.js.map +1 -0
  201. package/dist/esm/Entities/MemoizedAngle.js +19 -0
  202. package/dist/esm/Entities/MemoizedAngle.js.map +1 -0
  203. package/dist/esm/Entities/MemoizedAngle.test.js +28 -0
  204. package/dist/esm/Entities/MemoizedAngle.test.js.map +1 -0
  205. package/dist/esm/Entities/MemoizedBoolean.js +19 -0
  206. package/dist/esm/Entities/MemoizedBoolean.js.map +1 -0
  207. package/dist/esm/Entities/MemoizedBoolean.test.js +32 -0
  208. package/dist/esm/Entities/MemoizedBoolean.test.js.map +1 -0
  209. package/dist/esm/Entities/MemoizedColor.js +20 -0
  210. package/dist/esm/Entities/MemoizedColor.js.map +1 -0
  211. package/dist/esm/Entities/MemoizedColor.test.js +30 -0
  212. package/dist/esm/Entities/MemoizedColor.test.js.map +1 -0
  213. package/dist/esm/Entities/MemoizedNumber.js +19 -0
  214. package/dist/esm/Entities/MemoizedNumber.js.map +1 -0
  215. package/dist/esm/Entities/MemoizedNumber.test.js +27 -0
  216. package/dist/esm/Entities/MemoizedNumber.test.js.map +1 -0
  217. package/dist/esm/Entities/MemoizedQuaternion.js +20 -0
  218. package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -0
  219. package/dist/esm/Entities/MemoizedQuaternion.test.js +30 -0
  220. package/dist/esm/Entities/MemoizedQuaternion.test.js.map +1 -0
  221. package/dist/esm/Entities/MemoizedString.js +19 -0
  222. package/dist/esm/Entities/MemoizedString.js.map +1 -0
  223. package/dist/esm/Entities/MemoizedString.test.js +27 -0
  224. package/dist/esm/Entities/MemoizedString.test.js.map +1 -0
  225. package/dist/esm/Entities/MemoizedVector2.js +20 -0
  226. package/dist/esm/Entities/MemoizedVector2.js.map +1 -0
  227. package/dist/esm/Entities/MemoizedVector2.test.js +30 -0
  228. package/dist/esm/Entities/MemoizedVector2.test.js.map +1 -0
  229. package/dist/esm/Entities/MemoizedVector3.js +20 -0
  230. package/dist/esm/Entities/MemoizedVector3.js.map +1 -0
  231. package/dist/esm/Entities/MemoizedVector3.test.js +30 -0
  232. package/dist/esm/Entities/MemoizedVector3.test.js.map +1 -0
  233. package/dist/esm/Entities/ObservableEntity.js +16 -0
  234. package/dist/esm/Entities/ObservableEntity.js.map +1 -0
  235. package/dist/esm/Entities/ObservableEntity.test.js +23 -0
  236. package/dist/esm/Entities/ObservableEntity.test.js.map +1 -0
  237. package/dist/esm/Entities/ObserverList.js +23 -0
  238. package/dist/esm/Entities/ObserverList.js.map +1 -0
  239. package/dist/esm/Entities/ObserverList.test.js +42 -0
  240. package/dist/esm/Entities/ObserverList.test.js.map +1 -0
  241. package/dist/esm/Entities/RangedNumber.js +32 -0
  242. package/dist/esm/Entities/RangedNumber.js.map +1 -0
  243. package/dist/esm/Entities/RangedNumber.test.js +94 -0
  244. package/dist/esm/Entities/RangedNumber.test.js.map +1 -0
  245. package/{src/Entities/index.ts → dist/esm/Entities/index.js} +12 -11
  246. package/dist/esm/Entities/index.js.map +1 -0
  247. package/dist/esm/Types/AppBoundary.js +2 -0
  248. package/dist/esm/Types/AppBoundary.js.map +1 -0
  249. package/dist/esm/Types/EaseFn.js +2 -0
  250. package/dist/esm/Types/EaseFn.js.map +1 -0
  251. package/dist/esm/Types/PmAdapter.js +2 -0
  252. package/dist/esm/Types/PmAdapter.js.map +1 -0
  253. package/dist/esm/Types/SingletonPmAdapter.js +2 -0
  254. package/dist/esm/Types/SingletonPmAdapter.js.map +1 -0
  255. package/{src/Types/index.ts → dist/esm/Types/index.js} +5 -4
  256. package/dist/esm/Types/index.js.map +1 -0
  257. package/dist/esm/Utilities/LengthConverters.js +15 -0
  258. package/dist/esm/Utilities/LengthConverters.js.map +1 -0
  259. package/dist/esm/Utilities/LengthConverters.test.js +22 -0
  260. package/dist/esm/Utilities/LengthConverters.test.js.map +1 -0
  261. package/dist/esm/Utilities/LerpNumber.js +81 -0
  262. package/dist/esm/Utilities/LerpNumber.js.map +1 -0
  263. package/dist/esm/Utilities/LerpNumber.test.js +88 -0
  264. package/dist/esm/Utilities/LerpNumber.test.js.map +1 -0
  265. package/dist/esm/Utilities/degreesToRadians.js +4 -0
  266. package/dist/esm/Utilities/degreesToRadians.js.map +1 -0
  267. package/dist/esm/Utilities/degreesToRadians.test.js +7 -0
  268. package/dist/esm/Utilities/degreesToRadians.test.js.map +1 -0
  269. package/dist/esm/Utilities/easeFunctions.js +183 -0
  270. package/dist/esm/Utilities/easeFunctions.js.map +1 -0
  271. package/dist/esm/Utilities/easeFunctions.test.js +207 -0
  272. package/dist/esm/Utilities/easeFunctions.test.js.map +1 -0
  273. package/dist/esm/Utilities/generateUniqueID.js +5 -0
  274. package/dist/esm/Utilities/generateUniqueID.js.map +1 -0
  275. package/{src/Utilities/index.ts → dist/esm/Utilities/index.js} +6 -6
  276. package/dist/esm/Utilities/index.js.map +1 -0
  277. package/dist/esm/Utilities/interpolateNumber.js +15 -0
  278. package/dist/esm/Utilities/interpolateNumber.js.map +1 -0
  279. package/dist/esm/Utilities/interpolateNumber.test.js +24 -0
  280. package/dist/esm/Utilities/interpolateNumber.test.js.map +1 -0
  281. package/dist/esm/ValueObjects/Angle.js +43 -0
  282. package/dist/esm/ValueObjects/Angle.js.map +1 -0
  283. package/dist/esm/ValueObjects/Angle.test.js +26 -0
  284. package/dist/esm/ValueObjects/Angle.test.js.map +1 -0
  285. package/dist/esm/ValueObjects/Color.js +855 -0
  286. package/dist/esm/ValueObjects/Color.js.map +1 -0
  287. package/dist/esm/ValueObjects/Color.test.js +145 -0
  288. package/dist/esm/ValueObjects/Color.test.js.map +1 -0
  289. package/dist/esm/ValueObjects/LineSegment2D.js +68 -0
  290. package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -0
  291. package/dist/esm/ValueObjects/LineSegment2D.test.js +100 -0
  292. package/dist/esm/ValueObjects/LineSegment2D.test.js.map +1 -0
  293. package/dist/esm/ValueObjects/Matrix.js +462 -0
  294. package/dist/esm/ValueObjects/Matrix.js.map +1 -0
  295. package/dist/esm/ValueObjects/Matrix.test.js +383 -0
  296. package/dist/esm/ValueObjects/Matrix.test.js.map +1 -0
  297. package/dist/esm/ValueObjects/ParametricLine.js +73 -0
  298. package/dist/esm/ValueObjects/ParametricLine.js.map +1 -0
  299. package/dist/esm/ValueObjects/ParametricLine.test.js +124 -0
  300. package/dist/esm/ValueObjects/ParametricLine.test.js.map +1 -0
  301. package/dist/esm/ValueObjects/ParametricPlane.js +61 -0
  302. package/dist/esm/ValueObjects/ParametricPlane.js.map +1 -0
  303. package/dist/esm/ValueObjects/ParametricPlane.test.js +99 -0
  304. package/dist/esm/ValueObjects/ParametricPlane.test.js.map +1 -0
  305. package/dist/esm/ValueObjects/Quaternion.js +286 -0
  306. package/dist/esm/ValueObjects/Quaternion.js.map +1 -0
  307. package/dist/esm/ValueObjects/Quaternion.test.js +238 -0
  308. package/dist/esm/ValueObjects/Quaternion.test.js.map +1 -0
  309. package/dist/esm/ValueObjects/Rectangle.js +20 -0
  310. package/dist/esm/ValueObjects/Rectangle.js.map +1 -0
  311. package/dist/esm/ValueObjects/Rectangle.test.js +30 -0
  312. package/dist/esm/ValueObjects/Rectangle.test.js.map +1 -0
  313. package/dist/esm/ValueObjects/Vector2.js +180 -0
  314. package/dist/esm/ValueObjects/Vector2.js.map +1 -0
  315. package/dist/esm/ValueObjects/Vector2.test.js +134 -0
  316. package/dist/esm/ValueObjects/Vector2.test.js.map +1 -0
  317. package/dist/esm/ValueObjects/Vector3.js +227 -0
  318. package/dist/esm/ValueObjects/Vector3.js.map +1 -0
  319. package/dist/esm/ValueObjects/Vector3.test.js +186 -0
  320. package/dist/esm/ValueObjects/Vector3.test.js.map +1 -0
  321. package/{src/ValueObjects/index.ts → dist/esm/ValueObjects/index.js} +11 -14
  322. package/dist/esm/ValueObjects/index.js.map +1 -0
  323. package/{src/index.ts → dist/esm/index.js} +6 -5
  324. package/dist/esm/index.js.map +1 -0
  325. package/dist/types/AppObject/AppObject.d.ts +15 -0
  326. package/dist/types/AppObject/AppObject.d.ts.map +1 -0
  327. package/dist/types/AppObject/AppObject.test.d.ts +7 -0
  328. package/dist/types/AppObject/AppObject.test.d.ts.map +1 -0
  329. package/dist/types/AppObject/AppObjectComponent.d.ts +26 -0
  330. package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -0
  331. package/dist/types/AppObject/AppObjectComponent.test.d.ts +2 -0
  332. package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +1 -0
  333. package/dist/types/AppObject/AppObjectController.d.ts +5 -0
  334. package/dist/types/AppObject/AppObjectController.d.ts.map +1 -0
  335. package/dist/types/AppObject/AppObjectEntity.d.ts +16 -0
  336. package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -0
  337. package/dist/types/AppObject/AppObjectEntity.test.d.ts +2 -0
  338. package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +1 -0
  339. package/dist/types/AppObject/AppObjectEntityRepo.d.ts +16 -0
  340. package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -0
  341. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +2 -0
  342. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +1 -0
  343. package/dist/types/AppObject/AppObjectPM.d.ts +13 -0
  344. package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -0
  345. package/dist/types/AppObject/AppObjectPM.test.d.ts +2 -0
  346. package/dist/types/AppObject/AppObjectPM.test.d.ts.map +1 -0
  347. package/dist/types/AppObject/AppObjectRepo.d.ts +26 -0
  348. package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -0
  349. package/dist/types/AppObject/AppObjectRepo.test.d.ts +2 -0
  350. package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +1 -0
  351. package/dist/types/AppObject/AppObjectUC.d.ts +5 -0
  352. package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -0
  353. package/dist/types/AppObject/AppObjectView.d.ts +5 -0
  354. package/dist/types/AppObject/AppObjectView.d.ts.map +1 -0
  355. package/dist/types/AppObject/getSingletonComponent.d.ts +4 -0
  356. package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -0
  357. package/dist/types/AppObject/getSingletonComponent.test.d.ts +2 -0
  358. package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +1 -0
  359. package/dist/types/AppObject/index.d.ts +11 -0
  360. package/dist/types/AppObject/index.d.ts.map +1 -0
  361. package/dist/types/AppObject/printAppObjectDetails.d.ts +3 -0
  362. package/dist/types/AppObject/printAppObjectDetails.d.ts.map +1 -0
  363. package/dist/types/Entities/MemoizedAngle.d.ts +10 -0
  364. package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -0
  365. package/dist/types/Entities/MemoizedAngle.test.d.ts +2 -0
  366. package/dist/types/Entities/MemoizedAngle.test.d.ts.map +1 -0
  367. package/dist/types/Entities/MemoizedBoolean.d.ts +9 -0
  368. package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -0
  369. package/dist/types/Entities/MemoizedBoolean.test.d.ts +2 -0
  370. package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +1 -0
  371. package/dist/types/Entities/MemoizedColor.d.ts +10 -0
  372. package/dist/types/Entities/MemoizedColor.d.ts.map +1 -0
  373. package/dist/types/Entities/MemoizedColor.test.d.ts +2 -0
  374. package/dist/types/Entities/MemoizedColor.test.d.ts.map +1 -0
  375. package/dist/types/Entities/MemoizedNumber.d.ts +9 -0
  376. package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -0
  377. package/dist/types/Entities/MemoizedNumber.test.d.ts +2 -0
  378. package/dist/types/Entities/MemoizedNumber.test.d.ts.map +1 -0
  379. package/dist/types/Entities/MemoizedQuaternion.d.ts +10 -0
  380. package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -0
  381. package/dist/types/Entities/MemoizedQuaternion.test.d.ts +2 -0
  382. package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +1 -0
  383. package/dist/types/Entities/MemoizedString.d.ts +9 -0
  384. package/dist/types/Entities/MemoizedString.d.ts.map +1 -0
  385. package/dist/types/Entities/MemoizedString.test.d.ts +2 -0
  386. package/dist/types/Entities/MemoizedString.test.d.ts.map +1 -0
  387. package/dist/types/Entities/MemoizedVector2.d.ts +10 -0
  388. package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -0
  389. package/dist/types/Entities/MemoizedVector2.test.d.ts +2 -0
  390. package/dist/types/Entities/MemoizedVector2.test.d.ts.map +1 -0
  391. package/dist/types/Entities/MemoizedVector3.d.ts +10 -0
  392. package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -0
  393. package/dist/types/Entities/MemoizedVector3.test.d.ts +2 -0
  394. package/dist/types/Entities/MemoizedVector3.test.d.ts.map +1 -0
  395. package/dist/types/Entities/ObservableEntity.d.ts +8 -0
  396. package/dist/types/Entities/ObservableEntity.d.ts.map +1 -0
  397. package/dist/types/Entities/ObservableEntity.test.d.ts +2 -0
  398. package/dist/types/Entities/ObservableEntity.test.d.ts.map +1 -0
  399. package/dist/types/Entities/ObserverList.d.ts +8 -0
  400. package/dist/types/Entities/ObserverList.d.ts.map +1 -0
  401. package/dist/types/Entities/ObserverList.test.d.ts +2 -0
  402. package/dist/types/Entities/ObserverList.test.d.ts.map +1 -0
  403. package/dist/types/Entities/RangedNumber.d.ts +17 -0
  404. package/dist/types/Entities/RangedNumber.d.ts.map +1 -0
  405. package/dist/types/Entities/RangedNumber.test.d.ts +2 -0
  406. package/dist/types/Entities/RangedNumber.test.d.ts.map +1 -0
  407. package/dist/types/Entities/index.d.ts +12 -0
  408. package/dist/types/Entities/index.d.ts.map +1 -0
  409. package/dist/types/Types/AppBoundary.d.ts +11 -0
  410. package/dist/types/Types/AppBoundary.d.ts.map +1 -0
  411. package/dist/types/Types/EaseFn.d.ts +2 -0
  412. package/dist/types/Types/EaseFn.d.ts.map +1 -0
  413. package/dist/types/Types/PmAdapter.d.ts +7 -0
  414. package/dist/types/Types/PmAdapter.d.ts.map +1 -0
  415. package/dist/types/Types/SingletonPmAdapter.d.ts +7 -0
  416. package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -0
  417. package/dist/types/Types/index.d.ts +5 -0
  418. package/dist/types/Types/index.d.ts.map +1 -0
  419. package/dist/types/Utilities/LengthConverters.d.ts +5 -0
  420. package/dist/types/Utilities/LengthConverters.d.ts.map +1 -0
  421. package/dist/types/Utilities/LengthConverters.test.d.ts +2 -0
  422. package/dist/types/Utilities/LengthConverters.test.d.ts.map +1 -0
  423. package/dist/types/Utilities/LerpNumber.d.ts +57 -0
  424. package/dist/types/Utilities/LerpNumber.d.ts.map +1 -0
  425. package/dist/types/Utilities/LerpNumber.test.d.ts +2 -0
  426. package/dist/types/Utilities/LerpNumber.test.d.ts.map +1 -0
  427. package/dist/types/Utilities/degreesToRadians.d.ts +2 -0
  428. package/dist/types/Utilities/degreesToRadians.d.ts.map +1 -0
  429. package/dist/types/Utilities/degreesToRadians.test.d.ts +2 -0
  430. package/dist/types/Utilities/degreesToRadians.test.d.ts.map +1 -0
  431. package/dist/types/Utilities/easeFunctions.d.ts +24 -0
  432. package/dist/types/Utilities/easeFunctions.d.ts.map +1 -0
  433. package/dist/types/Utilities/easeFunctions.test.d.ts +2 -0
  434. package/dist/types/Utilities/easeFunctions.test.d.ts.map +1 -0
  435. package/dist/types/Utilities/generateUniqueID.d.ts +2 -0
  436. package/dist/types/Utilities/generateUniqueID.d.ts.map +1 -0
  437. package/dist/types/Utilities/index.d.ts +6 -0
  438. package/dist/types/Utilities/index.d.ts.map +1 -0
  439. package/dist/types/Utilities/interpolateNumber.d.ts +2 -0
  440. package/dist/types/Utilities/interpolateNumber.d.ts.map +1 -0
  441. package/dist/types/Utilities/interpolateNumber.test.d.ts +2 -0
  442. package/dist/types/Utilities/interpolateNumber.test.d.ts.map +1 -0
  443. package/dist/types/ValueObjects/Angle.d.ts +27 -0
  444. package/dist/types/ValueObjects/Angle.d.ts.map +1 -0
  445. package/dist/types/ValueObjects/Angle.test.d.ts +2 -0
  446. package/dist/types/ValueObjects/Angle.test.d.ts.map +1 -0
  447. package/dist/types/ValueObjects/Color.d.ts +83 -0
  448. package/dist/types/ValueObjects/Color.d.ts.map +1 -0
  449. package/dist/types/ValueObjects/Color.test.d.ts +2 -0
  450. package/dist/types/ValueObjects/Color.test.d.ts.map +1 -0
  451. package/dist/types/ValueObjects/LineSegment2D.d.ts +12 -0
  452. package/dist/types/ValueObjects/LineSegment2D.d.ts.map +1 -0
  453. package/dist/types/ValueObjects/LineSegment2D.test.d.ts +2 -0
  454. package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +1 -0
  455. package/dist/types/ValueObjects/Matrix.d.ts +124 -0
  456. package/dist/types/ValueObjects/Matrix.d.ts.map +1 -0
  457. package/dist/types/ValueObjects/Matrix.test.d.ts +2 -0
  458. package/dist/types/ValueObjects/Matrix.test.d.ts.map +1 -0
  459. package/dist/types/ValueObjects/ParametricLine.d.ts +31 -0
  460. package/dist/types/ValueObjects/ParametricLine.d.ts.map +1 -0
  461. package/dist/types/ValueObjects/ParametricLine.test.d.ts +2 -0
  462. package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +1 -0
  463. package/dist/types/ValueObjects/ParametricPlane.d.ts +21 -0
  464. package/dist/types/ValueObjects/ParametricPlane.d.ts.map +1 -0
  465. package/dist/types/ValueObjects/ParametricPlane.test.d.ts +2 -0
  466. package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +1 -0
  467. package/dist/types/ValueObjects/Quaternion.d.ts +113 -0
  468. package/dist/types/ValueObjects/Quaternion.d.ts.map +1 -0
  469. package/dist/types/ValueObjects/Quaternion.test.d.ts +2 -0
  470. package/dist/types/ValueObjects/Quaternion.test.d.ts.map +1 -0
  471. package/dist/types/ValueObjects/Rectangle.d.ts +16 -0
  472. package/dist/types/ValueObjects/Rectangle.d.ts.map +1 -0
  473. package/dist/types/ValueObjects/Rectangle.test.d.ts +2 -0
  474. package/dist/types/ValueObjects/Rectangle.test.d.ts.map +1 -0
  475. package/dist/types/ValueObjects/Vector2.d.ts +121 -0
  476. package/dist/types/ValueObjects/Vector2.d.ts.map +1 -0
  477. package/dist/types/ValueObjects/Vector2.test.d.ts +2 -0
  478. package/dist/types/ValueObjects/Vector2.test.d.ts.map +1 -0
  479. package/dist/types/ValueObjects/Vector3.d.ts +150 -0
  480. package/dist/types/ValueObjects/Vector3.d.ts.map +1 -0
  481. package/dist/types/ValueObjects/Vector3.test.d.ts +2 -0
  482. package/dist/types/ValueObjects/Vector3.test.d.ts.map +1 -0
  483. package/dist/types/ValueObjects/index.d.ts +11 -0
  484. package/dist/types/ValueObjects/index.d.ts.map +1 -0
  485. package/dist/types/index.d.ts +6 -0
  486. package/dist/types/index.d.ts.map +1 -0
  487. package/package.json +5 -2
  488. package/babel.config.js +0 -12
  489. package/jestconfig.json +0 -10
  490. package/src/AppObject/AppObject.test.ts +0 -158
  491. package/src/AppObject/AppObject.ts +0 -83
  492. package/src/AppObject/AppObjectComponent.test.ts +0 -219
  493. package/src/AppObject/AppObjectComponent.ts +0 -100
  494. package/src/AppObject/AppObjectController.ts +0 -8
  495. package/src/AppObject/AppObjectEntity.test.ts +0 -151
  496. package/src/AppObject/AppObjectEntity.ts +0 -45
  497. package/src/AppObject/AppObjectEntityRepo.test.ts +0 -211
  498. package/src/AppObject/AppObjectEntityRepo.ts +0 -61
  499. package/src/AppObject/AppObjectPM.test.ts +0 -152
  500. package/src/AppObject/AppObjectPM.ts +0 -43
  501. package/src/AppObject/AppObjectRepo.test.ts +0 -317
  502. package/src/AppObject/AppObjectRepo.ts +0 -203
  503. package/src/AppObject/AppObjectUC.ts +0 -5
  504. package/src/AppObject/AppObjectView.ts +0 -5
  505. package/src/AppObject/getSingletonComponent.test.ts +0 -17
  506. package/src/AppObject/getSingletonComponent.ts +0 -9
  507. package/src/AppObject/index.ts +0 -10
  508. package/src/AppObject/printAppObjectDetails.ts +0 -17
  509. package/src/Entities/MemoizedAngle.test.ts +0 -38
  510. package/src/Entities/MemoizedAngle.ts +0 -25
  511. package/src/Entities/MemoizedBoolean.test.ts +0 -45
  512. package/src/Entities/MemoizedBoolean.ts +0 -23
  513. package/src/Entities/MemoizedColor.test.ts +0 -39
  514. package/src/Entities/MemoizedColor.ts +0 -27
  515. package/src/Entities/MemoizedNumber.test.ts +0 -37
  516. package/src/Entities/MemoizedNumber.ts +0 -23
  517. package/src/Entities/MemoizedQuaternion.test.ts +0 -39
  518. package/src/Entities/MemoizedQuaternion.ts +0 -27
  519. package/src/Entities/MemoizedString.test.ts +0 -37
  520. package/src/Entities/MemoizedString.ts +0 -23
  521. package/src/Entities/MemoizedVector2.test.ts +0 -39
  522. package/src/Entities/MemoizedVector2.ts +0 -27
  523. package/src/Entities/MemoizedVector3.test.ts +0 -39
  524. package/src/Entities/MemoizedVector3.ts +0 -27
  525. package/src/Entities/ObservableEntity.test.ts +0 -28
  526. package/src/Entities/ObservableEntity.ts +0 -17
  527. package/src/Entities/ObserverList.test.ts +0 -61
  528. package/src/Entities/ObserverList.ts +0 -24
  529. package/src/Entities/RangedNumber.test.ts +0 -118
  530. package/src/Entities/RangedNumber.ts +0 -45
  531. package/src/Types/AppBoundary.ts +0 -13
  532. package/src/Types/EaseFn.ts +0 -1
  533. package/src/Types/PmAdapter.ts +0 -15
  534. package/src/Types/SingletonPmAdapter.ts +0 -7
  535. package/src/Utilities/LengthConverters.test.ts +0 -30
  536. package/src/Utilities/LengthConverters.ts +0 -18
  537. package/src/Utilities/LerpNumber.test.ts +0 -109
  538. package/src/Utilities/LerpNumber.ts +0 -109
  539. package/src/Utilities/degreesToRadians.test.ts +0 -8
  540. package/src/Utilities/degreesToRadians.ts +0 -3
  541. package/src/Utilities/easeFunctions.test.ts +0 -251
  542. package/src/Utilities/easeFunctions.ts +0 -180
  543. package/src/Utilities/generateUniqueID.ts +0 -5
  544. package/src/Utilities/interpolateNumber.test.ts +0 -28
  545. package/src/Utilities/interpolateNumber.ts +0 -21
  546. package/src/ValueObjects/Angle.test.ts +0 -30
  547. package/src/ValueObjects/Angle.ts +0 -47
  548. package/src/ValueObjects/Color.test.ts +0 -181
  549. package/src/ValueObjects/Color.ts +0 -891
  550. package/src/ValueObjects/LineSegment2D.test.ts +0 -144
  551. package/src/ValueObjects/LineSegment2D.ts +0 -93
  552. package/src/ValueObjects/Matrix.test.ts +0 -498
  553. package/src/ValueObjects/Matrix.ts +0 -567
  554. package/src/ValueObjects/ParametricLine.test.ts +0 -155
  555. package/src/ValueObjects/ParametricLine.ts +0 -114
  556. package/src/ValueObjects/ParametricPlane.test.ts +0 -122
  557. package/src/ValueObjects/ParametricPlane.ts +0 -82
  558. package/src/ValueObjects/Quaternion.test.ts +0 -356
  559. package/src/ValueObjects/Quaternion.ts +0 -353
  560. package/src/ValueObjects/Rectangle.test.ts +0 -32
  561. package/src/ValueObjects/Rectangle.ts +0 -33
  562. package/src/ValueObjects/Vector2.test.ts +0 -167
  563. package/src/ValueObjects/Vector2.ts +0 -209
  564. package/src/ValueObjects/Vector3.test.ts +0 -228
  565. package/src/ValueObjects/Vector3.ts +0 -269
  566. package/tsconfig.build.json +0 -7
  567. package/tsconfig.cjs.json +0 -9
  568. package/tsconfig.esm.json +0 -12
  569. package/tsconfig.json +0 -19
  570. package/tslint.json +0 -11
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PmAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PmAdapter.js","sourceRoot":"","sources":["../../../src/Types/PmAdapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AppObjectRepo } from \"../AppObject\";\r\n\r\nexport interface PmAdapter<VM> {\r\n defaultVM: VM;\r\n subscribe(\r\n id: string,\r\n appObjects: AppObjectRepo,\r\n setVM: (vm: VM) => void\r\n ): void;\r\n unsubscribe(\r\n id: string,\r\n appObjects: AppObjectRepo,\r\n setVM: (vm: VM) => void\r\n ): void;\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SingletonPmAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingletonPmAdapter.js","sourceRoot":"","sources":["../../../src/Types/SingletonPmAdapter.ts"],"names":[],"mappings":"","sourcesContent":["import { AppObjectRepo } from \"../AppObject\";\r\n\r\nexport interface SingletonPmAdapter<VM> {\r\n defaultVM: VM;\r\n subscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;\r\n unsubscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;\r\n}\r\n"]}
@@ -1,4 +1,5 @@
1
- export * from "./AppBoundary";
2
- export * from "./EaseFn";
3
- export * from "./PmAdapter";
4
- export * from "./SingletonPmAdapter";
1
+ export * from "./AppBoundary";
2
+ export * from "./EaseFn";
3
+ export * from "./PmAdapter";
4
+ export * from "./SingletonPmAdapter";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC","sourcesContent":["export * from \"./AppBoundary\";\r\nexport * from \"./EaseFn\";\r\nexport * from \"./PmAdapter\";\r\nexport * from \"./SingletonPmAdapter\";\r\n"]}
@@ -0,0 +1,15 @@
1
+ const inchesPerMeter = 39.3701;
2
+ const feetPerMeter = 3.28084;
3
+ export function inchesToMeters(inches) {
4
+ return inches / inchesPerMeter;
5
+ }
6
+ export function metersToInches(meters) {
7
+ return meters * inchesPerMeter;
8
+ }
9
+ export function feetToMeters(feet) {
10
+ return feet / feetPerMeter;
11
+ }
12
+ export function metersToFeet(meters) {
13
+ return meters * feetPerMeter;
14
+ }
15
+ //# sourceMappingURL=LengthConverters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LengthConverters.js","sourceRoot":"","sources":["../../../src/Utilities/LengthConverters.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,OAAO,CAAC;AAC/B,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,GAAG,cAAc,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,GAAG,cAAc,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,GAAG,YAAY,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,MAAM,GAAG,YAAY,CAAC;AAC/B,CAAC","sourcesContent":["const inchesPerMeter = 39.3701;\r\nconst feetPerMeter = 3.28084;\r\n\r\nexport function inchesToMeters(inches: number): number {\r\n return inches / inchesPerMeter;\r\n}\r\n\r\nexport function metersToInches(meters: number): number {\r\n return meters * inchesPerMeter;\r\n}\r\n\r\nexport function feetToMeters(feet: number): number {\r\n return feet / feetPerMeter;\r\n}\r\n\r\nexport function metersToFeet(meters: number): number {\r\n return meters * feetPerMeter;\r\n}\r\n"]}
@@ -0,0 +1,22 @@
1
+ import { feetToMeters, inchesToMeters, metersToFeet, metersToInches, } from "./LengthConverters";
2
+ test("Converting inches to meters", () => {
3
+ expect(inchesToMeters(0)).toEqual(0);
4
+ expect(inchesToMeters(12)).toEqual(0.30479983540808886);
5
+ expect(inchesToMeters(-12)).toEqual(-0.30479983540808886);
6
+ });
7
+ test("Converting meters to inches", () => {
8
+ expect(metersToInches(0)).toEqual(0);
9
+ expect(metersToInches(2)).toEqual(78.7402);
10
+ expect(metersToInches(-2)).toEqual(-78.7402);
11
+ });
12
+ test("Converting feet to meters", () => {
13
+ expect(feetToMeters(0)).toEqual(0);
14
+ expect(feetToMeters(5)).toEqual(1.5239999512320015);
15
+ expect(feetToMeters(-5)).toEqual(-1.5239999512320015);
16
+ });
17
+ test("Converting meters to feet", () => {
18
+ expect(metersToFeet(0)).toEqual(0);
19
+ expect(metersToFeet(2)).toEqual(6.56168);
20
+ expect(metersToFeet(-2)).toEqual(-6.56168);
21
+ });
22
+ //# sourceMappingURL=LengthConverters.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LengthConverters.test.js","sourceRoot":"","sources":["../../../src/Utilities/LengthConverters.test.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACvC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACvC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC","sourcesContent":["import {\r\n feetToMeters,\r\n inchesToMeters,\r\n metersToFeet,\r\n metersToInches,\r\n} from \"./LengthConverters\";\r\n\r\ntest(\"Converting inches to meters\", () => {\r\n expect(inchesToMeters(0)).toEqual(0);\r\n expect(inchesToMeters(12)).toEqual(0.30479983540808886);\r\n expect(inchesToMeters(-12)).toEqual(-0.30479983540808886);\r\n});\r\n\r\ntest(\"Converting meters to inches\", () => {\r\n expect(metersToInches(0)).toEqual(0);\r\n expect(metersToInches(2)).toEqual(78.7402);\r\n expect(metersToInches(-2)).toEqual(-78.7402);\r\n});\r\n\r\ntest(\"Converting feet to meters\", () => {\r\n expect(feetToMeters(0)).toEqual(0);\r\n expect(feetToMeters(5)).toEqual(1.5239999512320015);\r\n expect(feetToMeters(-5)).toEqual(-1.5239999512320015);\r\n});\r\n\r\ntest(\"Converting meters to feet\", () => {\r\n expect(metersToFeet(0)).toEqual(0);\r\n expect(metersToFeet(2)).toEqual(6.56168);\r\n expect(metersToFeet(-2)).toEqual(-6.56168);\r\n});\r\n"]}
@@ -0,0 +1,81 @@
1
+ import { quintInOut } from "./easeFunctions";
2
+ /**
3
+ * Utility class for smoothly interpolating between two numbers over time.
4
+ * Uses requestAnimationFrame for smooth animation and supports custom easing functions.
5
+ *
6
+ * @example
7
+ * const lerper = new LerpNumber();
8
+ * // Animate from 0 to 100 over 2 seconds
9
+ * await lerper.lerp({
10
+ * start: 0,
11
+ * end: 100,
12
+ * durationMS: 2000,
13
+ * update: (value) => console.log(value)
14
+ * });
15
+ */
16
+ export class LerpNumber {
17
+ constructor() {
18
+ this.defaultDurationMS = 1000;
19
+ this.defaultEase = quintInOut;
20
+ this._isLerping = false;
21
+ this._cancelLerp = false;
22
+ /**
23
+ * Initiates a lerp (linear interpolation) operation.
24
+ * If a lerp is already in progress, it will be cancelled before starting the new one.
25
+ *
26
+ * @param data - Configuration object for the lerp operation
27
+ * @returns Promise that resolves when the lerp completes or is cancelled
28
+ * @throws Never throws, but may reject if the update function throws
29
+ */
30
+ this.lerp = (data) => {
31
+ if (this._isLerping) {
32
+ this.cancel();
33
+ }
34
+ const { start, end, durationMS, ease, onComplete, update, onCancel } = data;
35
+ const durationToUse = durationMS ?? this.defaultDurationMS;
36
+ const easeToUse = ease ?? this.defaultEase;
37
+ return new Promise((resolve) => {
38
+ const startTime = performance.now();
39
+ this._isLerping = true;
40
+ update(start);
41
+ const interval = setInterval(() => {
42
+ if (this._cancelLerp) {
43
+ clearInterval(interval);
44
+ this._isLerping = false;
45
+ this._cancelLerp = false;
46
+ if (onCancel)
47
+ onCancel();
48
+ return resolve();
49
+ }
50
+ const currentTime = performance.now();
51
+ const elapsedTime = currentTime - startTime;
52
+ const progress = Math.min(elapsedTime / durationToUse, 1);
53
+ const easedProgress = easeToUse(progress);
54
+ const value = start + (end - start) * easedProgress;
55
+ update(value);
56
+ if (progress >= 1) {
57
+ clearInterval(interval);
58
+ this._isLerping = false;
59
+ update(end);
60
+ if (onComplete)
61
+ onComplete();
62
+ resolve();
63
+ }
64
+ }, 10);
65
+ });
66
+ };
67
+ }
68
+ get isLerping() {
69
+ return this._isLerping;
70
+ }
71
+ /**
72
+ * Cancels the current lerp operation if one is in progress.
73
+ * Triggers the onCancel callback if provided in the original lerp configuration.
74
+ */
75
+ cancel() {
76
+ if (!this._isLerping)
77
+ return;
78
+ this._cancelLerp = true;
79
+ }
80
+ }
81
+ //# sourceMappingURL=LerpNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LerpNumber.js","sourceRoot":"","sources":["../../../src/Utilities/LerpNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuB7C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,UAAU;IAAvB;QACS,sBAAiB,GAAG,IAAI,CAAC;QACzB,gBAAW,GAAW,UAAU,CAAC;QAKhC,eAAU,GAAG,KAAK,CAAC;QAYnB,gBAAW,GAAG,KAAK,CAAC;QAE5B;;;;;;;WAOG;QACH,SAAI,GAAG,CAAC,IAAmB,EAAiB,EAAE;YAC5C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAE5E,MAAM,aAAa,GAAG,UAAU,IAAI,IAAI,CAAC,iBAAiB,CAAC;YAC3D,MAAM,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;YAE3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBAEvB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEd,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAChC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBACrB,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACzB,IAAI,QAAQ;4BAAE,QAAQ,EAAE,CAAC;wBACzB,OAAO,OAAO,EAAE,CAAC;oBACnB,CAAC;oBAED,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;oBACtC,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;oBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC;oBAC1D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAC1C,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC;oBACpD,MAAM,CAAC,KAAK,CAAC,CAAC;oBAEd,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAClB,aAAa,CAAC,QAAQ,CAAC,CAAC;wBACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,CAAC;wBACZ,IAAI,UAAU;4BAAE,UAAU,EAAE,CAAC;wBAC7B,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IAlEC,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAGD;;;OAGG;IACI,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CAqDF","sourcesContent":["import { EaseFn } from \"../Types\";\r\nimport { quintInOut } from \"./easeFunctions\";\r\n\r\n/**\r\n * Configuration object for performing a linear interpolation (lerp) operation.\r\n * @interface LerpNumberDTO\r\n */\r\nexport interface LerpNumberDTO {\r\n /** Starting value of the lerp */\r\n start: number;\r\n /** Target/ending value of the lerp */\r\n end: number;\r\n /** Callback function that receives the interpolated value on each update */\r\n update: (value: number) => void;\r\n /** Duration of the lerp in milliseconds. Defaults to LerpNumber.defaultDurationMS */\r\n durationMS?: number;\r\n /** Easing function to modify the interpolation curve. Defaults to LerpNumber.defaultEase */\r\n ease?: EaseFn;\r\n /** Optional callback function called when lerp completes naturally */\r\n onComplete?: () => void;\r\n /** Optional callback function called when lerp is cancelled */\r\n onCancel?: () => void;\r\n}\r\n\r\n/**\r\n * Utility class for smoothly interpolating between two numbers over time.\r\n * Uses requestAnimationFrame for smooth animation and supports custom easing functions.\r\n *\r\n * @example\r\n * const lerper = new LerpNumber();\r\n * // Animate from 0 to 100 over 2 seconds\r\n * await lerper.lerp({\r\n * start: 0,\r\n * end: 100,\r\n * durationMS: 2000,\r\n * update: (value) => console.log(value)\r\n * });\r\n */\r\nexport class LerpNumber {\r\n public defaultDurationMS = 1000;\r\n public defaultEase: EaseFn = quintInOut;\r\n\r\n public get isLerping() {\r\n return this._isLerping;\r\n }\r\n private _isLerping = false;\r\n\r\n /**\r\n * Cancels the current lerp operation if one is in progress.\r\n * Triggers the onCancel callback if provided in the original lerp configuration.\r\n */\r\n public cancel() {\r\n if (!this._isLerping) return;\r\n\r\n this._cancelLerp = true;\r\n }\r\n\r\n private _cancelLerp = false;\r\n\r\n /**\r\n * Initiates a lerp (linear interpolation) operation.\r\n * If a lerp is already in progress, it will be cancelled before starting the new one.\r\n *\r\n * @param data - Configuration object for the lerp operation\r\n * @returns Promise that resolves when the lerp completes or is cancelled\r\n * @throws Never throws, but may reject if the update function throws\r\n */\r\n lerp = (data: LerpNumberDTO): Promise<void> => {\r\n if (this._isLerping) {\r\n this.cancel();\r\n }\r\n const { start, end, durationMS, ease, onComplete, update, onCancel } = data;\r\n\r\n const durationToUse = durationMS ?? this.defaultDurationMS;\r\n const easeToUse = ease ?? this.defaultEase;\r\n\r\n return new Promise((resolve) => {\r\n const startTime = performance.now();\r\n this._isLerping = true;\r\n\r\n update(start);\r\n\r\n const interval = setInterval(() => {\r\n if (this._cancelLerp) {\r\n clearInterval(interval);\r\n this._isLerping = false;\r\n this._cancelLerp = false;\r\n if (onCancel) onCancel();\r\n return resolve();\r\n }\r\n\r\n const currentTime = performance.now();\r\n const elapsedTime = currentTime - startTime;\r\n const progress = Math.min(elapsedTime / durationToUse, 1);\r\n const easedProgress = easeToUse(progress);\r\n const value = start + (end - start) * easedProgress;\r\n update(value);\r\n\r\n if (progress >= 1) {\r\n clearInterval(interval);\r\n this._isLerping = false;\r\n update(end);\r\n if (onComplete) onComplete();\r\n resolve();\r\n }\r\n }, 10);\r\n });\r\n };\r\n}\r\n"]}
@@ -0,0 +1,88 @@
1
+ import { LerpNumber } from "./LerpNumber";
2
+ describe("Lerp Number", () => {
3
+ let lerpNumber;
4
+ let updateFn;
5
+ beforeEach(() => {
6
+ lerpNumber = new LerpNumber();
7
+ updateFn = jest.fn();
8
+ jest.useFakeTimers();
9
+ });
10
+ afterEach(() => {
11
+ jest.useRealTimers();
12
+ });
13
+ it("should lerp from start to end value", async () => {
14
+ lerpNumber.defaultDurationMS = 1000;
15
+ const promise = lerpNumber.lerp({
16
+ start: 0,
17
+ end: 100,
18
+ update: updateFn,
19
+ });
20
+ // Test middle point (should have multiple updates by this point)
21
+ jest.advanceTimersByTime(500);
22
+ expect(updateFn).toHaveBeenCalledWith(expect.closeTo(50, 5)); // Allow some margin due to interval timing
23
+ // Complete animation
24
+ jest.advanceTimersByTime(500);
25
+ await promise;
26
+ expect(updateFn).toHaveBeenCalledWith(0); // Start value
27
+ expect(updateFn).toHaveBeenLastCalledWith(100); // End value
28
+ });
29
+ it("should cancel lerp when requested", async () => {
30
+ const onCancel = jest.fn();
31
+ const promise = lerpNumber.lerp({
32
+ start: 0,
33
+ end: 100,
34
+ update: updateFn,
35
+ onCancel,
36
+ });
37
+ expect(lerpNumber.isLerping).toBe(true);
38
+ lerpNumber.cancel();
39
+ jest.advanceTimersByTime(10); // Allow interval to execute
40
+ await promise;
41
+ expect(lerpNumber.isLerping).toBe(false);
42
+ expect(onCancel).toHaveBeenCalled();
43
+ });
44
+ it("should respect custom duration", async () => {
45
+ const promise = lerpNumber.lerp({
46
+ start: 0,
47
+ end: 100,
48
+ update: updateFn,
49
+ durationMS: 500,
50
+ });
51
+ jest.advanceTimersByTime(250); // Half way
52
+ expect(updateFn).toHaveBeenLastCalledWith(expect.any(Number));
53
+ jest.advanceTimersByTime(250); // Complete
54
+ await promise;
55
+ expect(updateFn).toHaveBeenLastCalledWith(100);
56
+ });
57
+ it("should call onComplete when finished", async () => {
58
+ const onComplete = jest.fn();
59
+ const promise = lerpNumber.lerp({
60
+ start: 0,
61
+ end: 100,
62
+ update: updateFn,
63
+ onComplete,
64
+ });
65
+ jest.advanceTimersByTime(1000);
66
+ await promise;
67
+ expect(onComplete).toHaveBeenCalled();
68
+ });
69
+ it("should cancel existing lerp when starting a new one", async () => {
70
+ const onCancel = jest.fn();
71
+ const firstPromise = lerpNumber.lerp({
72
+ start: 0,
73
+ end: 100,
74
+ update: updateFn,
75
+ onCancel,
76
+ });
77
+ const secondPromise = lerpNumber.lerp({
78
+ start: 200,
79
+ end: 300,
80
+ update: updateFn,
81
+ });
82
+ jest.advanceTimersByTime(1000);
83
+ await Promise.all([firstPromise, secondPromise]);
84
+ expect(onCancel).toHaveBeenCalled();
85
+ expect(updateFn).toHaveBeenLastCalledWith(300);
86
+ });
87
+ });
88
+ //# sourceMappingURL=LerpNumber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LerpNumber.test.js","sourceRoot":"","sources":["../../../src/Utilities/LerpNumber.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,UAAsB,CAAC;IAC3B,IAAI,QAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,iEAAiE;QACjE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,2CAA2C;QAEzG,qBAAqB;QACrB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,CAAC;QAEd,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc;QACxD,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;YAChB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,UAAU,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;QAC1D,MAAM,OAAO,CAAC;QAEd,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;QAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW;QAC1C,MAAM,OAAO,CAAC;QAEd,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;YAChB,UAAU;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,CAAC;QAEd,MAAM,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;YACnC,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;YAChB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,GAAG;YACR,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;QAEjD,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { LerpNumber } from \"./LerpNumber\";\r\n\r\ndescribe(\"Lerp Number\", () => {\r\n let lerpNumber: LerpNumber;\r\n let updateFn: jest.Mock;\r\n\r\n beforeEach(() => {\r\n lerpNumber = new LerpNumber();\r\n updateFn = jest.fn();\r\n jest.useFakeTimers();\r\n });\r\n\r\n afterEach(() => {\r\n jest.useRealTimers();\r\n });\r\n\r\n it(\"should lerp from start to end value\", async () => {\r\n lerpNumber.defaultDurationMS = 1000;\r\n const promise = lerpNumber.lerp({\r\n start: 0,\r\n end: 100,\r\n update: updateFn,\r\n });\r\n\r\n // Test middle point (should have multiple updates by this point)\r\n jest.advanceTimersByTime(500);\r\n expect(updateFn).toHaveBeenCalledWith(expect.closeTo(50, 5)); // Allow some margin due to interval timing\r\n\r\n // Complete animation\r\n jest.advanceTimersByTime(500);\r\n await promise;\r\n\r\n expect(updateFn).toHaveBeenCalledWith(0); // Start value\r\n expect(updateFn).toHaveBeenLastCalledWith(100); // End value\r\n });\r\n\r\n it(\"should cancel lerp when requested\", async () => {\r\n const onCancel = jest.fn();\r\n const promise = lerpNumber.lerp({\r\n start: 0,\r\n end: 100,\r\n update: updateFn,\r\n onCancel,\r\n });\r\n\r\n expect(lerpNumber.isLerping).toBe(true);\r\n\r\n lerpNumber.cancel();\r\n jest.advanceTimersByTime(10); // Allow interval to execute\r\n await promise;\r\n\r\n expect(lerpNumber.isLerping).toBe(false);\r\n expect(onCancel).toHaveBeenCalled();\r\n });\r\n\r\n it(\"should respect custom duration\", async () => {\r\n const promise = lerpNumber.lerp({\r\n start: 0,\r\n end: 100,\r\n update: updateFn,\r\n durationMS: 500,\r\n });\r\n\r\n jest.advanceTimersByTime(250); // Half way\r\n expect(updateFn).toHaveBeenLastCalledWith(expect.any(Number));\r\n\r\n jest.advanceTimersByTime(250); // Complete\r\n await promise;\r\n\r\n expect(updateFn).toHaveBeenLastCalledWith(100);\r\n });\r\n\r\n it(\"should call onComplete when finished\", async () => {\r\n const onComplete = jest.fn();\r\n const promise = lerpNumber.lerp({\r\n start: 0,\r\n end: 100,\r\n update: updateFn,\r\n onComplete,\r\n });\r\n\r\n jest.advanceTimersByTime(1000);\r\n await promise;\r\n\r\n expect(onComplete).toHaveBeenCalled();\r\n });\r\n\r\n it(\"should cancel existing lerp when starting a new one\", async () => {\r\n const onCancel = jest.fn();\r\n const firstPromise = lerpNumber.lerp({\r\n start: 0,\r\n end: 100,\r\n update: updateFn,\r\n onCancel,\r\n });\r\n\r\n const secondPromise = lerpNumber.lerp({\r\n start: 200,\r\n end: 300,\r\n update: updateFn,\r\n });\r\n\r\n jest.advanceTimersByTime(1000);\r\n await Promise.all([firstPromise, secondPromise]);\r\n\r\n expect(onCancel).toHaveBeenCalled();\r\n expect(updateFn).toHaveBeenLastCalledWith(300);\r\n });\r\n});\r\n"]}
@@ -0,0 +1,4 @@
1
+ export function degreesToRadians(deg) {
2
+ return deg * Math.PI / 180;
3
+ }
4
+ //# sourceMappingURL=degreesToRadians.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degreesToRadians.js","sourceRoot":"","sources":["../../../src/Utilities/degreesToRadians.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAC7B,CAAC","sourcesContent":["export function degreesToRadians(deg: number):number{\r\n return deg * Math.PI / 180;\r\n}"]}
@@ -0,0 +1,7 @@
1
+ import { degreesToRadians } from "./degreesToRadians";
2
+ test("Converting degrees to radians", () => {
3
+ expect(degreesToRadians(0)).toEqual(0);
4
+ expect(degreesToRadians(180)).toBeCloseTo(Math.PI);
5
+ expect(degreesToRadians(-90)).toBeCloseTo(-Math.PI / 2);
6
+ });
7
+ //# sourceMappingURL=degreesToRadians.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degreesToRadians.test.js","sourceRoot":"","sources":["../../../src/Utilities/degreesToRadians.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,IAAI,CAAC,+BAA+B,EAAE,GAAE,EAAE;IACxC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAA","sourcesContent":["import { degreesToRadians } from \"./degreesToRadians\"\r\n\r\ntest(\"Converting degrees to radians\", ()=>{\r\n expect(degreesToRadians(0)).toEqual(0);\r\n expect(degreesToRadians(180)).toBeCloseTo(Math.PI);\r\n expect(degreesToRadians(-90)).toBeCloseTo(-Math.PI/2);\r\n})\r\n\r\n"]}
@@ -0,0 +1,183 @@
1
+ export const easeLinear = (x) => {
2
+ if (x <= 0)
3
+ return 0;
4
+ if (x >= 1)
5
+ return 1;
6
+ return x;
7
+ };
8
+ export const quadIn = (x) => {
9
+ if (x <= 0)
10
+ return 0;
11
+ if (x >= 1)
12
+ return 1;
13
+ return x * x;
14
+ };
15
+ export const quadOut = (x) => {
16
+ if (x <= 0)
17
+ return 0;
18
+ if (x >= 1)
19
+ return 1;
20
+ return x * (2 - x);
21
+ };
22
+ export const quadInOut = (x) => {
23
+ if (x <= 0)
24
+ return 0;
25
+ if (x >= 1)
26
+ return 1;
27
+ if (x < 0.5) {
28
+ return 2 * x * x;
29
+ }
30
+ else {
31
+ return 1 - Math.pow(-2 * x + 2, 2) / 2;
32
+ }
33
+ };
34
+ export const cubicIn = (x) => {
35
+ if (x <= 0)
36
+ return 0;
37
+ if (x >= 1)
38
+ return 1;
39
+ return x * x * x;
40
+ };
41
+ export const cubicOut = (x) => {
42
+ if (x <= 0)
43
+ return 0;
44
+ if (x >= 1)
45
+ return 1;
46
+ return --x * x * x + 1;
47
+ };
48
+ export const cubicInOut = (x) => {
49
+ if (x <= 0)
50
+ return 0;
51
+ if (x >= 1)
52
+ return 1;
53
+ x *= 2;
54
+ if (x <= 1) {
55
+ return (x * x * x) / 2;
56
+ }
57
+ else {
58
+ return ((x -= 2) * x * x + 2) / 2;
59
+ }
60
+ };
61
+ export const expoIn = (x) => {
62
+ if (x <= 0)
63
+ return 0;
64
+ if (x >= 1)
65
+ return 1;
66
+ return Math.pow(2, 10 * x - 10);
67
+ };
68
+ export const expoOut = (x) => {
69
+ if (x <= 0)
70
+ return 0;
71
+ if (x >= 1)
72
+ return 1;
73
+ return 1 - Math.pow(2, -10 * x);
74
+ };
75
+ export const expoInOut = (x) => {
76
+ if (x <= 0)
77
+ return 0;
78
+ if (x >= 1)
79
+ return 1;
80
+ return x < 0.5
81
+ ? Math.pow(2, 20 * x - 10) / 2
82
+ : (2 - Math.pow(2, -20 * x + 10)) / 2;
83
+ };
84
+ export const sinIn = (x) => {
85
+ if (x <= 0)
86
+ return 0;
87
+ if (x >= 1)
88
+ return 1;
89
+ return 1 - Math.cos((x * Math.PI) / 2);
90
+ };
91
+ export const sinOut = (x) => {
92
+ if (x <= 0)
93
+ return 0;
94
+ if (x >= 1)
95
+ return 1;
96
+ return Math.sin((x * Math.PI) / 2);
97
+ };
98
+ export const sinInOut = (x) => {
99
+ if (x <= 0)
100
+ return 0;
101
+ if (x >= 1)
102
+ return 1;
103
+ return -(Math.cos(Math.PI * x) - 1) / 2;
104
+ };
105
+ export const quartIn = (x) => {
106
+ if (x <= 0)
107
+ return 0;
108
+ if (x >= 1)
109
+ return 1;
110
+ return x * x * x * x;
111
+ };
112
+ export const quartOut = (x) => {
113
+ if (x <= 0)
114
+ return 0;
115
+ if (x >= 1)
116
+ return 1;
117
+ return 1 - Math.pow(1 - x, 4);
118
+ };
119
+ export const quartInOut = (x) => {
120
+ if (x <= 0)
121
+ return 0;
122
+ if (x >= 1)
123
+ return 1;
124
+ if (x < 0.5) {
125
+ return 8 * x * x * x * x;
126
+ }
127
+ else {
128
+ return 1 - Math.pow(-2 * x + 2, 4) / 2;
129
+ }
130
+ };
131
+ export const quintIn = (x) => {
132
+ if (x <= 0)
133
+ return 0;
134
+ if (x >= 1)
135
+ return 1;
136
+ return x * x * x * x * x;
137
+ };
138
+ export const quintOut = (x) => {
139
+ if (x <= 0)
140
+ return 0;
141
+ if (x >= 1)
142
+ return 1;
143
+ return 1 - Math.pow(1 - x, 5);
144
+ };
145
+ export const quintInOut = (x) => {
146
+ if (x <= 0)
147
+ return 0;
148
+ if (x >= 1)
149
+ return 1;
150
+ if (x < 0.5) {
151
+ return 16 * x * x * x * x * x;
152
+ }
153
+ else {
154
+ return 1 - Math.pow(-2 * x + 2, 5) / 2;
155
+ }
156
+ };
157
+ export const circIn = (x) => {
158
+ if (x <= 0)
159
+ return 0;
160
+ if (x >= 1)
161
+ return 1;
162
+ return 1 - Math.sqrt(1 - Math.pow(x, 2));
163
+ };
164
+ export const circOut = (x) => {
165
+ if (x <= 0)
166
+ return 0;
167
+ if (x >= 1)
168
+ return 1;
169
+ return Math.sqrt(1 - Math.pow(x - 1, 2));
170
+ };
171
+ export const circInOut = (x) => {
172
+ if (x <= 0)
173
+ return 0;
174
+ if (x >= 1)
175
+ return 1;
176
+ if (x < 0.5) {
177
+ return (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2;
178
+ }
179
+ else {
180
+ return (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2;
181
+ }
182
+ };
183
+ //# sourceMappingURL=easeFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"easeFunctions.js","sourceRoot":"","sources":["../../../src/Utilities/easeFunctions.ts"],"names":[],"mappings":"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","sourcesContent":["import { EaseFn } from \"../Types\";\r\n\r\n\r\nexport const easeLinear: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x;\r\n};\r\n\r\nexport const quadIn: EaseFn = (x: number) => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x * x;\r\n};\r\n\r\nexport const quadOut: EaseFn = (x: number) => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x * (2 - x);\r\n};\r\n\r\nexport const quadInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n if (x < 0.5) {\r\n return 2 * x * x;\r\n } else {\r\n return 1 - Math.pow(-2 * x + 2, 2) / 2;\r\n }\r\n};\r\n\r\nexport const cubicIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x * x * x;\r\n};\r\n\r\nexport const cubicOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return --x * x * x + 1;\r\n};\r\n\r\nexport const cubicInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n x *= 2;\r\n\r\n if (x <= 1) {\r\n return (x * x * x) / 2;\r\n } else {\r\n return ((x -= 2) * x * x + 2) / 2;\r\n }\r\n};\r\n\r\nexport const expoIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return Math.pow(2, 10 * x - 10);\r\n};\r\n\r\nexport const expoOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return 1 - Math.pow(2, -10 * x);\r\n};\r\n\r\nexport const expoInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x < 0.5\r\n ? Math.pow(2, 20 * x - 10) / 2\r\n : (2 - Math.pow(2, -20 * x + 10)) / 2;\r\n};\r\n\r\nexport const sinIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return 1 - Math.cos((x * Math.PI) / 2);\r\n};\r\n\r\nexport const sinOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return Math.sin((x * Math.PI) / 2);\r\n};\r\n\r\nexport const sinInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return -(Math.cos(Math.PI * x) - 1) / 2;\r\n};\r\n\r\nexport const quartIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x * x * x * x;\r\n};\r\n\r\nexport const quartOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return 1 - Math.pow(1 - x, 4);\r\n};\r\n\r\nexport const quartInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n if (x < 0.5) {\r\n return 8 * x * x * x * x;\r\n } else {\r\n return 1 - Math.pow(-2 * x + 2, 4) / 2;\r\n }\r\n};\r\n\r\nexport const quintIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return x * x * x * x * x;\r\n};\r\n\r\nexport const quintOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return 1 - Math.pow(1 - x, 5);\r\n};\r\n\r\nexport const quintInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n if (x < 0.5) {\r\n return 16 * x * x * x * x * x;\r\n } else {\r\n return 1 - Math.pow(-2 * x + 2, 5) / 2;\r\n }\r\n};\r\n\r\nexport const circIn: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return 1 - Math.sqrt(1 - Math.pow(x, 2));\r\n};\r\n\r\nexport const circOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n return Math.sqrt(1 - Math.pow(x - 1, 2));\r\n};\r\n\r\nexport const circInOut: EaseFn = (x: number): number => {\r\n if (x <= 0) return 0;\r\n if (x >= 1) return 1;\r\n\r\n if (x < 0.5) {\r\n return (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2;\r\n } else {\r\n return (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2;\r\n }\r\n};\r\n"]}