@vived/app 4.23.0 → 4.24.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 (275) hide show
  1. package/lib/AppObject/index.d.ts +1 -0
  2. package/lib/AppObject/index.js +1 -0
  3. package/lib/AppObject/printAppObjectDetails.d.ts +2 -0
  4. package/lib/AppObject/printAppObjectDetails.js +18 -0
  5. package/lib/Components/ChannelModel/Adapters/activeModelAdapter.js +2 -2
  6. package/lib/Components/ChannelModel/Adapters/activeModelObjectListAdapter.d.ts +2 -0
  7. package/lib/Components/ChannelModel/Adapters/activeModelObjectListAdapter.js +23 -0
  8. package/lib/Components/ChannelModel/Adapters/index.d.ts +2 -0
  9. package/lib/Components/ChannelModel/Adapters/index.js +2 -0
  10. package/lib/Components/ChannelModel/Adapters/modelObjectsAreHiddenAdapter.d.ts +2 -0
  11. package/lib/Components/ChannelModel/Adapters/modelObjectsAreHiddenAdapter.js +27 -0
  12. package/lib/Components/ChannelModel/Controllers/index.d.ts +1 -1
  13. package/lib/Components/ChannelModel/Controllers/index.js +1 -1
  14. package/lib/Components/ChannelModel/Controllers/setModelObjectLabel.js +1 -1
  15. package/lib/Components/ChannelModel/Controllers/unhideAllActiveObjects.d.ts +2 -0
  16. package/lib/Components/ChannelModel/Controllers/unhideAllActiveObjects.js +23 -0
  17. package/lib/Components/ChannelModel/Entities/ChannelModel.d.ts +2 -0
  18. package/lib/Components/ChannelModel/Entities/ChannelModel.js +11 -2
  19. package/lib/Components/ChannelModel/Entities/ChannelModelObject.d.ts +2 -4
  20. package/lib/Components/ChannelModel/Entities/ChannelModelObject.js +3 -20
  21. package/lib/Components/ChannelModel/Mocks/ActiveModelObjectListMock.d.ts +8 -0
  22. package/lib/Components/ChannelModel/Mocks/ActiveModelObjectListMock.js +15 -0
  23. package/lib/Components/ChannelModel/Mocks/ModelObjectsAreHiddenPMMock.d.ts +7 -0
  24. package/lib/Components/ChannelModel/Mocks/ModelObjectsAreHiddenPMMock.js +11 -0
  25. package/lib/Components/ChannelModel/Mocks/UnhideAllChannelModelObjectsUCMock.d.ts +7 -0
  26. package/lib/Components/ChannelModel/Mocks/UnhideAllChannelModelObjectsUCMock.js +11 -0
  27. package/lib/Components/ChannelModel/Mocks/index.d.ts +3 -0
  28. package/lib/Components/ChannelModel/Mocks/index.js +3 -0
  29. package/lib/Components/ChannelModel/PMs/ActiveModelObjectListPM.d.ts +14 -0
  30. package/lib/Components/ChannelModel/PMs/ActiveModelObjectListPM.js +60 -0
  31. package/lib/Components/ChannelModel/PMs/ChannelModelObjectPM.js +2 -2
  32. package/lib/Components/ChannelModel/PMs/ChannelModelPM.js +1 -1
  33. package/lib/Components/ChannelModel/PMs/ModelObjectsAreHiddenPM.d.ts +6 -0
  34. package/lib/Components/ChannelModel/PMs/ModelObjectsAreHiddenPM.js +58 -0
  35. package/lib/Components/ChannelModel/PMs/index.d.ts +2 -0
  36. package/lib/Components/ChannelModel/PMs/index.js +2 -0
  37. package/lib/Components/ChannelModel/UC/SelectChannelModelUC.js +3 -0
  38. package/lib/Components/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.d.ts +10 -0
  39. package/lib/Components/ChannelModel/UC/UnhideAllAppObjectsUndoRedo.js +39 -0
  40. package/lib/Components/ChannelModel/UC/UnhideAllChannelModelObjectsUC.d.ts +7 -0
  41. package/lib/Components/ChannelModel/UC/UnhideAllChannelModelObjectsUC.js +51 -0
  42. package/lib/Components/ChannelModel/UC/index.d.ts +2 -0
  43. package/lib/Components/ChannelModel/UC/index.js +2 -0
  44. package/lib/Components/Enablement/Adapters/enablementAdapter.d.ts +2 -0
  45. package/lib/Components/Enablement/Adapters/enablementAdapter.js +23 -0
  46. package/lib/Components/Enablement/Adapters/index.d.ts +1 -0
  47. package/lib/Components/Enablement/Adapters/index.js +13 -0
  48. package/lib/Components/Enablement/Entities/EnablementEntity.d.ts +17 -0
  49. package/lib/Components/Enablement/Entities/EnablementEntity.js +37 -0
  50. package/lib/Components/Enablement/Entities/index.d.ts +1 -1
  51. package/lib/Components/Enablement/Entities/index.js +1 -1
  52. package/lib/Components/Enablement/Mocks/EnabledStatePMMock.d.ts +7 -0
  53. package/lib/Components/Enablement/Mocks/EnabledStatePMMock.js +11 -0
  54. package/lib/Components/Enablement/Mocks/index.d.ts +1 -0
  55. package/lib/Components/Enablement/Mocks/index.js +13 -0
  56. package/lib/Components/Enablement/PM/EnabledStatePM.d.ts +8 -0
  57. package/lib/Components/Enablement/PM/EnabledStatePM.js +46 -0
  58. package/lib/Components/Enablement/PM/index.d.ts +1 -1
  59. package/lib/Components/Enablement/PM/index.js +1 -1
  60. package/lib/Components/Enablement/index.d.ts +2 -0
  61. package/lib/Components/Enablement/index.js +2 -0
  62. package/lib/Components/Hideable/Adapters/index.d.ts +1 -0
  63. package/lib/Components/Hideable/Adapters/index.js +13 -0
  64. package/lib/Components/Hideable/Adapters/isHiddenAdapter.d.ts +2 -0
  65. package/lib/Components/Hideable/Adapters/isHiddenAdapter.js +23 -0
  66. package/lib/Components/Hideable/Controllers/HideMC.d.ts +10 -0
  67. package/lib/Components/Hideable/Controllers/HideMC.js +32 -0
  68. package/lib/Components/Hideable/Controllers/HideTC.d.ts +10 -0
  69. package/lib/Components/Hideable/Controllers/HideTC.js +32 -0
  70. package/lib/Components/Hideable/Controllers/clickToggleIsHidden.d.ts +2 -0
  71. package/lib/Components/Hideable/Controllers/clickToggleIsHidden.js +14 -0
  72. package/lib/Components/Hideable/Controllers/index.d.ts +3 -0
  73. package/lib/Components/Hideable/Controllers/index.js +15 -0
  74. package/lib/Components/Hideable/Entities/Hideable.d.ts +2 -2
  75. package/lib/Components/Hideable/Entities/Hideable.js +6 -2
  76. package/lib/Components/Hideable/Mocks/HideUCMock.d.ts +8 -0
  77. package/lib/Components/Hideable/Mocks/HideUCMock.js +12 -0
  78. package/lib/Components/Hideable/Mocks/IsHiddenPMock.d.ts +7 -0
  79. package/lib/Components/Hideable/Mocks/IsHiddenPMock.js +11 -0
  80. package/lib/Components/Hideable/Mocks/TryHideWithPickUCMock.d.ts +9 -0
  81. package/lib/Components/Hideable/Mocks/TryHideWithPickUCMock.js +16 -0
  82. package/lib/Components/Hideable/Mocks/index.d.ts +3 -0
  83. package/lib/Components/Hideable/Mocks/index.js +15 -0
  84. package/lib/Components/Hideable/PM/IsHiddenPM.d.ts +3 -7
  85. package/lib/Components/Hideable/PM/IsHiddenPM.js +20 -12
  86. package/lib/Components/Hideable/UCs/HideUC.d.ts +8 -0
  87. package/lib/Components/Hideable/UCs/HideUC.js +74 -0
  88. package/lib/Components/Hideable/UCs/TryHideWithPickUC.d.ts +9 -0
  89. package/lib/Components/Hideable/UCs/TryHideWithPickUC.js +62 -0
  90. package/lib/Components/Hideable/UCs/index.d.ts +2 -0
  91. package/lib/Components/Hideable/UCs/index.js +14 -0
  92. package/lib/Components/Hideable/index.d.ts +4 -0
  93. package/lib/Components/Hideable/index.js +4 -0
  94. package/lib/Components/HoverLabel/Adapters/allowHoverLabelAdapter.d.ts +2 -0
  95. package/lib/Components/HoverLabel/Adapters/allowHoverLabelAdapter.js +23 -0
  96. package/lib/Components/HoverLabel/Adapters/index.d.ts +3 -0
  97. package/lib/Components/HoverLabel/Adapters/index.js +15 -0
  98. package/lib/Components/HoverLabel/Adapters/screenHoverLabelAdapter.d.ts +3 -0
  99. package/lib/Components/HoverLabel/Adapters/screenHoverLabelAdapter.js +23 -0
  100. package/lib/Components/HoverLabel/Adapters/worldHoverLabelAdapter.d.ts +3 -0
  101. package/lib/Components/HoverLabel/Adapters/worldHoverLabelAdapter.js +23 -0
  102. package/lib/Components/HoverLabel/Controllers/HoverLabelMouse.js +2 -2
  103. package/lib/Components/HoverLabel/Controllers/HoverLabelTouch.js +2 -2
  104. package/lib/Components/HoverLabel/Controllers/index.d.ts +1 -1
  105. package/lib/Components/HoverLabel/Controllers/index.js +1 -1
  106. package/lib/Components/HoverLabel/Controllers/toggleAllowHoverLabel.d.ts +2 -0
  107. package/lib/Components/HoverLabel/Controllers/toggleAllowHoverLabel.js +13 -0
  108. package/lib/Components/HoverLabel/Entities/HoverLabelEntity.d.ts +23 -0
  109. package/lib/Components/HoverLabel/Entities/HoverLabelEntity.js +102 -0
  110. package/lib/Components/HoverLabel/Entities/index.d.ts +1 -1
  111. package/lib/Components/HoverLabel/Entities/index.js +1 -1
  112. package/lib/Components/HoverLabel/Mocks/AllowHoverLabelPmMock.d.ts +8 -0
  113. package/lib/Components/HoverLabel/Mocks/AllowHoverLabelPmMock.js +15 -0
  114. package/lib/Components/HoverLabel/Mocks/ScreenHoverLabelPmMock.d.ts +8 -0
  115. package/lib/Components/HoverLabel/Mocks/ScreenHoverLabelPmMock.js +15 -0
  116. package/lib/Components/HoverLabel/Mocks/WorldHoverLabelPmMock.d.ts +8 -0
  117. package/lib/Components/HoverLabel/Mocks/WorldHoverLabelPmMock.js +15 -0
  118. package/lib/Components/HoverLabel/Mocks/index.d.ts +4 -0
  119. package/lib/Components/HoverLabel/Mocks/index.js +16 -0
  120. package/lib/Components/HoverLabel/PM/AllowHoverLabelPM.d.ts +4 -9
  121. package/lib/Components/HoverLabel/PM/AllowHoverLabelPM.js +16 -26
  122. package/lib/Components/HoverLabel/PM/ScreenHoverLabelPM.d.ts +2 -6
  123. package/lib/Components/HoverLabel/PM/ScreenHoverLabelPM.js +18 -20
  124. package/lib/Components/HoverLabel/PM/WorldHoverLabelPM.d.ts +2 -6
  125. package/lib/Components/HoverLabel/PM/WorldHoverLabelPM.js +18 -20
  126. package/lib/Components/HoverLabel/UseCases/SerializeAllowHoverLabel.js +2 -2
  127. package/lib/Components/HoverLabel/UseCases/ToggleAllowHoverLabel.js +2 -2
  128. package/lib/Components/HoverLabel/UseCases/TryShowHoverLabel.js +3 -3
  129. package/lib/Components/HoverLabel/index.d.ts +2 -0
  130. package/lib/Components/HoverLabel/index.js +2 -0
  131. package/lib/Components/KeyboardInput/Mocks/index.d.ts +1 -0
  132. package/lib/Components/KeyboardInput/Mocks/index.js +13 -0
  133. package/lib/Components/KeyboardInput/index.d.ts +1 -0
  134. package/lib/Components/KeyboardInput/index.js +1 -0
  135. package/lib/Components/Label/Adapters/index.d.ts +1 -0
  136. package/lib/Components/Label/Adapters/index.js +13 -0
  137. package/lib/Components/Label/Adapters/labelAdapter.d.ts +3 -0
  138. package/lib/Components/Label/Adapters/labelAdapter.js +23 -0
  139. package/lib/Components/Label/Entities/Label.d.ts +2 -1
  140. package/lib/Components/Label/Entities/Label.js +6 -0
  141. package/lib/Components/Label/Entities/LabelEntity.d.ts +16 -0
  142. package/lib/Components/Label/Entities/LabelEntity.js +67 -0
  143. package/lib/Components/Label/Entities/index.d.ts +1 -1
  144. package/lib/Components/Label/Entities/index.js +1 -1
  145. package/lib/Components/Label/Mocks/LabelPMMock.d.ts +7 -0
  146. package/lib/Components/Label/Mocks/LabelPMMock.js +11 -0
  147. package/lib/Components/Label/Mocks/index.d.ts +1 -0
  148. package/lib/Components/Label/Mocks/index.js +13 -0
  149. package/lib/Components/Label/PM/LabelPM.d.ts +3 -7
  150. package/lib/Components/Label/PM/LabelPM.js +26 -20
  151. package/lib/Components/Label/UC/ClearCustomLabelUC.d.ts +1 -1
  152. package/lib/Components/Label/UC/ClearCustomLabelUC.js +3 -4
  153. package/lib/Components/Label/UC/ClearCustomLabelUndoRedo.js +1 -1
  154. package/lib/Components/Label/UC/SetCustomLabelUC.d.ts +1 -1
  155. package/lib/Components/Label/UC/SetCustomLabelUC.js +3 -4
  156. package/lib/Components/Label/UC/SetCustomLabelUndoRedo.js +1 -1
  157. package/lib/Components/Label/index.d.ts +3 -1
  158. package/lib/Components/Label/index.js +3 -1
  159. package/lib/Components/Landmarks/Entities/LandmarkEntity.d.ts +2 -2
  160. package/lib/Components/Landmarks/Entities/LandmarkEntity.js +1 -1
  161. package/lib/Components/Landmarks/Mocks/MockLandmark.d.ts +2 -2
  162. package/lib/Components/Landmarks/UseCases/AddLandmarkUC.js +1 -1
  163. package/lib/Components/Landmarks/UseCases/SerializeLandmarks.d.ts +1 -1
  164. package/lib/Components/Landmarks/UseCases/SerializeLandmarks.js +4 -4
  165. package/lib/Components/Landmarks/UseCases/TryAddNewLandmarkUC.js +1 -1
  166. package/lib/Components/OverlayColor/Adapters/index.d.ts +1 -0
  167. package/lib/Components/OverlayColor/Adapters/index.js +13 -0
  168. package/lib/Components/OverlayColor/Adapters/overlayColorAdapter.d.ts +3 -0
  169. package/lib/Components/OverlayColor/Adapters/overlayColorAdapter.js +24 -0
  170. package/lib/Components/OverlayColor/Entities/OverlayColor.d.ts +2 -1
  171. package/lib/Components/OverlayColor/Entities/OverlayColor.js +4 -0
  172. package/lib/Components/OverlayColor/Mocks/OverlayColorPMMock.d.ts +7 -0
  173. package/lib/Components/OverlayColor/Mocks/OverlayColorPMMock.js +11 -0
  174. package/lib/Components/OverlayColor/Mocks/index.d.ts +1 -0
  175. package/lib/Components/OverlayColor/Mocks/index.js +13 -0
  176. package/lib/Components/OverlayColor/PM/OverlayColorPM.d.ts +2 -6
  177. package/lib/Components/OverlayColor/PM/OverlayColorPM.js +20 -12
  178. package/lib/Components/OverlayColor/index.d.ts +3 -1
  179. package/lib/Components/OverlayColor/index.js +3 -1
  180. package/lib/Components/Selection/Adapters/index.d.ts +2 -0
  181. package/lib/Components/Selection/Adapters/index.js +14 -0
  182. package/lib/Components/Selection/Adapters/selectableStateAdapter.d.ts +3 -0
  183. package/lib/Components/Selection/Adapters/selectableStateAdapter.js +23 -0
  184. package/lib/Components/Selection/Adapters/selectedObjectAdapter.d.ts +2 -0
  185. package/lib/Components/Selection/Adapters/selectedObjectAdapter.js +23 -0
  186. package/lib/Components/Selection/Controller/MouseHoverOnAppObject.js +1 -1
  187. package/lib/Components/Selection/Controller/MousePressOnAppObject.js +3 -3
  188. package/lib/Components/Selection/Controller/MouseSelectAppObject.js +1 -1
  189. package/lib/Components/Selection/Controller/StylusHoverOnAppObjectSC.d.ts +11 -0
  190. package/lib/Components/Selection/Controller/StylusHoverOnAppObjectSC.js +41 -0
  191. package/lib/Components/Selection/Controller/StylusPressOnAppObjectSC.d.ts +18 -0
  192. package/lib/Components/Selection/Controller/StylusPressOnAppObjectSC.js +70 -0
  193. package/lib/Components/Selection/Controller/StylusSelectAppObjectSC.d.ts +11 -0
  194. package/lib/Components/Selection/Controller/StylusSelectAppObjectSC.js +39 -0
  195. package/lib/Components/Selection/Controller/TapToSelectAppObject.js +1 -1
  196. package/lib/Components/Selection/Controller/TouchPressOnAppObject.js +4 -4
  197. package/lib/Components/Selection/Controller/index.d.ts +5 -3
  198. package/lib/Components/Selection/Controller/index.js +5 -3
  199. package/lib/Components/Selection/Controller/selectAppObject.d.ts +2 -0
  200. package/lib/Components/Selection/Controller/selectAppObject.js +14 -0
  201. package/lib/Components/Selection/Controller/setHoverOnAppObject.d.ts +2 -0
  202. package/lib/Components/Selection/Controller/setHoverOnAppObject.js +14 -0
  203. package/lib/Components/Selection/Entities/Selection.d.ts +1 -0
  204. package/lib/Components/Selection/Entities/Selection.js +9 -3
  205. package/lib/Components/Selection/Mocks/HoverAppObjectUCMock.d.ts +10 -0
  206. package/lib/Components/Selection/Mocks/HoverAppObjectUCMock.js +14 -0
  207. package/lib/Components/Selection/Mocks/PressAppObjectUCMock.d.ts +10 -0
  208. package/lib/Components/Selection/Mocks/PressAppObjectUCMock.js +14 -0
  209. package/lib/Components/Selection/Mocks/SelectAppObjectUCMock.d.ts +10 -0
  210. package/lib/Components/Selection/Mocks/SelectAppObjectUCMock.js +14 -0
  211. package/lib/Components/Selection/Mocks/SelectableStatePMMock.d.ts +7 -0
  212. package/lib/Components/Selection/Mocks/SelectableStatePMMock.js +11 -0
  213. package/lib/Components/Selection/Mocks/SelectedObjectPMMock.d.ts +8 -0
  214. package/lib/Components/Selection/Mocks/SelectedObjectPMMock.js +15 -0
  215. package/lib/Components/Selection/Mocks/index.d.ts +5 -0
  216. package/lib/Components/Selection/Mocks/index.js +17 -0
  217. package/lib/Components/Selection/PM/SelectableStatePM.d.ts +5 -7
  218. package/lib/Components/Selection/PM/SelectableStatePM.js +25 -18
  219. package/lib/Components/Selection/PM/SelectedObjectPM.d.ts +2 -0
  220. package/lib/Components/Selection/PM/SelectedObjectPM.js +10 -14
  221. package/lib/Components/Selection/UC/HoverAppObjectUC.d.ts +4 -2
  222. package/lib/Components/Selection/UC/HoverAppObjectUC.js +10 -6
  223. package/lib/Components/Selection/UC/PressAppObjectUC.d.ts +4 -2
  224. package/lib/Components/Selection/UC/PressAppObjectUC.js +10 -6
  225. package/lib/Components/Selection/UC/SelectAppObjectUC.d.ts +4 -2
  226. package/lib/Components/Selection/UC/SelectAppObjectUC.js +10 -6
  227. package/lib/Components/Selection/index.d.ts +4 -2
  228. package/lib/Components/Selection/index.js +4 -2
  229. package/lib/Components/Tools/Adapters/index.d.ts +1 -0
  230. package/lib/Components/Tools/Adapters/index.js +13 -0
  231. package/lib/Components/Tools/Adapters/toolAdapter.d.ts +3 -0
  232. package/lib/Components/Tools/Adapters/toolAdapter.js +26 -0
  233. package/lib/Components/Tools/Controller/ToolHotkeys.js +1 -1
  234. package/lib/Components/Tools/Entities/ToolEntity.d.ts +5 -2
  235. package/lib/Components/Tools/Entities/ToolEntity.js +28 -8
  236. package/lib/Components/Tools/Entities/ToolRepository.js +4 -1
  237. package/lib/Components/Tools/Mocks/ToolPMMock.d.ts +8 -0
  238. package/lib/Components/Tools/Mocks/ToolPMMock.js +15 -0
  239. package/lib/Components/Tools/Mocks/index.d.ts +1 -0
  240. package/lib/Components/Tools/Mocks/index.js +13 -0
  241. package/lib/Components/Tools/PM/ToolPM.d.ts +16 -4
  242. package/lib/Components/Tools/PM/ToolPM.js +28 -21
  243. package/lib/Components/Tools/index.d.ts +3 -1
  244. package/lib/Components/Tools/index.js +3 -1
  245. package/lib/Components/TouchController/Entities/TouchInput.d.ts +1 -0
  246. package/lib/Components/TouchController/Entities/TouchInput.js +34 -0
  247. package/lib/Components/TouchController/Mock/index.d.ts +2 -0
  248. package/lib/Components/TouchController/Mock/index.js +14 -0
  249. package/lib/Components/TouchController/index.d.ts +1 -0
  250. package/lib/Components/TouchController/index.js +1 -0
  251. package/lib/Components/Transform3D/Adapters/canBeStuckAdapter.d.ts +2 -0
  252. package/lib/Components/Transform3D/Adapters/canBeStuckAdapter.js +23 -0
  253. package/lib/Components/Transform3D/Adapters/index.d.ts +2 -0
  254. package/lib/Components/Transform3D/Adapters/index.js +14 -0
  255. package/lib/Components/Transform3D/Adapters/transform3dAdapter.d.ts +3 -0
  256. package/lib/Components/Transform3D/Adapters/transform3dAdapter.js +23 -0
  257. package/lib/Components/Transform3D/Entities/Transform3D.d.ts +2 -1
  258. package/lib/Components/Transform3D/Entities/Transform3D.js +4 -0
  259. package/lib/Components/Transform3D/Mocks/CanBeStuckPmMock.d.ts +7 -0
  260. package/lib/Components/Transform3D/Mocks/CanBeStuckPmMock.js +11 -0
  261. package/lib/Components/Transform3D/Mocks/Transform3dPmMock.d.ts +7 -0
  262. package/lib/Components/Transform3D/Mocks/Transform3dPmMock.js +11 -0
  263. package/lib/Components/Transform3D/Mocks/index.d.ts +2 -0
  264. package/lib/Components/Transform3D/Mocks/index.js +2 -0
  265. package/lib/Components/Transform3D/PM/Transform3DPM.d.ts +1 -0
  266. package/lib/Components/Transform3D/PM/Transform3DPM.js +6 -13
  267. package/lib/Components/Transform3D/index.d.ts +1 -0
  268. package/lib/Components/Transform3D/index.js +1 -0
  269. package/lib/Components/UndoRedo/Mocks/MockUndoRedo.d.ts +2 -0
  270. package/lib/Components/UndoRedo/Mocks/MockUndoRedo.js +5 -1
  271. package/lib/Components/UndoRedo/Mocks/index.d.ts +1 -0
  272. package/lib/Components/UndoRedo/Mocks/index.js +13 -0
  273. package/lib/Components/UndoRedo/index.d.ts +1 -0
  274. package/lib/Components/UndoRedo/index.js +1 -0
  275. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { AppObjectRepo } from "../../../AppObject";
