@vived/app 4.14.0 → 4.15.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 (84) hide show
  1. package/lib/AppObject/AppObjectComponent.d.ts +2 -1
  2. package/lib/AppObject/AppObjectComponent.js +16 -6
  3. package/lib/Components/Babylon/Mocks/MockBabylonRenderingUC.d.ts +2 -3
  4. package/lib/Components/Babylon/Mocks/MockBabylonRenderingUC.js +3 -3
  5. package/lib/Components/Babylon/Mocks/MockPixelToSceneRayUC.d.ts +1 -1
  6. package/lib/Components/Babylon/Mocks/MockPixelToSceneRayUC.js +3 -3
  7. package/lib/Components/Babylon/Mocks/MockSceneRayPickUC.d.ts +1 -1
  8. package/lib/Components/Babylon/Mocks/MockSceneRayPickUC.js +3 -3
  9. package/lib/Components/Babylon/UC/BabylonRenderingUC.d.ts +0 -9
  10. package/lib/Components/Babylon/UC/BabylonRenderingUC.js +1 -14
  11. package/lib/Components/Babylon/UC/PixelToSceneRayUC.d.ts +0 -7
  12. package/lib/Components/Babylon/UC/PixelToSceneRayUC.js +1 -12
  13. package/lib/Components/Babylon/UC/ScenePixelPickUC.d.ts +0 -7
  14. package/lib/Components/Babylon/UC/ScenePixelPickUC.js +1 -12
  15. package/lib/Components/Babylon/UC/SceneRayPickUC.d.ts +0 -7
  16. package/lib/Components/Babylon/UC/SceneRayPickUC.js +1 -12
  17. package/lib/Components/Babylon/index.d.ts +1 -0
  18. package/lib/Components/Babylon/index.js +1 -0
  19. package/lib/Components/Challenge/Controller/index.d.ts +1 -0
  20. package/lib/Components/Challenge/Controller/index.js +13 -0
  21. package/lib/Components/Challenge/Controller/setChallenge.d.ts +2 -0
  22. package/lib/Components/Challenge/Controller/setChallenge.js +13 -0
  23. package/lib/Components/Challenge/Entities/ChallengeEntity.d.ts +29 -0
  24. package/lib/Components/Challenge/Entities/ChallengeEntity.js +85 -0
  25. package/lib/Components/Challenge/Entities/index.d.ts +1 -0
  26. package/lib/Components/Challenge/Entities/index.js +13 -0
  27. package/lib/Components/Challenge/Mocks/MockChallengeAuthorHelpPM.d.ts +8 -0
  28. package/lib/Components/Challenge/Mocks/MockChallengeAuthorHelpPM.js +15 -0
  29. package/lib/Components/Challenge/Mocks/MockChallengeConsumerHelpPM.d.ts +8 -0
  30. package/lib/Components/Challenge/Mocks/MockChallengeConsumerHelpPM.js +15 -0
  31. package/lib/Components/Challenge/Mocks/MockSelectedChallengePM.d.ts +8 -0
  32. package/lib/Components/Challenge/Mocks/MockSelectedChallengePM.js +15 -0
  33. package/lib/Components/Challenge/Mocks/MockSetChallengeUC.d.ts +8 -0
  34. package/lib/Components/Challenge/Mocks/MockSetChallengeUC.js +15 -0
  35. package/lib/Components/Challenge/Mocks/index.d.ts +4 -0
  36. package/lib/Components/Challenge/Mocks/index.js +16 -0
  37. package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.d.ts +11 -0
  38. package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.js +51 -0
  39. package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.d.ts +12 -0
  40. package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.js +66 -0
  41. package/lib/Components/Challenge/PMs/SelectedChallengePM.d.ts +13 -0
  42. package/lib/Components/Challenge/PMs/SelectedChallengePM.js +56 -0
  43. package/lib/Components/Challenge/PMs/index.d.ts +3 -0
  44. package/lib/Components/Challenge/PMs/index.js +15 -0
  45. package/lib/Components/Challenge/React/challengeAuthorHelpHookAdapter.d.ts +3 -0
  46. package/lib/Components/Challenge/React/challengeAuthorHelpHookAdapter.js +23 -0
  47. package/lib/Components/Challenge/React/challengeConsumerHelpHookAdapter.d.ts +3 -0
  48. package/lib/Components/Challenge/React/challengeConsumerHelpHookAdapter.js +23 -0
  49. package/lib/Components/Challenge/React/index.d.ts +3 -0
  50. package/lib/Components/Challenge/React/index.js +15 -0
  51. package/lib/Components/Challenge/React/selectedChallengeHookAdapter.d.ts +3 -0
  52. package/lib/Components/Challenge/React/selectedChallengeHookAdapter.js +29 -0
  53. package/lib/Components/Challenge/UCs/SerializeChallenge.d.ts +17 -0
  54. package/lib/Components/Challenge/UCs/SerializeChallenge.js +56 -0
  55. package/lib/Components/Challenge/UCs/SetChallengeUC.d.ts +7 -0
  56. package/lib/Components/Challenge/UCs/SetChallengeUC.js +43 -0
  57. package/lib/Components/Challenge/UCs/SetChallengeUndo.d.ts +11 -0
  58. package/lib/Components/Challenge/UCs/SetChallengeUndo.js +37 -0
  59. package/lib/Components/Challenge/UCs/index.d.ts +3 -0
  60. package/lib/Components/Challenge/UCs/index.js +15 -0
  61. package/lib/Components/Challenge/index.d.ts +6 -0
  62. package/lib/Components/Challenge/index.js +18 -0
  63. package/lib/Components/StateMachine/Entities/StateMachineEntity.js +11 -6
  64. package/lib/Components/StateMachine/index.d.ts +1 -0
  65. package/lib/Components/StateMachine/index.js +1 -0
  66. package/lib/Components/Transform3D/Mocks/MockBumpTransformScaleAboutPixelPoint.d.ts +2 -0
  67. package/lib/Components/Transform3D/Mocks/MockPinchTransformUC.d.ts +2 -0
  68. package/lib/Components/Transform3D/Mocks/MockRayPanScaleTransformUC.d.ts +2 -0
  69. package/lib/Components/Transform3D/Mocks/MockRayScaleTransform.d.ts +2 -0
  70. package/lib/Components/Transform3D/UC/BumpTransformScaleAboutPixelPoint.d.ts +2 -1
  71. package/lib/Components/Transform3D/UC/BumpTransformScaleAboutPixelPoint.js +9 -3
  72. package/lib/Components/Transform3D/UC/PinchTransform.d.ts +2 -1
  73. package/lib/Components/Transform3D/UC/PinchTransform.js +11 -6
  74. package/lib/Components/Transform3D/UC/RayPanScaleTransform.d.ts +2 -1
  75. package/lib/Components/Transform3D/UC/RayPanScaleTransform.js +10 -5
  76. package/lib/Components/Transform3D/UC/ScaleTransform.d.ts +2 -1
  77. package/lib/Components/Transform3D/UC/ScaleTransform.js +7 -3
  78. package/lib/Components/index.d.ts +1 -0
  79. package/lib/Components/index.js +1 -0
  80. package/lib/Types/ReactHookPmAdapter.d.ts +6 -0
  81. package/lib/Types/ReactHookPmAdapter.js +2 -0
  82. package/lib/Types/index.d.ts +1 -0
  83. package/lib/Types/index.js +1 -0
  84. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  /// <reference types="jest" />
