@vived/app 6.8.0 → 6.10.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/README.md +166 -145
- package/dist/cjs/Callouts/Factories/CalloutsFeatureFactory.js +67 -0
- package/dist/cjs/Callouts/Factories/CalloutsFeatureFactory.js.map +1 -0
- package/dist/cjs/Callouts/Factories/CalloutsFeatureFactory.test.js +84 -0
- package/dist/cjs/Callouts/Factories/CalloutsFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Callouts/Factories/index.js +1 -0
- package/dist/cjs/Callouts/Factories/index.js.map +1 -1
- package/dist/cjs/ChannelModel/Factories/ChannelModelFeatureFactory.js +52 -0
- package/dist/cjs/ChannelModel/Factories/ChannelModelFeatureFactory.js.map +1 -0
- package/dist/cjs/ChannelModel/Factories/ChannelModelFeatureFactory.test.js +44 -0
- package/dist/cjs/ChannelModel/Factories/ChannelModelFeatureFactory.test.js.map +1 -0
- package/dist/cjs/ChannelModel/Factories/index.js +1 -0
- package/dist/cjs/ChannelModel/Factories/index.js.map +1 -1
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js +4 -3
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.test.js +35 -0
- package/dist/cjs/Dispatcher/Factories/DispatcherFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Dispatcher/Factories/setupDispatchers.js +1 -0
- package/dist/cjs/Dispatcher/Factories/setupDispatchers.js.map +1 -1
- package/dist/cjs/Dispatcher/Factories/setupDispatchers.test.js +33 -0
- package/dist/cjs/Dispatcher/Factories/setupDispatchers.test.js.map +1 -0
- package/dist/cjs/Environment/Factories/EnvironmentFeatureFactory.js +50 -0
- package/dist/cjs/Environment/Factories/EnvironmentFeatureFactory.js.map +1 -0
- package/dist/cjs/Environment/Factories/EnvironmentFeatureFactory.test.js +39 -0
- package/dist/cjs/Environment/Factories/EnvironmentFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Environment/Factories/index.js +2 -1
- package/dist/cjs/Environment/Factories/index.js.map +1 -1
- package/dist/cjs/Environment/Factories/setupEnvironments.js +19 -0
- package/dist/cjs/Environment/Factories/setupEnvironments.js.map +1 -0
- package/dist/cjs/Hideable/Factories/HideableFeatureFactory.js +69 -0
- package/dist/cjs/Hideable/Factories/HideableFeatureFactory.js.map +1 -0
- package/dist/cjs/Hideable/Factories/HideableFeatureFactory.test.js +116 -0
- package/dist/cjs/Hideable/Factories/HideableFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Hideable/Factories/index.js +1 -0
- package/dist/cjs/Hideable/Factories/index.js.map +1 -1
- package/dist/cjs/HoverLabel/Factories/HoverLabelFeatureFactory.js +79 -0
- package/dist/cjs/HoverLabel/Factories/HoverLabelFeatureFactory.js.map +1 -0
- package/dist/cjs/HoverLabel/Factories/HoverLabelFeatureFactory.test.js +81 -0
- package/dist/cjs/HoverLabel/Factories/HoverLabelFeatureFactory.test.js.map +1 -0
- package/dist/cjs/HoverLabel/Factories/index.js +1 -0
- package/dist/cjs/HoverLabel/Factories/index.js.map +1 -1
- package/dist/cjs/Landmarks/Factories/LandmarksFeatureFactory.js +85 -0
- package/dist/cjs/Landmarks/Factories/LandmarksFeatureFactory.js.map +1 -0
- package/dist/cjs/Landmarks/Factories/LandmarksFeatureFactory.test.js +100 -0
- package/dist/cjs/Landmarks/Factories/LandmarksFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Landmarks/Factories/index.js +1 -0
- package/dist/cjs/Landmarks/Factories/index.js.map +1 -1
- package/dist/cjs/Selection/Factories/SelectionFeatureFactory.js +57 -0
- package/dist/cjs/Selection/Factories/SelectionFeatureFactory.js.map +1 -0
- package/dist/cjs/Selection/Factories/SelectionFeatureFactory.test.js +60 -0
- package/dist/cjs/Selection/Factories/SelectionFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Selection/Factories/index.js +1 -0
- package/dist/cjs/Selection/Factories/index.js.map +1 -1
- package/dist/cjs/Stick/Factories/StickFeatureFactory.js +45 -0
- package/dist/cjs/Stick/Factories/StickFeatureFactory.js.map +1 -0
- package/dist/cjs/Stick/Factories/StickFeatureFactory.test.js +44 -0
- package/dist/cjs/Stick/Factories/StickFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Stick/Factories/index.js +1 -0
- package/dist/cjs/Stick/Factories/index.js.map +1 -1
- package/dist/cjs/StoredView/Factories/StoredViewFeatureFactory.js +48 -0
- package/dist/cjs/StoredView/Factories/StoredViewFeatureFactory.js.map +1 -0
- package/dist/cjs/StoredView/Factories/StoredViewFeatureFactory.test.js +39 -0
- package/dist/cjs/StoredView/Factories/StoredViewFeatureFactory.test.js.map +1 -0
- package/dist/cjs/StoredView/Factories/index.js +1 -0
- package/dist/cjs/StoredView/Factories/index.js.map +1 -1
- package/dist/cjs/Stylus/Factories/StylusFeatureFactory.js +47 -0
- package/dist/cjs/Stylus/Factories/StylusFeatureFactory.js.map +1 -0
- package/dist/cjs/Stylus/Factories/StylusFeatureFactory.test.js +35 -0
- package/dist/cjs/Stylus/Factories/StylusFeatureFactory.test.js.map +1 -0
- package/dist/cjs/Stylus/Factories/index.js +1 -0
- package/dist/cjs/Stylus/Factories/index.js.map +1 -1
- package/dist/cjs/zSpace/Factory/ZSpaceFeatureFactory.js +70 -0
- package/dist/cjs/zSpace/Factory/ZSpaceFeatureFactory.js.map +1 -0
- package/dist/cjs/zSpace/Factory/ZSpaceFeatureFactory.test.js +78 -0
- package/dist/cjs/zSpace/Factory/ZSpaceFeatureFactory.test.js.map +1 -0
- package/dist/cjs/zSpace/Factory/index.js +1 -0
- package/dist/cjs/zSpace/Factory/index.js.map +1 -1
- package/dist/esm/Callouts/Factories/CalloutsFeatureFactory.js +62 -0
- package/dist/esm/Callouts/Factories/CalloutsFeatureFactory.js.map +1 -0
- package/dist/esm/Callouts/Factories/CalloutsFeatureFactory.test.js +82 -0
- package/dist/esm/Callouts/Factories/CalloutsFeatureFactory.test.js.map +1 -0
- package/dist/esm/Callouts/Factories/index.js +1 -0
- package/dist/esm/Callouts/Factories/index.js.map +1 -1
- package/dist/esm/ChannelModel/Factories/ChannelModelFeatureFactory.js +47 -0
- package/dist/esm/ChannelModel/Factories/ChannelModelFeatureFactory.js.map +1 -0
- package/dist/esm/ChannelModel/Factories/ChannelModelFeatureFactory.test.js +42 -0
- package/dist/esm/ChannelModel/Factories/ChannelModelFeatureFactory.test.js.map +1 -0
- package/dist/esm/ChannelModel/Factories/index.js +1 -0
- package/dist/esm/ChannelModel/Factories/index.js.map +1 -1
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js +5 -4
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.js.map +1 -1
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.test.js +33 -0
- package/dist/esm/Dispatcher/Factories/DispatcherFeatureFactory.test.js.map +1 -0
- package/dist/esm/Dispatcher/Factories/setupDispatchers.js +2 -1
- package/dist/esm/Dispatcher/Factories/setupDispatchers.js.map +1 -1
- package/dist/esm/Dispatcher/Factories/setupDispatchers.test.js +31 -0
- package/dist/esm/Dispatcher/Factories/setupDispatchers.test.js.map +1 -0
- package/dist/esm/Environment/Factories/EnvironmentFeatureFactory.js +45 -0
- package/dist/esm/Environment/Factories/EnvironmentFeatureFactory.js.map +1 -0
- package/dist/esm/Environment/Factories/EnvironmentFeatureFactory.test.js +37 -0
- package/dist/esm/Environment/Factories/EnvironmentFeatureFactory.test.js.map +1 -0
- package/dist/esm/Environment/Factories/index.js +2 -1
- package/dist/esm/Environment/Factories/index.js.map +1 -1
- package/dist/esm/Environment/Factories/setupEnvironments.js +16 -0
- package/dist/esm/Environment/Factories/setupEnvironments.js.map +1 -0
- package/dist/esm/Hideable/Factories/HideableFeatureFactory.js +64 -0
- package/dist/esm/Hideable/Factories/HideableFeatureFactory.js.map +1 -0
- package/dist/esm/Hideable/Factories/HideableFeatureFactory.test.js +114 -0
- package/dist/esm/Hideable/Factories/HideableFeatureFactory.test.js.map +1 -0
- package/dist/esm/Hideable/Factories/index.js +1 -0
- package/dist/esm/Hideable/Factories/index.js.map +1 -1
- package/dist/esm/HoverLabel/Factories/HoverLabelFeatureFactory.js +74 -0
- package/dist/esm/HoverLabel/Factories/HoverLabelFeatureFactory.js.map +1 -0
- package/dist/esm/HoverLabel/Factories/HoverLabelFeatureFactory.test.js +79 -0
- package/dist/esm/HoverLabel/Factories/HoverLabelFeatureFactory.test.js.map +1 -0
- package/dist/esm/HoverLabel/Factories/index.js +1 -0
- package/dist/esm/HoverLabel/Factories/index.js.map +1 -1
- package/dist/esm/Landmarks/Factories/LandmarksFeatureFactory.js +80 -0
- package/dist/esm/Landmarks/Factories/LandmarksFeatureFactory.js.map +1 -0
- package/dist/esm/Landmarks/Factories/LandmarksFeatureFactory.test.js +98 -0
- package/dist/esm/Landmarks/Factories/LandmarksFeatureFactory.test.js.map +1 -0
- package/dist/esm/Landmarks/Factories/index.js +1 -0
- package/dist/esm/Landmarks/Factories/index.js.map +1 -1
- package/dist/esm/Selection/Factories/SelectionFeatureFactory.js +52 -0
- package/dist/esm/Selection/Factories/SelectionFeatureFactory.js.map +1 -0
- package/dist/esm/Selection/Factories/SelectionFeatureFactory.test.js +58 -0
- package/dist/esm/Selection/Factories/SelectionFeatureFactory.test.js.map +1 -0
- package/dist/esm/Selection/Factories/index.js +1 -0
- package/dist/esm/Selection/Factories/index.js.map +1 -1
- package/dist/esm/Stick/Factories/StickFeatureFactory.js +40 -0
- package/dist/esm/Stick/Factories/StickFeatureFactory.js.map +1 -0
- package/dist/esm/Stick/Factories/StickFeatureFactory.test.js +42 -0
- package/dist/esm/Stick/Factories/StickFeatureFactory.test.js.map +1 -0
- package/dist/esm/Stick/Factories/index.js +1 -0
- package/dist/esm/Stick/Factories/index.js.map +1 -1
- package/dist/esm/StoredView/Factories/StoredViewFeatureFactory.js +43 -0
- package/dist/esm/StoredView/Factories/StoredViewFeatureFactory.js.map +1 -0
- package/dist/esm/StoredView/Factories/StoredViewFeatureFactory.test.js +37 -0
- package/dist/esm/StoredView/Factories/StoredViewFeatureFactory.test.js.map +1 -0
- package/dist/esm/StoredView/Factories/index.js +1 -0
- package/dist/esm/StoredView/Factories/index.js.map +1 -1
- package/dist/esm/Stylus/Factories/StylusFeatureFactory.js +42 -0
- package/dist/esm/Stylus/Factories/StylusFeatureFactory.js.map +1 -0
- package/dist/esm/Stylus/Factories/StylusFeatureFactory.test.js +33 -0
- package/dist/esm/Stylus/Factories/StylusFeatureFactory.test.js.map +1 -0
- package/dist/esm/Stylus/Factories/index.js +1 -0
- package/dist/esm/Stylus/Factories/index.js.map +1 -1
- package/dist/esm/zSpace/Factory/ZSpaceFeatureFactory.js +65 -0
- package/dist/esm/zSpace/Factory/ZSpaceFeatureFactory.js.map +1 -0
- package/dist/esm/zSpace/Factory/ZSpaceFeatureFactory.test.js +76 -0
- package/dist/esm/zSpace/Factory/ZSpaceFeatureFactory.test.js.map +1 -0
- package/dist/esm/zSpace/Factory/index.js +1 -0
- package/dist/esm/zSpace/Factory/index.js.map +1 -1
- package/dist/types/Callouts/Factories/CalloutsFeatureFactory.d.ts +24 -0
- package/dist/types/Callouts/Factories/CalloutsFeatureFactory.d.ts.map +1 -0
- package/dist/types/Callouts/Factories/CalloutsFeatureFactory.test.d.ts +2 -0
- package/dist/types/Callouts/Factories/CalloutsFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Callouts/Factories/index.d.ts +1 -0
- package/dist/types/Callouts/Factories/index.d.ts.map +1 -1
- package/dist/types/ChannelModel/Factories/ChannelModelFeatureFactory.d.ts +23 -0
- package/dist/types/ChannelModel/Factories/ChannelModelFeatureFactory.d.ts.map +1 -0
- package/dist/types/ChannelModel/Factories/ChannelModelFeatureFactory.test.d.ts +2 -0
- package/dist/types/ChannelModel/Factories/ChannelModelFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/ChannelModel/Factories/index.d.ts +1 -0
- package/dist/types/ChannelModel/Factories/index.d.ts.map +1 -1
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts +3 -3
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.d.ts.map +1 -1
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.test.d.ts +2 -0
- package/dist/types/Dispatcher/Factories/DispatcherFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Dispatcher/Factories/setupDispatchers.d.ts.map +1 -1
- package/dist/types/Dispatcher/Factories/setupDispatchers.test.d.ts +2 -0
- package/dist/types/Dispatcher/Factories/setupDispatchers.test.d.ts.map +1 -0
- package/dist/types/Environment/Factories/EnvironmentFeatureFactory.d.ts +23 -0
- package/dist/types/Environment/Factories/EnvironmentFeatureFactory.d.ts.map +1 -0
- package/dist/types/Environment/Factories/EnvironmentFeatureFactory.test.d.ts +2 -0
- package/dist/types/Environment/Factories/EnvironmentFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Environment/Factories/index.d.ts +2 -1
- package/dist/types/Environment/Factories/index.d.ts.map +1 -1
- package/dist/types/Environment/Factories/setupEnvironments.d.ts +3 -0
- package/dist/types/Environment/Factories/setupEnvironments.d.ts.map +1 -0
- package/dist/types/Hideable/Factories/HideableFeatureFactory.d.ts +32 -0
- package/dist/types/Hideable/Factories/HideableFeatureFactory.d.ts.map +1 -0
- package/dist/types/Hideable/Factories/HideableFeatureFactory.test.d.ts +2 -0
- package/dist/types/Hideable/Factories/HideableFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Hideable/Factories/index.d.ts +1 -0
- package/dist/types/Hideable/Factories/index.d.ts.map +1 -1
- package/dist/types/HoverLabel/Factories/HoverLabelFeatureFactory.d.ts +34 -0
- package/dist/types/HoverLabel/Factories/HoverLabelFeatureFactory.d.ts.map +1 -0
- package/dist/types/HoverLabel/Factories/HoverLabelFeatureFactory.test.d.ts +2 -0
- package/dist/types/HoverLabel/Factories/HoverLabelFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/HoverLabel/Factories/index.d.ts +1 -0
- package/dist/types/HoverLabel/Factories/index.d.ts.map +1 -1
- package/dist/types/Landmarks/Factories/LandmarksFeatureFactory.d.ts +26 -0
- package/dist/types/Landmarks/Factories/LandmarksFeatureFactory.d.ts.map +1 -0
- package/dist/types/Landmarks/Factories/LandmarksFeatureFactory.test.d.ts +2 -0
- package/dist/types/Landmarks/Factories/LandmarksFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Landmarks/Factories/index.d.ts +1 -0
- package/dist/types/Landmarks/Factories/index.d.ts.map +1 -1
- package/dist/types/Selection/Factories/SelectionFeatureFactory.d.ts +27 -0
- package/dist/types/Selection/Factories/SelectionFeatureFactory.d.ts.map +1 -0
- package/dist/types/Selection/Factories/SelectionFeatureFactory.test.d.ts +2 -0
- package/dist/types/Selection/Factories/SelectionFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Selection/Factories/index.d.ts +1 -0
- package/dist/types/Selection/Factories/index.d.ts.map +1 -1
- package/dist/types/Stick/Factories/StickFeatureFactory.d.ts +23 -0
- package/dist/types/Stick/Factories/StickFeatureFactory.d.ts.map +1 -0
- package/dist/types/Stick/Factories/StickFeatureFactory.test.d.ts +2 -0
- package/dist/types/Stick/Factories/StickFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Stick/Factories/index.d.ts +1 -0
- package/dist/types/Stick/Factories/index.d.ts.map +1 -1
- package/dist/types/StoredView/Factories/StoredViewFeatureFactory.d.ts +23 -0
- package/dist/types/StoredView/Factories/StoredViewFeatureFactory.d.ts.map +1 -0
- package/dist/types/StoredView/Factories/StoredViewFeatureFactory.test.d.ts +2 -0
- package/dist/types/StoredView/Factories/StoredViewFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/StoredView/Factories/index.d.ts +1 -0
- package/dist/types/StoredView/Factories/index.d.ts.map +1 -1
- package/dist/types/Stylus/Factories/StylusFeatureFactory.d.ts +23 -0
- package/dist/types/Stylus/Factories/StylusFeatureFactory.d.ts.map +1 -0
- package/dist/types/Stylus/Factories/StylusFeatureFactory.test.d.ts +2 -0
- package/dist/types/Stylus/Factories/StylusFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/Stylus/Factories/index.d.ts +1 -0
- package/dist/types/Stylus/Factories/index.d.ts.map +1 -1
- package/dist/types/zSpace/Factory/ZSpaceFeatureFactory.d.ts +26 -0
- package/dist/types/zSpace/Factory/ZSpaceFeatureFactory.d.ts.map +1 -0
- package/dist/types/zSpace/Factory/ZSpaceFeatureFactory.test.d.ts +2 -0
- package/dist/types/zSpace/Factory/ZSpaceFeatureFactory.test.d.ts.map +1 -0
- package/dist/types/zSpace/Factory/index.d.ts +1 -0
- package/dist/types/zSpace/Factory/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Dispatcher/README.md +9 -6
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { DomainFactory, makeAppObjectRepo, makeDomainFactoryRepo, } from "@vived/core";
|
|
2
|
+
import { makeHideableFeatureFactory } from "../../Hideable";
|
|
3
|
+
import { makeKeyboardInputFeatureFactory } from "../../KeyboardInput";
|
|
4
|
+
import { makeMouseInputFeatureFactory } from "../../MouseInput";
|
|
5
|
+
import { makeStateMachineFeatureFactory } from "../../StateMachine";
|
|
6
|
+
import { makeToolsFeatureFactory, ToolRepository } from "../../Tools";
|
|
7
|
+
import { makeTouchControllerFeatureFactory } from "../../TouchController";
|
|
8
|
+
import { makeCalloutsFeatureFactory } from "./CalloutsFeatureFactory";
|
|
9
|
+
import { setupCallouts } from "./setupCallouts";
|
|
10
|
+
function makeTestRig() {
|
|
11
|
+
const appObjects = makeAppObjectRepo();
|
|
12
|
+
const factories = makeDomainFactoryRepo(appObjects);
|
|
13
|
+
const mockError = jest.fn();
|
|
14
|
+
appObjects.submitError = mockError;
|
|
15
|
+
return { appObjects, factories, mockError };
|
|
16
|
+
}
|
|
17
|
+
function registerCollaborators(appObjects) {
|
|
18
|
+
makeKeyboardInputFeatureFactory(appObjects);
|
|
19
|
+
makeMouseInputFeatureFactory(appObjects);
|
|
20
|
+
makeTouchControllerFeatureFactory(appObjects);
|
|
21
|
+
makeStateMachineFeatureFactory(appObjects);
|
|
22
|
+
}
|
|
23
|
+
function componentTypes(appObjects) {
|
|
24
|
+
const types = {};
|
|
25
|
+
appObjects.getAll().forEach((ao) => {
|
|
26
|
+
types[ao.id] = ao
|
|
27
|
+
.allComponents()
|
|
28
|
+
.filter((c) => !(c instanceof DomainFactory))
|
|
29
|
+
.map((c) => c.type)
|
|
30
|
+
.sort();
|
|
31
|
+
});
|
|
32
|
+
return types;
|
|
33
|
+
}
|
|
34
|
+
function toolTypes(appObjects) {
|
|
35
|
+
return ToolRepository.get(appObjects).allTools.map((t) => t.toolType);
|
|
36
|
+
}
|
|
37
|
+
describe("CalloutsFeatureFactory", () => {
|
|
38
|
+
it("Builds the same components as setupCallouts", () => {
|
|
39
|
+
const legacy = makeTestRig();
|
|
40
|
+
registerCollaborators(legacy.appObjects);
|
|
41
|
+
makeToolsFeatureFactory(legacy.appObjects);
|
|
42
|
+
legacy.factories.setupDomain();
|
|
43
|
+
setupCallouts(legacy.appObjects);
|
|
44
|
+
const { appObjects, factories, mockError } = makeTestRig();
|
|
45
|
+
registerCollaborators(appObjects);
|
|
46
|
+
makeToolsFeatureFactory(appObjects);
|
|
47
|
+
makeCalloutsFeatureFactory(appObjects);
|
|
48
|
+
factories.setupDomain();
|
|
49
|
+
expect(componentTypes(appObjects)).toEqual(componentTypes(legacy.appObjects));
|
|
50
|
+
expect(mockError).not.toHaveBeenCalled();
|
|
51
|
+
});
|
|
52
|
+
it("Creates the CALLOUT tool in finalSetup", () => {
|
|
53
|
+
const { appObjects, factories } = makeTestRig();
|
|
54
|
+
registerCollaborators(appObjects);
|
|
55
|
+
makeToolsFeatureFactory(appObjects);
|
|
56
|
+
makeCalloutsFeatureFactory(appObjects);
|
|
57
|
+
const all = factories.getAll();
|
|
58
|
+
all.forEach((f) => f.setupEntities());
|
|
59
|
+
all.forEach((f) => f.setupUCs());
|
|
60
|
+
all.forEach((f) => f.setupPMs());
|
|
61
|
+
expect(ToolRepository.get(appObjects).getTool("CALLOUT")).toBeUndefined();
|
|
62
|
+
all.forEach((f) => f.finalSetup());
|
|
63
|
+
expect(ToolRepository.get(appObjects).getTool("CALLOUT")).toBeDefined();
|
|
64
|
+
});
|
|
65
|
+
it("Creates tools in factory registration order", () => {
|
|
66
|
+
const first = makeTestRig();
|
|
67
|
+
registerCollaborators(first.appObjects);
|
|
68
|
+
makeCalloutsFeatureFactory(first.appObjects);
|
|
69
|
+
makeHideableFeatureFactory(first.appObjects);
|
|
70
|
+
makeToolsFeatureFactory(first.appObjects);
|
|
71
|
+
first.factories.setupDomain();
|
|
72
|
+
const second = makeTestRig();
|
|
73
|
+
registerCollaborators(second.appObjects);
|
|
74
|
+
makeHideableFeatureFactory(second.appObjects);
|
|
75
|
+
makeCalloutsFeatureFactory(second.appObjects);
|
|
76
|
+
makeToolsFeatureFactory(second.appObjects);
|
|
77
|
+
second.factories.setupDomain();
|
|
78
|
+
expect(toolTypes(first.appObjects)).toEqual(["CALLOUT", "HIDE"]);
|
|
79
|
+
expect(toolTypes(second.appObjects)).toEqual(["HIDE", "CALLOUT"]);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=CalloutsFeatureFactory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalloutsFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/Callouts/Factories/CalloutsFeatureFactory.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObjectRepo,\r\n DomainFactory,\r\n makeAppObjectRepo,\r\n makeDomainFactoryRepo,\r\n} from \"@vived/core\";\r\nimport { makeHideableFeatureFactory } from \"../../Hideable\";\r\nimport { makeKeyboardInputFeatureFactory } from \"../../KeyboardInput\";\r\nimport { makeMouseInputFeatureFactory } from \"../../MouseInput\";\r\nimport { makeStateMachineFeatureFactory } from \"../../StateMachine\";\r\nimport { makeToolsFeatureFactory, ToolRepository } from \"../../Tools\";\r\nimport { makeTouchControllerFeatureFactory } from \"../../TouchController\";\r\nimport { makeCalloutsFeatureFactory } from \"./CalloutsFeatureFactory\";\r\nimport { setupCallouts } from \"./setupCallouts\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const factories = makeDomainFactoryRepo(appObjects);\r\n\r\n const mockError = jest.fn();\r\n appObjects.submitError = mockError;\r\n\r\n return { appObjects, factories, mockError };\r\n}\r\n\r\nfunction registerCollaborators(appObjects: AppObjectRepo) {\r\n makeKeyboardInputFeatureFactory(appObjects);\r\n makeMouseInputFeatureFactory(appObjects);\r\n makeTouchControllerFeatureFactory(appObjects);\r\n makeStateMachineFeatureFactory(appObjects);\r\n}\r\n\r\nfunction componentTypes(appObjects: AppObjectRepo) {\r\n const types: { [id: string]: string[] } = {};\r\n appObjects.getAll().forEach((ao) => {\r\n types[ao.id] = ao\r\n .allComponents()\r\n .filter((c) => !(c instanceof DomainFactory))\r\n .map((c) => c.type)\r\n .sort();\r\n });\r\n return types;\r\n}\r\n\r\nfunction toolTypes(appObjects: AppObjectRepo) {\r\n return ToolRepository.get(appObjects)!.allTools.map((t) => t.toolType);\r\n}\r\n\r\ndescribe(\"CalloutsFeatureFactory\", () => {\r\n it(\"Builds the same components as setupCallouts\", () => {\r\n const legacy = makeTestRig();\r\n registerCollaborators(legacy.appObjects);\r\n makeToolsFeatureFactory(legacy.appObjects);\r\n legacy.factories.setupDomain();\r\n setupCallouts(legacy.appObjects);\r\n\r\n const { appObjects, factories, mockError } = makeTestRig();\r\n registerCollaborators(appObjects);\r\n makeToolsFeatureFactory(appObjects);\r\n makeCalloutsFeatureFactory(appObjects);\r\n factories.setupDomain();\r\n\r\n expect(componentTypes(appObjects)).toEqual(\r\n componentTypes(legacy.appObjects),\r\n );\r\n expect(mockError).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Creates the CALLOUT tool in finalSetup\", () => {\r\n const { appObjects, factories } = makeTestRig();\r\n registerCollaborators(appObjects);\r\n makeToolsFeatureFactory(appObjects);\r\n makeCalloutsFeatureFactory(appObjects);\r\n\r\n const all = factories.getAll();\r\n all.forEach((f) => f.setupEntities());\r\n all.forEach((f) => f.setupUCs());\r\n all.forEach((f) => f.setupPMs());\r\n expect(ToolRepository.get(appObjects)!.getTool(\"CALLOUT\")).toBeUndefined();\r\n\r\n all.forEach((f) => f.finalSetup());\r\n expect(ToolRepository.get(appObjects)!.getTool(\"CALLOUT\")).toBeDefined();\r\n });\r\n\r\n it(\"Creates tools in factory registration order\", () => {\r\n const first = makeTestRig();\r\n registerCollaborators(first.appObjects);\r\n makeCalloutsFeatureFactory(first.appObjects);\r\n makeHideableFeatureFactory(first.appObjects);\r\n makeToolsFeatureFactory(first.appObjects);\r\n first.factories.setupDomain();\r\n\r\n const second = makeTestRig();\r\n registerCollaborators(second.appObjects);\r\n makeHideableFeatureFactory(second.appObjects);\r\n makeCalloutsFeatureFactory(second.appObjects);\r\n makeToolsFeatureFactory(second.appObjects);\r\n second.factories.setupDomain();\r\n\r\n expect(toolTypes(first.appObjects)).toEqual([\"CALLOUT\", \"HIDE\"]);\r\n expect(toolTypes(second.appObjects)).toEqual([\"HIDE\", \"CALLOUT\"]);\r\n });\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Callouts/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC","sourcesContent":["export * from \"./calloutFactory\";\nexport * from \"./calloutRepoFactory\";\nexport * from \"./setupCallouts\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Callouts/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./calloutFactory\";\r\nexport * from \"./calloutRepoFactory\";\r\nexport * from \"./setupCallouts\";\r\nexport * from \"./CalloutsFeatureFactory\";\r\n"]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { DomainFactory } from "@vived/core";
|
|
2
|
+
import { makeTryPanTransformUC, MousePanTransformMC, TouchPanTransformTC, } from "../../Transform3D";
|
|
3
|
+
import { makeChannelModelRepo } from "../Entities";
|
|
4
|
+
import { makeActiveModelObjectListPM, makeActiveModelPM } from "../PMs";
|
|
5
|
+
import { makeLoadChannelModelUC, makeSelectChannelModelUC, makeValidateChannelModel, } from "../UC";
|
|
6
|
+
import { makeChannelModelFactory } from "./channelModelFactory";
|
|
7
|
+
/**
|
|
8
|
+
* Factory responsible for setting up the ChannelModel Feature domain components.
|
|
9
|
+
*
|
|
10
|
+
* Builds the same components as the legacy setupChannelModels function, split
|
|
11
|
+
* into the DomainFactory phases.
|
|
12
|
+
*
|
|
13
|
+
* @extends DomainFactory
|
|
14
|
+
*/
|
|
15
|
+
export class ChannelModelFeatureFactory extends DomainFactory {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.factoryName = "ChannelModelFeatureFactory";
|
|
19
|
+
}
|
|
20
|
+
setupEntities() {
|
|
21
|
+
const repo = makeChannelModelRepo(this.appObject);
|
|
22
|
+
repo.channelModelFactory = makeChannelModelFactory(this.appObjects);
|
|
23
|
+
}
|
|
24
|
+
setupUCs() {
|
|
25
|
+
makeLoadChannelModelUC(this.appObject);
|
|
26
|
+
makeSelectChannelModelUC(this.appObject);
|
|
27
|
+
makeTryPanTransformUC(this.appObject);
|
|
28
|
+
makeValidateChannelModel(this.appObject);
|
|
29
|
+
}
|
|
30
|
+
setupPMs() {
|
|
31
|
+
makeActiveModelPM(this.appObject);
|
|
32
|
+
makeActiveModelObjectListPM(this.appObject);
|
|
33
|
+
}
|
|
34
|
+
finalSetup() {
|
|
35
|
+
new MousePanTransformMC(this.appObject);
|
|
36
|
+
new TouchPanTransformTC(this.appObject);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Factory function to create a new ChannelModelFeatureFactory
|
|
41
|
+
* @param appObjects The AppObjectRepo to get or create the ChannelModels AppObject from
|
|
42
|
+
* @returns A new ChannelModelFeatureFactory instance
|
|
43
|
+
*/
|
|
44
|
+
export function makeChannelModelFeatureFactory(appObjects) {
|
|
45
|
+
return new ChannelModelFeatureFactory(appObjects.getOrCreate("ChannelModels"));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ChannelModelFeatureFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelModelFeatureFactory.js","sourceRoot":"","sources":["../../../../src/ChannelModel/Factories/ChannelModelFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA2B,SAAQ,aAAa;IAA7D;;QACE,gBAAW,GAAG,4BAA4B,CAAC;IAuB7C,CAAC;IArBC,aAAa;QACX,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,QAAQ;QACN,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU;QACR,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAyB;IAEzB,OAAO,IAAI,0BAA0B,CACnC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CACxC,CAAC;AACJ,CAAC","sourcesContent":["import { AppObjectRepo, DomainFactory } from \"@vived/core\";\r\nimport {\r\n makeTryPanTransformUC,\r\n MousePanTransformMC,\r\n TouchPanTransformTC,\r\n} from \"../../Transform3D\";\r\nimport { makeChannelModelRepo } from \"../Entities\";\r\nimport { makeActiveModelObjectListPM, makeActiveModelPM } from \"../PMs\";\r\nimport {\r\n makeLoadChannelModelUC,\r\n makeSelectChannelModelUC,\r\n makeValidateChannelModel,\r\n} from \"../UC\";\r\nimport { makeChannelModelFactory } from \"./channelModelFactory\";\r\n\r\n/**\r\n * Factory responsible for setting up the ChannelModel Feature domain components.\r\n *\r\n * Builds the same components as the legacy setupChannelModels function, split\r\n * into the DomainFactory phases.\r\n *\r\n * @extends DomainFactory\r\n */\r\nexport class ChannelModelFeatureFactory extends DomainFactory {\r\n factoryName = \"ChannelModelFeatureFactory\";\r\n\r\n setupEntities(): void {\r\n const repo = makeChannelModelRepo(this.appObject);\r\n repo.channelModelFactory = makeChannelModelFactory(this.appObjects);\r\n }\r\n\r\n setupUCs(): void {\r\n makeLoadChannelModelUC(this.appObject);\r\n makeSelectChannelModelUC(this.appObject);\r\n makeTryPanTransformUC(this.appObject);\r\n makeValidateChannelModel(this.appObject);\r\n }\r\n\r\n setupPMs(): void {\r\n makeActiveModelPM(this.appObject);\r\n makeActiveModelObjectListPM(this.appObject);\r\n }\r\n\r\n finalSetup(): void {\r\n new MousePanTransformMC(this.appObject);\r\n new TouchPanTransformTC(this.appObject);\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new ChannelModelFeatureFactory\r\n * @param appObjects The AppObjectRepo to get or create the ChannelModels AppObject from\r\n * @returns A new ChannelModelFeatureFactory instance\r\n */\r\nexport function makeChannelModelFeatureFactory(\r\n appObjects: AppObjectRepo,\r\n): ChannelModelFeatureFactory {\r\n return new ChannelModelFeatureFactory(\r\n appObjects.getOrCreate(\"ChannelModels\"),\r\n );\r\n}\r\n"]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DomainFactory, makeAppObjectRepo, makeDomainFactoryRepo, } from "@vived/core";
|
|
2
|
+
import { makeMouseInputFeatureFactory } from "../../MouseInput";
|
|
3
|
+
import { makeTouchControllerFeatureFactory } from "../../TouchController";
|
|
4
|
+
import { makeChannelModelFeatureFactory } from "./ChannelModelFeatureFactory";
|
|
5
|
+
import { setupChannelModels } from "./setupChannelModels";
|
|
6
|
+
function makeTestRig() {
|
|
7
|
+
const appObjects = makeAppObjectRepo();
|
|
8
|
+
const factories = makeDomainFactoryRepo(appObjects);
|
|
9
|
+
const mockError = jest.fn();
|
|
10
|
+
appObjects.submitError = mockError;
|
|
11
|
+
return { appObjects, factories, mockError };
|
|
12
|
+
}
|
|
13
|
+
function registerCollaborators(appObjects) {
|
|
14
|
+
makeMouseInputFeatureFactory(appObjects);
|
|
15
|
+
makeTouchControllerFeatureFactory(appObjects);
|
|
16
|
+
}
|
|
17
|
+
function componentTypes(appObjects) {
|
|
18
|
+
const types = {};
|
|
19
|
+
appObjects.getAll().forEach((ao) => {
|
|
20
|
+
types[ao.id] = ao
|
|
21
|
+
.allComponents()
|
|
22
|
+
.filter((c) => !(c instanceof DomainFactory))
|
|
23
|
+
.map((c) => c.type)
|
|
24
|
+
.sort();
|
|
25
|
+
});
|
|
26
|
+
return types;
|
|
27
|
+
}
|
|
28
|
+
describe("ChannelModelFeatureFactory", () => {
|
|
29
|
+
it("Builds the same components as setupChannelModels", () => {
|
|
30
|
+
const legacy = makeTestRig();
|
|
31
|
+
registerCollaborators(legacy.appObjects);
|
|
32
|
+
legacy.factories.setupDomain();
|
|
33
|
+
setupChannelModels(legacy.appObjects);
|
|
34
|
+
const { appObjects, factories, mockError } = makeTestRig();
|
|
35
|
+
registerCollaborators(appObjects);
|
|
36
|
+
makeChannelModelFeatureFactory(appObjects);
|
|
37
|
+
factories.setupDomain();
|
|
38
|
+
expect(componentTypes(appObjects)).toEqual(componentTypes(legacy.appObjects));
|
|
39
|
+
expect(mockError).not.toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=ChannelModelFeatureFactory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChannelModelFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/ChannelModel/Factories/ChannelModelFeatureFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,iCAAiC,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;IAEnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAyB;IACtD,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACzC,iCAAiC,CAAC,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,UAAyB;IAC/C,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;aACd,aAAa,EAAE;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7B,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC/B,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEtC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;QAC3D,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAClC,8BAA8B,CAAC,UAAU,CAAC,CAAC;QAC3C,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CACxC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAClC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {\r\n AppObjectRepo,\r\n DomainFactory,\r\n makeAppObjectRepo,\r\n makeDomainFactoryRepo,\r\n} from \"@vived/core\";\r\nimport { makeMouseInputFeatureFactory } from \"../../MouseInput\";\r\nimport { makeTouchControllerFeatureFactory } from \"../../TouchController\";\r\nimport { makeChannelModelFeatureFactory } from \"./ChannelModelFeatureFactory\";\r\nimport { setupChannelModels } from \"./setupChannelModels\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const factories = makeDomainFactoryRepo(appObjects);\r\n\r\n const mockError = jest.fn();\r\n appObjects.submitError = mockError;\r\n\r\n return { appObjects, factories, mockError };\r\n}\r\n\r\nfunction registerCollaborators(appObjects: AppObjectRepo) {\r\n makeMouseInputFeatureFactory(appObjects);\r\n makeTouchControllerFeatureFactory(appObjects);\r\n}\r\n\r\nfunction componentTypes(appObjects: AppObjectRepo) {\r\n const types: { [id: string]: string[] } = {};\r\n appObjects.getAll().forEach((ao) => {\r\n types[ao.id] = ao\r\n .allComponents()\r\n .filter((c) => !(c instanceof DomainFactory))\r\n .map((c) => c.type)\r\n .sort();\r\n });\r\n return types;\r\n}\r\n\r\ndescribe(\"ChannelModelFeatureFactory\", () => {\r\n it(\"Builds the same components as setupChannelModels\", () => {\r\n const legacy = makeTestRig();\r\n registerCollaborators(legacy.appObjects);\r\n legacy.factories.setupDomain();\r\n setupChannelModels(legacy.appObjects);\r\n\r\n const { appObjects, factories, mockError } = makeTestRig();\r\n registerCollaborators(appObjects);\r\n makeChannelModelFeatureFactory(appObjects);\r\n factories.setupDomain();\r\n\r\n expect(componentTypes(appObjects)).toEqual(\r\n componentTypes(legacy.appObjects),\r\n );\r\n expect(mockError).not.toHaveBeenCalled();\r\n });\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChannelModel/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC","sourcesContent":["export * from \"./channelModelFactory\";\nexport * from \"./channelObjectFactory\";\nexport * from \"./setupChannelModels\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ChannelModel/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC","sourcesContent":["export * from \"./channelModelFactory\";\r\nexport * from \"./channelObjectFactory\";\r\nexport * from \"./setupChannelModels\";\r\nexport * from \"./ChannelModelFeatureFactory\";\r\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DomainFactory } from "@vived/core";
|
|
2
2
|
import { makeAppDispatcher } from "../Entities";
|
|
3
|
-
import { makeAppIsReadyUC, makeDispatchStartZSpaceUC, makeDispatchStateChangeUC, makeDispatchStopZSpaceUC, makeGetAssetBlobURLUC, makeGetAssetFolderURLUC, makeGetAssetMetaUC, makeGetAssetsForOwnerUC, makeGetAssetStreamURLUC, makeGetLinkedAssetsUC, makeGoToNextStateUC, makeGoToPreviousStateUC, makeHasNextStateUC, makeHasPreviousStateUC, makeIsAssetFetchedUC, makeIsZSpaceAvailableUC, makeLogUC, makeRegisterExternalStylesheetsUC, makeShowAlertUC, makeShowConfirmUC, makeShowMarkdownEditorUC, makeShowSelectModelUC, makeShowSpinnerUC, makeStateHasChangedUC, makeStateIsCompleteUC, makeSubmitResultUC, } from "../UC";
|
|
3
|
+
import { makeAppIsReadyUC, makeDispatchStartZSpaceUC, makeDispatchStateChangeUC, makeDispatchStopZSpaceUC, makeGetAssetBlobURLUC, makeGetAssetFolderURLUC, makeGetAssetMetaUC, makeGetAssetsForOwnerUC, makeGetAssetStreamURLUC, makeGetLinkedAssetsUC, makeGoToNextStateUC, makeGoToPreviousStateUC, makeHasNextStateUC, makeHasPreviousStateUC, makeIsAssetFetchedUC, makeIsZSpaceAvailableUC, makeLogUC, makeRegisterExternalStylesheetsUC, makeShowAlertUC, makeShowConfirmUC, makeShowMarkdownEditorUC, makeShowSelectModelUC, makeShowSpinnerUC, makeStateHasChangedUC, makeStateIsCompleteUC, makeSubmitActivityAssetUC, makeSubmitResultUC, } from "../UC";
|
|
4
4
|
/**
|
|
5
5
|
* Factory responsible for setting up the Dispatcher Feature domain components.
|
|
6
6
|
*
|
|
@@ -11,7 +11,7 @@ import { makeAppIsReadyUC, makeDispatchStartZSpaceUC, makeDispatchStateChangeUC,
|
|
|
11
11
|
*
|
|
12
12
|
* The factory creates:
|
|
13
13
|
* - AppDispatcher entity with hostHandler integration
|
|
14
|
-
* - All
|
|
14
|
+
* - All 27 dispatcher-related Use Cases for handling various app operations
|
|
15
15
|
*
|
|
16
16
|
* @extends DomainFactory
|
|
17
17
|
*/
|
|
@@ -42,11 +42,11 @@ export class DispatcherFeatureFactory extends DomainFactory {
|
|
|
42
42
|
/**
|
|
43
43
|
* Sets up all use cases for the Dispatcher Feature.
|
|
44
44
|
*
|
|
45
|
-
* Initializes all
|
|
45
|
+
* Initializes all 27 use cases that define the business operations and
|
|
46
46
|
* workflows available through the dispatcher system. These use cases handle:
|
|
47
47
|
* - App lifecycle management (ready, state changes)
|
|
48
48
|
* - ZSpace integration (start, stop, availability)
|
|
49
|
-
* - Asset management (fetching, metadata, URLs)
|
|
49
|
+
* - Asset management (fetching, metadata, URLs, activity asset upload)
|
|
50
50
|
* - State navigation (previous, next, completion)
|
|
51
51
|
* - UI interactions (alerts, confirmations, editors)
|
|
52
52
|
* - Result submission and logging
|
|
@@ -65,6 +65,7 @@ export class DispatcherFeatureFactory extends DomainFactory {
|
|
|
65
65
|
makeGetAssetStreamURLUC(this.appObject);
|
|
66
66
|
makeGetLinkedAssetsUC(this.appObject);
|
|
67
67
|
makeIsAssetFetchedUC(this.appObject);
|
|
68
|
+
makeSubmitActivityAssetUC(this.appObject);
|
|
68
69
|
// State navigation
|
|
69
70
|
makeGoToPreviousStateUC(this.appObject);
|
|
70
71
|
makeGoToNextStateUC(this.appObject);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DispatcherFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/DispatcherFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,iCAAiC,EACjC,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,OAAO,CAAC;AAEf;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IAOzD;;;;;OAKG;IACH,YAAY,SAAoB,EAAE,WAAoB;QACpD,KAAK,CAAC,SAAS,CAAC,CAAC;QAbnB,gBAAW,GAAG,0BAA0B,CAAC;QAElC,YAAO,GAAG,KAAK,CAAC;QAYrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,aAAa;QACX,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,QAAQ;QACN,qCAAqC;QACrC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzC,mBAAmB;QACnB,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DispatcherFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/DispatcherFeatureFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { DomainFactory, AppObject, Handler, AppObjectRepo } from \"@vived/core\";\r\nimport { makeAppDispatcher } from \"../Entities\";\r\nimport {\r\n makeAppIsReadyUC,\r\n makeDispatchStartZSpaceUC,\r\n makeDispatchStateChangeUC,\r\n makeDispatchStopZSpaceUC,\r\n makeGetAssetBlobURLUC,\r\n makeGetAssetFolderURLUC,\r\n makeGetAssetMetaUC,\r\n makeGetAssetsForOwnerUC,\r\n makeGetAssetStreamURLUC,\r\n makeGetLinkedAssetsUC,\r\n makeGoToNextStateUC,\r\n makeGoToPreviousStateUC,\r\n makeHasNextStateUC,\r\n makeHasPreviousStateUC,\r\n makeIsAssetFetchedUC,\r\n makeIsZSpaceAvailableUC,\r\n makeLogUC,\r\n makeRegisterExternalStylesheetsUC,\r\n makeShowAlertUC,\r\n makeShowConfirmUC,\r\n makeShowMarkdownEditorUC,\r\n makeShowSelectModelUC,\r\n makeShowSpinnerUC,\r\n makeStateHasChangedUC,\r\n makeStateIsCompleteUC,\r\n makeSubmitActivityAssetUC,\r\n makeSubmitResultUC,\r\n} from \"../UC\";\r\n\r\n/**\r\n * Factory responsible for setting up the Dispatcher Feature domain components.\r\n *\r\n * This factory initializes the AppDispatcher entity and all associated use cases\r\n * required for the Dispatcher Feature functionality. It follows the domain-driven\r\n * design pattern by organizing components into their respective layers and replaces\r\n * the legacy setupDispatchers function while maintaining backwards compatibility.\r\n *\r\n * The factory creates:\r\n * - AppDispatcher entity with hostHandler integration\r\n * - All 27 dispatcher-related Use Cases for handling various app operations\r\n *\r\n * @extends DomainFactory\r\n */\r\nexport class DispatcherFeatureFactory extends DomainFactory {\r\n factoryName = \"DispatcherFeatureFactory\";\r\n\r\n public verbose = false;\r\n\r\n private hostHandler: Handler;\r\n\r\n /**\r\n * Creates a new DispatcherFeatureFactory instance.\r\n *\r\n * @param appObject The AppObject to attach the factory to\r\n * @param hostHandler The handler function for processing dispatched requests\r\n */\r\n constructor(appObject: AppObject, hostHandler: Handler) {\r\n super(appObject);\r\n this.hostHandler = hostHandler;\r\n }\r\n\r\n /**\r\n * Sets up all entities required for the Dispatcher Feature.\r\n *\r\n * Creates the AppDispatcher singleton entity that serves as the main\r\n * communication bridge between the app and the host environment.\r\n * The entity is initialized with the provided hostHandler for request processing.\r\n */\r\n setupEntities(): void {\r\n const entity = makeAppDispatcher(this.appObject, this.hostHandler);\r\n entity.verbose = this.verbose;\r\n }\r\n\r\n /**\r\n * Sets up all use cases for the Dispatcher Feature.\r\n *\r\n * Initializes all 27 use cases that define the business operations and\r\n * workflows available through the dispatcher system. These use cases handle:\r\n * - App lifecycle management (ready, state changes)\r\n * - ZSpace integration (start, stop, availability)\r\n * - Asset management (fetching, metadata, URLs, activity asset upload)\r\n * - State navigation (previous, next, completion)\r\n * - UI interactions (alerts, confirmations, editors)\r\n * - Result submission and logging\r\n */\r\n setupUCs(): void {\r\n // App lifecycle and state management\r\n makeAppIsReadyUC(this.appObject);\r\n makeDispatchStartZSpaceUC(this.appObject);\r\n makeDispatchStateChangeUC(this.appObject);\r\n makeDispatchStopZSpaceUC(this.appObject);\r\n\r\n // Asset management\r\n makeGetAssetBlobURLUC(this.appObject);\r\n makeGetAssetFolderURLUC(this.appObject);\r\n makeGetAssetMetaUC(this.appObject);\r\n makeGetAssetsForOwnerUC(this.appObject);\r\n makeGetAssetStreamURLUC(this.appObject);\r\n makeGetLinkedAssetsUC(this.appObject);\r\n makeIsAssetFetchedUC(this.appObject);\r\n makeSubmitActivityAssetUC(this.appObject);\r\n\r\n // State navigation\r\n makeGoToPreviousStateUC(this.appObject);\r\n makeGoToNextStateUC(this.appObject);\r\n makeHasPreviousStateUC(this.appObject);\r\n makeHasNextStateUC(this.appObject);\r\n makeStateHasChangedUC(this.appObject);\r\n makeStateIsCompleteUC(this.appObject);\r\n\r\n // ZSpace integration\r\n makeIsZSpaceAvailableUC(this.appObject);\r\n\r\n // Logging and utilities\r\n makeLogUC(this.appObject);\r\n makeRegisterExternalStylesheetsUC(this.appObject);\r\n\r\n // UI interactions\r\n makeShowAlertUC(this.appObject);\r\n makeShowConfirmUC(this.appObject);\r\n makeShowMarkdownEditorUC(this.appObject);\r\n makeShowSelectModelUC(this.appObject);\r\n makeShowSpinnerUC(this.appObject);\r\n\r\n // Result submission\r\n makeSubmitResultUC(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all presentation models for the Dispatcher Feature.\r\n *\r\n * Currently no presentation models are required for the dispatcher feature\r\n * as it primarily handles business logic and communication with the host.\r\n */\r\n setupPMs(): void {\r\n // TODO: Create presentation models if needed for dispatcher UI components\r\n }\r\n\r\n /**\r\n * Performs any final setup operations after all components are initialized.\r\n *\r\n * This method is called after entities, use cases, and presentation models\r\n * have been set up. Currently no additional setup is required for this feature.\r\n */\r\n finalSetup(): void {\r\n // No additional setup required for this feature\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new DispatcherFeatureFactory.\r\n *\r\n * This function provides the same functionality as the legacy setupDispatchers\r\n * function but follows the Clean Architecture pattern with proper separation\r\n * of concerns and domain-driven design principles.\r\n *\r\n * @param appObjectRepo The AppObjectRepo to create the dispatcher AppObject from\r\n * @param hostHandler The handler function for processing dispatched requests\r\n * @returns A new DispatcherFeatureFactory instance\r\n */\r\nexport function makeDispatcherFeatureFactory(\r\n appObjectRepo: AppObjectRepo,\r\n hostHandler: Handler,\r\n): DispatcherFeatureFactory {\r\n const appObject = appObjectRepo.getOrCreate(\"App Dispatcher\");\r\n return new DispatcherFeatureFactory(appObject, hostHandler);\r\n}\r\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { makeAppObjectRepo } from "@vived/core";
|
|
2
|
+
import { SubmitActivityAssetUC, submitActivityAsset } from "../UC";
|
|
3
|
+
import { makeDispatcherFeatureFactory } from "./DispatcherFeatureFactory";
|
|
4
|
+
function makeTestRig() {
|
|
5
|
+
const appObjects = makeAppObjectRepo();
|
|
6
|
+
const hostHandler = jest.fn((request) => {
|
|
7
|
+
if (request.type === "SUBMIT_ACTIVITY_ASSET") {
|
|
8
|
+
request.payload.callback("anAssetID");
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const factory = makeDispatcherFeatureFactory(appObjects, hostHandler);
|
|
12
|
+
factory.setupEntities();
|
|
13
|
+
factory.setupUCs();
|
|
14
|
+
const testFile = new File(["test"], "model.glb");
|
|
15
|
+
return { appObjects, hostHandler, testFile };
|
|
16
|
+
}
|
|
17
|
+
describe("DispatcherFeatureFactory", () => {
|
|
18
|
+
it("Sets up the SubmitActivityAssetUC", () => {
|
|
19
|
+
const { appObjects } = makeTestRig();
|
|
20
|
+
expect(SubmitActivityAssetUC.get(appObjects)).toBeDefined();
|
|
21
|
+
});
|
|
22
|
+
it("Submits an activity asset to the host and resolves with its id", async () => {
|
|
23
|
+
const { appObjects, hostHandler, testFile } = makeTestRig();
|
|
24
|
+
const id = await submitActivityAsset(testFile, appObjects);
|
|
25
|
+
expect(hostHandler).toHaveBeenCalledTimes(1);
|
|
26
|
+
const request = hostHandler.mock.calls[0][0];
|
|
27
|
+
expect(request.type).toEqual("SUBMIT_ACTIVITY_ASSET");
|
|
28
|
+
expect(request.version).toEqual(1);
|
|
29
|
+
expect(request.payload.assetFile).toBe(testFile);
|
|
30
|
+
expect(id).toEqual("anAssetID");
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=DispatcherFeatureFactory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DispatcherFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/DispatcherFeatureFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAW,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAE1E,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,4BAA4B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACtE,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEnB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAEjD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAErC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE5D,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAE,OAAO,CAAC,OAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Request } from \"@vived/core\";\r\nimport { SubmitActivityAssetUC, submitActivityAsset } from \"../UC\";\r\nimport { makeDispatcherFeatureFactory } from \"./DispatcherFeatureFactory\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const hostHandler = jest.fn((request: Request) => {\r\n if (request.type === \"SUBMIT_ACTIVITY_ASSET\") {\r\n (request.payload as any).callback(\"anAssetID\");\r\n }\r\n });\r\n\r\n const factory = makeDispatcherFeatureFactory(appObjects, hostHandler);\r\n factory.setupEntities();\r\n factory.setupUCs();\r\n\r\n const testFile = new File([\"test\"], \"model.glb\");\r\n\r\n return { appObjects, hostHandler, testFile };\r\n}\r\n\r\ndescribe(\"DispatcherFeatureFactory\", () => {\r\n it(\"Sets up the SubmitActivityAssetUC\", () => {\r\n const { appObjects } = makeTestRig();\r\n\r\n expect(SubmitActivityAssetUC.get(appObjects)).toBeDefined();\r\n });\r\n\r\n it(\"Submits an activity asset to the host and resolves with its id\", async () => {\r\n const { appObjects, hostHandler, testFile } = makeTestRig();\r\n\r\n const id = await submitActivityAsset(testFile, appObjects);\r\n\r\n expect(hostHandler).toHaveBeenCalledTimes(1);\r\n const request = hostHandler.mock.calls[0][0];\r\n expect(request.type).toEqual(\"SUBMIT_ACTIVITY_ASSET\");\r\n expect(request.version).toEqual(1);\r\n expect((request.payload as any).assetFile).toBe(testFile);\r\n expect(id).toEqual(\"anAssetID\");\r\n });\r\n});\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { makeAppDispatcher } from "../Entities";
|
|
2
|
-
import { makeAppIsReadyUC, makeDispatchStartZSpaceUC, makeDispatchStateChangeUC, makeDispatchStopZSpaceUC, makeGetAssetBlobURLUC, makeGetAssetFolderURLUC, makeGetAssetMetaUC, makeGetAssetsForOwnerUC, makeGetAssetStreamURLUC, makeGetLinkedAssetsUC, makeGoToNextStateUC, makeGoToPreviousStateUC, makeHasNextStateUC, makeHasPreviousStateUC, makeIsAssetFetchedUC, makeIsZSpaceAvailableUC, makeLogUC, makeRegisterExternalStylesheetsUC, makeShowAlertUC, makeShowConfirmUC, makeShowMarkdownEditorUC, makeShowSelectModelUC, makeShowSpinnerUC, makeStateHasChangedUC, makeStateIsCompleteUC, makeSubmitResultUC, } from "../UC";
|
|
2
|
+
import { makeAppIsReadyUC, makeDispatchStartZSpaceUC, makeDispatchStateChangeUC, makeDispatchStopZSpaceUC, makeGetAssetBlobURLUC, makeGetAssetFolderURLUC, makeGetAssetMetaUC, makeGetAssetsForOwnerUC, makeGetAssetStreamURLUC, makeGetLinkedAssetsUC, makeGoToNextStateUC, makeGoToPreviousStateUC, makeHasNextStateUC, makeHasPreviousStateUC, makeIsAssetFetchedUC, makeIsZSpaceAvailableUC, makeLogUC, makeRegisterExternalStylesheetsUC, makeShowAlertUC, makeShowConfirmUC, makeShowMarkdownEditorUC, makeShowSelectModelUC, makeShowSpinnerUC, makeStateHasChangedUC, makeStateIsCompleteUC, makeSubmitActivityAssetUC, makeSubmitResultUC, } from "../UC";
|
|
3
3
|
export function setupDispatchers(appObjects, hostHandler) {
|
|
4
4
|
const dispatcherAO = appObjects.getOrCreate("App Dispatcher");
|
|
5
5
|
makeAppDispatcher(dispatcherAO, hostHandler);
|
|
@@ -28,6 +28,7 @@ export function setupDispatchers(appObjects, hostHandler) {
|
|
|
28
28
|
makeShowSpinnerUC(dispatcherAO);
|
|
29
29
|
makeStateHasChangedUC(dispatcherAO);
|
|
30
30
|
makeStateIsCompleteUC(dispatcherAO);
|
|
31
|
+
makeSubmitActivityAssetUC(dispatcherAO);
|
|
31
32
|
makeSubmitResultUC(dispatcherAO);
|
|
32
33
|
}
|
|
33
34
|
//# sourceMappingURL=setupDispatchers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupDispatchers.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/setupDispatchers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,iCAAiC,EACjC,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,OAAO,CAAC;AAEf,MAAM,UAAU,gBAAgB,CAC9B,UAAyB,EACzB,WAAoB;IAEpB,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE9D,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7C,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/B,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACxC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACxC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACvC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACjC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACjC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACnC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,SAAS,CAAC,YAAY,CAAC,CAAC;IACxB,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAChD,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACvC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import { AppObjectRepo, Handler } from \"@vived/core\";\nimport { makeAppDispatcher } from \"../Entities\";\nimport {\n makeAppIsReadyUC,\n makeDispatchStartZSpaceUC,\n makeDispatchStateChangeUC,\n makeDispatchStopZSpaceUC,\n makeGetAssetBlobURLUC,\n makeGetAssetFolderURLUC,\n makeGetAssetMetaUC,\n makeGetAssetsForOwnerUC,\n makeGetAssetStreamURLUC,\n makeGetLinkedAssetsUC,\n makeGoToNextStateUC,\n makeGoToPreviousStateUC,\n makeHasNextStateUC,\n makeHasPreviousStateUC,\n makeIsAssetFetchedUC,\n makeIsZSpaceAvailableUC,\n makeLogUC,\n makeRegisterExternalStylesheetsUC,\n makeShowAlertUC,\n makeShowConfirmUC,\n makeShowMarkdownEditorUC,\n makeShowSelectModelUC,\n makeShowSpinnerUC,\n makeStateHasChangedUC,\n makeStateIsCompleteUC,\n makeSubmitResultUC,\n} from \"../UC\";\n\nexport function setupDispatchers(\n appObjects: AppObjectRepo,\n hostHandler: Handler,\n) {\n const dispatcherAO = appObjects.getOrCreate(\"App Dispatcher\");\n\n makeAppDispatcher(dispatcherAO, hostHandler);\n\n makeAppIsReadyUC(dispatcherAO);\n makeDispatchStartZSpaceUC(dispatcherAO);\n makeDispatchStateChangeUC(dispatcherAO);\n makeDispatchStopZSpaceUC(dispatcherAO);\n makeGetAssetBlobURLUC(dispatcherAO);\n makeGetAssetFolderURLUC(dispatcherAO);\n makeGetAssetMetaUC(dispatcherAO);\n makeGetAssetsForOwnerUC(dispatcherAO);\n makeGetAssetStreamURLUC(dispatcherAO);\n makeGetLinkedAssetsUC(dispatcherAO);\n makeGoToPreviousStateUC(dispatcherAO);\n makeGoToNextStateUC(dispatcherAO);\n makeHasPreviousStateUC(dispatcherAO);\n makeHasNextStateUC(dispatcherAO);\n makeIsAssetFetchedUC(dispatcherAO);\n makeIsZSpaceAvailableUC(dispatcherAO);\n makeLogUC(dispatcherAO);\n makeRegisterExternalStylesheetsUC(dispatcherAO);\n makeShowAlertUC(dispatcherAO);\n makeShowConfirmUC(dispatcherAO);\n makeShowMarkdownEditorUC(dispatcherAO);\n makeShowSelectModelUC(dispatcherAO);\n makeShowSpinnerUC(dispatcherAO);\n makeStateHasChangedUC(dispatcherAO);\n makeStateIsCompleteUC(dispatcherAO);\n makeSubmitResultUC(dispatcherAO);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"setupDispatchers.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/setupDispatchers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,iCAAiC,EACjC,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,OAAO,CAAC;AAEf,MAAM,UAAU,gBAAgB,CAC9B,UAAyB,EACzB,WAAoB;IAEpB,MAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE9D,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7C,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC/B,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACxC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACxC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACvC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACjC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACrC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IACjC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACnC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACtC,SAAS,CAAC,YAAY,CAAC,CAAC;IACxB,iCAAiC,CAAC,YAAY,CAAC,CAAC;IAChD,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,CAAC,YAAY,CAAC,CAAC;IACvC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAChC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACpC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACxC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import { AppObjectRepo, Handler } from \"@vived/core\";\r\nimport { makeAppDispatcher } from \"../Entities\";\r\nimport {\r\n makeAppIsReadyUC,\r\n makeDispatchStartZSpaceUC,\r\n makeDispatchStateChangeUC,\r\n makeDispatchStopZSpaceUC,\r\n makeGetAssetBlobURLUC,\r\n makeGetAssetFolderURLUC,\r\n makeGetAssetMetaUC,\r\n makeGetAssetsForOwnerUC,\r\n makeGetAssetStreamURLUC,\r\n makeGetLinkedAssetsUC,\r\n makeGoToNextStateUC,\r\n makeGoToPreviousStateUC,\r\n makeHasNextStateUC,\r\n makeHasPreviousStateUC,\r\n makeIsAssetFetchedUC,\r\n makeIsZSpaceAvailableUC,\r\n makeLogUC,\r\n makeRegisterExternalStylesheetsUC,\r\n makeShowAlertUC,\r\n makeShowConfirmUC,\r\n makeShowMarkdownEditorUC,\r\n makeShowSelectModelUC,\r\n makeShowSpinnerUC,\r\n makeStateHasChangedUC,\r\n makeStateIsCompleteUC,\r\n makeSubmitActivityAssetUC,\r\n makeSubmitResultUC,\r\n} from \"../UC\";\r\n\r\nexport function setupDispatchers(\r\n appObjects: AppObjectRepo,\r\n hostHandler: Handler,\r\n) {\r\n const dispatcherAO = appObjects.getOrCreate(\"App Dispatcher\");\r\n\r\n makeAppDispatcher(dispatcherAO, hostHandler);\r\n\r\n makeAppIsReadyUC(dispatcherAO);\r\n makeDispatchStartZSpaceUC(dispatcherAO);\r\n makeDispatchStateChangeUC(dispatcherAO);\r\n makeDispatchStopZSpaceUC(dispatcherAO);\r\n makeGetAssetBlobURLUC(dispatcherAO);\r\n makeGetAssetFolderURLUC(dispatcherAO);\r\n makeGetAssetMetaUC(dispatcherAO);\r\n makeGetAssetsForOwnerUC(dispatcherAO);\r\n makeGetAssetStreamURLUC(dispatcherAO);\r\n makeGetLinkedAssetsUC(dispatcherAO);\r\n makeGoToPreviousStateUC(dispatcherAO);\r\n makeGoToNextStateUC(dispatcherAO);\r\n makeHasPreviousStateUC(dispatcherAO);\r\n makeHasNextStateUC(dispatcherAO);\r\n makeIsAssetFetchedUC(dispatcherAO);\r\n makeIsZSpaceAvailableUC(dispatcherAO);\r\n makeLogUC(dispatcherAO);\r\n makeRegisterExternalStylesheetsUC(dispatcherAO);\r\n makeShowAlertUC(dispatcherAO);\r\n makeShowConfirmUC(dispatcherAO);\r\n makeShowMarkdownEditorUC(dispatcherAO);\r\n makeShowSelectModelUC(dispatcherAO);\r\n makeShowSpinnerUC(dispatcherAO);\r\n makeStateHasChangedUC(dispatcherAO);\r\n makeStateIsCompleteUC(dispatcherAO);\r\n makeSubmitActivityAssetUC(dispatcherAO);\r\n makeSubmitResultUC(dispatcherAO);\r\n}\r\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { makeAppObjectRepo } from "@vived/core";
|
|
2
|
+
import { SubmitActivityAssetUC, submitActivityAsset } from "../UC";
|
|
3
|
+
import { setupDispatchers } from "./setupDispatchers";
|
|
4
|
+
function makeTestRig() {
|
|
5
|
+
const appObjects = makeAppObjectRepo();
|
|
6
|
+
const hostHandler = jest.fn((request) => {
|
|
7
|
+
if (request.type === "SUBMIT_ACTIVITY_ASSET") {
|
|
8
|
+
request.payload.callback("anAssetID");
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
setupDispatchers(appObjects, hostHandler);
|
|
12
|
+
const testFile = new File(["test"], "model.glb");
|
|
13
|
+
return { appObjects, hostHandler, testFile };
|
|
14
|
+
}
|
|
15
|
+
describe("setupDispatchers", () => {
|
|
16
|
+
it("Sets up the SubmitActivityAssetUC", () => {
|
|
17
|
+
const { appObjects } = makeTestRig();
|
|
18
|
+
expect(SubmitActivityAssetUC.get(appObjects)).toBeDefined();
|
|
19
|
+
});
|
|
20
|
+
it("Submits an activity asset to the host and resolves with its id", async () => {
|
|
21
|
+
const { appObjects, hostHandler, testFile } = makeTestRig();
|
|
22
|
+
const id = await submitActivityAsset(testFile, appObjects);
|
|
23
|
+
expect(hostHandler).toHaveBeenCalledTimes(1);
|
|
24
|
+
const request = hostHandler.mock.calls[0][0];
|
|
25
|
+
expect(request.type).toEqual("SUBMIT_ACTIVITY_ASSET");
|
|
26
|
+
expect(request.version).toEqual(1);
|
|
27
|
+
expect(request.payload.assetFile).toBe(testFile);
|
|
28
|
+
expect(id).toEqual("anAssetID");
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=setupDispatchers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupDispatchers.test.js","sourceRoot":"","sources":["../../../../src/Dispatcher/Factories/setupDispatchers.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAW,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,OAAgB,EAAE,EAAE;QAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE1C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;IAEjD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC/C,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAErC,MAAM,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE5D,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAE,OAAO,CAAC,OAAe,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { makeAppObjectRepo, Request } from \"@vived/core\";\r\nimport { SubmitActivityAssetUC, submitActivityAsset } from \"../UC\";\r\nimport { setupDispatchers } from \"./setupDispatchers\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const hostHandler = jest.fn((request: Request) => {\r\n if (request.type === \"SUBMIT_ACTIVITY_ASSET\") {\r\n (request.payload as any).callback(\"anAssetID\");\r\n }\r\n });\r\n\r\n setupDispatchers(appObjects, hostHandler);\r\n\r\n const testFile = new File([\"test\"], \"model.glb\");\r\n\r\n return { appObjects, hostHandler, testFile };\r\n}\r\n\r\ndescribe(\"setupDispatchers\", () => {\r\n it(\"Sets up the SubmitActivityAssetUC\", () => {\r\n const { appObjects } = makeTestRig();\r\n\r\n expect(SubmitActivityAssetUC.get(appObjects)).toBeDefined();\r\n });\r\n\r\n it(\"Submits an activity asset to the host and resolves with its id\", async () => {\r\n const { appObjects, hostHandler, testFile } = makeTestRig();\r\n\r\n const id = await submitActivityAsset(testFile, appObjects);\r\n\r\n expect(hostHandler).toHaveBeenCalledTimes(1);\r\n const request = hostHandler.mock.calls[0][0];\r\n expect(request.type).toEqual(\"SUBMIT_ACTIVITY_ASSET\");\r\n expect(request.version).toEqual(1);\r\n expect((request.payload as any).assetFile).toBe(testFile);\r\n expect(id).toEqual(\"anAssetID\");\r\n });\r\n});\r\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { DomainFactory } from "@vived/core";
|
|
2
|
+
import { makeEnvironmentEntity } from "../Entities/Environment";
|
|
3
|
+
import { makeEnvironmentalIntensityPM } from "../PMs/EnvironmentalIntensityPM";
|
|
4
|
+
import { makeTexturalEnvironmentPM } from "../PMs/TexturalEnvironmentPM";
|
|
5
|
+
import { SerializeEnvironment } from "../UCs/SerializeEnvironment";
|
|
6
|
+
import { makeSetEnvironmentIntensityUC } from "../UCs/SetEnvironmentIntensityUC";
|
|
7
|
+
import { makeSetTexturalEnvironmentUC } from "../UCs/SetTexturalEnvironmentUC";
|
|
8
|
+
/**
|
|
9
|
+
* Factory responsible for setting up the Environment Feature domain components.
|
|
10
|
+
*
|
|
11
|
+
* Builds the same components as the legacy setupEnvironments function, split
|
|
12
|
+
* into the DomainFactory phases.
|
|
13
|
+
*
|
|
14
|
+
* @extends DomainFactory
|
|
15
|
+
*/
|
|
16
|
+
export class EnvironmentFeatureFactory extends DomainFactory {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.factoryName = "EnvironmentFeatureFactory";
|
|
20
|
+
}
|
|
21
|
+
setupEntities() {
|
|
22
|
+
makeEnvironmentEntity(this.appObject);
|
|
23
|
+
}
|
|
24
|
+
setupUCs() {
|
|
25
|
+
makeSetTexturalEnvironmentUC(this.appObject);
|
|
26
|
+
new SerializeEnvironment(this.appObject);
|
|
27
|
+
makeSetEnvironmentIntensityUC(this.appObject);
|
|
28
|
+
}
|
|
29
|
+
setupPMs() {
|
|
30
|
+
makeTexturalEnvironmentPM(this.appObject);
|
|
31
|
+
makeEnvironmentalIntensityPM(this.appObject);
|
|
32
|
+
}
|
|
33
|
+
finalSetup() {
|
|
34
|
+
// No final setup needed
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Factory function to create a new EnvironmentFeatureFactory
|
|
39
|
+
* @param appObjects The AppObjectRepo to get or create the Environments AppObject from
|
|
40
|
+
* @returns A new EnvironmentFeatureFactory instance
|
|
41
|
+
*/
|
|
42
|
+
export function makeEnvironmentFeatureFactory(appObjects) {
|
|
43
|
+
return new EnvironmentFeatureFactory(appObjects.getOrCreate("Environments"));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=EnvironmentFeatureFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvironmentFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Environment/Factories/EnvironmentFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E;;;;;;;GAOG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAAa;IAA5D;;QACE,gBAAW,GAAG,2BAA2B,CAAC;IAoB5C,CAAC;IAlBC,aAAa;QACX,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,QAAQ;QACN,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ;QACN,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,wBAAwB;IAC1B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAAyB;IAEzB,OAAO,IAAI,yBAAyB,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;AAC/E,CAAC","sourcesContent":["import { AppObjectRepo, DomainFactory } from \"@vived/core\";\r\nimport { makeEnvironmentEntity } from \"../Entities/Environment\";\r\nimport { makeEnvironmentalIntensityPM } from \"../PMs/EnvironmentalIntensityPM\";\r\nimport { makeTexturalEnvironmentPM } from \"../PMs/TexturalEnvironmentPM\";\r\nimport { SerializeEnvironment } from \"../UCs/SerializeEnvironment\";\r\nimport { makeSetEnvironmentIntensityUC } from \"../UCs/SetEnvironmentIntensityUC\";\r\nimport { makeSetTexturalEnvironmentUC } from \"../UCs/SetTexturalEnvironmentUC\";\r\n\r\n/**\r\n * Factory responsible for setting up the Environment Feature domain components.\r\n *\r\n * Builds the same components as the legacy setupEnvironments function, split\r\n * into the DomainFactory phases.\r\n *\r\n * @extends DomainFactory\r\n */\r\nexport class EnvironmentFeatureFactory extends DomainFactory {\r\n factoryName = \"EnvironmentFeatureFactory\";\r\n\r\n setupEntities(): void {\r\n makeEnvironmentEntity(this.appObject);\r\n }\r\n\r\n setupUCs(): void {\r\n makeSetTexturalEnvironmentUC(this.appObject);\r\n new SerializeEnvironment(this.appObject);\r\n makeSetEnvironmentIntensityUC(this.appObject);\r\n }\r\n\r\n setupPMs(): void {\r\n makeTexturalEnvironmentPM(this.appObject);\r\n makeEnvironmentalIntensityPM(this.appObject);\r\n }\r\n\r\n finalSetup(): void {\r\n // No final setup needed\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new EnvironmentFeatureFactory\r\n * @param appObjects The AppObjectRepo to get or create the Environments AppObject from\r\n * @returns A new EnvironmentFeatureFactory instance\r\n */\r\nexport function makeEnvironmentFeatureFactory(\r\n appObjects: AppObjectRepo,\r\n): EnvironmentFeatureFactory {\r\n return new EnvironmentFeatureFactory(appObjects.getOrCreate(\"Environments\"));\r\n}\r\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DomainFactory, makeAppObjectRepo, makeDomainFactoryRepo, } from "@vived/core";
|
|
2
|
+
import { makeStateMachineFeatureFactory } from "../../StateMachine";
|
|
3
|
+
import { makeEnvironmentFeatureFactory } from "./EnvironmentFeatureFactory";
|
|
4
|
+
import { setupEnvironments } from "./setupEnvironments";
|
|
5
|
+
function makeTestRig() {
|
|
6
|
+
const appObjects = makeAppObjectRepo();
|
|
7
|
+
const factories = makeDomainFactoryRepo(appObjects);
|
|
8
|
+
const mockError = jest.fn();
|
|
9
|
+
appObjects.submitError = mockError;
|
|
10
|
+
return { appObjects, factories, mockError };
|
|
11
|
+
}
|
|
12
|
+
function componentTypes(appObjects) {
|
|
13
|
+
const types = {};
|
|
14
|
+
appObjects.getAll().forEach((ao) => {
|
|
15
|
+
types[ao.id] = ao
|
|
16
|
+
.allComponents()
|
|
17
|
+
.filter((c) => !(c instanceof DomainFactory))
|
|
18
|
+
.map((c) => c.type)
|
|
19
|
+
.sort();
|
|
20
|
+
});
|
|
21
|
+
return types;
|
|
22
|
+
}
|
|
23
|
+
describe("EnvironmentFeatureFactory", () => {
|
|
24
|
+
it("Builds the same components as setupEnvironments", () => {
|
|
25
|
+
const legacy = makeTestRig();
|
|
26
|
+
makeStateMachineFeatureFactory(legacy.appObjects);
|
|
27
|
+
legacy.factories.setupDomain();
|
|
28
|
+
setupEnvironments(legacy.appObjects);
|
|
29
|
+
const { appObjects, factories, mockError } = makeTestRig();
|
|
30
|
+
makeStateMachineFeatureFactory(appObjects);
|
|
31
|
+
makeEnvironmentFeatureFactory(appObjects);
|
|
32
|
+
factories.setupDomain();
|
|
33
|
+
expect(componentTypes(appObjects)).toEqual(componentTypes(legacy.appObjects));
|
|
34
|
+
expect(mockError).not.toHaveBeenCalled();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=EnvironmentFeatureFactory.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvironmentFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/Environment/Factories/EnvironmentFeatureFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;IAEnC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,UAAyB;IAC/C,MAAM,KAAK,GAA+B,EAAE,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE;aACd,aAAa,EAAE;aACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC;QAC7B,8BAA8B,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC/B,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,CAAC;QAC3D,8BAA8B,CAAC,UAAU,CAAC,CAAC;QAC3C,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC1C,SAAS,CAAC,WAAW,EAAE,CAAC;QAExB,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CACxC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAClC,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {\r\n AppObjectRepo,\r\n DomainFactory,\r\n makeAppObjectRepo,\r\n makeDomainFactoryRepo,\r\n} from \"@vived/core\";\r\nimport { makeStateMachineFeatureFactory } from \"../../StateMachine\";\r\nimport { makeEnvironmentFeatureFactory } from \"./EnvironmentFeatureFactory\";\r\nimport { setupEnvironments } from \"./setupEnvironments\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const factories = makeDomainFactoryRepo(appObjects);\r\n\r\n const mockError = jest.fn();\r\n appObjects.submitError = mockError;\r\n\r\n return { appObjects, factories, mockError };\r\n}\r\n\r\nfunction componentTypes(appObjects: AppObjectRepo) {\r\n const types: { [id: string]: string[] } = {};\r\n appObjects.getAll().forEach((ao) => {\r\n types[ao.id] = ao\r\n .allComponents()\r\n .filter((c) => !(c instanceof DomainFactory))\r\n .map((c) => c.type)\r\n .sort();\r\n });\r\n return types;\r\n}\r\n\r\ndescribe(\"EnvironmentFeatureFactory\", () => {\r\n it(\"Builds the same components as setupEnvironments\", () => {\r\n const legacy = makeTestRig();\r\n makeStateMachineFeatureFactory(legacy.appObjects);\r\n legacy.factories.setupDomain();\r\n setupEnvironments(legacy.appObjects);\r\n\r\n const { appObjects, factories, mockError } = makeTestRig();\r\n makeStateMachineFeatureFactory(appObjects);\r\n makeEnvironmentFeatureFactory(appObjects);\r\n factories.setupDomain();\r\n\r\n expect(componentTypes(appObjects)).toEqual(\r\n componentTypes(legacy.appObjects),\r\n );\r\n expect(mockError).not.toHaveBeenCalled();\r\n });\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Environment/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Environment/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC","sourcesContent":["export * from \"./setupEnvironments\";\r\nexport * from \"./EnvironmentFeatureFactory\";\r\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { makeEnvironmentEntity } from "../Entities/Environment";
|
|
2
|
+
import { makeEnvironmentalIntensityPM } from "../PMs/EnvironmentalIntensityPM";
|
|
3
|
+
import { makeTexturalEnvironmentPM } from "../PMs/TexturalEnvironmentPM";
|
|
4
|
+
import { SerializeEnvironment } from "../UCs/SerializeEnvironment";
|
|
5
|
+
import { makeSetEnvironmentIntensityUC } from "../UCs/SetEnvironmentIntensityUC";
|
|
6
|
+
import { makeSetTexturalEnvironmentUC } from "../UCs/SetTexturalEnvironmentUC";
|
|
7
|
+
export function setupEnvironments(appObjects) {
|
|
8
|
+
const ao = appObjects.getOrCreate("Environments");
|
|
9
|
+
makeEnvironmentEntity(ao);
|
|
10
|
+
makeSetTexturalEnvironmentUC(ao);
|
|
11
|
+
new SerializeEnvironment(ao);
|
|
12
|
+
makeSetEnvironmentIntensityUC(ao);
|
|
13
|
+
makeTexturalEnvironmentPM(ao);
|
|
14
|
+
makeEnvironmentalIntensityPM(ao);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=setupEnvironments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupEnvironments.js","sourceRoot":"","sources":["../../../../src/Environment/Factories/setupEnvironments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,UAAU,iBAAiB,CAAC,UAAyB;IACzD,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAElD,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC7B,6BAA6B,CAAC,EAAE,CAAC,CAAC;IAElC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,4BAA4B,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { makeEnvironmentEntity } from \"../Entities/Environment\";\r\nimport { makeEnvironmentalIntensityPM } from \"../PMs/EnvironmentalIntensityPM\";\r\nimport { makeTexturalEnvironmentPM } from \"../PMs/TexturalEnvironmentPM\";\r\nimport { SerializeEnvironment } from \"../UCs/SerializeEnvironment\";\r\nimport { makeSetEnvironmentIntensityUC } from \"../UCs/SetEnvironmentIntensityUC\";\r\nimport { makeSetTexturalEnvironmentUC } from \"../UCs/SetTexturalEnvironmentUC\";\r\n\r\nexport function setupEnvironments(appObjects: AppObjectRepo) {\r\n const ao = appObjects.getOrCreate(\"Environments\");\r\n\r\n makeEnvironmentEntity(ao);\r\n\r\n makeSetTexturalEnvironmentUC(ao);\r\n new SerializeEnvironment(ao);\r\n makeSetEnvironmentIntensityUC(ao);\r\n\r\n makeTexturalEnvironmentPM(ao);\r\n makeEnvironmentalIntensityPM(ao);\r\n}\r\n"]}
|