@vived/host 4.0.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js +6 -0
  2. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  3. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +37 -0
  4. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -0
  5. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js +55 -0
  6. package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js.map +1 -0
  7. package/dist/cjs/Assets/Factories/setupAssetsForSandbox.js +1 -0
  8. package/dist/cjs/Assets/Factories/setupAssetsForSandbox.js.map +1 -1
  9. package/dist/cjs/Assets/Mocks/MockNewAssetUC.js +16 -0
  10. package/dist/cjs/Assets/Mocks/MockNewAssetUC.js.map +1 -0
  11. package/dist/cjs/Assets/Mocks/index.js +1 -0
  12. package/dist/cjs/Assets/Mocks/index.js.map +1 -1
  13. package/dist/cjs/Assets/UCs/NewAppAssetUC.js.map +1 -1
  14. package/dist/cjs/Assets/UCs/NewAppAssetUC.test.js.map +1 -1
  15. package/dist/cjs/Assets/UCs/NewAssetUC.js +53 -0
  16. package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -0
  17. package/dist/cjs/Assets/UCs/NewAssetUC.test.js +104 -0
  18. package/dist/cjs/Assets/UCs/NewAssetUC.test.js.map +1 -0
  19. package/dist/cjs/Assets/UCs/index.js +1 -0
  20. package/dist/cjs/Assets/UCs/index.js.map +1 -1
  21. package/dist/cjs/Dialog/Entities/Alert.js +2 -0
  22. package/dist/cjs/Dialog/Entities/Alert.js.map +1 -1
  23. package/dist/cjs/Dialog/Entities/Alert.test.js +6 -0
  24. package/dist/cjs/Dialog/Entities/Alert.test.js.map +1 -1
  25. package/dist/cjs/Dialog/Entities/Confirm.js +3 -0
  26. package/dist/cjs/Dialog/Entities/Confirm.js.map +1 -1
  27. package/dist/cjs/Dialog/Entities/Confirm.test.js +12 -0
  28. package/dist/cjs/Dialog/Entities/Confirm.test.js.map +1 -1
  29. package/dist/cjs/Dialog/Entities/DialogQueue.js +16 -3
  30. package/dist/cjs/Dialog/Entities/DialogQueue.js.map +1 -1
  31. package/dist/cjs/Dialog/Entities/DialogQueue.test.js +21 -0
  32. package/dist/cjs/Dialog/Entities/DialogQueue.test.js.map +1 -1
  33. package/dist/cjs/Dialog/Entities/MarkDownEditor.js +3 -0
  34. package/dist/cjs/Dialog/Entities/MarkDownEditor.js.map +1 -1
  35. package/dist/cjs/Dialog/Entities/MarkDownEditor.test.js +12 -0
  36. package/dist/cjs/Dialog/Entities/MarkDownEditor.test.js.map +1 -1
  37. package/dist/cjs/Dialog/Entities/SelectModel.js +1 -0
  38. package/dist/cjs/Dialog/Entities/SelectModel.js.map +1 -1
  39. package/dist/cjs/Dialog/Entities/Spinner.js +2 -0
  40. package/dist/cjs/Dialog/Entities/Spinner.js.map +1 -1
  41. package/dist/cjs/Dialog/Entities/Spinner.test.js +17 -0
  42. package/dist/cjs/Dialog/Entities/Spinner.test.js.map +1 -1
  43. package/dist/cjs/Handler/setupStandardHostHandlers.js +1 -0
  44. package/dist/cjs/Handler/setupStandardHostHandlers.js.map +1 -1
  45. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.js +24 -0
  46. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.js.map +1 -0
  47. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.test.js +49 -0
  48. package/dist/cjs/StateMachine/Adapters/hostStateAdapter.test.js.map +1 -0
  49. package/dist/cjs/StateMachine/Adapters/index.js +1 -0
  50. package/dist/cjs/StateMachine/Adapters/index.js.map +1 -1
  51. package/dist/cjs/StateMachine/Controllers/editStateName.js +13 -0
  52. package/dist/cjs/StateMachine/Controllers/editStateName.js.map +1 -0
  53. package/dist/cjs/StateMachine/Controllers/editStateName.test.js +49 -0
  54. package/dist/cjs/StateMachine/Controllers/editStateName.test.js.map +1 -0
  55. package/dist/cjs/StateMachine/Controllers/index.js +1 -0
  56. package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
  57. package/dist/cjs/StateMachine/Entities/HostStateMachine.js +67 -24
  58. package/dist/cjs/StateMachine/Entities/HostStateMachine.js.map +1 -1
  59. package/dist/cjs/StateMachine/Entities/HostStateMachine.test.js +174 -0
  60. package/dist/cjs/StateMachine/Entities/HostStateMachine.test.js.map +1 -1
  61. package/dist/cjs/StateMachine/Mocks/MockEditStateNameUC.js +12 -0
  62. package/dist/cjs/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -0
  63. package/dist/cjs/StateMachine/Mocks/MockHostStatePM.js +23 -0
  64. package/dist/cjs/StateMachine/Mocks/MockHostStatePM.js.map +1 -0
  65. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.js +21 -15
  66. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
  67. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.test.js +65 -56
  68. package/dist/cjs/StateMachine/PMs/HostStateMachinePM.test.js.map +1 -1
  69. package/dist/cjs/StateMachine/PMs/HostStatePM.js +136 -0
  70. package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -0
  71. package/dist/cjs/StateMachine/PMs/HostStatePM.test.js +405 -0
  72. package/dist/cjs/StateMachine/PMs/HostStatePM.test.js.map +1 -0
  73. package/dist/cjs/StateMachine/PMs/index.js +1 -0
  74. package/dist/cjs/StateMachine/PMs/index.js.map +1 -1
  75. package/dist/cjs/StateMachine/UCs/EditStateNameUC.js +35 -0
  76. package/dist/cjs/StateMachine/UCs/EditStateNameUC.js.map +1 -0
  77. package/dist/cjs/StateMachine/UCs/EditStateNameUC.test.js +58 -0
  78. package/dist/cjs/StateMachine/UCs/EditStateNameUC.test.js.map +1 -0
  79. package/dist/cjs/StateMachine/UCs/index.js +1 -0
  80. package/dist/cjs/StateMachine/UCs/index.js.map +1 -1
  81. package/dist/cjs/VivedAPI/Mocks/MockSignedAuthToken.js +1 -2
  82. package/dist/cjs/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
  83. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js +1 -1
  84. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  85. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js +2 -2
  86. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js.map +1 -1
  87. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.js +1 -1
  88. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
  89. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.test.js +2 -2
  90. package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.test.js.map +1 -1
  91. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js +1 -1
  92. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
  93. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js +2 -2
  94. package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js.map +1 -1
  95. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.js +1 -1
  96. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
  97. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.test.js +2 -2
  98. package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.test.js.map +1 -1
  99. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.js +1 -1
  100. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
  101. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js +2 -2
  102. package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js.map +1 -1
  103. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.js +1 -1
  104. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
  105. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.test.js +2 -2
  106. package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.test.js.map +1 -1
  107. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.js +2 -3
  108. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.js.map +1 -1
  109. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.test.js +2 -2
  110. package/dist/cjs/VivedAPI/UCs/PatchAssetUC.test.js.map +1 -1
  111. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js +2 -3
  112. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  113. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.test.js +2 -2
  114. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.test.js.map +1 -1
  115. package/dist/cjs/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  116. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js +6 -0
  117. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  118. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +34 -0
  119. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -0
  120. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js +53 -0
  121. package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.js.map +1 -0
  122. package/dist/esm/Assets/Factories/setupAssetsForSandbox.js +2 -1
  123. package/dist/esm/Assets/Factories/setupAssetsForSandbox.js.map +1 -1
  124. package/dist/esm/Assets/Mocks/MockNewAssetUC.js +11 -0
  125. package/dist/esm/Assets/Mocks/MockNewAssetUC.js.map +1 -0
  126. package/dist/esm/Assets/Mocks/index.js +1 -0
  127. package/dist/esm/Assets/Mocks/index.js.map +1 -1
  128. package/dist/esm/Assets/UCs/NewAppAssetUC.js.map +1 -1
  129. package/dist/esm/Assets/UCs/NewAppAssetUC.test.js.map +1 -1
  130. package/dist/esm/Assets/UCs/NewAssetUC.js +48 -0
  131. package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -0
  132. package/dist/esm/Assets/UCs/NewAssetUC.test.js +102 -0
  133. package/dist/esm/Assets/UCs/NewAssetUC.test.js.map +1 -0
  134. package/dist/esm/Assets/UCs/index.js +1 -0
  135. package/dist/esm/Assets/UCs/index.js.map +1 -1
  136. package/dist/esm/Dialog/Entities/Alert.js +2 -0
  137. package/dist/esm/Dialog/Entities/Alert.js.map +1 -1
  138. package/dist/esm/Dialog/Entities/Alert.test.js +6 -0
  139. package/dist/esm/Dialog/Entities/Alert.test.js.map +1 -1
  140. package/dist/esm/Dialog/Entities/Confirm.js +3 -0
  141. package/dist/esm/Dialog/Entities/Confirm.js.map +1 -1
  142. package/dist/esm/Dialog/Entities/Confirm.test.js +12 -0
  143. package/dist/esm/Dialog/Entities/Confirm.test.js.map +1 -1
  144. package/dist/esm/Dialog/Entities/DialogQueue.js +17 -4
  145. package/dist/esm/Dialog/Entities/DialogQueue.js.map +1 -1
  146. package/dist/esm/Dialog/Entities/DialogQueue.test.js +21 -0
  147. package/dist/esm/Dialog/Entities/DialogQueue.test.js.map +1 -1
  148. package/dist/esm/Dialog/Entities/MarkDownEditor.js +3 -0
  149. package/dist/esm/Dialog/Entities/MarkDownEditor.js.map +1 -1
  150. package/dist/esm/Dialog/Entities/MarkDownEditor.test.js +12 -0
  151. package/dist/esm/Dialog/Entities/MarkDownEditor.test.js.map +1 -1
  152. package/dist/esm/Dialog/Entities/SelectModel.js +1 -0
  153. package/dist/esm/Dialog/Entities/SelectModel.js.map +1 -1
  154. package/dist/esm/Dialog/Entities/Spinner.js +2 -0
  155. package/dist/esm/Dialog/Entities/Spinner.js.map +1 -1
  156. package/dist/esm/Dialog/Entities/Spinner.test.js +17 -0
  157. package/dist/esm/Dialog/Entities/Spinner.test.js.map +1 -1
  158. package/dist/esm/Handler/setupStandardHostHandlers.js +2 -1
  159. package/dist/esm/Handler/setupStandardHostHandlers.js.map +1 -1
  160. package/dist/esm/StateMachine/Adapters/hostStateAdapter.js +21 -0
  161. package/dist/esm/StateMachine/Adapters/hostStateAdapter.js.map +1 -0
  162. package/dist/esm/StateMachine/Adapters/hostStateAdapter.test.js +47 -0
  163. package/dist/esm/StateMachine/Adapters/hostStateAdapter.test.js.map +1 -0
  164. package/dist/esm/StateMachine/Adapters/index.js +1 -0
  165. package/dist/esm/StateMachine/Adapters/index.js.map +1 -1
  166. package/dist/esm/StateMachine/Controllers/editStateName.js +10 -0
  167. package/dist/esm/StateMachine/Controllers/editStateName.js.map +1 -0
  168. package/dist/esm/StateMachine/Controllers/editStateName.test.js +47 -0
  169. package/dist/esm/StateMachine/Controllers/editStateName.test.js.map +1 -0
  170. package/dist/esm/StateMachine/Controllers/index.js +1 -0
  171. package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
  172. package/dist/esm/StateMachine/Entities/HostStateMachine.js +67 -24
  173. package/dist/esm/StateMachine/Entities/HostStateMachine.js.map +1 -1
  174. package/dist/esm/StateMachine/Entities/HostStateMachine.test.js +174 -0
  175. package/dist/esm/StateMachine/Entities/HostStateMachine.test.js.map +1 -1
  176. package/dist/esm/StateMachine/Mocks/MockEditStateNameUC.js +8 -0
  177. package/dist/esm/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -0
  178. package/dist/esm/StateMachine/Mocks/MockHostStatePM.js +18 -0
  179. package/dist/esm/StateMachine/Mocks/MockHostStatePM.js.map +1 -0
  180. package/dist/esm/StateMachine/PMs/HostStateMachinePM.js +21 -15
  181. package/dist/esm/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
  182. package/dist/esm/StateMachine/PMs/HostStateMachinePM.test.js +65 -56
  183. package/dist/esm/StateMachine/PMs/HostStateMachinePM.test.js.map +1 -1
  184. package/dist/esm/StateMachine/PMs/HostStatePM.js +131 -0
  185. package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -0
  186. package/dist/esm/StateMachine/PMs/HostStatePM.test.js +403 -0
  187. package/dist/esm/StateMachine/PMs/HostStatePM.test.js.map +1 -0
  188. package/dist/esm/StateMachine/PMs/index.js +1 -0
  189. package/dist/esm/StateMachine/PMs/index.js.map +1 -1
  190. package/dist/esm/StateMachine/UCs/EditStateNameUC.js +30 -0
  191. package/dist/esm/StateMachine/UCs/EditStateNameUC.js.map +1 -0
  192. package/dist/esm/StateMachine/UCs/EditStateNameUC.test.js +56 -0
  193. package/dist/esm/StateMachine/UCs/EditStateNameUC.test.js.map +1 -0
  194. package/dist/esm/StateMachine/UCs/index.js +1 -0
  195. package/dist/esm/StateMachine/UCs/index.js.map +1 -1
  196. package/dist/esm/VivedAPI/Mocks/MockSignedAuthToken.js +1 -2
  197. package/dist/esm/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
  198. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js +1 -1
  199. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  200. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js +2 -2
  201. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.test.js.map +1 -1
  202. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.js +1 -1
  203. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
  204. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.test.js +2 -2
  205. package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.test.js.map +1 -1
  206. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js +1 -1
  207. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
  208. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js +2 -2
  209. package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.test.js.map +1 -1
  210. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.js +1 -1
  211. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
  212. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.test.js +2 -2
  213. package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.test.js.map +1 -1
  214. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.js +1 -1
  215. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
  216. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js +2 -2
  217. package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.test.js.map +1 -1
  218. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.js +1 -1
  219. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
  220. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.test.js +2 -2
  221. package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.test.js.map +1 -1
  222. package/dist/esm/VivedAPI/UCs/PatchAssetUC.js +2 -3
  223. package/dist/esm/VivedAPI/UCs/PatchAssetUC.js.map +1 -1
  224. package/dist/esm/VivedAPI/UCs/PatchAssetUC.test.js +2 -2
  225. package/dist/esm/VivedAPI/UCs/PatchAssetUC.test.js.map +1 -1
  226. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js +2 -3
  227. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  228. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.test.js +2 -2
  229. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.test.js.map +1 -1
  230. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js +1 -1
  231. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  232. package/dist/types/AppSandbox/Factories/setupAppSandbox.d.ts.map +1 -1
  233. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.d.ts +4 -0
  234. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.d.ts.map +1 -0
  235. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.d.ts +2 -0
  236. package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.test.d.ts.map +1 -0
  237. package/dist/types/Assets/Factories/setupAssetsForSandbox.d.ts.map +1 -1
  238. package/dist/types/Assets/Mocks/MockNewAssetUC.d.ts +8 -0
  239. package/dist/types/Assets/Mocks/MockNewAssetUC.d.ts.map +1 -0
  240. package/dist/types/Assets/Mocks/index.d.ts +1 -0
  241. package/dist/types/Assets/Mocks/index.d.ts.map +1 -1
  242. package/dist/types/Assets/UCs/NewAssetUC.d.ts +14 -0
  243. package/dist/types/Assets/UCs/NewAssetUC.d.ts.map +1 -0
  244. package/dist/types/Assets/UCs/NewAssetUC.test.d.ts +2 -0
  245. package/dist/types/Assets/UCs/NewAssetUC.test.d.ts.map +1 -0
  246. package/dist/types/Assets/UCs/index.d.ts +1 -0
  247. package/dist/types/Assets/UCs/index.d.ts.map +1 -1
  248. package/dist/types/Dialog/Entities/Alert.d.ts +1 -0
  249. package/dist/types/Dialog/Entities/Alert.d.ts.map +1 -1
  250. package/dist/types/Dialog/Entities/Confirm.d.ts +1 -0
  251. package/dist/types/Dialog/Entities/Confirm.d.ts.map +1 -1
  252. package/dist/types/Dialog/Entities/DialogQueue.d.ts +1 -0
  253. package/dist/types/Dialog/Entities/DialogQueue.d.ts.map +1 -1
  254. package/dist/types/Dialog/Entities/MarkDownEditor.d.ts +1 -0
  255. package/dist/types/Dialog/Entities/MarkDownEditor.d.ts.map +1 -1
  256. package/dist/types/Dialog/Entities/SelectModel.d.ts +1 -0
  257. package/dist/types/Dialog/Entities/SelectModel.d.ts.map +1 -1
  258. package/dist/types/Dialog/Entities/Spinner.d.ts +1 -0
  259. package/dist/types/Dialog/Entities/Spinner.d.ts.map +1 -1
  260. package/dist/types/Handler/setupStandardHostHandlers.d.ts.map +1 -1
  261. package/dist/types/StateMachine/Adapters/hostStateAdapter.d.ts +4 -0
  262. package/dist/types/StateMachine/Adapters/hostStateAdapter.d.ts.map +1 -0
  263. package/dist/types/StateMachine/Adapters/hostStateAdapter.test.d.ts +2 -0
  264. package/dist/types/StateMachine/Adapters/hostStateAdapter.test.d.ts.map +1 -0
  265. package/dist/types/StateMachine/Adapters/index.d.ts +1 -0
  266. package/dist/types/StateMachine/Adapters/index.d.ts.map +1 -1
  267. package/dist/types/StateMachine/Controllers/editStateName.d.ts +3 -0
  268. package/dist/types/StateMachine/Controllers/editStateName.d.ts.map +1 -0
  269. package/dist/types/StateMachine/Controllers/editStateName.test.d.ts +2 -0
  270. package/dist/types/StateMachine/Controllers/editStateName.test.d.ts.map +1 -0
  271. package/dist/types/StateMachine/Controllers/index.d.ts +1 -0
  272. package/dist/types/StateMachine/Controllers/index.d.ts.map +1 -1
  273. package/dist/types/StateMachine/Entities/HostStateMachine.d.ts +6 -0
  274. package/dist/types/StateMachine/Entities/HostStateMachine.d.ts.map +1 -1
  275. package/dist/types/StateMachine/Mocks/MockEditStateNameUC.d.ts +7 -0
  276. package/dist/types/StateMachine/Mocks/MockEditStateNameUC.d.ts.map +1 -0
  277. package/dist/types/StateMachine/Mocks/MockHostStatePM.d.ts +9 -0
  278. package/dist/types/StateMachine/Mocks/MockHostStatePM.d.ts.map +1 -0
  279. package/dist/types/StateMachine/PMs/HostStateMachinePM.d.ts +3 -4
  280. package/dist/types/StateMachine/PMs/HostStateMachinePM.d.ts.map +1 -1
  281. package/dist/types/StateMachine/PMs/HostStatePM.d.ts +18 -0
  282. package/dist/types/StateMachine/PMs/HostStatePM.d.ts.map +1 -0
  283. package/dist/types/StateMachine/PMs/HostStatePM.test.d.ts +2 -0
  284. package/dist/types/StateMachine/PMs/HostStatePM.test.d.ts.map +1 -0
  285. package/dist/types/StateMachine/PMs/index.d.ts +1 -0
  286. package/dist/types/StateMachine/PMs/index.d.ts.map +1 -1
  287. package/dist/types/StateMachine/UCs/EditStateNameUC.d.ts +9 -0
  288. package/dist/types/StateMachine/UCs/EditStateNameUC.d.ts.map +1 -0
  289. package/dist/types/StateMachine/UCs/EditStateNameUC.test.d.ts +2 -0
  290. package/dist/types/StateMachine/UCs/EditStateNameUC.test.d.ts.map +1 -0
  291. package/dist/types/StateMachine/UCs/index.d.ts +1 -0
  292. package/dist/types/StateMachine/UCs/index.d.ts.map +1 -1
  293. package/dist/types/VivedAPI/Mocks/MockSignedAuthToken.d.ts +1 -2
  294. package/dist/types/VivedAPI/Mocks/MockSignedAuthToken.d.ts.map +1 -1
  295. package/dist/types/VivedAPI/UCs/PatchAssetUC.d.ts.map +1 -1
  296. package/dist/types/VivedAPI/UCs/PostNewAssetUC.d.ts +2 -2
  297. package/dist/types/VivedAPI/UCs/PostNewAssetUC.d.ts.map +1 -1
  298. package/dist/types/VivedAPI/UCs/SignedAuthTokenUC.d.ts +1 -2
  299. package/dist/types/VivedAPI/UCs/SignedAuthTokenUC.d.ts.map +1 -1
  300. package/package.json +2 -2
