@vived/host 4.3.0 → 4.4.1

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 (99) hide show
  1. package/dist/cjs/ChallengeResults/Adapters/challengeScoreListAdapter.js +19 -0
  2. package/dist/cjs/ChallengeResults/Adapters/challengeScoreListAdapter.js.map +1 -0
  3. package/dist/cjs/ChallengeResults/Adapters/index.js +1 -0
  4. package/dist/cjs/ChallengeResults/Adapters/index.js.map +1 -1
  5. package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js +35 -0
  6. package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  7. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js +1 -0
  8. package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js.map +1 -1
  9. package/dist/cjs/ChallengeResults/Mocks/MockChallengeScoreListPM.js +19 -0
  10. package/dist/cjs/ChallengeResults/Mocks/MockChallengeScoreListPM.js.map +1 -0
  11. package/dist/cjs/ChallengeResults/Mocks/index.js +1 -0
  12. package/dist/cjs/ChallengeResults/Mocks/index.js.map +1 -1
  13. package/dist/cjs/ChallengeResults/PMs/ChallengeScoreListPM.js +78 -0
  14. package/dist/cjs/ChallengeResults/PMs/ChallengeScoreListPM.js.map +1 -0
  15. package/dist/cjs/ChallengeResults/PMs/index.js +1 -0
  16. package/dist/cjs/ChallengeResults/PMs/index.js.map +1 -1
  17. package/dist/cjs/Handler/UCs/SubmitResultHandler.js +22 -7
  18. package/dist/cjs/Handler/UCs/SubmitResultHandler.js.map +1 -1
  19. package/dist/cjs/StateMachine/Entities/HostEditingStateEntity.js +6 -6
  20. package/dist/cjs/StateMachine/Entities/HostEditingStateEntity.js.map +1 -1
  21. package/dist/cjs/ZSpaceHost/Entities/ZSpaceHost.js +34 -0
  22. package/dist/cjs/ZSpaceHost/Entities/ZSpaceHost.js.map +1 -1
  23. package/dist/cjs/ZSpaceHost/PMs/EmulateZSpacePM.js +52 -3
  24. package/dist/cjs/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  25. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsActivePM.js +45 -3
  26. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  27. package/dist/cjs/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js +38 -0
  28. package/dist/cjs/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js.map +1 -1
  29. package/dist/cjs/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js +36 -0
  30. package/dist/cjs/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js.map +1 -1
  31. package/dist/cjs/ZSpaceHost/UCs/checkForZSpaceSupport.js +36 -0
  32. package/dist/cjs/ZSpaceHost/UCs/checkForZSpaceSupport.js.map +1 -1
  33. package/dist/cjs/ZSpaceHost/index.js +68 -0
  34. package/dist/cjs/ZSpaceHost/index.js.map +1 -1
  35. package/dist/esm/ChallengeResults/Adapters/challengeScoreListAdapter.js +16 -0
  36. package/dist/esm/ChallengeResults/Adapters/challengeScoreListAdapter.js.map +1 -0
  37. package/dist/esm/ChallengeResults/Adapters/index.js +1 -0
  38. package/dist/esm/ChallengeResults/Adapters/index.js.map +1 -1
  39. package/dist/esm/ChallengeResults/Entities/ChallengeResults.js +35 -0
  40. package/dist/esm/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  41. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js +2 -1
  42. package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js.map +1 -1
  43. package/dist/esm/ChallengeResults/Mocks/MockChallengeScoreListPM.js +14 -0
  44. package/dist/esm/ChallengeResults/Mocks/MockChallengeScoreListPM.js.map +1 -0
  45. package/dist/esm/ChallengeResults/Mocks/index.js +1 -0
  46. package/dist/esm/ChallengeResults/Mocks/index.js.map +1 -1
  47. package/dist/esm/ChallengeResults/PMs/ChallengeScoreListPM.js +73 -0
  48. package/dist/esm/ChallengeResults/PMs/ChallengeScoreListPM.js.map +1 -0
  49. package/dist/esm/ChallengeResults/PMs/index.js +1 -0
  50. package/dist/esm/ChallengeResults/PMs/index.js.map +1 -1
  51. package/dist/esm/Handler/UCs/SubmitResultHandler.js +23 -8
  52. package/dist/esm/Handler/UCs/SubmitResultHandler.js.map +1 -1
  53. package/dist/esm/StateMachine/Entities/HostEditingStateEntity.js +6 -6
  54. package/dist/esm/StateMachine/Entities/HostEditingStateEntity.js.map +1 -1
  55. package/dist/esm/ZSpaceHost/Entities/ZSpaceHost.js +34 -0
  56. package/dist/esm/ZSpaceHost/Entities/ZSpaceHost.js.map +1 -1
  57. package/dist/esm/ZSpaceHost/PMs/EmulateZSpacePM.js +52 -3
  58. package/dist/esm/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  59. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsActivePM.js +45 -3
  60. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  61. package/dist/esm/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js +38 -0
  62. package/dist/esm/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js.map +1 -1
  63. package/dist/esm/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js +36 -0
  64. package/dist/esm/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js.map +1 -1
  65. package/dist/esm/ZSpaceHost/UCs/checkForZSpaceSupport.js +36 -0
  66. package/dist/esm/ZSpaceHost/UCs/checkForZSpaceSupport.js.map +1 -1
  67. package/dist/esm/ZSpaceHost/index.js +68 -0
  68. package/dist/esm/ZSpaceHost/index.js.map +1 -1
  69. package/dist/types/ChallengeResults/Adapters/challengeScoreListAdapter.d.ts +4 -0
  70. package/dist/types/ChallengeResults/Adapters/challengeScoreListAdapter.d.ts.map +1 -0
  71. package/dist/types/ChallengeResults/Adapters/index.d.ts +1 -0
  72. package/dist/types/ChallengeResults/Adapters/index.d.ts.map +1 -1
  73. package/dist/types/ChallengeResults/Entities/ChallengeResults.d.ts +1 -0
  74. package/dist/types/ChallengeResults/Entities/ChallengeResults.d.ts.map +1 -1
  75. package/dist/types/ChallengeResults/Factories/setupChallengeResults.d.ts.map +1 -1
  76. package/dist/types/ChallengeResults/Mocks/MockChallengeScoreListPM.d.ts +8 -0
  77. package/dist/types/ChallengeResults/Mocks/MockChallengeScoreListPM.d.ts.map +1 -0
  78. package/dist/types/ChallengeResults/Mocks/index.d.ts +1 -0
  79. package/dist/types/ChallengeResults/Mocks/index.d.ts.map +1 -1
  80. package/dist/types/ChallengeResults/PMs/ChallengeScoreListPM.d.ts +12 -0
  81. package/dist/types/ChallengeResults/PMs/ChallengeScoreListPM.d.ts.map +1 -0
  82. package/dist/types/ChallengeResults/PMs/index.d.ts +1 -0
  83. package/dist/types/ChallengeResults/PMs/index.d.ts.map +1 -1
  84. package/dist/types/Handler/UCs/SubmitResultHandler.d.ts.map +1 -1
  85. package/dist/types/ZSpaceHost/Entities/ZSpaceHost.d.ts +45 -0
  86. package/dist/types/ZSpaceHost/Entities/ZSpaceHost.d.ts.map +1 -1
  87. package/dist/types/ZSpaceHost/PMs/EmulateZSpacePM.d.ts +46 -0
  88. package/dist/types/ZSpaceHost/PMs/EmulateZSpacePM.d.ts.map +1 -1
  89. package/dist/types/ZSpaceHost/PMs/ZSpaceIsActivePM.d.ts +39 -0
  90. package/dist/types/ZSpaceHost/PMs/ZSpaceIsActivePM.d.ts.map +1 -1
  91. package/dist/types/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.d.ts +43 -0
  92. package/dist/types/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.d.ts.map +1 -1
  93. package/dist/types/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.d.ts +40 -0
  94. package/dist/types/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.d.ts.map +1 -1
  95. package/dist/types/ZSpaceHost/UCs/checkForZSpaceSupport.d.ts +36 -0
  96. package/dist/types/ZSpaceHost/UCs/checkForZSpaceSupport.d.ts.map +1 -1
  97. package/dist/types/ZSpaceHost/index.d.ts +68 -0
  98. package/dist/types/ZSpaceHost/index.d.ts.map +1 -1
  99. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"StartZSpaceUC.js","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,OAAgB,aAAc,SAAQ,WAAW;IAKrD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;;AANM,kBAAI,GAAG,eAAe,CAAC","sourcesContent":["import { getSingletonComponent, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\n\r\nexport abstract class StartZSpaceUC extends AppObjectUC {\r\n static type = \"StartZSpaceUC\";\r\n\r\n abstract startZSpace(): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<StartZSpaceUC>(StartZSpaceUC.type, appObjects);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StartZSpaceUC.js","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAgB,aAAc,SAAQ,WAAW;IAUrD;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC9E,CAAC;;AAhBM,kBAAI,GAAG,eAAe,CAAC","sourcesContent":["import { getSingletonComponent, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\n\r\n/**\r\n * StartZSpaceUC is a singleton Use Case responsible for starting a zSpace session.\r\n *\r\n * This Use Case handles:\r\n * 1. Setting up and initializing the zSpace XR session\r\n * 2. Updating the ZSpaceHostEntity to reflect the active state\r\n * 3. Handling errors in the setup process\r\n *\r\n * Usage:\r\n * ```typescript\r\n * // In a controller or UI event handler:\r\n * const startZSpace = async (appObjects) => {\r\n * const uc = StartZSpaceUC.get(appObjects);\r\n * if (!uc) {\r\n * console.error(\"StartZSpaceUC not found\");\r\n * return;\r\n * }\r\n *\r\n * try {\r\n * await uc.startZSpace();\r\n * console.log(\"zSpace session started successfully\");\r\n * } catch (error) {\r\n * console.error(\"Failed to start zSpace session:\", error);\r\n * }\r\n * };\r\n * ```\r\n *\r\n * Important notes:\r\n * - This is an asynchronous operation and may take some time to complete\r\n * - Success/failure is indicated by the Promise resolution/rejection\r\n * - When successful, ZSpaceHostEntity.isActive will be set to true\r\n * - UI components should observe ZSpaceIsActivePM to react to state changes\r\n */\r\nexport abstract class StartZSpaceUC extends AppObjectUC {\r\n static type = \"StartZSpaceUC\";\r\n\r\n /**\r\n * Start the zSpace session\r\n * @returns A Promise that resolves when the session has started successfully,\r\n * or rejects with an error if the session could not be started\r\n */\r\n abstract startZSpace(): Promise<void>;\r\n\r\n /**\r\n * Get the singleton instance of StartZSpaceUC\r\n * @param appObjects - The AppObjectRepo instance\r\n * @returns The StartZSpaceUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<StartZSpaceUC>(StartZSpaceUC.type, appObjects);\r\n }\r\n}\r\n"]}
