@vived/app 4.27.0 → 4.28.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.
Files changed (219) hide show
  1. package/lib/Components/Callouts/UC/LookAtCameraUC.js +1 -1
  2. package/lib/Components/Camera/PM/CameraPM.d.ts +1 -0
  3. package/lib/Components/Camera/PM/CameraPM.js +8 -1
  4. package/lib/Components/Camera/index.d.ts +2 -0
  5. package/lib/Components/Camera/index.js +2 -0
  6. package/lib/Components/Challenge/Adapters/challengeAuthorHelpHookAdapter.d.ts +2 -2
  7. package/lib/Components/Challenge/Adapters/challengeConsumerHelpHookAdapter.d.ts +2 -2
  8. package/lib/Components/Challenge/Adapters/selectedChallengeHookAdapter.d.ts +2 -2
  9. package/lib/Components/Challenge/Adapters/selectedChallengeHookAdapter.js +20 -26
  10. package/lib/Components/Challenge/Controller/setChallenge.d.ts +1 -1
  11. package/lib/Components/Challenge/Entities/ChallengeEntity.d.ts +19 -26
  12. package/lib/Components/Challenge/Entities/ChallengeEntity.js +43 -53
  13. package/lib/Components/Challenge/Mocks/MockSelectedChallengePM.d.ts +2 -2
  14. package/lib/Components/Challenge/Mocks/MockSetChallengeUC.d.ts +2 -2
  15. package/lib/Components/Challenge/Mocks/index.d.ts +2 -0
  16. package/lib/Components/Challenge/Mocks/index.js +2 -0
  17. package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.d.ts +1 -1
  18. package/lib/Components/Challenge/PMs/ChallengeAuthorHelpPM.js +6 -7
  19. package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.d.ts +1 -1
  20. package/lib/Components/Challenge/PMs/ChallengeConsumerHelpPM.js +13 -16
  21. package/lib/Components/Challenge/PMs/SelectedChallengePM.d.ts +7 -6
  22. package/lib/Components/Challenge/PMs/SelectedChallengePM.js +14 -11
  23. package/lib/Components/Challenge/UCs/SerializeChallenge.d.ts +1 -1
  24. package/lib/Components/Challenge/UCs/SerializeChallenge.js +3 -7
  25. package/lib/Components/Challenge/UCs/SetChallengeUC.d.ts +4 -4
  26. package/lib/Components/Challenge/UCs/SetChallengeUC.js +23 -9
  27. package/lib/Components/Challenge/UCs/ShowChallengeHelpUC.d.ts +1 -1
  28. package/lib/Components/Challenge/UCs/ShowChallengeHelpUC.js +2 -2
  29. package/lib/Components/Challenge/UCs/TryChallengeAgainUC.d.ts +2 -1
  30. package/lib/Components/Challenge/UCs/TryChallengeAgainUC.js +25 -1
  31. package/lib/Components/Challenge/UCs/index.d.ts +0 -1
  32. package/lib/Components/Challenge/UCs/index.js +0 -1
  33. package/lib/Components/ChannelModel/Adapters/channelModelAdapter.js +2 -0
  34. package/lib/Components/ChannelModel/Adapters/index.d.ts +2 -0
  35. package/lib/Components/ChannelModel/Adapters/index.js +2 -0
  36. package/lib/Components/ChannelModel/Controllers/index.d.ts +1 -0
  37. package/lib/Components/ChannelModel/Controllers/index.js +1 -0
  38. package/lib/Components/ChannelModel/Mocks/ValidateChannelModelMock.d.ts +8 -0
  39. package/lib/Components/ChannelModel/Mocks/ValidateChannelModelMock.js +15 -0
  40. package/lib/Components/ChannelModel/Mocks/ValidateObjectPickUcMock.d.ts +8 -0
  41. package/lib/Components/ChannelModel/Mocks/ValidateObjectPickUcMock.js +15 -0
  42. package/lib/Components/ChannelModel/Mocks/index.d.ts +4 -0
  43. package/lib/Components/ChannelModel/Mocks/index.js +4 -0
  44. package/lib/Components/ChannelModel/PMs/index.d.ts +2 -0
  45. package/lib/Components/ChannelModel/PMs/index.js +2 -0
  46. package/lib/Components/ChannelModel/UC/ValidateChannelModel.d.ts +8 -0
  47. package/lib/Components/ChannelModel/UC/ValidateChannelModel.js +48 -0
  48. package/lib/Components/ChannelModel/UC/index.d.ts +3 -0
  49. package/lib/Components/ChannelModel/UC/index.js +3 -0
  50. package/lib/Components/Dispatcher/UC/DispatchStateChangeUC.js +1 -1
  51. package/lib/Components/Hideable/Adapters/isHiddenAdapter.js +2 -0
  52. package/lib/Components/Hideable/UCs/SerializeHideableObjects.d.ts +2 -2
  53. package/lib/Components/Hideable/UCs/SerializeHideableObjects.js +9 -9
  54. package/lib/Components/Hideable/UCs/index.d.ts +1 -0
  55. package/lib/Components/Hideable/UCs/index.js +1 -0
  56. package/lib/Components/Label/Adapters/labelAdapter.js +2 -0
  57. package/lib/Components/LabelDrop/Adapters/index.d.ts +6 -0
  58. package/lib/Components/LabelDrop/Adapters/index.js +18 -0
  59. package/lib/Components/LabelDrop/Adapters/labelDropDragItemAdapter.d.ts +3 -0
  60. package/lib/Components/LabelDrop/Adapters/labelDropDragItemAdapter.js +19 -0
  61. package/lib/Components/LabelDrop/Adapters/labelDropEditingIdAdapter.d.ts +3 -0
  62. package/lib/Components/LabelDrop/Adapters/labelDropEditingIdAdapter.js +19 -0
  63. package/lib/Components/LabelDrop/Adapters/labelDropListAdapter.d.ts +3 -0
  64. package/lib/Components/LabelDrop/Adapters/labelDropListAdapter.js +19 -0
  65. package/lib/Components/LabelDrop/Adapters/labelDropReviewAdapter.d.ts +3 -0
  66. package/lib/Components/LabelDrop/Adapters/labelDropReviewAdapter.js +19 -0
  67. package/lib/Components/LabelDrop/Adapters/labelDropTargetsAdapter.d.ts +3 -0
  68. package/lib/Components/LabelDrop/Adapters/labelDropTargetsAdapter.js +23 -0
  69. package/lib/Components/LabelDrop/Adapters/remainingLabelDropListAdapter.d.ts +3 -0
  70. package/lib/Components/LabelDrop/Adapters/remainingLabelDropListAdapter.js +19 -0
  71. package/lib/Components/LabelDrop/Controller/MouseLabelDropAuthor.d.ts +7 -0
  72. package/lib/Components/LabelDrop/Controller/MouseLabelDropAuthor.js +31 -0
  73. package/lib/Components/LabelDrop/Controller/StylusLabelDrop.d.ts +9 -0
  74. package/lib/Components/LabelDrop/Controller/StylusLabelDrop.js +61 -0
  75. package/lib/Components/LabelDrop/Controller/TouchLabelDropAuthor.d.ts +7 -0
  76. package/lib/Components/LabelDrop/Controller/TouchLabelDropAuthor.js +31 -0
  77. package/lib/Components/LabelDrop/Controller/addNewLabelDropAnswer.d.ts +2 -0
  78. package/lib/Components/LabelDrop/Controller/addNewLabelDropAnswer.js +13 -0
  79. package/lib/Components/LabelDrop/Controller/deleteAllLabelDropAnswers.d.ts +2 -0
  80. package/lib/Components/LabelDrop/Controller/deleteAllLabelDropAnswers.js +13 -0
  81. package/lib/Components/LabelDrop/Controller/deleteLabelDropAnswer.d.ts +2 -0
  82. package/lib/Components/LabelDrop/Controller/deleteLabelDropAnswer.js +13 -0
  83. package/lib/Components/LabelDrop/Controller/discardEditLabelDropAnswer.d.ts +2 -0
  84. package/lib/Components/LabelDrop/Controller/discardEditLabelDropAnswer.js +19 -0
  85. package/lib/Components/LabelDrop/Controller/dragLabelDropAnswerItemScreen.d.ts +2 -0
  86. package/lib/Components/LabelDrop/Controller/dragLabelDropAnswerItemScreen.js +14 -0
  87. package/lib/Components/LabelDrop/Controller/editLabelDropAnswerItem.d.ts +2 -0
  88. package/lib/Components/LabelDrop/Controller/editLabelDropAnswerItem.js +13 -0
  89. package/lib/Components/LabelDrop/Controller/index.d.ts +15 -0
  90. package/lib/Components/LabelDrop/Controller/index.js +27 -0
  91. package/lib/Components/LabelDrop/Controller/initializeDragLabelDropAnswerItem.d.ts +2 -0
  92. package/lib/Components/LabelDrop/Controller/initializeDragLabelDropAnswerItem.js +14 -0
  93. package/lib/Components/LabelDrop/Controller/initializeDragLabelDropAnswerItemWorld.d.ts +2 -0
  94. package/lib/Components/LabelDrop/Controller/initializeDragLabelDropAnswerItemWorld.js +19 -0
  95. package/lib/Components/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.d.ts +2 -0
  96. package/lib/Components/LabelDrop/Controller/releaseLabelDropAnswerItemScreen.js +28 -0
  97. package/lib/Components/LabelDrop/Controller/releaseLabelDropAnswerItemWorld.d.ts +2 -0
  98. package/lib/Components/LabelDrop/Controller/releaseLabelDropAnswerItemWorld.js +19 -0
  99. package/lib/Components/LabelDrop/Controller/saveEditLabelDropAnswer.d.ts +2 -0
  100. package/lib/Components/LabelDrop/Controller/saveEditLabelDropAnswer.js +13 -0
  101. package/lib/Components/LabelDrop/Controller/toggleLabelDropItemTarget.d.ts +2 -0
  102. package/lib/Components/LabelDrop/Controller/toggleLabelDropItemTarget.js +13 -0
  103. package/lib/Components/LabelDrop/Entities/LabelDropItemEntity.d.ts +33 -0
  104. package/lib/Components/LabelDrop/Entities/LabelDropItemEntity.js +88 -0
  105. package/lib/Components/LabelDrop/Entities/LabelDropRepo.d.ts +51 -0
  106. package/lib/Components/LabelDrop/Entities/LabelDropRepo.js +193 -0
  107. package/lib/Components/LabelDrop/Entities/index.d.ts +2 -0
  108. package/lib/Components/LabelDrop/Entities/index.js +14 -0
  109. package/lib/Components/LabelDrop/Mocks/DeleteLabelDropUcMock.d.ts +8 -0
  110. package/lib/Components/LabelDrop/Mocks/DeleteLabelDropUcMock.js +15 -0
  111. package/lib/Components/LabelDrop/Mocks/EditLabelDropUcMock.d.ts +10 -0
  112. package/lib/Components/LabelDrop/Mocks/EditLabelDropUcMock.js +17 -0
  113. package/lib/Components/LabelDrop/Mocks/LabelDropAnswerItemDetailsPmMock.d.ts +7 -0
  114. package/lib/Components/LabelDrop/Mocks/LabelDropAnswerItemDetailsPmMock.js +11 -0
  115. package/lib/Components/LabelDrop/Mocks/LabelDropDragItemPmMock.d.ts +8 -0
  116. package/lib/Components/LabelDrop/Mocks/LabelDropDragItemPmMock.js +15 -0
  117. package/lib/Components/LabelDrop/Mocks/LabelDropEditingIdPmMock.d.ts +8 -0
  118. package/lib/Components/LabelDrop/Mocks/LabelDropEditingIdPmMock.js +15 -0
  119. package/lib/Components/LabelDrop/Mocks/LabelDropListPmMock.d.ts +8 -0
  120. package/lib/Components/LabelDrop/Mocks/LabelDropListPmMock.js +15 -0
  121. package/lib/Components/LabelDrop/Mocks/LabelDropReviewPmMock.d.ts +8 -0
  122. package/lib/Components/LabelDrop/Mocks/LabelDropReviewPmMock.js +15 -0
  123. package/lib/Components/LabelDrop/Mocks/MockCorrectAnimation.d.ts +12 -0
  124. package/lib/Components/LabelDrop/Mocks/MockCorrectAnimation.js +19 -0
  125. package/lib/Components/LabelDrop/Mocks/MockDragLabelDropUC.d.ts +12 -0
  126. package/lib/Components/LabelDrop/Mocks/MockDragLabelDropUC.js +19 -0
  127. package/lib/Components/LabelDrop/Mocks/MockDragLabelDropWorldUC.d.ts +13 -0
  128. package/lib/Components/LabelDrop/Mocks/MockDragLabelDropWorldUC.js +20 -0
  129. package/lib/Components/LabelDrop/Mocks/MockDropAnimation.d.ts +15 -0
  130. package/lib/Components/LabelDrop/Mocks/MockDropAnimation.js +22 -0
  131. package/lib/Components/LabelDrop/Mocks/MockIncorrectAnimation.d.ts +14 -0
  132. package/lib/Components/LabelDrop/Mocks/MockIncorrectAnimation.js +21 -0
  133. package/lib/Components/LabelDrop/Mocks/RemainingLabelDropListPmMock.d.ts +8 -0
  134. package/lib/Components/LabelDrop/Mocks/RemainingLabelDropListPmMock.js +15 -0
  135. package/lib/Components/LabelDrop/Mocks/ToggleLabelDropTargetUcMock.d.ts +10 -0
  136. package/lib/Components/LabelDrop/Mocks/ToggleLabelDropTargetUcMock.js +17 -0
  137. package/lib/Components/LabelDrop/Mocks/ValidateLabelDropUc.d.ts +8 -0
  138. package/lib/Components/LabelDrop/Mocks/ValidateLabelDropUc.js +15 -0
  139. package/lib/Components/LabelDrop/Mocks/index.d.ts +15 -0
  140. package/lib/Components/LabelDrop/Mocks/index.js +27 -0
  141. package/lib/Components/LabelDrop/PM/LabelDropDragItemPM.d.ts +18 -0
  142. package/lib/Components/LabelDrop/PM/LabelDropDragItemPM.js +84 -0
  143. package/lib/Components/LabelDrop/PM/LabelDropEditingIDPM.d.ts +11 -0
  144. package/lib/Components/LabelDrop/PM/LabelDropEditingIDPM.js +46 -0
  145. package/lib/Components/LabelDrop/PM/LabelDropListPM.d.ts +11 -0
  146. package/lib/Components/LabelDrop/PM/LabelDropListPM.js +56 -0
  147. package/lib/Components/LabelDrop/PM/LabelDropReviewPM.d.ts +11 -0
  148. package/lib/Components/LabelDrop/PM/LabelDropReviewPM.js +57 -0
  149. package/lib/Components/LabelDrop/PM/LabelDropTargetsPM.d.ts +11 -0
  150. package/lib/Components/LabelDrop/PM/LabelDropTargetsPM.js +55 -0
  151. package/lib/Components/LabelDrop/PM/RemainingLabelDropListPM.d.ts +10 -0
  152. package/lib/Components/LabelDrop/PM/RemainingLabelDropListPM.js +56 -0
  153. package/lib/Components/LabelDrop/PM/index.d.ts +6 -0
  154. package/lib/Components/LabelDrop/PM/index.js +18 -0
  155. package/lib/Components/LabelDrop/UseCases/CorrectAnimationUC.d.ts +12 -0
  156. package/lib/Components/LabelDrop/UseCases/CorrectAnimationUC.js +72 -0
  157. package/lib/Components/LabelDrop/UseCases/DeleteAllLabelDropUC.d.ts +7 -0
  158. package/lib/Components/LabelDrop/UseCases/DeleteAllLabelDropUC.js +62 -0
  159. package/lib/Components/LabelDrop/UseCases/DeleteLabelDropUC.d.ts +7 -0
  160. package/lib/Components/LabelDrop/UseCases/DeleteLabelDropUC.js +61 -0
  161. package/lib/Components/LabelDrop/UseCases/DragLabelDropUC.d.ts +11 -0
  162. package/lib/Components/LabelDrop/UseCases/DragLabelDropUC.js +171 -0
  163. package/lib/Components/LabelDrop/UseCases/DragLabelDropWorldUC.d.ts +11 -0
  164. package/lib/Components/LabelDrop/UseCases/DragLabelDropWorldUC.js +181 -0
  165. package/lib/Components/LabelDrop/UseCases/DropOnNothingAnimationUC.d.ts +13 -0
  166. package/lib/Components/LabelDrop/UseCases/DropOnNothingAnimationUC.js +84 -0
  167. package/lib/Components/LabelDrop/UseCases/EditLabelDropUC.d.ts +9 -0
  168. package/lib/Components/LabelDrop/UseCases/EditLabelDropUC.js +149 -0
  169. package/lib/Components/LabelDrop/UseCases/IncorrectAnimationUC.d.ts +14 -0
  170. package/lib/Components/LabelDrop/UseCases/IncorrectAnimationUC.js +86 -0
  171. package/lib/Components/LabelDrop/UseCases/InitializeLabelDropLabelHook.d.ts +7 -0
  172. package/lib/Components/LabelDrop/UseCases/InitializeLabelDropLabelHook.js +36 -0
  173. package/lib/Components/LabelDrop/UseCases/LabelDropAnimation.d.ts +5 -0
  174. package/lib/Components/LabelDrop/UseCases/LabelDropAnimation.js +2 -0
  175. package/lib/Components/LabelDrop/UseCases/SerializeLabelDrop.d.ts +21 -0
  176. package/lib/Components/LabelDrop/UseCases/SerializeLabelDrop.js +69 -0
  177. package/lib/Components/LabelDrop/UseCases/ToggleLabelDropTargetUC.d.ts +10 -0
  178. package/lib/Components/LabelDrop/UseCases/ToggleLabelDropTargetUC.js +66 -0
  179. package/lib/Components/LabelDrop/UseCases/ValidateLabelDrop.d.ts +9 -0
  180. package/lib/Components/LabelDrop/UseCases/ValidateLabelDrop.js +59 -0
  181. package/lib/Components/LabelDrop/UseCases/index.d.ts +14 -0
  182. package/lib/Components/LabelDrop/UseCases/index.js +26 -0
  183. package/lib/Components/LabelDrop/UseCases/labelDropLabelValidator.d.ts +1 -0
  184. package/lib/Components/LabelDrop/UseCases/labelDropLabelValidator.js +16 -0
  185. package/lib/Components/LabelDrop/index.d.ts +6 -0
  186. package/lib/Components/LabelDrop/index.js +18 -0
  187. package/lib/Components/Question/Entities/QuestionEntity.d.ts +7 -1
  188. package/lib/Components/Question/Entities/QuestionEntity.js +8 -0
  189. package/lib/Components/Question/Mocks/MockValidateQuestion.d.ts +1 -1
  190. package/lib/Components/Question/Mocks/MockValidateQuestion.js +3 -3
  191. package/lib/Components/Question/Mocks/index.d.ts +2 -0
  192. package/lib/Components/Question/Mocks/index.js +14 -0
  193. package/lib/Components/Question/PM/QuestionChallengePM.js +2 -2
  194. package/lib/Components/Question/UC/SubmitQuestionAnswerUC.js +2 -2
  195. package/lib/Components/Question/UC/ValidateQuestionChallengeStateUC.js +2 -2
  196. package/lib/Components/Question/index.d.ts +1 -0
  197. package/lib/Components/Question/index.js +1 -0
  198. package/lib/Components/RequestHandler/UC/SetAppStateUC.js +1 -1
  199. package/lib/Components/RequestHandler/UC/SetIsAuthoringUC.js +2 -2
  200. package/lib/Components/RequestHandler/UC/StartAppUC.js +2 -2
  201. package/lib/Components/RequestHandler/UC/StopAppUC.js +2 -2
  202. package/lib/Components/Transform3D/Controllers/Mouse/index.d.ts +1 -0
  203. package/lib/Components/Transform3D/Controllers/Mouse/index.js +1 -0
  204. package/lib/Components/Transform3D/Controllers/Touch/index.d.ts +1 -0
  205. package/lib/Components/Transform3D/Controllers/Touch/index.js +1 -0
  206. package/lib/Components/Transform3D/Mocks/MockPanTransformUC.d.ts +1 -0
  207. package/lib/Components/Transform3D/Mocks/MockPanTransformUC.js +1 -0
  208. package/lib/Components/Transform3D/Mocks/index.d.ts +1 -0
  209. package/lib/Components/Transform3D/Mocks/index.js +1 -0
  210. package/lib/Components/Transform3D/UC/PanTransformUC.d.ts +3 -1
  211. package/lib/Components/Transform3D/UC/PanTransformUC.js +24 -6
  212. package/lib/Components/Transform3D/UC/StylusMoveTransformUC.js +10 -10
  213. package/lib/Components/Transform3D/UC/index.d.ts +1 -0
  214. package/lib/Components/Transform3D/UC/index.js +1 -0
  215. package/lib/Components/index.d.ts +4 -1
  216. package/lib/Components/index.js +4 -1
  217. package/lib/ValueObjects/Quaternion.d.ts +1 -0
  218. package/lib/ValueObjects/Quaternion.js +11 -0
  219. package/package.json +1 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeEditLabelDropUC = exports.EditLabelDropUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const LabelDropRepo_1 = require("../Entities/LabelDropRepo");