@@ -36,48 +36,82 @@ describe("Host State Machine Presentation Manager", () => {
36
36
  stateMachine.setActiveStateByID("state1");
37
37
  const vm = pm.lastVM;
38
38
  expect(vm.activeSlideID).toEqual("state1");
39
+ expect(vm.activeSlideName).toEqual("State 1");
39
40
  expect(vm.previousSlideID).toBeUndefined();
40
41
  expect(vm.nextSlideID).toEqual("state2");
41
42
  expect(vm.states).toHaveLength(3);
43
+ expect(vm.states).toEqual(["state1", "state2", "state3"]);
44
+ expect(vm.isSingleSlide).toEqual(false);
42
45
  });
43
46
  it("Checks for equal vms", () => {
44
47
  const { pm } = makeTestRig();
45
48
  const vm1 = {
46
49
  activeSlideID: "activeSlideID",
50
+ activeSlideName: "Active Slide",
47
51
  nextSlideID: "newSlideID",
48
52
  previousSlideID: "previousSlideID",
49
- states: [
50
- { id: "state1", name: "State 1" },
51
- { id: "state2", name: "State 2" }
52
- ]
53
+ states: ["state1", "state2"],
54
+ isSingleSlide: false
53
55
  };
54
56
  const vm2 = { ...vm1 };
55
57
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);
56
58
  });