@@ -1,5 +1,41 @@
1
1
  import { getSingletonComponent, AppObjectUC } from "@vived/core";
2
+ /**
3
+ * StopZSpaceUC is a singleton Use Case responsible for stopping an active zSpace session.
4
+ *
5
+ * This Use Case handles:
6
+ * 1. Properly ending the current zSpace XR session
7
+ * 2. Cleaning up resources associated with the session
8
+ * 3. Updating the ZSpaceHostEntity to reflect the inactive state
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * // In a controller or UI event handler:
13
+ * const stopZSpace = (appObjects) => {
14
+ * const uc = StopZSpaceUC.get(appObjects);
15
+ * if (!uc) {
16
+ * console.error("StopZSpaceUC not found");
17
+ * return;
18
+ * }
19
+ *
20
+ * uc.stopZSpace();
21
+ * console.log("zSpace session stopped");
22
+ * };
23
+ * ```
24
+ *
25
+ * Important notes:
26
+ * - This is a synchronous operation and completes immediately
27
+ * - When called, ZSpaceHostEntity.isActive will be set to false
28
+ * - UI components should observe ZSpaceIsActivePM to react to state changes
29
+ * - This should be called when the application no longer needs zSpace features
30
+ * - It's good practice to call this before application shutdown or when
31
+ * transitioning to a non-zSpace part of the application
32
+ */
2
33
  export class StopZSpaceUC extends AppObjectUC {
34
+ /**
35
+ * Get the singleton instance of StopZSpaceUC
36
+ * @param appObjects - The AppObjectRepo instance
37
+ * @returns The StopZSpaceUC instance or undefined if not found
38
+ */
3
39
  static get(appObjects) {
4
40
  return getSingletonComponent(StopZSpaceUC.type, appObjects);
5
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StopZSpaceUC.js","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF,MAAM,OAAgB,YAAa,SAAQ,WAAW;IAKpD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAe,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;;AANM,iBAAI,GAAG,cAAc,CAAC","sourcesContent":["import { getSingletonComponent, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\n\r\nexport abstract class StopZSpaceUC extends AppObjectUC {\r\n static type = \"StopZSpaceUC\";\r\n\r\n abstract stopZSpace(): void;\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<StopZSpaceUC>(StopZSpaceUC.type, appObjects);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StopZSpaceUC.js","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAgB,YAAa,SAAQ,WAAW;IASpD;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAe,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;;AAfM,iBAAI,GAAG,cAAc,CAAC","sourcesContent":["import { getSingletonComponent, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\n\r\n/**\r\n * StopZSpaceUC is a singleton Use Case responsible for stopping an active zSpace session.\r\n *\r\n * This Use Case handles:\r\n * 1. Properly ending the current zSpace XR session\r\n * 2. Cleaning up resources associated with the session\r\n * 3. Updating the ZSpaceHostEntity to reflect the inactive state\r\n *\r\n * Usage:\r\n * ```typescript\r\n * // In a controller or UI event handler:\r\n * const stopZSpace = (appObjects) => {\r\n * const uc = StopZSpaceUC.get(appObjects);\r\n * if (!uc) {\r\n * console.error(\"StopZSpaceUC not found\");\r\n * return;\r\n * }\r\n *\r\n * uc.stopZSpace();\r\n * console.log(\"zSpace session stopped\");\r\n * };\r\n * ```\r\n *\r\n * Important notes:\r\n * - This is a synchronous operation and completes immediately\r\n * - When called, ZSpaceHostEntity.isActive will be set to false\r\n * - UI components should observe ZSpaceIsActivePM to react to state changes\r\n * - This should be called when the application no longer needs zSpace features\r\n * - It's good practice to call this before application shutdown or when\r\n * transitioning to a non-zSpace part of the application\r\n */\r\nexport abstract class StopZSpaceUC extends AppObjectUC {\r\n static type = \"StopZSpaceUC\";\r\n\r\n /**\r\n * Stop the active zSpace session\r\n * This method completes synchronously and does not return a value\r\n */\r\n abstract stopZSpace(): void;\r\n\r\n /**\r\n * Get the singleton instance of StopZSpaceUC\r\n * @param appObjects - The AppObjectRepo instance\r\n * @returns The StopZSpaceUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<StopZSpaceUC>(StopZSpaceUC.type, appObjects);\r\n }\r\n}\r\n"]}
@@ -1,4 +1,40 @@
1
1
  import { ZSpaceHostEntity } from "../Entities/ZSpaceHost";
2
+ /**
3
+ * Checks if the current browser environment supports WebXR and zSpace hardware
4
+ *
5
+ * This utility function:
6
+ * 1. Checks if navigator.xr is available (WebXR API support)
7
+ * 2. Tests if 'immersive-vr' sessions are supported (required for zSpace)
8
+ * 3. Updates the ZSpaceHostEntity.isSupported property based on results
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * // Typically called during application initialization:
13
+ * import { checkForWebXRSupport } from "@vived/host/ZSpaceHost/UCs";
14
+ *
15
+ * async function initializeApp(appObjects) {
16
+ * // Check for zSpace hardware support
17
+ * await checkForWebXRSupport(appObjects);
18
+ *
19
+ * // Get the current support status
20
+ * const zSpace = ZSpaceHostEntity.get(appObjects);
21
+ * if (zSpace?.isSupported) {
22
+ * console.log("zSpace hardware is supported");
23
+ * } else {
24
+ * console.log("zSpace hardware is not supported, using fallback mode");
25
+ * }
26
+ * }
27
+ * ```
28
+ *
29
+ * Important notes:
30
+ * - This function should be called during application initialization
31
+ * - It returns a Promise that resolves when the check is complete
32
+ * - To observe changes in support status, use the ZSpaceIsActivePM
33
+ * - If hardware is not supported, you may want to enable emulation mode
34
+ *
35
+ * @param appObjects - The AppObjectRepo instance
36
+ * @returns A Promise that resolves when the check is complete
37
+ */
2
38
  export function checkForWebXRSupport(appObjects) {
3
39
  return new Promise((resolve) => {
4
40
  const zSpace = ZSpaceHostEntity.get(appObjects);
@@ -1 +1 @@
1
- {"version":3,"file":"checkForZSpaceSupport.js","sourceRoot":"","sources":["../../../../src/ZSpaceHost/UCs/checkForZSpaceSupport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,WAAW,CACpB,sBAAsB,EACtB,iCAAiC,CAClC,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAS,SAAiB,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC;iBAClC,IAAI,CAAC,CAAC,WAAoB,EAAE,EAAE;gBAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { ZSpaceHostEntity } from \"../Entities/ZSpaceHost\";\r\n\r\nexport function checkForWebXRSupport(appObjects: AppObjectRepo): Promise<void> {\r\n return new Promise<void>((resolve) => {\r\n const zSpace = ZSpaceHostEntity.get(appObjects);\r\n if (!zSpace) {\r\n appObjects.submitError(\r\n \"checkForWebXRSupport\",\r\n \"Unable to find ZSpaceHostEntity\"\r\n );\r\n return;\r\n }\r\n\r\n const xr: any = (navigator as any).xr;\r\n\r\n if (!xr) {\r\n zSpace.isSupported = false;\r\n resolve();\r\n } else {\r\n xr.isSessionSupported(\"immersive-vr\")\r\n .then((isSupported: boolean) => {\r\n zSpace.isSupported = isSupported;\r\n resolve();\r\n })\r\n .catch(() => {\r\n zSpace.isSupported = false;\r\n resolve();\r\n });\r\n }\r\n });\r\n}\r\n"]}
1
+ {"version":3,"file":"checkForZSpaceSupport.js","sourceRoot":"","sources":["../../../../src/ZSpaceHost/UCs/checkForZSpaceSupport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAyB;IAC5D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC,WAAW,CACpB,sBAAsB,EACtB,iCAAiC,CAClC,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAS,SAAiB,CAAC,EAAE,CAAC;QAEtC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC;iBAClC,IAAI,CAAC,CAAC,WAAoB,EAAE,EAAE;gBAC7B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;gBACjC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { ZSpaceHostEntity } from \"../Entities/ZSpaceHost\";\r\n\r\n/**\r\n * Checks if the current browser environment supports WebXR and zSpace hardware\r\n *\r\n * This utility function:\r\n * 1. Checks if navigator.xr is available (WebXR API support)\r\n * 2. Tests if 'immersive-vr' sessions are supported (required for zSpace)\r\n * 3. Updates the ZSpaceHostEntity.isSupported property based on results\r\n *\r\n * Usage:\r\n * ```typescript\r\n * // Typically called during application initialization:\r\n * import { checkForWebXRSupport } from \"@vived/host/ZSpaceHost/UCs\";\r\n *\r\n * async function initializeApp(appObjects) {\r\n * // Check for zSpace hardware support\r\n * await checkForWebXRSupport(appObjects);\r\n *\r\n * // Get the current support status\r\n * const zSpace = ZSpaceHostEntity.get(appObjects);\r\n * if (zSpace?.isSupported) {\r\n * console.log(\"zSpace hardware is supported\");\r\n * } else {\r\n * console.log(\"zSpace hardware is not supported, using fallback mode\");\r\n * }\r\n * }\r\n * ```\r\n *\r\n * Important notes:\r\n * - This function should be called during application initialization\r\n * - It returns a Promise that resolves when the check is complete\r\n * - To observe changes in support status, use the ZSpaceIsActivePM\r\n * - If hardware is not supported, you may want to enable emulation mode\r\n *\r\n * @param appObjects - The AppObjectRepo instance\r\n * @returns A Promise that resolves when the check is complete\r\n */\r\nexport function checkForWebXRSupport(appObjects: AppObjectRepo): Promise<void> {\r\n return new Promise<void>((resolve) => {\r\n const zSpace = ZSpaceHostEntity.get(appObjects);\r\n if (!zSpace) {\r\n appObjects.submitError(\r\n \"checkForWebXRSupport\",\r\n \"Unable to find ZSpaceHostEntity\"\r\n );\r\n return;\r\n }\r\n\r\n const xr: any = (navigator as any).xr;\r\n\r\n if (!xr) {\r\n zSpace.isSupported = false;\r\n resolve();\r\n } else {\r\n xr.isSessionSupported(\"immersive-vr\")\r\n .then((isSupported: boolean) => {\r\n zSpace.isSupported = isSupported;\r\n resolve();\r\n })\r\n .catch(() => {\r\n zSpace.isSupported = false;\r\n resolve();\r\n });\r\n }\r\n });\r\n}\r\n"]}
@@ -1,3 +1,71 @@
1
+ /**
2
+ * ZSpaceHost Module
3
+ * -----------------
4
+ *
5
+ * This module provides integration with zSpace stereoscopic 3D hardware through WebXR.
6
+ * It allows applications to detect, start, stop, and monitor zSpace sessions,
7
+ * as well as provide emulation when real hardware isn't available.
8
+ *
9
+ * Typical usage flow:
10
+ *
11
+ * 1. Initialization:
12
+ * ```typescript
13
+ * import { checkForWebXRSupport } from "@vived/host/ZSpaceHost/UCs";
14
+ *
15
+ * // During app initialization
16
+ * await checkForWebXRSupport(appObjects);
17
+ * ```
18
+ *
19
+ * 2. Starting/Stopping zSpace:
20
+ * ```typescript
21
+ * import { StartZSpaceUC, StopZSpaceUC } from "@vived/host/ZSpaceHost/UCs";
22
+ *
23
+ * // Start zSpace
24
+ * const startUC = StartZSpaceUC.get(appObjects);
25
+ * await startUC?.startZSpace();
26
+ *
27
+ * // Stop zSpace
28
+ * const stopUC = StopZSpaceUC.get(appObjects);
29
+ * stopUC?.stopZSpace();
30
+ * ```
31
+ *
32
+ * 3. Checking Status:
33
+ * ```typescript
34
+ * import { ZSpaceHostEntity } from "@vived/host/ZSpaceHost/Entities";
35
+ *
36
+ * const zSpace = ZSpaceHostEntity.get(appObjects);
37
+ * if (zSpace?.isSupported) {
38
+ * console.log("zSpace hardware is supported");
39
+ * }
40
+ * if (zSpace?.isActive) {
41
+ * console.log("zSpace is currently active");
42
+ * }
43
+ * ```
44
+ *
45
+ * 4. UI Integration (React example):
46
+ * ```typescript
47
+ * import { zSpaceIsActivePMAdapter } from "@vived/host/ZSpaceHost/Adapters";
48
+ *
49
+ * function ZSpaceStatusIndicator() {
50
+ * const appObjects = useAppObjects();
51
+ * const [isActive, setIsActive] = useState(false);
52
+ *
53
+ * useEffect(() => {
54
+ * zSpaceIsActivePMAdapter.subscribe(appObjects, setIsActive);
55
+ * return () => zSpaceIsActivePMAdapter.unsubscribe(appObjects, setIsActive);
56
+ * }, [appObjects]);
57
+ *
58
+ * return <div>zSpace is {isActive ? "active" : "inactive"}</div>;
59
+ * }
60
+ * ```
61
+ *
62
+ * Key components:
63
+ * - Entities/ZSpaceHost: Core entity storing zSpace state
64
+ * - UCs/StartZSpace: Use case to initialize and start zSpace
65
+ * - UCs/StopZSpace: Use case to stop active zSpace session
66
+ * - PMs/ZSpaceIsActivePM: Presentation manager for active state
67
+ * - PMs/EmulateZSpacePM: Presentation manager for emulation control
68
+ */
1
69
  export * from "./Adapters";
2
70
  export * from "./Controllers";
3
71
  export * from "./Entities";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ZSpaceHost/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC","sourcesContent":["export * from \"./Adapters\";\r\nexport * from \"./Controllers\";\r\nexport * from \"./Entities\";\r\nexport * from \"./Factories\";\r\nexport * from \"./Mocks\";\r\nexport * from \"./PMs\";\r\nexport * from \"./UCs\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ZSpaceHost/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC","sourcesContent":["/**\r\n * ZSpaceHost Module\r\n * -----------------\r\n *\r\n * This module provides integration with zSpace stereoscopic 3D hardware through WebXR.\r\n * It allows applications to detect, start, stop, and monitor zSpace sessions,\r\n * as well as provide emulation when real hardware isn't available.\r\n *\r\n * Typical usage flow:\r\n *\r\n * 1. Initialization:\r\n * ```typescript\r\n * import { checkForWebXRSupport } from \"@vived/host/ZSpaceHost/UCs\";\r\n *\r\n * // During app initialization\r\n * await checkForWebXRSupport(appObjects);\r\n * ```\r\n *\r\n * 2. Starting/Stopping zSpace:\r\n * ```typescript\r\n * import { StartZSpaceUC, StopZSpaceUC } from \"@vived/host/ZSpaceHost/UCs\";\r\n *\r\n * // Start zSpace\r\n * const startUC = StartZSpaceUC.get(appObjects);\r\n * await startUC?.startZSpace();\r\n *\r\n * // Stop zSpace\r\n * const stopUC = StopZSpaceUC.get(appObjects);\r\n * stopUC?.stopZSpace();\r\n * ```\r\n *\r\n * 3. Checking Status:\r\n * ```typescript\r\n * import { ZSpaceHostEntity } from \"@vived/host/ZSpaceHost/Entities\";\r\n *\r\n * const zSpace = ZSpaceHostEntity.get(appObjects);\r\n * if (zSpace?.isSupported) {\r\n * console.log(\"zSpace hardware is supported\");\r\n * }\r\n * if (zSpace?.isActive) {\r\n * console.log(\"zSpace is currently active\");\r\n * }\r\n * ```\r\n *\r\n * 4. UI Integration (React example):\r\n * ```typescript\r\n * import { zSpaceIsActivePMAdapter } from \"@vived/host/ZSpaceHost/Adapters\";\r\n *\r\n * function ZSpaceStatusIndicator() {\r\n * const appObjects = useAppObjects();\r\n * const [isActive, setIsActive] = useState(false);\r\n *\r\n * useEffect(() => {\r\n * zSpaceIsActivePMAdapter.subscribe(appObjects, setIsActive);\r\n * return () => zSpaceIsActivePMAdapter.unsubscribe(appObjects, setIsActive);\r\n * }, [appObjects]);\r\n *\r\n * return <div>zSpace is {isActive ? \"active\" : \"inactive\"}</div>;\r\n * }\r\n * ```\r\n *\r\n * Key components:\r\n * - Entities/ZSpaceHost: Core entity storing zSpace state\r\n * - UCs/StartZSpace: Use case to initialize and start zSpace\r\n * - UCs/StopZSpace: Use case to stop active zSpace session\r\n * - PMs/ZSpaceIsActivePM: Presentation manager for active state\r\n * - PMs/EmulateZSpacePM: Presentation manager for emulation control\r\n */\r\n\r\nexport * from \"./Adapters\";\r\nexport * from \"./Controllers\";\r\nexport * from \"./Entities\";\r\nexport * from \"./Factories\";\r\nexport * from \"./Mocks\";\r\nexport * from \"./PMs\";\r\nexport * from \"./UCs\";\r\n"]}
@@ -0,0 +1,4 @@
1
+ import { SingletonPmAdapter } from "@vived/core";
2
+ import { SlideScoreVM } from "../PMs/ChallengeScoreListPM";
3
+ export declare const challengeScoreListAdapter: SingletonPmAdapter<SlideScoreVM[]>;
4
+ //# sourceMappingURL=challengeScoreListAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"challengeScoreListAdapter.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/challengeScoreListAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAEL,YAAY,EACb,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,YAAY,EAAE,CAsBxE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./challengeResultsListAdapter";
2
2
  export * from "./hasChallengeResultsPMAdapter";
3
+ export * from "./challengeScoreListAdapter";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC"}
@@ -35,6 +35,7 @@ export declare abstract class ChallengeResultsEntity extends AppObjectEntity {
35
35
  abstract submitScoreResult: (slideID: string, score: number, maxScore: number, tries: number, message: string) => void;
36
36
  abstract submitProgressResult: (slideID: string, maxProgress: number, message: string) => void;
37
37
  abstract getResultForSlide: (slideID: string) => ChallengeResult | undefined;
38
+ abstract getScoreForSlide: (slideID: string) => number;
38
39
  static get(appObjects: AppObjectRepo): ChallengeResultsEntity | undefined;
39
40
  }
40
41
  export declare function makeChallengeResults(appObject: AppObject): ChallengeResultsEntity;
@@ -1 +1 @@
1
- {"version":3,"file":"ChallengeResults.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Entities/ChallengeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,UAAU,GACV,SAAS,GACT,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EACN,sBAAsB,GACtB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,2BAA2B,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8BAAsB,sBAAuB,SAAQ,eAAe;IAClE,MAAM,CAAC,IAAI,SAA4B;IAEvC,QAAQ,KAAK,OAAO,IAAI,eAAe,EAAE,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAE7E,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
1
+ {"version":3,"file":"ChallengeResults.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Entities/ChallengeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,mBAAmB,GAC3B,KAAK,GACL,UAAU,GACV,SAAS,GACT,OAAO,GACP,UAAU,CAAC;AAEf,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EACN,sBAAsB,GACtB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,2BAA2B,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8BAAsB,sBAAuB,SAAQ,eAAe;IAClE,MAAM,CAAC,IAAI,SAA4B;IAEvC,QAAQ,KAAK,OAAO,IAAI,eAAe,EAAE,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,iBAAiB,EAAE,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IAEV,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAE7E,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEvD,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
@@ -1 +1 @@
1
- {"version":3,"file":"setupChallengeResults.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAwB,MAAM,aAAa,CAAC;AAG3E,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,GACxB,sBAAsB,CAUxB"}
1
+ {"version":3,"file":"setupChallengeResults.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Factories/setupChallengeResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAwB,MAAM,aAAa,CAAC;AAG3E,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,GACxB,sBAAsB,CAWxB"}
@@ -0,0 +1,8 @@
1
+ import { AppObject, AppObjectRepo } from "@vived/core";
2
+ import { ChallengeScoreListPM } from "../PMs/ChallengeScoreListPM";
3
+ export declare class MockChallengeScoreListPM extends ChallengeScoreListPM {
4
+ vmsAreEqual: jest.Mock<any, any, any>;
5
+ constructor(appObject: AppObject);
6
+ }
7
+ export declare function makeMockChallengeScoreListPM(appObjects: AppObjectRepo): MockChallengeScoreListPM;
8
+ //# sourceMappingURL=MockChallengeScoreListPM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockChallengeScoreListPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/MockChallengeScoreListPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,oBAAoB,EAErB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE,WAAW,2BAIP;gBAEQ,SAAS,EAAE,SAAS;CAIjC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,aAAa,GACxB,wBAAwB,CAI1B"}
@@ -1,3 +1,4 @@
1
1
  export * from "./ChallengeResultsListPMMock";
2
2
  export * from "./MockHasChallengeResultsPM";
3
+ export * from "./MockChallengeScoreListPM";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
2
+ export interface SlideScoreVM {
3
+ id: string;
4
+ displayName: string;
5
+ score: number;
6
+ }
7
+ export declare abstract class ChallengeScoreListPM extends AppObjectPM<SlideScoreVM[]> {
8
+ static readonly type = "ChallengeScoreListPM";
9
+ static get(appObjects: AppObjectRepo): ChallengeScoreListPM | undefined;
10
+ }
11
+ export declare function makeChallengeScoreListPM(appObject: AppObject): ChallengeScoreListPM;
12
+ //# sourceMappingURL=ChallengeScoreListPM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChallengeScoreListPM.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/ChallengeScoreListPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,aAAa,EAEd,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,oBAAqB,SAAQ,WAAW,CAAC,YAAY,EAAE,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAE9C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,oBAAoB,CAEtB"}
@@ -1,3 +1,4 @@
1
1
  export * from "./ChallengeResultsListPM";
2
2
  export * from "./HasChallengeResultsPM";
3
+ export * from "./ChallengeScoreListPM";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ChallengeResults/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SubmitResultHandler.d.ts","sourceRoot":"","sources":["../../../../src/Handler/UCs/SubmitResultHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAEL,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,UAAU,GACV,aAAa,CAAC;AAClB,MAAM,MAAM,OAAO,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV,8BAAsB,mBACpB,SAAQ,WACR,YAAW,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAyB;IAE7C,QAAQ,CAAC,WAAW,oBAAoB;IAExC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACtE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,GACnB,mBAAmB,CAErB"}
1
+ {"version":3,"file":"SubmitResultHandler.d.ts","sourceRoot":"","sources":["../../../../src/Handler/UCs/SubmitResultHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOrD,OAAO,EAEL,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,UAAU,GACV,aAAa,CAAC;AAClB,MAAM,MAAM,OAAO,GACf,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV,8BAAsB,mBACpB,SAAQ,WACR,YAAW,cAAc;IAEzB,MAAM,CAAC,QAAQ,CAAC,IAAI,yBAAyB;IAE7C,QAAQ,CAAC,WAAW,oBAAoB;IAExC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACtE;AAED,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,SAAS,GACnB,mBAAmB,CAErB"}
@@ -1,14 +1,59 @@
1
1
  import { AppObject, AppObjectEntity, AppObjectRepo } from "@vived/core";
2
+ /**
3
+ * ZSpaceHostEntity is a singleton entity that manages the state and functionality
4
+ * for zSpace integration in VIVED applications.
5
+ *
6
+ * This entity handles:
7
+ * 1. zSpace feature detection (isSupported)
8
+ * 2. Emulation mode toggling (emulate)
9
+ * 3. Active state management (isActive)
10
+ * 4. XR Session management
11
+ *
12
+ * Usage:
13
+ * - To check if zSpace is available: ZSpaceHostEntity.get(appObjects)?.isSupported
14
+ * - To check if zSpace is active: ZSpaceHostEntity.get(appObjects)?.isActive
15
+ * - To enable/disable emulation: ZSpaceHostEntity.get(appObjects).emulate = true/false
16
+ *
17
+ * Important: This is a singleton entity - only one instance exists in the application.
18
+ * Always access via ZSpaceHostEntity.get(appObjects) rather than creating new instances.
19
+ */
2
20
  export declare abstract class ZSpaceHostEntity extends AppObjectEntity {
3
21
  static type: string;
22
+ /**
23
+ * Whether zSpace hardware is supported in the current environment
24
+ */
4
25
  abstract get isSupported(): boolean;
5
26
  abstract set isSupported(val: boolean);
27
+ /**
28
+ * Whether to emulate zSpace hardware when not available
29
+ * When true, the system will simulate zSpace capabilities
30
+ */
6
31
  abstract get emulate(): boolean;
7
32
  abstract set emulate(val: boolean);
33
+ /**
34
+ * Whether zSpace is currently active
35
+ * This is true when either real zSpace hardware is active
36
+ * or when emulation is enabled
37
+ */
8
38
  abstract get isActive(): boolean;
9
39
  abstract set isActive(val: boolean);
40
+ /**
41
+ * The current XR Session if zSpace is active
42
+ */
10
43
  abstract session: XRSession | undefined;
44
+ /**
45
+ * Get the singleton ZSpaceHostEntity instance
46
+ * @param appObjects - The AppObjectRepo instance
47
+ * @returns The ZSpaceHostEntity instance or undefined if not found
48
+ */
11
49
  static get(appObjects: AppObjectRepo): ZSpaceHostEntity | undefined;
12
50
  }
51
+ /**
52
+ * Factory function to create the ZSpaceHostEntity
53
+ * For internal use only - external code should use ZSpaceHostEntity.get()
54
+ *
55
+ * @param appObject - The AppObject to attach the entity to
56
+ * @returns A new ZSpaceHostEntity instance
57
+ */
13
58
  export declare function makeZSpaceHostEntity(appObject: AppObject): ZSpaceHostEntity;
14
59
  //# sourceMappingURL=ZSpaceHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZSpaceHost.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/Entities/ZSpaceHost.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAErB,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,MAAM,CAAC,IAAI,SAAsB;IAEjC,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IACpC,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IAEvC,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;IAChC,QAAQ,KAAK,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;IAEnC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IACjC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;IAEpC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAExC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
1
+ {"version":3,"file":"ZSpaceHost.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/Entities/ZSpaceHost.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,MAAM,CAAC,IAAI,SAAsB;IAEjC;;OAEG;IACH,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IACpC,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IAEvC;;;OAGG;IACH,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;IAChC,QAAQ,KAAK,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE;IAEnC;;;;OAIG;IACH,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IACjC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;IAEpC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAExC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
@@ -1,7 +1,53 @@
1
1
  import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
2
+ /**
3
+ * EmulateZSpacePM is a singleton Presentation Manager that provides a boolean view model
4
+ * indicating whether zSpace emulation is currently enabled.
5
+ *
6
+ * This PM allows UI components to observe and (through controllers) control whether
7
+ * zSpace features should be emulated when actual zSpace hardware is not available.
8
+ *
9
+ * Usage in UI components:
10
+ * 1. Via direct PM access (not recommended for UI components):
11
+ * const pm = EmulateZSpacePM.get(appObjects);
12
+ * pm?.addView((isEmulating) => { updateUIBasedOn(isEmulating); });
13
+ *
14
+ * 2. Via adapter (recommended for React/UI components):
15
+ * import { emulateZSpacePMAdapter } from "../Adapters";
16
+ *
17
+ * // In a React component:
18
+ * const [isEmulating, setIsEmulating] = useState(emulateZSpacePMAdapter.defaultVM);
19
+ *
20
+ * useEffect(() => {
21
+ * emulateZSpacePMAdapter.subscribe(appObjects, setIsEmulating);
22
+ * return () => emulateZSpacePMAdapter.unsubscribe(appObjects, setIsEmulating);
23
+ * }, [appObjects]);
24
+ *
25
+ * 3. To toggle emulation state (in a controller or UI event handler):
26
+ * import { toggleEmulateZSpace } from "../Controllers";
27
+ *
28
+ * // When handling a UI event:
29
+ * const handleToggleEmulation = () => {
30
+ * toggleEmulateZSpace(appObjects);
31
+ * };
32
+ *
33
+ * Emulation is useful during development or when testing on systems without zSpace hardware.
34
+ * When emulation is enabled, many zSpace-specific UI features can still be tested.
35
+ */
2
36
  export declare abstract class EmulateZSpacePM extends AppObjectPM<boolean> {
3
37
  static type: string;
38
+ /**
39
+ * Get the singleton instance of EmulateZSpacePM
40
+ * @param appObjects - The AppObjectRepo instance
41
+ * @returns The EmulateZSpacePM instance or undefined if not found
42
+ */
4
43
  static get(appObjects: AppObjectRepo): EmulateZSpacePM | undefined;
5
44
  }
45
+ /**
46
+ * Factory function to create the EmulateZSpacePM
47
+ * For internal use only - external code should use EmulateZSpacePM.get()
48
+ *
49
+ * @param appObject - The AppObject to attach the PM to
50
+ * @returns A new EmulateZSpacePM instance
51
+ */
6
52
  export declare function makeEmulateZSpacePM(appObject: AppObject): EmulateZSpacePM;
7
53
  //# sourceMappingURL=EmulateZSpacePM.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmulateZSpacePM.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/PMs/EmulateZSpacePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB,8BAAsB,eAAgB,SAAQ,WAAW,CAAC,OAAO,CAAC;IAChE,MAAM,CAAC,IAAI,SAAqB;IAEhC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAEzE"}
1
+ {"version":3,"file":"EmulateZSpacePM.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/PMs/EmulateZSpacePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,8BAAsB,eAAgB,SAAQ,WAAW,CAAC,OAAO,CAAC;IAChE,MAAM,CAAC,IAAI,SAAqB;IAEhC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe,CAEzE"}
@@ -1,7 +1,46 @@
1
1
  import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
2
+ /**
3
+ * ZSpaceIsActivePM is a singleton Presentation Manager that provides a boolean view model
4
+ * indicating whether zSpace is currently active.
5
+ *
6
+ * This PM observes ZSpaceHostEntity and updates its view model when the isActive property changes.
7
+ *
8
+ * Usage in UI components:
9
+ * 1. Via direct PM access (not recommended for UI components):
10
+ * const pm = ZSpaceIsActivePM.get(appObjects);
11
+ * pm?.addView((isActive) => { updateUIBasedOn(isActive); });
12
+ *
13
+ * 2. Via adapter (recommended for React/UI components):
14
+ * import { zSpaceIsActivePMAdapter } from "../Adapters";
15
+ *
16
+ * // In a React component:
17
+ * const [isZSpaceActive, setIsZSpaceActive] = useState(zSpaceIsActivePMAdapter.defaultVM);
18
+ *
19
+ * useEffect(() => {
20
+ * zSpaceIsActivePMAdapter.subscribe(appObjects, setIsZSpaceActive);
21
+ * return () => zSpaceIsActivePMAdapter.unsubscribe(appObjects, setIsZSpaceActive);
22
+ * }, [appObjects]);
23
+ *
24
+ * When zSpace is active, UI components may want to:
25
+ * - Display 3D content differently
26
+ * - Show zSpace-specific controls
27
+ * - Adjust UI layouts for stereoscopic viewing
28
+ */
2
29
  export declare abstract class ZSpaceIsActivePM extends AppObjectPM<boolean> {
3
30
  static type: string;
31
+ /**
32
+ * Get the singleton instance of ZSpaceIsActivePM
33
+ * @param appObjects - The AppObjectRepo instance
34
+ * @returns The ZSpaceIsActivePM instance or undefined if not found
35
+ */
4
36
  static get(appObjects: AppObjectRepo): ZSpaceIsActivePM | undefined;
5
37
  }
38
+ /**
39
+ * Factory function to create the ZSpaceIsActivePM
40
+ * For internal use only - external code should use ZSpaceIsActivePM.get()
41
+ *
42
+ * @param appObject - The AppObject to attach the PM to
43
+ * @returns A new ZSpaceIsActivePM instance
44
+ */
6
45
  export declare function makeZSpaceIsActivePM(appObject: AppObject): ZSpaceIsActivePM;
7
46
  //# sourceMappingURL=ZSpaceIsActivePM.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZSpaceIsActivePM.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/PMs/ZSpaceIsActivePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB,8BAAsB,gBAAiB,SAAQ,WAAW,CAAC,OAAO,CAAC;IACjE,MAAM,CAAC,IAAI,SAAsB;IAEjC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
1
+ {"version":3,"file":"ZSpaceIsActivePM.d.ts","sourceRoot":"","sources":["../../../../src/ZSpaceHost/PMs/ZSpaceIsActivePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,gBAAiB,SAAQ,WAAW,CAAC,OAAO,CAAC;IACjE,MAAM,CAAC,IAAI,SAAsB;IAEjC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAMrC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
@@ -1,7 +1,50 @@
1
1
  import { AppObjectRepo, AppObjectUC } from "@vived/core";
2
+ /**
3
+ * StartZSpaceUC is a singleton Use Case responsible for starting a zSpace session.
4
+ *
5
+ * This Use Case handles:
6
+ * 1. Setting up and initializing the zSpace XR session
7
+ * 2. Updating the ZSpaceHostEntity to reflect the active state
8
+ * 3. Handling errors in the setup process
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * // In a controller or UI event handler:
13
+ * const startZSpace = async (appObjects) => {
14
+ * const uc = StartZSpaceUC.get(appObjects);
15
+ * if (!uc) {
16
+ * console.error("StartZSpaceUC not found");
17
+ * return;
18
+ * }
19
+ *
20
+ * try {
21
+ * await uc.startZSpace();
22
+ * console.log("zSpace session started successfully");
23
+ * } catch (error) {
24
+ * console.error("Failed to start zSpace session:", error);
25
+ * }
26
+ * };
27
+ * ```
28
+ *
29
+ * Important notes:
30
+ * - This is an asynchronous operation and may take some time to complete
31
+ * - Success/failure is indicated by the Promise resolution/rejection
32
+ * - When successful, ZSpaceHostEntity.isActive will be set to true
33
+ * - UI components should observe ZSpaceIsActivePM to react to state changes
34
+ */
2
35
  export declare abstract class StartZSpaceUC extends AppObjectUC {
3
36
  static type: string;
37
+ /**
38
+ * Start the zSpace session
39
+ * @returns A Promise that resolves when the session has started successfully,
40
+ * or rejects with an error if the session could not be started
41
+ */
4
42
  abstract startZSpace(): Promise<void>;
43
+ /**
44
+ * Get the singleton instance of StartZSpaceUC
45
+ * @param appObjects - The AppObjectRepo instance
46
+ * @returns The StartZSpaceUC instance or undefined if not found
47
+ */
5
48
  static get(appObjects: AppObjectRepo): StartZSpaceUC | undefined;
6
49
  }
7
50
  //# sourceMappingURL=StartZSpaceUC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StartZSpaceUC.d.ts","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF,8BAAsB,aAAc,SAAQ,WAAW;IACrD,MAAM,CAAC,IAAI,SAAmB;IAE9B,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAErC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAGrC"}
1
+ {"version":3,"file":"StartZSpaceUC.d.ts","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,8BAAsB,aAAc,SAAQ,WAAW;IACrD,MAAM,CAAC,IAAI,SAAmB;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAErC;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAGrC"}
@@ -1,7 +1,47 @@
1
1
  import { AppObjectRepo, AppObjectUC } from "@vived/core";
2
+ /**
3
+ * StopZSpaceUC is a singleton Use Case responsible for stopping an active zSpace session.
4
+ *
5
+ * This Use Case handles:
6
+ * 1. Properly ending the current zSpace XR session
7
+ * 2. Cleaning up resources associated with the session
8
+ * 3. Updating the ZSpaceHostEntity to reflect the inactive state
9
+ *
10
+ * Usage:
11
+ * ```typescript
12
+ * // In a controller or UI event handler:
13
+ * const stopZSpace = (appObjects) => {
14
+ * const uc = StopZSpaceUC.get(appObjects);
15
+ * if (!uc) {
16
+ * console.error("StopZSpaceUC not found");
17
+ * return;
18
+ * }
19
+ *
20
+ * uc.stopZSpace();
21
+ * console.log("zSpace session stopped");
22
+ * };
23
+ * ```
24
+ *
25
+ * Important notes:
26
+ * - This is a synchronous operation and completes immediately
27
+ * - When called, ZSpaceHostEntity.isActive will be set to false
28
+ * - UI components should observe ZSpaceIsActivePM to react to state changes
29
+ * - This should be called when the application no longer needs zSpace features
30
+ * - It's good practice to call this before application shutdown or when
31
+ * transitioning to a non-zSpace part of the application
32
+ */
2
33
  export declare abstract class StopZSpaceUC extends AppObjectUC {
3
34
  static type: string;
35
+ /**
36
+ * Stop the active zSpace session
37
+ * This method completes synchronously and does not return a value
38
+ */
4
39
  abstract stopZSpace(): void;
40
+ /**
41
+ * Get the singleton instance of StopZSpaceUC
42
+ * @param appObjects - The AppObjectRepo instance
43
+ * @returns The StopZSpaceUC instance or undefined if not found
44
+ */
5
45
  static get(appObjects: AppObjectRepo): StopZSpaceUC | undefined;
6
46
  }
7
47
  //# sourceMappingURL=StopZSpaceUC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StopZSpaceUC.d.ts","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF,8BAAsB,YAAa,SAAQ,WAAW;IACpD,MAAM,CAAC,IAAI,SAAkB;IAE7B,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAGrC"}
1
+ {"version":3,"file":"StopZSpaceUC.d.ts","sourceRoot":"","sources":["../../../../../src/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,8BAAsB,YAAa,SAAQ,WAAW;IACpD,MAAM,CAAC,IAAI,SAAkB;IAE7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,IAAI,IAAI;IAE3B;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa;CAGrC"}