1
2
  import { AppObject } from "../../../AppObject/AppObject";
2
3
  import { AppObjectUC } from "../../../AppObject/AppObjectUC";
3
4
  import { ParametricLine } from "../../../ValueObjects/ParametricLine";
@@ -5,7 +6,8 @@ export declare abstract class HoverAppObjectUC extends AppObjectUC {
5
6
  static readonly type = "HoverAppObjectUC";
6
7
  abstract allowHover(): boolean;
7
8
  abstract allowTryHover(): boolean;
8
- abstract hoverSceneObject: (id: string, isHovered: boolean) => void;
9
- abstract tryHoverSceneObject: (ray: ParametricLine) => void;
9
+ abstract hoverAppObject: (id: string, isHovered: boolean) => void;
10
+ abstract tryHoverAppObject: (ray: ParametricLine) => void;
11
+ static get(appObjects: AppObjectRepo): HoverAppObjectUC | undefined;
10
12
  }
11
13
  export declare function makeHoverAppObject(appObject: AppObject): HoverAppObjectUC;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeHoverAppObject = exports.HoverAppObjectUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
4
5
  const AppObjectUC_1 = require("../../../AppObject/AppObjectUC");
5
6
  const Babylon_1 = require("../../Babylon");
6
7
  const Selectable_1 = require("../Entities/Selectable");
