@vived/app 6.7.1 → 6.9.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 (228) hide show
  1. package/README.md +145 -1
  2. package/dist/cjs/BaseApp/UC/RenderCanvasUC.js.map +1 -1
  3. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  4. package/dist/cjs/Challenge/Factories/ChallengeFeatureFactory.js.map +1 -1
  5. package/dist/cjs/Challenge/Factories/ChallengeFeatureFactory.test.js.map +1 -1
  6. package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js +4 -3
  7. package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
  8. package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.test.js +35 -0
  9. package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.test.js.map +1 -0
  10. package/dist/cjs/Dispatcher/Factories/setupDispatchers.js +1 -0
  11. package/dist/cjs/Dispatcher/Factories/setupDispatchers.js.map +1 -1
  12. package/dist/cjs/Dispatcher/Factories/setupDispatchers.test.js +33 -0
  13. package/dist/cjs/Dispatcher/Factories/setupDispatchers.test.js.map +1 -0
  14. package/dist/cjs/EventSystem/Entities/EventEntity.js.map +1 -1
  15. package/dist/cjs/EventSystem/Entities/EventEntity.test.js +4 -1
  16. package/dist/cjs/EventSystem/Entities/EventEntity.test.js.map +1 -1
  17. package/dist/cjs/EventSystem/Entities/index.js.map +1 -1
  18. package/dist/cjs/EventSystem/EventSystem.integration.test.js.map +1 -1
  19. package/dist/cjs/EventSystem/Factories/EventSystemFeatureFactory.js.map +1 -1
  20. package/dist/cjs/EventSystem/Factories/EventSystemFeatureFactory.test.js.map +1 -1
  21. package/dist/cjs/EventSystem/Factories/index.js.map +1 -1
  22. package/dist/cjs/EventSystem/Mocks/MockEventEntity.js.map +1 -1
  23. package/dist/cjs/EventSystem/Mocks/index.js.map +1 -1
  24. package/dist/cjs/EventSystem/index.js.map +1 -1
  25. package/dist/cjs/EventSystem/types.js.map +1 -1
  26. package/dist/cjs/LabelDrop/Factories/LabelDropFeatureFactory.js.map +1 -1
  27. package/dist/cjs/LabelDrop/UseCases/SubmitLabelDropResultUC.js.map +1 -1
  28. package/dist/cjs/LabelDrop/UseCases/SubmitLabelDropResultUC.test.js.map +1 -1
  29. package/dist/cjs/LabelDrop/UseCases/index.js.map +1 -1
  30. package/dist/cjs/Procedure/Adapters/index.js.map +1 -1
  31. package/dist/cjs/Procedure/Adapters/procedureAdapter.js.map +1 -1
  32. package/dist/cjs/Procedure/Adapters/procedureAdapter.test.js.map +1 -1
  33. package/dist/cjs/Procedure/Adapters/procedureAuthoringAdapter.js.map +1 -1
  34. package/dist/cjs/Procedure/Adapters/procedureAuthoringAdapter.test.js.map +1 -1
  35. package/dist/cjs/Procedure/Adapters/procedureHintAdapter.js.map +1 -1
  36. package/dist/cjs/Procedure/Adapters/procedureHintAdapter.test.js.map +1 -1
  37. package/dist/cjs/Procedure/Adapters/procedureProgressAdapter.js.map +1 -1
  38. package/dist/cjs/Procedure/Adapters/procedureProgressAdapter.test.js.map +1 -1
  39. package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.js.map +1 -1
  40. package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.test.js +3 -1
  41. package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.test.js.map +1 -1
  42. package/dist/cjs/Procedure/Entities/HintRegistry.js.map +1 -1
  43. package/dist/cjs/Procedure/Entities/HintRegistry.test.js.map +1 -1
  44. package/dist/cjs/Procedure/Entities/ProcedureEntity.js.map +1 -1
  45. package/dist/cjs/Procedure/Entities/ProcedureEntity.test.js +1 -12
  46. package/dist/cjs/Procedure/Entities/ProcedureEntity.test.js.map +1 -1
  47. package/dist/cjs/Procedure/Entities/index.js.map +1 -1
  48. package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.js.map +1 -1
  49. package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.test.js +3 -1
  50. package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.test.js.map +1 -1
  51. package/dist/cjs/Procedure/Factories/index.js.map +1 -1
  52. package/dist/cjs/Procedure/Mocks/MockProcedureEntity.js.map +1 -1
  53. package/dist/cjs/Procedure/Mocks/MockProcedurePM.js.map +1 -1
  54. package/dist/cjs/Procedure/Mocks/index.js.map +1 -1
  55. package/dist/cjs/Procedure/PM/ProcedurePM.js.map +1 -1
  56. package/dist/cjs/Procedure/PM/ProcedurePM.test.js +1 -1
  57. package/dist/cjs/Procedure/PM/ProcedurePM.test.js.map +1 -1
  58. package/dist/cjs/Procedure/PM/index.js.map +1 -1
  59. package/dist/cjs/Procedure/ProcedureEventSystem.integration.test.js.map +1 -1
  60. package/dist/cjs/Procedure/UCs/AddProcedureEventUC.js.map +1 -1
  61. package/dist/cjs/Procedure/UCs/AddProcedureEventUC.test.js +1 -4
  62. package/dist/cjs/Procedure/UCs/AddProcedureEventUC.test.js.map +1 -1
  63. package/dist/cjs/Procedure/UCs/MoveProcedureEventDownUC.js.map +1 -1
  64. package/dist/cjs/Procedure/UCs/MoveProcedureEventDownUC.test.js.map +1 -1
  65. package/dist/cjs/Procedure/UCs/MoveProcedureEventUpUC.js.map +1 -1
  66. package/dist/cjs/Procedure/UCs/MoveProcedureEventUpUC.test.js.map +1 -1
  67. package/dist/cjs/Procedure/UCs/RecordProcedureEventUC.js.map +1 -1
  68. package/dist/cjs/Procedure/UCs/RecordProcedureEventUC.test.js.map +1 -1
  69. package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.js.map +1 -1
  70. package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.test.js +22 -4
  71. package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.test.js.map +1 -1
  72. package/dist/cjs/Procedure/UCs/RemoveProcedureEventUC.js.map +1 -1
  73. package/dist/cjs/Procedure/UCs/RemoveProcedureEventUC.test.js.map +1 -1
  74. package/dist/cjs/Procedure/UCs/ResetProcedureProgressUC.js.map +1 -1
  75. package/dist/cjs/Procedure/UCs/ResetProcedureProgressUC.test.js.map +1 -1
  76. package/dist/cjs/Procedure/UCs/SerializeProcedure.js.map +1 -1
  77. package/dist/cjs/Procedure/UCs/SerializeProcedure.test.js +6 -1
  78. package/dist/cjs/Procedure/UCs/SerializeProcedure.test.js.map +1 -1
  79. package/dist/cjs/Procedure/UCs/SetProcedureIsQuizUC.js.map +1 -1
  80. package/dist/cjs/Procedure/UCs/SetProcedureIsQuizUC.test.js.map +1 -1
  81. package/dist/cjs/Procedure/UCs/SetProcedureOrderMattersUC.js.map +1 -1
  82. package/dist/cjs/Procedure/UCs/SetProcedureOrderMattersUC.test.js.map +1 -1
  83. package/dist/cjs/Procedure/UCs/SetProcedureShowHintsUC.js.map +1 -1
  84. package/dist/cjs/Procedure/UCs/SetProcedureShowHintsUC.test.js.map +1 -1
  85. package/dist/cjs/Procedure/UCs/SubmitProcedureQuizUC.js.map +1 -1
  86. package/dist/cjs/Procedure/UCs/SubmitProcedureQuizUC.test.js.map +1 -1
  87. package/dist/cjs/Procedure/UCs/UpdateProcedureEventsUCHook.js.map +1 -1
  88. package/dist/cjs/Procedure/UCs/UpdateProcedureEventsUCHook.test.js.map +1 -1
  89. package/dist/cjs/Procedure/UCs/index.js.map +1 -1
  90. package/dist/cjs/Procedure/index.js.map +1 -1
  91. package/dist/cjs/Procedure/types.js.map +1 -1
  92. package/dist/cjs/RequestHandler/UC/SetThemeColorUC.test.js +9 -0
  93. package/dist/cjs/RequestHandler/UC/SetThemeColorUC.test.js.map +1 -1
  94. package/dist/cjs/ThemeColors/Entities/ThemeColors.js +24 -0
  95. package/dist/cjs/ThemeColors/Entities/ThemeColors.js.map +1 -1
  96. package/dist/cjs/ThemeColors/Entities/ThemeColors.test.js +20 -0
  97. package/dist/cjs/ThemeColors/Entities/ThemeColors.test.js.map +1 -1
  98. package/dist/cjs/TouchController/UC/UpdateTouchInoutBound.test.js.map +1 -1
  99. package/dist/cjs/TouchController/UC/UpdateTouchInputBound.js.map +1 -1
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/esm/BaseApp/UC/RenderCanvasUC.js.map +1 -1
  102. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  103. package/dist/esm/Challenge/Factories/ChallengeFeatureFactory.js.map +1 -1
  104. package/dist/esm/Challenge/Factories/ChallengeFeatureFactory.test.js.map +1 -1
  105. package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js +5 -4
  106. package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
  107. package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.test.js +33 -0
  108. package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.test.js.map +1 -0
  109. package/dist/esm/Dispatcher/Factories/setupDispatchers.js +2 -1
  110. package/dist/esm/Dispatcher/Factories/setupDispatchers.js.map +1 -1
  111. package/dist/esm/Dispatcher/Factories/setupDispatchers.test.js +31 -0
  112. package/dist/esm/Dispatcher/Factories/setupDispatchers.test.js.map +1 -0
  113. package/dist/esm/EventSystem/Entities/EventEntity.js.map +1 -1
  114. package/dist/esm/EventSystem/Entities/EventEntity.test.js +4 -1
  115. package/dist/esm/EventSystem/Entities/EventEntity.test.js.map +1 -1
  116. package/dist/esm/EventSystem/Entities/index.js.map +1 -1
  117. package/dist/esm/EventSystem/EventSystem.integration.test.js.map +1 -1
  118. package/dist/esm/EventSystem/Factories/EventSystemFeatureFactory.js.map +1 -1
  119. package/dist/esm/EventSystem/Factories/EventSystemFeatureFactory.test.js.map +1 -1
  120. package/dist/esm/EventSystem/Factories/index.js.map +1 -1
  121. package/dist/esm/EventSystem/Mocks/MockEventEntity.js.map +1 -1
  122. package/dist/esm/EventSystem/Mocks/index.js.map +1 -1
  123. package/dist/esm/EventSystem/index.js.map +1 -1
  124. package/dist/esm/EventSystem/types.js.map +1 -1
  125. package/dist/esm/LabelDrop/Factories/LabelDropFeatureFactory.js.map +1 -1
  126. package/dist/esm/LabelDrop/UseCases/SubmitLabelDropResultUC.js.map +1 -1
  127. package/dist/esm/LabelDrop/UseCases/SubmitLabelDropResultUC.test.js.map +1 -1
  128. package/dist/esm/LabelDrop/UseCases/index.js.map +1 -1
  129. package/dist/esm/Procedure/Adapters/index.js.map +1 -1
  130. package/dist/esm/Procedure/Adapters/procedureAdapter.js.map +1 -1
  131. package/dist/esm/Procedure/Adapters/procedureAdapter.test.js.map +1 -1
  132. package/dist/esm/Procedure/Adapters/procedureAuthoringAdapter.js.map +1 -1
  133. package/dist/esm/Procedure/Adapters/procedureAuthoringAdapter.test.js.map +1 -1
  134. package/dist/esm/Procedure/Adapters/procedureHintAdapter.js.map +1 -1
  135. package/dist/esm/Procedure/Adapters/procedureHintAdapter.test.js.map +1 -1
  136. package/dist/esm/Procedure/Adapters/procedureProgressAdapter.js.map +1 -1
  137. package/dist/esm/Procedure/Adapters/procedureProgressAdapter.test.js.map +1 -1
  138. package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.js.map +1 -1
  139. package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.test.js +3 -1
  140. package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.test.js.map +1 -1
  141. package/dist/esm/Procedure/Entities/HintRegistry.js.map +1 -1
  142. package/dist/esm/Procedure/Entities/HintRegistry.test.js.map +1 -1
  143. package/dist/esm/Procedure/Entities/ProcedureEntity.js.map +1 -1
  144. package/dist/esm/Procedure/Entities/ProcedureEntity.test.js +1 -12
  145. package/dist/esm/Procedure/Entities/ProcedureEntity.test.js.map +1 -1
  146. package/dist/esm/Procedure/Entities/index.js.map +1 -1
  147. package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.js.map +1 -1
  148. package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.test.js +5 -3
  149. package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.test.js.map +1 -1
  150. package/dist/esm/Procedure/Factories/index.js.map +1 -1
  151. package/dist/esm/Procedure/Mocks/MockProcedureEntity.js.map +1 -1
  152. package/dist/esm/Procedure/Mocks/MockProcedurePM.js.map +1 -1
  153. package/dist/esm/Procedure/Mocks/index.js.map +1 -1
  154. package/dist/esm/Procedure/PM/ProcedurePM.js.map +1 -1
  155. package/dist/esm/Procedure/PM/ProcedurePM.test.js +2 -2
  156. package/dist/esm/Procedure/PM/ProcedurePM.test.js.map +1 -1
  157. package/dist/esm/Procedure/PM/index.js.map +1 -1
  158. package/dist/esm/Procedure/ProcedureEventSystem.integration.test.js +2 -2
  159. package/dist/esm/Procedure/ProcedureEventSystem.integration.test.js.map +1 -1
  160. package/dist/esm/Procedure/UCs/AddProcedureEventUC.js.map +1 -1
  161. package/dist/esm/Procedure/UCs/AddProcedureEventUC.test.js +3 -6
  162. package/dist/esm/Procedure/UCs/AddProcedureEventUC.test.js.map +1 -1
  163. package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.js.map +1 -1
  164. package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.test.js +2 -2
  165. package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.test.js.map +1 -1
  166. package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.js.map +1 -1
  167. package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.test.js +2 -2
  168. package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.test.js.map +1 -1
  169. package/dist/esm/Procedure/UCs/RecordProcedureEventUC.js.map +1 -1
  170. package/dist/esm/Procedure/UCs/RecordProcedureEventUC.test.js +2 -2
  171. package/dist/esm/Procedure/UCs/RecordProcedureEventUC.test.js.map +1 -1
  172. package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.js.map +1 -1
  173. package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.test.js +22 -4
  174. package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.test.js.map +1 -1
  175. package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.js.map +1 -1
  176. package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.test.js +2 -2
  177. package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.test.js.map +1 -1
  178. package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.js.map +1 -1
  179. package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.test.js +2 -2
  180. package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.test.js.map +1 -1
  181. package/dist/esm/Procedure/UCs/SerializeProcedure.js.map +1 -1
  182. package/dist/esm/Procedure/UCs/SerializeProcedure.test.js +8 -3
  183. package/dist/esm/Procedure/UCs/SerializeProcedure.test.js.map +1 -1
  184. package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.js.map +1 -1
  185. package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.test.js +1 -1
  186. package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.test.js.map +1 -1
  187. package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.js.map +1 -1
  188. package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.test.js +1 -1
  189. package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.test.js.map +1 -1
  190. package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.js.map +1 -1
  191. package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.test.js +1 -1
  192. package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.test.js.map +1 -1
  193. package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.js.map +1 -1
  194. package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.test.js +2 -2
  195. package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.test.js.map +1 -1
  196. package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.js.map +1 -1
  197. package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.test.js +1 -1
  198. package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.test.js.map +1 -1
  199. package/dist/esm/Procedure/UCs/index.js.map +1 -1
  200. package/dist/esm/Procedure/index.js.map +1 -1
  201. package/dist/esm/Procedure/types.js.map +1 -1
  202. package/dist/esm/RequestHandler/UC/SetThemeColorUC.test.js +9 -0
  203. package/dist/esm/RequestHandler/UC/SetThemeColorUC.test.js.map +1 -1
  204. package/dist/esm/ThemeColors/Entities/ThemeColors.js +24 -0
  205. package/dist/esm/ThemeColors/Entities/ThemeColors.js.map +1 -1
  206. package/dist/esm/ThemeColors/Entities/ThemeColors.test.js +20 -0
  207. package/dist/esm/ThemeColors/Entities/ThemeColors.test.js.map +1 -1
  208. package/dist/esm/TouchController/UC/UpdateTouchInoutBound.test.js.map +1 -1
  209. package/dist/esm/TouchController/UC/UpdateTouchInputBound.js.map +1 -1
  210. package/dist/esm/index.js.map +1 -1
  211. package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts +3 -3
  212. package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts.map +1 -1
  213. package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.test.d.ts +2 -0
  214. package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.test.d.ts.map +1 -0
  215. package/dist/types/Dispatcher/Factories/setupDispatchers.d.ts.map +1 -1
  216. package/dist/types/Dispatcher/Factories/setupDispatchers.test.d.ts +2 -0
  217. package/dist/types/Dispatcher/Factories/setupDispatchers.test.d.ts.map +1 -0
  218. package/dist/types/Procedure/Entities/ProcedureEntity.d.ts.map +1 -1
  219. package/dist/types/Procedure/Mocks/MockProcedureEntity.d.ts.map +1 -1
  220. package/dist/types/Procedure/UCs/AddProcedureEventUC.d.ts.map +1 -1
  221. package/dist/types/Procedure/UCs/RecordProcedureSessionUC.d.ts.map +1 -1
  222. package/dist/types/Procedure/UCs/SetProcedureIsQuizUC.d.ts.map +1 -1
  223. package/dist/types/Procedure/UCs/SubmitProcedureQuizUC.d.ts.map +1 -1
  224. package/dist/types/Procedure/types.d.ts.map +1 -1
  225. package/dist/types/ThemeColors/Entities/ThemeColors.d.ts +12 -0
  226. package/dist/types/ThemeColors/Entities/ThemeColors.d.ts.map +1 -1
  227. package/package.json +1 -1
  228. package/src/Dispatcher/README.md +9 -6
