@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,27 @@
1
+ import { MemoizedNumber } from "./MemoizedNumber";
2
+ test("Initial value is stored", () => {
3
+ const memoizedNumber = new MemoizedNumber(33, jest.fn());
4
+ expect(memoizedNumber.val).toEqual(33);
5
+ });
6
+ test("Callback is called when something changes", () => {
7
+ const cb = jest.fn();
8
+ const memoizedNumber = new MemoizedNumber(33, cb);
9
+ expect(cb).not.toBeCalled();
10
+ memoizedNumber.val = 55;
11
+ expect(cb).toBeCalled();
12
+ });
13
+ test("CB is only called when something has changed", () => {
14
+ const cb = jest.fn();
15
+ const memoizedNumber = new MemoizedNumber(33, cb);
16
+ memoizedNumber.val = 33;
17
+ memoizedNumber.val = 33;
18
+ memoizedNumber.val = 33;
19
+ expect(cb).not.toBeCalled();
20
+ });
21
+ test("Setting the value quietly should not notify", () => {
22
+ const cb = jest.fn();
23
+ const memoizedBoolean = new MemoizedNumber(2, cb);
24
+ memoizedBoolean.setValQuietly(3);
25
+ expect(cb).not.toBeCalled();
26
+ });
27
+ //# sourceMappingURL=MemoizedNumber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedNumber.test.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedNumber.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,IAAI,CAAC,yBAAyB,EAAE,GAAE,EAAE;IAClC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,2CAA2C,EAAE,GAAE,EAAE;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAElD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAE5B,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,8CAA8C,EAAE,GAAE,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAElD,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IACxB,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IACxB,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6CAA6C,EAAE,GAAE,EAAE;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElD,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAA","sourcesContent":["import { MemoizedNumber } from \"./MemoizedNumber\";\r\n\r\ntest(\"Initial value is stored\", ()=>{\r\n const memoizedNumber = new MemoizedNumber(33, jest.fn());\r\n expect(memoizedNumber.val).toEqual(33);\r\n})\r\n\r\ntest(\"Callback is called when something changes\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedNumber = new MemoizedNumber(33, cb);\r\n\r\n expect(cb).not.toBeCalled();\r\n\r\n memoizedNumber.val = 55;\r\n\r\n expect(cb).toBeCalled();\r\n})\r\n\r\ntest(\"CB is only called when something has changed\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedNumber = new MemoizedNumber(33, cb);\r\n\r\n memoizedNumber.val = 33;\r\n memoizedNumber.val = 33;\r\n memoizedNumber.val = 33;\r\n\r\n expect(cb).not.toBeCalled();\r\n})\r\n\r\ntest(\"Setting the value quietly should not notify\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedBoolean = new MemoizedNumber(2, cb);\r\n\r\n memoizedBoolean.setValQuietly(3);\r\n\r\n expect(cb).not.toBeCalled();\r\n})"]}
@@ -0,0 +1,20 @@
1
+ import { Quaternion } from "../ValueObjects";
2
+ export class MemoizedQuaternion {
3
+ get val() {
4
+ return this._val;
5
+ }
6
+ set val(v) {
7
+ if (Quaternion.Equal(v, this._val))
8
+ return;
9
+ this._val = v;
10
+ this.onChangeCallback();
11
+ }
12
+ setValQuietly(val) {
13
+ this._val = val;
14
+ }
15
+ constructor(initialValue, onChangeCallback) {
16
+ this._val = initialValue;
17
+ this.onChangeCallback = onChangeCallback;
18
+ }
19
+ }
20
+ //# sourceMappingURL=MemoizedQuaternion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedQuaternion.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedQuaternion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,kBAAkB;IAG7B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,CAAa;QACnB,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3C,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,GAAe;QAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAID,YAAY,YAAwB,EAAE,gBAA4B;QAChE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF","sourcesContent":["import { Quaternion } from \"../ValueObjects\";\r\n\r\nexport class MemoizedQuaternion {\r\n private _val: Quaternion;\r\n\r\n get val(): Quaternion {\r\n return this._val;\r\n }\r\n\r\n set val(v: Quaternion) {\r\n if (Quaternion.Equal(v, this._val)) return;\r\n\r\n this._val = v;\r\n this.onChangeCallback();\r\n }\r\n\r\n public setValQuietly(val: Quaternion) {\r\n this._val = val;\r\n }\r\n\r\n private onChangeCallback: () => void;\r\n\r\n constructor(initialValue: Quaternion, onChangeCallback: () => void) {\r\n this._val = initialValue;\r\n this.onChangeCallback = onChangeCallback;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,30 @@
1
+ import { Quaternion } from "../ValueObjects";
2
+ import { MemoizedQuaternion } from "./MemoizedQuaternion";
3
+ test("Initial value is stored", () => {
4
+ const initialQuat = new Quaternion(5, 6, 7, 8);
5
+ const memoizedVector = new MemoizedQuaternion(initialQuat, jest.fn());
6
+ expect(memoizedVector.val).toEqual(new Quaternion(5, 6, 7, 8));
7
+ });
8
+ test("Callback is called when the val changes", () => {
9
+ const cb = jest.fn();
10
+ const initialQuat = new Quaternion(5, 6, 7, 8);
11
+ const memoizedQuat = new MemoizedQuaternion(initialQuat, cb);
12
+ memoizedQuat.val = new Quaternion(8, 9, 10, 11);
13
+ expect(cb).toBeCalled();
14
+ });
15
+ test("Callback is called only when the val changes", () => {
16
+ const cb = jest.fn();
17
+ const initialQuat = new Quaternion(5, 6, 7, 8);
18
+ const memoizedQuat = new MemoizedQuaternion(initialQuat, cb);
19
+ memoizedQuat.val = new Quaternion(5, 6, 7, 8);
20
+ memoizedQuat.val = new Quaternion(5, 6, 7, 8);
21
+ memoizedQuat.val = new Quaternion(5, 6, 7, 8);
22
+ expect(cb).not.toBeCalled();
23
+ });
24
+ test("Setting the value quietly should not notify", () => {
25
+ const cb = jest.fn();
26
+ const memoizedQuat = new MemoizedQuaternion(Quaternion.Identity(), cb);
27
+ memoizedQuat.setValQuietly(Quaternion.Identity());
28
+ expect(cb).not.toBeCalled();
29
+ });
30
+ //# sourceMappingURL=MemoizedQuaternion.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedQuaternion.test.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedQuaternion.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7D,YAAY,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAEhD,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE7D,YAAY,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,YAAY,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,YAAY,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,YAAY,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAEvE,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC","sourcesContent":["import { Quaternion } from \"../ValueObjects\";\r\nimport { MemoizedQuaternion } from \"./MemoizedQuaternion\";\r\n\r\ntest(\"Initial value is stored\", () => {\r\n const initialQuat = new Quaternion(5, 6, 7, 8);\r\n const memoizedVector = new MemoizedQuaternion(initialQuat, jest.fn());\r\n expect(memoizedVector.val).toEqual(new Quaternion(5, 6, 7, 8));\r\n});\r\n\r\ntest(\"Callback is called when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialQuat = new Quaternion(5, 6, 7, 8);\r\n const memoizedQuat = new MemoizedQuaternion(initialQuat, cb);\r\n\r\n memoizedQuat.val = new Quaternion(8, 9, 10, 11);\r\n\r\n expect(cb).toBeCalled();\r\n});\r\n\r\ntest(\"Callback is called only when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialQuat = new Quaternion(5, 6, 7, 8);\r\n const memoizedQuat = new MemoizedQuaternion(initialQuat, cb);\r\n\r\n memoizedQuat.val = new Quaternion(5, 6, 7, 8);\r\n memoizedQuat.val = new Quaternion(5, 6, 7, 8);\r\n memoizedQuat.val = new Quaternion(5, 6, 7, 8);\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\ntest(\"Setting the value quietly should not notify\", () => {\r\n const cb = jest.fn();\r\n const memoizedQuat = new MemoizedQuaternion(Quaternion.Identity(), cb);\r\n\r\n memoizedQuat.setValQuietly(Quaternion.Identity());\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n"]}
@@ -0,0 +1,19 @@
1
+ export class MemoizedString {
2
+ get val() {
3
+ return this._val;
4
+ }
5
+ set val(b) {
6
+ if (this._val === b)
7
+ return;
8
+ this._val = b;
9
+ this.onChangeCallback();
10
+ }
11
+ setValQuietly(val) {
12
+ this._val = val;
13
+ }
14
+ constructor(initialValue, onChangeCallback) {
15
+ this._val = initialValue;
16
+ this.onChangeCallback = onChangeCallback;
17
+ }
18
+ }
19
+ //# sourceMappingURL=MemoizedString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedString.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedString.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IAEzB,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,CAAC,CAAS;QACf,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE5B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAID,YAAY,YAAoB,EAAE,gBAA4B;QAC5D,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF","sourcesContent":["export class MemoizedString {\r\n private _val: string;\r\n get val(): string {\r\n return this._val;\r\n }\r\n set val(b: string) {\r\n if (this._val === b) return;\r\n\r\n this._val = b;\r\n this.onChangeCallback();\r\n }\r\n\r\n public setValQuietly(val: string) {\r\n this._val = val;\r\n }\r\n \r\n private onChangeCallback: () => void;\r\n\r\n constructor(initialValue: string, onChangeCallback: () => void) {\r\n this._val = initialValue;\r\n this.onChangeCallback = onChangeCallback;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,27 @@
1
+ import { MemoizedString } from "./MemoizedString";
2
+ test("Initial value is stored", () => {
3
+ const memoizedNumber = new MemoizedString("string1", jest.fn());
4
+ expect(memoizedNumber.val).toEqual("string1");
5
+ });
6
+ test("Callback is called when something changes", () => {
7
+ const cb = jest.fn();
8
+ const memoizedNumber = new MemoizedString("string1", cb);
9
+ expect(cb).not.toBeCalled();
10
+ memoizedNumber.val = "string2";
11
+ expect(cb).toBeCalled();
12
+ });
13
+ test("CB is only called when something has changed", () => {
14
+ const cb = jest.fn();
15
+ const memoizedNumber = new MemoizedString("string1", cb);
16
+ memoizedNumber.val = "string1";
17
+ memoizedNumber.val = "string1";
18
+ memoizedNumber.val = "string1";
19
+ expect(cb).not.toBeCalled();
20
+ });
21
+ test("Setting the value quietly should not notify", () => {
22
+ const cb = jest.fn();
23
+ const memoizedBoolean = new MemoizedString("string1", cb);
24
+ memoizedBoolean.setValQuietly("string2");
25
+ expect(cb).not.toBeCalled();
26
+ });
27
+ //# sourceMappingURL=MemoizedString.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedString.test.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedString.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,IAAI,CAAC,yBAAyB,EAAE,GAAE,EAAE;IAClC,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,2CAA2C,EAAE,GAAE,EAAE;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAE5B,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;IAE/B,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,8CAA8C,EAAE,GAAE,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAEzD,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;IAC/B,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;IAE/B,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,6CAA6C,EAAE,GAAE,EAAE;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,eAAe,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1D,eAAe,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAEzC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAA","sourcesContent":["import { MemoizedString } from \"./MemoizedString\";\r\n\r\ntest(\"Initial value is stored\", ()=>{\r\n const memoizedNumber = new MemoizedString(\"string1\", jest.fn());\r\n expect(memoizedNumber.val).toEqual(\"string1\");\r\n})\r\n\r\ntest(\"Callback is called when something changes\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedNumber = new MemoizedString(\"string1\", cb);\r\n\r\n expect(cb).not.toBeCalled();\r\n\r\n memoizedNumber.val = \"string2\";\r\n\r\n expect(cb).toBeCalled();\r\n})\r\n\r\ntest(\"CB is only called when something has changed\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedNumber = new MemoizedString(\"string1\", cb);\r\n\r\n memoizedNumber.val = \"string1\";\r\n memoizedNumber.val = \"string1\";\r\n memoizedNumber.val = \"string1\";\r\n\r\n expect(cb).not.toBeCalled();\r\n})\r\n\r\ntest(\"Setting the value quietly should not notify\", ()=>{\r\n const cb = jest.fn();\r\n const memoizedBoolean = new MemoizedString(\"string1\", cb);\r\n\r\n memoizedBoolean.setValQuietly(\"string2\");\r\n\r\n expect(cb).not.toBeCalled();\r\n})"]}
@@ -0,0 +1,20 @@
1
+ import { Vector2 } from "../ValueObjects";
2
+ export class MemoizedVector2 {
3
+ get val() {
4
+ return this._val;
5
+ }
6
+ set val(v) {
7
+ if (Vector2.Equal(v, this._val))
8
+ return;
9
+ this._val = v;
10
+ this.onChangeCallback();
11
+ }
12
+ setValQuietly(val) {
13
+ this._val = val;
14
+ }
15
+ constructor(initialValue, onChangeCallback) {
16
+ this._val = initialValue;
17
+ this.onChangeCallback = onChangeCallback;
18
+ }
19
+ }
20
+ //# sourceMappingURL=MemoizedVector2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedVector2.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedVector2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,OAAO,eAAe;IAG1B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,CAAU;QAChB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,GAAY;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAID,YAAY,YAAqB,EAAE,gBAA4B;QAC7D,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF","sourcesContent":["import { Vector2 } from \"../ValueObjects\";\r\n\r\nexport class MemoizedVector2 {\r\n private _val: Vector2;\r\n\r\n get val(): Vector2 {\r\n return this._val;\r\n }\r\n\r\n set val(v: Vector2) {\r\n if (Vector2.Equal(v, this._val)) return;\r\n\r\n this._val = v;\r\n this.onChangeCallback();\r\n }\r\n\r\n public setValQuietly(val: Vector2) {\r\n this._val = val;\r\n }\r\n\r\n private onChangeCallback: () => void;\r\n\r\n constructor(initialValue: Vector2, onChangeCallback: () => void) {\r\n this._val = initialValue;\r\n this.onChangeCallback = onChangeCallback;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,30 @@
1
+ import { Vector2 } from "../ValueObjects";
2
+ import { MemoizedVector2 } from "./MemoizedVector2";
3
+ test("Initial value is stored", () => {
4
+ const initialVec = new Vector2(5, 6);
5
+ const memoizedVector = new MemoizedVector2(initialVec, jest.fn());
6
+ expect(memoizedVector.val).toEqual(new Vector2(5, 6));
7
+ });
8
+ test("Callback is called when the val changes", () => {
9
+ const cb = jest.fn();
10
+ const initialVec = new Vector2(5, 6);
11
+ const memoizedVector = new MemoizedVector2(initialVec, cb);
12
+ memoizedVector.val = new Vector2(8, 9);
13
+ expect(cb).toBeCalled();
14
+ });
15
+ test("Callback is called only when the val changes", () => {
16
+ const cb = jest.fn();
17
+ const initialVec = new Vector2(5, 6);
18
+ const memoizedVector = new MemoizedVector2(initialVec, cb);
19
+ memoizedVector.val = new Vector2(5, 6);
20
+ memoizedVector.val = new Vector2(5, 6);
21
+ memoizedVector.val = new Vector2(5, 6);
22
+ expect(cb).not.toBeCalled();
23
+ });
24
+ test("Setting the value quietly should not notify", () => {
25
+ const cb = jest.fn();
26
+ const memoizedBoolean = new MemoizedVector2(Vector2.One(), cb);
27
+ memoizedBoolean.setValQuietly(Vector2.Zero());
28
+ expect(cb).not.toBeCalled();
29
+ });
30
+ //# sourceMappingURL=MemoizedVector2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedVector2.test.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedVector2.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3D,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3D,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAE/D,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC","sourcesContent":["import { Vector2 } from \"../ValueObjects\";\r\nimport { MemoizedVector2 } from \"./MemoizedVector2\";\r\n\r\ntest(\"Initial value is stored\", () => {\r\n const initialVec = new Vector2(5, 6);\r\n const memoizedVector = new MemoizedVector2(initialVec, jest.fn());\r\n expect(memoizedVector.val).toEqual(new Vector2(5, 6));\r\n});\r\n\r\ntest(\"Callback is called when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialVec = new Vector2(5, 6);\r\n const memoizedVector = new MemoizedVector2(initialVec, cb);\r\n\r\n memoizedVector.val = new Vector2(8, 9);\r\n\r\n expect(cb).toBeCalled();\r\n});\r\n\r\ntest(\"Callback is called only when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialVec = new Vector2(5, 6);\r\n const memoizedVector = new MemoizedVector2(initialVec, cb);\r\n\r\n memoizedVector.val = new Vector2(5, 6);\r\n memoizedVector.val = new Vector2(5, 6);\r\n memoizedVector.val = new Vector2(5, 6);\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\ntest(\"Setting the value quietly should not notify\", () => {\r\n const cb = jest.fn();\r\n const memoizedBoolean = new MemoizedVector2(Vector2.One(), cb);\r\n\r\n memoizedBoolean.setValQuietly(Vector2.Zero());\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n"]}
@@ -0,0 +1,20 @@
1
+ import { Vector3 } from "../ValueObjects";
2
+ export class MemoizedVector3 {
3
+ get val() {
4
+ return this._val;
5
+ }
6
+ set val(v) {
7
+ if (Vector3.Equal(v, this._val))
8
+ return;
9
+ this._val = v;
10
+ this.onChangeCallback();
11
+ }
12
+ setValQuietly(val) {
13
+ this._val = val;
14
+ }
15
+ constructor(initialValue, onChangeCallback) {
16
+ this._val = initialValue;
17
+ this.onChangeCallback = onChangeCallback;
18
+ }
19
+ }
20
+ //# sourceMappingURL=MemoizedVector3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedVector3.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedVector3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,OAAO,eAAe;IAG1B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,CAAU;QAChB,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAExC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,GAAY;QAC/B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAID,YAAY,YAAqB,EAAE,gBAA4B;QAC7D,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF","sourcesContent":["import { Vector3 } from \"../ValueObjects\";\r\n\r\nexport class MemoizedVector3 {\r\n private _val: Vector3;\r\n\r\n get val(): Vector3 {\r\n return this._val;\r\n }\r\n\r\n set val(v: Vector3) {\r\n if (Vector3.Equal(v, this._val)) return;\r\n\r\n this._val = v;\r\n this.onChangeCallback();\r\n }\r\n\r\n public setValQuietly(val: Vector3) {\r\n this._val = val;\r\n }\r\n\r\n private onChangeCallback: () => void;\r\n\r\n constructor(initialValue: Vector3, onChangeCallback: () => void) {\r\n this._val = initialValue;\r\n this.onChangeCallback = onChangeCallback;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,30 @@
1
+ import { Vector3 } from "../ValueObjects";
2
+ import { MemoizedVector3 } from "./MemoizedVector3";
3
+ test("Initial value is stored", () => {
4
+ const initialVec = new Vector3(5, 6, 7);
5
+ const memoizedVector = new MemoizedVector3(initialVec, jest.fn());
6
+ expect(memoizedVector.val).toEqual(new Vector3(5, 6, 7));
7
+ });
8
+ test("Callback is called when the val changes", () => {
9
+ const cb = jest.fn();
10
+ const initialVec = new Vector3(5, 6, 7);
11
+ const memoizedVector = new MemoizedVector3(initialVec, cb);
12
+ memoizedVector.val = new Vector3(8, 9, 10);
13
+ expect(cb).toBeCalled();
14
+ });
15
+ test("Callback is called only when the val changes", () => {
16
+ const cb = jest.fn();
17
+ const initialVec = new Vector3(5, 6, 7);
18
+ const memoizedVector = new MemoizedVector3(initialVec, cb);
19
+ memoizedVector.val = new Vector3(5, 6, 7);
20
+ memoizedVector.val = new Vector3(5, 6, 7);
21
+ memoizedVector.val = new Vector3(5, 6, 7);
22
+ expect(cb).not.toBeCalled();
23
+ });
24
+ test("Setting the value quietly should not notify", () => {
25
+ const cb = jest.fn();
26
+ const memoizedBoolean = new MemoizedVector3(Vector3.One(), cb);
27
+ memoizedBoolean.setValQuietly(Vector3.Zero());
28
+ expect(cb).not.toBeCalled();
29
+ });
30
+ //# sourceMappingURL=MemoizedVector3.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoizedVector3.test.js","sourceRoot":"","sources":["../../../src/Entities/MemoizedVector3.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3D,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3C,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,eAAe,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3D,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,cAAc,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAE/D,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC","sourcesContent":["import { Vector3 } from \"../ValueObjects\";\r\nimport { MemoizedVector3 } from \"./MemoizedVector3\";\r\n\r\ntest(\"Initial value is stored\", () => {\r\n const initialVec = new Vector3(5, 6, 7);\r\n const memoizedVector = new MemoizedVector3(initialVec, jest.fn());\r\n expect(memoizedVector.val).toEqual(new Vector3(5, 6, 7));\r\n});\r\n\r\ntest(\"Callback is called when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialVec = new Vector3(5, 6, 7);\r\n const memoizedVector = new MemoizedVector3(initialVec, cb);\r\n\r\n memoizedVector.val = new Vector3(8, 9, 10);\r\n\r\n expect(cb).toBeCalled();\r\n});\r\n\r\ntest(\"Callback is called only when the val changes\", () => {\r\n const cb = jest.fn();\r\n const initialVec = new Vector3(5, 6, 7);\r\n const memoizedVector = new MemoizedVector3(initialVec, cb);\r\n\r\n memoizedVector.val = new Vector3(5, 6, 7);\r\n memoizedVector.val = new Vector3(5, 6, 7);\r\n memoizedVector.val = new Vector3(5, 6, 7);\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\ntest(\"Setting the value quietly should not notify\", () => {\r\n const cb = jest.fn();\r\n const memoizedBoolean = new MemoizedVector3(Vector3.One(), cb);\r\n\r\n memoizedBoolean.setValQuietly(Vector3.Zero());\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n"]}
@@ -0,0 +1,16 @@
1
+ import { ObserverList } from "./ObserverList";
2
+ export class ObservableEntity {
3
+ constructor() {
4
+ this.observerList = new ObserverList();
5
+ this.addObserver = (observer) => {
6
+ this.observerList.add(observer);
7
+ };
8
+ this.removeObserver = (observer) => {
9
+ this.observerList.remove(observer);
10
+ };
11
+ this.notify = () => {
12
+ this.observerList.notify();
13
+ };
14
+ }
15
+ }
16
+ //# sourceMappingURL=ObservableEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservableEntity.js","sourceRoot":"","sources":["../../../src/Entities/ObservableEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,MAAM,OAAgB,gBAAgB;IAAtC;QACU,iBAAY,GAAG,IAAI,YAAY,EAAQ,CAAC;QAEhD,gBAAW,GAAG,CAAC,QAAwB,EAAQ,EAAE;YAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;QACF,mBAAc,GAAG,CAAC,QAAwB,EAAQ,EAAE;YAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;QACF,WAAM,GAAG,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC,CAAC;IACJ,CAAC;CAAA","sourcesContent":["import { ObserverList } from \"./ObserverList\";\r\n\r\nexport type EntityObserver = () => void;\r\n\r\nexport abstract class ObservableEntity {\r\n private observerList = new ObserverList<void>();\r\n\r\n addObserver = (observer: EntityObserver): void => {\r\n this.observerList.add(observer);\r\n };\r\n removeObserver = (observer: EntityObserver): void => {\r\n this.observerList.remove(observer);\r\n };\r\n notify = () => {\r\n this.observerList.notify();\r\n };\r\n}\r\n"]}
@@ -0,0 +1,23 @@
1
+ import { ObservableEntity } from "./ObservableEntity";
2
+ class ObservableEntityImp extends ObservableEntity {
3
+ }
4
+ function makeTestRig() {
5
+ const observableEntity = new ObservableEntityImp();
6
+ const observer = jest.fn();
7
+ observableEntity.addObserver(observer);
8
+ return { observableEntity, observer };
9
+ }
10
+ describe("Abstract Observable Entity", () => {
11
+ it("Notifies", () => {
12
+ const { observer, observableEntity } = makeTestRig();
13
+ observableEntity.notify();
14
+ expect(observer).toBeCalled();
15
+ });
16
+ it("Removes an observer", () => {
17
+ const { observer, observableEntity } = makeTestRig();
18
+ observableEntity.removeObserver(observer);
19
+ observableEntity.notify();
20
+ expect(observer).not.toBeCalled();
21
+ });
22
+ });
23
+ //# sourceMappingURL=ObservableEntity.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservableEntity.test.js","sourceRoot":"","sources":["../../../src/Entities/ObservableEntity.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,mBAAoB,SAAQ,gBAAgB;CAAG;AAErD,SAAS,WAAW;IAClB,MAAM,gBAAgB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEvC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACxC,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;QAClB,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QACrD,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAE1B,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QACrD,gBAAgB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1C,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAE1B,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { ObservableEntity } from \"./ObservableEntity\";\r\n\r\nclass ObservableEntityImp extends ObservableEntity {}\r\n\r\nfunction makeTestRig() {\r\n const observableEntity = new ObservableEntityImp();\r\n const observer = jest.fn();\r\n observableEntity.addObserver(observer);\r\n\r\n return { observableEntity, observer };\r\n}\r\n\r\ndescribe(\"Abstract Observable Entity\", () => {\r\n it(\"Notifies\", () => {\r\n const { observer, observableEntity } = makeTestRig();\r\n observableEntity.notify();\r\n\r\n expect(observer).toBeCalled();\r\n });\r\n\r\n it(\"Removes an observer\", () => {\r\n const { observer, observableEntity } = makeTestRig();\r\n observableEntity.removeObserver(observer);\r\n observableEntity.notify();\r\n\r\n expect(observer).not.toBeCalled();\r\n });\r\n});\r\n"]}
@@ -0,0 +1,23 @@
1
+ export class ObserverList {
2
+ constructor() {
3
+ this.observers = [];
4
+ this.notify = (msg) => {
5
+ this.observers.forEach((obs) => {
6
+ obs(msg);
7
+ });
8
+ };
9
+ this.add = (obs) => {
10
+ this.observers.push(obs);
11
+ };
12
+ this.remove = (obs) => {
13
+ const index = this.observers.indexOf(obs);
14
+ if (index >= 0) {
15
+ this.observers.splice(index, 1);
16
+ }
17
+ };
18
+ this.clear = () => {
19
+ this.observers = [];
20
+ };
21
+ }
22
+ }
23
+ //# sourceMappingURL=ObserverList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObserverList.js","sourceRoot":"","sources":["../../../src/Entities/ObserverList.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAyB,EAAE,CAAC;QAEtC,WAAM,GAAG,CAAC,GAAM,EAAE,EAAE;YACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,GAAG,CAAC,GAAG,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC,CAAA;QAEM,QAAG,GAAG,CAAC,GAAqB,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAA;QAEM,WAAM,GAAG,CAAC,GAAqB,EAAE,EAAE;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAA;QAEM,UAAK,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC,CAAA;IACH,CAAC;CAAA","sourcesContent":["export class ObserverList<T> {\r\n private observers: ((msg: T) => void)[] = [];\r\n\r\n public notify = (msg: T) => {\r\n this.observers.forEach((obs) => {\r\n obs(msg);\r\n });\r\n }\r\n\r\n public add = (obs: (msg: T) => void) => {\r\n this.observers.push(obs);\r\n }\r\n\r\n public remove = (obs: (msg: T) => void) => {\r\n const index = this.observers.indexOf(obs);\r\n if (index >= 0) {\r\n this.observers.splice(index, 1);\r\n }\r\n }\r\n\r\n public clear = () => {\r\n this.observers = [];\r\n }\r\n}\r\n"]}
@@ -0,0 +1,42 @@
1
+ import { ObserverList } from "./ObserverList";
2
+ test("An observer that recieves nothing", () => {
3
+ const observers = new ObserverList();
4
+ const obs = jest.fn();
5
+ observers.add(obs);
6
+ observers.notify();
7
+ expect(obs).toBeCalled();
8
+ });
9
+ test("An observer that recieves a string", () => {
10
+ const observers = new ObserverList();
11
+ const obs = jest.fn();
12
+ observers.add(obs);
13
+ observers.notify("!yolo");
14
+ expect(obs).toBeCalledWith("!yolo");
15
+ });
16
+ test("An observer that recieves a number", () => {
17
+ const observers = new ObserverList();
18
+ const obs = jest.fn();
19
+ observers.add(obs);
20
+ observers.notify(55);
21
+ expect(obs).toBeCalledWith(55);
22
+ });
23
+ test("Observer can be removed", () => {
24
+ const observers = new ObserverList();
25
+ const obs = jest.fn();
26
+ observers.add(obs);
27
+ observers.notify();
28
+ expect(obs).toBeCalled();
29
+ obs.mockClear();
30
+ observers.remove(obs);
31
+ observers.notify();
32
+ expect(obs).not.toBeCalled();
33
+ });
34
+ test("Clearing the oberver list", () => {
35
+ const observers = new ObserverList();
36
+ const obs = jest.fn();
37
+ observers.add(obs);
38
+ observers.clear();
39
+ observers.notify();
40
+ expect(obs).not.toBeCalled();
41
+ });
42
+ //# sourceMappingURL=ObserverList.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObserverList.test.js","sourceRoot":"","sources":["../../../src/Entities/ObserverList.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC7C,MAAM,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC9C,MAAM,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1B,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC9C,MAAM,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAErB,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,MAAM,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAEzB,GAAG,CAAC,SAAS,EAAE,CAAC;IAChB,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,GAAE,EAAE;IACpC,MAAM,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAEtB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnB,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,SAAS,CAAC,MAAM,EAAE,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAA","sourcesContent":["import { ObserverList } from \"./ObserverList\";\r\n\r\ntest(\"An observer that recieves nothing\", () => {\r\n const observers = new ObserverList<void>();\r\n const obs = jest.fn();\r\n\r\n observers.add(obs);\r\n observers.notify();\r\n\r\n expect(obs).toBeCalled();\r\n});\r\n\r\ntest(\"An observer that recieves a string\", () => {\r\n const observers = new ObserverList<string>();\r\n const obs = jest.fn();\r\n\r\n observers.add(obs);\r\n observers.notify(\"!yolo\");\r\n\r\n expect(obs).toBeCalledWith(\"!yolo\");\r\n});\r\n\r\ntest(\"An observer that recieves a number\", () => {\r\n const observers = new ObserverList<number>();\r\n const obs = jest.fn();\r\n\r\n observers.add(obs);\r\n\r\n observers.notify(55);\r\n\r\n expect(obs).toBeCalledWith(55);\r\n});\r\n\r\ntest(\"Observer can be removed\", () => {\r\n const observers = new ObserverList<void>();\r\n const obs = jest.fn();\r\n\r\n observers.add(obs);\r\n observers.notify();\r\n\r\n expect(obs).toBeCalled();\r\n\r\n obs.mockClear();\r\n observers.remove(obs);\r\n observers.notify();\r\n\r\n expect(obs).not.toBeCalled();\r\n});\r\n\r\ntest(\"Clearing the oberver list\", ()=>{\r\n const observers = new ObserverList<void>();\r\n const obs = jest.fn();\r\n\r\n observers.add(obs);\r\n\r\n observers.clear();\r\n\r\n observers.notify();\r\n\r\n expect(obs).not.toBeCalled();\r\n})\r\n"]}
@@ -0,0 +1,32 @@
1
+ export class RangedNumber {
2
+ get val() {
3
+ return this._val;
4
+ }
5
+ set val(x) {
6
+ const y = this.clamp(x);
7
+ if (this._val === y)
8
+ return;
9
+ this._val = y;
10
+ this.onChangeCallback();
11
+ }
12
+ setValQuietly(val) {
13
+ this._val = this.clamp(val);
14
+ }
15
+ clamp(x) {
16
+ let rVal = x;
17
+ if (x > this.maxValue) {
18
+ rVal = this.maxValue;
19
+ }
20
+ else if (x < this.minValue) {
21
+ rVal = this.minValue;
22
+ }
23
+ return rVal;
24
+ }
25
+ constructor(props, onChangeCallback) {
26
+ this.maxValue = props.max;
27
+ this.minValue = props.min;
28
+ this._val = this.clamp(props.initialValue);
29
+ this.onChangeCallback = onChangeCallback;
30
+ }
31
+ }
32
+ //# sourceMappingURL=RangedNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangedNumber.js","sourceRoot":"","sources":["../../../src/Entities/RangedNumber.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,YAAY;IAIvB,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,GAAG,CAAC,CAAS;QACf,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAE5B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEM,aAAa,CAAC,GAAW;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,CAAS;QACrB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;aAAM,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,YAAY,KAA6B,EAAE,gBAA4B;QACrE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;CACF","sourcesContent":["export interface RangedNumberProperties {\r\n min: number;\r\n max: number;\r\n initialValue: number;\r\n}\r\n\r\nexport class RangedNumber {\r\n public readonly maxValue: number;\r\n public readonly minValue: number;\r\n private _val: number;\r\n get val(): number {\r\n return this._val;\r\n }\r\n set val(x: number) {\r\n const y = this.clamp(x);\r\n if (this._val === y) return;\r\n\r\n this._val = y;\r\n this.onChangeCallback();\r\n }\r\n\r\n public setValQuietly(val: number) {\r\n this._val = this.clamp(val);\r\n }\r\n\r\n private clamp(x: number): number {\r\n let rVal = x;\r\n if (x > this.maxValue) {\r\n rVal = this.maxValue;\r\n } else if (x < this.minValue) {\r\n rVal = this.minValue;\r\n }\r\n\r\n return rVal;\r\n }\r\n private onChangeCallback: () => void;\r\n\r\n constructor(props: RangedNumberProperties, onChangeCallback: () => void) {\r\n this.maxValue = props.max;\r\n this.minValue = props.min;\r\n\r\n this._val = this.clamp(props.initialValue);\r\n this.onChangeCallback = onChangeCallback;\r\n }\r\n}\r\n"]}
@@ -0,0 +1,94 @@
1
+ import { RangedNumber } from "./RangedNumber";
2
+ it("Stores the initial value", () => {
3
+ const props = {
4
+ initialValue: 5,
5
+ max: 10,
6
+ min: 1,
7
+ };
8
+ const memoizedNumber = new RangedNumber(props, jest.fn());
9
+ expect(memoizedNumber.val).toEqual(5);
10
+ });
11
+ it("Clamps the initial value", () => {
12
+ const props = {
13
+ initialValue: 50,
14
+ max: 10,
15
+ min: 1,
16
+ };
17
+ const memoizedNumber = new RangedNumber(props, jest.fn());
18
+ expect(memoizedNumber.val).toEqual(10);
19
+ });
20
+ it("Clamps the value", () => {
21
+ const props = {
22
+ initialValue: 5,
23
+ max: 10,
24
+ min: 1,
25
+ };
26
+ const memoizedNumber = new RangedNumber(props, jest.fn());
27
+ expect(memoizedNumber.val).toEqual(5);
28
+ memoizedNumber.val = 11;
29
+ expect(memoizedNumber.val).toEqual(10);
30
+ memoizedNumber.val = 0;
31
+ expect(memoizedNumber.val).toEqual(1);
32
+ });
33
+ it("Triggers the callback when something changes", () => {
34
+ const cb = jest.fn();
35
+ const props = {
36
+ initialValue: 5,
37
+ max: 10,
38
+ min: 1,
39
+ };
40
+ const memoizedNumber = new RangedNumber(props, cb);
41
+ expect(cb).not.toBeCalled();
42
+ memoizedNumber.val = 6;
43
+ expect(cb).toBeCalled();
44
+ });
45
+ it("Only triggers the CB when something changes", () => {
46
+ const cb = jest.fn();
47
+ const props = {
48
+ initialValue: 5,
49
+ max: 10,
50
+ min: 1,
51
+ };
52
+ const memoizedNumber = new RangedNumber(props, cb);
53
+ memoizedNumber.val = 5;
54
+ memoizedNumber.val = 5;
55
+ memoizedNumber.val = 5;
56
+ expect(cb).not.toBeCalled();
57
+ });
58
+ it("Checks the clamped value before triggering", () => {
59
+ const cb = jest.fn();
60
+ const props = {
61
+ initialValue: 10,
62
+ max: 10,
63
+ min: 1,
64
+ };
65
+ const memoizedNumber = new RangedNumber(props, cb);
66
+ memoizedNumber.val = 11;
67
+ memoizedNumber.val = 12;
68
+ memoizedNumber.val = 13;
69
+ expect(cb).not.toBeCalled();
70
+ });
71
+ it("Does not notify if set quietly", () => {
72
+ const cb = jest.fn();
73
+ const props = {
74
+ initialValue: 5,
75
+ max: 10,
76
+ min: 1,
77
+ };
78
+ const memoizedNumber = new RangedNumber(props, cb);
79
+ memoizedNumber.setValQuietly(6);
80
+ expect(memoizedNumber.val).toEqual(6);
81
+ expect(cb).not.toBeCalled();
82
+ });
83
+ it("Setting quietly is clamped", () => {
84
+ const cb = jest.fn();
85
+ const props = {
86
+ initialValue: 5,
87
+ max: 10,
88
+ min: 1,
89
+ };
90
+ const memoizedNumber = new RangedNumber(props, cb);
91
+ memoizedNumber.setValQuietly(-1);
92
+ expect(memoizedNumber.val).toEqual(1);
93
+ });
94
+ //# sourceMappingURL=RangedNumber.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangedNumber.test.js","sourceRoot":"","sources":["../../../src/Entities/RangedNumber.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAEtE,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC1B,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAE1D,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtC,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEvC,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;IACvB,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAErB,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAE5B,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;IACvB,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;IACvB,cAAc,CAAC,GAAG,GAAG,CAAC,CAAC;IAEvB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,EAAE;QAChB,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IACxB,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IACxB,cAAc,CAAC,GAAG,GAAG,EAAE,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;IACxC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAEhC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,MAAM,KAAK,GAA2B;QACpC,YAAY,EAAE,CAAC;QACf,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,CAAC;KACP,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnD,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC","sourcesContent":["import { RangedNumber, RangedNumberProperties } from \"./RangedNumber\";\r\n\r\nit(\"Stores the initial value\", () => {\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n\r\n const memoizedNumber = new RangedNumber(props, jest.fn());\r\n expect(memoizedNumber.val).toEqual(5);\r\n});\r\n\r\nit(\"Clamps the initial value\", () => {\r\n const props: RangedNumberProperties = {\r\n initialValue: 50,\r\n max: 10,\r\n min: 1,\r\n };\r\n\r\n const memoizedNumber = new RangedNumber(props, jest.fn());\r\n expect(memoizedNumber.val).toEqual(10);\r\n});\r\n\r\nit(\"Clamps the value\", () => {\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n\r\n const memoizedNumber = new RangedNumber(props, jest.fn());\r\n\r\n expect(memoizedNumber.val).toEqual(5);\r\n\r\n memoizedNumber.val = 11;\r\n expect(memoizedNumber.val).toEqual(10);\r\n\r\n memoizedNumber.val = 0;\r\n expect(memoizedNumber.val).toEqual(1);\r\n});\r\n\r\nit(\"Triggers the callback when something changes\", () => {\r\n const cb = jest.fn();\r\n\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n const memoizedNumber = new RangedNumber(props, cb);\r\n\r\n expect(cb).not.toBeCalled();\r\n\r\n memoizedNumber.val = 6;\r\n\r\n expect(cb).toBeCalled();\r\n});\r\n\r\nit(\"Only triggers the CB when something changes\", () => {\r\n const cb = jest.fn();\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n const memoizedNumber = new RangedNumber(props, cb);\r\n\r\n memoizedNumber.val = 5;\r\n memoizedNumber.val = 5;\r\n memoizedNumber.val = 5;\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\nit(\"Checks the clamped value before triggering\", () => {\r\n const cb = jest.fn();\r\n const props: RangedNumberProperties = {\r\n initialValue: 10,\r\n max: 10,\r\n min: 1,\r\n };\r\n const memoizedNumber = new RangedNumber(props, cb);\r\n\r\n memoizedNumber.val = 11;\r\n memoizedNumber.val = 12;\r\n memoizedNumber.val = 13;\r\n\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\nit(\"Does not notify if set quietly\", () => {\r\n const cb = jest.fn();\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n const memoizedNumber = new RangedNumber(props, cb);\r\n\r\n memoizedNumber.setValQuietly(6);\r\n\r\n expect(memoizedNumber.val).toEqual(6);\r\n expect(cb).not.toBeCalled();\r\n});\r\n\r\nit(\"Setting quietly is clamped\", () => {\r\n const cb = jest.fn();\r\n const props: RangedNumberProperties = {\r\n initialValue: 5,\r\n max: 10,\r\n min: 1,\r\n };\r\n const memoizedNumber = new RangedNumber(props, cb);\r\n\r\n memoizedNumber.setValQuietly(-1);\r\n expect(memoizedNumber.val).toEqual(1);\r\n});\r\n"]}
@@ -1,11 +1,12 @@
1
- export * from "./MemoizedAngle";
2
- export * from "./MemoizedBoolean";
3
- export * from "./MemoizedColor";
4
- export * from "./MemoizedNumber";
5
- export * from "./MemoizedQuaternion";
6
- export * from "./MemoizedString";
7
- export * from "./MemoizedVector2";
8
- export * from "./MemoizedVector3";
9
- export * from "./ObservableEntity";
10
- export * from "./ObserverList";
11
- export * from "./RangedNumber";
1
+ export * from "./MemoizedAngle";
2
+ export * from "./MemoizedBoolean";
3
+ export * from "./MemoizedColor";
4
+ export * from "./MemoizedNumber";
5
+ export * from "./MemoizedQuaternion";
6
+ export * from "./MemoizedString";
7
+ export * from "./MemoizedVector2";
8
+ export * from "./MemoizedVector3";
9
+ export * from "./ObservableEntity";
10
+ export * from "./ObserverList";
11
+ export * from "./RangedNumber";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC","sourcesContent":["export * from \"./MemoizedAngle\";\r\nexport * from \"./MemoizedBoolean\";\r\nexport * from \"./MemoizedColor\";\r\nexport * from \"./MemoizedNumber\";\r\nexport * from \"./MemoizedQuaternion\";\r\nexport * from \"./MemoizedString\";\r\nexport * from \"./MemoizedVector2\";\r\nexport * from \"./MemoizedVector3\";\r\nexport * from \"./ObservableEntity\";\r\nexport * from \"./ObserverList\";\r\nexport * from \"./RangedNumber\";\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AppBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppBoundary.js","sourceRoot":"","sources":["../../../src/Types/AppBoundary.ts"],"names":[],"mappings":"","sourcesContent":["export type Handler = (request: Request) => void;\r\n\r\nexport interface Request {\r\n type: string;\r\n version: number;\r\n payload?: unknown;\r\n}\r\n\r\n// tslint:disable-next-line: class-name\r\nexport interface VIVEDApp_3 {\r\n mount(hostRequestHandler: Handler): Handler;\r\n mountDev(container: HTMLElement): void;\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=EaseFn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EaseFn.js","sourceRoot":"","sources":["../../../src/Types/EaseFn.ts"],"names":[],"mappings":"","sourcesContent":["export type EaseFn = (p: number) => number;"]}