59
+ it("Sets isSingleSlide to true when there is only one state", () => {
60
+ const { pm, stateMachine } = makeTestRig();
61
+ stateMachine.setStates([stateMachine.getStateByID("state1")]);
62
+ const vm = pm.lastVM;
63
+ expect(vm.states).toHaveLength(1);
64
+ expect(vm.states).toEqual(["state1"]);
65
+ expect(vm.isSingleSlide).toEqual(true);
66
+ });
67
+ it("Checks for a change in isSingleSlide", () => {
68
+ const { pm } = makeTestRig();
69
+ const vm1 = {
70
+ activeSlideID: "activeSlideID",
71
+ activeSlideName: "Active Slide",
72
+ nextSlideID: "newSlideID",
73
+ previousSlideID: "previousSlideID",
74
+ states: ["state1"],
75
+ isSingleSlide: true
76
+ };
77
+ const vm2 = { ...vm1, isSingleSlide: false };
78
+ expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
79
+ });
57
80
  it("Checks for a change in the active slide", () => {
58
81
  const { pm } = makeTestRig();
59
82
  const vm1 = {
60
83
  activeSlideID: "activeSlideID",
84
+ activeSlideName: "Active Slide",
61
85
  nextSlideID: "newSlideID",
62
86
  previousSlideID: "previousSlideID",
63
- states: [
64
- { id: "state1", name: "State 1" },
65
- { id: "state2", name: "State 2" }
66
- ]
87
+ states: ["state1", "state2"],
88
+ isSingleSlide: false
67
89
  };
68
90
  const vm2 = { ...vm1, activeSlideID: "CHANGED" };
69
91
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
70
92
  });
