@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":"ModelHasCalloutsPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasCalloutsPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelHasCalloutsPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasCalloutsPM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeCalloutRepoEntity } from \"../../Callouts/Entities/CalloutRepo\";\nimport { makeChannelModelEntity } from \"../Entities\";\nimport {\n makeModelHasCalloutsPM,\n ModelHasCalloutsPM,\n} from \"./ModelHasCalloutsPM\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObj = appObjects.getOrCreate(\"appObj\");\n\n const model = makeChannelModelEntity(appObj);\n const pm = makeModelHasCalloutsPM(appObj);\n pm.addView(() => {});\n\n const modelObj = model.addModelObject();\n const repo = makeCalloutRepoEntity(modelObj.appObject);\n repo.addChangeObserver(modelObj.notifyOnChange);\n\n return { appObj, appObjects, pm, repo };\n}\n\ndescribe(\"Model Objects have Callouts PM\", () => {\n it(\"Sets the last vm on construction\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.lastVM).not.toBeUndefined();\n });\n\n it(\"Updates when a callout is added\", () => {\n const { pm, repo } = makeTestRig();\n\n expect(pm.lastVM).toEqual(false);\n\n repo.makeCallout();\n\n expect(pm.lastVM).toEqual(true);\n });\n\n it(\"Updates when a callout is removed\", () => {\n const { pm, repo } = makeTestRig();\n\n repo.makeCallout(\"calloutID\");\n\n expect(pm.lastVM).toEqual(true);\n\n repo.deleteCallout(\"calloutID\");\n\n expect(pm.lastVM).toEqual(false);\n });\n\n it(\"Compares the VMs\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.vmsAreEqual(true, true)).toEqual(true);\n expect(pm.vmsAreEqual(false, false)).toEqual(true);\n expect(pm.vmsAreEqual(false, true)).toEqual(false);\n expect(pm.vmsAreEqual(true, false)).toEqual(false);\n });\n\n it(\"Gets by ID\", () => {\n const { appObjects, pm } = makeTestRig();\n\n expect(ModelHasCalloutsPM.get(\"appObj\", appObjects)).toEqual(pm);\n });\n});\n"]}
|
|
@@ -21,7 +21,8 @@ class ModelHasLandmarksPMImp extends ModelHasLandmarksPM {
|
|
|
21
21
|
}
|
|
22
22
|
constructor(appObject) {
|
|
23
23
|
super(appObject, ModelHasLandmarksPM.type);
|
|
24
|
-
this.
|
|
24
|
+
this.defaultVM = false;
|
|
25
|
+
this.formVM = () => {
|
|
25
26
|
if (!this.channelModel)
|
|
26
27
|
return;
|
|
27
28
|
let hasLandmark = false;
|
|
@@ -35,13 +36,8 @@ class ModelHasLandmarksPMImp extends ModelHasLandmarksPM {
|
|
|
35
36
|
});
|
|
36
37
|
this.doUpdateView(hasLandmark);
|
|
37
38
|
};
|
|
38
|
-
this.dispose = () => {
|
|
39
|
-
super.dispose();
|
|
40
|
-
this.channelModel?.removeChangeObserver(this.onRepoChange);
|
|
41
|
-
};
|
|
42
39
|
if (this.channelModel) {
|
|
43
|
-
this.
|
|
44
|
-
this.onRepoChange();
|
|
40
|
+
this.observeEntity(this.channelModel);
|
|
45
41
|
}
|
|
46
42
|
else {
|
|
47
43
|
this.error("App Object does not have a ChannelModelEntity");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelHasLandmarksPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasLandmarksPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAgB,mBAAoB,SAAQ,WAAoB;IAGpE,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAAsB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;;AATe,wBAAI,GAAG,qBAAqB,CAAC;AAY/C,MAAM,UAAU,uBAAuB,CACrC,SAAoB;IAEpB,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,sBAAuB,SAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"file":"ModelHasLandmarksPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasLandmarksPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAgB,mBAAoB,SAAQ,WAAoB;IAGpE,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAAsB,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;;AATe,wBAAI,GAAG,qBAAqB,CAAC;AAY/C,MAAM,UAAU,uBAAuB,CACrC,SAAoB;IAEpB,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,sBAAuB,SAAQ,mBAAmB;IAGtD,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAoBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA/B7C,cAAS,GAAG,KAAK,CAAC;QAYlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/C,IAAI,WAAW;oBAAE,OAAO;gBAExB,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CAAe,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEzE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\nimport { LandmarkRepo } from \"../../Landmarks\";\nimport { ChannelModelEntity } from \"../Entities/ChannelModel\";\n\nexport abstract class ModelHasLandmarksPM extends AppObjectPM<boolean> {\n static readonly type = \"ModelHasLandmarksPM\";\n\n static get(\n appObjID: string,\n appObjects: AppObjectRepo,\n ): ModelHasLandmarksPM | undefined {\n return appObjects\n .get(appObjID)\n ?.getComponent<ModelHasLandmarksPM>(ModelHasLandmarksPM.type);\n }\n}\n\nexport function makeModelHasLandmarksPM(\n appObject: AppObject,\n): ModelHasLandmarksPM {\n return new ModelHasLandmarksPMImp(appObject);\n}\n\nclass ModelHasLandmarksPMImp extends ModelHasLandmarksPM {\n defaultVM = false;\n\n private get channelModel() {\n return this.getCachedLocalComponent<ChannelModelEntity>(\n ChannelModelEntity.type,\n );\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.channelModel) return;\n\n let hasLandmark = false;\n\n this.channelModel.modelObjects().forEach((obj) => {\n if (hasLandmark) return;\n\n const repo = obj.appObject.getComponent<LandmarkRepo>(LandmarkRepo.type);\n\n if (repo && repo.getAll().length > 0) {\n hasLandmark = true;\n }\n });\n\n this.doUpdateView(hasLandmark);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ModelHasLandmarksPM.type);\n\n if (this.channelModel) {\n this.observeEntity(this.channelModel);\n } else {\n this.error(\"App Object does not have a ChannelModelEntity\");\n }\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ function makeTestRig() {
|
|
|
8
8
|
const ao = appObjects.getOrCreate("ChannelModel");
|
|
9
9
|
const channelModel = makeChannelModelEntity(ao);
|
|
10
10
|
const pm = makeModelHasLandmarksPM(ao);
|
|
11
|
+
pm.addView(() => { });
|
|
11
12
|
const modelObj = channelModel.addModelObject("modelId");
|
|
12
13
|
const landmarkRepo = makeLandmarkRepoEntity(modelObj.appObject);
|
|
13
14
|
landmarkRepo.addChangeObserver(modelObj.notifyOnChange);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelHasLandmarksPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasLandmarksPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelHasLandmarksPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelHasLandmarksPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAErB,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEhE,YAAY,CAAC,iBAAiB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAExD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;AAClD,CAAC;AAED,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAAC;QAE3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhC,YAAY,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeLandmarkRepoEntity } from \"../../Landmarks\";\nimport { makeChannelModelEntity } from \"../Entities/ChannelModel\";\nimport { makeModelHasLandmarksPM } from \"./ModelHasLandmarksPM\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObj = appObjects.getOrCreate(\"appObj\");\n\n const ao = appObjects.getOrCreate(\"ChannelModel\");\n const channelModel = makeChannelModelEntity(ao);\n const pm = makeModelHasLandmarksPM(ao);\n pm.addView(() => {});\n\n const modelObj = channelModel.addModelObject(\"modelId\");\n\n const landmarkRepo = makeLandmarkRepoEntity(modelObj.appObject);\n\n landmarkRepo.addChangeObserver(modelObj.notifyOnChange);\n\n return { appObj, appObjects, pm, landmarkRepo };\n}\n\ndescribe(\"Model has landmarks PM\", () => {\n it(\"Sets the last vm on construction\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.lastVM).not.toBeUndefined();\n });\n\n it(\"Updates the view when a landmark is added\", () => {\n const { pm, landmarkRepo } = makeTestRig();\n\n expect(pm.lastVM).toEqual(false);\n\n landmarkRepo.createLandmark(\"SomeLandmark\");\n\n expect(pm.lastVM).toEqual(true);\n\n landmarkRepo.deleteLandmark(\"SomeLandmark\");\n\n expect(pm.lastVM).toEqual(false);\n });\n\n it(\"Compares the VMs\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.vmsAreEqual(true, true)).toEqual(true);\n expect(pm.vmsAreEqual(false, false)).toEqual(true);\n expect(pm.vmsAreEqual(false, true)).toEqual(false);\n expect(pm.vmsAreEqual(true, false)).toEqual(false);\n });\n});\n"]}
|
|
@@ -21,7 +21,8 @@ class ModelObjectsAreHiddenPMImp extends ModelObjectsAreHiddenPM {
|
|
|
21
21
|
}
|
|
22
22
|
constructor(appObject) {
|
|
23
23
|
super(appObject, ModelObjectsAreHiddenPM.type);
|
|
24
|
-
this.
|
|
24
|
+
this.defaultVM = false;
|
|
25
|
+
this.formVM = () => {
|
|
25
26
|
if (!this.channelModel)
|
|
26
27
|
return;
|
|
27
28
|
let hidden = false;
|
|
@@ -34,15 +35,8 @@ class ModelObjectsAreHiddenPMImp extends ModelObjectsAreHiddenPM {
|
|
|
34
35
|
});
|
|
35
36
|
this.doUpdateView(hidden);
|
|
36
37
|
};
|
|
37
|
-
this.dispose = () => {
|
|
38
|
-
super.dispose();
|
|
39
|
-
this.channelModel?.removeChangeObserver(this.onRepoChange);
|
|
40
|
-
this.channelModel?.removeOnDisposeObserver(this.dispose);
|
|
41
|
-
};
|
|
42
38
|
if (this.channelModel) {
|
|
43
|
-
this.
|
|
44
|
-
this.channelModel.addOnDisposeObserver(() => this.dispose());
|
|
45
|
-
this.onRepoChange();
|
|
39
|
+
this.observeEntity(this.channelModel);
|
|
46
40
|
}
|
|
47
41
|
else {
|
|
48
42
|
this.error("App Object does not have a ChannelModelEntity");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsAreHiddenPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreHiddenPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAgB,uBAAwB,SAAQ,WAAoB;IAGxE,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAA0B,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;;AATe,4BAAI,GAAG,yBAAyB,CAAC;AAYnD,MAAM,UAAU,2BAA2B,CACzC,SAAoB;IAEpB,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,0BAA2B,SAAQ,uBAAuB;
|
|
1
|
+
{"version":3,"file":"ModelObjectsAreHiddenPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreHiddenPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,OAAgB,uBAAwB,SAAQ,WAAoB;IAGxE,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAA0B,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;;AATe,4BAAI,GAAG,yBAAyB,CAAC;AAYnD,MAAM,UAAU,2BAA2B,CACzC,SAAoB;IAEpB,OAAO,IAAI,0BAA0B,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,0BAA2B,SAAQ,uBAAuB;IAG9D,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAkBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QA7BjD,cAAS,GAAG,KAAK,CAAC;QAYlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,IAAI,MAAM,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/C,IAAI,MAAM;oBAAE,OAAO;gBAEnB,IAAI,GAAG,CAAC,SAAS,CAAC,YAAY,CAAW,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;oBAClE,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\nimport { ChannelModelEntity } from \"../Entities/ChannelModel\";\n\nexport abstract class ModelObjectsAreHiddenPM extends AppObjectPM<boolean> {\n static readonly type = \"ModelObjectsAreHiddenPM\";\n\n static get(\n appObjID: string,\n appObjects: AppObjectRepo,\n ): ModelObjectsAreHiddenPM | undefined {\n return appObjects\n .get(appObjID)\n ?.getComponent<ModelObjectsAreHiddenPM>(ModelObjectsAreHiddenPM.type);\n }\n}\n\nexport function makeModelObjectsAreHiddenPM(\n appObject: AppObject,\n): ModelObjectsAreHiddenPM {\n return new ModelObjectsAreHiddenPMImp(appObject);\n}\n\nclass ModelObjectsAreHiddenPMImp extends ModelObjectsAreHiddenPM {\n defaultVM = false;\n\n private get channelModel() {\n return this.getCachedLocalComponent<ChannelModelEntity>(\n ChannelModelEntity.type,\n );\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.channelModel) return;\n\n let hidden = false;\n\n this.channelModel.modelObjects().forEach((obj) => {\n if (hidden) return;\n\n if (obj.appObject.getComponent<Hideable>(Hideable.type)?.isHidden) {\n hidden = true;\n }\n });\n\n this.doUpdateView(hidden);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ModelObjectsAreHiddenPM.type);\n\n if (this.channelModel) {\n this.observeEntity(this.channelModel);\n } else {\n this.error(\"App Object does not have a ChannelModelEntity\");\n }\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ function makeTestRig() {
|
|
|
8
8
|
const ao = appObjects.getOrCreate("ChannelModel");
|
|
9
9
|
const channelModel = makeChannelModelEntity(ao);
|
|
10
10
|
const pm = makeModelObjectsAreHiddenPM(ao);
|
|
11
|
+
pm.addView(() => { });
|
|
11
12
|
const dm1 = channelModel.addModelObject("modelId");
|
|
12
13
|
const dm2 = channelModel.addModelObject("modelId");
|
|
13
14
|
const sm1Hideable = new Hideable(dm1.appObject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsAreHiddenPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelObjectsAreHiddenPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreHiddenPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAC3C,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAErB,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEhD,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClD,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAElD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;AAC9D,CAAC;AAED,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC;QAE1C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE5B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\nimport { makeChannelModelEntity } from \"../Entities/ChannelModel\";\nimport { makeModelObjectsAreHiddenPM } from \"./ModelObjectsAreHiddenPM\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObj = appObjects.getOrCreate(\"appObj\");\n\n const ao = appObjects.getOrCreate(\"ChannelModel\");\n const channelModel = makeChannelModelEntity(ao);\n const pm = makeModelObjectsAreHiddenPM(ao);\n pm.addView(() => {});\n\n const dm1 = channelModel.addModelObject(\"modelId\");\n const dm2 = channelModel.addModelObject(\"modelId\");\n\n const sm1Hideable = new Hideable(dm1.appObject);\n const sm2Hideable = new Hideable(dm2.appObject);\n\n sm1Hideable.addChangeObserver(dm1.notifyOnChange);\n sm2Hideable.addChangeObserver(dm2.notifyOnChange);\n\n return { appObj, appObjects, sm2Hideable, pm, sm1Hideable };\n}\n\ndescribe(\"Dissectable Meshes Are Hidden PM\", () => {\n it(\"Sets the last vm on construction\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.lastVM).not.toBeUndefined();\n });\n\n it(\"Updates the view when a dissectable mesh changes it's visibility\", () => {\n const { pm, sm2Hideable } = makeTestRig();\n\n expect(pm.lastVM).toEqual(false);\n\n sm2Hideable.isHidden = true;\n\n expect(pm.lastVM).toEqual(true);\n });\n\n it(\"Compares the VMs\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.vmsAreEqual(true, true)).toEqual(true);\n expect(pm.vmsAreEqual(false, false)).toEqual(true);\n expect(pm.vmsAreEqual(false, true)).toEqual(false);\n expect(pm.vmsAreEqual(true, false)).toEqual(false);\n });\n});\n"]}
|
|
@@ -21,7 +21,8 @@ class ModelObjectsAreStickablePMImp extends ModelObjectsAreStickablePM {
|
|
|
21
21
|
}
|
|
22
22
|
constructor(appObject) {
|
|
23
23
|
super(appObject, ModelObjectsAreStickablePM.type);
|
|
24
|
-
this.
|
|
24
|
+
this.defaultVM = false;
|
|
25
|
+
this.formVM = () => {
|
|
25
26
|
if (!this.channelModel)
|
|
26
27
|
return;
|
|
27
28
|
let stickable = false;
|
|
@@ -35,13 +36,8 @@ class ModelObjectsAreStickablePMImp extends ModelObjectsAreStickablePM {
|
|
|
35
36
|
});
|
|
36
37
|
this.doUpdateView(stickable);
|
|
37
38
|
};
|
|
38
|
-
this.dispose = () => {
|
|
39
|
-
super.dispose();
|
|
40
|
-
this.channelModel?.removeChangeObserver(this.onRepoChange);
|
|
41
|
-
};
|
|
42
39
|
if (this.channelModel) {
|
|
43
|
-
this.
|
|
44
|
-
this.onRepoChange();
|
|
40
|
+
this.observeEntity(this.channelModel);
|
|
45
41
|
}
|
|
46
42
|
else {
|
|
47
43
|
this.error("App Object does not have a ChannelModelEntity");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsAreStickablePM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreStickablePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,0BAA2B,SAAQ,WAAoB;IAG3E,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CACZ,0BAA0B,CAAC,IAAI,CAChC,CAAC;IACN,CAAC;;AAXe,+BAAI,GAAG,4BAA4B,CAAC;AActD,MAAM,UAAU,8BAA8B,CAC5C,SAAoB;IAEpB,OAAO,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,6BAA8B,SAAQ,0BAA0B;
|
|
1
|
+
{"version":3,"file":"ModelObjectsAreStickablePM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreStickablePM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,0BAA2B,SAAQ,WAAoB;IAG3E,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CACZ,0BAA0B,CAAC,IAAI,CAChC,CAAC;IACN,CAAC;;AAXe,+BAAI,GAAG,4BAA4B,CAAC;AActD,MAAM,UAAU,8BAA8B,CAC5C,SAAoB;IAEpB,OAAO,IAAI,6BAA6B,CAAC,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,6BAA8B,SAAQ,0BAA0B;IAGpE,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAqBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAhCpD,cAAS,GAAG,KAAK,CAAC;QAYlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/C,IAAI,SAAS;oBAAE,OAAO;gBAEtB,IACE,GAAG,CAAC,SAAS,CAAC,YAAY,CAAkB,eAAe,CAAC,IAAI,CAAC;oBAC/D,EAAE,UAAU,EACd,CAAC;oBACD,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\nimport { StickableEntity } from \"../../Stick/Entities/Stickable\";\nimport { ChannelModelEntity } from \"../Entities\";\n\nexport abstract class ModelObjectsAreStickablePM extends AppObjectPM<boolean> {\n static readonly type = \"ModelObjectsAreStickablePM\";\n\n static get(\n appObjID: string,\n appObjects: AppObjectRepo,\n ): ModelObjectsAreStickablePM | undefined {\n return appObjects\n .get(appObjID)\n ?.getComponent<ModelObjectsAreStickablePM>(\n ModelObjectsAreStickablePM.type,\n );\n }\n}\n\nexport function makeModelObjectsAreStickablePM(\n appObject: AppObject,\n): ModelObjectsAreStickablePM {\n return new ModelObjectsAreStickablePMImp(appObject);\n}\n\nclass ModelObjectsAreStickablePMImp extends ModelObjectsAreStickablePM {\n defaultVM = false;\n\n private get channelModel() {\n return this.getCachedLocalComponent<ChannelModelEntity>(\n ChannelModelEntity.type,\n );\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.channelModel) return;\n\n let stickable = false;\n\n this.channelModel.modelObjects().forEach((obj) => {\n if (stickable) return;\n\n if (\n obj.appObject.getComponent<StickableEntity>(StickableEntity.type)\n ?.canBeStuck\n ) {\n stickable = true;\n }\n });\n\n this.doUpdateView(stickable);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ModelObjectsAreStickablePM.type);\n\n if (this.channelModel) {\n this.observeEntity(this.channelModel);\n } else {\n this.error(\"App Object does not have a ChannelModelEntity\");\n }\n }\n}\n"]}
|
|
@@ -10,6 +10,7 @@ function makeTestRig() {
|
|
|
10
10
|
const ao = appObjects.getOrCreate("ChannelModel");
|
|
11
11
|
const channelModel = makeChannelModelEntity(ao);
|
|
12
12
|
const pm = makeModelObjectsAreStickablePM(ao);
|
|
13
|
+
pm.addView(() => { });
|
|
13
14
|
const modelObject1 = channelModel.addModelObject("modelId1");
|
|
14
15
|
const modelObject2 = channelModel.addModelObject("modelId2");
|
|
15
16
|
const sm1Transform = Transform3D.addIfMissing(modelObject1.appObject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsAreStickablePM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreStickablePM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAE9E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,8BAA8B,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelObjectsAreStickablePM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsAreStickablePM.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Vector3 } from \"@vived/core\";\nimport { makeStickableEntity } from \"../../Stick/Entities/Stickable\";\nimport { Transform3D } from \"../../Transform3D/Entities/Transform3D\";\nimport { makeChannelModelEntity } from \"../Entities\";\nimport { makeModelObjectsAreStickablePM } from \"./ModelObjectsAreStickablePM\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObj = appObjects.getOrCreate(\"appObj\");\n\n const ao = appObjects.getOrCreate(\"ChannelModel\");\n const channelModel = makeChannelModelEntity(ao);\n const pm = makeModelObjectsAreStickablePM(ao);\n pm.addView(() => {});\n\n const modelObject1 = channelModel.addModelObject(\"modelId1\");\n const modelObject2 = channelModel.addModelObject(\"modelId2\");\n\n const sm1Transform = Transform3D.addIfMissing(modelObject1.appObject)!;\n const sm2Transform = Transform3D.addIfMissing(modelObject2.appObject)!;\n\n makeStickableEntity(modelObject1.appObject);\n makeStickableEntity(modelObject2.appObject);\n\n sm1Transform.addChangeObserver(modelObject1.notifyOnChange);\n sm2Transform.addChangeObserver(modelObject2.notifyOnChange);\n\n return { appObj, appObjects, pm, sm1Transform, sm2Transform };\n}\n\ndescribe(\"Model Objects are are stickable PM\", () => {\n it(\"Sets the last vm on construction\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.lastVM).not.toBeUndefined();\n });\n\n it(\"Updates the view when a dissectable mesh changes it's position\", () => {\n const { pm, sm1Transform } = makeTestRig();\n\n expect(pm.lastVM).toEqual(false);\n\n sm1Transform.localPosition = new Vector3(1, 2, 3);\n\n expect(pm.lastVM).toEqual(true);\n });\n\n it(\"Compares the VMs\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.vmsAreEqual(true, true)).toEqual(true);\n expect(pm.vmsAreEqual(false, false)).toEqual(true);\n expect(pm.vmsAreEqual(false, true)).toEqual(false);\n expect(pm.vmsAreEqual(true, false)).toEqual(false);\n });\n});\n"]}
|
|
@@ -21,7 +21,8 @@ class ModelObjectsHaveOverlayPMImp extends ModelObjectsHaveOverlayPM {
|
|
|
21
21
|
}
|
|
22
22
|
constructor(appObject) {
|
|
23
23
|
super(appObject, ModelObjectsHaveOverlayPM.type);
|
|
24
|
-
this.
|
|
24
|
+
this.defaultVM = false;
|
|
25
|
+
this.formVM = () => {
|
|
25
26
|
if (!this.channelModel)
|
|
26
27
|
return;
|
|
27
28
|
let haveOverlay = false;
|
|
@@ -35,15 +36,8 @@ class ModelObjectsHaveOverlayPMImp extends ModelObjectsHaveOverlayPM {
|
|
|
35
36
|
});
|
|
36
37
|
this.doUpdateView(haveOverlay);
|
|
37
38
|
};
|
|
38
|
-
this.dispose = () => {
|
|
39
|
-
super.dispose();
|
|
40
|
-
this.channelModel?.removeChangeObserver(this.onRepoChange);
|
|
41
|
-
this.channelModel?.removeOnDisposeObserver(this.dispose);
|
|
42
|
-
};
|
|
43
39
|
if (this.channelModel) {
|
|
44
|
-
this.
|
|
45
|
-
this.channelModel.addOnDisposeObserver(() => this.dispose());
|
|
46
|
-
this.onRepoChange();
|
|
40
|
+
this.observeEntity(this.channelModel);
|
|
47
41
|
}
|
|
48
42
|
else {
|
|
49
43
|
this.error("App Object does not have a ChannelModelEntity");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsHaveOverlayPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsHaveOverlayPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,yBAA0B,SAAQ,WAAoB;IAG1E,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAA4B,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;;AATe,8BAAI,GAAG,2BAA2B,CAAC;AAYrD,MAAM,UAAU,6BAA6B,CAC3C,SAAoB;IAEpB,OAAO,IAAI,4BAA4B,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,4BAA6B,SAAQ,yBAAyB;
|
|
1
|
+
{"version":3,"file":"ModelObjectsHaveOverlayPM.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsHaveOverlayPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAiB,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAgB,yBAA0B,SAAQ,WAAoB;IAG1E,MAAM,CAAC,GAAG,CACR,QAAgB,EAChB,UAAyB;QAEzB,OAAO,UAAU;aACd,GAAG,CAAC,QAAQ,CAAC;YACd,EAAE,YAAY,CAA4B,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;;AATe,8BAAI,GAAG,2BAA2B,CAAC;AAYrD,MAAM,UAAU,6BAA6B,CAC3C,SAAoB;IAEpB,OAAO,IAAI,4BAA4B,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,4BAA6B,SAAQ,yBAAyB;IAGlE,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAqBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAhCnD,cAAS,GAAG,KAAK,CAAC;QAYlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE/B,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC/C,IAAI,WAAW;oBAAE,OAAO;gBAExB,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,YAAY,CACxC,YAAY,CAAC,IAAI,CAClB,CAAC;gBACF,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,iBAAiB,CAAC,IAAI,EAAE,CAAC;oBAC/D,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectPM, AppObjectRepo } from \"@vived/core\";\nimport { OverlayColor, OverlayColorEnums } from \"../../OverlayColor\";\nimport { ChannelModelEntity } from \"../Entities\";\n\nexport abstract class ModelObjectsHaveOverlayPM extends AppObjectPM<boolean> {\n static readonly type = \"ModelObjectsHaveOverlayPM\";\n\n static get(\n appObjID: string,\n appObjects: AppObjectRepo,\n ): ModelObjectsHaveOverlayPM | undefined {\n return appObjects\n .get(appObjID)\n ?.getComponent<ModelObjectsHaveOverlayPM>(ModelObjectsHaveOverlayPM.type);\n }\n}\n\nexport function makeModelObjectsHaveOverlayPM(\n appObject: AppObject,\n): ModelObjectsHaveOverlayPM {\n return new ModelObjectsHaveOverlayPMImp(appObject);\n}\n\nclass ModelObjectsHaveOverlayPMImp extends ModelObjectsHaveOverlayPM {\n defaultVM = false;\n\n private get channelModel() {\n return this.getCachedLocalComponent<ChannelModelEntity>(\n ChannelModelEntity.type,\n );\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.channelModel) return;\n\n let haveOverlay = false;\n\n this.channelModel.modelObjects().forEach((obj) => {\n if (haveOverlay) return;\n\n const overlay = obj.appObject.getComponent<OverlayColor>(\n OverlayColor.type,\n );\n if (overlay && overlay.overlayColor !== OverlayColorEnums.NONE) {\n haveOverlay = true;\n }\n });\n\n this.doUpdateView(haveOverlay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ModelObjectsHaveOverlayPM.type);\n\n if (this.channelModel) {\n this.observeEntity(this.channelModel);\n } else {\n this.error(\"App Object does not have a ChannelModelEntity\");\n }\n }\n}\n"]}
|
|
@@ -8,6 +8,7 @@ function makeTestRig() {
|
|
|
8
8
|
const ao = appObjects.getOrCreate("ChannelModel");
|
|
9
9
|
const channelModel = makeChannelModelEntity(ao);
|
|
10
10
|
const pm = makeModelObjectsHaveOverlayPM(ao);
|
|
11
|
+
pm.addView(() => { });
|
|
11
12
|
const dm1 = channelModel.addModelObject("modelId");
|
|
12
13
|
const dm2 = channelModel.addModelObject("modelId");
|
|
13
14
|
const overlay1 = new OverlayColor(dm1.appObject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelObjectsHaveOverlayPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelObjectsHaveOverlayPM.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/PMs/ModelObjectsHaveOverlayPM.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAE5E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,EAAE,GAAG,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAC7C,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAErB,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAEnD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAEvC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEjC,QAAQ,CAAC,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC;QAEhD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;QAE7B,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { OverlayColor, OverlayColorEnums } from \"../../OverlayColor\";\nimport { makeChannelModelEntity } from \"../Entities\";\nimport { makeModelObjectsHaveOverlayPM } from \"./ModelObjectsHaveOverlayPM\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appObj = appObjects.getOrCreate(\"appObj\");\n\n const ao = appObjects.getOrCreate(\"ChannelModel\");\n const channelModel = makeChannelModelEntity(ao);\n const pm = makeModelObjectsHaveOverlayPM(ao);\n pm.addView(() => {});\n\n const dm1 = channelModel.addModelObject(\"modelId\");\n const dm2 = channelModel.addModelObject(\"modelId\");\n\n const overlay1 = new OverlayColor(dm1.appObject);\n const overlay2 = new OverlayColor(dm2.appObject);\n\n overlay1.addChangeObserver(dm1.notifyOnChange);\n overlay2.addChangeObserver(dm2.notifyOnChange);\n\n return { appObj, appObjects, overlay2, pm, overlay1 };\n}\n\ndescribe(\"Model Objects have overlay PM\", () => {\n it(\"Sets the last vm on construction\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.lastVM).not.toBeUndefined();\n });\n\n it(\"Updates the view when a dissectable mesh changes it's visibility\", () => {\n const { pm, overlay2 } = makeTestRig();\n\n expect(pm.lastVM).toEqual(false);\n\n overlay2.overlayColor = OverlayColorEnums.BLACK;\n\n expect(pm.lastVM).toEqual(true);\n });\n\n it(\"Compares the VMs\", () => {\n const { pm } = makeTestRig();\n\n expect(pm.vmsAreEqual(true, true)).toEqual(true);\n expect(pm.vmsAreEqual(false, false)).toEqual(true);\n expect(pm.vmsAreEqual(false, true)).toEqual(false);\n expect(pm.vmsAreEqual(true, false)).toEqual(false);\n });\n});\n"]}
|
|
@@ -13,16 +13,16 @@ function makeTestRig() {
|
|
|
13
13
|
mockLoadGLB.loadBlobURL.mockResolvedValue(undefined);
|
|
14
14
|
const mockModelViewFactory = makeChannelModelViewFactoryMock(appObjects);
|
|
15
15
|
const mockGetBlob = makeGetAssetBlobURLUCMock(appObjects);
|
|
16
|
-
mockGetBlob.doDispatch.mockResolvedValue("some.blob.url");
|
|
16
|
+
mockGetBlob.doDispatch = jest.fn().mockResolvedValue("some.blob.url");
|
|
17
17
|
const mockGetLinkedAsset = makeGetLinkedAssetsUCMock(appObjects);
|
|
18
|
-
mockGetLinkedAsset.doDispatch.mockResolvedValue([
|
|
18
|
+
mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([
|
|
19
19
|
{
|
|
20
20
|
id: "dataID",
|
|
21
21
|
},
|
|
22
22
|
]);
|
|
23
23
|
const mockShowSpinner = makeMockShowSpinner(appObjects);
|
|
24
24
|
const hideSpinner = jest.fn();
|
|
25
|
-
mockShowSpinner.showSpinner.mockResolvedValue(hideSpinner);
|
|
25
|
+
mockShowSpinner.showSpinner = jest.fn().mockResolvedValue(hideSpinner);
|
|
26
26
|
const ao = appObjects.getOrCreate("ao");
|
|
27
27
|
const uc = makeLoadChannelModelUC(ao);
|
|
28
28
|
const mockBlobToJSON = jest.fn().mockResolvedValue({ foo: "bar" });
|
|
@@ -130,7 +130,7 @@ describe("Load Channel Model UC", () => {
|
|
|
130
130
|
});
|
|
131
131
|
it("Gets the data asset blob", async () => {
|
|
132
132
|
const { mockGetLinkedAsset, uc, mockGetBlob } = makeTestRig();
|
|
133
|
-
mockGetLinkedAsset.doDispatch.mockResolvedValue([
|
|
133
|
+
mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([
|
|
134
134
|
{
|
|
135
135
|
id: "dataID",
|
|
136
136
|
},
|
|
@@ -140,7 +140,7 @@ describe("Load Channel Model UC", () => {
|
|
|
140
140
|
});
|
|
141
141
|
it("Rejects if there are no data assets linked to the model", () => {
|
|
142
142
|
const { mockGetLinkedAsset, uc } = makeTestRig();
|
|
143
|
-
mockGetLinkedAsset.doDispatch.mockResolvedValue([]);
|
|
143
|
+
mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([]);
|
|
144
144
|
return expect(uc.loadChannelModel("modelID")).rejects.toEqual(new Error("Model asset does not have data"));
|
|
145
145
|
});
|
|
146
146
|
it("Converts the blob to an object", async () => {
|
|
@@ -167,7 +167,7 @@ describe("Load Channel Model UC", () => {
|
|
|
167
167
|
});
|
|
168
168
|
it("Hides the spinner if something rejects", (done) => {
|
|
169
169
|
const { mockGetLinkedAsset, uc, hideSpinner } = makeTestRig();
|
|
170
|
-
mockGetLinkedAsset.doDispatch.mockResolvedValue([]);
|
|
170
|
+
mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([]);
|
|
171
171
|
expect.assertions(1);
|
|
172
172
|
uc.loadChannelModel("modelID").catch((e) => {
|
|
173
173
|
// eslint-disable-next-line jest/no-conditional-expect
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadChannelModelUC.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/LoadChannelModelUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport {\n makeGetAssetBlobURLUCMock,\n makeGetLinkedAssetsUCMock,\n makeMockShowSpinner,\n} from \"../../Dispatcher/Mocks\";\nimport { makeGlbModelRepo, makeLoadGlbFileUCMock } from \"../../GLBModel\";\nimport {\n ChannelModelState,\n makeChannelModelEntity,\n makeChannelModelRepo,\n} from \"../Entities\";\nimport {\n LoadChannelModelUC,\n makeLoadChannelModelUC,\n SCENE_MODEL_DATA_ASSET_LINK_TYPE,\n} from \"./LoadChannelModelUC\";\nimport { makeChannelModelViewFactoryMock } from \"../Mocks/ChannelModelViewFactoryMock\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\n\n const channelModelRepo = makeChannelModelRepo(\n appObjects.getOrCreate(\"channelModelRepo\"),\n );\n\n const glbRepo = makeGlbModelRepo(appObjects.getOrCreate(\"GLB Repo\"));\n const mockLoadGLB = makeLoadGlbFileUCMock(appObjects);\n mockLoadGLB.loadBlobURL.mockResolvedValue(undefined);\n\n const mockModelViewFactory = makeChannelModelViewFactoryMock(appObjects);\n const mockGetBlob = makeGetAssetBlobURLUCMock(appObjects);\n mockGetBlob.doDispatch.mockResolvedValue(\"some.blob.url\");\n\n const mockGetLinkedAsset = makeGetLinkedAssetsUCMock(appObjects);\n mockGetLinkedAsset.doDispatch.mockResolvedValue([\n {\n id: \"dataID\",\n },\n ]);\n\n const mockShowSpinner = makeMockShowSpinner(appObjects);\n const hideSpinner = jest.fn();\n mockShowSpinner.showSpinner.mockResolvedValue(hideSpinner);\n\n const ao = appObjects.getOrCreate(\"ao\");\n const uc = makeLoadChannelModelUC(ao);\n\n const mockBlobToJSON = jest.fn().mockResolvedValue({ foo: \"bar\" });\n uc.blobToJSON = mockBlobToJSON;\n\n return {\n uc,\n appObjects,\n registerSingletonSpy,\n channelModelRepo,\n glbRepo,\n mockLoadGLB,\n mockModelViewFactory,\n mockGetBlob,\n mockGetLinkedAsset,\n mockBlobToJSON,\n hideSpinner,\n mockShowSpinner,\n };\n}\n\ndescribe(\"Load Channel Model UC\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n expect(LoadChannelModelUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers the singleton\", () => {\n const { registerSingletonSpy, uc } = makeTestRig();\n\n expect(registerSingletonSpy).toHaveBeenCalledWith(uc);\n });\n\n it(\"Returns an existing an ready Channel Model\", async () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.READY;\n\n const returnedCM = await uc.loadChannelModel(\"readyChannelModel\");\n\n expect(returnedCM).toEqual(channelModel);\n });\n\n it(\"Resolve after an existing channel model is done loading\", (done) => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.LOADING;\n\n uc.loadChannelModel(\"readyChannelModel\").then((ch) => {\n expect(ch).toEqual(channelModel);\n done();\n });\n\n channelModel.state = ChannelModelState.READY;\n });\n\n it(\"Does not show a spinner if the model exists\", async () => {\n const { uc, mockShowSpinner, channelModelRepo } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.READY;\n\n await uc.loadChannelModel(\"readyChannelModel\");\n\n expect(mockShowSpinner.showSpinner).not.toHaveBeenCalled();\n });\n\n it(\"Rejects if existing throws an error while loading\", (done) => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.LOADING;\n\n uc.loadChannelModel(\"readyChannelModel\").catch((e) => {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(e).toEqual(new Error(\"Some Error\"));\n done();\n });\n\n channelModel.modelError = new Error(\"Some Error\");\n });\n\n it(\"Rejects if the existing already has an error\", () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.modelError = new Error(\"Some Error\");\n\n return expect(uc.loadChannelModel(\"readyChannelModel\")).rejects.toEqual(\n new Error(\"Some Error\"),\n );\n });\n\n it(\"Sets the channel model to ready when completed\", async () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(channelModelRepo.getChannelModel(\"modelID\", false)?.state).toEqual(\n ChannelModelState.READY,\n );\n });\n\n it(\"Shows a spinner\", async () => {\n const { uc, mockShowSpinner } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockShowSpinner.showSpinner).toHaveBeenCalled();\n });\n\n it(\"Hides the spinner on complete\", async () => {\n const { uc, hideSpinner } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(hideSpinner).toHaveBeenCalled();\n });\n\n it(\"Immediately sets the channel model to loading\", () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n uc.loadChannelModel(\"modelID\");\n\n expect(channelModelRepo.getChannelModel(\"modelID\", false)?.state).toEqual(\n ChannelModelState.LOADING,\n );\n });\n\n it(\"Gets the model blob URL\", async () => {\n const { mockGetBlob, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetBlob.doDispatch).toHaveBeenCalledWith(\"modelID\");\n });\n\n it(\"Makes the GLB Entity\", async () => {\n const { glbRepo, uc } = makeTestRig();\n\n expect(glbRepo.hasForAppObject(\"modelID\")).toEqual(false);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(glbRepo.hasForAppObject(\"modelID\")).toEqual(true);\n });\n\n it(\"Gets the linked data asset\", async () => {\n const { mockGetLinkedAsset, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetLinkedAsset.doDispatch).toHaveBeenCalledWith(\n \"modelID\",\n SCENE_MODEL_DATA_ASSET_LINK_TYPE,\n );\n });\n\n it(\"Gets the data asset blob\", async () => {\n const { mockGetLinkedAsset, uc, mockGetBlob } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch.mockResolvedValue([\n {\n id: \"dataID\",\n },\n ]);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetBlob.doDispatch).toHaveBeenCalledWith(\"dataID\");\n });\n\n it(\"Rejects if there are no data assets linked to the model\", () => {\n const { mockGetLinkedAsset, uc } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch.mockResolvedValue([]);\n\n return expect(uc.loadChannelModel(\"modelID\")).rejects.toEqual(\n new Error(\"Model asset does not have data\"),\n );\n });\n\n it(\"Converts the blob to an object\", async () => {\n const { mockBlobToJSON, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockBlobToJSON).toHaveBeenCalledWith(\"some.blob.url\");\n });\n\n it(\"Sets up the channel model data\", async () => {\n const { mockBlobToJSON, uc, appObjects, channelModelRepo } = makeTestRig();\n\n mockBlobToJSON.mockResolvedValue({ foo: \"bar\" });\n\n const newModel = makeChannelModelEntity(appObjects.getOrCreate(\"modelID\"));\n newModel.setupFromData = jest.fn();\n channelModelRepo.createChannelModel = jest.fn().mockReturnValue(newModel);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(newModel.setupFromData).toHaveBeenCalledWith({ foo: \"bar\" });\n });\n\n it(\"Initializes the view\", async () => {\n const { mockModelViewFactory, uc, appObjects, channelModelRepo } =\n makeTestRig();\n\n const newModel = makeChannelModelEntity(appObjects.getOrCreate(\"modelID\"));\n newModel.setupFromData = jest.fn();\n channelModelRepo.createChannelModel = jest.fn().mockReturnValue(newModel);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockModelViewFactory.initializeView).toHaveBeenCalledWith(newModel);\n });\n\n it(\"Hides the spinner if something rejects\", (done) => {\n const { mockGetLinkedAsset, uc, hideSpinner } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch.mockResolvedValue([]);\n\n expect.assertions(1);\n\n uc.loadChannelModel(\"modelID\").catch((e) => {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(hideSpinner).toHaveBeenCalled();\n done();\n });\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"LoadChannelModelUC.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/LoadChannelModelUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport {\n makeGetAssetBlobURLUCMock,\n makeGetLinkedAssetsUCMock,\n makeMockShowSpinner,\n} from \"../../Dispatcher/Mocks\";\nimport { makeGlbModelRepo, makeLoadGlbFileUCMock } from \"../../GLBModel\";\nimport {\n ChannelModelState,\n makeChannelModelEntity,\n makeChannelModelRepo,\n} from \"../Entities\";\nimport {\n LoadChannelModelUC,\n makeLoadChannelModelUC,\n SCENE_MODEL_DATA_ASSET_LINK_TYPE,\n} from \"./LoadChannelModelUC\";\nimport { makeChannelModelViewFactoryMock } from \"../Mocks/ChannelModelViewFactoryMock\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSingletonSpy = jest.spyOn(appObjects, \"registerSingleton\");\n\n const channelModelRepo = makeChannelModelRepo(\n appObjects.getOrCreate(\"channelModelRepo\"),\n );\n\n const glbRepo = makeGlbModelRepo(appObjects.getOrCreate(\"GLB Repo\"));\n const mockLoadGLB = makeLoadGlbFileUCMock(appObjects);\n mockLoadGLB.loadBlobURL.mockResolvedValue(undefined);\n\n const mockModelViewFactory = makeChannelModelViewFactoryMock(appObjects);\n const mockGetBlob = makeGetAssetBlobURLUCMock(appObjects);\n mockGetBlob.doDispatch = jest.fn().mockResolvedValue(\"some.blob.url\");\n\n const mockGetLinkedAsset = makeGetLinkedAssetsUCMock(appObjects);\n mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([\n {\n id: \"dataID\",\n },\n ]);\n\n const mockShowSpinner = makeMockShowSpinner(appObjects);\n const hideSpinner = jest.fn();\n mockShowSpinner.showSpinner = jest.fn().mockResolvedValue(hideSpinner);\n\n const ao = appObjects.getOrCreate(\"ao\");\n const uc = makeLoadChannelModelUC(ao);\n\n const mockBlobToJSON = jest.fn().mockResolvedValue({ foo: \"bar\" });\n uc.blobToJSON = mockBlobToJSON;\n\n return {\n uc,\n appObjects,\n registerSingletonSpy,\n channelModelRepo,\n glbRepo,\n mockLoadGLB,\n mockModelViewFactory,\n mockGetBlob,\n mockGetLinkedAsset,\n mockBlobToJSON,\n hideSpinner,\n mockShowSpinner,\n };\n}\n\ndescribe(\"Load Channel Model UC\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n expect(LoadChannelModelUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers the singleton\", () => {\n const { registerSingletonSpy, uc } = makeTestRig();\n\n expect(registerSingletonSpy).toHaveBeenCalledWith(uc);\n });\n\n it(\"Returns an existing an ready Channel Model\", async () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.READY;\n\n const returnedCM = await uc.loadChannelModel(\"readyChannelModel\");\n\n expect(returnedCM).toEqual(channelModel);\n });\n\n it(\"Resolve after an existing channel model is done loading\", (done) => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.LOADING;\n\n uc.loadChannelModel(\"readyChannelModel\").then((ch) => {\n expect(ch).toEqual(channelModel);\n done();\n });\n\n channelModel.state = ChannelModelState.READY;\n });\n\n it(\"Does not show a spinner if the model exists\", async () => {\n const { uc, mockShowSpinner, channelModelRepo } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.READY;\n\n await uc.loadChannelModel(\"readyChannelModel\");\n\n expect(mockShowSpinner.showSpinner).not.toHaveBeenCalled();\n });\n\n it(\"Rejects if existing throws an error while loading\", (done) => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.state = ChannelModelState.LOADING;\n\n uc.loadChannelModel(\"readyChannelModel\").catch((e) => {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(e).toEqual(new Error(\"Some Error\"));\n done();\n });\n\n channelModel.modelError = new Error(\"Some Error\");\n });\n\n it(\"Rejects if the existing already has an error\", () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n const channelModel =\n channelModelRepo.createChannelModel(\"readyChannelModel\");\n channelModel.modelError = new Error(\"Some Error\");\n\n return expect(uc.loadChannelModel(\"readyChannelModel\")).rejects.toEqual(\n new Error(\"Some Error\"),\n );\n });\n\n it(\"Sets the channel model to ready when completed\", async () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(channelModelRepo.getChannelModel(\"modelID\", false)?.state).toEqual(\n ChannelModelState.READY,\n );\n });\n\n it(\"Shows a spinner\", async () => {\n const { uc, mockShowSpinner } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockShowSpinner.showSpinner).toHaveBeenCalled();\n });\n\n it(\"Hides the spinner on complete\", async () => {\n const { uc, hideSpinner } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(hideSpinner).toHaveBeenCalled();\n });\n\n it(\"Immediately sets the channel model to loading\", () => {\n const { channelModelRepo, uc } = makeTestRig();\n\n uc.loadChannelModel(\"modelID\");\n\n expect(channelModelRepo.getChannelModel(\"modelID\", false)?.state).toEqual(\n ChannelModelState.LOADING,\n );\n });\n\n it(\"Gets the model blob URL\", async () => {\n const { mockGetBlob, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetBlob.doDispatch).toHaveBeenCalledWith(\"modelID\");\n });\n\n it(\"Makes the GLB Entity\", async () => {\n const { glbRepo, uc } = makeTestRig();\n\n expect(glbRepo.hasForAppObject(\"modelID\")).toEqual(false);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(glbRepo.hasForAppObject(\"modelID\")).toEqual(true);\n });\n\n it(\"Gets the linked data asset\", async () => {\n const { mockGetLinkedAsset, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetLinkedAsset.doDispatch).toHaveBeenCalledWith(\n \"modelID\",\n SCENE_MODEL_DATA_ASSET_LINK_TYPE,\n );\n });\n\n it(\"Gets the data asset blob\", async () => {\n const { mockGetLinkedAsset, uc, mockGetBlob } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([\n {\n id: \"dataID\",\n },\n ]);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockGetBlob.doDispatch).toHaveBeenCalledWith(\"dataID\");\n });\n\n it(\"Rejects if there are no data assets linked to the model\", () => {\n const { mockGetLinkedAsset, uc } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([]);\n\n return expect(uc.loadChannelModel(\"modelID\")).rejects.toEqual(\n new Error(\"Model asset does not have data\"),\n );\n });\n\n it(\"Converts the blob to an object\", async () => {\n const { mockBlobToJSON, uc } = makeTestRig();\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockBlobToJSON).toHaveBeenCalledWith(\"some.blob.url\");\n });\n\n it(\"Sets up the channel model data\", async () => {\n const { mockBlobToJSON, uc, appObjects, channelModelRepo } = makeTestRig();\n\n mockBlobToJSON.mockResolvedValue({ foo: \"bar\" });\n\n const newModel = makeChannelModelEntity(appObjects.getOrCreate(\"modelID\"));\n newModel.setupFromData = jest.fn();\n channelModelRepo.createChannelModel = jest.fn().mockReturnValue(newModel);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(newModel.setupFromData).toHaveBeenCalledWith({ foo: \"bar\" });\n });\n\n it(\"Initializes the view\", async () => {\n const { mockModelViewFactory, uc, appObjects, channelModelRepo } =\n makeTestRig();\n\n const newModel = makeChannelModelEntity(appObjects.getOrCreate(\"modelID\"));\n newModel.setupFromData = jest.fn();\n channelModelRepo.createChannelModel = jest.fn().mockReturnValue(newModel);\n\n await uc.loadChannelModel(\"modelID\");\n\n expect(mockModelViewFactory.initializeView).toHaveBeenCalledWith(newModel);\n });\n\n it(\"Hides the spinner if something rejects\", (done) => {\n const { mockGetLinkedAsset, uc, hideSpinner } = makeTestRig();\n\n mockGetLinkedAsset.doDispatch = jest.fn().mockResolvedValue([]);\n\n expect.assertions(1);\n\n uc.loadChannelModel(\"modelID\").catch((e) => {\n // eslint-disable-next-line jest/no-conditional-expect\n expect(hideSpinner).toHaveBeenCalled();\n done();\n });\n });\n});\n"]}
|
|
@@ -13,7 +13,7 @@ function makeTestRig() {
|
|
|
13
13
|
const otherModel = repo.createChannelModel("otherModel");
|
|
14
14
|
otherModel.enabled = true;
|
|
15
15
|
const mockDispatchShow = makeShowSelectModelUCMock(appObjects);
|
|
16
|
-
mockDispatchShow.doDispatch.mockResolvedValue({
|
|
16
|
+
mockDispatchShow.doDispatch = jest.fn().mockResolvedValue({
|
|
17
17
|
modelId: "someModel",
|
|
18
18
|
});
|
|
19
19
|
const mockModel = makeChannelModelEntity(appObjects.getOrCreate("someModel"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectChannelModelUC.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/SelectChannelModelUC.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEzD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAE3E,MAAM,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACzD,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;IAE1B,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC/D,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SelectChannelModelUC.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/SelectChannelModelUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport {\n makeMockDispatchStateChange,\n makeShowSelectModelUCMock,\n} from \"../../Dispatcher\";\nimport { makeSceneRootEntity } from \"../../SceneRoot\";\nimport { makeChannelModelEntity, makeChannelModelRepo } from \"../Entities\";\nimport {\n makeSelectChannelModelUC,\n SelectChannelModelUC,\n} from \"./SelectChannelModelUC\";\nimport { makeLoadChannelModelUCMock } from \"../Mocks/LoadChannelModelMock\";\nimport { Angle, Quaternion, Vector3 } from \"@vived/core\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const registerSpy = jest.spyOn(appObjects, \"registerSingleton\");\n const sceneRoot = makeSceneRootEntity(appObjects.getOrCreate(\"SceneRoot\"));\n\n const repo = makeChannelModelRepo(appObjects.getOrCreate(\"Repo\"));\n const otherModel = repo.createChannelModel(\"otherModel\");\n otherModel.enabled = true;\n\n const mockDispatchShow = makeShowSelectModelUCMock(appObjects);\n mockDispatchShow.doDispatch = jest.fn().mockResolvedValue({\n modelId: \"someModel\",\n });\n\n const mockModel = makeChannelModelEntity(appObjects.getOrCreate(\"someModel\"));\n const mockLoad = makeLoadChannelModelUCMock(appObjects);\n mockLoad.loadChannelModel.mockResolvedValue(mockModel);\n\n const uc = makeSelectChannelModelUC(appObjects.getOrCreate(\"AO\"));\n\n const mockDispatchStateChange = makeMockDispatchStateChange(appObjects);\n const doDispatchMock = jest.fn();\n mockDispatchStateChange.doDispatch = doDispatchMock;\n\n return {\n appObjects,\n mockDispatchShow,\n mockLoad,\n uc,\n sceneRoot,\n registerSpy,\n mockModel,\n repo,\n otherModel,\n mockDispatchStateChange,\n doDispatchMock,\n };\n}\n\ndescribe(\"Select Channel Model UC\", () => {\n it(\"Gets the singleton\", () => {\n const { appObjects, uc } = makeTestRig();\n\n expect(SelectChannelModelUC.get(appObjects)).toEqual(uc);\n });\n\n it(\"Registers the singleton\", () => {\n const { registerSpy, uc } = makeTestRig();\n\n expect(registerSpy).toHaveBeenCalledWith(uc);\n });\n\n it(\"Dispatches show model to the host\", async () => {\n const { uc, mockDispatchShow } = makeTestRig();\n\n await uc.selectChannelModel();\n\n expect(mockDispatchShow.doDispatch).toHaveBeenCalled();\n });\n\n it(\"Loads the model\", async () => {\n const { uc, mockLoad } = makeTestRig();\n\n await uc.selectChannelModel();\n\n expect(mockLoad.loadChannelModel).toHaveBeenCalledWith(\"someModel\");\n });\n\n it(\"Sets the scene root position, rotation and scale to the channel model default\", async () => {\n const { uc, sceneRoot, mockModel } = makeTestRig();\n\n mockModel.defaultPosition = new Vector3(1, 2, 3);\n mockModel.defaultRotation = Quaternion.FromAngleAxis(\n new Vector3(4, 5, 6),\n Angle.FromDegrees(7),\n );\n mockModel.defaultScale = 8;\n\n await uc.selectChannelModel();\n\n expect(sceneRoot.position).toEqual(mockModel.defaultPosition);\n expect(sceneRoot.rotation).toEqual(mockModel.defaultRotation);\n expect(sceneRoot.scale).toEqual(mockModel.defaultScale);\n });\n\n it(\"Resolves with the picked model ID\", async () => {\n const { uc } = makeTestRig();\n\n const pickedModel = await uc.selectChannelModel();\n\n expect(pickedModel).toEqual(\"someModel\");\n });\n\n it(\"Set the model as active\", async () => {\n const { uc, repo } = makeTestRig();\n\n await uc.selectChannelModel();\n\n expect(repo.activeModel).toEqual(\"someModel\");\n });\n\n it(\"Set the model as enabled\", async () => {\n const { uc, mockModel } = makeTestRig();\n\n await uc.selectChannelModel();\n\n expect(mockModel.enabled).toEqual(true);\n });\n\n it(\"Set the other models as disabled\", async () => {\n const { uc, otherModel } = makeTestRig();\n\n otherModel.enabled = true;\n\n await uc.selectChannelModel();\n\n expect(otherModel.enabled).toEqual(false);\n });\n\n it(\"Dispatches a state change\", async () => {\n const { uc, doDispatchMock } = makeTestRig();\n\n await uc.selectChannelModel();\n\n expect(doDispatchMock).toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -66,7 +66,7 @@ export class SerializeActiveModelImp extends SerializeActiveModel {
|
|
|
66
66
|
}
|
|
67
67
|
constructor(appObject) {
|
|
68
68
|
super(appObject, SerializeActiveModel.type);
|
|
69
|
-
this.
|
|
69
|
+
this.serializationVersion = 1;
|
|
70
70
|
this.stateMachine?.registerSerializedSystem(this);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SerializeActiveModel.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/SerializeActiveModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAgB,oBACpB,SAAQ,WAAW;IADrB;;QAKE,SAAI,GAAW,cAAc,CAAC;IAShC,CAAC;;AAViB,yBAAI,GAAG,oBAAoB,AAAvB,CAAwB;AAY9C,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,oBAAoB;IAG/D,IAAY,IAAI;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAqB,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAqB,kBAAkB,CAAC,IAAI,CAAC;YACzE,EAAE,gBAAgB,CAAC;IACvB,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,oBAAoB,CAAC,IAAI,CAC1B,EAAE,kBAAkB,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAiC;YAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;SAC/B,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,OAAe;QAC7C,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,KAAqC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,IAAI,CAAC,IAAI,CACP,4BAA4B,OAAO,0BAA0B,IAAI,CAAC,IAAI,8BAA8B,CACrG,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAmC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QArE9C,yBAAoB,GAAG,CAAC,CAAC;QAsEvB,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { SerializedSystem, StateMachineEntity } from \"../../StateMachine\";\nimport { ChannelModelRepo } from \"../Entities\";\nimport { LoadChannelModelUC } from \"./LoadChannelModelUC\";\nimport { SelectChannelModelUC } from \"./SelectChannelModelUC\";\n\nexport abstract class SerializeActiveModel\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeDemoState\";\n name: string = \"active-model\";\n abstract
|
|
1
|
+
{"version":3,"file":"SerializeActiveModel.js","sourceRoot":"","sources":["../../../../src/ChannelModel/UC/SerializeActiveModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAoB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAgB,oBACpB,SAAQ,WAAW;IADrB;;QAKE,SAAI,GAAW,cAAc,CAAC;IAShC,CAAC;;AAViB,yBAAI,GAAG,oBAAoB,AAAvB,CAAwB;AAY9C,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,uBAAwB,SAAQ,oBAAoB;IAG/D,IAAY,IAAI;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAqB,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAqB,kBAAkB,CAAC,IAAI,CAAC;YACzE,EAAE,gBAAgB,CAAC;IACvB,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,oBAAoB,CAAC,IAAI,CAC1B,EAAE,kBAAkB,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAiC;YAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;SAC/B,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,KAAa,EAAE,OAAe;QAC7C,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,CAAC,KAAqC,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,IAAI,CAAC,IAAI,CACP,4BAA4B,OAAO,0BAA0B,IAAI,CAAC,IAAI,8BAA8B,CACrG,CAAC;YACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,YAAY,CAAC,KAAmC;QAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QArE9C,yBAAoB,GAAG,CAAC,CAAC;QAsEvB,IAAI,CAAC,YAAY,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { SerializedSystem, StateMachineEntity } from \"../../StateMachine\";\nimport { ChannelModelRepo } from \"../Entities\";\nimport { LoadChannelModelUC } from \"./LoadChannelModelUC\";\nimport { SelectChannelModelUC } from \"./SelectChannelModelUC\";\n\nexport abstract class SerializeActiveModel\n extends AppObjectUC\n implements SerializedSystem\n{\n static readonly type = \"SerializeDemoState\";\n name: string = \"active-model\";\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 makeSerializeActiveModel(\n appObject: AppObject,\n): SerializeActiveModel {\n return new SerializeActiveModelImp(appObject);\n}\n\nexport class SerializeActiveModelImp extends SerializeActiveModel {\n serializationVersion = 1;\n\n private get repo() {\n return this.getCachedSingleton<ChannelModelRepo>(ChannelModelRepo.type);\n }\n\n private get stateMachine() {\n return this.getCachedSingleton<StateMachineEntity>(StateMachineEntity.type);\n }\n\n private get loadChannelModel() {\n return this.getCachedSingleton<LoadChannelModelUC>(LoadChannelModelUC.type)\n ?.loadChannelModel;\n }\n\n private get showSelectModel() {\n return this.getCachedSingleton<SelectChannelModelUC>(\n SelectChannelModelUC.type,\n )?.selectChannelModel;\n }\n\n getSystemState(): object {\n if (!this.repo) return {};\n\n const appState: SerializedActiveModelStateV1 = {\n modelID: this.repo.activeModel,\n };\n\n return appState;\n }\n\n applySystemState(state: object, version: number): void {\n if (version === 1) {\n this.applyStateV1(state as SerializedActiveModelStateV1);\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 applyStateV1(state: SerializedActiveModelStateV1) {\n const { modelID } = state;\n\n if (!modelID) {\n this.applyDefaultState();\n return;\n }\n\n if (!this.repo || !this.loadChannelModel) {\n return;\n }\n\n this.repo.activeModel = modelID;\n this.loadChannelModel(modelID);\n }\n\n applyDefaultState(): void {\n if (!this.repo || !this.showSelectModel) {\n return;\n }\n\n this.repo.activeModel = \"\";\n this.showSelectModel();\n }\n\n constructor(appObject: AppObject) {\n super(appObject, SerializeActiveModel.type);\n this.stateMachine?.registerSerializedSystem(this);\n }\n}\n\nexport interface SerializedActiveModelStateV1 {\n modelID: string;\n}\n"]}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { AppObjectEntity, getSingletonComponent, } from "@vived/core";
|
|
2
2
|
export class AppDispatcher extends AppObjectEntity {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.verbose = false;
|
|
6
|
+
}
|
|
3
7
|
}
|
|
4
8
|
AppDispatcher.type = "APP_DISPATCHER";
|
|
5
9
|
AppDispatcher.get = (appObjects) => getSingletonComponent(AppDispatcher.type, appObjects);
|
|
@@ -11,6 +15,9 @@ class AppDispatcherImp extends AppDispatcher {
|
|
|
11
15
|
super(appObject, AppDispatcher.type);
|
|
12
16
|
this.hostHandler = hostHandler;
|
|
13
17
|
this.dispatch = (request) => {
|
|
18
|
+
if (this.verbose) {
|
|
19
|
+
console.log("Dispatching request:", request);
|
|
20
|
+
}
|
|
14
21
|
this.hostHandler(request);
|
|
15
22
|
};
|
|
16
23
|
this.formRequestAndDispatch = (type, version, payload) => {
|