7
8
  const Selection_1 = require("../Entities/Selection");
8
9
  class HoverAppObjectUC extends AppObjectUC_1.AppObjectUC {
10
+ static get(appObjects) {
11
+ return AppObject_1.getSingletonComponent(HoverAppObjectUC.type, appObjects);
12
+ }
9
13
  }
10
14
  exports.HoverAppObjectUC = HoverAppObjectUC;
11
15
  HoverAppObjectUC.type = "HoverAppObjectUC";
@@ -22,7 +26,7 @@ class HoverAppObjectUCImp extends HoverAppObjectUC {
22
26
  this.allowTryHover = () => {
23
27
  return true;
24
28
  };
25
- this.tryHoverSceneObject = (ray) => {
29
+ this.tryHoverAppObject = (ray) => {
26
30
  if (!this.selection)
27
31
  return;
28
32
  if (!this.allowTryHover())
@@ -39,7 +43,7 @@ class HoverAppObjectUCImp extends HoverAppObjectUC {
39
43
  }
40
44
  this.selection.hoveredObjectId = rayPick.appObjectID;
41
45
  };
42
- this.hoverSceneObject = (id, isHovered) => {
46
+ this.hoverAppObject = (id, isHovered) => {
43
47
  if (!this.selection)
44
48
  return;
45
49
  if (!this.allowHover())
@@ -51,9 +55,9 @@ class HoverAppObjectUCImp extends HoverAppObjectUC {
51
55
  this.selection.hoveredObjectId = null;
52
56
  }
53
57
  };
54
- this.selection = appObject.getComponent(Selection_1.Selection.type);
55
- if (!this.selection) {
56
- console.warn("HoverAppObjectUCImp has been added to an App Object that does not have a Selection Entity. Add an Entity before adding the UC");
57
- }
58
+ this.appObjects.registerSingleton(this);
59
+ }
60
+ get selection() {
61
+ return this.getCachedSingleton(Selection_1.Selection.type);
58
62
  }
59
63
  }
@@ -1,3 +1,4 @@
1
+ import { AppObjectRepo } from "../../../AppObject";
1
2
  import { AppObject } from "../../../AppObject/AppObject";
2
3
  import { AppObjectUC } from "../../../AppObject/AppObjectUC";
3
4
  import { ParametricLine } from "../../../ValueObjects/ParametricLine";
@@ -5,7 +6,8 @@ export declare abstract class PressAppObjectUC extends AppObjectUC {
5
6
  static readonly type = "PressAppObjectUC";
6
7
  abstract allowPress(): boolean;
7
8
  abstract allowTryPress(): boolean;
8
- abstract pressSceneObject: (id: string | null, isPressed: boolean) => void;
9
- abstract tryPressSceneObject: (ray: ParametricLine) => string | null;
9
+ abstract pressAppObject: (id: string | null, isPressed: boolean) => void;
10
+ abstract tryPressAppObject: (ray: ParametricLine) => string | null;
11
+ static get(appObjects: AppObjectRepo): PressAppObjectUC | undefined;
10
12
  }
11
13
  export declare function makePressAppObject(appObject: AppObject): PressAppObjectUC;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makePressAppObject = exports.PressAppObjectUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
4
5
  const AppObjectUC_1 = require("../../../AppObject/AppObjectUC");
5
6
  const Babylon_1 = require("../../Babylon");
6
7
  const Selectable_1 = require("../Entities/Selectable");
7
8
  const Selection_1 = require("../Entities/Selection");
8
9
  class PressAppObjectUC extends AppObjectUC_1.AppObjectUC {
10
+ static get(appObjects) {
11
+ return AppObject_1.getSingletonComponent(PressAppObjectUC.type, appObjects);
12
+ }
9
13
  }
10
14
  exports.PressAppObjectUC = PressAppObjectUC;
11
15
  PressAppObjectUC.type = "PressAppObjectUC";
@@ -22,7 +26,7 @@ class PressAppObjectUCImp extends PressAppObjectUC {
22
26
  this.allowTryPress = () => {
23
27
  return true;
24
28
  };
25
- this.tryPressSceneObject = (ray) => {
29
+ this.tryPressAppObject = (ray) => {
26
30
  if (!this.selection)
27
31
  return null;
28
32
  if (!this.allowTryPress())
@@ -40,7 +44,7 @@ class PressAppObjectUCImp extends PressAppObjectUC {
40
44
  this.selection.pressedObjectId = rayPick.appObjectID;
41
45
  return this.selection.pressedObjectId;
42
46
  };
43
- this.pressSceneObject = (id, isPressed) => {
47
+ this.pressAppObject = (id, isPressed) => {
44
48
  if (!this.selection)
45
49
  return;
46
50
  if (!this.allowPress())
@@ -52,9 +56,9 @@ class PressAppObjectUCImp extends PressAppObjectUC {
52
56
  this.selection.pressedObjectId = null;
53
57
  }
54
58
  };
55
- this.selection = appObject.getComponent(Selection_1.Selection.type);
56
- if (!this.selection) {
57
- console.warn("PressAppObjectUCImp has been added to an App Object that does not have a Selection Entity. Add an Entity before adding the UC");
58
- }
59
+ this.appObjects.registerSingleton(this);
60
+ }
61
+ get selection() {
62
+ return this.getCachedSingleton(Selection_1.Selection.type);
59
63
  }
60
64
  }
@@ -1,3 +1,4 @@
1
+ import { AppObjectRepo } from "../../../AppObject";
1
2
  import { AppObject } from "../../../AppObject/AppObject";
2
3
  import { AppObjectUC } from "../../../AppObject/AppObjectUC";
3
4
  import { ParametricLine } from "../../../ValueObjects/ParametricLine";
@@ -5,7 +6,8 @@ export declare abstract class SelectAppObjectUC extends AppObjectUC {
5
6
  static readonly type = "SelectAppObjectUC";
6
7
  abstract allowSelect(): boolean;
7
8
  abstract allowTrySelect(): boolean;
8
- abstract selectSceneObject: (id: string, isSelected: boolean) => void;
9
- abstract trySelectSceneObject: (ray: ParametricLine) => void;
9
+ abstract selectAppObject: (id: string, isSelected: boolean) => void;
10
+ abstract trySelectAppObject: (ray: ParametricLine) => void;
11
+ static get(appObjects: AppObjectRepo): SelectAppObjectUC | undefined;
10
12
  }
11
13
  export declare function makeSelectAppObject(appObject: AppObject): SelectAppObjectUC;
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeSelectAppObject = exports.SelectAppObjectUC = void 0;
4
+ const AppObject_1 = require("../../../AppObject");
4
5
  const AppObjectUC_1 = require("../../../AppObject/AppObjectUC");
5
6
  const Babylon_1 = require("../../Babylon");
6
7
  const Selectable_1 = require("../Entities/Selectable");
7
8
  const Selection_1 = require("../Entities/Selection");
8
9
  class SelectAppObjectUC extends AppObjectUC_1.AppObjectUC {
10
+ static get(appObjects) {
11
+ return AppObject_1.getSingletonComponent(SelectAppObjectUC.type, appObjects);
12
+ }
9
13
  }
10
14
  exports.SelectAppObjectUC = SelectAppObjectUC;
11
15
  SelectAppObjectUC.type = "SelectAppObjectUC";
@@ -22,7 +26,7 @@ class SelectAppObjectUCImp extends SelectAppObjectUC {
22
26
  this.allowTrySelect = () => {
23
27
  return true;
24
28
  };
25
- this.trySelectSceneObject = (ray) => {
29
+ this.trySelectAppObject = (ray) => {
26
30
  if (!this.selection)
27
31
  return;
28
32
  if (!this.allowTrySelect())
@@ -39,7 +43,7 @@ class SelectAppObjectUCImp extends SelectAppObjectUC {
39
43
  }
40
44
  this.selection.selectedObjectId = rayPick.appObjectID;
41
45
  };
42
- this.selectSceneObject = (id, isSelected) => {
46
+ this.selectAppObject = (id, isSelected) => {
43
47
  if (!this.selection)
44
48
  return;
45
49
  if (!this.allowSelect())
@@ -51,9 +55,9 @@ class SelectAppObjectUCImp extends SelectAppObjectUC {
51
55
  this.selection.selectedObjectId = null;
52
56
  }
53
57
  };
54
- this.selection = appObject.getComponent(Selection_1.Selection.type);
55
- if (!this.selection) {
56
- console.warn("SelectAppObjectUCImp has been added to an App Object that does not have a Selection Entity. Add an Entity before adding the UC");
57
- }
58
+ this.appObjects.registerSingleton(this);
59
+ }
60
+ get selection() {
61
+ return this.getCachedSingleton(Selection_1.Selection.type);
58
62
  }
59
63
  }
@@ -1,4 +1,6 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controller";
1
3
  export * from "./Entities";
2
- export * from "./UC";
4
+ export * from "./Mocks";
3
5
  export * from "./PM";
4
- export * from "./Controller";
6
+ export * from "./UC";
@@ -10,7 +10,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Adapters"), exports);
14
+ __exportStar(require("./Controller"), exports);
13
15
  __exportStar(require("./Entities"), exports);
14
- __exportStar(require("./UC"), exports);
16
+ __exportStar(require("./Mocks"), exports);
15
17
  __exportStar(require("./PM"), exports);
16
- __exportStar(require("./Controller"), exports);
18
+ __exportStar(require("./UC"), exports);
@@ -0,0 +1 @@
1
+ export * from "./toolAdapter";
@@ -0,0 +1,13 @@
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("./toolAdapter"), exports);
@@ -0,0 +1,3 @@
1
+ import { PmAdapter } from "../../../Types";
2
+ import { ToolVM } from "../PM/ToolPM";
3
+ export declare function makeToolAdapter<ToolTypes>(): PmAdapter<ToolVM<ToolTypes>>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeToolAdapter = void 0;
4
+ const ToolPM_1 = require("../PM/ToolPM");
5
+ function makeToolAdapter() {
6
+ return {
7
+ defaultVM: ToolPM_1.defaultToolVM,
8
+ subscribe: (id, appObjects, setVM) => {
9
+ const pm = ToolPM_1.ToolPM.get(id, appObjects);
10
+ if (!pm) {
11
+ appObjects.submitError("toolAdapter", "Unable to find ToolPM");
12
+ return;
13
+ }
14
+ pm.addView(setVM);
15
+ },
16
+ unsubscribe: (id, appObjects, setVM) => {
17
+ const pm = ToolPM_1.ToolPM.get(id, appObjects);
18
+ if (!pm) {
19
+ appObjects.submitError("toolAdapter", "Unable to find ToolPM");
20
+ return;
21
+ }
22
+ pm.removeView(setVM);
23
+ },
24
+ };
25
+ }
26
+ exports.makeToolAdapter = makeToolAdapter;
@@ -20,7 +20,7 @@ class ToolHotkeys extends AppObjectController_1.AppObjectController {
20
20
  shift: e.shiftKey,
21
21
  };
22
22
  const tool = this.toolRepo.getToolForHotkey(currentKey);
23
- if (!tool)
23
+ if (!tool || !tool.toolType)
24
24
  return;
25
25
  this.toolRepo.triggerTool(tool.toolType);
26
26
  };
@@ -1,3 +1,4 @@
1
+ import { AppObjectRepo } from "../../../AppObject";
1
2
  import { AppObject } from "../../../AppObject/AppObject";
2
3
  import { AppObjectEntity } from "../../../AppObject/AppObjectEntity";
3
4
  export declare enum ToolState {
@@ -22,7 +23,7 @@ export interface HotKey {
22
23
  }
23
24
  export declare abstract class ToolEntity<ToolTypes> extends AppObjectEntity {
24
25
  static readonly type = "TOOL";
25
- abstract readonly toolType: ToolTypes;
26
+ abstract get toolType(): ToolTypes | undefined;
26
27
  abstract get label(): string;
27
28
  abstract set label(toolLabel: string);
28
29
  abstract readonly isDefault: boolean;
@@ -35,5 +36,7 @@ export declare abstract class ToolEntity<ToolTypes> extends AppObjectEntity {
35
36
  abstract triggerActions(): void;
36
37
  abstract registerAction(action: () => void): void;
37
38
  abstract isMyHotkey(hotkey: HotKey): boolean;
39
+ abstract setupFromData(data: ToolData<ToolTypes>): void;
40
+ static get<ToolTypes>(id: string, appObjects: AppObjectRepo): ToolEntity<ToolTypes> | undefined;
38
41
  }
39
- export declare function makeToolEntity<ToolTypes>(data: ToolData<ToolTypes>, appObject: AppObject): ToolEntity<ToolTypes>;
42
+ export declare function makeToolEntity<ToolTypes>(appObject: AppObject): ToolEntity<ToolTypes>;
@@ -11,16 +11,24 @@ var ToolState;
11
11
  ToolState["ACTIVE"] = "ACTIVE";
12
12
  })(ToolState = exports.ToolState || (exports.ToolState = {}));
13
13
  class ToolEntity extends AppObjectEntity_1.AppObjectEntity {
14
+ static get(id, appObjects) {
15
+ var _a;
16
+ return (_a = appObjects
17
+ .get(id)) === null || _a === void 0 ? void 0 : _a.getComponent(ToolEntity.type);
18
+ }
14
19
  }
15
20
  exports.ToolEntity = ToolEntity;
16
21
  ToolEntity.type = "TOOL";
17
- function makeToolEntity(data, appObject) {
18
- return new ToolEntityImp(data, appObject);
22
+ function makeToolEntity(appObject) {
23
+ return new ToolEntityImp(appObject);
19
24
  }
20
25
  exports.makeToolEntity = makeToolEntity;
21
26
  class ToolEntityImp extends ToolEntity {
22
- constructor(data, appObject) {
27
+ constructor(appObject) {
23
28
  super(appObject, ToolEntity.type);
29
+ this._isDefault = false;
30
+ this.memoizedLabel = new Entities_1.MemoizedString("", this.notifyOnChange);
31
+ this.memoizedShortcut = new Entities_1.MemoizedString("", this.notifyOnChange);
24
32
  this.memoizedState = new Entities_1.MemoizedString(ToolState.ENABLED, this.notifyOnChange);
25
33
  this.actions = [];
26
34
  this._isAction = false;
@@ -33,6 +41,7 @@ class ToolEntityImp extends ToolEntity {
33
41
  action();
34
42
  });
35
43
  };
44
+ this._hotkeys = [];
36
45
  this.isMyHotkey = (hotkey) => {
37
46
  let isMine = false;
38
47
  this.hotkeys.forEach((myHotkey) => {
@@ -42,11 +51,19 @@ class ToolEntityImp extends ToolEntity {
42
51
  });
43
52
  return isMine;
44
53
  };
45
- this.toolType = data.toolType;
46
- this.memoizedLabel = new Entities_1.MemoizedString(data.label, this.notifyOnChange);
47
- this.isDefault = data.isDefault;
48
- this.memoizedShortcut = new Entities_1.MemoizedString(data.shortcutLabel, this.notifyOnChange);
49
- this.hotkeys = data.hotkeys;
54
+ this.setupFromData = (data) => {
55
+ this._toolType = data.toolType;
56
+ this.memoizedLabel.val = data.label;
57
+ this._isDefault = data.isDefault;
58
+ this.memoizedShortcut.val = data.shortcutLabel;
59
+ this._hotkeys = data.hotkeys;
60
+ };
61
+ }
62
+ get toolType() {
63
+ return this._toolType;
64
+ }
65
+ get isDefault() {
66
+ return this._isDefault;
50
67
  }
51
68
  get label() {
52
69
  return this.memoizedLabel.val;
@@ -69,6 +86,9 @@ class ToolEntityImp extends ToolEntity {
69
86
  get isAction() {
70
87
  return this._isAction;
71
88
  }
89
+ get hotkeys() {
90
+ return this._hotkeys;
91
+ }
72
92
  hotkeysMatch(a, b) {
73
93
  if (a.keyCode !== b.keyCode)
74
94
  return false;
@@ -18,7 +18,10 @@ class ToolRepositoryImp extends ToolRepository {
18
18
  super(appObject, ToolRepository.type);
19
19
  this.toolLookup = new Map();
20
20
  this.toolFactory = (toolData) => {
21
- throw new Error("Factory has not been injected");
21
+ const ao = this.appObjects.getOrCreate(toolData.toolType);
22
+ const toolEntity = ToolEntity_1.makeToolEntity(ao);
23
+ toolEntity.setupFromData(toolData);
24
+ return toolEntity;
22
25
  };
23
26
  }
24
27
  get allTools() {
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+ import { AppObject, AppObjectRepo } from "../../../AppObject";
3
+ import { ToolPM } from "../PM";
4
+ export declare class ToolPMMock<CT> extends ToolPM<CT> {
5
+ vmsAreEqual: jest.Mock<any, any>;
6
+ constructor(appObject: AppObject);
7
+ }
8
+ export declare function makeToolPMMock<CT>(appObjects: AppObjectRepo): ToolPMMock<CT>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeToolPMMock = exports.ToolPMMock = void 0;
4
+ const PM_1 = require("../PM");
5
+ class ToolPMMock extends PM_1.ToolPM {
6
+ constructor(appObject) {
7
+ super(appObject, PM_1.ToolPM.type);
8
+ this.vmsAreEqual = jest.fn();
9
+ }
10
+ }
11
+ exports.ToolPMMock = ToolPMMock;
12
+ function makeToolPMMock(appObjects) {
13
+ return new ToolPMMock(appObjects.getOrCreate("ToolPMMock"));
14
+ }
15
+ exports.makeToolPMMock = makeToolPMMock;
@@ -0,0 +1 @@
1
+ export * from "./ToolPMMock";
@@ -0,0 +1,13 @@
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("./ToolPMMock"), exports);
@@ -1,7 +1,7 @@
1
+ import { AppObjectRepo } from "../../../AppObject";
1
2
  import { AppObject } from "../../../AppObject/AppObject";
2
3
  import { AppObjectPM } from "../../../AppObject/AppObjectPM";
3
4
  export interface ToolVM<ToolType> {
4
- toolType: ToolType;
5
5
  label: string;
6
6
  enabled: boolean;
7
7
  selected: boolean;
@@ -9,11 +9,23 @@ export interface ToolVM<ToolType> {
9
9
  shortcutLabel: string;
10
10
  tooltipLabel: string;
11
11
  }
12
- export declare class ToolPM<ToolType> extends AppObjectPM<ToolVM<ToolType>> {
12
+ export declare const defaultToolVM: {
13
+ label: string;
14
+ enabled: boolean;
15
+ selected: boolean;
16
+ show: boolean;
17
+ shortcutLabel: string;
18
+ tooltipLabel: string;
19
+ };
20
+ export declare abstract class ToolPM<ToolType> extends AppObjectPM<ToolVM<ToolType>> {
13
21
  static readonly type = "ToolPM";
14
- private tool?;
22
+ static get<ToolType>(id: string, appObjects: AppObjectRepo): ToolPM<ToolType> | undefined;
23
+ }
24
+ export declare function makeToolPM<ToolType>(appObject: AppObject): ToolPMImp<ToolType>;
25
+ declare class ToolPMImp<ToolType> extends ToolPM<ToolType> {
26
+ private get tool();
15
27
  vmsAreEqual(a: ToolVM<ToolType>, b: ToolVM<ToolType>): boolean;
16
28
  onToolChange: () => void;
17
- dispose: () => void;
18
29
  constructor(appObject: AppObject);
19
30
  }
31
+ export {};
@@ -1,15 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToolPM = void 0;
3
+ exports.makeToolPM = exports.ToolPM = exports.defaultToolVM = void 0;
4
4
  const AppObjectPM_1 = require("../../../AppObject/AppObjectPM");
5
5
  const ToolEntity_1 = require("../Entities/ToolEntity");
6
+ exports.defaultToolVM = {
7
+ label: "",
8
+ enabled: false,
9
+ selected: false,
10
+ show: false,
11
+ shortcutLabel: "",
12
+ tooltipLabel: "",
13
+ };
6
14
  class ToolPM extends AppObjectPM_1.AppObjectPM {
15
+ static get(id, appObjects) {
16
+ var _a;
17
+ return (_a = appObjects.get(id)) === null || _a === void 0 ? void 0 : _a.getComponent(ToolPM.type);
18
+ }
19
+ }
20
+ exports.ToolPM = ToolPM;
21
+ ToolPM.type = "ToolPM";
22
+ function makeToolPM(appObject) {
23
+ return new ToolPMImp(appObject);
24
+ }
25
+ exports.makeToolPM = makeToolPM;
26
+ class ToolPMImp extends ToolPM {
7
27
  constructor(appObject) {
28
+ var _a;
8
29
  super(appObject, ToolPM.type);
9
30
  this.onToolChange = () => {
10
31
  if (!this.tool)
11
32
  return;
12
- const { toolType, state, label, shortcutLabel } = this.tool;
33
+ const { state, label, shortcutLabel } = this.tool;
13
34
  let enabled = false;
14
35
  if (state === ToolEntity_1.ToolState.ACTIVE || state === ToolEntity_1.ToolState.ENABLED) {
15
36
  enabled = true;
@@ -18,7 +39,6 @@ class ToolPM extends AppObjectPM_1.AppObjectPM {
18
39
  const show = state === ToolEntity_1.ToolState.HIDDEN ? false : true;
19
40
  const tooltipLabel = `${label} [${shortcutLabel}]`;
20
41
  const vm = {
21
- toolType,
22
42
  enabled,
23
43
  label,
24
44
  selected,
@@ -28,24 +48,13 @@ class ToolPM extends AppObjectPM_1.AppObjectPM {
28
48
  };
29
49
  this.doUpdateView(vm);
30
50
  };
31
- this.dispose = () => {
32
- var _a;
33
- super.dispose();
34
- (_a = this.tool) === null || _a === void 0 ? void 0 : _a.removeChangeObserver(this.onToolChange);
35
- };
36
- this.tool = appObject.getComponent(ToolEntity_1.ToolEntity.type);
37
- if (!this.tool) {
38
- this.warn("ToolPM is being added to an object that does not have a Tool Entity");
39
- return;
40
- }
41
- else {
42
- this.tool.addChangeObserver(this.onToolChange);
43
- this.onToolChange();
44
- }
51
+ (_a = this.tool) === null || _a === void 0 ? void 0 : _a.addChangeObserver(this.onToolChange);
52
+ this.onToolChange();
53
+ }
54
+ get tool() {
55
+ return this.getCachedLocalComponent(ToolEntity_1.ToolEntity.type);
45
56
  }
46
57
  vmsAreEqual(a, b) {
47
- if (a.toolType !== b.toolType)
48
- return false;
49
58
  if (a.enabled !== b.enabled)
50
59
  return false;
51
60
  if (a.label !== b.label)
@@ -61,5 +70,3 @@ class ToolPM extends AppObjectPM_1.AppObjectPM {
61
70
  return true;
62
71
  }
63
72
  }
64
- exports.ToolPM = ToolPM;
65
- ToolPM.type = "ToolPM";
@@ -1,3 +1,5 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controller";
1
3
  export * from "./Entities";
4
+ export * from "./Mocks";
2
5
  export * from "./PM";
3
- export * from "./Controller";
@@ -10,6 +10,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Adapters"), exports);
14
+ __exportStar(require("./Controller"), exports);
13
15
  __exportStar(require("./Entities"), exports);
16
+ __exportStar(require("./Mocks"), exports);
14
17
  __exportStar(require("./PM"), exports);
15
- __exportStar(require("./Controller"), exports);
@@ -18,6 +18,7 @@ export interface TouchController {
18
18
  onTouchMove?: (e: TouchInputEvent) => void;
19
19
  onTouchEnd?: (e: TouchInputEvent) => void;
20
20
  onTouchCancel?: (e: TouchInputEvent) => void;
21
+ onTap?: (e: TouchInputEvent) => void;
21
22
  }
22
23
  export declare abstract class TouchInputEntity extends AppObjectEntity {
23
24
  static readonly type = "TouchInputEntity";
@@ -42,6 +42,9 @@ class TouchInputImp extends TouchInputEntity {
42
42
  this.eventElementBounds = eventElement.getBoundingClientRect();
43
43
  this._eventElement = eventElement;
44
44
  };
45
+ this.considerTap = false;
46
+ this.tapStartPosition = ValueObjects_1.Vector2.Zero();
47
+ this.maxTapDistancePx = 5;
45
48
  this.onTouchStart = (e) => {
46
49
  if (e.cancelable)
47
50
  e.preventDefault();
@@ -51,6 +54,19 @@ class TouchInputImp extends TouchInputEntity {
51
54
  c.onTouchStart(touchInput);
52
55
  }
53
56
  });
57
+ if (touchInput.touchCount === 1) {
58
+ this.considerTap = true;
59
+ this.tapStartPosition = touchInput.touchCenter;
60
+ this.tapEvent = touchInput;
61
+ }
62
+ else {
63
+ this.cancelTap();
64
+ }
65
+ };
66
+ this.cancelTap = () => {
67
+ this.considerTap = false;
68
+ this.tapStartPosition = ValueObjects_1.Vector2.Zero();
69
+ this.tapEvent = undefined;
54
70
  };
55
71
  this.onTouchMove = (e) => {
56
72
  if (e.cancelable)
@@ -61,6 +77,15 @@ class TouchInputImp extends TouchInputEntity {
61
77
  c.onTouchMove(touchInput);
62
78
  }
63
79
  });
80
+ if (!this.considerTap)
81
+ return;
82
+ if (touchInput.touchCount !== 1) {
83
+ this.cancelTap();
84
+ }
85
+ const movement = ValueObjects_1.Vector2.Subtract(this.tapStartPosition, touchInput.touchCenter).magnitued;
86
+ if (movement > this.maxTapDistancePx) {
87
+ this.cancelTap();
88
+ }
64
89
  };
65
90
  this.onTouchEnd = (e) => {
66
91
  if (e.cancelable)
@@ -71,6 +96,14 @@ class TouchInputImp extends TouchInputEntity {
71
96
  c.onTouchEnd(touchInput);
72
97
  }
73
98
  });
99
+ if (!this.considerTap || !this.tapEvent)
100
+ return;
101
+ this.controllers.forEach((c) => {
102
+ if (c.onTap) {
103
+ c.onTap(this.tapEvent);
104
+ }
105
+ });
106
+ this.cancelTap();
74
107
  };
75
108
  this.onTouchCancel = (e) => {
76
109
  if (e.cancelable)
@@ -81,6 +114,7 @@ class TouchInputImp extends TouchInputEntity {
81
114
  c.onTouchCancel(touchInput);
82
115
  }
83
116
  });
117
+ this.cancelTap();
84
118
  };
85
119
  this.clearInputElement = () => {
86
120
  if (!this._eventElement)
@@ -0,0 +1,2 @@
1
+ export * from "./MockTouchInput";
2
+ export * from "./mockTouchInputEvent";