2
2
  import { AppObject } from "../../../AppObject";
3
+ import { ParametricPlane } from "../../../ValueObjects";
3
4
  import { RayPanScaleTransformUC } from "../UC";
4
5
  export declare class MockRayPanScaleTransformUC extends RayPanScaleTransformUC {
5
6
  enabled: boolean;
@@ -10,6 +11,7 @@ export declare class MockRayPanScaleTransformUC extends RayPanScaleTransformUC {
10
11
  maxX?: number | undefined;
11
12
  minY?: number | undefined;
12
13
  maxY?: number | undefined;
14
+ pickPlane?: ParametricPlane | undefined;
13
15
  update: jest.Mock<any, any>;
14
16
  initialize: jest.Mock<any, any>;
15
17
  finish: jest.Mock<any, any>;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="jest" />
2
2
  import { AppObject } from "../../../AppObject";
3
+ import { ParametricPlane } from "../../../ValueObjects";
3
4
  import { ScaleTransformUC } from "../UC";
4
5
  export declare class MockRayScaleTransform extends ScaleTransformUC {
5
6
  enabled: boolean;
@@ -7,6 +8,7 @@ export declare class MockRayScaleTransform extends ScaleTransformUC {
7
8
  raySensitivity: number;
8
9
  minScale?: number | undefined;
9
10
  maxScale?: number | undefined;
11
+ pickPlane?: ParametricPlane | undefined;
10
12
  updateRay: jest.Mock<any, any>;
11
13
  initializeRay: jest.Mock<any, any>;
12
14
  finish: jest.Mock<any, any>;
@@ -1,10 +1,11 @@
1
1
  import { AppObject, AppObjectUC } from "../../../AppObject";
2
- import { Vector2 } from "../../../ValueObjects";
2
+ import { ParametricPlane, Vector2 } from "../../../ValueObjects";
3
3
  export declare abstract class BumpTransformScaleAboutPixelPointUC extends AppObjectUC {
4
4
  static readonly type = "BumpTransformScaleAboutPixelPointUC";
5
5
  abstract sensitivity: number;
6
6
  abstract minScale?: number | undefined;
7
7
  abstract maxScale?: number | undefined;
8
+ abstract pickPlane?: ParametricPlane;
8
9
  abstract enabled: boolean;
9
10
  abstract allow(): boolean;
10
11
  abstract bump(direction: "IN" | "OUT", pixelPosition: Vector2): void;
@@ -23,7 +23,7 @@ class BumpTransformScaleAboutPixelPointUCImp extends BumpTransformScaleAboutPixe
23
23
  return true;
24
24
  };
25
25
  this.bump = (direction, pixelPosition) => {
26
- var _a;
26
+ var _a, _b, _c;
27
27
  if (!this.enabled)
28
28
  return;
29
29
  if (!this.transform)
@@ -36,8 +36,14 @@ class BumpTransformScaleAboutPixelPointUCImp extends BumpTransformScaleAboutPixe
36
36
  }
37
37
  const currentScale = this.transform.worldScale.x;
38
38
  const scaleDelta = bumpDirection * this.sensitivity * currentScale;
39
- const pick = Babylon_1.scenePixelPick(pixelPosition, this.appObjects);
40
- const pickPoint = (_a = pick === null || pick === void 0 ? void 0 : pick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
39
+ let pickPoint = ValueObjects_1.Vector3.Zero();
40
+ if (this.pickPlane) {
41
+ const pickRay = Babylon_1.pixelToSceneRay(pixelPosition, this.appObjects);
42
+ pickPoint = (_a = this.pickPlane.intersectLine(pickRay)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
43
+ }
44
+ else {
45
+ pickPoint = (_c = (_b = Babylon_1.scenePixelPick(pixelPosition, this.appObjects)) === null || _b === void 0 ? void 0 : _b.worldPickPoint) !== null && _c !== void 0 ? _c : ValueObjects_1.Vector3.Zero();
46
+ }
41
47
  this.bumpScaleAboutPoint(scaleDelta, pickPoint);
42
48
  Dispatcher_1.dispatchStateChange(this.appObjects);
43
49
  };
@@ -1,11 +1,12 @@
1
1
  import { AppObject, AppObjectUC } from "../../../AppObject";
2
- import { Vector2 } from "../../../ValueObjects";
2
+ import { ParametricPlane, Vector2 } from "../../../ValueObjects";
3
3
  export declare abstract class PinchTransformUC extends AppObjectUC {
4
4
  static readonly type = "PinchTransformUC";
5
5
  abstract sensitivity: number;
6
6
  abstract enabled: boolean;
7
7
  abstract minScale?: number;
8
8
  abstract maxScale?: number;
9
+ abstract pickPlane?: ParametricPlane;
9
10
  abstract doPinch: (touchPos1: Vector2, touchPos2: Vector2) => void;
10
11
  abstract initializePinch: (touchPos1: Vector2, touchPos2: Vector2) => void;
11
12
  abstract finishPinch: () => void;
@@ -20,7 +20,7 @@ class PinchTransformUCImp extends PinchTransformUC {
20
20
  this.sensitivity = 0.01;
21
21
  this.enabled = true;
22
22
  this.previousDistanceBetweenTouches = 0;
23
- this.panPlane = ValueObjects_1.ParametricPlane.XY();
23
+ this._panPlane = ValueObjects_1.ParametricPlane.XY();
24
24
  this.pickOffset = ValueObjects_1.Vector3.Zero();
25
25
  this.initialScale = 0;
26
26
  this.initializePinch = (touchPos1, touchPos2) => {
@@ -30,11 +30,16 @@ class PinchTransformUCImp extends PinchTransformUC {
30
30
  this.previousDistanceBetweenTouches = this.getTouchDistance(touchPos1, touchPos2);
31
31
  const touchCenter = this.getTouchCenter(touchPos1, touchPos2);
32
32
  const scenePick = Babylon_1.scenePixelPick(touchCenter, this.appObjects);
33
- const pickPoint = (_a = scenePick === null || scenePick === void 0 ? void 0 : scenePick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
34
- const pickPlaneDirection = ValueObjects_1.Vector3.Backward();
35
- this.panPlane = ValueObjects_1.ParametricPlane.FromPointNormal(pickPoint, pickPlaneDirection);
33
+ if (this.pickPlane) {
34
+ this._panPlane = this.pickPlane;
35
+ }
36
+ else {
37
+ const pickPoint = (_a = scenePick === null || scenePick === void 0 ? void 0 : scenePick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
38
+ const pickPlaneDirection = ValueObjects_1.Vector3.Backward();
39
+ this._panPlane = ValueObjects_1.ParametricPlane.FromPointNormal(pickPoint, pickPlaneDirection);
40
+ }
36
41
  const pickRay = Babylon_1.pixelToSceneRay(touchCenter, this.appObjects);
37
- const planePick = (_b = this.panPlane.intersectLine(pickRay)) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
42
+ const planePick = (_b = this._panPlane.intersectLine(pickRay)) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
38
43
  this.pickOffset = this.transform.worldPointToLocal(planePick);
39
44
  this.initialScale = this.transform.worldScale.x;
40
45
  };
@@ -58,7 +63,7 @@ class PinchTransformUCImp extends PinchTransformUC {
58
63
  this.transform.worldScale = new ValueObjects_1.Vector3(newScale, newScale, newScale);
59
64
  const touchCenter = this.getTouchCenter(touchPos1, touchPos2);
60
65
  const pickRay = Babylon_1.pixelToSceneRay(touchCenter, this.appObjects);
61
- const planePick = (_a = this.panPlane.intersectLine(pickRay)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
66
+ const planePick = (_a = this._panPlane.intersectLine(pickRay)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
62
67
  const globalOffset = this.transform.localPointToWorld(this.pickOffset);
63
68
  const delta = ValueObjects_1.Vector3.Subtract(planePick, globalOffset);
64
69
  const currentWorldPos = this.transform.worldPosition;
@@ -1,5 +1,5 @@
1
1
  import { AppObject, AppObjectUC } from "../../../AppObject";
2
- import { ParametricLine } from "../../../ValueObjects";
2
+ import { ParametricLine, ParametricPlane } from "../../../ValueObjects";
3
3
  export declare abstract class RayPanScaleTransformUC extends AppObjectUC {
4
4
  static readonly type = "RayPanScaleTransformUC";
5
5
  abstract sensitivity: number;
@@ -10,6 +10,7 @@ export declare abstract class RayPanScaleTransformUC extends AppObjectUC {
10
10
  abstract maxX?: number;
11
11
  abstract minY?: number;
12
12
  abstract maxY?: number;
13
+ abstract pickPlane?: ParametricPlane;
13
14
  abstract update: (ray: ParametricLine) => void;
14
15
  abstract initialize: (ray: ParametricLine) => void;
15
16
  abstract finish: () => void;
@@ -22,16 +22,21 @@ class RayPanScaleTransformUCImp extends RayPanScaleTransformUC {
22
22
  this.allowUpdate = false;
23
23
  this.initialScale = 1;
24
24
  this.pickOffset = ValueObjects_1.Vector3.Zero();
25
- this.panPlane = ValueObjects_1.ParametricPlane.XY();
25
+ this._panPlane = ValueObjects_1.ParametricPlane.XY();
26
26
  this.lastRayLength = 0;
27
27
  this.initialize = (ray) => {
28
28
  var _a, _b;
29
29
  this.allowUpdate = false;
30
30
  if (!this.transform)
31
31
  return;
32
- const pick = Babylon_1.sceneRayPick(ray, this.appObjects);
33
- this.panPlane = ValueObjects_1.ParametricPlane.FromPointNormal((_a = pick === null || pick === void 0 ? void 0 : pick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero(), ValueObjects_1.Vector3.Backward());
34
- const pickPoint = (_b = this.panPlane.intersectLine(ray)) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
32
+ if (this.pickPlane) {
33
+ this._panPlane = this.pickPlane;
34
+ }
35
+ else {
36
+ const pick = Babylon_1.sceneRayPick(ray, this.appObjects);
37
+ this._panPlane = ValueObjects_1.ParametricPlane.FromPointNormal((_a = pick === null || pick === void 0 ? void 0 : pick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero(), ValueObjects_1.Vector3.Backward());
38
+ }
39
+ const pickPoint = (_b = this._panPlane.intersectLine(ray)) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
35
40
  this.lastRayLength = ValueObjects_1.ParametricLine.GetDistanceToPoint(ray, pickPoint);
36
41
  this.pickOffset = this.transform.worldPointToLocal(pickPoint);
37
42
  this.initialScale = this.transform.worldScale.x;
@@ -45,7 +50,7 @@ class RayPanScaleTransformUCImp extends RayPanScaleTransformUC {
45
50
  return;
46
51
  if (!this.transform)
47
52
  return;
48
- const pick = (_a = this.panPlane.intersectLine(ray)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
53
+ const pick = (_a = this._panPlane.intersectLine(ray)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
49
54
  this.updateScale(ray, pick);
50
55
  this.updatePosition(pick);
51
56
  };
@@ -1,5 +1,5 @@
1
1
  import { AppObject, AppObjectUC } from "../../../AppObject";
2
- import { ParametricLine, Vector2 } from "../../../ValueObjects";
2
+ import { ParametricLine, ParametricPlane, Vector2 } from "../../../ValueObjects";
3
3
  export declare abstract class ScaleTransformUC extends AppObjectUC {
4
4
  static readonly type = "ScaleTransformUC";
5
5
  abstract raySensitivity: number;
@@ -7,6 +7,7 @@ export declare abstract class ScaleTransformUC extends AppObjectUC {
7
7
  abstract enabled: boolean;
8
8
  abstract minScale?: number;
9
9
  abstract maxScale?: number;
10
+ abstract pickPlane?: ParametricPlane;
10
11
  abstract initializeRay: (ray: ParametricLine) => void;
11
12
  abstract updateRay: (ray: ParametricLine) => void;
12
13
  abstract initializePixel: (pixel: Vector2) => void;
@@ -92,12 +92,16 @@ class ScaleTransformUCImp extends ScaleTransformUC {
92
92
  }
93
93
  }
94
94
  doInitialize(ray) {
95
- var _a;
95
+ var _a, _b, _c;
96
96
  this.isScaling = false;
97
97
  if (!this.transform)
98
98
  return;
99
- const pick = Babylon_1.sceneRayPick(ray, this.appObjects);
100
- this.pickPoint = (_a = pick === null || pick === void 0 ? void 0 : pick.worldPickPoint) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
99
+ if (this.pickPlane) {
100
+ this.pickPoint = (_a = this.pickPlane.intersectLine(ray)) !== null && _a !== void 0 ? _a : ValueObjects_1.Vector3.Zero();
101
+ }
102
+ else {
103
+ this.pickPoint = (_c = (_b = Babylon_1.sceneRayPick(ray, this.appObjects)) === null || _b === void 0 ? void 0 : _b.worldPickPoint) !== null && _c !== void 0 ? _c : ValueObjects_1.Vector3.Zero();
104
+ }
101
105
  this.initialScale = this.transform.worldScale.x;
102
106
  this.isScaling = true;
103
107
  }
@@ -1,6 +1,7 @@
1
1
  export * from "./App";
2
2
  export * from "./Babylon";
3
3
  export * from "./Camera";
4
+ export * from "./Challenge";
4
5
  export * from "./ChannelModel";
5
6
  export * from "./Dispatcher";
6
7
  export * from "./Enablement";
@@ -13,6 +13,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./App"), exports);
14
14
  __exportStar(require("./Babylon"), exports);
15
15
  __exportStar(require("./Camera"), exports);
16
+ __exportStar(require("./Challenge"), exports);
16
17
  __exportStar(require("./ChannelModel"), exports);
17
18
  __exportStar(require("./Dispatcher"), exports);
18
19
  __exportStar(require("./Enablement"), exports);
@@ -0,0 +1,6 @@
1
+ import { AppObjectRepo } from "../AppObject";
2
+ export interface ReactHookPmAdapter<VM> {
3
+ defaultVM: VM;
4
+ subscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
5
+ unsubscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,3 +2,4 @@ export * from "./AppBoundary";
2
2
  export * from "./AssetMetaDTO";
3
3
  export * from "./ChannelModelData";
4
4
  export * from "./EaseFn";
5
+ export * from "./ReactHookPmAdapter";
@@ -14,3 +14,4 @@ __exportStar(require("./AppBoundary"), exports);
14
14
  __exportStar(require("./AssetMetaDTO"), exports);
15
15
  __exportStar(require("./ChannelModelData"), exports);
16
16
  __exportStar(require("./EaseFn"), exports);
17
+ __exportStar(require("./ReactHookPmAdapter"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/app",
3
- "version": "4.14.0",
3
+ "version": "4.15.0",
4
4
  "description": "Public package for the VIVED Learning App system",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",