@vived/app 6.7.1 → 6.9.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 +145 -1
- package/dist/cjs/BaseApp/UC/RenderCanvasUC.js.map +1 -1
- package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
- package/dist/cjs/Challenge/Factories/ChallengeFeatureFactory.js.map +1 -1
- package/dist/cjs/Challenge/Factories/ChallengeFeatureFactory.test.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/EventSystem/Entities/EventEntity.js.map +1 -1
- package/dist/cjs/EventSystem/Entities/EventEntity.test.js +4 -1
- package/dist/cjs/EventSystem/Entities/EventEntity.test.js.map +1 -1
- package/dist/cjs/EventSystem/Entities/index.js.map +1 -1
- package/dist/cjs/EventSystem/EventSystem.integration.test.js.map +1 -1
- package/dist/cjs/EventSystem/Factories/EventSystemFeatureFactory.js.map +1 -1
- package/dist/cjs/EventSystem/Factories/EventSystemFeatureFactory.test.js.map +1 -1
- package/dist/cjs/EventSystem/Factories/index.js.map +1 -1
- package/dist/cjs/EventSystem/Mocks/MockEventEntity.js.map +1 -1
- package/dist/cjs/EventSystem/Mocks/index.js.map +1 -1
- package/dist/cjs/EventSystem/index.js.map +1 -1
- package/dist/cjs/EventSystem/types.js.map +1 -1
- package/dist/cjs/LabelDrop/Factories/LabelDropFeatureFactory.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/SubmitLabelDropResultUC.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/SubmitLabelDropResultUC.test.js.map +1 -1
- package/dist/cjs/LabelDrop/UseCases/index.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/index.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureAdapter.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureAdapter.test.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureAuthoringAdapter.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureAuthoringAdapter.test.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureHintAdapter.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureHintAdapter.test.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureProgressAdapter.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureProgressAdapter.test.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.js.map +1 -1
- package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.test.js +3 -1
- package/dist/cjs/Procedure/Adapters/procedureQuizResultAdapter.test.js.map +1 -1
- package/dist/cjs/Procedure/Entities/HintRegistry.js.map +1 -1
- package/dist/cjs/Procedure/Entities/HintRegistry.test.js.map +1 -1
- package/dist/cjs/Procedure/Entities/ProcedureEntity.js.map +1 -1
- package/dist/cjs/Procedure/Entities/ProcedureEntity.test.js +1 -12
- package/dist/cjs/Procedure/Entities/ProcedureEntity.test.js.map +1 -1
- package/dist/cjs/Procedure/Entities/index.js.map +1 -1
- package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.js.map +1 -1
- package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.test.js +3 -1
- package/dist/cjs/Procedure/Factories/ProcedureFeatureFactory.test.js.map +1 -1
- package/dist/cjs/Procedure/Factories/index.js.map +1 -1
- package/dist/cjs/Procedure/Mocks/MockProcedureEntity.js.map +1 -1
- package/dist/cjs/Procedure/Mocks/MockProcedurePM.js.map +1 -1
- package/dist/cjs/Procedure/Mocks/index.js.map +1 -1
- package/dist/cjs/Procedure/PM/ProcedurePM.js.map +1 -1
- package/dist/cjs/Procedure/PM/ProcedurePM.test.js +1 -1
- package/dist/cjs/Procedure/PM/ProcedurePM.test.js.map +1 -1
- package/dist/cjs/Procedure/PM/index.js.map +1 -1
- package/dist/cjs/Procedure/ProcedureEventSystem.integration.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/AddProcedureEventUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/AddProcedureEventUC.test.js +1 -4
- package/dist/cjs/Procedure/UCs/AddProcedureEventUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/MoveProcedureEventDownUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/MoveProcedureEventDownUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/MoveProcedureEventUpUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/MoveProcedureEventUpUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RecordProcedureEventUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RecordProcedureEventUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.test.js +22 -4
- package/dist/cjs/Procedure/UCs/RecordProcedureSessionUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RemoveProcedureEventUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/RemoveProcedureEventUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/ResetProcedureProgressUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/ResetProcedureProgressUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SerializeProcedure.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SerializeProcedure.test.js +6 -1
- package/dist/cjs/Procedure/UCs/SerializeProcedure.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureIsQuizUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureIsQuizUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureOrderMattersUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureOrderMattersUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureShowHintsUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SetProcedureShowHintsUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SubmitProcedureQuizUC.js.map +1 -1
- package/dist/cjs/Procedure/UCs/SubmitProcedureQuizUC.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/UpdateProcedureEventsUCHook.js.map +1 -1
- package/dist/cjs/Procedure/UCs/UpdateProcedureEventsUCHook.test.js.map +1 -1
- package/dist/cjs/Procedure/UCs/index.js.map +1 -1
- package/dist/cjs/Procedure/index.js.map +1 -1
- package/dist/cjs/Procedure/types.js.map +1 -1
- package/dist/cjs/RequestHandler/UC/SetThemeColorUC.test.js +9 -0
- package/dist/cjs/RequestHandler/UC/SetThemeColorUC.test.js.map +1 -1
- package/dist/cjs/ThemeColors/Entities/ThemeColors.js +24 -0
- package/dist/cjs/ThemeColors/Entities/ThemeColors.js.map +1 -1
- package/dist/cjs/ThemeColors/Entities/ThemeColors.test.js +20 -0
- package/dist/cjs/ThemeColors/Entities/ThemeColors.test.js.map +1 -1
- package/dist/cjs/TouchController/UC/UpdateTouchInoutBound.test.js.map +1 -1
- package/dist/cjs/TouchController/UC/UpdateTouchInputBound.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/BaseApp/UC/RenderCanvasUC.js.map +1 -1
- package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
- package/dist/esm/Challenge/Factories/ChallengeFeatureFactory.js.map +1 -1
- package/dist/esm/Challenge/Factories/ChallengeFeatureFactory.test.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/EventSystem/Entities/EventEntity.js.map +1 -1
- package/dist/esm/EventSystem/Entities/EventEntity.test.js +4 -1
- package/dist/esm/EventSystem/Entities/EventEntity.test.js.map +1 -1
- package/dist/esm/EventSystem/Entities/index.js.map +1 -1
- package/dist/esm/EventSystem/EventSystem.integration.test.js.map +1 -1
- package/dist/esm/EventSystem/Factories/EventSystemFeatureFactory.js.map +1 -1
- package/dist/esm/EventSystem/Factories/EventSystemFeatureFactory.test.js.map +1 -1
- package/dist/esm/EventSystem/Factories/index.js.map +1 -1
- package/dist/esm/EventSystem/Mocks/MockEventEntity.js.map +1 -1
- package/dist/esm/EventSystem/Mocks/index.js.map +1 -1
- package/dist/esm/EventSystem/index.js.map +1 -1
- package/dist/esm/EventSystem/types.js.map +1 -1
- package/dist/esm/LabelDrop/Factories/LabelDropFeatureFactory.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/SubmitLabelDropResultUC.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/SubmitLabelDropResultUC.test.js.map +1 -1
- package/dist/esm/LabelDrop/UseCases/index.js.map +1 -1
- package/dist/esm/Procedure/Adapters/index.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureAdapter.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureAdapter.test.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureAuthoringAdapter.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureAuthoringAdapter.test.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureHintAdapter.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureHintAdapter.test.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureProgressAdapter.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureProgressAdapter.test.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.js.map +1 -1
- package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.test.js +3 -1
- package/dist/esm/Procedure/Adapters/procedureQuizResultAdapter.test.js.map +1 -1
- package/dist/esm/Procedure/Entities/HintRegistry.js.map +1 -1
- package/dist/esm/Procedure/Entities/HintRegistry.test.js.map +1 -1
- package/dist/esm/Procedure/Entities/ProcedureEntity.js.map +1 -1
- package/dist/esm/Procedure/Entities/ProcedureEntity.test.js +1 -12
- package/dist/esm/Procedure/Entities/ProcedureEntity.test.js.map +1 -1
- package/dist/esm/Procedure/Entities/index.js.map +1 -1
- package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.js.map +1 -1
- package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.test.js +5 -3
- package/dist/esm/Procedure/Factories/ProcedureFeatureFactory.test.js.map +1 -1
- package/dist/esm/Procedure/Factories/index.js.map +1 -1
- package/dist/esm/Procedure/Mocks/MockProcedureEntity.js.map +1 -1
- package/dist/esm/Procedure/Mocks/MockProcedurePM.js.map +1 -1
- package/dist/esm/Procedure/Mocks/index.js.map +1 -1
- package/dist/esm/Procedure/PM/ProcedurePM.js.map +1 -1
- package/dist/esm/Procedure/PM/ProcedurePM.test.js +2 -2
- package/dist/esm/Procedure/PM/ProcedurePM.test.js.map +1 -1
- package/dist/esm/Procedure/PM/index.js.map +1 -1
- package/dist/esm/Procedure/ProcedureEventSystem.integration.test.js +2 -2
- package/dist/esm/Procedure/ProcedureEventSystem.integration.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/AddProcedureEventUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/AddProcedureEventUC.test.js +3 -6
- package/dist/esm/Procedure/UCs/AddProcedureEventUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/MoveProcedureEventDownUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/MoveProcedureEventUpUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/RecordProcedureEventUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/RecordProcedureEventUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/RecordProcedureEventUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.test.js +22 -4
- package/dist/esm/Procedure/UCs/RecordProcedureSessionUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/RemoveProcedureEventUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/ResetProcedureProgressUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/SerializeProcedure.js.map +1 -1
- package/dist/esm/Procedure/UCs/SerializeProcedure.test.js +8 -3
- package/dist/esm/Procedure/UCs/SerializeProcedure.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.test.js +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureIsQuizUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.test.js +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureOrderMattersUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.test.js +1 -1
- package/dist/esm/Procedure/UCs/SetProcedureShowHintsUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.js.map +1 -1
- package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.test.js +2 -2
- package/dist/esm/Procedure/UCs/SubmitProcedureQuizUC.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.js.map +1 -1
- package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.test.js +1 -1
- package/dist/esm/Procedure/UCs/UpdateProcedureEventsUCHook.test.js.map +1 -1
- package/dist/esm/Procedure/UCs/index.js.map +1 -1
- package/dist/esm/Procedure/index.js.map +1 -1
- package/dist/esm/Procedure/types.js.map +1 -1
- package/dist/esm/RequestHandler/UC/SetThemeColorUC.test.js +9 -0
- package/dist/esm/RequestHandler/UC/SetThemeColorUC.test.js.map +1 -1
- package/dist/esm/ThemeColors/Entities/ThemeColors.js +24 -0
- package/dist/esm/ThemeColors/Entities/ThemeColors.js.map +1 -1
- package/dist/esm/ThemeColors/Entities/ThemeColors.test.js +20 -0
- package/dist/esm/ThemeColors/Entities/ThemeColors.test.js.map +1 -1
- package/dist/esm/TouchController/UC/UpdateTouchInoutBound.test.js.map +1 -1
- package/dist/esm/TouchController/UC/UpdateTouchInputBound.js.map +1 -1
- package/dist/esm/index.js.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/Procedure/Entities/ProcedureEntity.d.ts.map +1 -1
- package/dist/types/Procedure/Mocks/MockProcedureEntity.d.ts.map +1 -1
- package/dist/types/Procedure/UCs/AddProcedureEventUC.d.ts.map +1 -1
- package/dist/types/Procedure/UCs/RecordProcedureSessionUC.d.ts.map +1 -1
- package/dist/types/Procedure/UCs/SetProcedureIsQuizUC.d.ts.map +1 -1
- package/dist/types/Procedure/UCs/SubmitProcedureQuizUC.d.ts.map +1 -1
- package/dist/types/Procedure/types.d.ts.map +1 -1
- package/dist/types/ThemeColors/Entities/ThemeColors.d.ts +12 -0
- package/dist/types/ThemeColors/Entities/ThemeColors.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Dispatcher/README.md +9 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeColors.test.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Entities/ThemeColors.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Color } from \"@vived/core\";\nimport { makeThemeColors, ThemeColorType } from \"./ThemeColors\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const themeColorsAo = appObjects.getOrCreate(\"ThemeColors\");\n const theme = makeThemeColors(themeColorsAo);\n\n const observer = jest.fn();\n theme.addChangeObserver(observer);\n\n return { theme, observer };\n}\n\ndescribe(\"Theme Colors Entity\", () => {\n it(\"Initialzes the color\", () => {\n const { theme } = makeTestRig();\n\n expect(theme.getColorForType(ThemeColorType.primary)).toEqual(\n Color.Hex(\"#00668A\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryContainer)).toEqual(\n Color.Hex(\"#C4E7FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryContainer)).toEqual(\n Color.Hex(\"#001E2C\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryFixed)).toEqual(\n Color.Hex(\"#C4E7FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryFixed)).toEqual(\n Color.Hex(\"#001E2C\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryFixedDim)).toEqual(\n Color.Hex(\"#7BD0FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryFixedVariant)).toEqual(\n Color.Hex(\"#004C69\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondary)).toEqual(\n Color.Hex(\"#4E616D\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondaryContainer)).toEqual(\n Color.Hex(\"#D1E5F4\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondaryContainer)).toEqual(\n Color.Hex(\"#0A1E28\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondaryFixed)).toEqual(\n Color.Hex(\"#0A1E28\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondaryFixedDim)).toEqual(\n Color.Hex(\"#B5C9D7\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.onSecondaryFixedVariant),\n ).toEqual(Color.Hex(\"#374955\"));\n expect(theme.getColorForType(ThemeColorType.tertiary)).toEqual(\n Color.Hex(\"#605A7D\"),\n );\n expect(theme.getColorForType(ThemeColorType.onTertiary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryContainer)).toEqual(\n Color.Hex(\"#E6DEFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onTertiaryContainer)).toEqual(\n Color.Hex(\"#1D1736\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryFixed)).toEqual(\n Color.Hex(\"#E6DEFF\"),\n );\n\n expect(theme.getColorForType(ThemeColorType.onTertiaryFixed)).toEqual(\n Color.Hex(\"#1D1736\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryFixedDim)).toEqual(\n Color.Hex(\"#CAC1E9\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.onTertiaryFixedVariant),\n ).toEqual(Color.Hex(\"#484264\"));\n expect(theme.getColorForType(ThemeColorType.error)).toEqual(\n Color.Hex(\"#BA1A1A\"),\n );\n expect(theme.getColorForType(ThemeColorType.onError)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.errorContainer)).toEqual(\n Color.Hex(\"#FFDAD6\"),\n );\n expect(theme.getColorForType(ThemeColorType.onErrorContainer)).toEqual(\n Color.Hex(\"#410002\"),\n );\n expect(theme.getColorForType(ThemeColorType.outline)).toEqual(\n Color.Hex(\"#71787D\"),\n );\n expect(theme.getColorForType(ThemeColorType.background)).toEqual(\n Color.Hex(\"#FBFCFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onBackground)).toEqual(\n Color.Hex(\"#191C1E\"),\n );\n expect(theme.getColorForType(ThemeColorType.surface)).toEqual(\n Color.Hex(\"#F8F9FC\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSurface)).toEqual(\n Color.Hex(\"#191C1E\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceVariant)).toEqual(\n Color.Hex(\"#DCE3E9\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSurfaceVariant)).toEqual(\n Color.Hex(\"#41484D\"),\n );\n expect(theme.getColorForType(ThemeColorType.inverseSurface)).toEqual(\n Color.Hex(\"#2E3133\"),\n );\n expect(theme.getColorForType(ThemeColorType.inverseOnSurface)).toEqual(\n Color.Hex(\"#F0F1F3\"),\n );\n expect(theme.getColorForType(ThemeColorType.inversePrimary)).toEqual(\n Color.Hex(\"#7BD0FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.shadow)).toEqual(\n Color.Hex(\"#000000\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceTint)).toEqual(\n Color.Hex(\"#00668A\"),\n );\n expect(theme.getColorForType(ThemeColorType.outlineVariant)).toEqual(\n Color.Hex(\"#C0C7CD\"),\n );\n expect(theme.getColorForType(ThemeColorType.scrim)).toEqual(\n Color.Hex(\"#000000\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.surfaceContainerHighest),\n ).toEqual(Color.Hex(\"#E1E2E5\"));\n expect(theme.getColorForType(ThemeColorType.surfaceContainerHigh)).toEqual(\n Color.Hex(\"#E7E8EA\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceContainer)).toEqual(\n Color.Hex(\"#EDEEF0\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceContainerLow)).toEqual(\n Color.Hex(\"#F3F3F6\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.surfaceContainerLowest),\n ).toEqual(Color.Hex(\"#FFFFFF\"));\n expect(theme.getColorForType(ThemeColorType.surfaceBright)).toEqual(\n Color.Hex(\"#F8F9FC\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceDim)).toEqual(\n Color.Hex(\"#D9DADC\"),\n );\n });\n\n it(\"Sets the color for a type and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n const c = Color.RGB(10, 20, 30);\n\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n\n expect(observer).toHaveBeenCalledTimes(1);\n expect(theme.getColorForType(ThemeColorType.onBackground)).toEqual(c);\n });\n\n it(\"Sets the color by hex for a type and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n\n expect(observer).toHaveBeenCalledTimes(1);\n expect(theme.getColorForType(ThemeColorType.onBackground).hex).toEqual(\n \"#00668a\",\n );\n });\n\n it(\"Sets the colors by hex for a set of colors and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n const colorSet = new Map();\n colorSet.set(ThemeColorType.onBackground, \"00668a\");\n colorSet.set(ThemeColorType.onPrimary, \"00668b\");\n colorSet.set(ThemeColorType.onPrimaryContainer, \"00668c\");\n colorSet.set(ThemeColorType.onPrimaryFixedVariant, \"00668d\");\n\n theme.setColorHexForSet(colorSet);\n\n expect(observer).toHaveBeenCalledTimes(4);\n expect(theme.getColorForType(ThemeColorType.onBackground).hex).toEqual(\n \"#00668a\",\n );\n expect(theme.getColorForType(ThemeColorType.onPrimary).hex).toEqual(\n \"#00668b\",\n );\n expect(\n theme.getColorForType(ThemeColorType.onPrimaryContainer).hex,\n ).toEqual(\"#00668c\");\n expect(\n theme.getColorForType(ThemeColorType.onPrimaryFixedVariant).hex,\n ).toEqual(\"#00668d\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ThemeColors.test.js","sourceRoot":"","sources":["../../../../src/ThemeColors/Entities/ThemeColors.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Color } from \"@vived/core\";\nimport { makeThemeColors, ThemeColorType } from \"./ThemeColors\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n const themeColorsAo = appObjects.getOrCreate(\"ThemeColors\");\n const theme = makeThemeColors(themeColorsAo);\n\n const observer = jest.fn();\n theme.addChangeObserver(observer);\n\n return { theme, observer };\n}\n\ndescribe(\"Theme Colors Entity\", () => {\n it(\"Initialzes the color\", () => {\n const { theme } = makeTestRig();\n\n expect(theme.getColorForType(ThemeColorType.primary)).toEqual(\n Color.Hex(\"#00668A\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryContainer)).toEqual(\n Color.Hex(\"#C4E7FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryContainer)).toEqual(\n Color.Hex(\"#001E2C\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryFixed)).toEqual(\n Color.Hex(\"#C4E7FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryFixed)).toEqual(\n Color.Hex(\"#001E2C\"),\n );\n expect(theme.getColorForType(ThemeColorType.primaryFixedDim)).toEqual(\n Color.Hex(\"#7BD0FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onPrimaryFixedVariant)).toEqual(\n Color.Hex(\"#004C69\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondary)).toEqual(\n Color.Hex(\"#4E616D\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondaryContainer)).toEqual(\n Color.Hex(\"#D1E5F4\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondaryContainer)).toEqual(\n Color.Hex(\"#0A1E28\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSecondaryFixed)).toEqual(\n Color.Hex(\"#0A1E28\"),\n );\n expect(theme.getColorForType(ThemeColorType.secondaryFixedDim)).toEqual(\n Color.Hex(\"#B5C9D7\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.onSecondaryFixedVariant),\n ).toEqual(Color.Hex(\"#374955\"));\n expect(theme.getColorForType(ThemeColorType.tertiary)).toEqual(\n Color.Hex(\"#605A7D\"),\n );\n expect(theme.getColorForType(ThemeColorType.onTertiary)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryContainer)).toEqual(\n Color.Hex(\"#E6DEFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onTertiaryContainer)).toEqual(\n Color.Hex(\"#1D1736\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryFixed)).toEqual(\n Color.Hex(\"#E6DEFF\"),\n );\n\n expect(theme.getColorForType(ThemeColorType.onTertiaryFixed)).toEqual(\n Color.Hex(\"#1D1736\"),\n );\n expect(theme.getColorForType(ThemeColorType.tertiaryFixedDim)).toEqual(\n Color.Hex(\"#CAC1E9\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.onTertiaryFixedVariant),\n ).toEqual(Color.Hex(\"#484264\"));\n expect(theme.getColorForType(ThemeColorType.error)).toEqual(\n Color.Hex(\"#BA1A1A\"),\n );\n expect(theme.getColorForType(ThemeColorType.onError)).toEqual(\n Color.Hex(\"#FFFFFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.errorContainer)).toEqual(\n Color.Hex(\"#FFDAD6\"),\n );\n expect(theme.getColorForType(ThemeColorType.onErrorContainer)).toEqual(\n Color.Hex(\"#410002\"),\n );\n expect(theme.getColorForType(ThemeColorType.outline)).toEqual(\n Color.Hex(\"#71787D\"),\n );\n expect(theme.getColorForType(ThemeColorType.background)).toEqual(\n Color.Hex(\"#FBFCFF\"),\n );\n expect(theme.getColorForType(ThemeColorType.onBackground)).toEqual(\n Color.Hex(\"#191C1E\"),\n );\n expect(theme.getColorForType(ThemeColorType.surface)).toEqual(\n Color.Hex(\"#F8F9FC\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSurface)).toEqual(\n Color.Hex(\"#191C1E\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceVariant)).toEqual(\n Color.Hex(\"#DCE3E9\"),\n );\n expect(theme.getColorForType(ThemeColorType.onSurfaceVariant)).toEqual(\n Color.Hex(\"#41484D\"),\n );\n expect(theme.getColorForType(ThemeColorType.inverseSurface)).toEqual(\n Color.Hex(\"#2E3133\"),\n );\n expect(theme.getColorForType(ThemeColorType.inverseOnSurface)).toEqual(\n Color.Hex(\"#F0F1F3\"),\n );\n expect(theme.getColorForType(ThemeColorType.inversePrimary)).toEqual(\n Color.Hex(\"#7BD0FF\"),\n );\n expect(theme.getColorForType(ThemeColorType.shadow)).toEqual(\n Color.Hex(\"#000000\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceTint)).toEqual(\n Color.Hex(\"#00668A\"),\n );\n expect(theme.getColorForType(ThemeColorType.outlineVariant)).toEqual(\n Color.Hex(\"#C0C7CD\"),\n );\n expect(theme.getColorForType(ThemeColorType.scrim)).toEqual(\n Color.Hex(\"#000000\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.surfaceContainerHighest),\n ).toEqual(Color.Hex(\"#E1E2E5\"));\n expect(theme.getColorForType(ThemeColorType.surfaceContainerHigh)).toEqual(\n Color.Hex(\"#E7E8EA\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceContainer)).toEqual(\n Color.Hex(\"#EDEEF0\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceContainerLow)).toEqual(\n Color.Hex(\"#F3F3F6\"),\n );\n expect(\n theme.getColorForType(ThemeColorType.surfaceContainerLowest),\n ).toEqual(Color.Hex(\"#FFFFFF\"));\n expect(theme.getColorForType(ThemeColorType.surfaceBright)).toEqual(\n Color.Hex(\"#F8F9FC\"),\n );\n expect(theme.getColorForType(ThemeColorType.surfaceDim)).toEqual(\n Color.Hex(\"#D9DADC\"),\n );\n });\n\n it(\"Initializes the status colors to the Host's light theme\", () => {\n const { theme } = makeTestRig();\n\n const expected: [ThemeColorType, string][] = [\n [ThemeColorType.success, \"#1F8A65\"],\n [ThemeColorType.onSuccess, \"#FFFFFF\"],\n [ThemeColorType.successContainer, \"#A8F2D0\"],\n [ThemeColorType.onSuccessContainer, \"#002013\"],\n [ThemeColorType.warning, \"#9A6700\"],\n [ThemeColorType.onWarning, \"#FFFFFF\"],\n [ThemeColorType.warningContainer, \"#FFDEA8\"],\n [ThemeColorType.onWarningContainer, \"#301A00\"],\n [ThemeColorType.info, \"#0060A9\"],\n [ThemeColorType.onInfo, \"#FFFFFF\"],\n [ThemeColorType.infoContainer, \"#D3E4FF\"],\n [ThemeColorType.onInfoContainer, \"#001C38\"],\n ];\n\n expected.forEach(([type, hex]) => {\n expect(theme.getColorForType(type)).toEqual(Color.Hex(hex));\n });\n });\n\n it(\"Sets the color for a type and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n const c = Color.RGB(10, 20, 30);\n\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n theme.setColorForType(ThemeColorType.onBackground, c);\n\n expect(observer).toHaveBeenCalledTimes(1);\n expect(theme.getColorForType(ThemeColorType.onBackground)).toEqual(c);\n });\n\n it(\"Sets the color by hex for a type and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n theme.setColorHexForType(ThemeColorType.onBackground, \"#00668a\");\n\n expect(observer).toHaveBeenCalledTimes(1);\n expect(theme.getColorForType(ThemeColorType.onBackground).hex).toEqual(\n \"#00668a\",\n );\n });\n\n it(\"Sets the colors by hex for a set of colors and notifies\", () => {\n const { theme, observer } = makeTestRig();\n\n const colorSet = new Map();\n colorSet.set(ThemeColorType.onBackground, \"00668a\");\n colorSet.set(ThemeColorType.onPrimary, \"00668b\");\n colorSet.set(ThemeColorType.onPrimaryContainer, \"00668c\");\n colorSet.set(ThemeColorType.onPrimaryFixedVariant, \"00668d\");\n\n theme.setColorHexForSet(colorSet);\n\n expect(observer).toHaveBeenCalledTimes(4);\n expect(theme.getColorForType(ThemeColorType.onBackground).hex).toEqual(\n \"#00668a\",\n );\n expect(theme.getColorForType(ThemeColorType.onPrimary).hex).toEqual(\n \"#00668b\",\n );\n expect(\n theme.getColorForType(ThemeColorType.onPrimaryContainer).hex,\n ).toEqual(\"#00668c\");\n expect(\n theme.getColorForType(ThemeColorType.onPrimaryFixedVariant).hex,\n ).toEqual(\"#00668d\");\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateTouchInoutBound.test.js","sourceRoot":"","sources":["../../../../src/TouchController/UC/UpdateTouchInoutBound.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\
|
|
1
|
+
{"version":3,"file":"UpdateTouchInoutBound.test.js","sourceRoot":"","sources":["../../../../src/TouchController/UC/UpdateTouchInoutBound.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n makeFramedContainerPM,\n makeFramedScreenContainer,\n} from \"../../FramedScreen\";\nimport { TouchInputEntity } from \"../Entities\";\nimport { UpdateTouchInputBoundUC } from \"./UpdateTouchInputBound\";\n\nclass MockTouchInput extends TouchInputEntity {\n get eventElement(): HTMLElement | undefined {\n throw new Error(\"Method not implemented.\");\n }\n eventElementBounds?: DOMRect | undefined;\n setEventElement = jest.fn();\n clearInputElement = jest.fn();\n updateInputElementBounds = jest.fn();\n registerController = jest.fn();\n removeController = jest.fn();\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const appAO = appObjects.getOrCreate(\"App\");\n const mockTouchInput = new MockTouchInput(appAO, TouchInputEntity.type);\n\n const containerAO = appObjects.getOrCreate(\"Canvas\");\n const framedContainer = makeFramedScreenContainer(containerAO);\n\n const updateTouchHook = new UpdateTouchInputBoundUC(containerAO);\n\n return { updateTouchHook, mockTouchInput, framedContainer };\n}\n\nfunction makeRigWithoutTouchInput() {\n const appObjects = makeAppObjectRepo();\n\n const mockWarn = jest.fn();\n const mockError = jest.fn();\n appObjects.submitWarning = mockWarn;\n appObjects.submitError = mockError;\n\n const containerAO = appObjects.getOrCreate(\"Canvas\");\n const framedContainer = makeFramedScreenContainer(containerAO);\n\n return { appObjects, containerAO, framedContainer, mockWarn, mockError };\n}\n\ndescribe(\"Update Touch Input Bounds UC Hook\", () => {\n it(\"Calls update input element when the framed container notifies\", () => {\n const { mockTouchInput, framedContainer } = makeTestRig();\n\n framedContainer.position = new Vector2(21, 35);\n expect(mockTouchInput.updateInputElementBounds).toHaveBeenCalled();\n });\n\n it(\"Constructs silently when there is no touch input\", () => {\n const { containerAO, mockWarn, mockError } = makeRigWithoutTouchInput();\n\n expect(() => new UpdateTouchInputBoundUC(containerAO)).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n expect(mockError).not.toHaveBeenCalled();\n });\n\n it(\"Constructs silently when there is no framed container\", () => {\n const appObjects = makeAppObjectRepo();\n const mockWarn = jest.fn();\n const mockError = jest.fn();\n appObjects.submitWarning = mockWarn;\n appObjects.submitError = mockError;\n\n // An AppObject that never got a FramedScreenContainer.\n const bareAO = appObjects.getOrCreate(\"NoContainer\");\n\n expect(() => new UpdateTouchInputBoundUC(bareAO)).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n expect(mockError).not.toHaveBeenCalled();\n });\n\n it(\"Skips the update silently when there is no touch input\", () => {\n const { containerAO, framedContainer, mockWarn, mockError } =\n makeRigWithoutTouchInput();\n new UpdateTouchInputBoundUC(containerAO);\n\n expect(() => {\n framedContainer.position = new Vector2(21, 35);\n }).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n expect(mockError).not.toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateTouchInputBound.js","sourceRoot":"","sources":["../../../../src/TouchController/UC/UpdateTouchInputBound.ts"],"names":[],"mappings":";;;AAAA,sCAAqD;AACrD,qDAA2D;AAC3D,0CAA+C;AAE/C,MAAa,uBAAwB,SAAQ,kBAAW;IAGtD;;;;;OAKG;IACH,IAAY,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,oCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CACjC,oCAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,2BAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAmB,2BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QALjD,sBAAiB,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAC;QAC9C,CAAC,CAAC;QAKA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;;AA7CH,0DA8CC;AA7CQ,4BAAI,GAAG,yBAAyB,AAA5B,CAA6B","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\
|
|
1
|
+
{"version":3,"file":"UpdateTouchInputBound.js","sourceRoot":"","sources":["../../../../src/TouchController/UC/UpdateTouchInputBound.ts"],"names":[],"mappings":";;;AAAA,sCAAqD;AACrD,qDAA2D;AAC3D,0CAA+C;AAE/C,MAAa,uBAAwB,SAAQ,kBAAW;IAGtD;;;;;OAKG;IACH,IAAY,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,oCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CACjC,oCAAqB,CAAC,IAAI,CAC3B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAY,UAAU;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,2BAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAmB,2BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;QALjD,sBAAiB,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE,wBAAwB,EAAE,CAAC;QAC9C,CAAC,CAAC;QAKA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;;AA7CH,0DA8CC;AA7CQ,4BAAI,GAAG,yBAAyB,AAA5B,CAA6B","sourcesContent":["import { AppObject, AppObjectUC } from \"@vived/core\";\nimport { FramedScreenContainer } from \"../../FramedScreen\";\nimport { TouchInputEntity } from \"../Entities\";\n\nexport class UpdateTouchInputBoundUC extends AppObjectUC {\n static type = \"UpdateTouchInputBoundUC\";\n\n /**\n * The container is optional - this UC is only useful on an AppObject that\n * has one. hasComponent is checked first because getCachedLocalComponent\n * throws when the component is absent, which would defeat the constructor's\n * guard rather than let it skip.\n */\n private get container(): FramedScreenContainer | undefined {\n if (!this.appObject.hasComponent(FramedScreenContainer.type)) {\n return undefined;\n }\n\n return this.getCachedLocalComponent<FramedScreenContainer>(\n FramedScreenContainer.type,\n );\n }\n\n /**\n * TouchInputEntity is optional - a composition may decline touch input.\n * hasSingleton is checked first because both the repo lookup and\n * getCachedSingleton complain when the type is absent (the latter throws).\n */\n private get touchInput(): TouchInputEntity | undefined {\n if (!this.appObjects.hasSingleton(TouchInputEntity.type)) {\n return undefined;\n }\n\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n onContainerChange = () => {\n this.touchInput?.updateInputElementBounds();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, UpdateTouchInputBoundUC.type);\n\n if (!this.container) {\n return;\n }\n\n this.container.addChangeObserver(this.onContainerChange);\n this.onContainerChange();\n }\n}\n"]}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,iDAA+B;AAC/B,kDAAgC;AAChC,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,yCAAuB;AACvB,+CAA6B;AAC7B,+CAA6B;AAC7B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAC3B,mDAAiC;AACjC,8CAA4B;AAC5B,8CAA4B;AAC5B,iDAA+B;AAC/B,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,oDAAkC;AAClC,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,8CAA4B;AAC5B,uCAAqB;AACrB,2CAAyB","sourcesContent":["export * from \"./Babylon\";\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,iDAA+B;AAC/B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,gDAA8B;AAC9B,iDAA+B;AAC/B,iDAA+B;AAC/B,6CAA2B;AAC3B,6CAA2B;AAC3B,+CAA6B;AAC7B,iDAA+B;AAC/B,kDAAgC;AAChC,0CAAwB;AACxB,8CAA4B;AAC5B,8CAA4B;AAC5B,yCAAuB;AACvB,+CAA6B;AAC7B,+CAA6B;AAC7B,iDAA+B;AAC/B,8CAA4B;AAC5B,6CAA2B;AAC3B,mDAAiC;AACjC,8CAA4B;AAC5B,8CAA4B;AAC5B,iDAA+B;AAC/B,0CAAwB;AACxB,+CAA6B;AAC7B,2CAAyB;AACzB,gDAA8B;AAC9B,0CAAwB;AACxB,oDAAkC;AAClC,gDAA8B;AAC9B,iDAA+B;AAC/B,6CAA2B;AAC3B,8CAA4B;AAC5B,uCAAqB;AACrB,2CAAyB","sourcesContent":["export * from \"./Babylon\";\nexport * from \"./BaseApp\";\nexport * from \"./Callouts\";\nexport * from \"./Camera\";\nexport * from \"./Challenge\";\nexport * from \"./ChannelModel\";\nexport * from \"./Dispatcher\";\nexport * from \"./Enablement\";\nexport * from \"./Environment\";\nexport * from \"./EventSystem\";\nexport * from \"./FeatureFlags\";\nexport * from \"./FramedScreen\";\nexport * from \"./GLBModel\";\nexport * from \"./Hideable\";\nexport * from \"./HoverLabel\";\nexport * from \"./InspectorTab\";\nexport * from \"./KeyboardInput\";\nexport * from \"./Label\";\nexport * from \"./LabelDrop\";\nexport * from \"./Landmarks\";\nexport * from \"./Mesh\";\nexport * from \"./MouseInput\";\nexport * from \"./ObjectPick\";\nexport * from \"./OverlayColor\";\nexport * from \"./Procedure\";\nexport * from \"./Question\";\nexport * from \"./RequestHandler\";\nexport * from \"./SceneRoot\";\nexport * from \"./Selection\";\nexport * from \"./StateMachine\";\nexport * from \"./Stick\";\nexport * from \"./StoredView\";\nexport * from \"./Stylus\";\nexport * from \"./ThemeColors\";\nexport * from \"./Tools\";\nexport * from \"./TouchController\";\nexport * from \"./Transform3D\";\nexport * from \"./Transparency\";\nexport * from \"./UndoRedo\";\nexport * from \"./Workplane\";\nexport * from \"./XR\";\nexport * from \"./zSpace\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderCanvasUC.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,OAAgB,cAAe,SAAQ,WAAW;;AACtC,mBAAI,GAAG,gBAAgB,CAAC;AAKjC,kBAAG,GAAG,CAAC,UAAyB,EAA8B,EAAE,CACrE,qBAAqB,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAG3D,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,iBAAkB,SAAQ,cAAc;IAC5C,YAAY,CAAC,MAAyB;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAEhD,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,0DAA0D;QAC1D,IAAI,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,gBAAgB,CACrB,aAAa,EACb,CAAC,CAAC,EAAE,EAAE;YACJ,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAED,WAAW;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAEhD,gDAAgD;QAChD,IAAI,UAAU,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,UAAU,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF","sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"RenderCanvasUC.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n getSingletonComponent,\n} from \"@vived/core\";\nimport { BabylonRenderingUC } from \"../../Babylon\";\nimport { KeyboardInputEntity } from \"../../KeyboardInput\";\nimport { TouchInputEntity } from \"../../TouchController\";\nimport { MouseInputEntity } from \"../../MouseInput\";\n\nexport abstract class RenderCanvasUC extends AppObjectUC {\n static readonly type = \"RenderCanvasUC\";\n\n abstract submitCanvas(canvas: HTMLCanvasElement): void;\n abstract clearCanvas(): void;\n\n static get = (appObjects: AppObjectRepo): RenderCanvasUC | undefined =>\n getSingletonComponent(RenderCanvasUC.type, appObjects);\n}\n\nexport function makeRenderCanvasUC(appObject: AppObject): RenderCanvasUC {\n return new RenderCanvasUCImp(appObject);\n}\n\nclass RenderCanvasUCImp extends RenderCanvasUC {\n submitCanvas(canvas: HTMLCanvasElement): void {\n const appObjects = this.appObject.appObjectRepo;\n\n // The DOM input subsystems are optional. A composition may decline them\n // (input handled natively by the renderer, for example), so absence is a\n // supported state and is skipped silently. hasSingleton is checked first\n // because the entity getters warn when the lookup misses.\n if (appObjects.hasSingleton(KeyboardInputEntity.type)) {\n KeyboardInputEntity.get(appObjects)?.setEventElement(canvas);\n }\n\n if (appObjects.hasSingleton(TouchInputEntity.type)) {\n TouchInputEntity.get(appObjects)?.setEventElement(canvas);\n }\n\n if (appObjects.hasSingleton(MouseInputEntity.type)) {\n MouseInputEntity.get(appObjects)?.setEventElement(canvas);\n }\n\n const babylonRendering = BabylonRenderingUC.get(appObjects);\n if (babylonRendering) {\n babylonRendering.submitRenderCanvas(canvas);\n } else {\n this.warn(\"Unable to find BabylonRenderingUC\");\n }\n\n canvas.addEventListener(\n \"contextmenu\",\n (e) => {\n e.preventDefault();\n },\n false,\n );\n }\n\n clearCanvas(): void {\n const appObjects = this.appObject.appObjectRepo;\n\n // Optional input subsystems - see submitCanvas.\n if (appObjects.hasSingleton(KeyboardInputEntity.type)) {\n KeyboardInputEntity.get(appObjects)?.clearInputElement();\n }\n\n if (appObjects.hasSingleton(TouchInputEntity.type)) {\n TouchInputEntity.get(appObjects)?.clearInputElement();\n }\n\n if (appObjects.hasSingleton(MouseInputEntity.type)) {\n MouseInputEntity.get(appObjects)?.clearInputElement();\n }\n\n const babylonRendering = BabylonRenderingUC.get(appObjects);\n if (babylonRendering) {\n babylonRendering.clearRenderCanvas();\n } else {\n this.warn(\"Unable to find BabylonRenderingUC\");\n }\n }\n\n constructor(appObject: AppObject) {\n super(appObject, RenderCanvasUC.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\r\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\r\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\r\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\r\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\r\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n const app = appObjects.getOrCreate(\"App\");\r\n const renderUC = makeRenderCanvasUC(app);\r\n const mockKeybaord = new MockKeyboardInput(app);\r\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\r\n const mockMouse = new MockMouseInput(app);\r\n const mockTouch = new MockTouchInputEntity(app);\r\n\r\n // Convert mouse input methods to jest mocks\r\n mockMouse.setEventElement = jest.fn();\r\n mockMouse.clearInputElement = jest.fn();\r\n\r\n // Convert babylon rendering methods to jest mocks\r\n mockBabylon.submitRenderCanvas = jest.fn();\r\n mockBabylon.clearRenderCanvas = jest.fn();\r\n\r\n const mockWarn = jest.fn();\r\n appObjects.submitWarning = mockWarn;\r\n\r\n return {\r\n appObjects,\r\n renderUC,\r\n mockBabylon,\r\n mockKeybaord,\r\n mockWarn,\r\n mockTouch,\r\n mockMouse,\r\n };\r\n}\r\n\r\ndescribe(\"Render Canvas UC\", () => {\r\n it(\"Submits the canvas to the keyboard input\", () => {\r\n const { mockKeybaord, renderUC } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n\r\n renderUC.submitCanvas(renderCanvas);\r\n\r\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\r\n });\r\n\r\n it(\"Skips the keyboard input silently when it is absent and a canvas is submitted\", () => {\r\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n mockKeybaord.dispose();\r\n\r\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Clears the input element from keyboard input\", () => {\r\n const { mockKeybaord, renderUC } = makeTestRig();\r\n\r\n renderUC.clearCanvas();\r\n\r\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Skips the keyboard input silently when it is absent and a canvas is cleared\", () => {\r\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\r\n\r\n mockKeybaord.dispose();\r\n\r\n expect(() => renderUC.clearCanvas()).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Submits the canvas to the mouse input\", () => {\r\n const { mockMouse, renderUC } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n\r\n renderUC.submitCanvas(renderCanvas);\r\n\r\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\r\n });\r\n\r\n it(\"Skips the mouse input silently when it is absent and a canvas is submitted\", () => {\r\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n mockMouse.dispose();\r\n\r\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Clears the input element from mouse input\", () => {\r\n const { mockMouse, renderUC } = makeTestRig();\r\n\r\n renderUC.clearCanvas();\r\n\r\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Skips the mouse input silently when it is absent and a canvas is cleared\", () => {\r\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\r\n\r\n mockMouse.dispose();\r\n\r\n expect(() => renderUC.clearCanvas()).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Submits the canvas to the touch input\", () => {\r\n const { mockTouch, renderUC } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n\r\n renderUC.submitCanvas(renderCanvas);\r\n\r\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\r\n });\r\n\r\n it(\"Skips the touch input silently when it is absent and a canvas is submitted\", () => {\r\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n mockTouch.dispose();\r\n\r\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Clears the input element from touch input\", () => {\r\n const { mockTouch, renderUC } = makeTestRig();\r\n\r\n renderUC.clearCanvas();\r\n\r\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Skips the touch input silently when it is absent and a canvas is cleared\", () => {\r\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\r\n\r\n mockTouch.dispose();\r\n\r\n expect(() => renderUC.clearCanvas()).not.toThrow();\r\n expect(mockWarn).not.toHaveBeenCalled();\r\n });\r\n\r\n it(\"Submits the canvas to the babylon rendering\", () => {\r\n const { mockBabylon, renderUC } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n\r\n renderUC.submitCanvas(renderCanvas);\r\n\r\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\r\n });\r\n\r\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\r\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\r\n const renderCanvas = document.createElement(\"canvas\");\r\n mockBabylon.dispose();\r\n renderUC.submitCanvas(renderCanvas);\r\n\r\n expect(mockWarn).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Clears the input element from babylon rendering\", () => {\r\n const { mockBabylon, renderUC } = makeTestRig();\r\n\r\n renderUC.clearCanvas();\r\n\r\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\r\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\r\n\r\n mockBabylon.dispose();\r\n renderUC.clearCanvas();\r\n\r\n expect(mockWarn).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Gets the UC\", () => {\r\n const { renderUC, appObjects } = makeTestRig();\r\n\r\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\r\n });\r\n\r\n it(\"Warns and returns undefined if there is no UC\", () => {\r\n const { renderUC, appObjects, mockWarn } = makeTestRig();\r\n renderUC.dispose();\r\n\r\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\r\n expect(mockWarn).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Warns if there are more than two UCs found\", () => {\r\n const { appObjects, mockWarn } = makeTestRig();\r\n const newAO = appObjects.getOrCreate(\"newAO\");\r\n\r\n makeRenderCanvasUC(newAO);\r\n\r\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\r\n expect(mockWarn).toHaveBeenCalled();\r\n });\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"RenderCanvasUC.test.js","sourceRoot":"","sources":["../../../../src/BaseApp/UC/RenderCanvasUC.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { makeAppObjectRepo } from \"@vived/core\";\nimport { makeRenderCanvasUC, RenderCanvasUC } from \"./RenderCanvasUC\";\nimport { MockKeyboardInput } from \"../../KeyboardInput/Mocks/MockKeyboardInput\";\nimport { MockMouseInput } from \"../../MouseInput/Mocks/MockMouseInput\";\nimport { MockTouchInputEntity } from \"../../TouchController/Mock/MockTouchInput\";\nimport { makeMockBabylonRenderingUC } from \"../../Babylon\";\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n const app = appObjects.getOrCreate(\"App\");\n const renderUC = makeRenderCanvasUC(app);\n const mockKeybaord = new MockKeyboardInput(app);\n const mockBabylon = makeMockBabylonRenderingUC(appObjects);\n const mockMouse = new MockMouseInput(app);\n const mockTouch = new MockTouchInputEntity(app);\n\n // Convert mouse input methods to jest mocks\n mockMouse.setEventElement = jest.fn();\n mockMouse.clearInputElement = jest.fn();\n\n // Convert babylon rendering methods to jest mocks\n mockBabylon.submitRenderCanvas = jest.fn();\n mockBabylon.clearRenderCanvas = jest.fn();\n\n const mockWarn = jest.fn();\n appObjects.submitWarning = mockWarn;\n\n return {\n appObjects,\n renderUC,\n mockBabylon,\n mockKeybaord,\n mockWarn,\n mockTouch,\n mockMouse,\n };\n}\n\ndescribe(\"Render Canvas UC\", () => {\n it(\"Submits the canvas to the keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockKeybaord.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Skips the keyboard input silently when it is absent and a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Clears the input element from keyboard input\", () => {\n const { mockKeybaord, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockKeybaord.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Skips the keyboard input silently when it is absent and a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n\n expect(() => renderUC.clearCanvas()).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockMouse.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Skips the mouse input silently when it is absent and a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Clears the input element from mouse input\", () => {\n const { mockMouse, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockMouse.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Skips the mouse input silently when it is absent and a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n\n expect(() => renderUC.clearCanvas()).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockTouch.setEventElement).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Skips the touch input silently when it is absent and a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n\n expect(() => renderUC.submitCanvas(renderCanvas)).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Clears the input element from touch input\", () => {\n const { mockTouch, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockTouch.clearInputElement).toHaveBeenCalled();\n });\n\n it(\"Skips the touch input silently when it is absent and a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n\n expect(() => renderUC.clearCanvas()).not.toThrow();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Submits the canvas to the babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockBabylon.submitRenderCanvas).toHaveBeenCalledWith(renderCanvas);\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is submitted\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockBabylon.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Clears the input element from babylon rendering\", () => {\n const { mockBabylon, renderUC } = makeTestRig();\n\n renderUC.clearCanvas();\n\n expect(mockBabylon.clearRenderCanvas).toHaveBeenCalled();\n });\n\n it(\"Warns if it can't find the babylon rendering when a canvas is cleared\", () => {\n const { mockBabylon, renderUC, mockWarn } = makeTestRig();\n\n mockBabylon.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Gets the UC\", () => {\n const { renderUC, appObjects } = makeTestRig();\n\n expect(RenderCanvasUC.get(appObjects)).toEqual(renderUC);\n });\n\n it(\"Warns and returns undefined if there is no UC\", () => {\n const { renderUC, appObjects, mockWarn } = makeTestRig();\n renderUC.dispose();\n\n expect(RenderCanvasUC.get(appObjects)).toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n\n it(\"Warns if there are more than two UCs found\", () => {\n const { appObjects, mockWarn } = makeTestRig();\n const newAO = appObjects.getOrCreate(\"newAO\");\n\n makeRenderCanvasUC(newAO);\n\n expect(RenderCanvasUC.get(appObjects)).not.toBeUndefined();\n expect(mockWarn).toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChallengeFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Challenge/Factories/ChallengeFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAA1D;;QACE,gBAAW,GAAG,yBAAyB,CAAC;IAqD1C,CAAC;IAnDC;;;;;OAKG;IACH,aAAa;QACX,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ;QACN,yEAAyE;QACzE,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,MAAM;QACN,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,uDAAuD;IACzD,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAA4B;IAE5B,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import { DomainFactory, AppObject, AppObjectRepo } from \"@vived/core\";\
|
|
1
|
+
{"version":3,"file":"ChallengeFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Challenge/Factories/ChallengeFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAA1D;;QACE,gBAAW,GAAG,yBAAyB,CAAC;IAqD1C,CAAC;IAnDC;;;;;OAKG;IACH,aAAa;QACX,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ;QACN,yEAAyE;QACzE,IAAI,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,MAAM;QACN,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,2BAA2B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,uDAAuD;IACzD,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,aAA4B;IAE5B,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzD,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import { DomainFactory, AppObject, AppObjectRepo } from \"@vived/core\";\nimport { makeChallengeEntity } from \"../Entities\";\nimport {\n makeChallengeAuthorHelpPM,\n makeChallengeConsumerHelpPM,\n makeSelectedChallengePM,\n} from \"../PMs\";\nimport {\n makeSetChallengeUC,\n makeShowChallengeHelpUC,\n makeTryChallengeAgainUC,\n SerializeChallengeUC,\n} from \"../UCs\";\n\n/**\n * Factory responsible for setting up the Challenge Feature domain components.\n *\n * This factory initializes all entities, use cases, and presentation models\n * required for the Challenge Feature functionality. It follows the domain-driven\n * design pattern by organizing components into their respective layers.\n *\n * The factory creates:\n * - 1 Entity: Challenge entity for managing challenge state and registration\n * - 4 Use Cases: SerializeChallengeUC (class constructor), makeSetChallengeUC,\n * makeShowChallengeHelpUC, makeTryChallengeAgainUC (factory functions)\n * - 3 Presentation Models: makeChallengeAuthorHelpPM, makeChallengeConsumerHelpPM,\n * makeSelectedChallengePM\n *\n * Challenge kinds are not registered here. Each kind self-registers with the\n * Challenge entity from its own feature factory, so a composition that declines\n * a kind simply never registers it.\n *\n * @extends DomainFactory\n */\nexport class ChallengeFeatureFactory extends DomainFactory {\n factoryName = \"ChallengeFeatureFactory\";\n\n /**\n * Sets up all entities required for the Challenge Feature.\n *\n * Initializes the Challenge entity that maintains the state and business\n * logic for challenge functionality and challenge registration.\n */\n setupEntities(): void {\n makeChallengeEntity(this.appObject);\n }\n\n /**\n * Sets up all use cases for the Challenge Feature.\n *\n * Initializes use cases that define the business operations and\n * workflows available in the challenge feature. This includes both\n * class constructor patterns (SerializeChallengeUC) and factory\n * function patterns (makeSetChallengeUC, makeShowChallengeHelpUC,\n * makeTryChallengeAgainUC).\n */\n setupUCs(): void {\n // UCs - mixed creation patterns (class constructor vs factory functions)\n new SerializeChallengeUC(this.appObject);\n makeSetChallengeUC(this.appObject);\n makeShowChallengeHelpUC(this.appObject);\n makeTryChallengeAgainUC(this.appObject);\n }\n\n /**\n * Sets up all presentation models for the Challenge Feature.\n *\n * Initializes presentation models that handle the view logic and\n * state management for UI components related to challenge help and\n * selection functionality.\n */\n setupPMs(): void {\n // PMs\n makeChallengeAuthorHelpPM(this.appObject);\n makeChallengeConsumerHelpPM(this.appObject);\n makeSelectedChallengePM(this.appObject);\n }\n\n /**\n * Performs final setup operations after all components are initialized.\n *\n * Nothing to do. Challenge kinds register themselves with the Challenge\n * entity from their own feature factories, so this factory has no external\n * wiring left to perform. Required by DomainFactory.\n */\n finalSetup(): void {\n // Intentionally empty - challenge kinds self-register.\n }\n}\n\n/**\n * Factory function to create a new ChallengeFeatureFactory\n *\n * Creates and returns a new instance of ChallengeFeatureFactory that can be\n * used to set up all Challenge Feature domain components.\n *\n * @param appObjectRepo The AppObjectRepo to create the Challenge AppObject from\n * @returns A new ChallengeFeatureFactory instance\n */\nexport function makeChallengeFeatureFactory(\n appObjectRepo: AppObjectRepo,\n): ChallengeFeatureFactory {\n const appObject = appObjectRepo.getOrCreate(\"Challenge\");\n return new ChallengeFeatureFactory(appObject);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChallengeFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/Challenge/Factories/ChallengeFeatureFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAEL,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,SAAS,YAAY,CAAC,UAAyB;IAC7C,MAAM,OAAO,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,0DAA0D;IAC1D,IAAI,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/D,0EAA0E;IAC1E,yEAAyE;IACzE,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC;IAEpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAErC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE1D,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,oBAAoB,CACrC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CACrC,CAAC;QAEF,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,aAAa,CAAC,GAAG,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CACrC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"ChallengeFeatureFactory.test.js","sourceRoot":"","sources":["../../../../src/Challenge/Factories/ChallengeFeatureFactory.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAEL,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,SAAS,YAAY,CAAC,UAAyB;IAC7C,MAAM,OAAO,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,CAAC,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IAEvC,0DAA0D;IAC1D,IAAI,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;IAE/D,0EAA0E;IAC1E,yEAAyE;IACzE,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACpD,sBAAsB,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC3B,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC;IAEpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QAErC,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;QAE1D,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,oBAAoB,CACrC,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CACrC,CAAC;QAEF,YAAY,CAAC,UAAU,CAAC,CAAC;QAEzB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,aAAa,CAAC,GAAG,CACnE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CACrC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import {\n AppObjectRepo,\n DomainFactoryRepo,\n makeAppObjectRepo,\n} from \"@vived/core\";\nimport { makeBaseAppState } from \"../../BaseApp/Entity/BaseAppState\";\nimport { makeObjectPickEntity } from \"../../ObjectPick\";\nimport { makeStateMachineEntity } from \"../../StateMachine\";\nimport { ChallengeEntity } from \"../Entities/ChallengeEntity\";\nimport {\n ChallengeFeatureFactory,\n makeChallengeFeatureFactory,\n} from \"./ChallengeFeatureFactory\";\n\nfunction setupFeature(appObjects: AppObjectRepo): ChallengeFeatureFactory {\n const factory = makeChallengeFeatureFactory(appObjects);\n factory.setupEntities();\n factory.setupUCs();\n factory.setupPMs();\n factory.finalSetup();\n return factory;\n}\n\nfunction makeTestRig() {\n const appObjects = makeAppObjectRepo();\n\n // DomainFactory auto-registers with this on construction.\n new DomainFactoryRepo(appObjects.getOrCreate(\"DomainFactory\"));\n\n // Boundary singletons the Challenge feature genuinely needs: the PMs read\n // BaseAppState and SerializeChallengeUC registers with the StateMachine.\n makeBaseAppState(appObjects.getOrCreate(\"BaseApp\"));\n makeStateMachineEntity(appObjects.getOrCreate(\"StateMachine\"));\n\n const mockError = jest.fn();\n const mockWarn = jest.fn();\n appObjects.submitError = mockError;\n appObjects.submitWarning = mockWarn;\n\n return { appObjects, mockError, mockWarn };\n}\n\ndescribe(\"Challenge Feature Factory\", () => {\n it(\"Creates the Challenge entity\", () => {\n const { appObjects } = makeTestRig();\n\n setupFeature(appObjects);\n\n expect(ChallengeEntity.get(appObjects)).toBeDefined();\n });\n\n it(\"Wires without complaint when no challenge kinds are present\", () => {\n const { appObjects, mockError, mockWarn } = makeTestRig();\n\n setupFeature(appObjects);\n\n expect(mockError).not.toHaveBeenCalled();\n expect(mockWarn).not.toHaveBeenCalled();\n });\n\n it(\"Registers no challenge kinds itself - each kind self-registers\", () => {\n const { appObjects } = makeTestRig();\n const objectPick = makeObjectPickEntity(\n appObjects.getOrCreate(\"ObjectPick\"),\n );\n\n setupFeature(appObjects);\n\n const registered = ChallengeEntity.get(appObjects)!.allChallenges.map(\n (challenge) => challenge.challengeID,\n );\n expect(registered).not.toContain(objectPick.challengeID);\n });\n});\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventEntity.js","sourceRoot":"","sources":["../../../../src/EventSystem/Entities/EventEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,qBAAqB,EACrB,cAAc,GACf,MAAM,aAAa,CAAC;AAOrB;;;GAGG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;;AACvC,gBAAI,GAAG,aAAa,CAAC;AAmC9B,eAAG,GAAG,CAAC,UAAyB,EAA2B,EAAE,CAClE,qBAAqB,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAGxD,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,cAAe,SAAQ,WAAW;IAMtC,QAAQ,
|
|
1
|
+
{"version":3,"file":"EventEntity.js","sourceRoot":"","sources":["../../../../src/EventSystem/Entities/EventEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent,\n MemoizedString,\n} from \"@vived/core\";\nimport {\n EventCategory,\n EventDefinition,\n EventRegistrationOptions,\n} from \"../types\";\n\n/**\n * EventEntity represents a global singleton for event registration and logging.\n * Only one instance exists in the application.\n */\nexport abstract class EventEntity extends AppObjectEntity {\n static readonly type = \"EventEntity\";\n\n /**\n * Register an event. `options.category` classifies it for scoring\n * (`\"assessed\"` by default, or `\"instructional\"` for quiz-neutral guidance);\n * see `EventCategory`. The two-argument form is unchanged.\n */\n abstract register(\n id: string,\n name: string,\n options?: EventRegistrationOptions,\n ): void;\n abstract emit(id: string): void;\n abstract reset(): void;\n abstract getRegisteredEvents(): EventDefinition[];\n abstract getEmittedEvents(): string[];\n abstract getLastEmittedId(): string | null;\n\n /**\n * The category an event was registered with. Unregistered ids and\n * registrations that omitted the option are `\"assessed\"`, so every legacy\n * consumer is classified exactly as before categories existed.\n */\n abstract getEventCategory(id: string): EventCategory;\n\n /**\n * Register a callback that is invoked on every emission, with the emitted\n * event ID. Unlike addChangeObserver, this fires for every emit() call —\n * including consecutive emissions of the same event ID.\n */\n abstract addEmissionListener(callback: (eventId: string) => void): void;\n\n /** Remove a previously registered emission listener. */\n abstract removeEmissionListener(callback: (eventId: string) => void): void;\n\n static get = (appObjects: AppObjectRepo): EventEntity | undefined =>\n getSingletonComponent(EventEntity.type, appObjects);\n}\n\nexport function makeEventEntity(appObject: AppObject): EventEntity {\n return new EventEntityImp(appObject);\n}\n\nclass EventEntityImp extends EventEntity {\n private eventRegistry = new Map<string, EventDefinition>();\n private eventLog: string[] = [];\n private memoizedLastEmittedId = new MemoizedString(\"\", this.notifyOnChange);\n private emissionListeners = new Set<(eventId: string) => void>();\n\n register(id: string, name: string, options?: EventRegistrationOptions): void {\n if (this.eventRegistry.has(id)) {\n this.appObjects.submitWarning(\n \"EventEntity\",\n `Event with id '${id}' is already registered`,\n );\n return;\n }\n\n // Store the category only when the caller passed one, so the definitions\n // handed to existing consumers (e.g. a Procedure's availableEvents) stay\n // byte-identical; getEventCategory normalizes the default.\n const definition: EventDefinition = { id, name };\n if (options?.category) {\n definition.category = options.category;\n }\n\n this.eventRegistry.set(id, definition);\n this.notifyOnChange();\n }\n\n getEventCategory(id: string): EventCategory {\n return this.eventRegistry.get(id)?.category ?? \"assessed\";\n }\n\n emit(id: string): void {\n if (!this.eventRegistry.has(id)) {\n this.appObjects.submitWarning(\n \"EventEntity\",\n `Cannot emit unknown event with id '${id}'`,\n );\n return;\n }\n\n this.eventLog.push(id);\n this.memoizedLastEmittedId.val = id;\n\n for (const listener of this.emissionListeners) {\n listener(id);\n }\n }\n\n reset(): void {\n this.eventLog = [];\n this.memoizedLastEmittedId.val = \"\";\n }\n\n getRegisteredEvents(): EventDefinition[] {\n return Array.from(this.eventRegistry.values());\n }\n\n getEmittedEvents(): string[] {\n return [...this.eventLog];\n }\n\n getLastEmittedId(): string | null {\n const lastId = this.memoizedLastEmittedId.val;\n return lastId === \"\" ? null : lastId;\n }\n\n addEmissionListener(callback: (eventId: string) => void): void {\n this.emissionListeners.add(callback);\n }\n\n removeEmissionListener(callback: (eventId: string) => void): void {\n this.emissionListeners.delete(callback);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, EventEntity.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
|
|
@@ -204,7 +204,10 @@ describe("EventEntity", () => {
|
|
|
204
204
|
{ id: "lever", name: "Pull lever" },
|
|
205
205
|
{ id: "valve", name: "Open valve" },
|
|
206
206
|
]);
|
|
207
|
-
expect(Object.keys(entity.getRegisteredEvents()[0])).toEqual([
|
|
207
|
+
expect(Object.keys(entity.getRegisteredEvents()[0])).toEqual([
|
|
208
|
+
"id",
|
|
209
|
+
"name",
|
|
210
|
+
]);
|
|
208
211
|
expect(entity.getEventCategory("lever")).toBe("assessed");
|
|
209
212
|
expect(entity.getEventCategory("valve")).toBe("assessed");
|
|
210
213
|
});
|