93
+ it("Checks for a change in the active slide name", () => {
94
+ const { pm } = makeTestRig();
95
+ const vm1 = {
96
+ activeSlideID: "activeSlideID",
97
+ activeSlideName: "Active Slide",
98
+ nextSlideID: "newSlideID",
99
+ previousSlideID: "previousSlideID",
100
+ states: ["state1", "state2"],
101
+ isSingleSlide: false
102
+ };
103
+ const vm2 = { ...vm1, activeSlideName: "CHANGED" };
104
+ expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
105
+ });
71
106
  it("Checks for a change in the next slide", () => {
72
107
  const { pm } = makeTestRig();
73
108
  const vm1 = {
74
109
  activeSlideID: "activeSlideID",
110
+ activeSlideName: "Active Slide",
75
111
  nextSlideID: "newSlideID",
76
112
  previousSlideID: "previousSlideID",
77
- states: [
78
- { id: "state1", name: "State 1" },
79
- { id: "state2", name: "State 2" }
80
- ]
113
+ states: ["state1", "state2"],
114
+ isSingleSlide: false
81
115
  };
82
116
  const vm2 = { ...vm1, nextSlideID: "CHANGED" };
83
117
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
@@ -86,12 +120,11 @@ describe("Host State Machine Presentation Manager", () => {
86
120
  const { pm } = makeTestRig();
87
121
  const vm1 = {
88
122
  activeSlideID: "activeSlideID",
123
+ activeSlideName: "Active Slide",
89
124
  nextSlideID: "newSlideID",
90
125
  previousSlideID: "previousSlideID",
91
- states: [
92
- { id: "state1", name: "State 1" },
93
- { id: "state2", name: "State 2" }
94
- ]
126
+ states: ["state1", "state2"],
127
+ isSingleSlide: false
95
128
  };
96
129
  const vm2 = { ...vm1, previousSlideID: "CHANGED" };
97
130
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
@@ -100,20 +133,16 @@ describe("Host State Machine Presentation Manager", () => {
100
133
  const { pm } = makeTestRig();
101
134
  const vm1 = {
102
135
  activeSlideID: "activeSlideID",
136
+ activeSlideName: "Active Slide",
103
137
  nextSlideID: "newSlideID",
104
138
  previousSlideID: "previousSlideID",
105
- states: [
106
- { id: "state1", name: "State 1" },
107
- { id: "state2", name: "State 2" }
108
- ]
139
+ states: ["state1", "state2"],
140
+ isSingleSlide: false
109
141
  };
110
142
  const vm2 = {
111
143
  ...vm1,
112
- states: [
113
- { id: "state1", name: "State 1" },
114
- { id: "state2", name: "State 2" },
115
- { id: "state3", name: "State 3" }
116
- ]
144
+ states: ["state1", "state2", "state3"],
145
+ isSingleSlide: false
117
146
  };
118
147
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
119
148
  });
@@ -121,53 +150,33 @@ describe("Host State Machine Presentation Manager", () => {
121
150
  const { pm } = makeTestRig();
122
151
  const vm1 = {
123
152
  activeSlideID: "activeSlideID",
153
+ activeSlideName: "Active Slide",
124
154
  nextSlideID: "newSlideID",
125
155
  previousSlideID: "previousSlideID",
126
- states: [
127
- { id: "state1", name: "State 1" },
128
- { id: "state2", name: "State 2" }
129
- ]
130
- };
131
- const vm2 = { ...vm1, states: [{ id: "state1", name: "State 1" }] };
132
- expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
133
- });
134
- it("Checks for state to be renamed", () => {
135
- const { pm } = makeTestRig();
136
- const vm1 = {
137
- activeSlideID: "activeSlideID",
138
- nextSlideID: "newSlideID",
139
- previousSlideID: "previousSlideID",
140
- states: [
141
- { id: "state1", name: "State 1" },
142
- { id: "state2", name: "State 2" }
143
- ]
156
+ states: ["state1", "state2"],
157
+ isSingleSlide: false
144
158
  };
145
159
  const vm2 = {
146
160
  ...vm1,
147
- states: [
148
- { id: "state1", name: "State 1" },
149
- { id: "state2", name: "RENAMED" }
150
- ]
161
+ states: ["state1"],
162
+ isSingleSlide: true
151
163
  };
152
164
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
153
165
  });
154
- it("Checks for state to have a different it", () => {
166
+ it("Checks for state order to change", () => {
155
167
  const { pm } = makeTestRig();
156
168
  const vm1 = {
157
169
  activeSlideID: "activeSlideID",
170
+ activeSlideName: "Active Slide",
158
171
  nextSlideID: "newSlideID",
159
172
  previousSlideID: "previousSlideID",
160
- states: [
161
- { id: "state1", name: "State 1" },
162
- { id: "state2", name: "State 2" }
163
- ]
173
+ states: ["state1", "state2"],
174
+ isSingleSlide: false
164
175
  };
165
176
  const vm2 = {
166
177
  ...vm1,
167
- states: [
168
- { id: "state1", name: "State 1" },
169
- { id: "CHANGED", name: "State 2" }
170
- ]
178
+ states: ["state2", "state1"],
179
+ isSingleSlide: false
171
180
  };
172
181
  expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);
173
182
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HostStateMachinePM.test.js","sourceRoot":"","sources":["../../../../src/StateMachine/PMs/HostStateMachinePM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateEntity } from \"../Entities\";\r\nimport { makeHostStateMachine } from \"../Entities/HostStateMachine\";\r\nimport {\r\n HostStateMachinePM,\r\n HostStateMachineVM,\r\n makeHostStateMachinePM\r\n} from \"./HostStateMachinePM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const stateMachine = makeHostStateMachine(ao);\r\n\r\n const state1 = makeHostStateEntity(appObjects.getOrCreate(\"state1\"));\r\n state1.name = \"State 1\";\r\n\r\n const state2 = makeHostStateEntity(appObjects.getOrCreate(\"state2\"));\r\n state2.name = \"State 2\";\r\n\r\n const state3 = makeHostStateEntity(appObjects.getOrCreate(\"state3\"));\r\n state3.name = \"State 3\";\r\n\r\n stateMachine.setStates([state1, state2, state3]);\r\n stateMachine.setActiveStateByID(\"state2\");\r\n\r\n const pm = makeHostStateMachinePM(ao);\r\n\r\n return { stateMachine, pm, registerSingletonSpy, appObjects };\r\n}\r\n\r\ndescribe(\"Host State Machine Presentation Manager\", () => {\r\n it(\"Initializes the last vm\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Registers as the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Initializes the VM\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n expect(pm).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates if the entity changes\", () => {\r\n const { pm, stateMachine } = makeTestRig();\r\n\r\n stateMachine.setActiveStateByID(\"state1\");\r\n\r\n const vm = pm.lastVM as HostStateMachineVM;\r\n expect(vm.activeSlideID).toEqual(\"state1\");\r\n expect(vm.previousSlideID).toBeUndefined();\r\n expect(vm.nextSlideID).toEqual(\"state2\");\r\n expect(vm.states).toHaveLength(3);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = { ...vm1 };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a change in the active slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = { ...vm1, activeSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the next slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = { ...vm1, nextSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the previous slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = { ...vm1, previousSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" },\r\n { id: \"state3\", name: \"State 3\" }\r\n ]\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = { ...vm1, states: [{ id: \"state1\", name: \"State 1\" }] };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to be renamed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"RENAMED\" }\r\n ]\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to have a different it\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"state2\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\r\n { id: \"state1\", name: \"State 1\" },\r\n { id: \"CHANGED\", name: \"State 2\" }\r\n ]\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"HostStateMachinePM.test.js","sourceRoot":"","sources":["../../../../src/StateMachine/PMs/HostStateMachinePM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeHostStateEntity } from \"../Entities\";\r\nimport { makeHostStateMachine } from \"../Entities/HostStateMachine\";\r\nimport {\r\n HostStateMachinePM,\r\n HostStateMachineVM,\r\n makeHostStateMachinePM\r\n} from \"./HostStateMachinePM\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\r\n\r\n const ao = appObjects.getOrCreate(\"AO\");\r\n const stateMachine = makeHostStateMachine(ao);\r\n\r\n const state1 = makeHostStateEntity(appObjects.getOrCreate(\"state1\"));\r\n state1.name = \"State 1\";\r\n\r\n const state2 = makeHostStateEntity(appObjects.getOrCreate(\"state2\"));\r\n state2.name = \"State 2\";\r\n\r\n const state3 = makeHostStateEntity(appObjects.getOrCreate(\"state3\"));\r\n state3.name = \"State 3\";\r\n\r\n stateMachine.setStates([state1, state2, state3]);\r\n stateMachine.setActiveStateByID(\"state2\");\r\n\r\n const pm = makeHostStateMachinePM(ao);\r\n\r\n return { stateMachine, pm, registerSingletonSpy, appObjects };\r\n}\r\n\r\ndescribe(\"Host State Machine Presentation Manager\", () => {\r\n it(\"Initializes the last vm\", () => {\r\n const { pm } = makeTestRig();\r\n expect(pm.lastVM).not.toBeUndefined();\r\n });\r\n\r\n it(\"Registers as the singleton\", () => {\r\n const { registerSingletonSpy, pm } = makeTestRig();\r\n expect(registerSingletonSpy).toBeCalledWith(pm);\r\n });\r\n\r\n it(\"Initializes the VM\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n expect(pm).not.toBeUndefined();\r\n });\r\n\r\n it(\"Updates if the entity changes\", () => {\r\n const { pm, stateMachine } = makeTestRig();\r\n\r\n stateMachine.setActiveStateByID(\"state1\");\r\n\r\n const vm = pm.lastVM as HostStateMachineVM;\r\n expect(vm.activeSlideID).toEqual(\"state1\");\r\n expect(vm.activeSlideName).toEqual(\"State 1\");\r\n expect(vm.previousSlideID).toBeUndefined();\r\n expect(vm.nextSlideID).toEqual(\"state2\");\r\n expect(vm.states).toHaveLength(3);\r\n expect(vm.states).toEqual([\"state1\", \"state2\", \"state3\"]);\r\n expect(vm.isSingleSlide).toEqual(false);\r\n });\r\n\r\n it(\"Checks for equal vms\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = { ...vm1 };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(true);\r\n });\r\n\r\n it(\"Sets isSingleSlide to true when there is only one state\", () => {\r\n const { pm, stateMachine } = makeTestRig();\r\n\r\n stateMachine.setStates([stateMachine.getStateByID(\"state1\")!]);\r\n\r\n const vm = pm.lastVM as HostStateMachineVM;\r\n expect(vm.states).toHaveLength(1);\r\n expect(vm.states).toEqual([\"state1\"]);\r\n expect(vm.isSingleSlide).toEqual(true);\r\n });\r\n\r\n it(\"Checks for a change in isSingleSlide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\"],\r\n isSingleSlide: true\r\n };\r\n\r\n const vm2 = { ...vm1, isSingleSlide: false };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the active slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = { ...vm1, activeSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the active slide name\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = { ...vm1, activeSlideName: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the next slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = { ...vm1, nextSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for a change in the previous slide\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = { ...vm1, previousSlideID: \"CHANGED\" };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to be added\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\"state1\", \"state2\", \"state3\"],\r\n isSingleSlide: false\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state to be removed\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\"state1\"],\r\n isSingleSlide: true\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n\r\n it(\"Checks for state order to change\", () => {\r\n const { pm } = makeTestRig();\r\n\r\n const vm1: HostStateMachineVM = {\r\n activeSlideID: \"activeSlideID\",\r\n activeSlideName: \"Active Slide\",\r\n nextSlideID: \"newSlideID\",\r\n previousSlideID: \"previousSlideID\",\r\n states: [\"state1\", \"state2\"],\r\n isSingleSlide: false\r\n };\r\n\r\n const vm2 = {\r\n ...vm1,\r\n states: [\"state2\", \"state1\"],\r\n isSingleSlide: false\r\n };\r\n\r\n expect(pm.vmsAreEqual(vm1, vm2)).toEqual(false);\r\n });\r\n});\r\n"]}
@@ -0,0 +1,131 @@
1
+ import { AppObjectPM } from "@vived/core";
2
+ import { AppRepoEntity } from "../../Apps/Entities/AppRepo";
3
+ import { HostStateEntity } from "../Entities/HostStateEntity";
4
+ import { HostStateMachine } from "../Entities/HostStateMachine";
5
+ export class HostStatePM extends AppObjectPM {
6
+ // Non-singleton getter pattern
7
+ static getById(id, appObjects) {
8
+ return appObjects.get(id)?.getComponent(HostStatePM.type);
9
+ }
10
+ }
11
+ HostStatePM.type = "HostStatePM";
12
+ // Default view model
13
+ HostStatePM.defaultVM = {
14
+ id: "",
15
+ name: "",
16
+ data: {},
17
+ isActive: false,
18
+ appName: "",
19
+ canBumpBackwards: false,
20
+ canBumpForward: false,
21
+ index: -1
22
+ };
23
+ export function makeHostStatePM(appObject) {
24
+ return new HostStatePMImp(appObject);
25
+ }
26
+ class HostStatePMImp extends HostStatePM {
27
+ // Get the entity from the same AppObject
28
+ get hostStateEntity() {
29
+ return this.getCachedLocalComponent(HostStateEntity.type);
30
+ }
31
+ // Get the state machine which is a singleton
32
+ get hostStateMachine() {
33
+ return this.getCachedSingleton(HostStateMachine.type);
34
+ }
35
+ // Get the app repo which is a singleton
36
+ get appRepo() {
37
+ return this.getCachedSingleton(AppRepoEntity.type);
38
+ }
39
+ // Required equality check method for view models
40
+ vmsAreEqual(a, b) {
41
+ if (a.id !== b.id)
42
+ return false;
43
+ if (a.name !== b.name)
44
+ return false;
45
+ if (a.isActive !== b.isActive)
46
+ return false;
47
+ if (a.appName !== b.appName)
48
+ return false;
49
+ if (a.canBumpBackwards !== b.canBumpBackwards)
50
+ return false;
51
+ if (a.canBumpForward !== b.canBumpForward)
52
+ return false;
53
+ if (a.index !== b.index)
54
+ return false;
55
+ // Deep comparison for the data object
56
+ const aData = JSON.stringify(a.data);
57
+ const bData = JSON.stringify(b.data);
58
+ if (aData !== bData)
59
+ return false;
60
+ return true;
61
+ }
62
+ updateViewModel() {
63
+ const entity = this.hostStateEntity;
64
+ const stateMachine = this.hostStateMachine;
65
+ const appRepo = this.appRepo;
66
+ if (!entity) {
67
+ this.doUpdateView(HostStatePM.defaultVM);
68
+ return;
69
+ }
70
+ // Check if this state is the active one in the state machine
71
+ const isActive = stateMachine?.activeState === entity.id;
72
+ // Look up the app name using the appID from the state entity
73
+ let appName = "";
74
+ if (appRepo && entity.appID) {
75
+ const app = appRepo.getApp(entity.appID);
76
+ if (app) {
77
+ appName = app.name;
78
+ }
79
+ }
80
+ // Determine if the state can be bumped backwards or forwards
81
+ let canBumpBackwards = false;
82
+ let canBumpForward = false;
83
+ let index = -1;
84
+ if (stateMachine) {
85
+ const stateIndex = stateMachine.getStateIndex(entity.id);
86
+ if (stateIndex !== undefined) {
87
+ index = stateIndex;
88
+ // Can bump backwards if index > 0
89
+ canBumpBackwards = stateIndex > 0;
90
+ // Can bump forward if index < length-1
91
+ canBumpForward = stateIndex < stateMachine.stateCount - 1;
92
+ }
93
+ }
94
+ // Create a new immutable view model based on entity state
95
+ const newVM = {
96
+ id: entity.id,
97
+ name: entity.name,
98
+ data: entity.stateData,
99
+ isActive: isActive || false,
100
+ appName,
101
+ canBumpBackwards,
102
+ canBumpForward,
103
+ index
104
+ };
105
+ // Update the view with the new view model
106
+ this.doUpdateView(newVM);
107
+ }
108
+ constructor(appObject) {
109
+ super(appObject, HostStatePM.type);
110
+ // Handler for entity changes
111
+ this.onEntityChange = () => {
112
+ this.updateViewModel();
113
+ };
114
+ // Handler for state machine changes
115
+ this.onStateMachineChange = () => {
116
+ this.updateViewModel();
117
+ };
118
+ this.dispose = () => {
119
+ this.hostStateEntity?.removeChangeObserver(this.onEntityChange);
120
+ this.hostStateMachine?.removeChangeObserver(this.onStateMachineChange);
121
+ super.dispose();
122
+ };
123
+ // Subscribe to entity changes
124
+ this.hostStateEntity?.addChangeObserver(this.onEntityChange);
125
+ // Subscribe to state machine changes
126
+ this.hostStateMachine?.addChangeObserver(this.onStateMachineChange);
127
+ // Initialize the view model
128
+ this.updateViewModel();
129
+ }
130
+ }
131
+ //# sourceMappingURL=HostStatePM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostStatePM.js","sourceRoot":"","sources":["../../../../src/StateMachine/PMs/HostStatePM.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\r\nimport { AppRepoEntity } from \"../../Apps/Entities/AppRepo\";\r\nimport { HostStateEntity } from \"../Entities/HostStateEntity\";\r\nimport { HostStateMachine } from \"../Entities/HostStateMachine\";\r\n\r\nexport interface HostStateVM {\r\n readonly id: string;\r\n readonly name: string;\r\n readonly data: object;\r\n readonly isActive: boolean;\r\n readonly appName: string;\r\n readonly canBumpBackwards: boolean;\r\n readonly canBumpForward: boolean;\r\n readonly index: number;\r\n}\r\n\r\nexport abstract class HostStatePM extends AppObjectPM<HostStateVM> {\r\n static readonly type = \"HostStatePM\";\r\n\r\n // Default view model\r\n static readonly defaultVM: HostStateVM = {\r\n id: \"\",\r\n name: \"\",\r\n data: {},\r\n isActive: false,\r\n appName: \"\",\r\n canBumpBackwards: false,\r\n canBumpForward: false,\r\n index: -1\r\n };\r\n\r\n // Non-singleton getter pattern\r\n static getById(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): HostStatePM | undefined {\r\n return appObjects.get(id)?.getComponent<HostStatePM>(HostStatePM.type);\r\n }\r\n}\r\n\r\nexport function makeHostStatePM(appObject: AppObject): HostStatePM {\r\n return new HostStatePMImp(appObject);\r\n}\r\n\r\nclass HostStatePMImp extends HostStatePM {\r\n // Get the entity from the same AppObject\r\n private get hostStateEntity() {\r\n return this.getCachedLocalComponent<HostStateEntity>(HostStateEntity.type);\r\n }\r\n\r\n // Get the state machine which is a singleton\r\n private get hostStateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n // Get the app repo which is a singleton\r\n private get appRepo() {\r\n return this.getCachedSingleton<AppRepoEntity>(AppRepoEntity.type);\r\n }\r\n\r\n // Required equality check method for view models\r\n vmsAreEqual(a: HostStateVM, b: HostStateVM): boolean {\r\n if (a.id !== b.id) return false;\r\n if (a.name !== b.name) return false;\r\n if (a.isActive !== b.isActive) return false;\r\n if (a.appName !== b.appName) return false;\r\n if (a.canBumpBackwards !== b.canBumpBackwards) return false;\r\n if (a.canBumpForward !== b.canBumpForward) return false;\r\n if (a.index !== b.index) return false;\r\n\r\n // Deep comparison for the data object\r\n const aData = JSON.stringify(a.data);\r\n const bData = JSON.stringify(b.data);\r\n if (aData !== bData) return false;\r\n\r\n return true;\r\n }\r\n\r\n // Handler for entity changes\r\n private onEntityChange = (): void => {\r\n this.updateViewModel();\r\n };\r\n\r\n // Handler for state machine changes\r\n private onStateMachineChange = (): void => {\r\n this.updateViewModel();\r\n };\r\n\r\n private updateViewModel(): void {\r\n const entity = this.hostStateEntity;\r\n const stateMachine = this.hostStateMachine;\r\n const appRepo = this.appRepo;\r\n\r\n if (!entity) {\r\n this.doUpdateView(HostStatePM.defaultVM);\r\n return;\r\n }\r\n\r\n // Check if this state is the active one in the state machine\r\n const isActive = stateMachine?.activeState === entity.id;\r\n\r\n // Look up the app name using the appID from the state entity\r\n let appName = \"\";\r\n if (appRepo && entity.appID) {\r\n const app = appRepo.getApp(entity.appID);\r\n if (app) {\r\n appName = app.name;\r\n }\r\n }\r\n\r\n // Determine if the state can be bumped backwards or forwards\r\n let canBumpBackwards = false;\r\n let canBumpForward = false;\r\n let index = -1;\r\n\r\n if (stateMachine) {\r\n const stateIndex = stateMachine.getStateIndex(entity.id);\r\n if (stateIndex !== undefined) {\r\n index = stateIndex;\r\n // Can bump backwards if index > 0\r\n canBumpBackwards = stateIndex > 0;\r\n // Can bump forward if index < length-1\r\n canBumpForward = stateIndex < stateMachine.stateCount - 1;\r\n }\r\n }\r\n\r\n // Create a new immutable view model based on entity state\r\n const newVM: HostStateVM = {\r\n id: entity.id,\r\n name: entity.name,\r\n data: entity.stateData,\r\n isActive: isActive || false,\r\n appName,\r\n canBumpBackwards,\r\n canBumpForward,\r\n index\r\n };\r\n\r\n // Update the view with the new view model\r\n this.doUpdateView(newVM);\r\n }\r\n\r\n dispose = (): void => {\r\n this.hostStateEntity?.removeChangeObserver(this.onEntityChange);\r\n this.hostStateMachine?.removeChangeObserver(this.onStateMachineChange);\r\n super.dispose();\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, HostStatePM.type);\r\n\r\n // Subscribe to entity changes\r\n this.hostStateEntity?.addChangeObserver(this.onEntityChange);\r\n\r\n // Subscribe to state machine changes\r\n this.hostStateMachine?.addChangeObserver(this.onStateMachineChange);\r\n\r\n // Initialize the view model\r\n this.updateViewModel();\r\n }\r\n}\r\n"]}