@vived/app 5.3.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Babylon/Adapters/showBabylonInspectorAdapter.test.js +3 -0
- package/dist/cjs/Babylon/Adapters/showBabylonInspectorAdapter.test.js.map +1 -1
- package/dist/cjs/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
- package/dist/cjs/Babylon/Mocks/ShowBabylonInspectorPmMock.js.map +1 -1
- package/dist/cjs/Babylon/PM/ShowBabylonInspectorPM.js +9 -6
- package/dist/cjs/Babylon/PM/ShowBabylonInspectorPM.js.map +1 -1
- package/dist/cjs/BaseApp/PM/IsAuthoringPM.js +6 -9
- package/dist/cjs/BaseApp/PM/IsAuthoringPM.js.map +1 -1
- package/dist/cjs/BaseApp/PM/IsAuthoringPM.test.js +2 -6
- package/dist/cjs/BaseApp/PM/IsAuthoringPM.test.js.map +1 -1
- package/dist/cjs/BaseApp/PM/IsReviewingPM.js +6 -9
- package/dist/cjs/BaseApp/PM/IsReviewingPM.js.map +1 -1
- package/dist/cjs/BaseApp/PM/IsReviewingPM.test.js +2 -6
- package/dist/cjs/BaseApp/PM/IsReviewingPM.test.js.map +1 -1
- package/dist/cjs/BaseApp/PM/SlideTextPM.js +6 -5
- package/dist/cjs/BaseApp/PM/SlideTextPM.js.map +1 -1
- package/dist/cjs/BaseApp/PM/SlideTextPM.test.js +2 -6
- package/dist/cjs/BaseApp/PM/SlideTextPM.test.js.map +1 -1
- package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js +1 -0
- package/dist/cjs/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
- package/dist/cjs/BaseApp/UC/SerializeBaseAppState.js +1 -1
- package/dist/cjs/BaseApp/UC/SerializeBaseAppState.js.map +1 -1
- package/dist/cjs/Callouts/Factories/calloutFactory.test.js +6 -0
- package/dist/cjs/Callouts/Factories/calloutFactory.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js +8 -9
- package/dist/cjs/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
- package/dist/cjs/Callouts/UC/SerializeCallouts.js +1 -1
- package/dist/cjs/Callouts/UC/SerializeCallouts.js.map +1 -1
- package/dist/cjs/Callouts/UC/TryAddCallout.test.js.map +1 -1
- package/dist/cjs/Challenge/UCs/SerializeChallenge.js +1 -1
- package/dist/cjs/Challenge/UCs/SerializeChallenge.js.map +1 -1
- package/dist/cjs/Challenge/UCs/ShowChallengeHelpUC.test.js +3 -2
- package/dist/cjs/Challenge/UCs/ShowChallengeHelpUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ActiveModelPM.js +6 -5
- package/dist/cjs/ChannelModel/PMs/ActiveModelPM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ActiveModelPM.test.js +2 -6
- package/dist/cjs/ChannelModel/PMs/ActiveModelPM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelHasCalloutsPM.js +5 -3
- package/dist/cjs/ChannelModel/PMs/ModelHasCalloutsPM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelHasCalloutsPM.test.js +1 -0
- package/dist/cjs/ChannelModel/PMs/ModelHasCalloutsPM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelHasLandmarksPM.js +3 -7
- package/dist/cjs/ChannelModel/PMs/ModelHasLandmarksPM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelHasLandmarksPM.test.js +1 -0
- package/dist/cjs/ChannelModel/PMs/ModelHasLandmarksPM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreHiddenPM.js +3 -9
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreHiddenPM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.js +1 -0
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreStickablePM.js +3 -7
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreStickablePM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreStickablePM.test.js +1 -0
- package/dist/cjs/ChannelModel/PMs/ModelObjectsAreStickablePM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsHaveOverlayPM.js +3 -9
- package/dist/cjs/ChannelModel/PMs/ModelObjectsHaveOverlayPM.js.map +1 -1
- package/dist/cjs/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.js +1 -0
- package/dist/cjs/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/LoadChannelModelUC.test.js +6 -6
- package/dist/cjs/ChannelModel/UC/LoadChannelModelUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js +1 -1
- package/dist/cjs/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
- package/dist/cjs/ChannelModel/UC/SerializeActiveModel.js +1 -1
- package/dist/cjs/ChannelModel/UC/SerializeActiveModel.js.map +1 -1
- package/dist/cjs/Dispatcher/Entities/AppDispatcher.js +7 -0
- package/dist/cjs/Dispatcher/Entities/AppDispatcher.js.map +1 -1
- package/dist/cjs/Dispatcher/Entities/AppDispatcher.test.js +31 -0
- package/dist/cjs/Dispatcher/Entities/AppDispatcher.test.js.map +1 -1
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js +3 -1
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/GetAssetBlobURLUCMock.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/GetAssetBlobURLUCMock.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/GetLinkedAssetsUCMock.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/GetLinkedAssetsUCMock.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatcher.js +2 -2
- package/dist/cjs/Dispatcher/Mocks/MockDispatcher.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockGetAssetFolderURL.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockGetAssetFolderURL.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowAlert.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowAlert.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowConfirm.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowConfirm.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowMarkdown.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowMarkdown.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowSpinner.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockShowSpinner.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockSubmitResult.js +5 -5
- package/dist/cjs/Dispatcher/Mocks/MockSubmitResult.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/ShowSelectModelUCMock.js +1 -1
- package/dist/cjs/Dispatcher/Mocks/ShowSelectModelUCMock.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/AppIsReadyUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/AppIsReadyUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/DispatchStartZSpaceUC.test.js +2 -1
- package/dist/cjs/Dispatcher/UC/DispatchStartZSpaceUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.test.js +1 -0
- package/dist/cjs/Dispatcher/UC/DispatchStateChangeUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/DispatchStopZSpaceUC.test.js +2 -1
- package/dist/cjs/Dispatcher/UC/DispatchStopZSpaceUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GetAssetBlobURLUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GetAssetBlobURLUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GetAssetFolderURLUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GetAssetFolderURLUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GetAssetMetaUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GetAssetMetaUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GetAssetsForOwnerUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GetAssetsForOwnerUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GetLinkedAssetsUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GetLinkedAssetsUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GoToNextStateUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GoToNextStateUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/GoToPreviousStateUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/GoToPreviousStateUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/HasNextStateUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/HasNextStateUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/HasPreviousStateUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/HasPreviousStateUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/IsAssetFetchedUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/IsAssetFetchedUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/IsZSpaceAvailableUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/IsZSpaceAvailableUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/RegisterExternalStylesheetsUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/RegisterExternalStylesheetsUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/RestoreCurrentStateUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/RestoreCurrentStateUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/StateIsCompleteUC.test.js +3 -1
- package/dist/cjs/Dispatcher/UC/StateIsCompleteUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/SubmitActivityAssetUC.test.js +5 -3
- package/dist/cjs/Dispatcher/UC/SubmitActivityAssetUC.test.js.map +1 -1
- package/dist/cjs/Dispatcher/UC/SubmitResultResultUC.test.js +11 -5
- package/dist/cjs/Dispatcher/UC/SubmitResultResultUC.test.js.map +1 -1
- package/dist/cjs/Enablement/PM/EnabledStatePM.js +5 -9
- package/dist/cjs/Enablement/PM/EnabledStatePM.js.map +1 -1
- package/dist/cjs/Enablement/PM/EnabledStatePM.test.js +1 -0
- package/dist/cjs/Enablement/PM/EnabledStatePM.test.js.map +1 -1
- package/dist/cjs/Environment/UCs/SerializeEnvironment.js +1 -1
- package/dist/cjs/Environment/UCs/SerializeEnvironment.js.map +1 -1
- package/dist/cjs/Hideable/Factories/setupHideable.test.js +6 -0
- package/dist/cjs/Hideable/Factories/setupHideable.test.js.map +1 -1
- package/dist/cjs/Hideable/UCs/SerializeHideableObjects.js +1 -1
- package/dist/cjs/Hideable/UCs/SerializeHideableObjects.js.map +1 -1
- package/dist/cjs/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
- package/dist/cjs/HoverLabel/UseCases/SerializeAllowHoverLabel.js +1 -1
- package/dist/cjs/HoverLabel/UseCases/SerializeAllowHoverLabel.js.map +1 -1
- package/dist/cjs/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
- package/dist/cjs/Label/Controller/submitCustomLabel.test.js +3 -0
- package/dist/cjs/Label/Controller/submitCustomLabel.test.js.map +1 -1
- package/dist/cjs/Label/Controller/updateCustomLabel.test.js +3 -0
- package/dist/cjs/Label/Controller/updateCustomLabel.test.js.map +1 -1
- package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js +0 -7
- package/dist/cjs/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
- package/dist/cjs/Label/UC/SerializeCustomLabels.js +1 -1
- package/dist/cjs/Label/UC/SerializeCustomLabels.js.map +1 -1
- package/dist/cjs/Label/UC/SetCustomLabelUC.test.js +0 -7
- package/dist/cjs/Label/UC/SetCustomLabelUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/SerializeLabelDrop.js +1 -1
- package/dist/cjs/LabelDrop/UseCases/SerializeLabelDrop.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
- package/dist/cjs/Landmarks/PM/LandmarkSizePM.js +5 -8
- package/dist/cjs/Landmarks/PM/LandmarkSizePM.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/SerializeLandmarks.js +1 -1
- package/dist/cjs/Landmarks/UseCases/SerializeLandmarks.js.map +1 -1
- package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +2 -0
- package/dist/cjs/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/SerializeObjectPick.js +1 -1
- package/dist/cjs/ObjectPick/UseCases/SerializeObjectPick.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
- package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +1 -0
- package/dist/cjs/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
- package/dist/cjs/OverlayColor/UC/SerializeOverlayColoredObjects.js +1 -1
- package/dist/cjs/OverlayColor/UC/SerializeOverlayColoredObjects.js.map +1 -1
- package/dist/cjs/Question/UC/SerializeQuestionChallenge.js +1 -1
- package/dist/cjs/Question/UC/SerializeQuestionChallenge.js.map +1 -1
- package/dist/cjs/Question/UC/SubmitQuestionAnswerUC.test.js +1 -0
- package/dist/cjs/Question/UC/SubmitQuestionAnswerUC.test.js.map +1 -1
- package/dist/cjs/RequestHandler/Entities/AppHandler.js +4 -0
- package/dist/cjs/RequestHandler/Entities/AppHandler.js.map +1 -1
- package/dist/cjs/RequestHandler/Entities/AppHandler.test.js +27 -0
- package/dist/cjs/RequestHandler/Entities/AppHandler.test.js.map +1 -1
- package/dist/cjs/RequestHandler/Factories/RequestHandlerFeatureFactory.js +28 -29
- package/dist/cjs/RequestHandler/Factories/RequestHandlerFeatureFactory.js.map +1 -1
- package/dist/cjs/RequestHandler/Factories/RequestHandlerFeatureFactory.test.js +128 -0
- package/dist/cjs/RequestHandler/Factories/RequestHandlerFeatureFactory.test.js.map +1 -0
- package/dist/cjs/RequestHandler/Mocks/MockAppHandlerEntity.js +1 -0
- package/dist/cjs/RequestHandler/Mocks/MockAppHandlerEntity.js.map +1 -1
- package/dist/cjs/SceneRoot/UC/SerializeSceneRoot.js +1 -1
- package/dist/cjs/SceneRoot/UC/SerializeSceneRoot.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
- package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
- package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
- package/dist/cjs/StateMachine/Controller/clickRestorePreviousState.js +21 -0
- package/dist/cjs/StateMachine/Controller/clickRestorePreviousState.js.map +1 -0
- package/dist/cjs/StateMachine/Controller/clickRestorePreviousState.test.js +34 -0
- package/dist/cjs/StateMachine/Controller/clickRestorePreviousState.test.js.map +1 -0
- package/dist/cjs/StateMachine/Controller/index.js +1 -1
- package/dist/cjs/StateMachine/Controller/index.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/StateMachineEntity.js +26 -4
- package/dist/cjs/StateMachine/Entities/StateMachineEntity.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/StateMachineEntity.test.js +23 -4
- package/dist/cjs/StateMachine/Entities/StateMachineEntity.test.js.map +1 -1
- package/dist/cjs/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
- package/dist/cjs/StoredView/PM/HasStoredViewPM.js +6 -10
- package/dist/cjs/StoredView/PM/HasStoredViewPM.js.map +1 -1
- package/dist/cjs/StoredView/PM/HasStoredViewPM.test.js +1 -0
- package/dist/cjs/StoredView/PM/HasStoredViewPM.test.js.map +1 -1
- package/dist/cjs/StoredView/UC/SerializeStoredView.js +1 -1
- package/dist/cjs/StoredView/UC/SerializeStoredView.js.map +1 -1
- package/dist/cjs/Stylus/PMs/StylusIsInUsePM.js +7 -6
- package/dist/cjs/Stylus/PMs/StylusIsInUsePM.js.map +1 -1
- package/dist/cjs/Stylus/PMs/StylusIsInUsePM.test.js +2 -6
- package/dist/cjs/Stylus/PMs/StylusIsInUsePM.test.js.map +1 -1
- package/dist/cjs/Stylus/UCs/EmulateStylusUC.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/PinchTransform.test.js.map +1 -1
- package/dist/cjs/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
- package/dist/cjs/Transparency/UCs/SerializeTransparentObjects.js +1 -1
- package/dist/cjs/Transparency/UCs/SerializeTransparentObjects.js.map +1 -1
- package/dist/cjs/zSpace/PM/ZSpaceIsEnabledPM.js +6 -5
- package/dist/cjs/zSpace/PM/ZSpaceIsEnabledPM.js.map +1 -1
- package/dist/cjs/zSpace/PM/ZSpaceIsEnabledPM.test.js +4 -8
- package/dist/cjs/zSpace/PM/ZSpaceIsEnabledPM.test.js.map +1 -1
- package/dist/cjs/zSpace/PM/ZSpaceIsSupportedPM.js +6 -5
- package/dist/cjs/zSpace/PM/ZSpaceIsSupportedPM.js.map +1 -1
- package/dist/cjs/zSpace/PM/ZSpaceIsSupportedPM.test.js +1 -0
- package/dist/cjs/zSpace/PM/ZSpaceIsSupportedPM.test.js.map +1 -1
- package/dist/esm/Babylon/Adapters/showBabylonInspectorAdapter.test.js +3 -0
- package/dist/esm/Babylon/Adapters/showBabylonInspectorAdapter.test.js.map +1 -1
- package/dist/esm/Babylon/Mocks/MockSceneRayPickUC.js.map +1 -1
- package/dist/esm/Babylon/Mocks/ShowBabylonInspectorPmMock.js.map +1 -1
- package/dist/esm/Babylon/PM/ShowBabylonInspectorPM.js +9 -6
- package/dist/esm/Babylon/PM/ShowBabylonInspectorPM.js.map +1 -1
- package/dist/esm/BaseApp/PM/IsAuthoringPM.js +7 -10
- package/dist/esm/BaseApp/PM/IsAuthoringPM.js.map +1 -1
- package/dist/esm/BaseApp/PM/IsAuthoringPM.test.js +2 -6
- package/dist/esm/BaseApp/PM/IsAuthoringPM.test.js.map +1 -1
- package/dist/esm/BaseApp/PM/IsReviewingPM.js +7 -10
- package/dist/esm/BaseApp/PM/IsReviewingPM.js.map +1 -1
- package/dist/esm/BaseApp/PM/IsReviewingPM.test.js +2 -6
- package/dist/esm/BaseApp/PM/IsReviewingPM.test.js.map +1 -1
- package/dist/esm/BaseApp/PM/SlideTextPM.js +7 -6
- package/dist/esm/BaseApp/PM/SlideTextPM.js.map +1 -1
- package/dist/esm/BaseApp/PM/SlideTextPM.test.js +2 -6
- package/dist/esm/BaseApp/PM/SlideTextPM.test.js.map +1 -1
- package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js +1 -0
- package/dist/esm/BaseApp/UC/EditSlideTextUC.test.js.map +1 -1
- package/dist/esm/BaseApp/UC/SerializeBaseAppState.js +1 -1
- package/dist/esm/BaseApp/UC/SerializeBaseAppState.js.map +1 -1
- package/dist/esm/Callouts/Factories/calloutFactory.test.js +6 -0
- package/dist/esm/Callouts/Factories/calloutFactory.test.js.map +1 -1
- package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js +8 -9
- package/dist/esm/Callouts/UC/CreateCalloutUndoRedo.test.js.map +1 -1
- package/dist/esm/Callouts/UC/SerializeCallouts.js +1 -1
- package/dist/esm/Callouts/UC/SerializeCallouts.js.map +1 -1
- package/dist/esm/Callouts/UC/TryAddCallout.test.js.map +1 -1
- package/dist/esm/Challenge/UCs/SerializeChallenge.js +1 -1
- package/dist/esm/Challenge/UCs/SerializeChallenge.js.map +1 -1
- package/dist/esm/Challenge/UCs/ShowChallengeHelpUC.test.js +3 -2
- package/dist/esm/Challenge/UCs/ShowChallengeHelpUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ActiveModelPM.js +7 -6
- package/dist/esm/ChannelModel/PMs/ActiveModelPM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ActiveModelPM.test.js +2 -6
- package/dist/esm/ChannelModel/PMs/ActiveModelPM.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelHasCalloutsPM.js +5 -3
- package/dist/esm/ChannelModel/PMs/ModelHasCalloutsPM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelHasCalloutsPM.test.js +1 -0
- package/dist/esm/ChannelModel/PMs/ModelHasCalloutsPM.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelHasLandmarksPM.js +3 -7
- package/dist/esm/ChannelModel/PMs/ModelHasLandmarksPM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelHasLandmarksPM.test.js +1 -0
- package/dist/esm/ChannelModel/PMs/ModelHasLandmarksPM.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreHiddenPM.js +3 -9
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreHiddenPM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.js +1 -0
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreStickablePM.js +3 -7
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreStickablePM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreStickablePM.test.js +1 -0
- package/dist/esm/ChannelModel/PMs/ModelObjectsAreStickablePM.test.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsHaveOverlayPM.js +3 -9
- package/dist/esm/ChannelModel/PMs/ModelObjectsHaveOverlayPM.js.map +1 -1
- package/dist/esm/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.js +1 -0
- package/dist/esm/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/LoadChannelModelUC.test.js +6 -6
- package/dist/esm/ChannelModel/UC/LoadChannelModelUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js +1 -1
- package/dist/esm/ChannelModel/UC/SelectChannelModelUC.test.js.map +1 -1
- package/dist/esm/ChannelModel/UC/SerializeActiveModel.js +1 -1
- package/dist/esm/ChannelModel/UC/SerializeActiveModel.js.map +1 -1
- package/dist/esm/Dispatcher/Entities/AppDispatcher.js +7 -0
- package/dist/esm/Dispatcher/Entities/AppDispatcher.js.map +1 -1
- package/dist/esm/Dispatcher/Entities/AppDispatcher.test.js +31 -0
- package/dist/esm/Dispatcher/Entities/AppDispatcher.test.js.map +1 -1
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js +3 -1
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/GetAssetBlobURLUCMock.js +1 -1
- package/dist/esm/Dispatcher/Mocks/GetAssetBlobURLUCMock.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/GetLinkedAssetsUCMock.js +1 -1
- package/dist/esm/Dispatcher/Mocks/GetLinkedAssetsUCMock.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatcher.js +2 -2
- package/dist/esm/Dispatcher/Mocks/MockDispatcher.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockGetAssetFolderURL.js +1 -1
- package/dist/esm/Dispatcher/Mocks/MockGetAssetFolderURL.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowAlert.js +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowAlert.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowConfirm.js +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowConfirm.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowMarkdown.js +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowMarkdown.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowSpinner.js +1 -1
- package/dist/esm/Dispatcher/Mocks/MockShowSpinner.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockSubmitResult.js +5 -5
- package/dist/esm/Dispatcher/Mocks/MockSubmitResult.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/ShowSelectModelUCMock.js +1 -1
- package/dist/esm/Dispatcher/Mocks/ShowSelectModelUCMock.js.map +1 -1
- package/dist/esm/Dispatcher/UC/AppIsReadyUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/AppIsReadyUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/DispatchStartZSpaceUC.test.js +2 -1
- package/dist/esm/Dispatcher/UC/DispatchStartZSpaceUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.test.js +1 -0
- package/dist/esm/Dispatcher/UC/DispatchStateChangeUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/DispatchStopZSpaceUC.test.js +2 -1
- package/dist/esm/Dispatcher/UC/DispatchStopZSpaceUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GetAssetBlobURLUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GetAssetBlobURLUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GetAssetFolderURLUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GetAssetFolderURLUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GetAssetMetaUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GetAssetMetaUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GetAssetsForOwnerUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GetAssetsForOwnerUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GetLinkedAssetsUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GetLinkedAssetsUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GoToNextStateUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GoToNextStateUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/GoToPreviousStateUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/GoToPreviousStateUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/HasNextStateUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/HasNextStateUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/HasPreviousStateUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/HasPreviousStateUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/IsAssetFetchedUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/IsAssetFetchedUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/IsZSpaceAvailableUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/IsZSpaceAvailableUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/RegisterExternalStylesheetsUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/RegisterExternalStylesheetsUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/RestoreCurrentStateUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/RestoreCurrentStateUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/StateIsCompleteUC.test.js +3 -1
- package/dist/esm/Dispatcher/UC/StateIsCompleteUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/SubmitActivityAssetUC.test.js +5 -3
- package/dist/esm/Dispatcher/UC/SubmitActivityAssetUC.test.js.map +1 -1
- package/dist/esm/Dispatcher/UC/SubmitResultResultUC.test.js +11 -5
- package/dist/esm/Dispatcher/UC/SubmitResultResultUC.test.js.map +1 -1
- package/dist/esm/Enablement/PM/EnabledStatePM.js +5 -9
- package/dist/esm/Enablement/PM/EnabledStatePM.js.map +1 -1
- package/dist/esm/Enablement/PM/EnabledStatePM.test.js +1 -0
- package/dist/esm/Enablement/PM/EnabledStatePM.test.js.map +1 -1
- package/dist/esm/Environment/UCs/SerializeEnvironment.js +1 -1
- package/dist/esm/Environment/UCs/SerializeEnvironment.js.map +1 -1
- package/dist/esm/Hideable/Factories/setupHideable.test.js +6 -0
- package/dist/esm/Hideable/Factories/setupHideable.test.js.map +1 -1
- package/dist/esm/Hideable/UCs/SerializeHideableObjects.js +1 -1
- package/dist/esm/Hideable/UCs/SerializeHideableObjects.js.map +1 -1
- package/dist/esm/Hideable/UCs/TryHideWithPickUC.test.js.map +1 -1
- package/dist/esm/HoverLabel/UseCases/SerializeAllowHoverLabel.js +1 -1
- package/dist/esm/HoverLabel/UseCases/SerializeAllowHoverLabel.js.map +1 -1
- package/dist/esm/HoverLabel/UseCases/TryShowHoverLabel.test.js.map +1 -1
- package/dist/esm/Label/Controller/submitCustomLabel.test.js +3 -0
- package/dist/esm/Label/Controller/submitCustomLabel.test.js.map +1 -1
- package/dist/esm/Label/Controller/updateCustomLabel.test.js +3 -0
- package/dist/esm/Label/Controller/updateCustomLabel.test.js.map +1 -1
- package/dist/esm/Label/UC/ClearCustomLabelUC.test.js +0 -7
- package/dist/esm/Label/UC/ClearCustomLabelUC.test.js.map +1 -1
- package/dist/esm/Label/UC/SerializeCustomLabels.js +1 -1
- package/dist/esm/Label/UC/SerializeCustomLabels.js.map +1 -1
- package/dist/esm/Label/UC/SetCustomLabelUC.test.js +0 -7
- package/dist/esm/Label/UC/SetCustomLabelUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/SerializeLabelDrop.js +1 -1
- package/dist/esm/LabelDrop/UseCases/SerializeLabelDrop.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/ToggleLabelDropTargetUC.test.js.map +1 -1
- package/dist/esm/Landmarks/PM/LandmarkSizePM.js +5 -8
- package/dist/esm/Landmarks/PM/LandmarkSizePM.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/SerializeLandmarks.js +1 -1
- package/dist/esm/Landmarks/UseCases/SerializeLandmarks.js.map +1 -1
- package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js +2 -0
- package/dist/esm/Landmarks/UseCases/TryAddNewLandmarkUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/SerializeObjectPick.js +1 -1
- package/dist/esm/ObjectPick/UseCases/SerializeObjectPick.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/TrySelectObjectPickUC.test.js.map +1 -1
- package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js +1 -0
- package/dist/esm/ObjectPick/UseCases/TrySubmitObjectPickUC.test.js.map +1 -1
- package/dist/esm/OverlayColor/UC/SerializeOverlayColoredObjects.js +1 -1
- package/dist/esm/OverlayColor/UC/SerializeOverlayColoredObjects.js.map +1 -1
- package/dist/esm/Question/UC/SerializeQuestionChallenge.js +1 -1
- package/dist/esm/Question/UC/SerializeQuestionChallenge.js.map +1 -1
- package/dist/esm/Question/UC/SubmitQuestionAnswerUC.test.js +1 -0
- package/dist/esm/Question/UC/SubmitQuestionAnswerUC.test.js.map +1 -1
- package/dist/esm/RequestHandler/Entities/AppHandler.js +4 -0
- package/dist/esm/RequestHandler/Entities/AppHandler.js.map +1 -1
- package/dist/esm/RequestHandler/Entities/AppHandler.test.js +27 -0
- package/dist/esm/RequestHandler/Entities/AppHandler.test.js.map +1 -1
- package/dist/esm/RequestHandler/Factories/RequestHandlerFeatureFactory.js +28 -29
- package/dist/esm/RequestHandler/Factories/RequestHandlerFeatureFactory.js.map +1 -1
- package/dist/esm/RequestHandler/Factories/RequestHandlerFeatureFactory.test.js +126 -0
- package/dist/esm/RequestHandler/Factories/RequestHandlerFeatureFactory.test.js.map +1 -0
- package/dist/esm/RequestHandler/Mocks/MockAppHandlerEntity.js +1 -0
- package/dist/esm/RequestHandler/Mocks/MockAppHandlerEntity.js.map +1 -1
- package/dist/esm/SceneRoot/UC/SerializeSceneRoot.js +1 -1
- package/dist/esm/SceneRoot/UC/SerializeSceneRoot.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
- package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
- package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
- package/dist/esm/StateMachine/Controller/clickRestorePreviousState.js +17 -0
- package/dist/esm/StateMachine/Controller/clickRestorePreviousState.js.map +1 -0
- package/dist/esm/StateMachine/Controller/clickRestorePreviousState.test.js +32 -0
- package/dist/esm/StateMachine/Controller/clickRestorePreviousState.test.js.map +1 -0
- package/dist/esm/StateMachine/Controller/index.js +1 -1
- package/dist/esm/StateMachine/Controller/index.js.map +1 -1
- package/dist/esm/StateMachine/Entities/StateMachineEntity.js +26 -4
- package/dist/esm/StateMachine/Entities/StateMachineEntity.js.map +1 -1
- package/dist/esm/StateMachine/Entities/StateMachineEntity.test.js +23 -4
- package/dist/esm/StateMachine/Entities/StateMachineEntity.test.js.map +1 -1
- package/dist/esm/Stick/UCs/TryStickAppObjectUC.test.js.map +1 -1
- package/dist/esm/StoredView/PM/HasStoredViewPM.js +7 -11
- package/dist/esm/StoredView/PM/HasStoredViewPM.js.map +1 -1
- package/dist/esm/StoredView/PM/HasStoredViewPM.test.js +1 -0
- package/dist/esm/StoredView/PM/HasStoredViewPM.test.js.map +1 -1
- package/dist/esm/StoredView/UC/SerializeStoredView.js +1 -1
- package/dist/esm/StoredView/UC/SerializeStoredView.js.map +1 -1
- package/dist/esm/Stylus/PMs/StylusIsInUsePM.js +8 -7
- package/dist/esm/Stylus/PMs/StylusIsInUsePM.js.map +1 -1
- package/dist/esm/Stylus/PMs/StylusIsInUsePM.test.js +2 -6
- package/dist/esm/Stylus/PMs/StylusIsInUsePM.test.js.map +1 -1
- package/dist/esm/Stylus/UCs/EmulateStylusUC.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/BumpTransformScaleAboutPixelPoint.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/PinchTransform.test.js.map +1 -1
- package/dist/esm/Transform3D/UC/TryPanTransformUC.test.js.map +1 -1
- package/dist/esm/Transparency/UCs/SerializeTransparentObjects.js +1 -1
- package/dist/esm/Transparency/UCs/SerializeTransparentObjects.js.map +1 -1
- package/dist/esm/zSpace/PM/ZSpaceIsEnabledPM.js +7 -6
- package/dist/esm/zSpace/PM/ZSpaceIsEnabledPM.js.map +1 -1
- package/dist/esm/zSpace/PM/ZSpaceIsEnabledPM.test.js +4 -8
- package/dist/esm/zSpace/PM/ZSpaceIsEnabledPM.test.js.map +1 -1
- package/dist/esm/zSpace/PM/ZSpaceIsSupportedPM.js +7 -6
- package/dist/esm/zSpace/PM/ZSpaceIsSupportedPM.js.map +1 -1
- package/dist/esm/zSpace/PM/ZSpaceIsSupportedPM.test.js +1 -0
- package/dist/esm/zSpace/PM/ZSpaceIsSupportedPM.test.js.map +1 -1
- package/dist/types/Babylon/PM/ShowBabylonInspectorPM.d.ts +3 -2
- package/dist/types/Babylon/PM/ShowBabylonInspectorPM.d.ts.map +1 -1
- package/dist/types/BaseApp/PM/IsAuthoringPM.d.ts +2 -2
- package/dist/types/BaseApp/PM/IsAuthoringPM.d.ts.map +1 -1
- package/dist/types/BaseApp/PM/IsReviewingPM.d.ts +2 -2
- package/dist/types/BaseApp/PM/IsReviewingPM.d.ts.map +1 -1
- package/dist/types/BaseApp/PM/SlideTextPM.d.ts +2 -2
- package/dist/types/BaseApp/PM/SlideTextPM.d.ts.map +1 -1
- package/dist/types/BaseApp/UC/SerializeBaseAppState.d.ts +1 -1
- package/dist/types/Callouts/Controller/MouseAddCalloutMC.d.ts +1 -1
- package/dist/types/Callouts/Controller/MouseAddCalloutMC.d.ts.map +1 -1
- package/dist/types/Callouts/Controller/TouchAddCalloutTC.d.ts +1 -1
- package/dist/types/Callouts/Controller/TouchAddCalloutTC.d.ts.map +1 -1
- package/dist/types/Callouts/UC/SerializeCallouts.d.ts +1 -1
- package/dist/types/Challenge/UCs/SerializeChallenge.d.ts +1 -1
- package/dist/types/ChannelModel/PMs/ActiveModelPM.d.ts +4 -3
- package/dist/types/ChannelModel/PMs/ActiveModelPM.d.ts.map +1 -1
- package/dist/types/ChannelModel/UC/SerializeActiveModel.d.ts +2 -2
- package/dist/types/Dispatcher/Entities/AppDispatcher.d.ts +1 -0
- package/dist/types/Dispatcher/Entities/AppDispatcher.d.ts.map +1 -1
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts +1 -0
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/GetAssetBlobURLUCMock.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/GetAssetBlobURLUCMock.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/GetLinkedAssetsUCMock.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/GetLinkedAssetsUCMock.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockDispatcher.d.ts +2 -2
- package/dist/types/Dispatcher/Mocks/MockDispatcher.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockGetAssetFolderURL.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/MockGetAssetFolderURL.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowAlert.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowAlert.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowConfirm.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowConfirm.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowMarkdown.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowMarkdown.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowSpinner.d.ts +1 -1
- package/dist/types/Dispatcher/Mocks/MockShowSpinner.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockSubmitResult.d.ts +5 -5
- package/dist/types/Dispatcher/Mocks/MockSubmitResult.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/ShowSelectModelUCMock.d.ts +4 -1
- package/dist/types/Dispatcher/Mocks/ShowSelectModelUCMock.d.ts.map +1 -1
- package/dist/types/Environment/UCs/SerializeEnvironment.d.ts +1 -1
- package/dist/types/Hideable/UCs/SerializeHideableObjects.d.ts +2 -2
- package/dist/types/HoverLabel/UseCases/SerializeAllowHoverLabel.d.ts +1 -1
- package/dist/types/Label/UC/SerializeCustomLabels.d.ts +1 -2
- package/dist/types/Label/UC/SerializeCustomLabels.d.ts.map +1 -1
- package/dist/types/LabelDrop/UseCases/SerializeLabelDrop.d.ts +1 -1
- package/dist/types/Landmarks/UseCases/SerializeLandmarks.d.ts +1 -1
- package/dist/types/ObjectPick/UseCases/SerializeObjectPick.d.ts +1 -1
- package/dist/types/OverlayColor/UC/SerializeOverlayColoredObjects.d.ts +2 -2
- package/dist/types/Question/UC/SerializeQuestionChallenge.d.ts +1 -1
- package/dist/types/RequestHandler/Entities/AppHandler.d.ts +1 -0
- package/dist/types/RequestHandler/Entities/AppHandler.d.ts.map +1 -1
- package/dist/types/RequestHandler/Factories/RequestHandlerFeatureFactory.d.ts +19 -20
- package/dist/types/RequestHandler/Factories/RequestHandlerFeatureFactory.d.ts.map +1 -1
- package/dist/types/RequestHandler/Factories/RequestHandlerFeatureFactory.test.d.ts +2 -0
- package/dist/types/RequestHandler/Factories/RequestHandlerFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/RequestHandler/Mocks/MockAppHandlerEntity.d.ts +1 -0
- package/dist/types/RequestHandler/Mocks/MockAppHandlerEntity.d.ts.map +1 -1
- package/dist/types/SceneRoot/UC/SerializeSceneRoot.d.ts +1 -1
- package/dist/types/StateMachine/Controller/clickRestorePreviousState.d.ts +7 -0
- package/dist/types/StateMachine/Controller/clickRestorePreviousState.d.ts.map +1 -0
- package/dist/types/StateMachine/Controller/clickRestorePreviousState.test.d.ts +2 -0
- package/dist/types/StateMachine/Controller/clickRestorePreviousState.test.d.ts.map +1 -0
- package/dist/types/StateMachine/Controller/index.d.ts +1 -1
- package/dist/types/StateMachine/Controller/index.d.ts.map +1 -1
- package/dist/types/StateMachine/Entities/StateMachineEntity.d.ts +87 -2
- package/dist/types/StateMachine/Entities/StateMachineEntity.d.ts.map +1 -1
- package/dist/types/StoredView/PM/HasStoredViewPM.d.ts +2 -2
- package/dist/types/StoredView/PM/HasStoredViewPM.d.ts.map +1 -1
- package/dist/types/StoredView/UC/SerializeStoredView.d.ts +1 -1
- package/dist/types/Stylus/PMs/StylusIsInUsePM.d.ts +2 -2
- package/dist/types/Stylus/PMs/StylusIsInUsePM.d.ts.map +1 -1
- package/dist/types/Transform3D/UC/MoveTransformUC.d.ts +3 -3
- package/dist/types/Transform3D/UC/MoveTransformUC.d.ts.map +1 -1
- package/dist/types/Transform3D/UC/PanTransformUC.d.ts +3 -3
- package/dist/types/Transform3D/UC/PanTransformUC.d.ts.map +1 -1
- package/dist/types/Transform3D/UC/TryMoveTransformUC.d.ts +1 -1
- package/dist/types/Transform3D/UC/TryMoveTransformUC.d.ts.map +1 -1
- package/dist/types/Transform3D/UC/TryPanTransformUC.d.ts +2 -2
- package/dist/types/Transform3D/UC/TryPanTransformUC.d.ts.map +1 -1
- package/dist/types/Transparency/UCs/SerializeTransparentObjects.d.ts +2 -2
- package/dist/types/zSpace/PM/ZSpaceIsEnabledPM.d.ts +2 -2
- package/dist/types/zSpace/PM/ZSpaceIsEnabledPM.d.ts.map +1 -1
- package/dist/types/zSpace/PM/ZSpaceIsSupportedPM.d.ts +2 -2
- package/dist/types/zSpace/PM/ZSpaceIsSupportedPM.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/Dispatcher/README.md +652 -0
- package/src/RequestHandler/README.md +790 -0
- package/src/StateMachine/README.md +430 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerializeQuestionChallenge.js","sourceRoot":"","sources":["../../../../src/Question/UC/SerializeQuestionChallenge.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { SerializedSystem, StateMachineEntity } from \"../../StateMachine\";\nimport { QuestionEntity } from \"../Entities/QuestionEntity\";\n\nexport class SerializeQuestionChallenge\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeQuestionChallenge\";\n\n name = \"question\";\n
|
|
1
|
+
{"version":3,"file":"SerializeQuestionChallenge.js","sourceRoot":"","sources":["../../../../src/Question/UC/SerializeQuestionChallenge.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { SerializedSystem, StateMachineEntity } from \"../../StateMachine\";\nimport { QuestionEntity } from \"../Entities/QuestionEntity\";\n\nexport class SerializeQuestionChallenge\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeQuestionChallenge\";\n\n name = \"question\";\n serializationVersion = 3;\n private questionEntity?: QuestionEntity;\n\n getSystemState(): object {\n if (!this.questionEntity) {\n return {};\n }\n\n const answers: AnswerDataV1[] = this.questionEntity\n .getAllAnswers()\n .map((answer) => {\n return {\n id: answer.id,\n feedback: answer.feedbackText,\n isCorrect: answer.isCorrect,\n text: answer.text,\n };\n });\n\n const state: ChallengeDataV3 = {\n answers,\n };\n\n return state;\n }\n\n applySystemState(state: object, version: number): void {\n if (version === 1) {\n const mappedState = this.mapV1ToV3(state as ChallengeDataV1);\n this.applyDataV3(mappedState);\n } else if (version === 2) {\n const mappedState = this.mapV2ToV3(state as ChallengeDataV2);\n this.applyDataV3(mappedState);\n } else if (version === 3) {\n this.applyDataV3(state as ChallengeDataV3);\n } else {\n // Unsupported version\n this.warn(\n `Unsupported data version ${version} for serialized system ${this.name}. Reverting to default state`,\n );\n this.applyDefaultState();\n }\n }\n\n applyDefaultState(): void {\n this.questionEntity?.setDefaultState();\n }\n\n private mapV1ToV3(data: ChallengeDataV1): ChallengeDataV3 {\n // Easy!\n return data;\n }\n\n private mapV2ToV3(data: ChallengeDataV2): ChallengeDataV3 {\n const { answers } = data;\n return {\n answers,\n };\n }\n\n private applyDataV3(data: ChallengeDataV3) {\n if (!this.questionEntity) return;\n\n const stateAnswerIDs: string[] = [];\n data.answers.forEach((answerData) => {\n let answer = this.questionEntity!.getAnswer(answerData.id);\n if (!answer) {\n answer = this.questionEntity!.answerFactory(answerData.id);\n this.questionEntity?.addAnswer(answer);\n }\n\n answer.text = answerData.text;\n answer.isCorrect = answerData.isCorrect;\n answer.feedbackText = answerData.feedback;\n\n stateAnswerIDs.push(answerData.id);\n });\n\n const allAnswers = Array.from(this.questionEntity.getAllAnswers());\n allAnswers.forEach((ans) => {\n if (!stateAnswerIDs.includes(ans.id)) {\n this.questionEntity!.removeAnswer(ans.id);\n }\n });\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SerializeQuestionChallenge.type);\n\n this.questionEntity = appObject.getComponent<QuestionEntity>(\n QuestionEntity.type,\n );\n\n if (!this.questionEntity) {\n this.warn(\n \"SerializeQuestionChallenge has been added to an app object that does not have QuestionEntity\",\n );\n }\n\n const stateMachine = StateMachineEntity.get(this.appObject.appObjectRepo);\n if (stateMachine) {\n stateMachine.registerSerializedSystem(this);\n } else {\n this.warn(\"Unable to find StateMachineEntity\");\n }\n }\n}\n\nexport interface ChallengeDataV3 {\n answers: AnswerDataV1[];\n}\n\nexport interface ChallengeDataV2 {\n questionText: string;\n answers: AnswerDataV1[];\n}\n\nexport interface ChallengeDataV1 {\n answers: AnswerDataV1[];\n}\n\nexport interface AnswerDataV1 {\n id: string;\n text: string;\n feedback: string;\n isCorrect: boolean;\n}\n"]}
|
|
@@ -26,6 +26,7 @@ function makeTestRig() {
|
|
|
26
26
|
const app = appObjects.getOrCreate("app");
|
|
27
27
|
const baseApp = makeBaseAppState(app);
|
|
28
28
|
const mockSubmit = new MockSubmitResult(app, SubmitResultResultUC.type);
|
|
29
|
+
mockSubmit.submitHitResult = jest.fn();
|
|
29
30
|
const questionAO = appObjects.getOrCreate("Question");
|
|
30
31
|
const questionEnt = makeQuestionEntity(questionAO);
|
|
31
32
|
questionEnt.answerFactory = (id) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubmitQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SubmitQuestionAnswerUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAKL,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,MAAM,gBAAiB,SAAQ,oBAAoB;IAAnD;;QACE,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAa9B,CAAC;IAZC,oBAAoB,CAAC,IAAuB;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,oBAAoB,CAAC,IAAuB;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,mBAAmB,CAAC,IAAsB;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,IAAoB;QACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"SubmitQuestionAnswerUC.test.js","sourceRoot":"","sources":["../../../../src/Question/UC/SubmitQuestionAnswerUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport {\n MultiHitResultDTO,\n ProgressResultDTO,\n QualityResultDTO,\n ScoreResultDTO,\n SubmitResultResultUC,\n} from \"../../Dispatcher\";\nimport { makeQuestionAnswerEntity, makeQuestionEntity } from \"../Entities\";\nimport { makeSubmitQuestionAnswerUC } from \"./SubmitQuestionAnswerUC\";\n\nclass MockSubmitResult extends SubmitResultResultUC {\n submitHitResult = jest.fn();\n submitProgressResult(data: ProgressResultDTO): void {\n throw new Error(\"Method not implemented.\");\n }\n submitMultiHitResult(data: MultiHitResultDTO): void {\n throw new Error(\"Method not implemented.\");\n }\n submitQualityResult(data: QualityResultDTO): void {\n throw new Error(\"Method not implemented.\");\n }\n submitScoreResult(data: ScoreResultDTO): void {\n throw new Error(\"Method not implemented.\");\n }\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const app = appObjects.getOrCreate(\"app\");\n const baseApp = makeBaseAppState(app);\n const mockSubmit = new MockSubmitResult(app, SubmitResultResultUC.type);\n mockSubmit.submitHitResult = jest.fn();\n\n const questionAO = appObjects.getOrCreate(\"Question\");\n const questionEnt = makeQuestionEntity(questionAO);\n questionEnt.answerFactory = (id?: string) => {\n const index = questionEnt.getAllAnswers().length + 1;\n const ao = appObjects.getOrCreate(id ?? \"answer\" + index);\n return makeQuestionAnswerEntity(ao);\n };\n\n const mockAns = questionEnt.createNewAnswer();\n const uc = makeSubmitQuestionAnswerUC(questionAO);\n\n baseApp.isAuthoring = false;\n baseApp.slideText = \"Hello World!\";\n baseApp.isReviewing = false;\n\n const mockSubmitAnswer = jest.fn();\n questionEnt.submitAnswer = mockSubmitAnswer;\n\n return {\n mockSubmit,\n appObjects,\n mockAns,\n uc,\n baseApp,\n questionEnt,\n mockSubmitAnswer,\n };\n}\n\ndescribe(\"Submit Question Answer UC\", () => {\n it(\"Submits answer ID\", () => {\n const { mockSubmitAnswer, mockAns, uc } = makeTestRig();\n\n uc.submitAnswer(mockAns.id);\n\n expect(mockSubmitAnswer).toHaveBeenCalledWith(mockAns.id);\n });\n\n it(\"Doesn't submit answer when authoring\", () => {\n const { baseApp, uc, mockSubmitAnswer, mockAns } = makeTestRig();\n baseApp.isAuthoring = true;\n\n uc.submitAnswer(mockAns.id);\n\n expect(mockSubmitAnswer).not.toHaveBeenCalled();\n });\n\n it(\"Warns if the answer ID is not known\", () => {\n const { uc } = makeTestRig();\n\n uc.warn = jest.fn();\n\n uc.submitAnswer(\"unknown\");\n\n expect(uc.warn).toHaveBeenCalled();\n });\n\n it(\"Warns if it cannot find the base app\", () => {\n const { uc, baseApp, mockAns } = makeTestRig();\n\n uc.warn = jest.fn();\n baseApp.dispose();\n\n uc.submitAnswer(mockAns.id);\n\n expect(uc.warn).toHaveBeenCalled();\n });\n\n it(\"Dispatches a submitHitResult\", () => {\n const { baseApp, questionEnt, mockAns, uc, mockSubmit } = makeTestRig();\n\n uc.submitAnswer(mockAns.id);\n\n expect(mockSubmit.submitHitResult).toHaveBeenCalledWith({\n success: questionEnt.gotItRight,\n description: baseApp.slideText,\n });\n });\n\n it(\"Sets the baseApp to Review\", () => {\n const { baseApp, mockAns, uc } = makeTestRig();\n\n uc.submitAnswer(mockAns.id);\n\n expect(baseApp.isReviewing).toEqual(true);\n });\n});\n"]}
|
|
@@ -36,7 +36,11 @@ class RequestHandlerImp extends AppHandlerEntity {
|
|
|
36
36
|
this.getAppPayloadRequest = "GET_APP_PAYLOAD_VERSION";
|
|
37
37
|
this.getAppHandlerVersionRequest = "GET_APP_HANDLER_VERSION";
|
|
38
38
|
this.appHandlerVersion = 1;
|
|
39
|
+
this.verbose = false;
|
|
39
40
|
this.handler = (request) => {
|
|
41
|
+
if (this.verbose) {
|
|
42
|
+
console.log(`[AppHandler] Request received:`, request);
|
|
43
|
+
}
|
|
40
44
|
if (request.type === this.getAppPayloadRequest) {
|
|
41
45
|
this.handlePayloadVersionRequest(request);
|
|
42
46
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppHandler.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Entities/AppHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAoB,MAAM,aAAa,CAAC;AAQ3E,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;;AAC5C,qBAAI,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"AppHandler.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Entities/AppHandler.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectEntity, Handler, Request } from \"@vived/core\";\n\nexport interface RequestHandler {\n readonly requestType: string;\n payloadVersion: number;\n handleRequest: (version: number, payload?: unknown) => void;\n}\n\nexport abstract class AppHandlerEntity extends AppObjectEntity {\n static readonly type = \"APP_HANDLER_ENTITY\";\n abstract handler: Handler;\n abstract registerRequestHandler: (requestHandler: RequestHandler) => void;\n abstract verbose: boolean;\n}\n\nexport function makeAppHandler(appObject: AppObject): AppHandlerEntity {\n return new RequestHandlerImp(appObject);\n}\n\nclass RequestHandlerImp extends AppHandlerEntity {\n private handlers = new Map<string, RequestHandler>();\n private getAppPayloadRequest = \"GET_APP_PAYLOAD_VERSION\";\n private getAppHandlerVersionRequest = \"GET_APP_HANDLER_VERSION\";\n private readonly appHandlerVersion = 1;\n verbose = false;\n\n handler: Handler = (request: Request): void => {\n if (this.verbose) {\n console.log(`[AppHandler] Request received:`, request);\n }\n if (request.type === this.getAppPayloadRequest) {\n this.handlePayloadVersionRequest(request);\n return;\n }\n\n if (request.type === this.getAppHandlerVersionRequest) {\n this.handleAppHandlerVersionRequest(request);\n return;\n }\n\n const handler = this.handlers.get(request.type);\n\n if (!handler) {\n console.warn(\n `[AppHandler] Unsupported request type received: ${request.type}`,\n );\n return;\n }\n\n try {\n handler.handleRequest(request.version, request.payload);\n } catch (e) {\n console.warn(`[AppHandler] ${e}`);\n }\n };\n\n registerRequestHandler = (handler: RequestHandler): void => {\n if (this.handlers.has(handler.requestType)) {\n console.warn(\n `[AppHandler] More than one handler is being registered for ${handler.requestType}. Previous handler is being overwritten`,\n );\n }\n\n this.handlers.set(handler.requestType, handler);\n };\n\n private handlePayloadVersionRequest(request: Request) {\n if (request.version !== 2) {\n throw new UnsupportedRequestVersion(request.type, request.version);\n }\n\n const payload = request.payload as PayloadVersionPayload;\n if (payload.callback === undefined) {\n throw new UnableToParsePayload(\n request.type,\n request.version,\n JSON.stringify(payload),\n );\n }\n\n const versionMap = new Map<string, number>();\n this.handlers.forEach((handler) => {\n versionMap.set(handler.requestType, handler.payloadVersion);\n });\n\n payload.callback(versionMap);\n }\n\n private handleAppHandlerVersionRequest(request: Request) {\n if (request.version !== 1) {\n throw new UnsupportedRequestVersion(request.type, request.version);\n }\n\n const payload = request.payload as AppHandlerVersionPayload;\n if (payload.callback === undefined) {\n throw new UnableToParsePayload(\n request.type,\n request.version,\n JSON.stringify(payload),\n );\n }\n\n payload.callback(this.appHandlerVersion);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, AppHandlerEntity.type);\n }\n}\n\ntype PayloadVersionPayload = {\n callback: (requestVersionLookup: Map<string, number>) => void;\n};\n\ntype AppHandlerVersionPayload = {\n callback: (version: number) => void;\n};\n\nexport class UnsupportedRequestVersion extends Error {\n constructor(requestType: string, version: number) {\n const msg = `Version ${version} of request type ${requestType} is not supported`;\n super(msg);\n }\n}\n\nexport class UnableToParsePayload extends Error {\n constructor(requestType: string, version: number, payload: string) {\n const msg = `Unable to parse payload for version ${version} of request type ${requestType}: ${payload}`;\n super(msg);\n }\n}\n"]}
|
|
@@ -133,5 +133,32 @@ describe("App Handler", () => {
|
|
|
133
133
|
};
|
|
134
134
|
expect(() => appHandler.handler(request)).toThrowError();
|
|
135
135
|
});
|
|
136
|
+
it("Verbose flag defaults to false", () => {
|
|
137
|
+
const { appHandler } = makeTestRig();
|
|
138
|
+
expect(appHandler.verbose).toBe(false);
|
|
139
|
+
});
|
|
140
|
+
it("Does not log requests when verbose is false", () => {
|
|
141
|
+
const { appHandler, mockRequestHandler } = makeTestRig();
|
|
142
|
+
console.log = jest.fn();
|
|
143
|
+
const request = {
|
|
144
|
+
type: "A_REQUEST",
|
|
145
|
+
version: 2,
|
|
146
|
+
payload: { foo: "bar" },
|
|
147
|
+
};
|
|
148
|
+
appHandler.handler(request);
|
|
149
|
+
expect(console.log).not.toHaveBeenCalled();
|
|
150
|
+
});
|
|
151
|
+
it("Logs requests when verbose is true", () => {
|
|
152
|
+
const { appHandler, mockRequestHandler } = makeTestRig();
|
|
153
|
+
console.log = jest.fn();
|
|
154
|
+
appHandler.verbose = true;
|
|
155
|
+
const request = {
|
|
156
|
+
type: "A_REQUEST",
|
|
157
|
+
version: 2,
|
|
158
|
+
payload: { foo: "bar" },
|
|
159
|
+
};
|
|
160
|
+
appHandler.handler(request);
|
|
161
|
+
expect(console.log).toHaveBeenCalledWith("[AppHandler] Request received:", request);
|
|
162
|
+
});
|
|
136
163
|
});
|
|
137
164
|
//# sourceMappingURL=AppHandler.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppHandler.test.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Entities/AppHandler.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo, Request } from \"@vived/core\";\nimport {\n makeAppHandler,\n RequestHandler,\n UnsupportedRequestVersion,\n} from \"./AppHandler\";\n\nclass MockHandler implements RequestHandler {\n readonly requestType = \"A_REQUEST\";\n readonly payloadVersion = 1;\n handleRequest = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjectRepo = makeAppObjectRepo();\n const handlerAO = appObjectRepo.getOrCreate(\"Handler\");\n const appHandler = makeAppHandler(handlerAO);\n const mockRequestHandler = new MockHandler();\n appHandler.registerRequestHandler(mockRequestHandler);\n\n return { appHandler, mockRequestHandler };\n}\n\ndescribe(\"App Handler\", () => {\n it(\"Warns if multiple request handlers are added for the same type\", () => {\n const { appHandler } = makeTestRig();\n console.warn = jest.fn();\n const anotherHandler = new MockHandler();\n\n appHandler.registerRequestHandler(anotherHandler);\n\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Triggers the handler when a request received\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n\n expect(mockRequestHandler.handleRequest).toHaveBeenCalledWith(2, {\n foo: \"bar\",\n });\n });\n\n it(\"Warns if a request type has not been registered\", () => {\n const { appHandler } = makeTestRig();\n console.warn = jest.fn();\n const request: Request = {\n type: \"A_DIFFERENT_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Consoles a warn if the the handler throw an error\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n console.warn = jest.fn();\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n mockRequestHandler.handleRequest.mockImplementation(() => {\n throw new UnsupportedRequestVersion(\"A_REQUEST\", 2);\n });\n\n appHandler.handler(request);\n\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Handles the GET_APP_PAYLOAD_VERSION request\", (done) => {\n const { appHandler } = makeTestRig();\n\n const expectedResponse = new Map<string, number>([[\"A_REQUEST\", 1]]);\n\n function callback(payloadVersions: Map<string, number>) {\n try {\n expect(payloadVersions).toEqual(expectedResponse);\n done();\n } catch (e) {\n done(e);\n }\n }\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 2,\n payload: { callback },\n };\n\n appHandler.handler(request);\n });\n\n it(\"Throws for an unsupported version of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 1,\n payload: { callback: () => {} },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Throws for a bungled payload of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Handles the GET_APP_HANDLER_VERSION request\", (done) => {\n const { appHandler } = makeTestRig();\n\n function callback(appHandlerVersion: number) {\n try {\n expect(appHandlerVersion).toEqual(1);\n done();\n } catch (e) {\n done(e);\n }\n }\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 1,\n payload: { callback },\n };\n\n appHandler.handler(request);\n });\n\n it(\"Throws for an unsupported version of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 0,\n payload: { callback: () => {} },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Throws for a bungled payload of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 1,\n payload: { foo: \"bar\" },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"AppHandler.test.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Entities/AppHandler.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo, Request } from \"@vived/core\";\nimport {\n makeAppHandler,\n RequestHandler,\n UnsupportedRequestVersion,\n} from \"./AppHandler\";\n\nclass MockHandler implements RequestHandler {\n readonly requestType = \"A_REQUEST\";\n readonly payloadVersion = 1;\n handleRequest = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjectRepo = makeAppObjectRepo();\n const handlerAO = appObjectRepo.getOrCreate(\"Handler\");\n const appHandler = makeAppHandler(handlerAO);\n const mockRequestHandler = new MockHandler();\n appHandler.registerRequestHandler(mockRequestHandler);\n\n return { appHandler, mockRequestHandler };\n}\n\ndescribe(\"App Handler\", () => {\n it(\"Warns if multiple request handlers are added for the same type\", () => {\n const { appHandler } = makeTestRig();\n console.warn = jest.fn();\n const anotherHandler = new MockHandler();\n\n appHandler.registerRequestHandler(anotherHandler);\n\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Triggers the handler when a request received\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n\n expect(mockRequestHandler.handleRequest).toHaveBeenCalledWith(2, {\n foo: \"bar\",\n });\n });\n\n it(\"Warns if a request type has not been registered\", () => {\n const { appHandler } = makeTestRig();\n console.warn = jest.fn();\n const request: Request = {\n type: \"A_DIFFERENT_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Consoles a warn if the the handler throw an error\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n console.warn = jest.fn();\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n mockRequestHandler.handleRequest.mockImplementation(() => {\n throw new UnsupportedRequestVersion(\"A_REQUEST\", 2);\n });\n\n appHandler.handler(request);\n\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Handles the GET_APP_PAYLOAD_VERSION request\", (done) => {\n const { appHandler } = makeTestRig();\n\n const expectedResponse = new Map<string, number>([[\"A_REQUEST\", 1]]);\n\n function callback(payloadVersions: Map<string, number>) {\n try {\n expect(payloadVersions).toEqual(expectedResponse);\n done();\n } catch (e) {\n done(e);\n }\n }\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 2,\n payload: { callback },\n };\n\n appHandler.handler(request);\n });\n\n it(\"Throws for an unsupported version of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 1,\n payload: { callback: () => {} },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Throws for a bungled payload of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_PAYLOAD_VERSION\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Handles the GET_APP_HANDLER_VERSION request\", (done) => {\n const { appHandler } = makeTestRig();\n\n function callback(appHandlerVersion: number) {\n try {\n expect(appHandlerVersion).toEqual(1);\n done();\n } catch (e) {\n done(e);\n }\n }\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 1,\n payload: { callback },\n };\n\n appHandler.handler(request);\n });\n\n it(\"Throws for an unsupported version of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 0,\n payload: { callback: () => {} },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Throws for a bungled payload of the get payload version request\", () => {\n const { appHandler } = makeTestRig();\n\n const request: Request = {\n type: \"GET_APP_HANDLER_VERSION\",\n version: 1,\n payload: { foo: \"bar\" },\n };\n\n expect(() => appHandler.handler(request)).toThrowError();\n });\n\n it(\"Verbose flag defaults to false\", () => {\n const { appHandler } = makeTestRig();\n\n expect(appHandler.verbose).toBe(false);\n });\n\n it(\"Does not log requests when verbose is false\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n console.log = jest.fn();\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n\n expect(console.log).not.toHaveBeenCalled();\n });\n\n it(\"Logs requests when verbose is true\", () => {\n const { appHandler, mockRequestHandler } = makeTestRig();\n console.log = jest.fn();\n appHandler.verbose = true;\n const request: Request = {\n type: \"A_REQUEST\",\n version: 2,\n payload: { foo: \"bar\" },\n };\n\n appHandler.handler(request);\n\n expect(console.log).toHaveBeenCalledWith(\n \"[AppHandler] Request received:\",\n request,\n );\n });\n});\n"]}
|
|
@@ -15,9 +15,16 @@ import { makeDisposeAppUC, makeEnableFeatureUC, makeSetAppStateUC, makeSetIsAuth
|
|
|
15
15
|
* @extends DomainFactory
|
|
16
16
|
*/
|
|
17
17
|
export class RequestHandlerFeatureFactory extends DomainFactory {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
get appHandler() {
|
|
19
|
+
return this._appHandler;
|
|
20
|
+
}
|
|
21
|
+
constructor(appObject, config) {
|
|
22
|
+
super(appObject);
|
|
20
23
|
this.factoryName = "RequestHandlerFeatureFactory";
|
|
24
|
+
this.zSpaceSupported = config?.zSpaceSupported ?? true;
|
|
25
|
+
this.themeSupported = config?.themeSupported ?? true;
|
|
26
|
+
this.babylonSupported = config?.babylonSupported ?? true;
|
|
27
|
+
this.verbose = config?.verbose ?? false;
|
|
21
28
|
}
|
|
22
29
|
/**
|
|
23
30
|
* Sets up all entities required for the Request Handler Feature.
|
|
@@ -26,7 +33,9 @@ export class RequestHandlerFeatureFactory extends DomainFactory {
|
|
|
26
33
|
* registration of request handlers for the application.
|
|
27
34
|
*/
|
|
28
35
|
setupEntities() {
|
|
29
|
-
|
|
36
|
+
const appHandlerEntity = makeAppHandler(this.appObject);
|
|
37
|
+
appHandlerEntity.verbose = this.verbose;
|
|
38
|
+
this._appHandler = appHandlerEntity.handler;
|
|
30
39
|
}
|
|
31
40
|
/**
|
|
32
41
|
* Sets up all use cases for the Request Handler Feature.
|
|
@@ -45,25 +54,26 @@ export class RequestHandlerFeatureFactory extends DomainFactory {
|
|
|
45
54
|
* - StopZSpace: Manages ZSpace functionality shutdown
|
|
46
55
|
*/
|
|
47
56
|
setupUCs() {
|
|
57
|
+
// Required Use Cases
|
|
48
58
|
makeDisposeAppUC(this.appObject);
|
|
49
|
-
makeEnableFeatureUC(this.appObject);
|
|
50
59
|
makeSetAppStateUC(this.appObject);
|
|
51
60
|
makeSetIsAuthoringUC(this.appObject);
|
|
52
|
-
makeSetThemeColorUC(this.appObject);
|
|
53
|
-
makeShowBabylonInspectorUC(this.appObject);
|
|
54
61
|
makeStartAppUC(this.appObject);
|
|
55
|
-
makeStartZSpaceUC(this.appObject);
|
|
56
62
|
makeStopAppUC(this.appObject);
|
|
57
|
-
|
|
63
|
+
makeEnableFeatureUC(this.appObject);
|
|
64
|
+
if (this.themeSupported) {
|
|
65
|
+
makeSetThemeColorUC(this.appObject);
|
|
66
|
+
}
|
|
67
|
+
if (this.babylonSupported) {
|
|
68
|
+
makeShowBabylonInspectorUC(this.appObject);
|
|
69
|
+
}
|
|
70
|
+
if (this.zSpaceSupported) {
|
|
71
|
+
makeStartZSpaceUC(this.appObject);
|
|
72
|
+
makeStopZSpaceUC(this.appObject);
|
|
73
|
+
}
|
|
58
74
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Sets up all presentation models for the Request Handler Feature.
|
|
61
|
-
*
|
|
62
|
-
* Currently no presentation models are required for the Request Handler
|
|
63
|
-
* feature as it primarily handles backend operations and use case coordination.
|
|
64
|
-
*/
|
|
65
75
|
setupPMs() {
|
|
66
|
-
//
|
|
76
|
+
// No PMs to set up for this feature
|
|
67
77
|
}
|
|
68
78
|
/**
|
|
69
79
|
* Performs any final setup operations after all components are initialized.
|
|
@@ -74,26 +84,15 @@ export class RequestHandlerFeatureFactory extends DomainFactory {
|
|
|
74
84
|
finalSetup() {
|
|
75
85
|
// No additional setup required for this feature
|
|
76
86
|
}
|
|
77
|
-
/**
|
|
78
|
-
* Returns the created AppHandler entity.
|
|
79
|
-
*
|
|
80
|
-
* This method provides equivalent functionality to the return value of
|
|
81
|
-
* the original setupAppHandlers function, allowing consumers who need
|
|
82
|
-
* the AppHandlerEntity reference to access it after factory creation.
|
|
83
|
-
*
|
|
84
|
-
* @returns The AppHandlerEntity created during setupEntities, or undefined if not created
|
|
85
|
-
*/
|
|
86
|
-
getAppHandlerEntity() {
|
|
87
|
-
return this.appHandlerEntity;
|
|
88
|
-
}
|
|
89
87
|
}
|
|
90
88
|
/**
|
|
91
89
|
* Factory function to create a new RequestHandlerFeatureFactory
|
|
92
90
|
* @param appObjects The AppObjectRepo to get the AppHandlers AppObject from
|
|
91
|
+
* @param config Optional configuration object for the Request Handler Feature
|
|
93
92
|
* @returns A new RequestHandlerFeatureFactory instance
|
|
94
93
|
*/
|
|
95
|
-
export function makeRequestHandlerFeatureFactory(appObjects) {
|
|
94
|
+
export function makeRequestHandlerFeatureFactory(appObjects, config) {
|
|
96
95
|
const appObject = appObjects.getOrCreate("AppHandlers");
|
|
97
|
-
return new RequestHandlerFeatureFactory(appObject);
|
|
96
|
+
return new RequestHandlerFeatureFactory(appObject, config);
|
|
98
97
|
}
|
|
99
98
|
//# sourceMappingURL=RequestHandlerFeatureFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestHandlerFeatureFactory.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Factories/RequestHandlerFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"RequestHandlerFeatureFactory.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Factories/RequestHandlerFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GACjB,MAAM,OAAO,CAAC;AAYf;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,4BAA6B,SAAQ,aAAa;IAS7D,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,YAAY,SAAoB,EAAE,MAA8B;QAC9D,KAAK,CAAC,SAAS,CAAC,CAAC;QAbnB,gBAAW,GAAG,8BAA8B,CAAC;QAc3C,IAAI,CAAC,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,IAAI,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,QAAQ;QACN,qBAAqB;QACrB,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE9B,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,QAAQ;QACN,oCAAoC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACR,gDAAgD;IAClD,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAC9C,UAAyB,EACzB,MAA8B;IAE9B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACxD,OAAO,IAAI,4BAA4B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import { DomainFactory, AppObject, AppObjectRepo, Handler } from \"@vived/core\";\nimport { AppHandlerEntity, makeAppHandler } from \"../Entities\";\nimport {\n makeDisposeAppUC,\n makeEnableFeatureUC,\n makeSetAppStateUC,\n makeSetIsAuthoringUC,\n makeSetThemeColorUC,\n makeShowBabylonInspectorUC,\n makeStartAppUC,\n makeStartZSpaceUC,\n makeStopAppUC,\n makeStopZSpaceUC,\n} from \"../UC\";\n\n/**\n * Configuration options for the Request Handler Feature Factory\n */\nexport interface IRequestHandlerConfig {\n zSpaceSupported?: boolean;\n themeSupported?: boolean;\n babylonSupported?: boolean;\n verbose?: boolean;\n}\n\n/**\n * Factory responsible for setting up the Request Handler Feature domain components.\n *\n * This factory initializes all entities and use cases required for the Request Handler\n * functionality. It follows the domain-driven design pattern by organizing components\n * into their respective layers. The factory creates the AppHandler entity and all\n * associated Use Cases that handle various app-level operations.\n *\n * This factory provides equivalent functionality to the setupAppHandlers function\n * while following the Clean Architecture and Domain-Driven Design patterns.\n *\n * @extends DomainFactory\n */\nexport class RequestHandlerFeatureFactory extends DomainFactory {\n factoryName = \"RequestHandlerFeatureFactory\";\n\n private zSpaceSupported: boolean;\n private themeSupported: boolean;\n private babylonSupported: boolean;\n private verbose: boolean;\n\n private _appHandler?: Handler;\n public get appHandler(): Handler | undefined {\n return this._appHandler;\n }\n\n constructor(appObject: AppObject, config?: IRequestHandlerConfig) {\n super(appObject);\n this.zSpaceSupported = config?.zSpaceSupported ?? true;\n this.themeSupported = config?.themeSupported ?? true;\n this.babylonSupported = config?.babylonSupported ?? true;\n this.verbose = config?.verbose ?? false;\n }\n\n /**\n * Sets up all entities required for the Request Handler Feature.\n *\n * Initializes the AppHandler entity that manages request handling and\n * registration of request handlers for the application.\n */\n setupEntities(): void {\n const appHandlerEntity = makeAppHandler(this.appObject);\n appHandlerEntity.verbose = this.verbose;\n this._appHandler = appHandlerEntity.handler;\n }\n\n /**\n * Sets up all use cases for the Request Handler Feature.\n *\n * Initializes the 10 use cases that define the business operations and\n * workflows available for handling app-level requests:\n * - DisposeApp: Handles app disposal operations\n * - EnableFeature: Manages feature flag enabling\n * - SetAppState: Controls app state changes\n * - SetIsAuthoring: Manages authoring mode state\n * - SetThemeColor: Handles theme color updates\n * - ShowBabylonInspector: Controls Babylon inspector visibility\n * - StartApp: Handles app initialization\n * - StartZSpace: Manages ZSpace functionality startup\n * - StopApp: Handles app shutdown operations\n * - StopZSpace: Manages ZSpace functionality shutdown\n */\n setupUCs(): void {\n // Required Use Cases\n makeDisposeAppUC(this.appObject);\n makeSetAppStateUC(this.appObject);\n makeSetIsAuthoringUC(this.appObject);\n makeStartAppUC(this.appObject);\n makeStopAppUC(this.appObject);\n\n makeEnableFeatureUC(this.appObject);\n\n if (this.themeSupported) {\n makeSetThemeColorUC(this.appObject);\n }\n\n if (this.babylonSupported) {\n makeShowBabylonInspectorUC(this.appObject);\n }\n\n if (this.zSpaceSupported) {\n makeStartZSpaceUC(this.appObject);\n makeStopZSpaceUC(this.appObject);\n }\n }\n\n setupPMs(): void {\n // No PMs to set up for this feature\n }\n\n /**\n * Performs any final setup operations after all components are initialized.\n *\n * This method is called after entities and use cases have been set up.\n * Currently no additional setup is required for this feature.\n */\n finalSetup(): void {\n // No additional setup required for this feature\n }\n}\n\n/**\n * Factory function to create a new RequestHandlerFeatureFactory\n * @param appObjects The AppObjectRepo to get the AppHandlers AppObject from\n * @param config Optional configuration object for the Request Handler Feature\n * @returns A new RequestHandlerFeatureFactory instance\n */\nexport function makeRequestHandlerFeatureFactory(\n appObjects: AppObjectRepo,\n config?: IRequestHandlerConfig,\n): RequestHandlerFeatureFactory {\n const appObject = appObjects.getOrCreate(\"AppHandlers\");\n return new RequestHandlerFeatureFactory(appObject, config);\n}\n"]}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { makeAppObjectRepo } from "@vived/core";
|
|
2
|
+
import { makeRequestHandlerFeatureFactory } from "./RequestHandlerFeatureFactory";
|
|
3
|
+
import { AppHandlerEntity } from "../Entities";
|
|
4
|
+
import { DisposeAppBaseUC, EnableFeatureUC, SetAppStateBaseUC, SetIsAuthoringUC, SetThemeColorUC, ShowBabylonInspectorUC, StartAppBaseUC, StartZSpaceBaseUC, StopAppBaseUC, StopZSpaceUC, } from "../UC";
|
|
5
|
+
describe("RequestHandlerFeatureFactory", () => {
|
|
6
|
+
it("Creates the factory with default configuration", () => {
|
|
7
|
+
const appObjects = makeAppObjectRepo();
|
|
8
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
9
|
+
expect(factory).toBeDefined();
|
|
10
|
+
expect(factory.factoryName).toBe("RequestHandlerFeatureFactory");
|
|
11
|
+
});
|
|
12
|
+
it("Sets up the AppHandler entity", () => {
|
|
13
|
+
const appObjects = makeAppObjectRepo();
|
|
14
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
15
|
+
factory.setupEntities();
|
|
16
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
17
|
+
expect(handlerAO?.hasComponent(AppHandlerEntity.type)).toBe(true);
|
|
18
|
+
expect(factory.appHandler).toBeDefined();
|
|
19
|
+
});
|
|
20
|
+
it("Sets verbose to false by default", () => {
|
|
21
|
+
const appObjects = makeAppObjectRepo();
|
|
22
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
23
|
+
factory.setupEntities();
|
|
24
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
25
|
+
const appHandlerEntity = handlerAO?.getComponent(AppHandlerEntity.type);
|
|
26
|
+
expect(appHandlerEntity?.verbose).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it("Accepts a config with verbose set to true", () => {
|
|
29
|
+
const appObjects = makeAppObjectRepo();
|
|
30
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects, {
|
|
31
|
+
verbose: true,
|
|
32
|
+
});
|
|
33
|
+
factory.setupEntities();
|
|
34
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
35
|
+
const appHandlerEntity = handlerAO?.getComponent(AppHandlerEntity.type);
|
|
36
|
+
expect(appHandlerEntity?.verbose).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it("Sets up all required use cases by default", () => {
|
|
39
|
+
const appObjects = makeAppObjectRepo();
|
|
40
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
41
|
+
factory.setupEntities();
|
|
42
|
+
factory.setupUCs();
|
|
43
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
44
|
+
expect(handlerAO?.hasComponent(DisposeAppBaseUC.type)).toBe(true);
|
|
45
|
+
expect(handlerAO?.hasComponent(SetAppStateBaseUC.type)).toBe(true);
|
|
46
|
+
expect(handlerAO?.hasComponent(SetIsAuthoringUC.type)).toBe(true);
|
|
47
|
+
expect(handlerAO?.hasComponent(StartAppBaseUC.type)).toBe(true);
|
|
48
|
+
expect(handlerAO?.hasComponent(StopAppBaseUC.type)).toBe(true);
|
|
49
|
+
expect(handlerAO?.hasComponent(EnableFeatureUC.type)).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
it("Sets up theme use case when themeSupported is true (default)", () => {
|
|
52
|
+
const appObjects = makeAppObjectRepo();
|
|
53
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
54
|
+
factory.setupEntities();
|
|
55
|
+
factory.setupUCs();
|
|
56
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
57
|
+
expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(true);
|
|
58
|
+
});
|
|
59
|
+
it("Does not set up theme use case when themeSupported is false", () => {
|
|
60
|
+
const appObjects = makeAppObjectRepo();
|
|
61
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects, {
|
|
62
|
+
themeSupported: false,
|
|
63
|
+
});
|
|
64
|
+
factory.setupEntities();
|
|
65
|
+
factory.setupUCs();
|
|
66
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
67
|
+
expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(false);
|
|
68
|
+
});
|
|
69
|
+
it("Sets up babylon use case when babylonSupported is true (default)", () => {
|
|
70
|
+
const appObjects = makeAppObjectRepo();
|
|
71
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
72
|
+
factory.setupEntities();
|
|
73
|
+
factory.setupUCs();
|
|
74
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
75
|
+
expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it("Does not set up babylon use case when babylonSupported is false", () => {
|
|
78
|
+
const appObjects = makeAppObjectRepo();
|
|
79
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects, {
|
|
80
|
+
babylonSupported: false,
|
|
81
|
+
});
|
|
82
|
+
factory.setupEntities();
|
|
83
|
+
factory.setupUCs();
|
|
84
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
85
|
+
expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(false);
|
|
86
|
+
});
|
|
87
|
+
it("Sets up zSpace use cases when zSpaceSupported is true (default)", () => {
|
|
88
|
+
const appObjects = makeAppObjectRepo();
|
|
89
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects);
|
|
90
|
+
factory.setupEntities();
|
|
91
|
+
factory.setupUCs();
|
|
92
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
93
|
+
expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(true);
|
|
94
|
+
expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
it("Does not set up zSpace use cases when zSpaceSupported is false", () => {
|
|
97
|
+
const appObjects = makeAppObjectRepo();
|
|
98
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects, {
|
|
99
|
+
zSpaceSupported: false,
|
|
100
|
+
});
|
|
101
|
+
factory.setupEntities();
|
|
102
|
+
factory.setupUCs();
|
|
103
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
104
|
+
expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(false);
|
|
105
|
+
expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
it("Supports multiple config options at once", () => {
|
|
108
|
+
const appObjects = makeAppObjectRepo();
|
|
109
|
+
const factory = makeRequestHandlerFeatureFactory(appObjects, {
|
|
110
|
+
verbose: true,
|
|
111
|
+
themeSupported: false,
|
|
112
|
+
babylonSupported: false,
|
|
113
|
+
zSpaceSupported: true,
|
|
114
|
+
});
|
|
115
|
+
factory.setupEntities();
|
|
116
|
+
factory.setupUCs();
|
|
117
|
+
const handlerAO = appObjects.get("AppHandlers");
|
|
118
|
+
const appHandlerEntity = handlerAO?.getComponent(AppHandlerEntity.type);
|
|
119
|
+
expect(appHandlerEntity?.verbose).toBe(true);
|
|
120
|
+
expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(false);
|
|
121
|
+
expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(false);
|
|
122
|
+
expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(true);
|
|
123
|
+
expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(true);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=RequestHandlerFeatureFactory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestHandlerFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Factories/RequestHandlerFeatureFactory.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRequestHandlerFeatureFactory } from \"./RequestHandlerFeatureFactory\";\nimport { AppHandlerEntity } from \"../Entities\";\nimport {\n DisposeAppBaseUC,\n EnableFeatureUC,\n SetAppStateBaseUC,\n SetIsAuthoringUC,\n SetThemeColorUC,\n ShowBabylonInspectorUC,\n StartAppBaseUC,\n StartZSpaceBaseUC,\n StopAppBaseUC,\n StopZSpaceUC,\n} from \"../UC\";\n\ndescribe(\"RequestHandlerFeatureFactory\", () => {\n it(\"Creates the factory with default configuration\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n\n expect(factory).toBeDefined();\n expect(factory.factoryName).toBe(\"RequestHandlerFeatureFactory\");\n });\n\n it(\"Sets up the AppHandler entity\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n expect(handlerAO?.hasComponent(AppHandlerEntity.type)).toBe(true);\n expect(factory.appHandler).toBeDefined();\n });\n\n it(\"Sets verbose to false by default\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n const appHandlerEntity = handlerAO?.getComponent<AppHandlerEntity>(\n AppHandlerEntity.type,\n );\n expect(appHandlerEntity?.verbose).toBe(false);\n });\n\n it(\"Accepts a config with verbose set to true\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects, {\n verbose: true,\n });\n factory.setupEntities();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n const appHandlerEntity = handlerAO?.getComponent<AppHandlerEntity>(\n AppHandlerEntity.type,\n );\n expect(appHandlerEntity?.verbose).toBe(true);\n });\n\n it(\"Sets up all required use cases by default\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(DisposeAppBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(SetAppStateBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(SetIsAuthoringUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(StartAppBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(StopAppBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(EnableFeatureUC.type)).toBe(true);\n });\n\n it(\"Sets up theme use case when themeSupported is true (default)\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(true);\n });\n\n it(\"Does not set up theme use case when themeSupported is false\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects, {\n themeSupported: false,\n });\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(false);\n });\n\n it(\"Sets up babylon use case when babylonSupported is true (default)\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(true);\n });\n\n it(\"Does not set up babylon use case when babylonSupported is false\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects, {\n babylonSupported: false,\n });\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(false);\n });\n\n it(\"Sets up zSpace use cases when zSpaceSupported is true (default)\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects);\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(true);\n });\n\n it(\"Does not set up zSpace use cases when zSpaceSupported is false\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects, {\n zSpaceSupported: false,\n });\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n\n expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(false);\n expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(false);\n });\n\n it(\"Supports multiple config options at once\", () => {\n const appObjects = makeAppObjectRepo();\n const factory = makeRequestHandlerFeatureFactory(appObjects, {\n verbose: true,\n themeSupported: false,\n babylonSupported: false,\n zSpaceSupported: true,\n });\n factory.setupEntities();\n factory.setupUCs();\n\n const handlerAO = appObjects.get(\"AppHandlers\");\n const appHandlerEntity = handlerAO?.getComponent<AppHandlerEntity>(\n AppHandlerEntity.type,\n );\n\n expect(appHandlerEntity?.verbose).toBe(true);\n expect(handlerAO?.hasComponent(SetThemeColorUC.type)).toBe(false);\n expect(handlerAO?.hasComponent(ShowBabylonInspectorUC.type)).toBe(false);\n expect(handlerAO?.hasComponent(StartZSpaceBaseUC.type)).toBe(true);\n expect(handlerAO?.hasComponent(StopZSpaceUC.type)).toBe(true);\n });\n});\n"]}
|
|
@@ -2,6 +2,7 @@ import { AppHandlerEntity } from "../Entities";
|
|
|
2
2
|
export class MockAppHandlerEntity extends AppHandlerEntity {
|
|
3
3
|
constructor(appObject) {
|
|
4
4
|
super(appObject, AppHandlerEntity.type);
|
|
5
|
+
this.verbose = false;
|
|
5
6
|
this.handler = jest.fn();
|
|
6
7
|
this.registerRequestHandler = jest.fn();
|
|
7
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockAppHandlerEntity.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Mocks/MockAppHandlerEntity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"file":"MockAppHandlerEntity.js","sourceRoot":"","sources":["../../../../src/RequestHandler/Mocks/MockAppHandlerEntity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IAIxD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAJ1C,YAAO,GAAY,KAAK,CAAC;QACzB,YAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACpB,2BAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAGnC,CAAC;CACF","sourcesContent":["import { AppObject } from \"@vived/core\";\nimport { AppHandlerEntity } from \"../Entities\";\n\nexport class MockAppHandlerEntity extends AppHandlerEntity {\n verbose: boolean = false;\n handler = jest.fn();\n registerRequestHandler = jest.fn();\n constructor(appObject: AppObject) {\n super(appObject, AppHandlerEntity.type);\n }\n}\n"]}
|
|
@@ -98,7 +98,7 @@ class SerializeSceneRootImp extends SerializeSceneRoot {
|
|
|
98
98
|
}
|
|
99
99
|
constructor(appObject) {
|
|
100
100
|
super(appObject, SerializeSceneRoot.type);
|
|
101
|
-
this.
|
|
101
|
+
this.serializationVersion = 2;
|
|
102
102
|
this.sceneRoot = appObject.getComponent(SceneRootEntity.type);
|
|
103
103
|
if (!this.sceneRoot) {
|
|
104
104
|
this.warn("SerializeSceneRoot UC has been added to an App Object that does not have a SceneRoot Entity. Add one before adding the UC.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerializeSceneRoot.js","sourceRoot":"","sources":["../../../../src/SceneRoot/UC/SerializeSceneRoot.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { Quaternion, Vector3 } from \"@vived/core\";\nimport {\n SerializedSystem,\n StateMachineEntity,\n} from \"../../StateMachine/Entities/StateMachineEntity\";\nimport { StoredView } from \"../../StoredView\";\nimport { TransformLerpDTO } from \"../../Transform3D\";\nimport { SceneRootEntity } from \"../Entities/SceneRootEntity\";\n\nexport abstract class SerializeSceneRoot\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeSceneRoot\";\n name: string = \"sceneRoot\";\n abstract
|
|
1
|
+
{"version":3,"file":"SerializeSceneRoot.js","sourceRoot":"","sources":["../../../../src/SceneRoot/UC/SerializeSceneRoot.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { Quaternion, Vector3 } from \"@vived/core\";\nimport {\n SerializedSystem,\n StateMachineEntity,\n} from \"../../StateMachine/Entities/StateMachineEntity\";\nimport { StoredView } from \"../../StoredView\";\nimport { TransformLerpDTO } from \"../../Transform3D\";\nimport { SceneRootEntity } from \"../Entities/SceneRootEntity\";\n\nexport abstract class SerializeSceneRoot\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeSceneRoot\";\n name: string = \"sceneRoot\";\n abstract serializationVersion: number;\n abstract getSystemState(): object;\n abstract applySystemState(\n state: object,\n version: number,\n transitionDuration: number,\n ): void;\n abstract applyDefaultState(transitionDuration: number): void;\n}\n\nexport function makeSerializeSceneRoot(\n appObject: AppObject,\n): SerializeSceneRoot {\n return new SerializeSceneRootImp(appObject);\n}\n\nclass SerializeSceneRootImp extends SerializeSceneRoot {\n serializationVersion = 2;\n\n private sceneRoot?: SceneRootEntity;\n private storedView?: StoredView;\n private stateMachine?: StateMachineEntity;\n\n getSystemState(): object {\n if (!this.sceneRoot) {\n this.warn(\"No scene root entity\");\n return {};\n }\n\n if (this.storedView && this.storedView.hasStoredView) {\n const data: SceneRootDataV2 = {\n position: this.storedView.position.dto,\n rotation: this.storedView.rotation.dto,\n scale: this.storedView.scale,\n };\n\n return data;\n } else {\n const data: SceneRootDataV2 = {\n position: this.sceneRoot.position.dto,\n rotation: this.sceneRoot.rotation.dto,\n scale: this.sceneRoot.scale,\n };\n\n return data;\n }\n }\n\n applySystemState(\n serializedState: object,\n version: number,\n transitionTime: number,\n ): void {\n try {\n if (version === 1) {\n const castState = serializedState as SceneRootDataV1;\n this.applyV1Data(castState, transitionTime);\n } else if (version === 2) {\n const castState = serializedState as SceneRootDataV2;\n this.applyV2Data(castState, transitionTime);\n } else {\n console.warn(`Unsupported version number ${version}. Defaulting`);\n this.applyDefaultState(transitionTime);\n }\n } catch (e) {\n this.warn(`Caught when deserializing ${e}. Defaulting`);\n this.applyDefaultState(transitionTime);\n }\n }\n\n applyDefaultState(transitionDuration: number): void {\n if (!this.sceneRoot || !this.stateMachine) {\n return;\n }\n\n this.sceneRoot.lerpToDefault(\n transitionDuration * 1000,\n this.stateMachine.transitionEaseFunction,\n );\n }\n\n private applyV2Data(data: SceneRootDataV2, transitionTime: number) {\n if (!this.sceneRoot || !this.stateMachine) {\n return;\n }\n\n const pos = Vector3.FromDTO(data.position);\n const rot = Quaternion.FromDTO(data.rotation);\n const scale = new Vector3(data.scale, data.scale, data.scale);\n\n const rootTransform = this.sceneRoot.transform;\n\n const lerpDTO: TransformLerpDTO = {\n durationMS: transitionTime * 1000,\n ease: this.stateMachine.transitionEaseFunction,\n desiredPosition: pos,\n desiredRotation: rot,\n desiredScale: scale,\n };\n\n rootTransform.lerp(lerpDTO);\n }\n\n private applyV1Data(data: SceneRootDataV1, transitionTime: number) {\n if (!this.sceneRoot || !this.stateMachine) {\n return;\n }\n\n const pos = Vector3.FromArray(data.position);\n const rot = Quaternion.FromArray(data.rotation);\n const scale = Vector3.FromArray(data.scale);\n\n const rootTransform = this.sceneRoot.transform;\n\n const lerpDTO: TransformLerpDTO = {\n durationMS: transitionTime * 1000,\n ease: this.stateMachine.transitionEaseFunction,\n desiredPosition: pos,\n desiredRotation: rot,\n desiredScale: scale,\n };\n\n rootTransform.lerp(lerpDTO);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SerializeSceneRoot.type);\n\n this.sceneRoot = appObject.getComponent<SceneRootEntity>(\n SceneRootEntity.type,\n );\n if (!this.sceneRoot) {\n this.warn(\n \"SerializeSceneRoot UC has been added to an App Object that does not have a SceneRoot Entity. Add one before adding the UC.\",\n );\n this.dispose();\n return;\n }\n\n this.storedView = appObject.getComponent<StoredView>(StoredView.type); // StoreView is optional\n\n this.stateMachine = StateMachineEntity.get(appObject.appObjectRepo);\n if (this.stateMachine) {\n this.stateMachine.registerSerializedSystem(this);\n } else {\n this.warn(\"Unable to find StateMachineEntity\");\n }\n }\n}\n\nexport interface SceneRootDataV1 {\n position: [number, number, number];\n rotation: [number, number, number, number];\n scale: [number, number, number];\n}\n\nexport interface SceneRootDataV2 {\n position: { x: number; y: number; z: number };\n rotation: { x: number; y: number; z: number; w: number };\n scale: number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MouseHoverOnAppObject.test.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/MouseHoverOnAppObject.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo, ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon\";\nimport { MouseInputEvent } from \"../../MouseInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { makeZSpaceEntity } from \"../../zSpace/Entities/ZSpaceEntity\";\nimport { HoverAppObjectUCMock } from \"../Mocks/HoverAppObjectUCMock\";\nimport { MouseHoverOnAppObject } from \"./MouseHoverOnAppObject\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const zSpaceAO = appObjects.getOrCreate(\"zSpace\");\n const zSpace = makeZSpaceEntity(zSpaceAO);\n zSpace.emulate = false;\n\n const selectionAO = appObjects.getOrCreate(\"selection\");\n const mockUC = new HoverAppObjectUCMock(selectionAO);\n\n const mockPixelToSceneUC = makeMockPixelToSceneRayUC(appObjects);\n const mockPixelToRay = jest.fn().mockReturnValue(ParametricLine.Forward());\n mockPixelToSceneUC.pixelToSceneRay = mockPixelToRay;\n\n const mockMouseInput = new MockMouseInput(selectionAO);\n mockMouseInput.registerController = jest.fn();\n\n const controller = new MouseHoverOnAppObject(selectionAO);\n\n const mockAllow = jest.fn();\n mockAllow.mockReturnValue(true);\n controller.allow = mockAllow;\n\n return {\n mockMouseInput,\n appObjects,\n zSpace,\n controller,\n mockUC,\n mockAllow,\n };\n}\n\ndescribe(\"Hover Scene Object Mouse Controller\", () => {\n it(\"Sends a ray to the UC on move\", () => {\n const { mockUC, controller } = makeTestRig();\n\n const event: MouseInputEvent = {\n button: -1,\n position: new Vector2(5, 6),\n event: new MouseEvent(\"\"),\n };\n\n controller.onMove(event);\n\n expect(mockUC.tryHoverAppObject).toHaveBeenCalledWith(\n ParametricLine.Forward()
|
|
1
|
+
{"version":3,"file":"MouseHoverOnAppObject.test.js","sourceRoot":"","sources":["../../../../src/Selection/Controller/MouseHoverOnAppObject.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo, ParametricLine, Vector2 } from \"@vived/core\";\nimport { makeMockPixelToSceneRayUC } from \"../../Babylon\";\nimport { MouseInputEvent } from \"../../MouseInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { makeZSpaceEntity } from \"../../zSpace/Entities/ZSpaceEntity\";\nimport { HoverAppObjectUCMock } from \"../Mocks/HoverAppObjectUCMock\";\nimport { MouseHoverOnAppObject } from \"./MouseHoverOnAppObject\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const zSpaceAO = appObjects.getOrCreate(\"zSpace\");\n const zSpace = makeZSpaceEntity(zSpaceAO);\n zSpace.emulate = false;\n\n const selectionAO = appObjects.getOrCreate(\"selection\");\n const mockUC = new HoverAppObjectUCMock(selectionAO);\n\n const mockPixelToSceneUC = makeMockPixelToSceneRayUC(appObjects);\n const mockPixelToRay = jest.fn().mockReturnValue(ParametricLine.Forward());\n mockPixelToSceneUC.pixelToSceneRay = mockPixelToRay;\n\n const mockMouseInput = new MockMouseInput(selectionAO);\n mockMouseInput.registerController = jest.fn();\n\n const controller = new MouseHoverOnAppObject(selectionAO);\n\n const mockAllow = jest.fn();\n mockAllow.mockReturnValue(true);\n controller.allow = mockAllow;\n\n return {\n mockMouseInput,\n appObjects,\n zSpace,\n controller,\n mockUC,\n mockAllow,\n };\n}\n\ndescribe(\"Hover Scene Object Mouse Controller\", () => {\n it(\"Sends a ray to the UC on move\", () => {\n const { mockUC, controller } = makeTestRig();\n\n const event: MouseInputEvent = {\n button: -1,\n position: new Vector2(5, 6),\n event: new MouseEvent(\"\"),\n };\n\n controller.onMove(event);\n\n expect(mockUC.tryHoverAppObject).toHaveBeenCalledWith(\n ParametricLine.Forward(),\n );\n });\n\n it(\"Does not send a ray to the UC on move if not allowed\", () => {\n const { controller, mockAllow, mockUC } = makeTestRig();\n\n const evt: MouseInputEvent = {\n position: new Vector2(2, 3),\n button: 0,\n event: new MouseEvent(\"buttondown\"),\n };\n\n mockAllow.mockReturnValue(false);\n\n controller.onMove(evt);\n\n expect(mockUC.tryHoverAppObject).not.toHaveBeenCalled();\n });\n\n it(\"Warns if it is added to an app object that does not have a UC\", () => {\n const { appObjects } = makeTestRig();\n\n const anotherAppObj = appObjects.getOrCreate(\"newAppObj\");\n console.warn = jest.fn();\n\n new MouseHoverOnAppObject(anotherAppObj);\n\n expect(console.warn).toHaveBeenCalled();\n });\n\n it(\"Does not register itself if the object does not have a UC\", () => {\n const { appObjects, mockMouseInput } = makeTestRig();\n\n const anotherAppObj = appObjects.getOrCreate(\"newAppObj\");\n console.warn = jest.fn();\n (mockMouseInput.registerController as jest.MockedFunction<any>).mockClear();\n\n new MouseHoverOnAppObject(anotherAppObj);\n\n expect(mockMouseInput.registerController).not.toHaveBeenCalled();\n });\n\n it(\"Does not sends a ray to the UC if zSpace mouse emulate is on\", () => {\n const { mockUC, controller, zSpace } = makeTestRig();\n\n zSpace.emulate = true;\n\n const event: MouseInputEvent = {\n button: -1,\n position: new Vector2(5, 6),\n event: new MouseEvent(\"\"),\n };\n\n controller.onMove(event);\n\n expect(mockUC.tryHoverAppObject).not.toHaveBeenCalledWith();\n });\n});\n"]}
|