6
+ const DispatchStateChangeUC_1 = require("../../Dispatcher/UC/DispatchStateChangeUC");
7
+ const UndoRedoEntity_1 = require("../../UndoRedo/Entities/UndoRedoEntity");
8
+ const ShowConfirmUC_1 = require("../../Dispatcher/UC/ShowConfirmUC");
9
+ class EditLabelDropUC extends AppObject_1.AppObjectUC {
10
+ }
11
+ exports.EditLabelDropUC = EditLabelDropUC;
12
+ EditLabelDropUC.type = "EditLabelDropUC";
13
+ EditLabelDropUC.get = (appObjects) => AppObject_1.getSingletonComponent(EditLabelDropUC.type, appObjects);
14
+ function makeEditLabelDropUC(appObject) {
15
+ return new EditLabelDropUCImp(appObject);
16
+ }
17
+ exports.makeEditLabelDropUC = makeEditLabelDropUC;
18
+ class EditLabelDropUCImp extends EditLabelDropUC {
19
+ constructor(appObject) {
20
+ super(appObject, EditLabelDropUC.type);
21
+ this.message = "Are you sure you want to discard changes made to this label drop answer?";
22
+ this.title = "Discard Changes";
23
+ this.confirmButton = "Discard";
24
+ this.cancelButton = "Cancel";
25
+ this.start = (labelDropID) => {
26
+ if (!this.labelDropRepo)
27
+ return;
28
+ this.editingItem = labelDropID
29
+ ? this.labelDropRepo.getForAppObject(labelDropID)
30
+ : this.labelDropRepo.makeLabelDropItem();
31
+ if (!this.editingItem) {
32
+ this.warn("No label drop found for ID: " + labelDropID);
33
+ this.clearEditLabelDrop();
34
+ return;
35
+ }
36
+ this.initialData = this.editingItem.data;
37
+ this.labelDropRepo.editingID = this.editingItem.id;
38
+ this.labelDropRepo.isEditingNewAnswer = labelDropID ? false : true;
39
+ };
40
+ this.discard = () => {
41
+ if (!this.isEditChanged()) {
42
+ this.onConfirmDiscardEdits();
43
+ return;
44
+ }
45
+ const showConfirm = ShowConfirmUC_1.ShowConfirmUC.get(this.appObjects);
46
+ if (!showConfirm) {
47
+ this.warn("Could not find ShowConfirmUC");
48
+ return;
49
+ }
50
+ const dto = {
51
+ cancelButtonLabel: this.cancelButton,
52
+ confirmButtonLabel: this.confirmButton,
53
+ message: this.message,
54
+ title: this.title,
55
+ confirmCallback: this.onConfirmDiscardEdits,
56
+ cancelCallback: () => { }
57
+ };
58
+ showConfirm.showConfirm(dto);
59
+ };
60
+ this.isEditChanged = () => {
61
+ var _a;
62
+ if (!this.editingItem || !this.labelDropRepo || !this.initialData)
63
+ return false;
64
+ if ((_a = this.labelDropRepo) === null || _a === void 0 ? void 0 : _a.isEditingNewAnswer)
65
+ return true;
66
+ const currentData = this.editingItem.data;
67
+ if (currentData.label !== this.initialData.label)
68
+ return true;
69
+ if (currentData.correctAppObjectIDs.length !==
70
+ this.initialData.correctAppObjectIDs.length)
71
+ return true;
72
+ for (const correctObjectId of currentData.correctAppObjectIDs) {
73
+ if (!this.initialData.correctAppObjectIDs.includes(correctObjectId))
74
+ return true;
75
+ }
76
+ return false;
77
+ };
78
+ this.onConfirmDiscardEdits = () => {
79
+ if (!this.editingItem || !this.labelDropRepo || !this.initialData)
80
+ return;
81
+ if (this.labelDropRepo.isEditingNewAnswer) {
82
+ this.labelDropRepo.deleteItem(this.editingItem.id);
83
+ }
84
+ else {
85
+ this.editingItem.data = this.initialData;
86
+ }
87
+ this.clearEditLabelDrop();
88
+ };
89
+ this.finish = () => {
90
+ var _a, _b;
91
+ if (!this.isEditChanged()) {
92
+ this.clearEditLabelDrop();
93
+ return;
94
+ }
95
+ const repo = this.labelDropRepo;
96
+ const initialData = this.initialData;
97
+ const item = this.editingItem;
98
+ const dispatchStateChange = this.dispatchStateChange;
99
+ if (!repo || !initialData || !item || !dispatchStateChange)
100
+ return;
101
+ const finalData = item.data;
102
+ if (repo.isEditingNewAnswer) {
103
+ (_a = this.undo) === null || _a === void 0 ? void 0 : _a.submitAction({
104
+ undoAction: () => {
105
+ repo.deleteItem(item.id);
106
+ dispatchStateChange();
107
+ },
108
+ redoAction: () => {
109
+ repo.makeLabelDropItem(item.id).data = finalData;
110
+ dispatchStateChange();
111
+ }
112
+ });
113
+ }
114
+ else {
115
+ (_b = this.undo) === null || _b === void 0 ? void 0 : _b.submitAction({
116
+ undoAction: () => {
117
+ item.data = initialData;
118
+ dispatchStateChange();
119
+ },
120
+ redoAction: () => {
121
+ item.data = finalData;
122
+ dispatchStateChange();
123
+ }
124
+ });
125
+ }
126
+ this.clearEditLabelDrop();
127
+ dispatchStateChange();
128
+ };
129
+ this.clearEditLabelDrop = () => {
130
+ if (!this.labelDropRepo)
131
+ return;
132
+ this.initialData = undefined;
133
+ this.editingItem = undefined;
134
+ this.labelDropRepo.editingID = undefined;
135
+ this.labelDropRepo.isEditingNewAnswer = false;
136
+ };
137
+ this.appObjects.registerSingleton(this);
138
+ }
139
+ get labelDropRepo() {
140
+ return this.getCachedSingleton(LabelDropRepo_1.LabelDropRepo.type);
141
+ }
142
+ get undo() {
143
+ return this.getCachedSingleton(UndoRedoEntity_1.UndoRedoEntity.type);
144
+ }
145
+ get dispatchStateChange() {
146
+ var _a;
147
+ return (_a = this.getCachedSingleton(DispatchStateChangeUC_1.DispatchStateChangeUC.type)) === null || _a === void 0 ? void 0 : _a.doDispatch;
148
+ }
149
+ }
@@ -0,0 +1,14 @@
1
+ import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
+ import { Vector3 } from "../../../ValueObjects";
3
+ import { LabelDropAnimationI } from "./LabelDropAnimation";
4
+ export declare abstract class LabelDropIncorrectAnimationUC extends AppObjectUC implements LabelDropAnimationI {
5
+ static type: string;
6
+ abstract desiredFinalPosition: Vector3;
7
+ abstract feedbackDurationMS: number;
8
+ abstract fadeDurationMS: number;
9
+ abstract getIsAnimating(): boolean;
10
+ abstract start: () => Promise<boolean>;
11
+ abstract cancel: () => void;
12
+ static get(appObject: AppObjectRepo): LabelDropIncorrectAnimationUC | undefined;
13
+ }
14
+ export declare function makeLabelDropIncorrectAnimationUC(appObject: AppObject): LabelDropIncorrectAnimationUC;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeLabelDropIncorrectAnimationUC = exports.LabelDropIncorrectAnimationUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Utilities_1 = require("../../../Utilities");
6
+ const ValueObjects_1 = require("../../../ValueObjects");
7
+ const LabelDropRepo_1 = require("../Entities/LabelDropRepo");
8
+ class LabelDropIncorrectAnimationUC extends AppObject_1.AppObjectUC {
9
+ static get(appObject) {
10
+ return AppObject_1.getSingletonComponent(LabelDropIncorrectAnimationUC.type, appObject);
11
+ }
12
+ }
13
+ exports.LabelDropIncorrectAnimationUC = LabelDropIncorrectAnimationUC;
14
+ LabelDropIncorrectAnimationUC.type = "LabelDropIncorrectAnimationUC";
15
+ function makeLabelDropIncorrectAnimationUC(appObject) {
16
+ return new LabelDropIncorrectAnimationUCImp(appObject);
17
+ }
18
+ exports.makeLabelDropIncorrectAnimationUC = makeLabelDropIncorrectAnimationUC;
19
+ class LabelDropIncorrectAnimationUCImp extends LabelDropIncorrectAnimationUC {
20
+ constructor(appObject) {
21
+ super(appObject, LabelDropIncorrectAnimationUC.type);
22
+ this.feedbackDurationMS = 1000;
23
+ this.fadeDurationMS = 300;
24
+ this.desiredFinalPosition = ValueObjects_1.Vector3.Zero();
25
+ this._isAnimating = false;
26
+ this.intervalDeltaMS = 10;
27
+ this.cancelAnimation = false;
28
+ this.start = () => {
29
+ if (!this.labelDropEntity) {
30
+ return Promise.reject(new Error("No label drop entity"));
31
+ }
32
+ return new Promise((resolve, reject) => {
33
+ var _a, _b;
34
+ const startTime = Date.now();
35
+ const fadeStartTime = startTime + this.feedbackDurationMS;
36
+ const endTime = startTime + this.fadeDurationMS + this.feedbackDurationMS;
37
+ this._isAnimating = true;
38
+ const startPosition = (_b = (_a = this.labelDropEntity) === null || _a === void 0 ? void 0 : _a.dragLabelTransform.worldPosition) !== null && _b !== void 0 ? _b : ValueObjects_1.Vector3.Zero();
39
+ const interval = setInterval(() => {
40
+ if (!this.labelDropEntity)
41
+ return;
42
+ if (this.cancelAnimation) {
43
+ clearInterval(interval);
44
+ this.cancelAnimation = false;
45
+ resolve(false);
46
+ return;
47
+ }
48
+ const currentTime = Date.now();
49
+ if (currentTime >= endTime || this.cancelAnimation) {
50
+ this._isAnimating = false;
51
+ this.labelDropEntity.dragAlpha = 0;
52
+ this.labelDropEntity.dragLabelTransform.worldPosition =
53
+ this.desiredFinalPosition;
54
+ clearInterval(interval);
55
+ resolve(true);
56
+ }
57
+ else if (currentTime >= fadeStartTime) {
58
+ const animationPercent = (currentTime - fadeStartTime) / this.fadeDurationMS;
59
+ const acceleratorValue = 1.5;
60
+ let alpha = 1 - acceleratorValue * animationPercent;
61
+ if (alpha < 0)
62
+ alpha = 0;
63
+ this.labelDropEntity.dragAlpha = alpha;
64
+ const easedPercent = Utilities_1.cubicOut(animationPercent);
65
+ const lerpedPos = ValueObjects_1.Vector3.Lerp(startPosition, this.desiredFinalPosition, easedPercent);
66
+ this.labelDropEntity.dragLabelTransform.worldPosition = lerpedPos;
67
+ }
68
+ }, this.intervalDeltaMS);
69
+ });
70
+ };
71
+ this.cancel = () => {
72
+ if (!this.getIsAnimating()) {
73
+ return;
74
+ }
75
+ this.cancelAnimation = true;
76
+ };
77
+ this.labelDropEntity = appObject.getComponent(LabelDropRepo_1.LabelDropRepo.type);
78
+ if (!this.labelDropEntity) {
79
+ this.error("UC added to an app object that does not have a LabelDropEntity");
80
+ }
81
+ this.appObjects.registerSingleton(this);
82
+ }
83
+ getIsAnimating() {
84
+ return this._isAnimating;
85
+ }
86
+ }
@@ -0,0 +1,7 @@
1
+ import { AppObject, AppObjectUC } from "../../../AppObject";
2
+ export declare class InitializeLabelDropLabelHook extends AppObjectUC {
3
+ static type: string;
4
+ private get item();
5
+ onChangeLabelDropEntity: () => void;
6
+ constructor(appObject: AppObject);
7
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InitializeLabelDropLabelHook = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const Entities_1 = require("../../Label/Entities");
6
+ const LabelDropItemEntity_1 = require("../Entities/LabelDropItemEntity");
7
+ class InitializeLabelDropLabelHook extends AppObject_1.AppObjectUC {
8
+ constructor(appObject) {
9
+ var _a;
10
+ super(appObject, InitializeLabelDropLabelHook.type);
11
+ this.onChangeLabelDropEntity = () => {
12
+ if (!this.item)
13
+ return;
14
+ if (this.item.label || this.item.targetIds.length > 1) {
15
+ this.item.removeChangeObserver(this.onChangeLabelDropEntity);
16
+ return;
17
+ }
18
+ if (this.item.targetIds.length === 0) {
19
+ return;
20
+ }
21
+ const firstTarget = this.item.targetIds[0];
22
+ const label = Entities_1.LabelEntity.getByID(firstTarget, this.appObjects);
23
+ if (!label) {
24
+ return;
25
+ }
26
+ this.item.removeChangeObserver(this.onChangeLabelDropEntity);
27
+ this.item.label = label.display;
28
+ };
29
+ (_a = this.item) === null || _a === void 0 ? void 0 : _a.addChangeObserver(this.onChangeLabelDropEntity);
30
+ }
31
+ get item() {
32
+ return this.getCachedLocalComponent(LabelDropItemEntity_1.LabelDropItemEntity.type);
33
+ }
34
+ }
35
+ exports.InitializeLabelDropLabelHook = InitializeLabelDropLabelHook;
36
+ InitializeLabelDropLabelHook.type = "InitializeLabelDropLabelHook";
@@ -0,0 +1,5 @@
1
+ export interface LabelDropAnimationI {
2
+ getIsAnimating(): boolean;
3
+ start: () => Promise<boolean>;
4
+ cancel: () => void;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,21 @@
1
+ import { AppObject, AppObjectUC } from "../../../AppObject";
2
+ import { SerializedSystem } from "../../StateMachine/Entities/StateMachineEntity";
3
+ export declare class SerializeLabelDrop extends AppObjectUC implements SerializedSystem {
4
+ static readonly type = "SerializeLabelDrop";
5
+ name: string;
6
+ seriliziationVersion: number;
7
+ private get labelDrop();
8
+ getSystemState(): object;
9
+ applySystemState(state: object, version: number): void;
10
+ private applyStateV1;
11
+ applyDefaultState(): void;
12
+ constructor(appObject: AppObject);
13
+ }
14
+ export interface SerializedLabelDropV1 {
15
+ labelDrops: SerializedLabelDropItemV1[];
16
+ }
17
+ export interface SerializedLabelDropItemV1 {
18
+ id: string;
19
+ label: string;
20
+ correctAppObjectIDs: string[];
21
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializeLabelDrop = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const StateMachineEntity_1 = require("../../StateMachine/Entities/StateMachineEntity");
6
+ const LabelDropRepo_1 = require("../Entities/LabelDropRepo");
7
+ class SerializeLabelDrop extends AppObject_1.AppObjectUC {
8
+ constructor(appObject) {
9
+ super(appObject, SerializeLabelDrop.type);
10
+ this.name = "label-drop";
11
+ this.seriliziationVersion = 1;
12
+ const stateMachine = StateMachineEntity_1.StateMachineEntity.get(appObject.appObjectRepo);
13
+ if (stateMachine) {
14
+ stateMachine.registerSerializedSystem(this);
15
+ }
16
+ else {
17
+ this.error("Unable to find StateMachineEntity");
18
+ }
19
+ }
20
+ get labelDrop() {
21
+ return this.getCachedSingleton(LabelDropRepo_1.LabelDropRepo.type);
22
+ }
23
+ getSystemState() {
24
+ if (!this.labelDrop)
25
+ return {};
26
+ const labelDrops = this.labelDrop
27
+ .getAll()
28
+ .map((dropItem) => {
29
+ return {
30
+ id: dropItem.id,
31
+ label: dropItem.labelEntity.custom,
32
+ correctAppObjectIDs: dropItem.targetIds,
33
+ };
34
+ });
35
+ const state = {
36
+ labelDrops,
37
+ };
38
+ return state;
39
+ }
40
+ applySystemState(state, version) {
41
+ if (version === 1) {
42
+ this.applyStateV1(state);
43
+ }
44
+ else {
45
+ this.applyDefaultState();
46
+ }
47
+ }
48
+ applyStateV1(state) {
49
+ if (!this.labelDrop)
50
+ return;
51
+ if (state.labelDrops === undefined) {
52
+ this.applyDefaultState();
53
+ return;
54
+ }
55
+ this.labelDrop.deleteAllItems();
56
+ state.labelDrops.forEach((dropItem) => {
57
+ const item = this.labelDrop.makeLabelDropItem(dropItem.id);
58
+ item.labelEntity.custom = dropItem.label;
59
+ item.targetIds = dropItem.correctAppObjectIDs;
60
+ });
61
+ }
62
+ applyDefaultState() {
63
+ if (!this.labelDrop)
64
+ return;
65
+ this.labelDrop.deleteAllItems();
66
+ }
67
+ }
68
+ exports.SerializeLabelDrop = SerializeLabelDrop;
69
+ SerializeLabelDrop.type = "SerializeLabelDrop";
@@ -0,0 +1,10 @@
1
+ import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
+ import { ParametricLine, Vector2 } from "../../../ValueObjects";
3
+ export declare abstract class ToggleLabelDropTargetUC extends AppObjectUC {
4
+ static readonly type = "ToggleLabelDropTargetUC";
5
+ abstract tryToggleFromRay(ray: ParametricLine): void;
6
+ abstract tryToggleFromPixel(pixel: Vector2): void;
7
+ abstract toggleByID(id: string): void;
8
+ static get(appObjects: AppObjectRepo): ToggleLabelDropTargetUC | undefined;
9
+ }
10
+ export declare function makeToggleLabelDropTargetUC(appObject: AppObject): ToggleLabelDropTargetUC;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeToggleLabelDropTargetUC = exports.ToggleLabelDropTargetUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const UC_1 = require("../../Babylon/UC");
6
+ const LabelDropRepo_1 = require("../Entities/LabelDropRepo");
7
+ class ToggleLabelDropTargetUC extends AppObject_1.AppObjectUC {
8
+ static get(appObjects) {
9
+ return AppObject_1.getSingletonComponent(ToggleLabelDropTargetUC.type, appObjects);
10
+ }
11
+ }
12
+ exports.ToggleLabelDropTargetUC = ToggleLabelDropTargetUC;
13
+ ToggleLabelDropTargetUC.type = "ToggleLabelDropTargetUC";
14
+ function makeToggleLabelDropTargetUC(appObject) {
15
+ return new ToggleLabelDropTargetUCImp(appObject);
16
+ }
17
+ exports.makeToggleLabelDropTargetUC = makeToggleLabelDropTargetUC;
18
+ class ToggleLabelDropTargetUCImp extends ToggleLabelDropTargetUC {
19
+ get repo() {
20
+ return this.getCachedSingleton(LabelDropRepo_1.LabelDropRepo.type);
21
+ }
22
+ get sceneRayPick() {
23
+ var _a;
24
+ return (_a = this.getCachedSingleton(UC_1.SceneRayPickUC.type)) === null || _a === void 0 ? void 0 : _a.sceneRayPick;
25
+ }
26
+ get pixelToRay() {
27
+ var _a;
28
+ return (_a = this.getCachedSingleton(UC_1.PixelToSceneRayUC.type)) === null || _a === void 0 ? void 0 : _a.pixelToSceneRay;
29
+ }
30
+ tryToggleFromPixel(pixel) {
31
+ if (!this.pixelToRay)
32
+ return;
33
+ const ray = this.pixelToRay(pixel);
34
+ if (!ray)
35
+ return;
36
+ this.tryToggleFromRay(ray);
37
+ }
38
+ toggleByID(id) {
39
+ if (!this.repo)
40
+ return;
41
+ if (!this.repo.editingID)
42
+ return;
43
+ const editingItem = this.repo.getForAppObject(this.repo.editingID);
44
+ if (!editingItem)
45
+ return;
46
+ if (editingItem.targetIds.includes(id)) {
47
+ editingItem.removeTargetID(id);
48
+ }
49
+ else {
50
+ editingItem.addTargetID(id);
51
+ }
52
+ }
53
+ tryToggleFromRay(ray) {
54
+ var _a;
55
+ if (!this.sceneRayPick)
56
+ return;
57
+ const pickedID = (_a = this.sceneRayPick(ray)) === null || _a === void 0 ? void 0 : _a.appObjectID;
58
+ if (!pickedID)
59
+ return;
60
+ this.toggleByID(pickedID);
61
+ }
62
+ constructor(appObject) {
63
+ super(appObject, ToggleLabelDropTargetUC.type);
64
+ this.appObjects.registerSingleton(this);
65
+ }
66
+ }
@@ -0,0 +1,9 @@
1
+ import { AppObject, AppObjectRepo, AppObjectUC } from "../../../AppObject";
2
+ export declare abstract class ValidateLabelDrop extends AppObjectUC {
3
+ static type: string;
4
+ abstract validate(): string | null;
5
+ LABEL_DROP_ANSWER_REQUIRED: string;
6
+ LABEL_DROP_STILL_EDITING: string;
7
+ static get(appObjects: AppObjectRepo): ValidateLabelDrop | undefined;
8
+ }
9
+ export declare function makeValidateLabelDrop(appObject: AppObject): ValidateLabelDrop;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeValidateLabelDrop = exports.ValidateLabelDrop = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
5
+ const BaseAppState_1 = require("../../BaseApp/Entity/BaseAppState");
6
+ const LabelDropRepo_1 = require("../Entities/LabelDropRepo");
7
+ class ValidateLabelDrop extends AppObject_1.AppObjectUC {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.LABEL_DROP_ANSWER_REQUIRED = "At least one label drop answer item is required";
11
+ this.LABEL_DROP_STILL_EDITING = "Cannot save while still editing a label drop answer";
12
+ }
13
+ static get(appObjects) {
14
+ return AppObject_1.getSingletonComponent(ValidateLabelDrop.type, appObjects);
15
+ }
16
+ }
17
+ exports.ValidateLabelDrop = ValidateLabelDrop;
18
+ ValidateLabelDrop.type = "ValidateLabelDrop";
19
+ function makeValidateLabelDrop(appObject) {
20
+ return new ValidateLabelDropImp(appObject);
21
+ }
22
+ exports.makeValidateLabelDrop = makeValidateLabelDrop;
23
+ class ValidateLabelDropImp extends ValidateLabelDrop {
24
+ constructor(appObject) {
25
+ super(appObject, ValidateLabelDrop.type);
26
+ this.validate = () => {
27
+ if (!this.labelDrop) {
28
+ this.error("Unable to find Label Drop Repo");
29
+ return null;
30
+ }
31
+ if (this.labelDrop.getAll().length === 0) {
32
+ return this.LABEL_DROP_ANSWER_REQUIRED;
33
+ }
34
+ if (this.labelDrop.editingID) {
35
+ return this.LABEL_DROP_STILL_EDITING;
36
+ }
37
+ let itemValidation;
38
+ this.labelDrop.getAll().forEach((item) => {
39
+ if (item.labelEntity.customLabelValidationMessage) {
40
+ itemValidation = item.labelEntity.customLabelValidationMessage;
41
+ }
42
+ if (item.targetValidationMessage) {
43
+ itemValidation = item.targetValidationMessage;
44
+ }
45
+ });
46
+ if (itemValidation) {
47
+ return itemValidation;
48
+ }
49
+ return null;
50
+ };
51
+ this.appObjects.registerSingleton(this);
52
+ }
53
+ get baseApp() {
54
+ return this.getCachedSingleton(BaseAppState_1.BaseAppState.type);
55
+ }
56
+ get labelDrop() {
57
+ return this.getCachedSingleton(LabelDropRepo_1.LabelDropRepo.type);
58
+ }
59
+ }
@@ -0,0 +1,14 @@
1
+ export * from "./CorrectAnimationUC";
2
+ export * from "./DeleteAllLabelDropUC";
3
+ export * from "./DeleteLabelDropUC";
4
+ export * from "./DragLabelDropUC";
5
+ export * from "./DragLabelDropWorldUC";
6
+ export * from "./DropOnNothingAnimationUC";
7
+ export * from "./EditLabelDropUC";
8
+ export * from "./IncorrectAnimationUC";
9
+ export * from "./InitializeLabelDropLabelHook";
10
+ export * from "./LabelDropAnimation";
11
+ export * from "./SerializeLabelDrop";
12
+ export * from "./ToggleLabelDropTargetUC";
13
+ export * from "./ValidateLabelDrop";
14
+ export * from "./labelDropLabelValidator";
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./CorrectAnimationUC"), exports);
14
+ __exportStar(require("./DeleteAllLabelDropUC"), exports);
15
+ __exportStar(require("./DeleteLabelDropUC"), exports);
16
+ __exportStar(require("./DragLabelDropUC"), exports);
17
+ __exportStar(require("./DragLabelDropWorldUC"), exports);
18
+ __exportStar(require("./DropOnNothingAnimationUC"), exports);
19
+ __exportStar(require("./EditLabelDropUC"), exports);
20
+ __exportStar(require("./IncorrectAnimationUC"), exports);
21
+ __exportStar(require("./InitializeLabelDropLabelHook"), exports);
22
+ __exportStar(require("./LabelDropAnimation"), exports);
23
+ __exportStar(require("./SerializeLabelDrop"), exports);
24
+ __exportStar(require("./ToggleLabelDropTargetUC"), exports);
25
+ __exportStar(require("./ValidateLabelDrop"), exports);
26
+ __exportStar(require("./labelDropLabelValidator"), exports);
@@ -0,0 +1 @@
1
+ export declare function labelDropLabelValidator(val: string): string | null;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.labelDropLabelValidator = void 0;
4
+ const LabelDropItemEntity_1 = require("../Entities/LabelDropItemEntity");
5
+ function labelDropLabelValidator(val) {
6
+ if (!val) {
7
+ return LabelDropItemEntity_1.LabelDropItemEntity.LABEL_DROP_EMPTY;
8
+ }
9
+ else if (val.length > 40) {
10
+ return LabelDropItemEntity_1.LabelDropItemEntity.LABEL_DROP_TOO_LONG;
11
+ }
12
+ else {
13
+ return null;
14
+ }
15
+ }
16
+ exports.labelDropLabelValidator = labelDropLabelValidator;
@@ -0,0 +1,6 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controller";
3
+ export * from "./Entities";
4
+ export * from "./Mocks";
5
+ export * from "./PM";
6
+ export * from "./UseCases";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Adapters"), exports);
14
+ __exportStar(require("./Controller"), exports);
15
+ __exportStar(require("./Entities"), exports);
16
+ __exportStar(require("./Mocks"), exports);
17
+ __exportStar(require("./PM"), exports);
18
+ __exportStar(require("./UseCases"), exports);
@@ -2,10 +2,16 @@ import { AppObject } from "../../../AppObject/AppObject";
2
2
  import { AppObjectEntity } from "../../../AppObject/AppObjectEntity";
3
3
  import { AppObjectRepo } from "../../../AppObject/AppObjectRepo";
4
4
  import { QuestionAnswerEntity } from "./QuestionAnswerEntity";
5
+ import { Challenge } from "../../Challenge/Entities";
5
6
  export declare const VALIDATION_NO_CORRECT = "At least one answer must be correct.";
6
7
  export declare const VALIDATION_NOT_ENOUGH_ANSWERS = "Question must have at least two answers";
7
- export declare abstract class QuestionEntity extends AppObjectEntity {
8
+ export declare abstract class QuestionEntity extends AppObjectEntity implements Challenge {
8
9
  static readonly type = "QuestionEntity";
10
+ readonly challengeID = "QUESTION";
11
+ name: string;
12
+ helpHeading: string;
13
+ consumerHelpText: string;
14
+ authorHelpText: string;
9
15
  abstract get gotItRight(): boolean;
10
16
  abstract get reviewFeedback(): string;
11
17
  abstract addAnswer: (answer: QuestionAnswerEntity) => void;