@@ -1 +1 @@
1
- {"version":3,"file":"RecordProcedureEventUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureEventUC.ts"],"names":[],"mappings":";;;AAgBA,gEAIC;AApBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,sBAAuB,SAAQ,kBAAW;;AAAhE,wDAWC;AAViB,2BAAI,GAAG,wBAAwB,CAAC;AAIzC,0BAAG,GAAG,CACX,UAAyB,EACW,EAAE,CACtC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAyB,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAGzE,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\n\r\nexport abstract class RecordProcedureEventUC extends AppObjectUC {\r\n static readonly type = \"RecordProcedureEventUC\";\r\n\r\n abstract recordEvent(eventId: string): void;\r\n\r\n static get = (\r\n appObjects: AppObjectRepo,\r\n ): RecordProcedureEventUC | undefined =>\r\n appObjects\r\n .getOrCreate(\"Procedure\")\r\n .getComponent<RecordProcedureEventUC>(RecordProcedureEventUC.type);\r\n}\r\n\r\nexport function makeRecordProcedureEventUC(\r\n appObject: AppObject,\r\n): RecordProcedureEventUC {\r\n return new RecordProcedureEventUCImp(appObject);\r\n}\r\n\r\nclass RecordProcedureEventUCImp extends RecordProcedureEventUC {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n recordEvent(eventId: string): void {\r\n if (!eventId || eventId.trim() === \"\") {\r\n this.warn(\"Cannot record empty event ID\");\r\n return;\r\n }\r\n\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot record event\");\r\n return;\r\n }\r\n\r\n entity.recordUserEvent(eventId.trim());\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, RecordProcedureEventUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RecordProcedureEventUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureEventUC.ts"],"names":[],"mappings":";;;AAgBA,gEAIC;AApBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,sBAAuB,SAAQ,kBAAW;;AAAhE,wDAWC;AAViB,2BAAI,GAAG,wBAAwB,CAAC;AAIzC,0BAAG,GAAG,CACX,UAAyB,EACW,EAAE,CACtC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAyB,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAGzE,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\n\nexport abstract class RecordProcedureEventUC extends AppObjectUC {\n static readonly type = \"RecordProcedureEventUC\";\n\n abstract recordEvent(eventId: string): void;\n\n static get = (\n appObjects: AppObjectRepo,\n ): RecordProcedureEventUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<RecordProcedureEventUC>(RecordProcedureEventUC.type);\n}\n\nexport function makeRecordProcedureEventUC(\n appObject: AppObject,\n): RecordProcedureEventUC {\n return new RecordProcedureEventUCImp(appObject);\n}\n\nclass RecordProcedureEventUCImp extends RecordProcedureEventUC {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n recordEvent(eventId: string): void {\n if (!eventId || eventId.trim() === \"\") {\n this.warn(\"Cannot record empty event ID\");\n return;\n }\n\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot record event\");\n return;\n }\n\n entity.recordUserEvent(eventId.trim());\n }\n\n constructor(appObject: AppObject) {\n super(appObject, RecordProcedureEventUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordProcedureEventUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureEventUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { RecordProcedureEventUC, makeRecordProcedureEventUC } from \"./RecordProcedureEventUC\";\r\n\r\nfunction makeTestRig() {\r\n\tconst appObjects = makeAppObjectRepo();\r\n\tconst appObject = appObjects.getOrCreate(\"Procedure\");\r\n\tconst procedureEntity = makeProcedureEntity(appObject);\r\n\tconst uc = makeRecordProcedureEventUC(appObject);\r\n\tprocedureEntity.addEventId(\"event_a\");\r\n\tprocedureEntity.addEventId(\"event_b\");\r\n\treturn { appObjects, appObject, procedureEntity, uc };\r\n}\r\n\r\ndescribe(\"RecordProcedureEventUC\", () => {\r\n\tit(\"can be retrieved via static get method\", () => {\r\n\t\tconst { appObjects, uc } = makeTestRig();\r\n\t\texpect(RecordProcedureEventUC.get(appObjects)).toBe(uc);\r\n\t});\r\n\r\n\tit(\"records a valid event ID on the entity\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tuc.recordEvent(\"event_a\");\r\n\t\texpect(procedureEntity.userEventLog).toEqual([\"event_a\"]);\r\n\t});\r\n\r\n\tit(\"trims whitespace from event IDs before recording\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tuc.recordEvent(\" event_a \");\r\n\t\texpect(procedureEntity.userEventLog).toEqual([\"event_a\"]);\r\n\t});\r\n\r\n\tit(\"records consecutive events in order\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tuc.recordEvent(\"event_a\");\r\n\t\tuc.recordEvent(\"event_b\");\r\n\t\texpect(procedureEntity.userEventLog).toEqual([\"event_a\", \"event_b\"]);\r\n\t});\r\n\r\n\tit(\"warns and does not record empty event IDs\", () => {\r\n\t\tconst { procedureEntity, uc, appObjects } = makeTestRig();\r\n\t\tappObjects.submitWarning = jest.fn();\r\n\r\n\t\tuc.recordEvent(\"\");\r\n\t\tuc.recordEvent(\" \");\r\n\r\n\t\texpect(procedureEntity.userEventLog).toEqual([]);\r\n\t\texpect(appObjects.submitWarning).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"warns when ProcedureEntity is not found\", () => {\r\n\t\tconst appObjects = makeAppObjectRepo();\r\n\t\tconst appObject = appObjects.getOrCreate(\"Procedure\");\r\n\t\tconst uc = makeRecordProcedureEventUC(appObject);\r\n\t\tappObjects.submitWarning = jest.fn();\r\n\r\n\t\tuc.recordEvent(\"event_a\");\r\n\r\n\t\texpect(appObjects.submitWarning).toHaveBeenCalled();\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"RecordProcedureEventUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureEventUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n RecordProcedureEventUC,\n makeRecordProcedureEventUC,\n} from \"./RecordProcedureEventUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const procedureEntity = makeProcedureEntity(appObject);\n const uc = makeRecordProcedureEventUC(appObject);\n procedureEntity.addEventId(\"event_a\");\n procedureEntity.addEventId(\"event_b\");\n return { appObjects, appObject, procedureEntity, uc };\n}\n\ndescribe(\"RecordProcedureEventUC\", () => {\n it(\"can be retrieved via static get method\", () => {\n const { appObjects, uc } = makeTestRig();\n expect(RecordProcedureEventUC.get(appObjects)).toBe(uc);\n });\n\n it(\"records a valid event ID on the entity\", () => {\n const { procedureEntity, uc } = makeTestRig();\n uc.recordEvent(\"event_a\");\n expect(procedureEntity.userEventLog).toEqual([\"event_a\"]);\n });\n\n it(\"trims whitespace from event IDs before recording\", () => {\n const { procedureEntity, uc } = makeTestRig();\n uc.recordEvent(\" event_a \");\n expect(procedureEntity.userEventLog).toEqual([\"event_a\"]);\n });\n\n it(\"records consecutive events in order\", () => {\n const { procedureEntity, uc } = makeTestRig();\n uc.recordEvent(\"event_a\");\n uc.recordEvent(\"event_b\");\n expect(procedureEntity.userEventLog).toEqual([\"event_a\", \"event_b\"]);\n });\n\n it(\"warns and does not record empty event IDs\", () => {\n const { procedureEntity, uc, appObjects } = makeTestRig();\n appObjects.submitWarning = jest.fn();\n\n uc.recordEvent(\"\");\n uc.recordEvent(\" \");\n\n expect(procedureEntity.userEventLog).toEqual([]);\n expect(appObjects.submitWarning).toHaveBeenCalled();\n });\n\n it(\"warns when ProcedureEntity is not found\", () => {\n const appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const uc = makeRecordProcedureEventUC(appObject);\n appObjects.submitWarning = jest.fn();\n\n uc.recordEvent(\"event_a\");\n\n expect(appObjects.submitWarning).toHaveBeenCalled();\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordProcedureSessionUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureSessionUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { BaseAppState } from \"../../BaseApp\";\r\nimport { ChallengeEntity } from \"../../Challenge\";\r\nimport { EventEntity } from \"../../EventSystem\";\r\nimport { StateMachineEntity, SerializedStates } from \"../../StateMachine\";\r\nimport { clearUndoStack } from \"../../UndoRedo\";\r\nimport { AddProcedureEventUC } from \"./AddProcedureEventUC\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { PROCEDURE_SYSTEM_NAME } from \"../types\";\r\n\r\nexport abstract class RecordProcedureSessionUC extends AppObjectUC\r\n{\r\n\tstatic readonly type = \"RecordProcedureSessionUC\";\r\n\r\n\tabstract startRecording(): void;\r\n\tabstract stopRecording(): void;\r\n\r\n\tstatic get = (appObjects: AppObjectRepo): RecordProcedureSessionUC | undefined =>\r\n\t\tappObjects\r\n\t\t\t.getOrCreate(\"Procedure\")\r\n\t\t\t.getComponent<RecordProcedureSessionUC>(RecordProcedureSessionUC.type);\r\n}\r\n\r\nexport function makeRecordProcedureSessionUC(\r\n\tappObject: AppObject\r\n): RecordProcedureSessionUC\r\n{\r\n\treturn new RecordProcedureSessionUCImp(appObject);\r\n}\r\n\r\nclass RecordProcedureSessionUCImp extends RecordProcedureSessionUC\r\n{\r\n\tprivate savedState: SerializedStates | undefined;\r\n\r\n\tprivate get procedureEntity(): ProcedureEntity | undefined\r\n\t{\r\n\t\treturn ProcedureEntity.get(this.appObjects);\r\n\t}\r\n\r\n\tprivate get baseAppState(): BaseAppState | undefined\r\n\t{\r\n\t\treturn BaseAppState.get(this.appObjects);\r\n\t}\r\n\r\n\tprivate get challengeEntity(): ChallengeEntity | undefined\r\n\t{\r\n\t\treturn ChallengeEntity.get(this.appObjects);\r\n\t}\r\n\r\n\tprivate get eventEntity(): EventEntity | undefined\r\n\t{\r\n\t\treturn EventEntity.get(this.appObjects);\r\n\t}\r\n\r\n\tprivate get stateMachine(): StateMachineEntity | undefined\r\n\t{\r\n\t\treturn StateMachineEntity.get(this.appObjects);\r\n\t}\r\n\r\n\tstartRecording = (): void =>\r\n\t{\r\n\t\tif (!this.baseAppState?.isAuthoring) return;\r\n\t\tif (this.challengeEntity?.selectedChallenge !== \"PROCEDURE\") return;\r\n\r\n\t\tconst procedureEntity = this.procedureEntity;\r\n\t\tif (!procedureEntity)\r\n\t\t{\r\n\t\t\tthis.warn(\"ProcedureEntity not found - cannot start recording\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (procedureEntity.isRecording) return;\r\n\r\n\t\tconst eventEntity = this.eventEntity;\r\n\t\tif (!eventEntity)\r\n\t\t{\r\n\t\t\tthis.warn(\"EventEntity not found - cannot start recording\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst stateMachine = this.stateMachine;\r\n\t\tif (stateMachine)\r\n\t\t{\r\n\t\t\tthis.savedState = stateMachine.getSerializedStates();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.warn(\"StateMachineEntity not found - scene state will not be restored on stop\");\r\n\t\t}\r\n\r\n\t\tprocedureEntity.setIsRecording(true);\r\n\t\teventEntity.addEmissionListener(this.onEmission);\r\n\t\tthis.baseAppState?.addChangeObserver(this.onAuthoringChanged);\r\n\t\tthis.challengeEntity?.addChangeObserver(this.onChallengeChanged);\r\n\t};\r\n\r\n\tstopRecording = (): void =>\r\n\t{\r\n\t\tconst procedureEntity = this.procedureEntity;\r\n\t\tif (!procedureEntity?.isRecording) return;\r\n\r\n\t\tprocedureEntity.setIsRecording(false);\r\n\t\tthis.eventEntity?.removeEmissionListener(this.onEmission);\r\n\t\tthis.baseAppState?.removeChangeObserver(this.onAuthoringChanged);\r\n\t\tthis.challengeEntity?.removeChangeObserver(this.onChallengeChanged);\r\n\r\n\t\tif (this.savedState)\r\n\t\t{\r\n\t\t\tconst stateMachine = this.stateMachine;\r\n\t\t\tif (stateMachine)\r\n\t\t\t{\r\n\t\t\t\tconst merged: SerializedStates = {\r\n\t\t\t\t\t...this.savedState,\r\n\t\t\t\t\tsystems: [...this.savedState.systems],\r\n\t\t\t\t};\r\n\r\n\t\t\t\tconst currentProcedure = stateMachine\r\n\t\t\t\t\t.getSerializedStates()\r\n\t\t\t\t\t.systems.find((s) => s.name === PROCEDURE_SYSTEM_NAME);\r\n\r\n\t\t\t\tif (currentProcedure)\r\n\t\t\t\t{\r\n\t\t\t\t\tconst idx = merged.systems.findIndex(\r\n\t\t\t\t\t\t(s) => s.name === PROCEDURE_SYSTEM_NAME\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (idx >= 0)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmerged.systems[idx] = currentProcedure;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmerged.systems.push(currentProcedure);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tstateMachine.setSerializedStates(merged, stateMachine.restoreDurationS);\r\n\t\t\t\tclearUndoStack(this.appObjects);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.warn(\"StateMachineEntity not found at stop - scene state not restored\");\r\n\t\t\t}\r\n\r\n\t\t\tthis.savedState = undefined;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onEmission = (eventId: string): void =>\r\n\t{\r\n\t\tif (!this.procedureEntity?.isRecording) return;\r\n\t\tAddProcedureEventUC.get(this.appObjects)?.addEvent(eventId);\r\n\t};\r\n\r\n\tprivate onAuthoringChanged = (): void =>\r\n\t{\r\n\t\tif (!this.baseAppState?.isAuthoring)\r\n\t\t{\r\n\t\t\tthis.stopRecording();\r\n\t\t}\r\n\t};\r\n\r\n\tprivate onChallengeChanged = (): void =>\r\n\t{\r\n\t\tif (this.challengeEntity?.selectedChallenge !== \"PROCEDURE\")\r\n\t\t{\r\n\t\t\tthis.stopRecording();\r\n\t\t}\r\n\t};\r\n\r\n\tdispose(): void\r\n\t{\r\n\t\tif (this.procedureEntity?.isRecording)\r\n\t\t{\r\n\t\t\tthis.eventEntity?.removeEmissionListener(this.onEmission);\r\n\t\t\tthis.baseAppState?.removeChangeObserver(this.onAuthoringChanged);\r\n\t\t\tthis.challengeEntity?.removeChangeObserver(this.onChallengeChanged);\r\n\t\t}\r\n\t\tthis.savedState = undefined;\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tconstructor(appObject: AppObject)\r\n\t{\r\n\t\tsuper(appObject, RecordProcedureSessionUC.type);\r\n\t}\r\n}\r\n"]}
1
+ {"version":3,"file":"RecordProcedureSessionUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureSessionUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { BaseAppState } from \"../../BaseApp\";\nimport { ChallengeEntity } from \"../../Challenge\";\nimport { EventEntity } from \"../../EventSystem\";\nimport { StateMachineEntity, SerializedStates } from \"../../StateMachine\";\nimport { clearUndoStack } from \"../../UndoRedo\";\nimport { AddProcedureEventUC } from \"./AddProcedureEventUC\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\nimport { PROCEDURE_SYSTEM_NAME } from \"../types\";\n\nexport abstract class RecordProcedureSessionUC extends AppObjectUC {\n static readonly type = \"RecordProcedureSessionUC\";\n\n abstract startRecording(): void;\n abstract stopRecording(): void;\n\n static get = (\n appObjects: AppObjectRepo,\n ): RecordProcedureSessionUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<RecordProcedureSessionUC>(RecordProcedureSessionUC.type);\n}\n\nexport function makeRecordProcedureSessionUC(\n appObject: AppObject,\n): RecordProcedureSessionUC {\n return new RecordProcedureSessionUCImp(appObject);\n}\n\nclass RecordProcedureSessionUCImp extends RecordProcedureSessionUC {\n private savedState: SerializedStates | undefined;\n\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n private get baseAppState(): BaseAppState | undefined {\n return BaseAppState.get(this.appObjects);\n }\n\n private get challengeEntity(): ChallengeEntity | undefined {\n return ChallengeEntity.get(this.appObjects);\n }\n\n private get eventEntity(): EventEntity | undefined {\n return EventEntity.get(this.appObjects);\n }\n\n private get stateMachine(): StateMachineEntity | undefined {\n return StateMachineEntity.get(this.appObjects);\n }\n\n startRecording = (): void => {\n if (!this.baseAppState?.isAuthoring) return;\n if (this.challengeEntity?.selectedChallenge !== \"PROCEDURE\") return;\n\n const procedureEntity = this.procedureEntity;\n if (!procedureEntity) {\n this.warn(\"ProcedureEntity not found - cannot start recording\");\n return;\n }\n\n if (procedureEntity.isRecording) return;\n\n const eventEntity = this.eventEntity;\n if (!eventEntity) {\n this.warn(\"EventEntity not found - cannot start recording\");\n return;\n }\n\n const stateMachine = this.stateMachine;\n if (stateMachine) {\n this.savedState = stateMachine.getSerializedStates();\n } else {\n this.warn(\n \"StateMachineEntity not found - scene state will not be restored on stop\",\n );\n }\n\n procedureEntity.setIsRecording(true);\n eventEntity.addEmissionListener(this.onEmission);\n this.baseAppState?.addChangeObserver(this.onAuthoringChanged);\n this.challengeEntity?.addChangeObserver(this.onChallengeChanged);\n };\n\n stopRecording = (): void => {\n const procedureEntity = this.procedureEntity;\n if (!procedureEntity?.isRecording) return;\n\n procedureEntity.setIsRecording(false);\n this.eventEntity?.removeEmissionListener(this.onEmission);\n this.baseAppState?.removeChangeObserver(this.onAuthoringChanged);\n this.challengeEntity?.removeChangeObserver(this.onChallengeChanged);\n\n if (this.savedState) {\n const stateMachine = this.stateMachine;\n if (stateMachine) {\n const merged: SerializedStates = {\n ...this.savedState,\n systems: [...this.savedState.systems],\n };\n\n const currentProcedure = stateMachine\n .getSerializedStates()\n .systems.find((s) => s.name === PROCEDURE_SYSTEM_NAME);\n\n if (currentProcedure) {\n const idx = merged.systems.findIndex(\n (s) => s.name === PROCEDURE_SYSTEM_NAME,\n );\n if (idx >= 0) {\n merged.systems[idx] = currentProcedure;\n } else {\n merged.systems.push(currentProcedure);\n }\n }\n\n stateMachine.setSerializedStates(merged, stateMachine.restoreDurationS);\n clearUndoStack(this.appObjects);\n } else {\n this.warn(\n \"StateMachineEntity not found at stop - scene state not restored\",\n );\n }\n\n this.savedState = undefined;\n }\n };\n\n private onEmission = (eventId: string): void => {\n if (!this.procedureEntity?.isRecording) return;\n AddProcedureEventUC.get(this.appObjects)?.addEvent(eventId);\n };\n\n private onAuthoringChanged = (): void => {\n if (!this.baseAppState?.isAuthoring) {\n this.stopRecording();\n }\n };\n\n private onChallengeChanged = (): void => {\n if (this.challengeEntity?.selectedChallenge !== \"PROCEDURE\") {\n this.stopRecording();\n }\n };\n\n dispose(): void {\n if (this.procedureEntity?.isRecording) {\n this.eventEntity?.removeEmissionListener(this.onEmission);\n this.baseAppState?.removeChangeObserver(this.onAuthoringChanged);\n this.challengeEntity?.removeChangeObserver(this.onChallengeChanged);\n }\n this.savedState = undefined;\n super.dispose();\n }\n\n constructor(appObject: AppObject) {\n super(appObject, RecordProcedureSessionUC.type);\n }\n}\n"]}
@@ -199,14 +199,22 @@ describe("RecordProcedureSessionUC", () => {
199
199
  .mockReturnValueOnce({
200
200
  version: 2,
201
201
  systems: [
202
- { name: "amtec", serializationVersion: 1, state: { powerIsOn: false } },
202
+ {
203
+ name: "amtec",
204
+ serializationVersion: 1,
205
+ state: { powerIsOn: false },
206
+ },
203
207
  { name: "procedure", serializationVersion: 1, state: { events: [] } },
204
208
  ],
205
209
  })
206
210
  .mockReturnValueOnce({
207
211
  version: 2,
208
212
  systems: [
209
- { name: "amtec", serializationVersion: 1, state: { powerIsOn: true } },
213
+ {
214
+ name: "amtec",
215
+ serializationVersion: 1,
216
+ state: { powerIsOn: true },
217
+ },
210
218
  recordedProcedure,
211
219
  ],
212
220
  });
@@ -218,12 +226,22 @@ describe("RecordProcedureSessionUC", () => {
218
226
  });
219
227
  it("snapshot - restores equipment state from the snapshot (not current state)", () => {
220
228
  const { uc, mockStateMachine } = makeTestRig();
221
- const snapshotAmtec = { name: "amtec", serializationVersion: 1, state: { powerIsOn: false } };
229
+ const snapshotAmtec = {
230
+ name: "amtec",
231
+ serializationVersion: 1,
232
+ state: { powerIsOn: false },
233
+ };
222
234
  mockStateMachine.getSerializedStates
223
235
  .mockReturnValueOnce({ version: 2, systems: [snapshotAmtec] })
224
236
  .mockReturnValueOnce({
225
237
  version: 2,
226
- systems: [{ name: "amtec", serializationVersion: 1, state: { powerIsOn: true } }],
238
+ systems: [
239
+ {
240
+ name: "amtec",
241
+ serializationVersion: 1,
242
+ state: { powerIsOn: true },
243
+ },
244
+ ],
227
245
  });
228
246
  uc.startRecording();
229
247
  uc.stopRecording();
@@ -1 +1 @@
1
- {"version":3,"file":"RecordProcedureSessionUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureSessionUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n\tAppObject,\r\n\tAppObjectEntity,\r\n\tAppObjectRepo,\r\n\tmakeAppObjectRepo,\r\n} from \"@vived/core\";\r\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\r\nimport { makeMockEventEntity } from \"../../EventSystem/Mocks\";\r\nimport { makeMockStateMachine } from \"../../StateMachine/Mocks\";\r\nimport { makeMockUndoRedo } from \"../../UndoRedo/Mocks\";\r\nimport { makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { AddProcedureEventUC } from \"./AddProcedureEventUC\";\r\nimport {\r\n\tmakeRecordProcedureSessionUC,\r\n\tRecordProcedureSessionUC,\r\n} from \"./RecordProcedureSessionUC\";\r\n\r\nconst defaultSnapshot = {\r\n\tversion: 2,\r\n\tsystems: [\r\n\t\t{ name: \"amtec\", serializationVersion: 1, state: { powerIsOn: false } },\r\n\t\t{ name: \"procedure\", serializationVersion: 1, state: { events: [] } },\r\n\t],\r\n};\r\n\r\nclass MockChallengeEntity extends AppObjectEntity\r\n{\r\n\tstatic readonly type = \"ChallengeEntity\";\r\n\tprivate _selectedChallenge = \"NONE\";\r\n\tprivate observers: (() => void)[] = [];\r\n\r\n\tget selectedChallenge(): string\r\n\t{\r\n\t\treturn this._selectedChallenge;\r\n\t}\r\n\r\n\tset selectedChallenge(id: string)\r\n\t{\r\n\t\tthis._selectedChallenge = id;\r\n\t\tthis.notifyObservers();\r\n\t}\r\n\r\n\taddChangeObserver = (observer: () => void): void =>\r\n\t{\r\n\t\tthis.observers.push(observer);\r\n\t};\r\n\r\n\tremoveChangeObserver = (observer: () => void): void =>\r\n\t{\r\n\t\tconst index = this.observers.indexOf(observer);\r\n\t\tif (index >= 0) this.observers.splice(index, 1);\r\n\t};\r\n\r\n\tprivate notifyObservers(): void\r\n\t{\r\n\t\tthis.observers.forEach((o) => o());\r\n\t}\r\n\r\n\tconstructor(appObject: AppObject)\r\n\t{\r\n\t\tsuper(appObject, MockChallengeEntity.type);\r\n\t}\r\n}\r\n\r\nclass MockAddProcedureEventUC extends AddProcedureEventUC\r\n{\r\n\taddEvent = jest.fn();\r\n\r\n\tconstructor(appObject: AppObject)\r\n\t{\r\n\t\tsuper(appObject, AddProcedureEventUC.type);\r\n\t}\r\n}\r\n\r\nfunction makeTestRig()\r\n{\r\n\tconst appObjects = makeAppObjectRepo();\r\n\tconst procedureAO = appObjects.getOrCreate(\"Procedure\");\r\n\r\n\tconst baseAppState = makeBaseAppState(appObjects.getOrCreate(\"App\"));\r\n\tbaseAppState.isAuthoring = true;\r\n\r\n\tconst challengeEntity = new MockChallengeEntity(procedureAO);\r\n\tchallengeEntity.selectedChallenge = \"PROCEDURE\";\r\n\tappObjects.registerSingleton(challengeEntity);\r\n\r\n\tconst procedureEntity = makeProcedureEntity(procedureAO);\r\n\r\n\tconst mockEventEntity = makeMockEventEntity(appObjects);\r\n\tappObjects.registerSingleton(mockEventEntity);\r\n\r\n\tconst mockStateMachine = makeMockStateMachine(appObjects);\r\n\tmockStateMachine.getSerializedStates.mockReturnValue(defaultSnapshot);\r\n\tappObjects.registerSingleton(mockStateMachine);\r\n\r\n\tconst mockUndoRedo = makeMockUndoRedo(appObjects);\r\n\tmockUndoRedo.clearStack = jest.fn();\r\n\tappObjects.registerSingleton(mockUndoRedo);\r\n\r\n\tconst mockAddProcedureEventUC = new MockAddProcedureEventUC(procedureAO);\r\n\r\n\tconst uc = makeRecordProcedureSessionUC(procedureAO);\r\n\r\n\treturn {\r\n\t\tappObjects,\r\n\t\tbaseAppState,\r\n\t\tchallengeEntity,\r\n\t\tprocedureEntity,\r\n\t\tmockEventEntity,\r\n\t\tmockStateMachine,\r\n\t\tmockUndoRedo,\r\n\t\tmockAddProcedureEventUC,\r\n\t\tuc,\r\n\t};\r\n}\r\n\r\ndescribe(\"RecordProcedureSessionUC\", () => {\r\n\tit(\"gets the UC from appObjects\", () => {\r\n\t\tconst { uc, appObjects } = makeTestRig();\r\n\t\texpect(RecordProcedureSessionUC.get(appObjects)).toEqual(uc);\r\n\t});\r\n\r\n\tit(\"starts recording and sets procedureEntity.isRecording to true\", () => {\r\n\t\tconst { uc, procedureEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\texpect(procedureEntity.isRecording).toEqual(true);\r\n\t});\r\n\r\n\tit(\"registers an emission listener on EventEntity when recording starts\", () => {\r\n\t\tconst { uc, mockEventEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\texpect(mockEventEntity.addEmissionListener).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"does not start recording when not authoring\", () => {\r\n\t\tconst { uc, procedureEntity, baseAppState } = makeTestRig();\r\n\t\tbaseAppState.isAuthoring = false;\r\n\t\tuc.startRecording();\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t});\r\n\r\n\tit(\"does not start recording when challenge is not PROCEDURE\", () => {\r\n\t\tconst { uc, procedureEntity, challengeEntity } = makeTestRig();\r\n\t\tchallengeEntity.selectedChallenge = \"NONE\";\r\n\t\tuc.startRecording();\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t});\r\n\r\n\tit(\"does not start recording if already recording\", () => {\r\n\t\tconst { uc, mockEventEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.startRecording();\r\n\t\texpect(mockEventEntity.addEmissionListener).toHaveBeenCalledTimes(1);\r\n\t});\r\n\r\n\tit(\"stops recording and sets procedureEntity.isRecording to false\", () => {\r\n\t\tconst { uc, procedureEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t});\r\n\r\n\tit(\"removes emission listener when recording stops\", () => {\r\n\t\tconst { uc, mockEventEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\t\texpect(mockEventEntity.removeEmissionListener).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"does nothing when stopping if not recording\", () => {\r\n\t\tconst { uc, procedureEntity, mockEventEntity } = makeTestRig();\r\n\t\tuc.stopRecording();\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t\texpect(mockEventEntity.removeEmissionListener).not.toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"adds emitted events to the procedure while recording\", () => {\r\n\t\tconst { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tconst emissionCallback = mockEventEntity.addEmissionListener.mock.calls[0][0];\r\n\t\temissionCallback(\"master-on-pressed\");\r\n\t\texpect(mockAddProcedureEventUC.addEvent).toHaveBeenCalledWith(\"master-on-pressed\");\r\n\t});\r\n\r\n\tit(\"adds multiple events including duplicates while recording\", () => {\r\n\t\tconst { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tconst emissionCallback = mockEventEntity.addEmissionListener.mock.calls[0][0];\r\n\t\temissionCallback(\"master-on-pressed\");\r\n\t\temissionCallback(\"master-on-pressed\");\r\n\t\temissionCallback(\"mode-switch-auto\");\r\n\t\texpect(mockAddProcedureEventUC.addEvent).toHaveBeenCalledTimes(3);\r\n\t});\r\n\r\n\tit(\"does not add events after stopping\", () => {\r\n\t\tconst { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\t\tconst emissionCallback = mockEventEntity.addEmissionListener.mock.calls[0][0];\r\n\t\temissionCallback(\"test-event\");\r\n\t\texpect(mockAddProcedureEventUC.addEvent).not.toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"auto-stops when isAuthoring becomes false\", () => {\r\n\t\tconst { uc, procedureEntity, baseAppState } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tbaseAppState.isAuthoring = false;\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t});\r\n\r\n\tit(\"auto-stops when challenge changes away from PROCEDURE\", () => {\r\n\t\tconst { uc, procedureEntity, challengeEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tchallengeEntity.selectedChallenge = \"NONE\";\r\n\t\texpect(procedureEntity.isRecording).toEqual(false);\r\n\t});\r\n\r\n\tit(\"does not stop when challenge remains PROCEDURE\", () => {\r\n\t\tconst { uc, procedureEntity, challengeEntity } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tchallengeEntity.selectedChallenge = \"PROCEDURE\";\r\n\t\texpect(procedureEntity.isRecording).toEqual(true);\r\n\t});\r\n\r\n\tit(\"snapshot - captures a state snapshot when recording starts\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\texpect(mockStateMachine.getSerializedStates).toHaveBeenCalledTimes(1);\r\n\t});\r\n\r\n\tit(\"snapshot - does not capture a snapshot when guards prevent recording\", () => {\r\n\t\tconst { uc, baseAppState, mockStateMachine } = makeTestRig();\r\n\t\tbaseAppState.isAuthoring = false;\r\n\t\tuc.startRecording();\r\n\t\texpect(mockStateMachine.getSerializedStates).not.toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"snapshot - restores the snapshot when recording stops\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\t\texpect(mockStateMachine.setSerializedStates).toHaveBeenCalledWith(\r\n\t\t\texpect.objectContaining({ version: 2 }),\r\n\t\t\tmockStateMachine.restoreDurationS\r\n\t\t);\r\n\t});\r\n\r\n\tit(\"snapshot - preserves the current procedure system when restoring\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tconst recordedProcedure = {\r\n\t\t\tname: \"procedure\",\r\n\t\t\tserializationVersion: 1,\r\n\t\t\tstate: { events: [\"power-switch-turned-on\"] },\r\n\t\t};\r\n\t\tmockStateMachine.getSerializedStates\r\n\t\t\t.mockReturnValueOnce({\r\n\t\t\t\tversion: 2,\r\n\t\t\t\tsystems: [\r\n\t\t\t\t\t{ name: \"amtec\", serializationVersion: 1, state: { powerIsOn: false } },\r\n\t\t\t\t\t{ name: \"procedure\", serializationVersion: 1, state: { events: [] } },\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t\t.mockReturnValueOnce({\r\n\t\t\t\tversion: 2,\r\n\t\t\t\tsystems: [\r\n\t\t\t\t\t{ name: \"amtec\", serializationVersion: 1, state: { powerIsOn: true } },\r\n\t\t\t\t\trecordedProcedure,\r\n\t\t\t\t],\r\n\t\t\t});\r\n\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\r\n\t\tconst mergedState = mockStateMachine.setSerializedStates.mock.calls[0][0];\r\n\t\tconst procedureInMerge = mergedState.systems.find(\r\n\t\t\t(s: { name: string }) => s.name === \"procedure\"\r\n\t\t);\r\n\t\texpect(procedureInMerge).toEqual(recordedProcedure);\r\n\t});\r\n\r\n\tit(\"snapshot - restores equipment state from the snapshot (not current state)\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tconst snapshotAmtec = { name: \"amtec\", serializationVersion: 1, state: { powerIsOn: false } };\r\n\t\tmockStateMachine.getSerializedStates\r\n\t\t\t.mockReturnValueOnce({ version: 2, systems: [snapshotAmtec] })\r\n\t\t\t.mockReturnValueOnce({\r\n\t\t\t\tversion: 2,\r\n\t\t\t\tsystems: [{ name: \"amtec\", serializationVersion: 1, state: { powerIsOn: true } }],\r\n\t\t\t});\r\n\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\r\n\t\tconst mergedState = mockStateMachine.setSerializedStates.mock.calls[0][0];\r\n\t\tconst amtecInMerge = mergedState.systems.find(\r\n\t\t\t(s: { name: string }) => s.name === \"amtec\"\r\n\t\t);\r\n\t\texpect(amtecInMerge).toEqual(snapshotAmtec);\r\n\t});\r\n\r\n\tit(\"snapshot - restores on auto-stop when authoring mode exits\", () => {\r\n\t\tconst { uc, baseAppState, mockStateMachine } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tbaseAppState.isAuthoring = false;\r\n\t\texpect(mockStateMachine.setSerializedStates).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"snapshot - restores on auto-stop when challenge type changes\", () => {\r\n\t\tconst { uc, challengeEntity, mockStateMachine } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tchallengeEntity.selectedChallenge = \"NONE\";\r\n\t\texpect(mockStateMachine.setSerializedStates).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"snapshot - clears the undo stack after restoring\", () => {\r\n\t\tconst { uc, mockUndoRedo } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.stopRecording();\r\n\t\texpect(mockUndoRedo.clearStack).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"snapshot - does not restore if no snapshot was captured\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tuc.stopRecording();\r\n\t\texpect(mockStateMachine.setSerializedStates).not.toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"snapshot - does not capture snapshot a second time on duplicate startRecording\", () => {\r\n\t\tconst { uc, mockStateMachine } = makeTestRig();\r\n\t\tuc.startRecording();\r\n\t\tuc.startRecording();\r\n\t\texpect(mockStateMachine.getSerializedStates).toHaveBeenCalledTimes(1);\r\n\t});\r\n\r\n\tit(\"snapshot - warns and still allows recording when StateMachineEntity is missing\", () => {\r\n\t\tconst appObjects = makeAppObjectRepo();\r\n\t\tconst procedureAO = appObjects.getOrCreate(\"Procedure\");\r\n\r\n\t\tconst baseAppState = makeBaseAppState(appObjects.getOrCreate(\"App\"));\r\n\t\tbaseAppState.isAuthoring = true;\r\n\r\n\t\tconst challengeEntity = new MockChallengeEntity(procedureAO);\r\n\t\tchallengeEntity.selectedChallenge = \"PROCEDURE\";\r\n\t\tappObjects.registerSingleton(challengeEntity);\r\n\r\n\t\tconst procedureEntity = makeProcedureEntity(procedureAO);\r\n\r\n\t\tconst mockEventEntity = makeMockEventEntity(appObjects);\r\n\t\tappObjects.registerSingleton(mockEventEntity);\r\n\r\n\t\t// No StateMachineEntity registered\r\n\t\tconst warnSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\r\n\r\n\t\tconst uc = makeRecordProcedureSessionUC(procedureAO);\r\n\t\tuc.startRecording();\r\n\r\n\t\texpect(warnSpy).toHaveBeenCalled();\r\n\t\twarnSpy.mockRestore();\r\n\t\texpect(procedureEntity.isRecording).toEqual(true);\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"RecordProcedureSessionUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RecordProcedureSessionUC.test.ts"],"names":[],"mappings":";;AAAA,sCAKqB;AACrB,oEAAqE;AACrE,mDAA8D;AAC9D,oDAAgE;AAChE,gDAAwD;AACxD,iEAAkE;AAClE,+DAA4D;AAC5D,yEAGoC;AAEpC,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,CAAC;IACV,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;QACvE,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;KACtE;CACF,CAAC;AAEF,MAAM,mBAAoB,SAAQ,sBAAe;IAK/C,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,iBAAiB,CAAC,EAAU;QAC9B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAWO,eAAe;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA1BrC,uBAAkB,GAAG,MAAM,CAAC;QAC5B,cAAS,GAAmB,EAAE,CAAC;QAWvC,sBAAiB,GAAG,CAAC,QAAoB,EAAQ,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC,CAAC;QAEF,yBAAoB,GAAG,CAAC,QAAoB,EAAQ,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IAQF,CAAC;;AA5Be,wBAAI,GAAG,iBAAiB,AAApB,CAAqB;AA+B3C,MAAM,uBAAwB,SAAQ,yCAAmB;IAGvD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,yCAAmB,CAAC,IAAI,CAAC,CAAC;QAH7C,aAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIrB,CAAC;CACF;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,IAAA,+BAAgB,EAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;IAEhC,MAAM,eAAe,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC7D,eAAe,CAAC,iBAAiB,GAAG,WAAW,CAAC;IAChD,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE9C,MAAM,eAAe,GAAG,IAAA,qCAAmB,EAAC,WAAW,CAAC,CAAC;IAEzD,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC;IACxD,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE9C,MAAM,gBAAgB,GAAG,IAAA,4BAAoB,EAAC,UAAU,CAAC,CAAC;IAC1D,gBAAgB,CAAC,mBAAmB,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IACtE,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,IAAA,wBAAgB,EAAC,UAAU,CAAC,CAAC;IAClD,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IACpC,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAE3C,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAEzE,MAAM,EAAE,GAAG,IAAA,uDAA4B,EAAC,WAAW,CAAC,CAAC;IAErD,OAAO;QACL,UAAU;QACV,YAAY;QACZ,eAAe;QACf,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,YAAY;QACZ,uBAAuB;QACvB,EAAE;KACH,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,mDAAwB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAC5D,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/D,eAAe,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAC3C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/D,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QACvE,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,gBAAgB,GACpB,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACtC,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAC3D,mBAAmB,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QACvE,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,gBAAgB,GACpB,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACtC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;QACtC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QACrC,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,EAAE,CAAC;QACvE,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,gBAAgB,GACpB,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAC5D,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/D,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,eAAe,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAC3C,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/D,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,eAAe,CAAC,iBAAiB,GAAG,WAAW,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7D,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC/D,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EACvC,gBAAgB,CAAC,gBAAgB,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG;YACxB,IAAI,EAAE,WAAW;YACjB,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,wBAAwB,CAAC,EAAE;SAC9C,CAAC;QACF,gBAAgB,CAAC,mBAAmB;aACjC,mBAAmB,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,oBAAoB,EAAE,CAAC;oBACvB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;iBAC5B;gBACD,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;aACtE;SACF,CAAC;aACD,mBAAmB,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,oBAAoB,EAAE,CAAC;oBACvB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC3B;gBACD,iBAAiB;aAClB;SACF,CAAC,CAAC;QAEL,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,MAAM,WAAW,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAC/C,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAChD,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAG;YACpB,IAAI,EAAE,OAAO;YACb,oBAAoB,EAAE,CAAC;YACvB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SAC5B,CAAC;QACF,gBAAgB,CAAC,mBAAmB;aACjC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;aAC7D,mBAAmB,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,OAAO;oBACb,oBAAoB,EAAE,CAAC;oBACvB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;iBAC3B;aACF;SACF,CAAC,CAAC;QAEL,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,MAAM,WAAW,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAC3C,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAC5C,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC7D,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;QACjC,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAChE,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,eAAe,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAC3C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAAC;QAC/C,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,EAAE,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACvC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAExD,MAAM,YAAY,GAAG,IAAA,+BAAgB,EAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QAEhC,MAAM,eAAe,GAAG,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC7D,eAAe,CAAC,iBAAiB,GAAG,WAAW,CAAC;QAChD,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAE9C,MAAM,eAAe,GAAG,IAAA,qCAAmB,EAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,eAAe,GAAG,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC;QACxD,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAE9C,mCAAmC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzE,MAAM,EAAE,GAAG,IAAA,uDAA4B,EAAC,WAAW,CAAC,CAAC;QACrD,EAAE,CAAC,cAAc,EAAE,CAAC;QAEpB,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACnC,OAAO,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n makeAppObjectRepo,\n} from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeMockEventEntity } from \"../../EventSystem/Mocks\";\nimport { makeMockStateMachine } from \"../../StateMachine/Mocks\";\nimport { makeMockUndoRedo } from \"../../UndoRedo/Mocks\";\nimport { makeProcedureEntity } from \"../Entities/ProcedureEntity\";\nimport { AddProcedureEventUC } from \"./AddProcedureEventUC\";\nimport {\n makeRecordProcedureSessionUC,\n RecordProcedureSessionUC,\n} from \"./RecordProcedureSessionUC\";\n\nconst defaultSnapshot = {\n version: 2,\n systems: [\n { name: \"amtec\", serializationVersion: 1, state: { powerIsOn: false } },\n { name: \"procedure\", serializationVersion: 1, state: { events: [] } },\n ],\n};\n\nclass MockChallengeEntity extends AppObjectEntity {\n static readonly type = \"ChallengeEntity\";\n private _selectedChallenge = \"NONE\";\n private observers: (() => void)[] = [];\n\n get selectedChallenge(): string {\n return this._selectedChallenge;\n }\n\n set selectedChallenge(id: string) {\n this._selectedChallenge = id;\n this.notifyObservers();\n }\n\n addChangeObserver = (observer: () => void): void => {\n this.observers.push(observer);\n };\n\n removeChangeObserver = (observer: () => void): void => {\n const index = this.observers.indexOf(observer);\n if (index >= 0) this.observers.splice(index, 1);\n };\n\n private notifyObservers(): void {\n this.observers.forEach((o) => o());\n }\n\n constructor(appObject: AppObject) {\n super(appObject, MockChallengeEntity.type);\n }\n}\n\nclass MockAddProcedureEventUC extends AddProcedureEventUC {\n addEvent = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, AddProcedureEventUC.type);\n }\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const procedureAO = appObjects.getOrCreate(\"Procedure\");\n\n const baseAppState = makeBaseAppState(appObjects.getOrCreate(\"App\"));\n baseAppState.isAuthoring = true;\n\n const challengeEntity = new MockChallengeEntity(procedureAO);\n challengeEntity.selectedChallenge = \"PROCEDURE\";\n appObjects.registerSingleton(challengeEntity);\n\n const procedureEntity = makeProcedureEntity(procedureAO);\n\n const mockEventEntity = makeMockEventEntity(appObjects);\n appObjects.registerSingleton(mockEventEntity);\n\n const mockStateMachine = makeMockStateMachine(appObjects);\n mockStateMachine.getSerializedStates.mockReturnValue(defaultSnapshot);\n appObjects.registerSingleton(mockStateMachine);\n\n const mockUndoRedo = makeMockUndoRedo(appObjects);\n mockUndoRedo.clearStack = jest.fn();\n appObjects.registerSingleton(mockUndoRedo);\n\n const mockAddProcedureEventUC = new MockAddProcedureEventUC(procedureAO);\n\n const uc = makeRecordProcedureSessionUC(procedureAO);\n\n return {\n appObjects,\n baseAppState,\n challengeEntity,\n procedureEntity,\n mockEventEntity,\n mockStateMachine,\n mockUndoRedo,\n mockAddProcedureEventUC,\n uc,\n };\n}\n\ndescribe(\"RecordProcedureSessionUC\", () => {\n it(\"gets the UC from appObjects\", () => {\n const { uc, appObjects } = makeTestRig();\n expect(RecordProcedureSessionUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"starts recording and sets procedureEntity.isRecording to true\", () => {\n const { uc, procedureEntity } = makeTestRig();\n uc.startRecording();\n expect(procedureEntity.isRecording).toEqual(true);\n });\n\n it(\"registers an emission listener on EventEntity when recording starts\", () => {\n const { uc, mockEventEntity } = makeTestRig();\n uc.startRecording();\n expect(mockEventEntity.addEmissionListener).toHaveBeenCalled();\n });\n\n it(\"does not start recording when not authoring\", () => {\n const { uc, procedureEntity, baseAppState } = makeTestRig();\n baseAppState.isAuthoring = false;\n uc.startRecording();\n expect(procedureEntity.isRecording).toEqual(false);\n });\n\n it(\"does not start recording when challenge is not PROCEDURE\", () => {\n const { uc, procedureEntity, challengeEntity } = makeTestRig();\n challengeEntity.selectedChallenge = \"NONE\";\n uc.startRecording();\n expect(procedureEntity.isRecording).toEqual(false);\n });\n\n it(\"does not start recording if already recording\", () => {\n const { uc, mockEventEntity } = makeTestRig();\n uc.startRecording();\n uc.startRecording();\n expect(mockEventEntity.addEmissionListener).toHaveBeenCalledTimes(1);\n });\n\n it(\"stops recording and sets procedureEntity.isRecording to false\", () => {\n const { uc, procedureEntity } = makeTestRig();\n uc.startRecording();\n uc.stopRecording();\n expect(procedureEntity.isRecording).toEqual(false);\n });\n\n it(\"removes emission listener when recording stops\", () => {\n const { uc, mockEventEntity } = makeTestRig();\n uc.startRecording();\n uc.stopRecording();\n expect(mockEventEntity.removeEmissionListener).toHaveBeenCalled();\n });\n\n it(\"does nothing when stopping if not recording\", () => {\n const { uc, procedureEntity, mockEventEntity } = makeTestRig();\n uc.stopRecording();\n expect(procedureEntity.isRecording).toEqual(false);\n expect(mockEventEntity.removeEmissionListener).not.toHaveBeenCalled();\n });\n\n it(\"adds emitted events to the procedure while recording\", () => {\n const { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\n uc.startRecording();\n const emissionCallback =\n mockEventEntity.addEmissionListener.mock.calls[0][0];\n emissionCallback(\"master-on-pressed\");\n expect(mockAddProcedureEventUC.addEvent).toHaveBeenCalledWith(\n \"master-on-pressed\",\n );\n });\n\n it(\"adds multiple events including duplicates while recording\", () => {\n const { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\n uc.startRecording();\n const emissionCallback =\n mockEventEntity.addEmissionListener.mock.calls[0][0];\n emissionCallback(\"master-on-pressed\");\n emissionCallback(\"master-on-pressed\");\n emissionCallback(\"mode-switch-auto\");\n expect(mockAddProcedureEventUC.addEvent).toHaveBeenCalledTimes(3);\n });\n\n it(\"does not add events after stopping\", () => {\n const { uc, mockEventEntity, mockAddProcedureEventUC } = makeTestRig();\n uc.startRecording();\n uc.stopRecording();\n const emissionCallback =\n mockEventEntity.addEmissionListener.mock.calls[0][0];\n emissionCallback(\"test-event\");\n expect(mockAddProcedureEventUC.addEvent).not.toHaveBeenCalled();\n });\n\n it(\"auto-stops when isAuthoring becomes false\", () => {\n const { uc, procedureEntity, baseAppState } = makeTestRig();\n uc.startRecording();\n baseAppState.isAuthoring = false;\n expect(procedureEntity.isRecording).toEqual(false);\n });\n\n it(\"auto-stops when challenge changes away from PROCEDURE\", () => {\n const { uc, procedureEntity, challengeEntity } = makeTestRig();\n uc.startRecording();\n challengeEntity.selectedChallenge = \"NONE\";\n expect(procedureEntity.isRecording).toEqual(false);\n });\n\n it(\"does not stop when challenge remains PROCEDURE\", () => {\n const { uc, procedureEntity, challengeEntity } = makeTestRig();\n uc.startRecording();\n challengeEntity.selectedChallenge = \"PROCEDURE\";\n expect(procedureEntity.isRecording).toEqual(true);\n });\n\n it(\"snapshot - captures a state snapshot when recording starts\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n uc.startRecording();\n expect(mockStateMachine.getSerializedStates).toHaveBeenCalledTimes(1);\n });\n\n it(\"snapshot - does not capture a snapshot when guards prevent recording\", () => {\n const { uc, baseAppState, mockStateMachine } = makeTestRig();\n baseAppState.isAuthoring = false;\n uc.startRecording();\n expect(mockStateMachine.getSerializedStates).not.toHaveBeenCalled();\n });\n\n it(\"snapshot - restores the snapshot when recording stops\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n uc.startRecording();\n uc.stopRecording();\n expect(mockStateMachine.setSerializedStates).toHaveBeenCalledWith(\n expect.objectContaining({ version: 2 }),\n mockStateMachine.restoreDurationS,\n );\n });\n\n it(\"snapshot - preserves the current procedure system when restoring\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n const recordedProcedure = {\n name: \"procedure\",\n serializationVersion: 1,\n state: { events: [\"power-switch-turned-on\"] },\n };\n mockStateMachine.getSerializedStates\n .mockReturnValueOnce({\n version: 2,\n systems: [\n {\n name: \"amtec\",\n serializationVersion: 1,\n state: { powerIsOn: false },\n },\n { name: \"procedure\", serializationVersion: 1, state: { events: [] } },\n ],\n })\n .mockReturnValueOnce({\n version: 2,\n systems: [\n {\n name: \"amtec\",\n serializationVersion: 1,\n state: { powerIsOn: true },\n },\n recordedProcedure,\n ],\n });\n\n uc.startRecording();\n uc.stopRecording();\n\n const mergedState = mockStateMachine.setSerializedStates.mock.calls[0][0];\n const procedureInMerge = mergedState.systems.find(\n (s: { name: string }) => s.name === \"procedure\",\n );\n expect(procedureInMerge).toEqual(recordedProcedure);\n });\n\n it(\"snapshot - restores equipment state from the snapshot (not current state)\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n const snapshotAmtec = {\n name: \"amtec\",\n serializationVersion: 1,\n state: { powerIsOn: false },\n };\n mockStateMachine.getSerializedStates\n .mockReturnValueOnce({ version: 2, systems: [snapshotAmtec] })\n .mockReturnValueOnce({\n version: 2,\n systems: [\n {\n name: \"amtec\",\n serializationVersion: 1,\n state: { powerIsOn: true },\n },\n ],\n });\n\n uc.startRecording();\n uc.stopRecording();\n\n const mergedState = mockStateMachine.setSerializedStates.mock.calls[0][0];\n const amtecInMerge = mergedState.systems.find(\n (s: { name: string }) => s.name === \"amtec\",\n );\n expect(amtecInMerge).toEqual(snapshotAmtec);\n });\n\n it(\"snapshot - restores on auto-stop when authoring mode exits\", () => {\n const { uc, baseAppState, mockStateMachine } = makeTestRig();\n uc.startRecording();\n baseAppState.isAuthoring = false;\n expect(mockStateMachine.setSerializedStates).toHaveBeenCalled();\n });\n\n it(\"snapshot - restores on auto-stop when challenge type changes\", () => {\n const { uc, challengeEntity, mockStateMachine } = makeTestRig();\n uc.startRecording();\n challengeEntity.selectedChallenge = \"NONE\";\n expect(mockStateMachine.setSerializedStates).toHaveBeenCalled();\n });\n\n it(\"snapshot - clears the undo stack after restoring\", () => {\n const { uc, mockUndoRedo } = makeTestRig();\n uc.startRecording();\n uc.stopRecording();\n expect(mockUndoRedo.clearStack).toHaveBeenCalled();\n });\n\n it(\"snapshot - does not restore if no snapshot was captured\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n uc.stopRecording();\n expect(mockStateMachine.setSerializedStates).not.toHaveBeenCalled();\n });\n\n it(\"snapshot - does not capture snapshot a second time on duplicate startRecording\", () => {\n const { uc, mockStateMachine } = makeTestRig();\n uc.startRecording();\n uc.startRecording();\n expect(mockStateMachine.getSerializedStates).toHaveBeenCalledTimes(1);\n });\n\n it(\"snapshot - warns and still allows recording when StateMachineEntity is missing\", () => {\n const appObjects = makeAppObjectRepo();\n const procedureAO = appObjects.getOrCreate(\"Procedure\");\n\n const baseAppState = makeBaseAppState(appObjects.getOrCreate(\"App\"));\n baseAppState.isAuthoring = true;\n\n const challengeEntity = new MockChallengeEntity(procedureAO);\n challengeEntity.selectedChallenge = \"PROCEDURE\";\n appObjects.registerSingleton(challengeEntity);\n\n const procedureEntity = makeProcedureEntity(procedureAO);\n\n const mockEventEntity = makeMockEventEntity(appObjects);\n appObjects.registerSingleton(mockEventEntity);\n\n // No StateMachineEntity registered\n const warnSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\n\n const uc = makeRecordProcedureSessionUC(procedureAO);\n uc.startRecording();\n\n expect(warnSpy).toHaveBeenCalled();\n warnSpy.mockRestore();\n expect(procedureEntity.isRecording).toEqual(true);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveProcedureEventUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RemoveProcedureEventUC.ts"],"names":[],"mappings":";;;AAgBA,gEAIC;AApBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,sBAAuB,SAAQ,kBAAW;;AAAhE,wDAWC;AAViB,2BAAI,GAAG,wBAAwB,CAAC;AAIzC,0BAAG,GAAG,CACX,UAAyB,EACW,EAAE,CACtC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAyB,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAGzE,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\n\r\nexport abstract class RemoveProcedureEventUC extends AppObjectUC {\r\n static readonly type = \"RemoveProcedureEventUC\";\r\n\r\n abstract removeEvent(eventId: string): void;\r\n\r\n static get = (\r\n appObjects: AppObjectRepo,\r\n ): RemoveProcedureEventUC | undefined =>\r\n appObjects\r\n .getOrCreate(\"Procedure\")\r\n .getComponent<RemoveProcedureEventUC>(RemoveProcedureEventUC.type);\r\n}\r\n\r\nexport function makeRemoveProcedureEventUC(\r\n appObject: AppObject,\r\n): RemoveProcedureEventUC {\r\n return new RemoveProcedureEventUCImp(appObject);\r\n}\r\n\r\nclass RemoveProcedureEventUCImp extends RemoveProcedureEventUC {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n removeEvent(eventId: string): void {\r\n if (!eventId || eventId.trim() === \"\") {\r\n this.warn(\"Cannot remove empty event ID from procedure\");\r\n return;\r\n }\r\n\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot remove event\");\r\n return;\r\n }\r\n\r\n entity.removeEventId(eventId.trim());\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, RemoveProcedureEventUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RemoveProcedureEventUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RemoveProcedureEventUC.ts"],"names":[],"mappings":";;;AAgBA,gEAIC;AApBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,sBAAuB,SAAQ,kBAAW;;AAAhE,wDAWC;AAViB,2BAAI,GAAG,wBAAwB,CAAC;AAIzC,0BAAG,GAAG,CACX,UAAyB,EACW,EAAE,CACtC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAyB,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAGzE,SAAgB,0BAA0B,CACxC,SAAoB;IAEpB,OAAO,IAAI,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,yBAA0B,SAAQ,sBAAsB;IAC5D,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\n\nexport abstract class RemoveProcedureEventUC extends AppObjectUC {\n static readonly type = \"RemoveProcedureEventUC\";\n\n abstract removeEvent(eventId: string): void;\n\n static get = (\n appObjects: AppObjectRepo,\n ): RemoveProcedureEventUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<RemoveProcedureEventUC>(RemoveProcedureEventUC.type);\n}\n\nexport function makeRemoveProcedureEventUC(\n appObject: AppObject,\n): RemoveProcedureEventUC {\n return new RemoveProcedureEventUCImp(appObject);\n}\n\nclass RemoveProcedureEventUCImp extends RemoveProcedureEventUC {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n removeEvent(eventId: string): void {\n if (!eventId || eventId.trim() === \"\") {\n this.warn(\"Cannot remove empty event ID from procedure\");\n return;\n }\n\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot remove event\");\n return;\n }\n\n entity.removeEventId(eventId.trim());\n }\n\n constructor(appObject: AppObject) {\n super(appObject, RemoveProcedureEventUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RemoveProcedureEventUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RemoveProcedureEventUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,iEAAmF;AACnF,qEAA8F;AAE9F,SAAS,WAAW;IACnB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;IACvD,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAA,mDAA0B,EAAC,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACvD,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACjD,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,+CAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC9B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACxD,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAC1D,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAA,mDAA0B,EAAC,SAAS,CAAC,CAAC;QACjD,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { RemoveProcedureEventUC, makeRemoveProcedureEventUC } from \"./RemoveProcedureEventUC\";\r\n\r\nfunction makeTestRig() {\r\n\tconst appObjects = makeAppObjectRepo();\r\n\tconst appObject = appObjects.getOrCreate(\"Procedure\");\r\n\tconst procedureEntity = makeProcedureEntity(appObject);\r\n\tprocedureEntity.addEventId(\"event_a\");\r\n\tprocedureEntity.addEventId(\"event_b\");\r\n\tconst uc = makeRemoveProcedureEventUC(appObject);\r\n\treturn { appObjects, appObject, procedureEntity, uc };\r\n}\r\n\r\ndescribe(\"RemoveProcedureEventUC\", () => {\r\n\tit(\"can be retrieved via static get method\", () => {\r\n\t\tconst { appObjects, uc } = makeTestRig();\r\n\t\texpect(RemoveProcedureEventUC.get(appObjects)).toBe(uc);\r\n\t});\r\n\r\n\tit(\"removes an existing event ID from the entity\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tuc.removeEvent(\"event_a\");\r\n\t\texpect(procedureEntity.eventIds).toEqual([\"event_b\"]);\r\n\t});\r\n\r\n\tit(\"trims whitespace before removing\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tuc.removeEvent(\" event_a \");\r\n\t\texpect(procedureEntity.eventIds).toEqual([\"event_b\"]);\r\n\t});\r\n\r\n\tit(\"warns and does not remove for empty event IDs\", () => {\r\n\t\tconst { procedureEntity, uc, appObjects } = makeTestRig();\r\n\t\tappObjects.submitWarning = jest.fn();\r\n\r\n\t\tuc.removeEvent(\"\");\r\n\t\tuc.removeEvent(\" \");\r\n\r\n\t\texpect(procedureEntity.eventIds).toEqual([\"event_a\", \"event_b\"]);\r\n\t\texpect(appObjects.submitWarning).toHaveBeenCalled();\r\n\t});\r\n\r\n\tit(\"warns when ProcedureEntity is not found\", () => {\r\n\t\tconst appObjects = makeAppObjectRepo();\r\n\t\tconst appObject = appObjects.getOrCreate(\"Procedure\");\r\n\t\tconst uc = makeRemoveProcedureEventUC(appObject);\r\n\t\tappObjects.submitWarning = jest.fn();\r\n\r\n\t\tuc.removeEvent(\"event_a\");\r\n\r\n\t\texpect(appObjects.submitWarning).toHaveBeenCalled();\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"RemoveProcedureEventUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/RemoveProcedureEventUC.test.ts"],"names":[],"mappings":";;AAAA,sCAAgD;AAChD,iEAGqC;AACrC,qEAGkC;AAElC,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;IACvC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;IACvD,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,IAAA,mDAA0B,EAAC,SAAS,CAAC,CAAC;IACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,+CAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAC9C,EAAE,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC9B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAC1D,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACnB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEtB,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACvC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,IAAA,mDAA0B,EAAC,SAAS,CAAC,CAAC;QACjD,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAErC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n RemoveProcedureEventUC,\n makeRemoveProcedureEventUC,\n} from \"./RemoveProcedureEventUC\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const procedureEntity = makeProcedureEntity(appObject);\n procedureEntity.addEventId(\"event_a\");\n procedureEntity.addEventId(\"event_b\");\n const uc = makeRemoveProcedureEventUC(appObject);\n return { appObjects, appObject, procedureEntity, uc };\n}\n\ndescribe(\"RemoveProcedureEventUC\", () => {\n it(\"can be retrieved via static get method\", () => {\n const { appObjects, uc } = makeTestRig();\n expect(RemoveProcedureEventUC.get(appObjects)).toBe(uc);\n });\n\n it(\"removes an existing event ID from the entity\", () => {\n const { procedureEntity, uc } = makeTestRig();\n uc.removeEvent(\"event_a\");\n expect(procedureEntity.eventIds).toEqual([\"event_b\"]);\n });\n\n it(\"trims whitespace before removing\", () => {\n const { procedureEntity, uc } = makeTestRig();\n uc.removeEvent(\" event_a \");\n expect(procedureEntity.eventIds).toEqual([\"event_b\"]);\n });\n\n it(\"warns and does not remove for empty event IDs\", () => {\n const { procedureEntity, uc, appObjects } = makeTestRig();\n appObjects.submitWarning = jest.fn();\n\n uc.removeEvent(\"\");\n uc.removeEvent(\" \");\n\n expect(procedureEntity.eventIds).toEqual([\"event_a\", \"event_b\"]);\n expect(appObjects.submitWarning).toHaveBeenCalled();\n });\n\n it(\"warns when ProcedureEntity is not found\", () => {\n const appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const uc = makeRemoveProcedureEventUC(appObject);\n appObjects.submitWarning = jest.fn();\n\n uc.removeEvent(\"event_a\");\n\n expect(appObjects.submitWarning).toHaveBeenCalled();\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ResetProcedureProgressUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/ResetProcedureProgressUC.ts"],"names":[],"mappings":";;;AAiBA,oEAIC;AArBD,sCAAoE;AACpE,iEAA8D;AAC9D,mDAAgD;AAEhD,MAAsB,wBAAyB,SAAQ,kBAAW;;AAAlE,4DAWC;AAViB,6BAAI,GAAG,0BAA0B,CAAC;AAI3C,4BAAG,GAAG,CACX,UAAyB,EACa,EAAE,CACxC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAA2B,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAG7E,SAAgB,4BAA4B,CAC1C,SAAoB;IAEpB,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,2BAA4B,SAAQ,wBAAwB;IAChE,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,yBAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { EventEntity } from \"../../EventSystem\";\r\n\r\nexport abstract class ResetProcedureProgressUC extends AppObjectUC {\r\n static readonly type = \"ResetProcedureProgressUC\";\r\n\r\n abstract resetProgress(): void;\r\n\r\n static get = (\r\n appObjects: AppObjectRepo,\r\n ): ResetProcedureProgressUC | undefined =>\r\n appObjects\r\n .getOrCreate(\"Procedure\")\r\n .getComponent<ResetProcedureProgressUC>(ResetProcedureProgressUC.type);\r\n}\r\n\r\nexport function makeResetProcedureProgressUC(\r\n appObject: AppObject,\r\n): ResetProcedureProgressUC {\r\n return new ResetProcedureProgressUCImp(appObject);\r\n}\r\n\r\nclass ResetProcedureProgressUCImp extends ResetProcedureProgressUC {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n private get eventEntity(): EventEntity | undefined {\r\n return EventEntity.get(this.appObjects);\r\n }\r\n\r\n resetProgress(): void {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot reset progress\");\r\n return;\r\n }\r\n\r\n entity.reset();\r\n\r\n const eventEntity = this.eventEntity;\r\n if (eventEntity) {\r\n eventEntity.reset();\r\n }\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ResetProcedureProgressUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ResetProcedureProgressUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/ResetProcedureProgressUC.ts"],"names":[],"mappings":";;;AAiBA,oEAIC;AArBD,sCAAoE;AACpE,iEAA8D;AAC9D,mDAAgD;AAEhD,MAAsB,wBAAyB,SAAQ,kBAAW;;AAAlE,4DAWC;AAViB,6BAAI,GAAG,0BAA0B,CAAC;AAI3C,4BAAG,GAAG,CACX,UAAyB,EACa,EAAE,CACxC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAA2B,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAG7E,SAAgB,4BAA4B,CAC1C,SAAoB;IAEpB,OAAO,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,2BAA4B,SAAQ,wBAAwB;IAChE,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,yBAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,CAAC;QAEf,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\nimport { EventEntity } from \"../../EventSystem\";\n\nexport abstract class ResetProcedureProgressUC extends AppObjectUC {\n static readonly type = \"ResetProcedureProgressUC\";\n\n abstract resetProgress(): void;\n\n static get = (\n appObjects: AppObjectRepo,\n ): ResetProcedureProgressUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<ResetProcedureProgressUC>(ResetProcedureProgressUC.type);\n}\n\nexport function makeResetProcedureProgressUC(\n appObject: AppObject,\n): ResetProcedureProgressUC {\n return new ResetProcedureProgressUCImp(appObject);\n}\n\nclass ResetProcedureProgressUCImp extends ResetProcedureProgressUC {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n private get eventEntity(): EventEntity | undefined {\n return EventEntity.get(this.appObjects);\n }\n\n resetProgress(): void {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot reset progress\");\n return;\n }\n\n entity.reset();\n\n const eventEntity = this.eventEntity;\n if (eventEntity) {\n eventEntity.reset();\n }\n }\n\n constructor(appObject: AppObject) {\n super(appObject, ResetProcedureProgressUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ResetProcedureProgressUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/ResetProcedureProgressUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport {\r\n ResetProcedureProgressUC,\r\n makeResetProcedureProgressUC,\r\n} from \"./ResetProcedureProgressUC\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { EventEntity, makeEventEntity } from \"../../EventSystem/Entities/EventEntity\";\r\n\r\ndescribe(\"ResetProcedureProgressUC\", () => {\r\n let appObjects: AppObjectRepo;\r\n let procedureEntity: ProcedureEntity;\r\n let eventEntity: EventEntity;\r\n let resetUC: ResetProcedureProgressUC;\r\n\r\n beforeEach(() => {\r\n appObjects = makeAppObjectRepo();\r\n const appObject = appObjects.getOrCreate(\"Procedure\");\r\n\r\n procedureEntity = makeProcedureEntity(appObject);\r\n eventEntity = makeEventEntity(appObjects.getOrCreate(\"EventSystem\"));\r\n\r\n resetUC = makeResetProcedureProgressUC(appObject);\r\n });\r\n\r\n it(\"resets ProcedureEntity when resetting progress\", () => {\r\n procedureEntity.addEventId(\"event1\");\r\n procedureEntity.recordUserEvent(\"event1\");\r\n\r\n resetUC.resetProgress();\r\n\r\n expect(procedureEntity.userEventLog).toEqual([]);\r\n });\r\n\r\n it(\"resets EventEntity when resetting progress\", () => {\r\n eventEntity.register(\"event1\", \"Event 1\");\r\n eventEntity.emit(\"event1\");\r\n\r\n expect(eventEntity.getLastEmittedId()).toBe(\"event1\");\r\n\r\n resetUC.resetProgress();\r\n\r\n expect(eventEntity.getLastEmittedId()).toBeNull();\r\n expect(eventEntity.getEmittedEvents()).toEqual([]);\r\n });\r\n\r\n it(\"handles missing EventEntity gracefully\", () => {\r\n const freshAppObjects = makeAppObjectRepo();\r\n const freshAppObject = freshAppObjects.getOrCreate(\"Procedure\");\r\n makeProcedureEntity(freshAppObject);\r\n const freshUC = makeResetProcedureProgressUC(freshAppObject);\r\n\r\n expect(() => freshUC.resetProgress()).not.toThrow();\r\n });\r\n\r\n it(\"warns when ProcedureEntity is not found\", () => {\r\n const freshAppObjects = makeAppObjectRepo();\r\n const freshAppObject = freshAppObjects.getOrCreate(\"Procedure\");\r\n const freshUC = makeResetProcedureProgressUC(freshAppObject);\r\n const warnSpy = jest.spyOn(freshUC, \"warn\");\r\n\r\n freshUC.resetProgress();\r\n\r\n expect(warnSpy).toHaveBeenCalledWith(\r\n \"ProcedureEntity not found - cannot reset progress\",\r\n );\r\n });\r\n\r\n it(\"can be retrieved via static get method\", () => {\r\n const retrieved = ResetProcedureProgressUC.get(appObjects);\r\n expect(retrieved).toBe(resetUC);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"ResetProcedureProgressUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/ResetProcedureProgressUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\nimport {\n ResetProcedureProgressUC,\n makeResetProcedureProgressUC,\n} from \"./ResetProcedureProgressUC\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n EventEntity,\n makeEventEntity,\n} from \"../../EventSystem/Entities/EventEntity\";\n\ndescribe(\"ResetProcedureProgressUC\", () => {\n let appObjects: AppObjectRepo;\n let procedureEntity: ProcedureEntity;\n let eventEntity: EventEntity;\n let resetUC: ResetProcedureProgressUC;\n\n beforeEach(() => {\n appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n\n procedureEntity = makeProcedureEntity(appObject);\n eventEntity = makeEventEntity(appObjects.getOrCreate(\"EventSystem\"));\n\n resetUC = makeResetProcedureProgressUC(appObject);\n });\n\n it(\"resets ProcedureEntity when resetting progress\", () => {\n procedureEntity.addEventId(\"event1\");\n procedureEntity.recordUserEvent(\"event1\");\n\n resetUC.resetProgress();\n\n expect(procedureEntity.userEventLog).toEqual([]);\n });\n\n it(\"resets EventEntity when resetting progress\", () => {\n eventEntity.register(\"event1\", \"Event 1\");\n eventEntity.emit(\"event1\");\n\n expect(eventEntity.getLastEmittedId()).toBe(\"event1\");\n\n resetUC.resetProgress();\n\n expect(eventEntity.getLastEmittedId()).toBeNull();\n expect(eventEntity.getEmittedEvents()).toEqual([]);\n });\n\n it(\"handles missing EventEntity gracefully\", () => {\n const freshAppObjects = makeAppObjectRepo();\n const freshAppObject = freshAppObjects.getOrCreate(\"Procedure\");\n makeProcedureEntity(freshAppObject);\n const freshUC = makeResetProcedureProgressUC(freshAppObject);\n\n expect(() => freshUC.resetProgress()).not.toThrow();\n });\n\n it(\"warns when ProcedureEntity is not found\", () => {\n const freshAppObjects = makeAppObjectRepo();\n const freshAppObject = freshAppObjects.getOrCreate(\"Procedure\");\n const freshUC = makeResetProcedureProgressUC(freshAppObject);\n const warnSpy = jest.spyOn(freshUC, \"warn\");\n\n freshUC.resetProgress();\n\n expect(warnSpy).toHaveBeenCalledWith(\n \"ProcedureEntity not found - cannot reset progress\",\n );\n });\n\n it(\"can be retrieved via static get method\", () => {\n const retrieved = ResetProcedureProgressUC.get(appObjects);\n expect(retrieved).toBe(resetUC);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SerializeProcedure.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SerializeProcedure.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectUC,\r\n AppObjectRepo,\r\n getSingletonComponent,\r\n} from \"@vived/core\";\r\nimport { StateMachineEntity } from \"../../StateMachine\";\r\nimport { SerializedSystem } from \"../../StateMachine/Entities/StateMachineEntity\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { SerializeProcedureStateV1, PROCEDURE_SYSTEM_NAME } from \"../types\";\r\n\r\nexport abstract class SerializeProcedure\r\n extends AppObjectUC\r\n implements SerializedSystem\r\n{\r\n static readonly type = \"SerializeProcedure\";\r\n\r\n readonly name = PROCEDURE_SYSTEM_NAME;\r\n readonly serializationVersion = 1;\r\n\r\n abstract getSystemState(): object | undefined;\r\n abstract applySystemState(\r\n state: object,\r\n version: number,\r\n transitionDuration: number,\r\n ): void;\r\n abstract applyDefaultState(transitionDuration: number): void;\r\n\r\n static get = (appObjects: AppObjectRepo): SerializeProcedure | undefined =>\r\n getSingletonComponent(SerializeProcedure.type, appObjects);\r\n}\r\n\r\nexport function makeSerializeProcedure(\r\n appObject: AppObject,\r\n): SerializeProcedure {\r\n return new SerializeProcedureImp(appObject);\r\n}\r\n\r\nclass SerializeProcedureImp extends SerializeProcedure {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n private get stateMachineEntity(): StateMachineEntity | undefined {\r\n return StateMachineEntity.get(this.appObjects);\r\n }\r\n\r\n getSystemState(): object | undefined {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot get system state\");\r\n return undefined;\r\n }\r\n\r\n try {\r\n const state: SerializeProcedureStateV1 = {\r\n eventIds: entity.eventIds,\r\n orderMatters: entity.orderMatters,\r\n showHints: entity.showHints,\r\n isQuiz: entity.isQuiz,\r\n };\r\n return state;\r\n } catch (error) {\r\n this.warn(`Error getting procedure state: ${error}`);\r\n return undefined;\r\n }\r\n }\r\n\r\n applySystemState(\r\n state: object,\r\n version: number,\r\n transitionDuration: number,\r\n ): void {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot apply system state\");\r\n return;\r\n }\r\n\r\n try {\r\n if (version !== 1) {\r\n this.warn(\r\n `Unsupported serialization version ${version}, falling back to default state`,\r\n );\r\n this.applyDefaultState(transitionDuration);\r\n return;\r\n }\r\n\r\n const procedureData = state as SerializeProcedureStateV1;\r\n if (!this.isValidV1Data(procedureData)) {\r\n this.warn(\r\n \"Invalid procedure data format, falling back to default state\",\r\n );\r\n this.applyDefaultState(transitionDuration);\r\n return;\r\n }\r\n\r\n entity.clearEventIds();\r\n procedureData.eventIds.forEach((eventId) => entity.addEventId(eventId));\r\n entity.setOrderMatters(procedureData.orderMatters);\r\n entity.setShowHints(procedureData.showHints);\r\n entity.setIsQuiz(procedureData.isQuiz);\r\n\r\n entity.reset();\r\n } catch (error) {\r\n this.warn(\r\n `Error applying procedure state: ${error}, falling back to default state`,\r\n );\r\n this.applyDefaultState(transitionDuration);\r\n }\r\n }\r\n\r\n applyDefaultState(_transitionDuration: number): void {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot apply default state\");\r\n return;\r\n }\r\n\r\n try {\r\n entity.clearEventIds();\r\n entity.setOrderMatters(true);\r\n entity.setShowHints(true);\r\n entity.setIsQuiz(false);\r\n entity.reset();\r\n } catch (error) {\r\n this.warn(`Error applying default procedure state: ${error}`);\r\n }\r\n }\r\n\r\n private isValidV1Data(data: any): data is SerializeProcedureStateV1 {\r\n return (\r\n data &&\r\n typeof data === \"object\" &&\r\n Array.isArray(data.eventIds) &&\r\n data.eventIds.every((id: any) => typeof id === \"string\") &&\r\n typeof data.orderMatters === \"boolean\" &&\r\n typeof data.showHints === \"boolean\" &&\r\n typeof data.isQuiz === \"boolean\"\r\n );\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SerializeProcedure.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n\r\n const stateMachine = this.stateMachineEntity;\r\n if (stateMachine) {\r\n stateMachine.registerSerializedSystem(this);\r\n } else {\r\n this.warn(\r\n \"StateMachineEntity not found - procedure state will not persist\",\r\n );\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SerializeProcedure.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SerializeProcedure.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectUC,\n AppObjectRepo,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { StateMachineEntity } from \"../../StateMachine\";\nimport { SerializedSystem } from \"../../StateMachine/Entities/StateMachineEntity\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\nimport { SerializeProcedureStateV1, PROCEDURE_SYSTEM_NAME } from \"../types\";\n\nexport abstract class SerializeProcedure\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeProcedure\";\n\n readonly name = PROCEDURE_SYSTEM_NAME;\n readonly serializationVersion = 1;\n\n abstract getSystemState(): object | undefined;\n abstract applySystemState(\n state: object,\n version: number,\n transitionDuration: number,\n ): void;\n abstract applyDefaultState(transitionDuration: number): void;\n\n static get = (appObjects: AppObjectRepo): SerializeProcedure | undefined =>\n getSingletonComponent(SerializeProcedure.type, appObjects);\n}\n\nexport function makeSerializeProcedure(\n appObject: AppObject,\n): SerializeProcedure {\n return new SerializeProcedureImp(appObject);\n}\n\nclass SerializeProcedureImp extends SerializeProcedure {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n private get stateMachineEntity(): StateMachineEntity | undefined {\n return StateMachineEntity.get(this.appObjects);\n }\n\n getSystemState(): object | undefined {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot get system state\");\n return undefined;\n }\n\n try {\n const state: SerializeProcedureStateV1 = {\n eventIds: entity.eventIds,\n orderMatters: entity.orderMatters,\n showHints: entity.showHints,\n isQuiz: entity.isQuiz,\n };\n return state;\n } catch (error) {\n this.warn(`Error getting procedure state: ${error}`);\n return undefined;\n }\n }\n\n applySystemState(\n state: object,\n version: number,\n transitionDuration: number,\n ): void {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot apply system state\");\n return;\n }\n\n try {\n if (version !== 1) {\n this.warn(\n `Unsupported serialization version ${version}, falling back to default state`,\n );\n this.applyDefaultState(transitionDuration);\n return;\n }\n\n const procedureData = state as SerializeProcedureStateV1;\n if (!this.isValidV1Data(procedureData)) {\n this.warn(\n \"Invalid procedure data format, falling back to default state\",\n );\n this.applyDefaultState(transitionDuration);\n return;\n }\n\n entity.clearEventIds();\n procedureData.eventIds.forEach((eventId) => entity.addEventId(eventId));\n entity.setOrderMatters(procedureData.orderMatters);\n entity.setShowHints(procedureData.showHints);\n entity.setIsQuiz(procedureData.isQuiz);\n\n entity.reset();\n } catch (error) {\n this.warn(\n `Error applying procedure state: ${error}, falling back to default state`,\n );\n this.applyDefaultState(transitionDuration);\n }\n }\n\n applyDefaultState(_transitionDuration: number): void {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot apply default state\");\n return;\n }\n\n try {\n entity.clearEventIds();\n entity.setOrderMatters(true);\n entity.setShowHints(true);\n entity.setIsQuiz(false);\n entity.reset();\n } catch (error) {\n this.warn(`Error applying default procedure state: ${error}`);\n }\n }\n\n private isValidV1Data(data: any): data is SerializeProcedureStateV1 {\n return (\n data &&\n typeof data === \"object\" &&\n Array.isArray(data.eventIds) &&\n data.eventIds.every((id: any) => typeof id === \"string\") &&\n typeof data.orderMatters === \"boolean\" &&\n typeof data.showHints === \"boolean\" &&\n typeof data.isQuiz === \"boolean\"\n );\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SerializeProcedure.type);\n\n this.appObjects.registerSingleton(this);\n\n const stateMachine = this.stateMachineEntity;\n if (stateMachine) {\n stateMachine.registerSerializedSystem(this);\n } else {\n this.warn(\n \"StateMachineEntity not found - procedure state will not persist\",\n );\n }\n }\n}\n"]}
@@ -67,7 +67,12 @@ describe("SerializeProcedure", () => {
67
67
  const { procedureEntity, uc } = makeTestRig();
68
68
  procedureEntity.addEventId("old_event");
69
69
  const consoleSpy = jest.spyOn(console, "warn").mockImplementation(() => { });
70
- uc.applySystemState({ eventIds: ["new_event"], orderMatters: false, showHints: false, isQuiz: false }, 99, 0);
70
+ uc.applySystemState({
71
+ eventIds: ["new_event"],
72
+ orderMatters: false,
73
+ showHints: false,
74
+ isQuiz: false,
75
+ }, 99, 0);
71
76
  expect(procedureEntity.eventIds).toEqual([]);
72
77
  expect(procedureEntity.orderMatters).toBe(true);
73
78
  consoleSpy.mockRestore();
@@ -1 +1 @@
1
- {"version":3,"file":"SerializeProcedure.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SerializeProcedure.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeStateMachineEntity } from \"../../StateMachine/Entities/StateMachineEntity\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport { SerializeProcedure, makeSerializeProcedure } from \"./SerializeProcedure\";\r\n\r\nfunction makeTestRig() {\r\n\tconst appObjects = makeAppObjectRepo();\r\n\tconst appObject = appObjects.getOrCreate(\"Procedure\");\r\n\tconst stateMachine = makeStateMachineEntity(appObjects.getOrCreate(\"StateMachine\"));\r\n\tconst procedureEntity = makeProcedureEntity(appObject);\r\n\tconst uc = makeSerializeProcedure(appObject);\r\n\treturn { appObjects, appObject, procedureEntity, stateMachine, uc };\r\n}\r\n\r\ndescribe(\"SerializeProcedure\", () => {\r\n\tit(\"can be retrieved via static get method\", () => {\r\n\t\tconst { appObjects, uc } = makeTestRig();\r\n\t\texpect(SerializeProcedure.get(appObjects)).toBe(uc);\r\n\t});\r\n\r\n\tit(\"registers itself with the StateMachineEntity\", () => {\r\n\t\tconst { uc } = makeTestRig();\r\n\t\texpect(uc.name).toBe(\"procedure\");\r\n\t});\r\n\r\n\tit(\"has the correct name and serialization version\", () => {\r\n\t\tconst { uc } = makeTestRig();\r\n\t\texpect(uc.name).toBe(\"procedure\");\r\n\t\texpect(uc.serializationVersion).toBe(1);\r\n\t});\r\n\r\n\tit(\"getSystemState returns correct V1 shape\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tprocedureEntity.addEventId(\"event_a\");\r\n\t\tprocedureEntity.addEventId(\"event_b\");\r\n\t\tprocedureEntity.setOrderMatters(false);\r\n\t\tprocedureEntity.setShowHints(false);\r\n\t\tprocedureEntity.setIsQuiz(true);\r\n\r\n\t\tconst state = uc.getSystemState();\r\n\r\n\t\texpect(state).toEqual({\r\n\t\t\teventIds: [\"event_a\", \"event_b\"],\r\n\t\t\torderMatters: false,\r\n\t\t\tshowHints: false,\r\n\t\t\tisQuiz: true,\r\n\t\t});\r\n\t});\r\n\r\n\tit(\"getSystemState returns undefined when ProcedureEntity is not found\", () => {\r\n\t\tconst appObjects = makeAppObjectRepo();\r\n\t\tmakeStateMachineEntity(appObjects.getOrCreate(\"StateMachine\"));\r\n\t\tconst uc = makeSerializeProcedure(appObjects.getOrCreate(\"Procedure\"));\r\n\t\tconst consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\r\n\r\n\t\texpect(uc.getSystemState()).toBeUndefined();\r\n\t\tconsoleSpy.mockRestore();\r\n\t});\r\n\r\n\tit(\"applySystemState restores entity from valid V1 data\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tconst state = {\r\n\t\t\teventIds: [\"ev1\", \"ev2\"],\r\n\t\t\torderMatters: false,\r\n\t\t\tshowHints: false,\r\n\t\t\tisQuiz: true,\r\n\t\t};\r\n\r\n\t\tuc.applySystemState(state, 1, 0);\r\n\r\n\t\texpect(procedureEntity.eventIds).toEqual([\"ev1\", \"ev2\"]);\r\n\t\texpect(procedureEntity.orderMatters).toBe(false);\r\n\t\texpect(procedureEntity.showHints).toBe(false);\r\n\t\texpect(procedureEntity.isQuiz).toBe(true);\r\n\t});\r\n\r\n\tit(\"applySystemState falls back to default for unsupported version\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tprocedureEntity.addEventId(\"old_event\");\r\n\t\tconst consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\r\n\r\n\t\tuc.applySystemState({ eventIds: [\"new_event\"], orderMatters: false, showHints: false, isQuiz: false }, 99, 0);\r\n\r\n\t\texpect(procedureEntity.eventIds).toEqual([]);\r\n\t\texpect(procedureEntity.orderMatters).toBe(true);\r\n\t\tconsoleSpy.mockRestore();\r\n\t});\r\n\r\n\tit(\"applySystemState falls back to default for invalid data\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tprocedureEntity.addEventId(\"old_event\");\r\n\t\tconst consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\r\n\r\n\t\tuc.applySystemState({ notValid: true }, 1, 0);\r\n\r\n\t\texpect(procedureEntity.eventIds).toEqual([]);\r\n\t\tconsoleSpy.mockRestore();\r\n\t});\r\n\r\n\tit(\"applyDefaultState resets entity to initial configuration\", () => {\r\n\t\tconst { procedureEntity, uc } = makeTestRig();\r\n\t\tprocedureEntity.addEventId(\"event_a\");\r\n\t\tprocedureEntity.setOrderMatters(false);\r\n\t\tprocedureEntity.setShowHints(false);\r\n\t\tprocedureEntity.setIsQuiz(true);\r\n\r\n\t\tuc.applyDefaultState(0);\r\n\r\n\t\texpect(procedureEntity.eventIds).toEqual([]);\r\n\t\texpect(procedureEntity.orderMatters).toBe(true);\r\n\t\texpect(procedureEntity.showHints).toBe(true);\r\n\t\texpect(procedureEntity.isQuiz).toBe(false);\r\n\t});\r\n});\r\n"]}
1
+ {"version":3,"file":"SerializeProcedure.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SerializeProcedure.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeStateMachineEntity } from \"../../StateMachine/Entities/StateMachineEntity\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n SerializeProcedure,\n makeSerializeProcedure,\n} from \"./SerializeProcedure\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const stateMachine = makeStateMachineEntity(\n appObjects.getOrCreate(\"StateMachine\"),\n );\n const procedureEntity = makeProcedureEntity(appObject);\n const uc = makeSerializeProcedure(appObject);\n return { appObjects, appObject, procedureEntity, stateMachine, uc };\n}\n\ndescribe(\"SerializeProcedure\", () => {\n it(\"can be retrieved via static get method\", () => {\n const { appObjects, uc } = makeTestRig();\n expect(SerializeProcedure.get(appObjects)).toBe(uc);\n });\n\n it(\"registers itself with the StateMachineEntity\", () => {\n const { uc } = makeTestRig();\n expect(uc.name).toBe(\"procedure\");\n });\n\n it(\"has the correct name and serialization version\", () => {\n const { uc } = makeTestRig();\n expect(uc.name).toBe(\"procedure\");\n expect(uc.serializationVersion).toBe(1);\n });\n\n it(\"getSystemState returns correct V1 shape\", () => {\n const { procedureEntity, uc } = makeTestRig();\n procedureEntity.addEventId(\"event_a\");\n procedureEntity.addEventId(\"event_b\");\n procedureEntity.setOrderMatters(false);\n procedureEntity.setShowHints(false);\n procedureEntity.setIsQuiz(true);\n\n const state = uc.getSystemState();\n\n expect(state).toEqual({\n eventIds: [\"event_a\", \"event_b\"],\n orderMatters: false,\n showHints: false,\n isQuiz: true,\n });\n });\n\n it(\"getSystemState returns undefined when ProcedureEntity is not found\", () => {\n const appObjects = makeAppObjectRepo();\n makeStateMachineEntity(appObjects.getOrCreate(\"StateMachine\"));\n const uc = makeSerializeProcedure(appObjects.getOrCreate(\"Procedure\"));\n const consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\n\n expect(uc.getSystemState()).toBeUndefined();\n consoleSpy.mockRestore();\n });\n\n it(\"applySystemState restores entity from valid V1 data\", () => {\n const { procedureEntity, uc } = makeTestRig();\n const state = {\n eventIds: [\"ev1\", \"ev2\"],\n orderMatters: false,\n showHints: false,\n isQuiz: true,\n };\n\n uc.applySystemState(state, 1, 0);\n\n expect(procedureEntity.eventIds).toEqual([\"ev1\", \"ev2\"]);\n expect(procedureEntity.orderMatters).toBe(false);\n expect(procedureEntity.showHints).toBe(false);\n expect(procedureEntity.isQuiz).toBe(true);\n });\n\n it(\"applySystemState falls back to default for unsupported version\", () => {\n const { procedureEntity, uc } = makeTestRig();\n procedureEntity.addEventId(\"old_event\");\n const consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\n\n uc.applySystemState(\n {\n eventIds: [\"new_event\"],\n orderMatters: false,\n showHints: false,\n isQuiz: false,\n },\n 99,\n 0,\n );\n\n expect(procedureEntity.eventIds).toEqual([]);\n expect(procedureEntity.orderMatters).toBe(true);\n consoleSpy.mockRestore();\n });\n\n it(\"applySystemState falls back to default for invalid data\", () => {\n const { procedureEntity, uc } = makeTestRig();\n procedureEntity.addEventId(\"old_event\");\n const consoleSpy = jest.spyOn(console, \"warn\").mockImplementation(() => {});\n\n uc.applySystemState({ notValid: true }, 1, 0);\n\n expect(procedureEntity.eventIds).toEqual([]);\n consoleSpy.mockRestore();\n });\n\n it(\"applyDefaultState resets entity to initial configuration\", () => {\n const { procedureEntity, uc } = makeTestRig();\n procedureEntity.addEventId(\"event_a\");\n procedureEntity.setOrderMatters(false);\n procedureEntity.setShowHints(false);\n procedureEntity.setIsQuiz(true);\n\n uc.applyDefaultState(0);\n\n expect(procedureEntity.eventIds).toEqual([]);\n expect(procedureEntity.orderMatters).toBe(true);\n expect(procedureEntity.showHints).toBe(true);\n expect(procedureEntity.isQuiz).toBe(false);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetProcedureIsQuizUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureIsQuizUC.ts"],"names":[],"mappings":";;;AAgBA,4DAIC;AApBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,oBAAqB,SAAQ,kBAAW;;AAA9D,oDAWC;AAViB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,wBAAG,GAAG,CACX,UAAyB,EACS,EAAE,CACpC,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAuB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAGrE,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\n\r\nexport abstract class SetProcedureIsQuizUC extends AppObjectUC {\r\n static readonly type = \"SetProcedureIsQuizUC\";\r\n\r\n abstract setIsQuiz(isQuiz: boolean): void;\r\n\r\n static get = (\r\n appObjects: AppObjectRepo,\r\n ): SetProcedureIsQuizUC | undefined =>\r\n appObjects\r\n .getOrCreate(\"Procedure\")\r\n .getComponent<SetProcedureIsQuizUC>(SetProcedureIsQuizUC.type);\r\n}\r\n\r\nexport function makeSetProcedureIsQuizUC(\r\n appObject: AppObject,\r\n): SetProcedureIsQuizUC {\r\n return new SetProcedureIsQuizUCImp(appObject);\r\n}\r\n\r\nclass SetProcedureIsQuizUCImp extends SetProcedureIsQuizUC {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n setIsQuiz(isQuiz: boolean): void {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot set isQuiz\");\r\n return;\r\n }\r\n\r\n entity.setIsQuiz(isQuiz);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetProcedureIsQuizUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SetProcedureIsQuizUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureIsQuizUC.ts"],"names":[],"mappings":";;;AAcA,4DAIC;AAlBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,oBAAqB,SAAQ,kBAAW;;AAA9D,oDASC;AARiB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,wBAAG,GAAG,CAAC,UAAyB,EAAoC,EAAE,CAC3E,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CAAuB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAGrE,SAAgB,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,SAAS,CAAC,MAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\n\nexport abstract class SetProcedureIsQuizUC extends AppObjectUC {\n static readonly type = \"SetProcedureIsQuizUC\";\n\n abstract setIsQuiz(isQuiz: boolean): void;\n\n static get = (appObjects: AppObjectRepo): SetProcedureIsQuizUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<SetProcedureIsQuizUC>(SetProcedureIsQuizUC.type);\n}\n\nexport function makeSetProcedureIsQuizUC(\n appObject: AppObject,\n): SetProcedureIsQuizUC {\n return new SetProcedureIsQuizUCImp(appObject);\n}\n\nclass SetProcedureIsQuizUCImp extends SetProcedureIsQuizUC {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n setIsQuiz(isQuiz: boolean): void {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot set isQuiz\");\n return;\n }\n\n entity.setIsQuiz(isQuiz);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SetProcedureIsQuizUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetProcedureIsQuizUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureIsQuizUC.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,iEAAmF;AACnF,iEAGgC;AAEhC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,UAAyB,CAAC;IAC9B,IAAI,eAAgC,CAAC;IACrC,IAAI,WAAiC,CAAC;IAEtC,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEtD,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;QACjD,WAAW,GAAG,IAAA,+CAAwB,EAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,2CAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CACtC,2CAAoB,CAAC,IAAI,CAC1B,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;QAE5C,WAAW,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;QAErC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,GAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAA,+CAAwB,EAAC,iBAAiB,CAAC,CAAC;QAE/D,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7C,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport {\r\n SetProcedureIsQuizUC,\r\n makeSetProcedureIsQuizUC,\r\n} from \"./SetProcedureIsQuizUC\";\r\n\r\ndescribe(\"SetProcedureIsQuizUC\", () => {\r\n let appObjects: AppObjectRepo;\r\n let procedureEntity: ProcedureEntity;\r\n let setIsQuizUC: SetProcedureIsQuizUC;\r\n\r\n beforeEach(() => {\r\n appObjects = makeAppObjectRepo();\r\n const appObject = appObjects.getOrCreate(\"Procedure\");\r\n\r\n procedureEntity = makeProcedureEntity(appObject);\r\n setIsQuizUC = makeSetProcedureIsQuizUC(appObject);\r\n });\r\n\r\n it(\"can be retrieved via static get method\", () => {\r\n const retrieved = SetProcedureIsQuizUC.get(appObjects);\r\n expect(retrieved).toBe(setIsQuizUC);\r\n });\r\n\r\n it(\"registers itself on the AppObject\", () => {\r\n const appObject = appObjects.getOrCreate(\"Procedure\");\r\n const retrieved = appObject.getComponent<SetProcedureIsQuizUC>(\r\n SetProcedureIsQuizUC.type,\r\n );\r\n expect(retrieved).toBe(setIsQuizUC);\r\n });\r\n\r\n it(\"successfully sets isQuiz to true\", () => {\r\n expect(procedureEntity.isQuiz).toBe(false);\r\n\r\n setIsQuizUC.setIsQuiz(true);\r\n\r\n expect(procedureEntity.isQuiz).toBe(true);\r\n });\r\n\r\n it(\"successfully sets isQuiz to false\", () => {\r\n setIsQuizUC.setIsQuiz(true);\r\n expect(procedureEntity.isQuiz).toBe(true);\r\n\r\n setIsQuizUC.setIsQuiz(false);\r\n expect(procedureEntity.isQuiz).toBe(false);\r\n });\r\n\r\n it(\"triggers state update when property changes\", () => {\r\n const initialState = procedureEntity.isQuiz;\r\n\r\n setIsQuizUC.setIsQuiz(!initialState);\r\n\r\n expect(procedureEntity.isQuiz).toBe(!initialState);\r\n });\r\n\r\n it(\"handles missing ProcedureEntity gracefully\", () => {\r\n const isolatedAppObjects = makeAppObjectRepo();\r\n const isolatedAppObject = isolatedAppObjects.getOrCreate(\"Isolated\");\r\n const isolatedUC = makeSetProcedureIsQuizUC(isolatedAppObject);\r\n\r\n isolatedAppObjects.submitWarning = jest.fn();\r\n\r\n isolatedUC.setIsQuiz(true);\r\n\r\n expect(isolatedAppObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"SetProcedureIsQuizUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureIsQuizUC.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,iEAGqC;AACrC,iEAGgC;AAEhC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,UAAyB,CAAC;IAC9B,IAAI,eAAgC,CAAC;IACrC,IAAI,WAAiC,CAAC;IAEtC,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEtD,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;QACjD,WAAW,GAAG,IAAA,+CAAwB,EAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,2CAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CACtC,2CAAoB,CAAC,IAAI,CAC1B,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1C,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;QAE5C,WAAW,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;QAErC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,GAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAA,+CAAwB,EAAC,iBAAiB,CAAC,CAAC;QAE/D,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7C,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE3B,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n SetProcedureIsQuizUC,\n makeSetProcedureIsQuizUC,\n} from \"./SetProcedureIsQuizUC\";\n\ndescribe(\"SetProcedureIsQuizUC\", () => {\n let appObjects: AppObjectRepo;\n let procedureEntity: ProcedureEntity;\n let setIsQuizUC: SetProcedureIsQuizUC;\n\n beforeEach(() => {\n appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n\n procedureEntity = makeProcedureEntity(appObject);\n setIsQuizUC = makeSetProcedureIsQuizUC(appObject);\n });\n\n it(\"can be retrieved via static get method\", () => {\n const retrieved = SetProcedureIsQuizUC.get(appObjects);\n expect(retrieved).toBe(setIsQuizUC);\n });\n\n it(\"registers itself on the AppObject\", () => {\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const retrieved = appObject.getComponent<SetProcedureIsQuizUC>(\n SetProcedureIsQuizUC.type,\n );\n expect(retrieved).toBe(setIsQuizUC);\n });\n\n it(\"successfully sets isQuiz to true\", () => {\n expect(procedureEntity.isQuiz).toBe(false);\n\n setIsQuizUC.setIsQuiz(true);\n\n expect(procedureEntity.isQuiz).toBe(true);\n });\n\n it(\"successfully sets isQuiz to false\", () => {\n setIsQuizUC.setIsQuiz(true);\n expect(procedureEntity.isQuiz).toBe(true);\n\n setIsQuizUC.setIsQuiz(false);\n expect(procedureEntity.isQuiz).toBe(false);\n });\n\n it(\"triggers state update when property changes\", () => {\n const initialState = procedureEntity.isQuiz;\n\n setIsQuizUC.setIsQuiz(!initialState);\n\n expect(procedureEntity.isQuiz).toBe(!initialState);\n });\n\n it(\"handles missing ProcedureEntity gracefully\", () => {\n const isolatedAppObjects = makeAppObjectRepo();\n const isolatedAppObject = isolatedAppObjects.getOrCreate(\"Isolated\");\n const isolatedUC = makeSetProcedureIsQuizUC(isolatedAppObject);\n\n isolatedAppObjects.submitWarning = jest.fn();\n\n isolatedUC.setIsQuiz(true);\n\n expect(isolatedAppObjects.submitWarning).toHaveBeenCalled();\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetProcedureOrderMattersUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureOrderMattersUC.ts"],"names":[],"mappings":";;;AAkBA,wEAIC;AAtBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,0BAA2B,SAAQ,kBAAW;;AAApE,gEAaC;AAZiB,+BAAI,GAAG,4BAA4B,CAAC;AAI7C,8BAAG,GAAG,CACX,UAAyB,EACe,EAAE,CAC1C,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CACX,0BAA0B,CAAC,IAAI,CAChC,CAAC;AAGR,SAAgB,8BAA8B,CAC5C,SAAoB;IAEpB,OAAO,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,6BAA8B,SAAQ,0BAA0B;IACpE,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,YAAqB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\r\n\r\nexport abstract class SetProcedureOrderMattersUC extends AppObjectUC {\r\n static readonly type = \"SetProcedureOrderMattersUC\";\r\n\r\n abstract setOrderMatters(orderMatters: boolean): void;\r\n\r\n static get = (\r\n appObjects: AppObjectRepo,\r\n ): SetProcedureOrderMattersUC | undefined =>\r\n appObjects\r\n .getOrCreate(\"Procedure\")\r\n .getComponent<SetProcedureOrderMattersUC>(\r\n SetProcedureOrderMattersUC.type,\r\n );\r\n}\r\n\r\nexport function makeSetProcedureOrderMattersUC(\r\n appObject: AppObject,\r\n): SetProcedureOrderMattersUC {\r\n return new SetProcedureOrderMattersUCImp(appObject);\r\n}\r\n\r\nclass SetProcedureOrderMattersUCImp extends SetProcedureOrderMattersUC {\r\n private get procedureEntity(): ProcedureEntity | undefined {\r\n return ProcedureEntity.get(this.appObjects);\r\n }\r\n\r\n setOrderMatters(orderMatters: boolean): void {\r\n const entity = this.procedureEntity;\r\n if (!entity) {\r\n this.warn(\"ProcedureEntity not found - cannot set orderMatters\");\r\n return;\r\n }\r\n\r\n entity.setOrderMatters(orderMatters);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetProcedureOrderMattersUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SetProcedureOrderMattersUC.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureOrderMattersUC.ts"],"names":[],"mappings":";;;AAkBA,wEAIC;AAtBD,sCAAoE;AACpE,iEAA8D;AAE9D,MAAsB,0BAA2B,SAAQ,kBAAW;;AAApE,gEAaC;AAZiB,+BAAI,GAAG,4BAA4B,CAAC;AAI7C,8BAAG,GAAG,CACX,UAAyB,EACe,EAAE,CAC1C,UAAU;KACP,WAAW,CAAC,WAAW,CAAC;KACxB,YAAY,CACX,0BAA0B,CAAC,IAAI,CAChC,CAAC;AAGR,SAAgB,8BAA8B,CAC5C,SAAoB;IAEpB,OAAO,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,6BAA8B,SAAQ,0BAA0B;IACpE,IAAY,eAAe;QACzB,OAAO,iCAAe,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,eAAe,CAAC,YAAqB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC, AppObjectRepo } from \"@vived/core\";\nimport { ProcedureEntity } from \"../Entities/ProcedureEntity\";\n\nexport abstract class SetProcedureOrderMattersUC extends AppObjectUC {\n static readonly type = \"SetProcedureOrderMattersUC\";\n\n abstract setOrderMatters(orderMatters: boolean): void;\n\n static get = (\n appObjects: AppObjectRepo,\n ): SetProcedureOrderMattersUC | undefined =>\n appObjects\n .getOrCreate(\"Procedure\")\n .getComponent<SetProcedureOrderMattersUC>(\n SetProcedureOrderMattersUC.type,\n );\n}\n\nexport function makeSetProcedureOrderMattersUC(\n appObject: AppObject,\n): SetProcedureOrderMattersUC {\n return new SetProcedureOrderMattersUCImp(appObject);\n}\n\nclass SetProcedureOrderMattersUCImp extends SetProcedureOrderMattersUC {\n private get procedureEntity(): ProcedureEntity | undefined {\n return ProcedureEntity.get(this.appObjects);\n }\n\n setOrderMatters(orderMatters: boolean): void {\n const entity = this.procedureEntity;\n if (!entity) {\n this.warn(\"ProcedureEntity not found - cannot set orderMatters\");\n return;\n }\n\n entity.setOrderMatters(orderMatters);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SetProcedureOrderMattersUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetProcedureOrderMattersUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureOrderMattersUC.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,iEAAmF;AACnF,6EAGsC;AAEtC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,UAAyB,CAAC;IAC9B,IAAI,eAAgC,CAAC;IACrC,IAAI,iBAA6C,CAAC;IAElD,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEtD,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;QACjD,iBAAiB,GAAG,IAAA,2DAA8B,EAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,uDAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CACtC,uDAA0B,CAAC,IAAI,CAChC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QAElD,iBAAiB,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,GAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAA,2DAA8B,EAAC,iBAAiB,CAAC,CAAC;QAErE,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7C,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\r\nimport { ProcedureEntity, makeProcedureEntity } from \"../Entities/ProcedureEntity\";\r\nimport {\r\n SetProcedureOrderMattersUC,\r\n makeSetProcedureOrderMattersUC,\r\n} from \"./SetProcedureOrderMattersUC\";\r\n\r\ndescribe(\"SetProcedureOrderMattersUC\", () => {\r\n let appObjects: AppObjectRepo;\r\n let procedureEntity: ProcedureEntity;\r\n let setOrderMattersUC: SetProcedureOrderMattersUC;\r\n\r\n beforeEach(() => {\r\n appObjects = makeAppObjectRepo();\r\n const appObject = appObjects.getOrCreate(\"Procedure\");\r\n\r\n procedureEntity = makeProcedureEntity(appObject);\r\n setOrderMattersUC = makeSetProcedureOrderMattersUC(appObject);\r\n });\r\n\r\n it(\"can be retrieved via static get method\", () => {\r\n const retrieved = SetProcedureOrderMattersUC.get(appObjects);\r\n expect(retrieved).toBe(setOrderMattersUC);\r\n });\r\n\r\n it(\"registers itself on the AppObject\", () => {\r\n const appObject = appObjects.getOrCreate(\"Procedure\");\r\n const retrieved = appObject.getComponent<SetProcedureOrderMattersUC>(\r\n SetProcedureOrderMattersUC.type,\r\n );\r\n expect(retrieved).toBe(setOrderMattersUC);\r\n });\r\n\r\n it(\"successfully sets orderMatters to false\", () => {\r\n expect(procedureEntity.orderMatters).toBe(true);\r\n\r\n setOrderMattersUC.setOrderMatters(false);\r\n\r\n expect(procedureEntity.orderMatters).toBe(false);\r\n });\r\n\r\n it(\"successfully sets orderMatters to true\", () => {\r\n setOrderMattersUC.setOrderMatters(false);\r\n expect(procedureEntity.orderMatters).toBe(false);\r\n\r\n setOrderMattersUC.setOrderMatters(true);\r\n expect(procedureEntity.orderMatters).toBe(true);\r\n });\r\n\r\n it(\"triggers state update when property changes\", () => {\r\n const initialState = procedureEntity.orderMatters;\r\n\r\n setOrderMattersUC.setOrderMatters(!initialState);\r\n\r\n expect(procedureEntity.orderMatters).toBe(!initialState);\r\n });\r\n\r\n it(\"handles missing ProcedureEntity gracefully\", () => {\r\n const isolatedAppObjects = makeAppObjectRepo();\r\n const isolatedAppObject = isolatedAppObjects.getOrCreate(\"Isolated\");\r\n const isolatedUC = makeSetProcedureOrderMattersUC(isolatedAppObject);\r\n\r\n isolatedAppObjects.submitWarning = jest.fn();\r\n\r\n isolatedUC.setOrderMatters(false);\r\n\r\n expect(isolatedAppObjects.submitWarning).toHaveBeenCalled();\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"SetProcedureOrderMattersUC.test.js","sourceRoot":"","sources":["../../../../src/Procedure/UCs/SetProcedureOrderMattersUC.test.ts"],"names":[],"mappings":";;AAAA,sCAA+D;AAC/D,iEAGqC;AACrC,6EAGsC;AAEtC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,IAAI,UAAyB,CAAC;IAC9B,IAAI,eAAgC,CAAC;IACrC,IAAI,iBAA6C,CAAC;IAElD,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,IAAA,wBAAiB,GAAE,CAAC;QACjC,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEtD,eAAe,GAAG,IAAA,qCAAmB,EAAC,SAAS,CAAC,CAAC;QACjD,iBAAiB,GAAG,IAAA,2DAA8B,EAAC,SAAS,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,SAAS,GAAG,uDAA0B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CACtC,uDAA0B,CAAC,IAAI,CAChC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEzC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,iBAAiB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEjD,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QAElD,iBAAiB,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC;QAEjD,MAAM,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,kBAAkB,GAAG,IAAA,wBAAiB,GAAE,CAAC;QAC/C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAA,2DAA8B,EAAC,iBAAiB,CAAC,CAAC;QAErE,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7C,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { AppObjectRepo, makeAppObjectRepo } from \"@vived/core\";\nimport {\n ProcedureEntity,\n makeProcedureEntity,\n} from \"../Entities/ProcedureEntity\";\nimport {\n SetProcedureOrderMattersUC,\n makeSetProcedureOrderMattersUC,\n} from \"./SetProcedureOrderMattersUC\";\n\ndescribe(\"SetProcedureOrderMattersUC\", () => {\n let appObjects: AppObjectRepo;\n let procedureEntity: ProcedureEntity;\n let setOrderMattersUC: SetProcedureOrderMattersUC;\n\n beforeEach(() => {\n appObjects = makeAppObjectRepo();\n const appObject = appObjects.getOrCreate(\"Procedure\");\n\n procedureEntity = makeProcedureEntity(appObject);\n setOrderMattersUC = makeSetProcedureOrderMattersUC(appObject);\n });\n\n it(\"can be retrieved via static get method\", () => {\n const retrieved = SetProcedureOrderMattersUC.get(appObjects);\n expect(retrieved).toBe(setOrderMattersUC);\n });\n\n it(\"registers itself on the AppObject\", () => {\n const appObject = appObjects.getOrCreate(\"Procedure\");\n const retrieved = appObject.getComponent<SetProcedureOrderMattersUC>(\n SetProcedureOrderMattersUC.type,\n );\n expect(retrieved).toBe(setOrderMattersUC);\n });\n\n it(\"successfully sets orderMatters to false\", () => {\n expect(procedureEntity.orderMatters).toBe(true);\n\n setOrderMattersUC.setOrderMatters(false);\n\n expect(procedureEntity.orderMatters).toBe(false);\n });\n\n it(\"successfully sets orderMatters to true\", () => {\n setOrderMattersUC.setOrderMatters(false);\n expect(procedureEntity.orderMatters).toBe(false);\n\n setOrderMattersUC.setOrderMatters(true);\n expect(procedureEntity.orderMatters).toBe(true);\n });\n\n it(\"triggers state update when property changes\", () => {\n const initialState = procedureEntity.orderMatters;\n\n setOrderMattersUC.setOrderMatters(!initialState);\n\n expect(procedureEntity.orderMatters).toBe(!initialState);\n });\n\n it(\"handles missing ProcedureEntity gracefully\", () => {\n const isolatedAppObjects = makeAppObjectRepo();\n const isolatedAppObject = isolatedAppObjects.getOrCreate(\"Isolated\");\n const isolatedUC = makeSetProcedureOrderMattersUC(isolatedAppObject);\n\n isolatedAppObjects.submitWarning = jest.fn();\n\n isolatedUC.setOrderMatters(false);\n\n expect(isolatedAppObjects.submitWarning).toHaveBeenCalled();\n });\n});\n"]}