@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
|
@@ -0,0 +1,652 @@
|
|
|
1
|
+
# Dispatcher Feature
|
|
2
|
+
|
|
3
|
+
The Dispatcher feature provides a communication bridge between VIVED applications and their host environments. It follows Clean Architecture principles with Domain-Driven Design, allowing applications to dispatch requests to the host for handling external operations like UI dialogs, asset management, state navigation, and result submission.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Dispatcher acts as the primary communication mechanism between a VIVED app and its hosting environment. It encapsulates request/response patterns into type-safe Use Cases, enabling the app to request host services without direct coupling to host implementation details.
|
|
8
|
+
|
|
9
|
+
**Key Responsibilities:**
|
|
10
|
+
- Dispatch requests from app to host environment
|
|
11
|
+
- Manage app lifecycle events (ready state, state changes)
|
|
12
|
+
- Handle asset operations (fetch, metadata, URLs)
|
|
13
|
+
- Control state navigation (previous, next, completion)
|
|
14
|
+
- Trigger UI interactions (alerts, confirmations, editors)
|
|
15
|
+
- Submit activity results and logs
|
|
16
|
+
- Manage ZSpace integration
|
|
17
|
+
- Register external resources (stylesheets)
|
|
18
|
+
|
|
19
|
+
## Architecture
|
|
20
|
+
|
|
21
|
+
### Entities
|
|
22
|
+
|
|
23
|
+
#### AppDispatcher
|
|
24
|
+
Core entity that manages communication with the host environment.
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
abstract class AppDispatcher extends AppObjectEntity {
|
|
28
|
+
static readonly type = "APP_DISPATCHER";
|
|
29
|
+
verbose: boolean; // Enable logging of dispatched requests
|
|
30
|
+
|
|
31
|
+
abstract dispatch: (request: Request) => void;
|
|
32
|
+
abstract formRequestAndDispatch: (
|
|
33
|
+
type: string,
|
|
34
|
+
version: number,
|
|
35
|
+
payload?: object
|
|
36
|
+
) => void;
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Creation:**
|
|
41
|
+
```typescript
|
|
42
|
+
import { makeAppDispatcher } from "@vived/app";
|
|
43
|
+
|
|
44
|
+
const dispatcher = makeAppDispatcher(appObject, hostHandler);
|
|
45
|
+
dispatcher.verbose = true; // Optional: enable request logging
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Use Cases
|
|
49
|
+
|
|
50
|
+
All Use Cases follow a consistent pattern and require an AppDispatcher to function. Each UC encapsulates a specific host interaction with:
|
|
51
|
+
- A unique `requestType` string
|
|
52
|
+
- A `requestVersion` number for API versioning
|
|
53
|
+
- Type-safe methods for dispatching requests
|
|
54
|
+
- Automatic validation that AppDispatcher exists
|
|
55
|
+
|
|
56
|
+
#### App Lifecycle Use Cases
|
|
57
|
+
|
|
58
|
+
**AppIsReadyUC** - Notify host that app has initialized
|
|
59
|
+
```typescript
|
|
60
|
+
import { appIsReady } from "@vived/app";
|
|
61
|
+
|
|
62
|
+
appIsReady(appObjects);
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**DispatchStateChangeUC** - Notify host of state changes (authoring mode)
|
|
66
|
+
```typescript
|
|
67
|
+
import { dispatchStateChange } from "@vived/app";
|
|
68
|
+
|
|
69
|
+
// Requires StateMachineEntity and BaseAppState
|
|
70
|
+
dispatchStateChange(appObjects);
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**RestoreCurrentStateUC** - Request host to restore current state
|
|
74
|
+
```typescript
|
|
75
|
+
const uc = RestoreCurrentStateUC.get(appObjects);
|
|
76
|
+
uc?.doDispatch();
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### State Navigation Use Cases
|
|
80
|
+
|
|
81
|
+
**GoToNextStateUC** - Navigate to next state
|
|
82
|
+
```typescript
|
|
83
|
+
const uc = GoToNextStateUC.get(appObjects);
|
|
84
|
+
uc?.doDispatch();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**GoToPreviousStateUC** - Navigate to previous state
|
|
88
|
+
```typescript
|
|
89
|
+
const uc = GoToPreviousStateUC.get(appObjects);
|
|
90
|
+
uc?.doDispatch();
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**HasNextStateUC** - Check if next state exists
|
|
94
|
+
```typescript
|
|
95
|
+
const uc = HasNextStateUC.get(appObjects);
|
|
96
|
+
const hasNext = await uc?.doDispatch();
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**HasPreviousStateUC** - Check if previous state exists
|
|
100
|
+
```typescript
|
|
101
|
+
const uc = HasPreviousStateUC.get(appObjects);
|
|
102
|
+
const hasPrevious = await uc?.doDispatch();
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**StateHasChangedUC** - Check if state has changed
|
|
106
|
+
```typescript
|
|
107
|
+
const uc = StateHasChangedUC.get(appObjects);
|
|
108
|
+
const hasChanged = await uc?.doDispatch();
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**StateIsCompleteUC** - Check if current state is complete
|
|
112
|
+
```typescript
|
|
113
|
+
const uc = StateIsCompleteUC.get(appObjects);
|
|
114
|
+
const isComplete = await uc?.doDispatch();
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
#### Asset Management Use Cases
|
|
118
|
+
|
|
119
|
+
**GetAssetBlobURLUC** - Fetch blob URL for an asset
|
|
120
|
+
```typescript
|
|
121
|
+
import { getAssetBlobURL } from "@vived/app";
|
|
122
|
+
|
|
123
|
+
const blobURL = await getAssetBlobURL("asset-id", appObjects);
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**GetAssetFolderURLUC** - Get URL for asset folder
|
|
127
|
+
```typescript
|
|
128
|
+
const uc = GetAssetFolderURLUC.get(appObjects);
|
|
129
|
+
const folderURL = await uc?.doDispatch();
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**GetAssetMetaUC** - Retrieve asset metadata
|
|
133
|
+
```typescript
|
|
134
|
+
const uc = GetAssetMetaUC.get(appObjects);
|
|
135
|
+
const meta = await uc?.doDispatch("asset-id");
|
|
136
|
+
// Returns: AssetMetaDTO { id, name, description }
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**GetAssetsForOwnerUC** - Get all assets for an owner
|
|
140
|
+
```typescript
|
|
141
|
+
const uc = GetAssetsForOwnerUC.get(appObjects);
|
|
142
|
+
const assets = await uc?.doDispatch("owner-id");
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**GetLinkedAssetsUC** - Get assets linked to current activity
|
|
146
|
+
```typescript
|
|
147
|
+
const uc = GetLinkedAssetsUC.get(appObjects);
|
|
148
|
+
const assets = await uc?.doDispatch();
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**IsAssetFetchedUC** - Check if asset has been fetched
|
|
152
|
+
```typescript
|
|
153
|
+
const uc = IsAssetFetchedUC.get(appObjects);
|
|
154
|
+
const isFetched = await uc?.doDispatch("asset-id");
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**SubmitActivityAssetUC** - Submit an asset for the activity
|
|
158
|
+
```typescript
|
|
159
|
+
const uc = SubmitActivityAssetUC.get(appObjects);
|
|
160
|
+
await uc?.submitAsset(assetID, file);
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### UI Interaction Use Cases
|
|
164
|
+
|
|
165
|
+
**ShowAlertUC** - Display alert dialog
|
|
166
|
+
```typescript
|
|
167
|
+
const uc = ShowAlertUC.get(appObjects);
|
|
168
|
+
uc?.showAlert({
|
|
169
|
+
title: "Alert Title",
|
|
170
|
+
message: "Alert message",
|
|
171
|
+
closeButtonLabel: "OK",
|
|
172
|
+
closeCallback: () => console.log("Alert closed")
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**ShowConfirmUC** - Display confirmation dialog
|
|
177
|
+
```typescript
|
|
178
|
+
const uc = ShowConfirmUC.get(appObjects);
|
|
179
|
+
uc?.showConfirm({
|
|
180
|
+
title: "Confirm Action",
|
|
181
|
+
message: "Are you sure?",
|
|
182
|
+
confirmButtonLabel: "Yes",
|
|
183
|
+
cancelButtonLabel: "No",
|
|
184
|
+
confirmCallback: () => console.log("Confirmed"),
|
|
185
|
+
cancelCallback: () => console.log("Cancelled")
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**ShowMarkdownEditorUC** - Display markdown editor
|
|
190
|
+
```typescript
|
|
191
|
+
const uc = ShowMarkdownEditorUC.get(appObjects);
|
|
192
|
+
uc?.showMarkdownEditor({
|
|
193
|
+
markdown: "# Initial Content",
|
|
194
|
+
saveCallback: (updatedMarkdown) => console.log(updatedMarkdown),
|
|
195
|
+
closeCallback: () => console.log("Editor closed")
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**ShowSelectModelUC** - Show model selection dialog
|
|
200
|
+
```typescript
|
|
201
|
+
const uc = ShowSelectModelUC.get(appObjects);
|
|
202
|
+
const selectedModel = await uc?.doDispatch();
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**ShowSpinnerUC** - Show/hide loading spinner
|
|
206
|
+
```typescript
|
|
207
|
+
const uc = ShowSpinnerUC.get(appObjects);
|
|
208
|
+
uc?.showSpinner(true); // Show spinner
|
|
209
|
+
uc?.showSpinner(false); // Hide spinner
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
#### Result Submission Use Cases
|
|
213
|
+
|
|
214
|
+
**SubmitResultResultUC** - Submit activity results
|
|
215
|
+
```typescript
|
|
216
|
+
import {
|
|
217
|
+
submitHitResult,
|
|
218
|
+
submitProgressResult,
|
|
219
|
+
submitQualityResult
|
|
220
|
+
} from "@vived/app";
|
|
221
|
+
|
|
222
|
+
// Hit/Miss result
|
|
223
|
+
submitHitResult({
|
|
224
|
+
success: true,
|
|
225
|
+
description: "Correct answer"
|
|
226
|
+
}, appObjects);
|
|
227
|
+
|
|
228
|
+
// Progress result
|
|
229
|
+
submitProgressResult({
|
|
230
|
+
progress: 0.75,
|
|
231
|
+
description: "75% complete"
|
|
232
|
+
}, appObjects);
|
|
233
|
+
|
|
234
|
+
// Multi-hit result
|
|
235
|
+
const uc = SubmitResultResultUC.get(appObjects);
|
|
236
|
+
uc?.submitMultiHitResult({
|
|
237
|
+
hits: 8,
|
|
238
|
+
misses: 2,
|
|
239
|
+
unanswered: 0,
|
|
240
|
+
description: "Quiz results"
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
// Quality result (star rating)
|
|
244
|
+
submitQualityResult({
|
|
245
|
+
stars: 4,
|
|
246
|
+
maxStars: 5,
|
|
247
|
+
description: "Good performance"
|
|
248
|
+
}, appObjects);
|
|
249
|
+
|
|
250
|
+
// Score result
|
|
251
|
+
uc?.submitScoreResult({
|
|
252
|
+
score: 85,
|
|
253
|
+
maxScore: 100,
|
|
254
|
+
description: "Test score"
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### ZSpace Integration Use Cases
|
|
259
|
+
|
|
260
|
+
**IsZSpaceAvailableUC** - Check if ZSpace is available
|
|
261
|
+
```typescript
|
|
262
|
+
const uc = IsZSpaceAvailableUC.get(appObjects);
|
|
263
|
+
const isAvailable = await uc?.doDispatch();
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**DispatchStartZSpaceUC** - Start ZSpace mode
|
|
267
|
+
```typescript
|
|
268
|
+
const uc = DispatchStartZSpaceUC.get(appObjects);
|
|
269
|
+
uc?.doDispatch();
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**DispatchStopZSpaceUC** - Stop ZSpace mode
|
|
273
|
+
```typescript
|
|
274
|
+
import { dispatchStopZSpace } from "@vived/app";
|
|
275
|
+
|
|
276
|
+
dispatchStopZSpace(appObjects);
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
#### Utility Use Cases
|
|
280
|
+
|
|
281
|
+
**LogUC** - Send log messages to host
|
|
282
|
+
```typescript
|
|
283
|
+
const uc = LogUC.get(appObjects);
|
|
284
|
+
uc?.dispatchLog("ComponentName", "Info message");
|
|
285
|
+
uc?.dispatchWarn("ComponentName", "Warning message");
|
|
286
|
+
uc?.dispatchError("ComponentName", "Error message");
|
|
287
|
+
uc?.dispatchFatal("ComponentName", "Fatal error");
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
**RegisterExternalStylesheetsUC** - Register external CSS files
|
|
291
|
+
```typescript
|
|
292
|
+
const uc = RegisterExternalStylesheetsUC.get(appObjects);
|
|
293
|
+
uc?.doDispatch(["https://example.com/style1.css", "https://example.com/style2.css"]);
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### Controllers
|
|
297
|
+
|
|
298
|
+
Controllers provide convenient wrapper functions for common operations:
|
|
299
|
+
|
|
300
|
+
**dispatchStopZSpace** - Stop ZSpace mode
|
|
301
|
+
```typescript
|
|
302
|
+
import { dispatchStopZSpace } from "@vived/app";
|
|
303
|
+
|
|
304
|
+
dispatchStopZSpace(appObjects);
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Types
|
|
308
|
+
|
|
309
|
+
**AssetMetaDTO** - Asset metadata structure
|
|
310
|
+
```typescript
|
|
311
|
+
interface AssetMetaDTO {
|
|
312
|
+
id: string;
|
|
313
|
+
name: string;
|
|
314
|
+
description: string;
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Factories
|
|
319
|
+
|
|
320
|
+
#### DispatcherFeatureFactory
|
|
321
|
+
Domain factory for setting up the complete Dispatcher feature.
|
|
322
|
+
|
|
323
|
+
```typescript
|
|
324
|
+
import { DispatcherFeatureFactory } from "@vived/app";
|
|
325
|
+
|
|
326
|
+
const factory = new DispatcherFeatureFactory(appObject, hostHandler);
|
|
327
|
+
factory.verbose = true; // Optional: enable dispatcher logging
|
|
328
|
+
factory.setup(); // Sets up entity and all 24 use cases
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Legacy Setup Function:**
|
|
332
|
+
```typescript
|
|
333
|
+
import { setupDispatchers } from "@vived/app";
|
|
334
|
+
|
|
335
|
+
// Older approach, prefer DispatcherFeatureFactory for new code
|
|
336
|
+
setupDispatchers(appObjects, hostHandler);
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
## Usage Patterns
|
|
340
|
+
|
|
341
|
+
### Basic Setup
|
|
342
|
+
|
|
343
|
+
```typescript
|
|
344
|
+
import {
|
|
345
|
+
AppObjectRepo,
|
|
346
|
+
makeAppObjectRepo,
|
|
347
|
+
Handler
|
|
348
|
+
} from "@vived/core";
|
|
349
|
+
import { DispatcherFeatureFactory } from "@vived/app";
|
|
350
|
+
|
|
351
|
+
// Create app objects repository
|
|
352
|
+
const appObjects = makeAppObjectRepo();
|
|
353
|
+
const dispatcherAO = appObjects.getOrCreate("App Dispatcher");
|
|
354
|
+
|
|
355
|
+
// Define host handler
|
|
356
|
+
const hostHandler: Handler = (request) => {
|
|
357
|
+
console.log("Host received:", request);
|
|
358
|
+
// Forward to host environment
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
// Setup dispatcher feature
|
|
362
|
+
const factory = new DispatcherFeatureFactory(dispatcherAO, hostHandler);
|
|
363
|
+
factory.setup();
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Using Dispatcher in Features
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
import { appIsReady, getAssetBlobURL, submitHitResult } from "@vived/app";
|
|
370
|
+
|
|
371
|
+
// Notify host app is ready
|
|
372
|
+
appIsReady(appObjects);
|
|
373
|
+
|
|
374
|
+
// Fetch an asset
|
|
375
|
+
try {
|
|
376
|
+
const blobURL = await getAssetBlobURL("asset-123", appObjects);
|
|
377
|
+
console.log("Asset URL:", blobURL);
|
|
378
|
+
} catch (error) {
|
|
379
|
+
console.error("Failed to fetch asset:", error);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
// Submit activity result
|
|
383
|
+
submitHitResult(
|
|
384
|
+
{ success: true, description: "User completed task" },
|
|
385
|
+
appObjects
|
|
386
|
+
);
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### Request/Response Pattern
|
|
390
|
+
|
|
391
|
+
The dispatcher uses a Request object format:
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
interface Request {
|
|
395
|
+
type: string; // e.g., "SHOW_ALERT"
|
|
396
|
+
version: number; // API version (1, 2, 3...)
|
|
397
|
+
payload?: object; // Optional data
|
|
398
|
+
}
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
Example of what gets dispatched:
|
|
402
|
+
```typescript
|
|
403
|
+
// When calling showAlert
|
|
404
|
+
{
|
|
405
|
+
type: "SHOW_ALERT",
|
|
406
|
+
version: 1,
|
|
407
|
+
payload: {
|
|
408
|
+
title: "Title",
|
|
409
|
+
message: "Message",
|
|
410
|
+
closeButtonLabel: "OK",
|
|
411
|
+
closeCallback: Function
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
## Testing
|
|
417
|
+
|
|
418
|
+
### Testing with Mocks
|
|
419
|
+
|
|
420
|
+
The Dispatcher feature provides mock implementations for testing:
|
|
421
|
+
|
|
422
|
+
**MockDispatcher** - Mock the AppDispatcher entity
|
|
423
|
+
```typescript
|
|
424
|
+
import { makeMockDispatcher } from "@vived/app";
|
|
425
|
+
|
|
426
|
+
const mockDispatcher = makeMockDispatcher(appObjects);
|
|
427
|
+
// Use in tests without actual host communication
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
**Mock Use Cases** - Available mocks:
|
|
431
|
+
- `MockShowAlert` - Mock alert dialogs
|
|
432
|
+
- `MockShowConfirm` - Mock confirmation dialogs
|
|
433
|
+
- `MockShowMarkdown` - Mock markdown editor
|
|
434
|
+
- `MockShowSpinner` - Mock spinner control
|
|
435
|
+
- `MockSubmitResult` - Mock result submission
|
|
436
|
+
- `MockDispatchStateChange` - Mock state change dispatching
|
|
437
|
+
- `MockGetAssetFolderURL` - Mock asset folder URL retrieval
|
|
438
|
+
- `GetAssetBlobURLUCMock` - Mock asset blob URL retrieval
|
|
439
|
+
- `GetLinkedAssetsUCMock` - Mock linked assets retrieval
|
|
440
|
+
- `ShowSelectModelUCMock` - Mock model selection
|
|
441
|
+
|
|
442
|
+
Example test:
|
|
443
|
+
```typescript
|
|
444
|
+
import { makeAppObjectRepo } from "@vived/core";
|
|
445
|
+
import { makeMockDispatcher, makeShowAlertUC } from "@vived/app";
|
|
446
|
+
|
|
447
|
+
describe("Feature using alerts", () => {
|
|
448
|
+
it("Shows an alert", () => {
|
|
449
|
+
const appObjects = makeAppObjectRepo();
|
|
450
|
+
const dispatcherAO = appObjects.getOrCreate("Dispatcher");
|
|
451
|
+
|
|
452
|
+
const mockDispatcher = makeMockDispatcher(appObjects);
|
|
453
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
454
|
+
|
|
455
|
+
const uc = makeShowAlertUC(dispatcherAO);
|
|
456
|
+
uc.showAlert({
|
|
457
|
+
title: "Test",
|
|
458
|
+
message: "Test message",
|
|
459
|
+
closeButtonLabel: "OK",
|
|
460
|
+
closeCallback: jest.fn()
|
|
461
|
+
});
|
|
462
|
+
|
|
463
|
+
expect(spy).toHaveBeenCalledWith("SHOW_ALERT", 1, expect.any(Object));
|
|
464
|
+
});
|
|
465
|
+
});
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### Testing Use Cases
|
|
469
|
+
|
|
470
|
+
Use Cases follow a standard test pattern:
|
|
471
|
+
1. Create test rig with MockDispatcher
|
|
472
|
+
2. Create the Use Case
|
|
473
|
+
3. Spy on `formRequestAndDispatch`
|
|
474
|
+
4. Verify request type, version, and payload
|
|
475
|
+
|
|
476
|
+
Example:
|
|
477
|
+
```typescript
|
|
478
|
+
import { makeAppObjectRepo } from "@vived/core";
|
|
479
|
+
import { AppDispatcher } from "@vived/app";
|
|
480
|
+
import { ShowAlertUC, makeShowAlertUC } from "@vived/app";
|
|
481
|
+
|
|
482
|
+
class MockDispatcher extends AppDispatcher {
|
|
483
|
+
dispatch = jest.fn();
|
|
484
|
+
formRequestAndDispatch = jest.fn();
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
function makeTestRig() {
|
|
488
|
+
const appObjects = makeAppObjectRepo();
|
|
489
|
+
const dispatcher = appObjects.getOrCreate("Dispatcher");
|
|
490
|
+
const mockDispatcher = new MockDispatcher(dispatcher, AppDispatcher.type);
|
|
491
|
+
const uc = makeShowAlertUC(dispatcher);
|
|
492
|
+
|
|
493
|
+
return { uc, mockDispatcher, appObjects };
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
describe("ShowAlertUC", () => {
|
|
497
|
+
it("Dispatches correct request type", () => {
|
|
498
|
+
const { uc, mockDispatcher } = makeTestRig();
|
|
499
|
+
const spy = jest.spyOn(mockDispatcher, "formRequestAndDispatch");
|
|
500
|
+
|
|
501
|
+
uc.showAlert({
|
|
502
|
+
title: "Test",
|
|
503
|
+
message: "Message",
|
|
504
|
+
closeButtonLabel: "OK",
|
|
505
|
+
closeCallback: jest.fn()
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
509
|
+
expect(spy.mock.calls[0][0]).toEqual("SHOW_ALERT");
|
|
510
|
+
expect(spy.mock.calls[0][1]).toEqual(1); // version
|
|
511
|
+
});
|
|
512
|
+
});
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
## Component Summary
|
|
516
|
+
|
|
517
|
+
### Entities (1)
|
|
518
|
+
- `AppDispatcher` - Core dispatcher entity
|
|
519
|
+
|
|
520
|
+
### Use Cases (27)
|
|
521
|
+
**Lifecycle:** AppIsReadyUC, DispatchStateChangeUC, RestoreCurrentStateUC
|
|
522
|
+
|
|
523
|
+
**State Navigation:** GoToNextStateUC, GoToPreviousStateUC, HasNextStateUC, HasPreviousStateUC, StateHasChangedUC, StateIsCompleteUC
|
|
524
|
+
|
|
525
|
+
**Assets:** GetAssetBlobURLUC, GetAssetFolderURLUC, GetAssetMetaUC, GetAssetsForOwnerUC, GetLinkedAssetsUC, IsAssetFetchedUC, SubmitActivityAssetUC
|
|
526
|
+
|
|
527
|
+
**UI:** ShowAlertUC, ShowConfirmUC, ShowMarkdownEditorUC, ShowSelectModelUC, ShowSpinnerUC
|
|
528
|
+
|
|
529
|
+
**Results:** SubmitResultResultUC
|
|
530
|
+
|
|
531
|
+
**ZSpace:** DispatchStartZSpaceUC, DispatchStopZSpaceUC, IsZSpaceAvailableUC
|
|
532
|
+
|
|
533
|
+
**Utilities:** LogUC, RegisterExternalStylesheetsUC
|
|
534
|
+
|
|
535
|
+
### Controllers (1)
|
|
536
|
+
- `dispatchStopZSpace` - Controller for stopping ZSpace
|
|
537
|
+
|
|
538
|
+
### Factories (2)
|
|
539
|
+
- `DispatcherFeatureFactory` - Modern factory for complete setup
|
|
540
|
+
- `setupDispatchers` - Legacy setup function
|
|
541
|
+
|
|
542
|
+
### Mocks (12)
|
|
543
|
+
- `MockDispatcher` - Mock dispatcher entity
|
|
544
|
+
- `MockShowAlert`, `MockShowConfirm`, `MockShowMarkdown` - UI mocks
|
|
545
|
+
- `MockShowSpinner`, `MockSubmitResult` - Action mocks
|
|
546
|
+
- `MockDispatchStateChange`, `MockGetAssetFolderURL` - State/Asset mocks
|
|
547
|
+
- `GetAssetBlobURLUCMock`, `GetLinkedAssetsUCMock`, `ShowSelectModelUCMock` - UC mocks
|
|
548
|
+
|
|
549
|
+
### Types (1)
|
|
550
|
+
- `AssetMetaDTO` - Asset metadata structure
|
|
551
|
+
|
|
552
|
+
## Dependencies
|
|
553
|
+
|
|
554
|
+
**Required:**
|
|
555
|
+
- `@vived/core` - Core VIVED framework types and utilities
|
|
556
|
+
|
|
557
|
+
**Optional (for specific features):**
|
|
558
|
+
- `StateMachineEntity` - Required for DispatchStateChangeUC
|
|
559
|
+
- `BaseAppState` - Required for DispatchStateChangeUC
|
|
560
|
+
|
|
561
|
+
## Best Practices
|
|
562
|
+
|
|
563
|
+
1. **Always check UC availability** - Use optional chaining when getting UCs
|
|
564
|
+
```typescript
|
|
565
|
+
const uc = ShowAlertUC.get(appObjects);
|
|
566
|
+
uc?.showAlert(data); // Safe call
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
2. **Handle async operations** - Many UCs return Promises
|
|
570
|
+
```typescript
|
|
571
|
+
try {
|
|
572
|
+
const url = await getAssetBlobURL("id", appObjects);
|
|
573
|
+
} catch (error) {
|
|
574
|
+
console.error("Failed:", error);
|
|
575
|
+
}
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
3. **Use factory for setup** - Prefer DispatcherFeatureFactory over manual setup
|
|
579
|
+
```typescript
|
|
580
|
+
const factory = new DispatcherFeatureFactory(appObject, hostHandler);
|
|
581
|
+
factory.setup();
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
4. **Enable verbose logging during development**
|
|
585
|
+
```typescript
|
|
586
|
+
const dispatcher = AppDispatcher.get(appObjects);
|
|
587
|
+
if (dispatcher) dispatcher.verbose = true;
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
5. **Mock in tests** - Always use mock implementations for unit testing
|
|
591
|
+
```typescript
|
|
592
|
+
const mockDispatcher = makeMockDispatcher(appObjects);
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
6. **Version your requests** - When host API changes, increment requestVersion
|
|
596
|
+
```typescript
|
|
597
|
+
// In UC implementation
|
|
598
|
+
readonly requestVersion = 2; // Incremented from 1
|
|
599
|
+
```
|
|
600
|
+
|
|
601
|
+
## Request Type Reference
|
|
602
|
+
|
|
603
|
+
| Request Type | Version | Use Case | Description |
|
|
604
|
+
|--------------|---------|----------|-------------|
|
|
605
|
+
| APP_IS_READY | 1 | AppIsReadyUC | App initialization complete |
|
|
606
|
+
| ON_STATE_CHANGE | 3 | DispatchStateChangeUC | State has changed (authoring) |
|
|
607
|
+
| RESTORE_CURRENT_STATE | 1 | RestoreCurrentStateUC | Restore current state |
|
|
608
|
+
| GO_TO_NEXT_STATE | 1 | GoToNextStateUC | Navigate to next state |
|
|
609
|
+
| GO_TO_PREVIOUS_STATE | 1 | GoToPreviousStateUC | Navigate to previous state |
|
|
610
|
+
| HAS_NEXT_STATE | 1 | HasNextStateUC | Check next state exists |
|
|
611
|
+
| HAS_PREVIOUS_STATE | 1 | HasPreviousStateUC | Check previous state exists |
|
|
612
|
+
| STATE_HAS_CHANGED | 1 | StateHasChangedUC | Check if state changed |
|
|
613
|
+
| STATE_IS_COMPLETE | 1 | StateIsCompleteUC | Check if state complete |
|
|
614
|
+
| GET_ASSET_BLOB | 1 | GetAssetBlobURLUC | Fetch asset blob URL |
|
|
615
|
+
| GET_ASSET_FOLDER | 1 | GetAssetFolderURLUC | Get asset folder URL |
|
|
616
|
+
| GET_ASSET_META | 1 | GetAssetMetaUC | Get asset metadata |
|
|
617
|
+
| GET_ASSETS_FOR_OWNER | 1 | GetAssetsForOwnerUC | Get owner's assets |
|
|
618
|
+
| GET_LINKED_ASSETS | 1 | GetLinkedAssetsUC | Get linked assets |
|
|
619
|
+
| IS_ASSET_FETCHED | 1 | IsAssetFetchedUC | Check asset fetched |
|
|
620
|
+
| SUBMIT_ACTIVITY_ASSET | 1 | SubmitActivityAssetUC | Submit activity asset |
|
|
621
|
+
| SHOW_ALERT | 1 | ShowAlertUC | Display alert dialog |
|
|
622
|
+
| SHOW_CONFIRM | 1 | ShowConfirmUC | Display confirm dialog |
|
|
623
|
+
| SHOW_MARKDOWN_EDITOR | 1 | ShowMarkdownEditorUC | Show markdown editor |
|
|
624
|
+
| SHOW_SELECT_MODEL | 1 | ShowSelectModelUC | Show model selection |
|
|
625
|
+
| SHOW_SPINNER | 1 | ShowSpinnerUC | Toggle loading spinner |
|
|
626
|
+
| SUBMIT_RESULTS | 1 | SubmitResultResultUC | Submit activity results |
|
|
627
|
+
| START_ZSPACE | 1 | DispatchStartZSpaceUC | Start ZSpace mode |
|
|
628
|
+
| STOP_ZSPACE | 1 | DispatchStopZSpaceUC | Stop ZSpace mode |
|
|
629
|
+
| IS_ZSPACE_AVAILABLE | 1 | IsZSpaceAvailableUC | Check ZSpace available |
|
|
630
|
+
| SUBMIT_LOG | 1 | LogUC | Send log message |
|
|
631
|
+
| REGISTER_EXTERNAL_STYLESHEETS | 1 | RegisterExternalStylesheetsUC | Register CSS files |
|
|
632
|
+
|
|
633
|
+
## AI Agent Guidelines
|
|
634
|
+
|
|
635
|
+
When working with the Dispatcher feature:
|
|
636
|
+
|
|
637
|
+
1. **Identify the operation** - Determine what host interaction is needed
|
|
638
|
+
2. **Find the appropriate UC** - Reference the component summary or request type table
|
|
639
|
+
3. **Check dependencies** - Ensure AppDispatcher is set up in the AppObjectRepo
|
|
640
|
+
4. **Use type-safe APIs** - Follow the UC interfaces and DTOs
|
|
641
|
+
5. **Handle errors gracefully** - Many UCs return Promises that can reject
|
|
642
|
+
6. **Test with mocks** - Use provided mock implementations for isolated testing
|
|
643
|
+
7. **Follow naming conventions** - UCs are PascalCase, factories/functions are camelCase
|
|
644
|
+
8. **Document request versions** - Note which API version each request uses
|
|
645
|
+
|
|
646
|
+
For new functionality, extend by:
|
|
647
|
+
1. Creating a new UC extending `AppObjectUC`
|
|
648
|
+
2. Defining `requestType` and `requestVersion`
|
|
649
|
+
3. Implementing dispatch logic using AppDispatcher
|
|
650
|
+
4. Adding to DispatcherFeatureFactory's `setupUCs()`
|
|
651
|
+
5. Creating corresponding mock for testing
|
|
652
|
+
6. Writing comprehensive tests following AAA pattern
|