@vived/app 5.1.1 → 5.2.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 (123) hide show
  1. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  2. package/dist/cjs/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  3. package/dist/cjs/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
  4. package/dist/cjs/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
  5. package/dist/cjs/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
  6. package/dist/cjs/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
  7. package/dist/cjs/Landmarks/Controller/MouseLandmark.js.map +1 -1
  8. package/dist/cjs/Landmarks/Controller/TouchLandmark.js.map +1 -1
  9. package/dist/cjs/MouseInput/Entities/MouseInput.js.map +1 -1
  10. package/dist/cjs/MouseInput/Mocks/MockMouseInput.js +4 -5
  11. package/dist/cjs/MouseInput/Mocks/MockMouseInput.js.map +1 -1
  12. package/dist/cjs/MouseInput/Mocks/index.js +18 -0
  13. package/dist/cjs/MouseInput/Mocks/index.js.map +1 -0
  14. package/dist/cjs/MouseInput/index.js +1 -0
  15. package/dist/cjs/MouseInput/index.js.map +1 -1
  16. package/dist/cjs/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
  17. package/dist/cjs/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
  18. package/dist/cjs/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
  19. package/dist/cjs/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
  20. package/dist/cjs/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
  21. package/dist/cjs/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
  22. package/dist/cjs/SceneRoot/Controllers/MouseRoll.js.map +1 -1
  23. package/dist/cjs/SceneRoot/Controllers/MouseScale.js.map +1 -1
  24. package/dist/cjs/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
  25. package/dist/cjs/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
  26. package/dist/cjs/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
  27. package/dist/cjs/SceneRoot/Controllers/TouchPan.js.map +1 -1
  28. package/dist/cjs/SceneRoot/Controllers/TouchPinch.js.map +1 -1
  29. package/dist/cjs/SceneRoot/Controllers/TouchScale.js.map +1 -1
  30. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
  31. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
  32. package/dist/cjs/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
  33. package/dist/cjs/Selection/Controller/MousePressOnAppObject.js.map +1 -1
  34. package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js +1 -0
  35. package/dist/cjs/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
  36. package/dist/cjs/Selection/Controller/MouseSelectAppObject.js.map +1 -1
  37. package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js +1 -0
  38. package/dist/cjs/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
  39. package/dist/cjs/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
  40. package/dist/cjs/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
  41. package/dist/cjs/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
  42. package/dist/cjs/Selection/Controller/TapToSelectAppObject.js.map +1 -1
  43. package/dist/cjs/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
  44. package/dist/cjs/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
  45. package/dist/cjs/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
  46. package/dist/cjs/Stylus/Entity/StylusEntity.js.map +1 -1
  47. package/dist/cjs/Stylus/Entity/StylusEntity.test.js.map +1 -1
  48. package/dist/cjs/TouchController/Entities/TouchInput.js.map +1 -1
  49. package/dist/cjs/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
  50. package/dist/cjs/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
  51. package/dist/cjs/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
  52. package/dist/cjs/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
  53. package/dist/cjs/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
  54. package/dist/cjs/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
  55. package/dist/cjs/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
  56. package/dist/cjs/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
  57. package/dist/cjs/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
  58. package/dist/cjs/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
  59. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js +3 -0
  60. package/dist/esm/BaseApp/UC/RenderCanvasUC.test.js.map +1 -1
  61. package/dist/esm/HoverLabel/Controllers/HoverLabelMouse.js.map +1 -1
  62. package/dist/esm/HoverLabel/Controllers/HoverLabelTouch.js.map +1 -1
  63. package/dist/esm/LabelDrop/Controller/MouseLabelDropAuthor.js.map +1 -1
  64. package/dist/esm/LabelDrop/Controller/TouchLabelDropAuthor.js.map +1 -1
  65. package/dist/esm/Landmarks/Controller/MouseLandmark.js.map +1 -1
  66. package/dist/esm/Landmarks/Controller/TouchLandmark.js.map +1 -1
  67. package/dist/esm/MouseInput/Entities/MouseInput.js.map +1 -1
  68. package/dist/esm/MouseInput/Mocks/MockMouseInput.js +4 -5
  69. package/dist/esm/MouseInput/Mocks/MockMouseInput.js.map +1 -1
  70. package/dist/esm/MouseInput/Mocks/index.js +2 -0
  71. package/dist/esm/MouseInput/Mocks/index.js.map +1 -0
  72. package/dist/esm/MouseInput/index.js +1 -0
  73. package/dist/esm/MouseInput/index.js.map +1 -1
  74. package/dist/esm/ObjectPick/Controllers/MouseObjectPickMC.js.map +1 -1
  75. package/dist/esm/ObjectPick/Controllers/StylusObjectPickSC.js.map +1 -1
  76. package/dist/esm/ObjectPick/Controllers/TouchObjectPickTC.js.map +1 -1
  77. package/dist/esm/SceneRoot/Controllers/DoubleTapToFocus.js.map +1 -1
  78. package/dist/esm/SceneRoot/Controllers/MouseClickToFocus.js.map +1 -1
  79. package/dist/esm/SceneRoot/Controllers/MouseOrbit.js.map +1 -1
  80. package/dist/esm/SceneRoot/Controllers/MouseRoll.js.map +1 -1
  81. package/dist/esm/SceneRoot/Controllers/MouseScale.js.map +1 -1
  82. package/dist/esm/SceneRoot/Controllers/ScaleSceneRootSC.js.map +1 -1
  83. package/dist/esm/SceneRoot/Controllers/SceneRootMoveSC.js.map +1 -1
  84. package/dist/esm/SceneRoot/Controllers/TouchOrbit.js.map +1 -1
  85. package/dist/esm/SceneRoot/Controllers/TouchPan.js.map +1 -1
  86. package/dist/esm/SceneRoot/Controllers/TouchPinch.js.map +1 -1
  87. package/dist/esm/SceneRoot/Controllers/TouchScale.js.map +1 -1
  88. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.js.map +1 -1
  89. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js +1 -0
  90. package/dist/esm/Selection/Controller/MouseHoverOnAppObject.test.js.map +1 -1
  91. package/dist/esm/Selection/Controller/MousePressOnAppObject.js.map +1 -1
  92. package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js +1 -0
  93. package/dist/esm/Selection/Controller/MousePressOnAppObject.test.js.map +1 -1
  94. package/dist/esm/Selection/Controller/MouseSelectAppObject.js.map +1 -1
  95. package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js +1 -0
  96. package/dist/esm/Selection/Controller/MouseSelectAppObject.test.js.map +1 -1
  97. package/dist/esm/Selection/Controller/StylusHoverOnAppObjectSC.js.map +1 -1
  98. package/dist/esm/Selection/Controller/StylusPressOnAppObjectSC.js.map +1 -1
  99. package/dist/esm/Selection/Controller/StylusSelectAppObjectSC.js.map +1 -1
  100. package/dist/esm/Selection/Controller/TapToSelectAppObject.js.map +1 -1
  101. package/dist/esm/Selection/Controller/TouchPressOnAppObject.js.map +1 -1
  102. package/dist/esm/Stick/Controllers/DoubleClickToStickMC.js.map +1 -1
  103. package/dist/esm/Stick/Controllers/DoubleTapToStickTC.js.map +1 -1
  104. package/dist/esm/Stylus/Entity/StylusEntity.js.map +1 -1
  105. package/dist/esm/Stylus/Entity/StylusEntity.test.js.map +1 -1
  106. package/dist/esm/TouchController/Entities/TouchInput.js.map +1 -1
  107. package/dist/esm/Transform3D/Controllers/Mouse/DragScaleTransformMC.js.map +1 -1
  108. package/dist/esm/Transform3D/Controllers/Mouse/MousePanTransformMC.js.map +1 -1
  109. package/dist/esm/Transform3D/Controllers/Mouse/PanTransformMC.js.map +1 -1
  110. package/dist/esm/Transform3D/Controllers/Mouse/RollScaleTransformMC.js.map +1 -1
  111. package/dist/esm/Transform3D/Controllers/Stylus/MoveTransformSC.js.map +1 -1
  112. package/dist/esm/Transform3D/Controllers/Stylus/PanScaleTransformSC.js.map +1 -1
  113. package/dist/esm/Transform3D/Controllers/Touch/DragScaleTransformTC.js.map +1 -1
  114. package/dist/esm/Transform3D/Controllers/Touch/PanTransformTC.js.map +1 -1
  115. package/dist/esm/Transform3D/Controllers/Touch/PinchTransformTC.js.map +1 -1
  116. package/dist/esm/Transform3D/Controllers/Touch/TouchPanTransformTC.js.map +1 -1
  117. package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts +5 -6
  118. package/dist/types/MouseInput/Mocks/MockMouseInput.d.ts.map +1 -1
  119. package/dist/types/MouseInput/Mocks/index.d.ts +2 -0
  120. package/dist/types/MouseInput/Mocks/index.d.ts.map +1 -0
  121. package/dist/types/MouseInput/index.d.ts +1 -0
  122. package/dist/types/MouseInput/index.d.ts.map +1 -1
  123. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"TouchInput.js","sourceRoot":"","sources":["../../../../src/TouchController/Entities/TouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSingletonComponent } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { AppObjectEntity } from \"@vived/core\";\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface TouchInputEvent {\n touchCount: number;\n touchCenter: Vector2;\n touches: TouchData[];\n event: TouchEvent;\n}\n\nexport interface TouchData {\n id: number;\n position: Vector2;\n touch?: Touch;\n}\n\nexport interface TouchEventHandler {\n onTouchStart?: (e: TouchInputEvent) => void;\n onTouchMove?: (e: TouchInputEvent) => void;\n onTouchEnd?: (e: TouchInputEvent) => void;\n onTouchCancel?: (e: TouchInputEvent) => void;\n onTap?: (e: TouchInputEvent) => void;\n}\n\n/**\n * @deprecated Use TouchEventHandler instead. TouchController will be removed in a future version.\n */\nexport type TouchController = TouchEventHandler;\n\nexport abstract class TouchInputEntity extends AppObjectEntity {\n static readonly type = \"TouchInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n abstract eventElementBounds?: DOMRect;\n\n abstract setEventElement: (eventElement: HTMLElement) => void;\n abstract clearInputElement: () => void;\n abstract updateInputElementBounds: () => void;\n\n abstract registerController: (controller: TouchEventHandler) => void;\n abstract removeController: (controller: TouchEventHandler) => void;\n\n static get = (appObjects: AppObjectRepo): TouchInputEntity | undefined =>\n getSingletonComponent(TouchInputEntity.type, appObjects);\n}\n\nexport function makeTouchInput(appObject: AppObject): TouchInputEntity {\n return new TouchInputImp(appObject);\n}\n\nclass TouchInputImp extends TouchInputEntity {\n private controllers: TouchEventHandler[] = [];\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n public eventElementBounds?: DOMRect;\n\n updateInputElementBounds = () => {\n if (!this._eventElement) return;\n this.eventElementBounds = this._eventElement.getBoundingClientRect(); // Expensive so we cache\n };\n\n getTouchOffsetPosition = (touch: Touch): Vector2 => {\n if (!this.eventElementBounds) {\n console.warn(\"No target bounds\");\n return Vector2.Zero();\n }\n\n const x = touch.clientX - this.eventElementBounds.x;\n const y = touch.clientY - this.eventElementBounds.y;\n\n return new Vector2(x, y);\n };\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"touchstart\", this.onTouchStart, false);\n eventElement.addEventListener(\"touchmove\", this.onTouchMove, false);\n eventElement.addEventListener(\"touchend\", this.onTouchEnd, false);\n eventElement.addEventListener(\"touchcancel\", this.onTouchCancel, false);\n\n this.eventElementBounds = eventElement.getBoundingClientRect();\n this._eventElement = eventElement;\n };\n\n private considerTap = false;\n private tapStartPosition: Vector2 = Vector2.Zero();\n private maxTapDistancePx = 5;\n private tapEvent?: TouchInputEvent;\n\n private onTouchStart = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchStart) {\n c.onTouchStart(touchInput);\n }\n });\n\n if (touchInput.touchCount === 1) {\n this.considerTap = true;\n this.tapStartPosition = touchInput.touchCenter;\n this.tapEvent = touchInput;\n } else {\n this.cancelTap();\n }\n };\n\n private cancelTap = () => {\n this.considerTap = false;\n this.tapStartPosition = Vector2.Zero();\n this.tapEvent = undefined;\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchMove) {\n c.onTouchMove(touchInput);\n }\n });\n\n if (!this.considerTap) return;\n\n if (touchInput.touchCount !== 1) {\n this.cancelTap();\n }\n\n const movement = Vector2.Subtract(\n this.tapStartPosition,\n touchInput.touchCenter\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelTap();\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchEnd) {\n c.onTouchEnd(touchInput);\n }\n });\n\n if (!this.considerTap || !this.tapEvent) return;\n this.controllers.forEach((c) => {\n if (c.onTap) {\n c.onTap(this.tapEvent!);\n }\n });\n\n this.cancelTap();\n };\n\n private onTouchCancel = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchCancel) {\n c.onTouchCancel(touchInput);\n }\n });\n this.cancelTap();\n };\n\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"touchstart\", this.onTouchStart);\n this._eventElement.removeEventListener(\"touchmove\", this.onTouchMove);\n this._eventElement.removeEventListener(\"touchend\", this.onTouchEnd);\n this._eventElement.removeEventListener(\"touchcancel\", this.onTouchCancel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: TouchEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: TouchEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private createTouchInputEvent(event: TouchEvent): TouchInputEvent {\n const touches: TouchData[] = [];\n const touchCount = event.touches.length;\n\n let minX = 0;\n let maxX = 0;\n let minY = 0;\n let maxY = 0;\n\n for (let i = 0; i < touchCount; i++) {\n const touch = event.touches[i];\n const position = this.getTouchOffsetPosition(touch);\n\n touches.push({\n id: touch.identifier,\n touch,\n position,\n });\n\n if (i === 0) {\n minX = position.x;\n maxX = position.x;\n minY = position.y;\n maxY = position.y;\n } else {\n minX = Math.min(minX, position.x);\n maxX = Math.max(maxX, position.x);\n minY = Math.min(minY, position.y);\n maxY = Math.max(maxY, position.y);\n }\n }\n\n let cntX = 0;\n let cntY = 0;\n\n if (touchCount === 1) {\n cntX = maxX;\n cntY = maxY;\n } else {\n cntX = minX + (maxX - minX) / 2;\n cntY = minY + (maxY - minY) / 2;\n }\n\n return {\n touchCenter: new Vector2(cntX, cntY),\n touchCount,\n touches,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, TouchInputEntity.type);\n }\n}\n"]}
1
+ {"version":3,"file":"TouchInput.js","sourceRoot":"","sources":["../../../../src/TouchController/Entities/TouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { getSingletonComponent } from \"@vived/core\";\nimport { AppObject } from \"@vived/core\";\nimport { AppObjectEntity } from \"@vived/core\";\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface TouchInputEvent {\n touchCount: number;\n touchCenter: Vector2;\n touches: TouchData[];\n event: TouchEvent;\n}\n\nexport interface TouchData {\n id: number;\n position: Vector2;\n touch?: Touch;\n}\n\nexport interface TouchEventHandler {\n onTouchStart?: (e: TouchInputEvent) => void;\n onTouchMove?: (e: TouchInputEvent) => void;\n onTouchEnd?: (e: TouchInputEvent) => void;\n onTouchCancel?: (e: TouchInputEvent) => void;\n onTap?: (e: TouchInputEvent) => void;\n}\n\n/**\n * @deprecated Use TouchEventHandler instead. TouchController will be removed in a future version.\n */\nexport type TouchController = TouchEventHandler;\n\nexport abstract class TouchInputEntity extends AppObjectEntity {\n static readonly type = \"TouchInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n abstract eventElementBounds?: DOMRect;\n\n abstract setEventElement: (eventElement: HTMLElement) => void;\n abstract clearInputElement: () => void;\n abstract updateInputElementBounds: () => void;\n\n abstract registerController: (controller: TouchEventHandler) => void;\n abstract removeController: (controller: TouchEventHandler) => void;\n\n static get = (appObjects: AppObjectRepo): TouchInputEntity | undefined =>\n getSingletonComponent(TouchInputEntity.type, appObjects);\n}\n\nexport function makeTouchInput(appObject: AppObject): TouchInputEntity {\n return new TouchInputImp(appObject);\n}\n\nclass TouchInputImp extends TouchInputEntity {\n private controllers: TouchEventHandler[] = [];\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n public eventElementBounds?: DOMRect;\n\n updateInputElementBounds = () => {\n if (!this._eventElement) return;\n this.eventElementBounds = this._eventElement.getBoundingClientRect(); // Expensive so we cache\n };\n\n getTouchOffsetPosition = (touch: Touch): Vector2 => {\n if (!this.eventElementBounds) {\n console.warn(\"No target bounds\");\n return Vector2.Zero();\n }\n\n const x = touch.clientX - this.eventElementBounds.x;\n const y = touch.clientY - this.eventElementBounds.y;\n\n return new Vector2(x, y);\n };\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"touchstart\", this.onTouchStart, false);\n eventElement.addEventListener(\"touchmove\", this.onTouchMove, false);\n eventElement.addEventListener(\"touchend\", this.onTouchEnd, false);\n eventElement.addEventListener(\"touchcancel\", this.onTouchCancel, false);\n\n this.eventElementBounds = eventElement.getBoundingClientRect();\n this._eventElement = eventElement;\n };\n\n private considerTap = false;\n private tapStartPosition: Vector2 = Vector2.Zero();\n private maxTapDistancePx = 5;\n private tapEvent?: TouchInputEvent;\n\n private onTouchStart = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchStart) {\n c.onTouchStart(touchInput);\n }\n });\n\n if (touchInput.touchCount === 1) {\n this.considerTap = true;\n this.tapStartPosition = touchInput.touchCenter;\n this.tapEvent = touchInput;\n } else {\n this.cancelTap();\n }\n };\n\n private cancelTap = () => {\n this.considerTap = false;\n this.tapStartPosition = Vector2.Zero();\n this.tapEvent = undefined;\n };\n\n private onTouchMove = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchMove) {\n c.onTouchMove(touchInput);\n }\n });\n\n if (!this.considerTap) return;\n\n if (touchInput.touchCount !== 1) {\n this.cancelTap();\n }\n\n const movement = Vector2.Subtract(\n this.tapStartPosition,\n touchInput.touchCenter,\n ).magnitued;\n\n if (movement > this.maxTapDistancePx) {\n this.cancelTap();\n }\n };\n\n private onTouchEnd = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchEnd) {\n c.onTouchEnd(touchInput);\n }\n });\n\n if (!this.considerTap || !this.tapEvent) return;\n this.controllers.forEach((c) => {\n if (c.onTap) {\n c.onTap(this.tapEvent!);\n }\n });\n\n this.cancelTap();\n };\n\n private onTouchCancel = (e: TouchEvent) => {\n if (e.cancelable) e.preventDefault();\n const touchInput = this.createTouchInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onTouchCancel) {\n c.onTouchCancel(touchInput);\n }\n });\n this.cancelTap();\n };\n\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"touchstart\", this.onTouchStart);\n this._eventElement.removeEventListener(\"touchmove\", this.onTouchMove);\n this._eventElement.removeEventListener(\"touchend\", this.onTouchEnd);\n this._eventElement.removeEventListener(\"touchcancel\", this.onTouchCancel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: TouchEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: TouchEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private createTouchInputEvent(event: TouchEvent): TouchInputEvent {\n const touches: TouchData[] = [];\n const touchCount = event.touches.length;\n\n let minX = 0;\n let maxX = 0;\n let minY = 0;\n let maxY = 0;\n\n for (let i = 0; i < touchCount; i++) {\n const touch = event.touches[i];\n const position = this.getTouchOffsetPosition(touch);\n\n touches.push({\n id: touch.identifier,\n touch,\n position,\n });\n\n if (i === 0) {\n minX = position.x;\n maxX = position.x;\n minY = position.y;\n maxY = position.y;\n } else {\n minX = Math.min(minX, position.x);\n maxX = Math.max(maxX, position.x);\n minY = Math.min(minY, position.y);\n maxY = Math.max(maxY, position.y);\n }\n }\n\n let cntX = 0;\n let cntY = 0;\n\n if (touchCount === 1) {\n cntX = maxX;\n cntY = maxY;\n } else {\n cntX = minX + (maxX - minX) / 2;\n cntY = minY + (maxY - minY) / 2;\n }\n\n return {\n touchCenter: new Vector2(cntX, cntY),\n touchCount,\n touches,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, TouchInputEntity.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DragScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/DragScaleTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA4C;AAE5C,MAAa,oBACX,SAAQ,0BAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA9BtC,eAAU,GAAG,KAAK,CAAC;QAI3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAKA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnDH,oDAoDC;AAhDiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"DragScaleTransformMC\";\n private isDragging = false;\n\n private scaleUC?: ScaleTransformUC;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDragging = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isDragging = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n this.scaleUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.isDragging = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformMC.type);\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"DragScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/DragScaleTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA4C;AAE5C,MAAa,oBACX,SAAQ,0BAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA9BtC,eAAU,GAAG,KAAK,CAAC;QAI3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAKA,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAnDH,oDAoDC;AAhDiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"DragScaleTransformMC\";\n private isDragging = false;\n\n private scaleUC?: ScaleTransformUC;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onDown = (e: MouseInputEvent) => {\n this.isDragging = false;\n\n if (!this.allow(e)) return;\n\n const pixelPosition = e.position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isDragging = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n this.scaleUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.isDragging = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformMC.type);\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type,\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MousePanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/MousePanTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,kEAA+D;AAE/D,MAAa,mBACX,SAAQ,0BAAmB;IAU3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAYM,eAAU,GAAG,KAAK,CAAC;QAE3B,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAC5E,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AArDH,kDAsDC;AAlDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class MousePanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MousePanTransformMC\";\n\n public allow = (e: MouseInputEvent): boolean => {\n if (e.button !== 0) return false;\n return true;\n };\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type\n );\n }\n\n private isDragging = false;\n\n onDown = (e: MouseInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.isDragging = this.tryScreenDragUC?.tryWithPixel(e.position) ?? false;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.moveWithPixel(e.position);\n };\n\n onUp = () => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MousePanTransformMC.type);\n\n this.mouseInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"MousePanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/MousePanTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,kEAA+D;AAE/D,MAAa,mBACX,SAAQ,0BAAmB;IAU3B,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,6BAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IA8BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAYM,eAAU,GAAG,KAAK,CAAC;QAE3B,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;QAC5E,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;;AArDH,kDAsDC;AAlDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class MousePanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"MousePanTransformMC\";\n\n public allow = (e: MouseInputEvent): boolean => {\n if (e.button !== 0) return false;\n return true;\n };\n\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type,\n );\n }\n\n private isDragging = false;\n\n onDown = (e: MouseInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.isDragging = this.tryScreenDragUC?.tryWithPixel(e.position) ?? false;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.moveWithPixel(e.position);\n };\n\n onUp = () => {\n if (!this.isDragging) return;\n\n this.tryScreenDragUC?.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MousePanTransformMC.type);\n\n this.mouseInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/PanTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA0C;AAE1C,MAAa,cACX,SAAQ,0BAAmB;IA+B3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA5BhC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAIF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,mBAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACR,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAjDH,wCAkDC;AA9CiB,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"PanTransformMC\";\n private doPan = false;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n private panUC?: PanTransformUC;\n\n onDown = (e: MouseInputEvent) => {\n this.doPan = false;\n\n if (!this.allow(e)) return;\n\n this.panUC?.initializePixel(e.position);\n this.doPan = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.doPan) return;\n this.panUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.doPan = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformMC.type);\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.error(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\"\n );\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"PanTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/PanTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA0C;AAE1C,MAAa,cACX,SAAQ,0BAAmB;IA+B3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA5BhC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAIF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC;QAEF,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,mBAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACR,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAjDH,wCAkDC;AA9CiB,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../../MouseInput\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"PanTransformMC\";\n private doPan = false;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n private panUC?: PanTransformUC;\n\n onDown = (e: MouseInputEvent) => {\n this.doPan = false;\n\n if (!this.allow(e)) return;\n\n this.panUC?.initializePixel(e.position);\n this.doPan = true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.doPan) return;\n this.panUC?.updatePixel(e.position);\n };\n\n onUp = () => {\n this.doPan = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformMC.type);\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.error(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\",\n );\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RollScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/RollScaleTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA+D;AAE/D,MAAa,oBACX,SAAQ,0BAAmB;IAqB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAf9C,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC;QAKA,IAAI,CAAC,WAAW;YACd,SAAS,CAAC,YAAY,CACpB,wCAAmC,CAAC,IAAI,CACzC,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CACR,mHAAmH,CACpH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;;AA1CH,oDA2CC;AAvCiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../../MouseInput\";\nimport { BumpTransformScaleAboutPixelPointUC } from \"../../UC\";\n\nexport class RollScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"RollScaleTransformMC\";\n\n private bumpScaleUC?: BumpTransformScaleAboutPixelPointUC;\n\n allow = (e: MouseWheelEvent): boolean => {\n return true;\n };\n\n onWheel = (e: MouseWheelEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.bumpScaleUC) {\n return;\n }\n\n this.bumpScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, RollScaleTransformMC.type);\n\n this.bumpScaleUC =\n appObject.getComponent<BumpTransformScaleAboutPixelPointUC>(\n BumpTransformScaleAboutPixelPointUC.type\n );\n if (!this.bumpScaleUC) {\n this.error(\n \"Controller has been added to an App Object that does not have BumpTransformScaleAboutPixelPointUC. Add one first.\"\n );\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.error(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"RollScaleTransformMC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Mouse/RollScaleTransformMC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,oDAI6B;AAC7B,iCAA+D;AAE/D,MAAa,oBACX,SAAQ,0BAAmB;IAqB3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAf9C,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC,CAAC;QAKA,IAAI,CAAC,WAAW;YACd,SAAS,CAAC,YAAY,CACpB,wCAAmC,CAAC,IAAI,CACzC,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CACR,mHAAmH,CACpH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,6BAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;;AA1CH,oDA2CC;AAvCiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseWheelEvent,\n} from \"../../../MouseInput\";\nimport { BumpTransformScaleAboutPixelPointUC } from \"../../UC\";\n\nexport class RollScaleTransformMC\n extends AppObjectController\n implements MouseEventHandler\n{\n static readonly type = \"RollScaleTransformMC\";\n\n private bumpScaleUC?: BumpTransformScaleAboutPixelPointUC;\n\n allow = (e: MouseWheelEvent): boolean => {\n return true;\n };\n\n onWheel = (e: MouseWheelEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.bumpScaleUC) {\n return;\n }\n\n this.bumpScaleUC.bump(e.event.deltaY > 0 ? \"OUT\" : \"IN\", e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, RollScaleTransformMC.type);\n\n this.bumpScaleUC =\n appObject.getComponent<BumpTransformScaleAboutPixelPointUC>(\n BumpTransformScaleAboutPixelPointUC.type,\n );\n if (!this.bumpScaleUC) {\n this.error(\n \"Controller has been added to an App Object that does not have BumpTransformScaleAboutPixelPointUC. Add one first.\",\n );\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.error(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MoveTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/MoveTransformSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,4CAAmE;AACnE,iCAA8C;AAE9C,MAAa,eACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,uBAAuB,CACjC,uBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAgCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA/BjC,aAAQ,GAAG,KAAK,CAAC;QAEzB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AAjDH,0CAkDC;AA9CiB,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { TryMoveTransformUC } from \"../../UC\";\n\nexport class MoveTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"MoveTransformSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get tryMoveUC() {\n return this.getCachedLocalComponent<TryMoveTransformUC>(\n TryMoveTransformUC.type\n );\n }\n\n private doUpdate = false;\n\n allow = (button: number): boolean => {\n if (button === 0) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doUpdate = false;\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.allow(button)) return;\n\n this.doUpdate = this.tryMoveUC.tryWithRay(this.stylus.pickRay);\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.doUpdate) return;\n this.tryMoveUC.moveWithRay(this.stylus.pickRay);\n };\n\n onButtonUp = () => {\n if (!this.doUpdate) return;\n this.doUpdate = false;\n\n if (!this.tryMoveUC) return;\n\n this.tryMoveUC.stop();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MoveTransformSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"MoveTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/MoveTransformSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,4CAAmE;AACnE,iCAA8C;AAE9C,MAAa,eACX,SAAQ,0BAAmB;IAK3B,IAAY,MAAM;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAe,qBAAY,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,uBAAuB,CACjC,uBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAgCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA/BjC,aAAQ,GAAG,KAAK,CAAC;QAEzB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YAEtB,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAE5B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC,CAAC;QAIA,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;;AAjDH,0CAkDC;AA9CiB,oBAAI,GAAG,iBAAiB,AAApB,CAAqB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { TryMoveTransformUC } from \"../../UC\";\n\nexport class MoveTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"MoveTransformSC\";\n\n private get stylus() {\n return this.getCachedSingleton<StylusEntity>(StylusEntity.type);\n }\n\n private get tryMoveUC() {\n return this.getCachedLocalComponent<TryMoveTransformUC>(\n TryMoveTransformUC.type,\n );\n }\n\n private doUpdate = false;\n\n allow = (button: number): boolean => {\n if (button === 0) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doUpdate = false;\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.allow(button)) return;\n\n this.doUpdate = this.tryMoveUC.tryWithRay(this.stylus.pickRay);\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.tryMoveUC) return;\n if (!this.doUpdate) return;\n this.tryMoveUC.moveWithRay(this.stylus.pickRay);\n };\n\n onButtonUp = () => {\n if (!this.doUpdate) return;\n this.doUpdate = false;\n\n if (!this.tryMoveUC) return;\n\n this.tryMoveUC.stop();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MoveTransformSC.type);\n this.stylus?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PanScaleTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/PanScaleTransformSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,4CAAmE;AACnE,iCAAkD;AAElD,MAAa,mBACX,SAAQ,0BAAmB;IAsC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAhCrC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YAErB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,qBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAC9B,2BAAsB,CAAC,IAAI,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAzDH,kDA0DC;AAtDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { RayPanScaleTransformUC } from \"../../UC\";\n\nexport class PanScaleTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"PanScaleTransformSC\";\n private stylus?: StylusEntity;\n\n private uc?: RayPanScaleTransformUC;\n private doPan = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doPan = false;\n if (!this.stylus || !this.uc) return;\n if (!this.allow(button)) return;\n\n this.uc.initialize(this.stylus.pickRay);\n this.doPan = true;\n };\n\n onButtonUp = () => {\n if (!this.doPan) return;\n this.doPan = false;\n\n if (!this.uc) return;\n\n this.uc.finish();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.uc) return;\n if (!this.doPan) return;\n this.uc.update(this.stylus.pickRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanScaleTransformSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.uc = appObject.getComponent<RayPanScaleTransformUC>(\n RayPanScaleTransformUC.type\n );\n if (!this.uc) {\n this.error(\"App Object that does not have a StylusDragScaleTransformUC\");\n return;\n }\n\n this.stylus.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"PanScaleTransformSC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Stylus/PanScaleTransformSC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,4CAAmE;AACnE,iCAAkD;AAElD,MAAa,mBACX,SAAQ,0BAAmB;IAsC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAhCrC,UAAK,GAAG,KAAK,CAAC;QAEtB,UAAK,GAAG,CAAC,MAAc,EAAW,EAAE;YAClC,IAAI,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,MAAc,EAAE,EAAE;YAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YAEhC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YAEnB,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YAErB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,iBAAY,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE;gBAAE,OAAO;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QAKA,IAAI,CAAC,MAAM,GAAG,qBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,YAAY,CAC9B,2BAAsB,CAAC,IAAI,CAC5B,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAzDH,kDA0DC;AAtDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { StylusEventHandler, StylusEntity } from \"../../../Stylus\";\nimport { RayPanScaleTransformUC } from \"../../UC\";\n\nexport class PanScaleTransformSC\n extends AppObjectController\n implements StylusEventHandler\n{\n static readonly type = \"PanScaleTransformSC\";\n private stylus?: StylusEntity;\n\n private uc?: RayPanScaleTransformUC;\n private doPan = false;\n\n allow = (button: number): boolean => {\n if (button === 1) return true;\n return false;\n };\n\n onButtonDown = (button: number) => {\n this.doPan = false;\n if (!this.stylus || !this.uc) return;\n if (!this.allow(button)) return;\n\n this.uc.initialize(this.stylus.pickRay);\n this.doPan = true;\n };\n\n onButtonUp = () => {\n if (!this.doPan) return;\n this.doPan = false;\n\n if (!this.uc) return;\n\n this.uc.finish();\n };\n\n onStylusMove = () => {\n if (!this.stylus || !this.uc) return;\n if (!this.doPan) return;\n this.uc.update(this.stylus.pickRay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanScaleTransformSC.type);\n\n this.stylus = StylusEntity.get(this.appObjects);\n if (!this.stylus) {\n this.error(\"Unable to find StylusEntity\");\n return;\n }\n\n this.uc = appObject.getComponent<RayPanScaleTransformUC>(\n RayPanScaleTransformUC.type,\n );\n if (!this.uc) {\n this.error(\"App Object that does not have a StylusDragScaleTransformUC\");\n return;\n }\n\n this.stylus.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DragScaleTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/DragScaleTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA4C;AAE5C,MAAa,oBACX,SAAQ,0BAAmB;IA6C3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA1CtC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEnC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAhEH,oDAiEC;AA7DiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DragScaleTransformTC\";\n private isScaling = false;\n scaleUC?: ScaleTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) {\n return false;\n }\n\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isScaling = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isScaling = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isScaling) return;\n if (e.touches.length !== 1) return;\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = () => {\n this.isScaling = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"DragScaleTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/DragScaleTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA4C;AAE5C,MAAa,oBACX,SAAQ,0BAAmB;IA6C3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QA1CtC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEnC,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAhEH,oDAiEC;AA7DiB,yBAAI,GAAG,sBAAsB,AAAzB,CAA0B","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { ScaleTransformUC } from \"../../UC\";\n\nexport class DragScaleTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"DragScaleTransformTC\";\n private isScaling = false;\n scaleUC?: ScaleTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) {\n return false;\n }\n\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isScaling = false;\n\n if (e.touches.length !== 1) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.initializePixel(pixelPosition);\n\n this.isScaling = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isScaling) return;\n if (e.touches.length !== 1) return;\n\n const pixelPosition = e.touches[0].position;\n this.scaleUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = () => {\n this.isScaling = false;\n this.scaleUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DragScaleTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.scaleUC = appObject.getComponent<ScaleTransformUC>(\n ScaleTransformUC.type,\n );\n if (!this.scaleUC) {\n this.error(\"App Object that does not have ScaleTransformUC\");\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PanTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA0C;AAE1C,MAAa,cACX,SAAQ,0BAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA9BhC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,mBAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CACP,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AApDH,wCAqDC;AAjDiB,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PanTransformTC\";\n private isPanning = false;\n private panUC?: PanTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isPanning = false;\n this.panUC?.cancelPan();\n return;\n }\n\n this.panUC?.initializePixel(e.touchCenter);\n this.isPanning = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPanning) return;\n const pixelPosition = e.touches[0].position;\n this.panUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n this.isPanning = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.warn(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\"\n );\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"PanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PanTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA0C;AAE1C,MAAa,cACX,SAAQ,0BAAmB;IAiC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA9BhC,cAAS,GAAG,KAAK,CAAC;QAG1B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5C,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,eAAU,GAAG,CAAC,CAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,YAAY,CAAiB,mBAAc,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CACP,8FAA8F,CAC/F,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AApDH,wCAqDC;AAjDiB,mBAAI,GAAG,gBAAgB,AAAnB,CAAoB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PanTransformUC } from \"../../UC\";\n\nexport class PanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PanTransformTC\";\n private isPanning = false;\n private panUC?: PanTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) {\n this.isPanning = false;\n this.panUC?.cancelPan();\n return;\n }\n\n this.panUC?.initializePixel(e.touchCenter);\n this.isPanning = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPanning) return;\n const pixelPosition = e.touches[0].position;\n this.panUC?.updatePixel(pixelPosition);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n this.isPanning = false;\n this.panUC?.finish();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PanTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.panUC = appObject.getComponent<PanTransformUC>(PanTransformUC.type);\n if (!this.panUC) {\n this.warn(\n \"Controller has been added to an App Object that does not have PanTransformUC. Add one first.\",\n );\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PinchTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PinchTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA4C;AAE5C,MAAa,gBACX,SAAQ,0BAAmB;IAqC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,eAAU,GAAG,KAAK,CAAC;QAG3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAxDH,4CAyDC;AArDiB,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PinchTransformUC } from \"../../UC\";\n\nexport class PinchTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PinchTransformTC\";\n private isPinching = false;\n pinchUC?: PinchTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isPinching = false;\n\n if (e.touches.length !== 2) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.pinchUC?.initializePinch(e.touches[0].position, e.touches[1].position);\n this.isPinching = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPinching) return;\n if (e.touches.length !== 2) return;\n this.pinchUC?.doPinch(e.touches[0].position, e.touches[1].position);\n };\n\n onTouchEnd = () => {\n this.isPinching = false;\n this.pinchUC?.finishPinch();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PinchTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.pinchUC = appObject.getComponent<PinchTransformUC>(\n PinchTransformUC.type\n );\n if (!this.pinchUC) {\n this.error(\"App Object does not have PinchTransformUC\");\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"PinchTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/PinchTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,iCAA4C;AAE5C,MAAa,gBACX,SAAQ,0BAAmB;IAqC3B,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAlClC,eAAU,GAAG,KAAK,CAAC;QAG3B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO;YACT,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YACnC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC9B,CAAC,CAAC;QAIA,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC;QAE3C,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CACnC,qBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;;AAxDH,4CAyDC;AArDiB,qBAAI,GAAG,kBAAkB,AAArB,CAAsB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { PinchTransformUC } from \"../../UC\";\n\nexport class PinchTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"PinchTransformTC\";\n private isPinching = false;\n pinchUC?: PinchTransformUC;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n this.isPinching = false;\n\n if (e.touches.length !== 2) {\n return;\n }\n\n if (!this.allow(e)) {\n return;\n }\n\n this.pinchUC?.initializePinch(e.touches[0].position, e.touches[1].position);\n this.isPinching = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.isPinching) return;\n if (e.touches.length !== 2) return;\n this.pinchUC?.doPinch(e.touches[0].position, e.touches[1].position);\n };\n\n onTouchEnd = () => {\n this.isPinching = false;\n this.pinchUC?.finishPinch();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PinchTransformTC.type);\n const appObjects = appObject.appObjectRepo;\n\n this.pinchUC = appObject.getComponent<PinchTransformUC>(\n PinchTransformUC.type,\n );\n if (!this.pinchUC) {\n this.error(\"App Object does not have PinchTransformUC\");\n return;\n }\n\n const touchInput = TouchInputEntity.get(appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchPanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/TouchPanTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,kEAA+D;AAE/D,MAAa,mBACX,SAAQ,0BAAmB;IAU3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAQM,eAAU,GAAG,KAAK,CAAC;QAE3B,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAtDH,kDAuDC;AAnDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class TouchPanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPanTransformTC\";\n\n public allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) return false;\n return true;\n };\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type\n );\n }\n\n private isDragging = false;\n\n onTouchStart = (e: TouchInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.tryScreenDragUC) return;\n\n if (!this.allow(e)) return;\n\n const position = e.touches[0].position;\n this.isDragging = this.tryScreenDragUC.tryWithPixel(position);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n const position = e.touches[0].position;\n this.tryScreenDragUC.moveWithPixel(position);\n };\n\n onTouchEnd = () => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n this.tryScreenDragUC.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchPanTransformTC.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n touchInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"TouchPanTransformTC.js","sourceRoot":"","sources":["../../../../../src/Transform3D/Controllers/Touch/TouchPanTransformTC.ts"],"names":[],"mappings":";;;AAAA,sCAA6D;AAC7D,8DAIkC;AAClC,kEAA+D;AAE/D,MAAa,mBACX,SAAQ,0BAAmB;IAU3B,IAAY,eAAe;QACzB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAkCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QA5CtC,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YAC7C,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAQM,eAAU,GAAG,KAAK,CAAC;QAE3B,iBAAY,GAAG,CAAC,CAAkB,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAElC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAE3B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,CAAkB,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,eAAU,GAAG,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,eAAe;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAE7B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC;QAKA,MAAM,UAAU,GAAG,kCAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;;AAtDH,kDAuDC;AAnDiB,wBAAI,GAAG,qBAAqB,AAAxB,CAAyB","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../../TouchController\";\nimport { TryPanTransformUC } from \"../../UC/TryPanTransformUC\";\n\nexport class TouchPanTransformTC\n extends AppObjectController\n implements TouchEventHandler\n{\n static readonly type = \"TouchPanTransformTC\";\n\n public allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length !== 1) return false;\n return true;\n };\n\n private get tryScreenDragUC() {\n return this.getCachedLocalComponent<TryPanTransformUC>(\n TryPanTransformUC.type,\n );\n }\n\n private isDragging = false;\n\n onTouchStart = (e: TouchInputEvent) => {\n if (this.isDragging) {\n this.tryScreenDragUC?.cancel();\n this.isDragging = false;\n }\n\n if (!this.tryScreenDragUC) return;\n\n if (!this.allow(e)) return;\n\n const position = e.touches[0].position;\n this.isDragging = this.tryScreenDragUC.tryWithPixel(position);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n const position = e.touches[0].position;\n this.tryScreenDragUC.moveWithPixel(position);\n };\n\n onTouchEnd = () => {\n if (!this.tryScreenDragUC) return;\n if (!this.isDragging) return;\n\n this.tryScreenDragUC.stop();\n this.isDragging = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchPanTransformTC.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n touchInput?.registerController(this);\n }\n}\n"]}
@@ -12,6 +12,9 @@ function makeTestRig() {
12
12
  const mockBabylon = makeMockBabylonRenderingUC(appObjects);
13
13
  const mockMouse = new MockMouseInput(app);
14
14
  const mockTouch = new MockTouchInputEntity(app);
15
+ // Convert mouse input methods to jest mocks
16
+ mockMouse.setEventElement = jest.fn();
17
+ mockMouse.clearInputElement = jest.fn();
15
18
  const mockWarn = jest.fn();
16
19
  appObjects.submitWarning = mockWarn;
17
20
  return {
@@ -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\";\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 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(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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
+ {"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 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(\"Warns if it can't find the keyboard input when a canvas is submitted\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockKeybaord.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the keyboard input when a canvas is cleared\", () => {\n const { mockKeybaord, renderUC, mockWarn } = makeTestRig();\n\n mockKeybaord.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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(\"Warns if it can't find the mouse input when a canvas is submitted\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockMouse.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the mouse input when a canvas is cleared\", () => {\n const { mockMouse, renderUC, mockWarn } = makeTestRig();\n\n mockMouse.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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(\"Warns if it can't find the touch input when a canvas is submitted\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n const renderCanvas = document.createElement(\"canvas\");\n mockTouch.dispose();\n renderUC.submitCanvas(renderCanvas);\n\n expect(mockWarn).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(\"Warns if it can't find the touch input when a canvas is cleared\", () => {\n const { mockTouch, renderUC, mockWarn } = makeTestRig();\n\n mockTouch.dispose();\n renderUC.clearCanvas();\n\n expect(mockWarn).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":"HoverLabelMouse.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelMouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,OAAgB,eACpB,SAAQ,mBAAmB;;AAGpB,oBAAI,GAAG,6BAA6B,CAAC;AAO9C,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IA6B9C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA7BhC,oBAAe,GAAG,GAAG,CAAC;QAO/B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAEpC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,CAAC,CAAC;QAKA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CACjD,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,wGAAwG,CACzG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF","sourcesContent":["import { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\n\nexport abstract class HoverLabelMouse\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_HoverLabel_Controller\";\n\n abstract readonly hoverLabelDelay: number;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeHoverLabelMouse(appObject: AppObject): HoverLabelMouse {\n return new HoverLabelMouseImp(appObject);\n}\n\nclass HoverLabelMouseImp extends HoverLabelMouse {\n readonly hoverLabelDelay = 500;\n\n private currentTimeout: NodeJS.Timeout | undefined;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n if (!this.tryShowHoverLabel) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n\n if (this.currentTimeout) {\n clearTimeout(this.currentTimeout);\n }\n\n this.currentTimeout = setTimeout(() => {\n this.tryShowHoverLabel?.tryShowScreenHoverLabel(e.position);\n this.currentTimeout = undefined;\n }, this.hoverLabelDelay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelMouse.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\"\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"HoverLabelMouse.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelMouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,OAAgB,eACpB,SAAQ,mBAAmB;;AAGpB,oBAAI,GAAG,6BAA6B,CAAC;AAO9C,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IA6B9C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QA7BhC,oBAAe,GAAG,GAAG,CAAC;QAO/B,UAAK,GAAG,CAAC,CAAkB,EAAW,EAAE;YACtC,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO;YAC3B,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAAE,OAAO;YACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YAEpC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,CAAC,CAAC;QAKA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CACjD,gBAAgB,CAAC,IAAI,CACtB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CACP,wGAAwG,CACzG,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF","sourcesContent":["import { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\n\nexport abstract class HoverLabelMouse\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_HoverLabel_Controller\";\n\n abstract readonly hoverLabelDelay: number;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeHoverLabelMouse(appObject: AppObject): HoverLabelMouse {\n return new HoverLabelMouseImp(appObject);\n}\n\nclass HoverLabelMouseImp extends HoverLabelMouse {\n readonly hoverLabelDelay = 500;\n\n private currentTimeout: NodeJS.Timeout | undefined;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n if (!this.tryShowHoverLabel) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n\n if (this.currentTimeout) {\n clearTimeout(this.currentTimeout);\n }\n\n this.currentTimeout = setTimeout(() => {\n this.tryShowHoverLabel?.tryShowScreenHoverLabel(e.position);\n this.currentTimeout = undefined;\n }, this.hoverLabelDelay);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelMouse.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type,\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\",\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"HoverLabelTouch.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelTouch.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\n\nexport abstract class HoverLabelTouch\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"Touch_Hoverlabel_Controller\";\n\n abstract readonly touchLabelDragThreshold: number;\n abstract allow: (e: TouchInputEvent) => boolean;\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(): void;\n}\n\nexport function makeHoverLabelTouch(appObject: AppObject): HoverLabelTouch {\n return new HoverLabelTouchImp(appObject);\n}\n\nclass HoverLabelTouchImp extends HoverLabelTouch {\n readonly touchLabelDragThreshold = 15;\n\n private lastPosition: Vector2 = Vector2.Zero();\n private startPosition: Vector2 = Vector2.Zero();\n private touchStarted = false;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n this.touchStarted = false;\n\n if (e.touchCount !== 1) return;\n\n this.startPosition = e.touches[0].position;\n this.lastPosition = e.touches[0].position;\n this.touchStarted = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.touchStarted) return;\n\n this.lastPosition = e.touches[0].position;\n };\n\n onTouchEnd = () => {\n if (!this.touchStarted) return;\n if (!this.tryShowHoverLabel) return;\n\n const xDiff = this.lastPosition.x - this.startPosition.x;\n const yDiff = this.lastPosition.y - this.startPosition.y;\n const dist = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n\n if (dist < this.touchLabelDragThreshold) {\n this.tryShowHoverLabel.tryShowScreenHoverLabel(this.lastPosition);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelTouch.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\"\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"HoverLabelTouch.js","sourceRoot":"","sources":["../../../../src/HoverLabel/Controllers/HoverLabelTouch.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { HoverLabelEntity } from \"../Entities/HoverLabelEntity\";\nimport { TryShowHoverLabel } from \"../UseCases/TryShowHoverLabel\";\n\nexport abstract class HoverLabelTouch\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"Touch_Hoverlabel_Controller\";\n\n abstract readonly touchLabelDragThreshold: number;\n abstract allow: (e: TouchInputEvent) => boolean;\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(): void;\n}\n\nexport function makeHoverLabelTouch(appObject: AppObject): HoverLabelTouch {\n return new HoverLabelTouchImp(appObject);\n}\n\nclass HoverLabelTouchImp extends HoverLabelTouch {\n readonly touchLabelDragThreshold = 15;\n\n private lastPosition: Vector2 = Vector2.Zero();\n private startPosition: Vector2 = Vector2.Zero();\n private touchStarted = false;\n\n private hoverLabelEntity?: HoverLabelEntity;\n private tryShowHoverLabel?: TryShowHoverLabel;\n\n allow = (e: TouchInputEvent): boolean => {\n return true;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.hoverLabelEntity) return;\n\n this.hoverLabelEntity.hideHoverLabel();\n this.touchStarted = false;\n\n if (e.touchCount !== 1) return;\n\n this.startPosition = e.touches[0].position;\n this.lastPosition = e.touches[0].position;\n this.touchStarted = true;\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.touchStarted) return;\n\n this.lastPosition = e.touches[0].position;\n };\n\n onTouchEnd = () => {\n if (!this.touchStarted) return;\n if (!this.tryShowHoverLabel) return;\n\n const xDiff = this.lastPosition.x - this.startPosition.x;\n const yDiff = this.lastPosition.y - this.startPosition.y;\n const dist = Math.sqrt(xDiff * xDiff + yDiff * yDiff);\n\n if (dist < this.touchLabelDragThreshold) {\n this.tryShowHoverLabel.tryShowScreenHoverLabel(this.lastPosition);\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, HoverLabelTouch.type);\n\n this.hoverLabelEntity = this.appObject.getComponent<HoverLabelEntity>(\n HoverLabelEntity.type,\n );\n if (!this.hoverLabelEntity) {\n this.warn(\n \"Serializer has been added to an App Object that does not have a HoverLabelEntity. Add the Entity first\",\n );\n return;\n }\n\n this.tryShowHoverLabel = TryShowHoverLabel.get(this.appObjects);\n if (!this.tryShowHoverLabel) {\n this.warn(\"Unable to find TryShowHoverLabel UC\");\n return;\n }\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/MouseLabelDropAuthor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAgB,oBACpB,SAAQ,mBAAmB;;AAGpB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAKD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class MouseLabelDropAuthor\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseLabelDropAuthor\";\n abstract onClick: (e: MouseInputEvent) => void;\n}\n\nexport function makeMouseLabelDropAuthor(\n appObject: AppObject\n): MouseLabelDropAuthor {\n return new MouseLabelDropAuthorImp(appObject);\n}\n\nclass MouseLabelDropAuthorImp extends MouseLabelDropAuthor {\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type\n );\n }\n onClick = (e: MouseInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLabelDropAuthor.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"MouseLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/MouseLabelDropAuthor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAgB,oBACpB,SAAQ,mBAAmB;;AAGpB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAKD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,YAAO,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC/B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput/Entities/MouseInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class MouseLabelDropAuthor\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"MouseLabelDropAuthor\";\n abstract onClick: (e: MouseInputEvent) => void;\n}\n\nexport function makeMouseLabelDropAuthor(\n appObject: AppObject,\n): MouseLabelDropAuthor {\n return new MouseLabelDropAuthorImp(appObject);\n}\n\nclass MouseLabelDropAuthorImp extends MouseLabelDropAuthor {\n private get mouseInput() {\n return this.getCachedSingleton<MouseInputEntity>(MouseInputEntity.type);\n }\n\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type,\n );\n }\n onClick = (e: MouseInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.position);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLabelDropAuthor.type);\n this.mouseInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAgB,oBACpB,SAAQ,mBAAmB;;AAGpB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class TouchLabelDropAuthor\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchLabelDropAuthor\";\n abstract onTap: (e: TouchInputEvent) => void;\n}\n\nexport function makeTouchLabelDropAuthor(\n appObject: AppObject\n): TouchLabelDropAuthor {\n return new TouchLabelDropAuthorImp(appObject);\n}\n\nclass TouchLabelDropAuthorImp extends TouchLabelDropAuthor {\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type\n );\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n onTap = (e: TouchInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.touchCenter);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLabelDropAuthor.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
1
+ {"version":3,"file":"TouchLabelDropAuthor.js","sourceRoot":"","sources":["../../../../src/LabelDrop/Controller/TouchLabelDropAuthor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAEL,gBAAgB,GAEjB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,MAAM,OAAgB,oBACpB,SAAQ,mBAAmB;;AAGpB,yBAAI,GAAG,sBAAsB,CAAC;AAIvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IACxD,IAAY,kCAAkC;QAC5C,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAL9C,UAAK,GAAG,CAAC,CAAkB,EAAE,EAAE;YAC7B,IAAI,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7E,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController/Entities/TouchInput\";\nimport { ToggleLabelDropTargetUC } from \"../UseCases/ToggleLabelDropTargetUC\";\n\nexport abstract class TouchLabelDropAuthor\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TouchLabelDropAuthor\";\n abstract onTap: (e: TouchInputEvent) => void;\n}\n\nexport function makeTouchLabelDropAuthor(\n appObject: AppObject,\n): TouchLabelDropAuthor {\n return new TouchLabelDropAuthorImp(appObject);\n}\n\nclass TouchLabelDropAuthorImp extends TouchLabelDropAuthor {\n private get addLabelDropCorrectObjectFromRayUC() {\n return this.getCachedSingleton<ToggleLabelDropTargetUC>(\n ToggleLabelDropTargetUC.type,\n );\n }\n\n private get touchInput() {\n return this.getCachedSingleton<TouchInputEntity>(TouchInputEntity.type);\n }\n\n onTap = (e: TouchInputEvent) => {\n this.addLabelDropCorrectObjectFromRayUC?.tryToggleFromPixel(e.touchCenter);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLabelDropAuthor.type);\n this.touchInput?.registerController(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/MouseLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class MouseLandmark\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_Landmark_Controller\";\n\n addingLandmark: boolean = false;\n pressed = false;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract onDown: (e: MouseInputEvent) => void;\n abstract onUp: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeMouseLandmark(appObject: AppObject): MouseLandmark {\n return new MouseLandmarkImp(appObject);\n}\n\nclass MouseLandmarkImp extends MouseLandmark {\n addingLandmark: boolean = false;\n pressed = false;\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, this.pressed);\n };\n\n onDown = (e: MouseInputEvent) => {\n this.addingLandmark = false;\n\n if (e.button !== 0) return;\n\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n const pressed = true;\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, pressed);\n this.addingLandmark = true;\n this.pressed = true;\n };\n\n onUp = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.addingLandmark) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n\n this.tryPreviewLandmarkUc.hidePreview();\n this.addingLandmark = false;\n this.pressed = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLandmark.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"MouseLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/MouseLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n MouseEventHandler,\n MouseInputEntity,\n MouseInputEvent,\n} from \"../../MouseInput\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class MouseLandmark\n extends AppObjectController\n implements MouseEventHandler\n{\n static type = \"Mouse_Landmark_Controller\";\n\n addingLandmark: boolean = false;\n pressed = false;\n abstract onMove: (e: MouseInputEvent) => void;\n abstract onDown: (e: MouseInputEvent) => void;\n abstract onUp: (e: MouseInputEvent) => void;\n abstract allow: (e: MouseInputEvent) => boolean;\n}\n\nexport function makeMouseLandmark(appObject: AppObject): MouseLandmark {\n return new MouseLandmarkImp(appObject);\n}\n\nclass MouseLandmarkImp extends MouseLandmark {\n addingLandmark: boolean = false;\n pressed = false;\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type,\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type,\n );\n }\n\n allow = (e: MouseInputEvent): boolean => {\n return true;\n };\n\n onMove = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, this.pressed);\n };\n\n onDown = (e: MouseInputEvent) => {\n this.addingLandmark = false;\n\n if (e.button !== 0) return;\n\n if (!this.allow(e)) return;\n\n if (!this.tryPreviewLandmarkUc) {\n return;\n }\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n const pressed = true;\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, pressed);\n this.addingLandmark = true;\n this.pressed = true;\n };\n\n onUp = (e: MouseInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.addingLandmark) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(e.position, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n\n this.tryPreviewLandmarkUc.hidePreview();\n this.addingLandmark = false;\n this.pressed = false;\n };\n\n constructor(appObject: AppObject) {\n super(appObject, MouseLandmark.type);\n\n const mouseInput = MouseInputEntity.get(this.appObjects);\n if (mouseInput) {\n mouseInput.registerController(this);\n } else {\n this.warn(\"Unable to find MouseInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/TouchLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { LandmarkGlobals } from \"../Entities/LandmarkGlobals\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class TouchLandmark\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TOUCH_LANDMARK_CONTROLLER\";\n\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(e: TouchInputEvent): void;\n abstract allow: (e: TouchInputEvent) => boolean;\n}\n\nexport function makeTouchLandmark(appObject: AppObject): TouchLandmark {\n return new TouchLandmarkImp(appObject);\n}\n\nclass TouchLandmarkImp extends TouchLandmark {\n private lastTouch: Vector2 = Vector2.Zero();\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type\n );\n }\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length === 1) {\n return true;\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(this.lastTouch, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n this.tryPreviewLandmarkUc.hidePreview();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLandmark.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
1
+ {"version":3,"file":"TouchLandmark.js","sourceRoot":"","sources":["../../../../src/Landmarks/Controller/TouchLandmark.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectController } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\nimport { pixelToSceneRay } from \"../../Babylon\";\nimport {\n TouchEventHandler,\n TouchInputEntity,\n TouchInputEvent,\n} from \"../../TouchController\";\nimport { LandmarkGlobals } from \"../Entities/LandmarkGlobals\";\nimport { TryAddNewLandmarkUC } from \"../UseCases/TryAddNewLandmarkUC\";\nimport { TryPreviewLandmarkUC } from \"../UseCases/TryPreviewLandmarkUC\";\n\nexport abstract class TouchLandmark\n extends AppObjectController\n implements TouchEventHandler\n{\n static type = \"TOUCH_LANDMARK_CONTROLLER\";\n\n abstract onTouchStart(e: TouchInputEvent): void;\n abstract onTouchMove(e: TouchInputEvent): void;\n abstract onTouchEnd(e: TouchInputEvent): void;\n abstract allow: (e: TouchInputEvent) => boolean;\n}\n\nexport function makeTouchLandmark(appObject: AppObject): TouchLandmark {\n return new TouchLandmarkImp(appObject);\n}\n\nclass TouchLandmarkImp extends TouchLandmark {\n private lastTouch: Vector2 = Vector2.Zero();\n\n private get tryPreviewLandmarkUc() {\n return this.getCachedSingleton<TryPreviewLandmarkUC>(\n TryPreviewLandmarkUC.type,\n );\n }\n\n private get tryAddLandmarkUc() {\n return this.getCachedSingleton<TryAddNewLandmarkUC>(\n TryAddNewLandmarkUC.type,\n );\n }\n\n allow = (e: TouchInputEvent): boolean => {\n if (e.touches.length === 1) {\n return true;\n }\n\n return false;\n };\n\n onTouchStart = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchMove = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const position = e.touches[0].position;\n this.lastTouch = position;\n const ray = pixelToSceneRay(position, this.appObjects);\n this.tryPreviewLandmarkUc.tryPreviewLandmark(ray, true);\n };\n\n onTouchEnd = (e: TouchInputEvent) => {\n if (!this.allow(e)) return;\n if (e.touchCount > 1) return;\n if (!this.tryAddLandmarkUc) return;\n if (!this.tryPreviewLandmarkUc) return;\n\n const ray = pixelToSceneRay(this.lastTouch, this.appObjects);\n this.tryAddLandmarkUc.addFromRay(ray);\n this.tryPreviewLandmarkUc.hidePreview();\n };\n\n constructor(appObject: AppObject) {\n super(appObject, TouchLandmark.type);\n\n const touchInput = TouchInputEntity.get(this.appObjects);\n if (touchInput) {\n touchInput.registerController(this);\n } else {\n this.warn(\"Unable to find TouchInputEntity\");\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Entities/MouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectEntity, getSingletonComponent } from \"@vived/core\";\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface MouseInputEvent {\n position: Vector2;\n button: number;\n event: MouseEvent;\n}\n\nexport interface MouseWheelEvent {\n position: Vector2;\n event: WheelEvent;\n}\n\nexport interface MouseEventHandler {\n onClick?: (e: MouseInputEvent) => void;\n onDoubleClick?: (e: MouseInputEvent) => void;\n onDown?: (e: MouseInputEvent) => void;\n onUp?: (e: MouseInputEvent) => void;\n onMove?: (e: MouseInputEvent) => void;\n onWheel?: (e: MouseWheelEvent) => void;\n}\n\n/**\n * @deprecated Use MouseEventHandler instead. MouseController will be removed in a future version.\n */\nexport type MouseController = MouseEventHandler;\n\nexport abstract class MouseInputEntity extends AppObjectEntity {\n static readonly type = \"MouseInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n\n abstract setEventElement(eventElement: HTMLElement): void;\n abstract clearInputElement(): void;\n\n abstract registerController(controller: MouseEventHandler): void;\n abstract removeController(controller: MouseEventHandler): void;\n\n static get = (appObjects: AppObjectRepo): MouseInputEntity | undefined =>\n getSingletonComponent(MouseInputEntity.type, appObjects);\n}\n\nexport function makeMouseInput(appObject: AppObject): MouseInputEntity {\n return new MouseInputEntityImp(appObject);\n}\n\nclass MouseInputEntityImp extends MouseInputEntity {\n private controllers: MouseEventHandler[] = [];\n\n private maxClickMovement = 5; // pixels\n private pressEvent?: MouseEvent;\n private isPressed = false;\n\n private initialClickTime: number = 0;\n private initialClickPos: Vector2 = Vector2.Zero();\n private clickCount = 0;\n private maxDoubleClickTimeMS = 300;\n private maxDoubleClickDistancePx = 5;\n\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"mousedown\", this.onMouseDown, false);\n eventElement.addEventListener(\"mouseup\", this.onMouseUp, false);\n eventElement.addEventListener(\"mousemove\", this.onMouseMove, false);\n eventElement.addEventListener(\"mouseout\", this.onMouseOut, false);\n eventElement.addEventListener(\"wheel\", this.onWheel, false);\n\n this._eventElement = eventElement;\n };\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"mousedown\", this.onMouseDown);\n this._eventElement.removeEventListener(\"mouseup\", this.onMouseUp);\n this._eventElement.removeEventListener(\"mousemove\", this.onMouseMove);\n this._eventElement.removeEventListener(\"mouseout\", this.onMouseOut);\n this._eventElement.removeEventListener(\"wheel\", this.onWheel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: MouseEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: MouseEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private onMouseDown = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onDown) {\n c.onDown(inputEvt);\n }\n });\n\n this.isPressed = true;\n this.pressEvent = e;\n\n if (this.clickCount === 0) return;\n\n const movement = Vector2.Subtract(\n this.initialClickPos,\n inputEvt.position\n ).magnitued;\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime > this.maxDoubleClickTimeMS ||\n movement > this.maxDoubleClickDistancePx\n ) {\n this.clickCount = 0;\n }\n };\n\n private onMouseUp = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.isPressed = false;\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued < this.maxClickMovement) {\n this.controllers.forEach((c) => {\n if (c.onClick) {\n c.onClick(inputEvt);\n }\n });\n this.clickCount += 1;\n } else {\n this.cancelDoubleClick();\n return;\n }\n\n if (this.clickCount === 1) {\n this.initialClickTime = Date.now();\n this.initialClickPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY\n );\n } else if (this.clickCount === 2) {\n const currentPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY\n );\n let movement = Vector2.Subtract(\n this.initialClickPos,\n currentPos\n ).magnitued;\n if (isNaN(movement)) {\n movement = 0;\n }\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime <= this.maxDoubleClickTimeMS &&\n movement <= this.maxDoubleClickDistancePx\n ) {\n this.controllers.forEach((c) => {\n if (c.onDoubleClick) {\n c.onDoubleClick(inputEvt);\n }\n });\n\n this.cancelDoubleClick();\n }\n }\n\n this.pressEvent = undefined;\n };\n\n private cancelDoubleClick = () => {\n this.initialClickPos = Vector2.Zero();\n this.initialClickTime = 0;\n this.clickCount = 0;\n };\n\n private onMouseMove = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onMove) {\n c.onMove(inputEvt);\n }\n });\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued > this.maxClickMovement) {\n this.pressEvent = undefined;\n }\n };\n\n private onMouseOut = (e: MouseEvent) => {\n this.cancelDoubleClick();\n\n if (!this.isPressed) return;\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.pressEvent = undefined;\n this.isPressed = false;\n };\n\n private onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const px = e.offsetX;\n const py = e.offsetY;\n const button = e.button;\n\n const inputEvt: MouseWheelEvent = {\n position: new Vector2(px, py),\n event: e,\n };\n\n this.controllers.forEach((c) => {\n if (c.onWheel) {\n c.onWheel(inputEvt);\n }\n });\n };\n\n private makeMouseInputEvent(event: MouseEvent): MouseInputEvent {\n const px = event.offsetX;\n const py = event.offsetY;\n const button = event.button;\n\n return {\n position: new Vector2(px, py),\n button,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
1
+ {"version":3,"file":"MouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Entities/MouseInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectEntity, getSingletonComponent } from \"@vived/core\";\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { Vector2 } from \"@vived/core\";\n\nexport interface MouseInputEvent {\n position: Vector2;\n button: number;\n event: MouseEvent;\n}\n\nexport interface MouseWheelEvent {\n position: Vector2;\n event: WheelEvent;\n}\n\nexport interface MouseEventHandler {\n onClick?: (e: MouseInputEvent) => void;\n onDoubleClick?: (e: MouseInputEvent) => void;\n onDown?: (e: MouseInputEvent) => void;\n onUp?: (e: MouseInputEvent) => void;\n onMove?: (e: MouseInputEvent) => void;\n onWheel?: (e: MouseWheelEvent) => void;\n}\n\n/**\n * @deprecated Use MouseEventHandler instead. MouseController will be removed in a future version.\n */\nexport type MouseController = MouseEventHandler;\n\nexport abstract class MouseInputEntity extends AppObjectEntity {\n static readonly type = \"MouseInputEntity\";\n\n abstract get eventElement(): HTMLElement | undefined;\n\n abstract setEventElement(eventElement: HTMLElement): void;\n abstract clearInputElement(): void;\n\n abstract registerController(controller: MouseEventHandler): void;\n abstract removeController(controller: MouseEventHandler): void;\n\n static get = (appObjects: AppObjectRepo): MouseInputEntity | undefined =>\n getSingletonComponent(MouseInputEntity.type, appObjects);\n}\n\nexport function makeMouseInput(appObject: AppObject): MouseInputEntity {\n return new MouseInputEntityImp(appObject);\n}\n\nclass MouseInputEntityImp extends MouseInputEntity {\n private controllers: MouseEventHandler[] = [];\n\n private maxClickMovement = 5; // pixels\n private pressEvent?: MouseEvent;\n private isPressed = false;\n\n private initialClickTime: number = 0;\n private initialClickPos: Vector2 = Vector2.Zero();\n private clickCount = 0;\n private maxDoubleClickTimeMS = 300;\n private maxDoubleClickDistancePx = 5;\n\n private _eventElement: HTMLElement | undefined = undefined;\n public get eventElement(): HTMLElement | undefined {\n return this._eventElement;\n }\n\n setEventElement = (eventElement: HTMLElement): void => {\n if (this._eventElement) this.clearInputElement();\n\n eventElement.addEventListener(\"mousedown\", this.onMouseDown, false);\n eventElement.addEventListener(\"mouseup\", this.onMouseUp, false);\n eventElement.addEventListener(\"mousemove\", this.onMouseMove, false);\n eventElement.addEventListener(\"mouseout\", this.onMouseOut, false);\n eventElement.addEventListener(\"wheel\", this.onWheel, false);\n\n this._eventElement = eventElement;\n };\n clearInputElement = (): void => {\n if (!this._eventElement) return;\n\n this._eventElement.removeEventListener(\"mousedown\", this.onMouseDown);\n this._eventElement.removeEventListener(\"mouseup\", this.onMouseUp);\n this._eventElement.removeEventListener(\"mousemove\", this.onMouseMove);\n this._eventElement.removeEventListener(\"mouseout\", this.onMouseOut);\n this._eventElement.removeEventListener(\"wheel\", this.onWheel);\n\n this._eventElement = undefined;\n };\n\n registerController = (controller: MouseEventHandler): void => {\n this.controllers.push(controller);\n };\n removeController = (controller: MouseEventHandler): void => {\n const index = this.controllers.indexOf(controller);\n if (index >= 0) {\n this.controllers.splice(index, 1);\n }\n };\n\n private onMouseDown = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onDown) {\n c.onDown(inputEvt);\n }\n });\n\n this.isPressed = true;\n this.pressEvent = e;\n\n if (this.clickCount === 0) return;\n\n const movement = Vector2.Subtract(\n this.initialClickPos,\n inputEvt.position,\n ).magnitued;\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime > this.maxDoubleClickTimeMS ||\n movement > this.maxDoubleClickDistancePx\n ) {\n this.clickCount = 0;\n }\n };\n\n private onMouseUp = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.isPressed = false;\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued < this.maxClickMovement) {\n this.controllers.forEach((c) => {\n if (c.onClick) {\n c.onClick(inputEvt);\n }\n });\n this.clickCount += 1;\n } else {\n this.cancelDoubleClick();\n return;\n }\n\n if (this.clickCount === 1) {\n this.initialClickTime = Date.now();\n this.initialClickPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY,\n );\n } else if (this.clickCount === 2) {\n const currentPos = new Vector2(\n this.pressEvent.screenX,\n this.pressEvent.screenY,\n );\n let movement = Vector2.Subtract(\n this.initialClickPos,\n currentPos,\n ).magnitued;\n if (isNaN(movement)) {\n movement = 0;\n }\n const passedTime = Date.now() - this.initialClickTime;\n if (\n passedTime <= this.maxDoubleClickTimeMS &&\n movement <= this.maxDoubleClickDistancePx\n ) {\n this.controllers.forEach((c) => {\n if (c.onDoubleClick) {\n c.onDoubleClick(inputEvt);\n }\n });\n\n this.cancelDoubleClick();\n }\n }\n\n this.pressEvent = undefined;\n };\n\n private cancelDoubleClick = () => {\n this.initialClickPos = Vector2.Zero();\n this.initialClickTime = 0;\n this.clickCount = 0;\n };\n\n private onMouseMove = (e: MouseEvent) => {\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onMove) {\n c.onMove(inputEvt);\n }\n });\n\n if (!this.pressEvent) return;\n\n const deltaX = this.pressEvent.screenX - e.screenX;\n const deltaY = this.pressEvent.screenY - e.screenY;\n const delta = new Vector2(deltaX, deltaY);\n if (delta.magnitued > this.maxClickMovement) {\n this.pressEvent = undefined;\n }\n };\n\n private onMouseOut = (e: MouseEvent) => {\n this.cancelDoubleClick();\n\n if (!this.isPressed) return;\n const inputEvt = this.makeMouseInputEvent(e);\n this.controllers.forEach((c) => {\n if (c.onUp) {\n c.onUp(inputEvt);\n }\n });\n\n this.pressEvent = undefined;\n this.isPressed = false;\n };\n\n private onWheel = (e: WheelEvent) => {\n e.preventDefault();\n const px = e.offsetX;\n const py = e.offsetY;\n const button = e.button;\n\n const inputEvt: MouseWheelEvent = {\n position: new Vector2(px, py),\n event: e,\n };\n\n this.controllers.forEach((c) => {\n if (c.onWheel) {\n c.onWheel(inputEvt);\n }\n });\n };\n\n private makeMouseInputEvent(event: MouseEvent): MouseInputEvent {\n const px = event.offsetX;\n const py = event.offsetY;\n const button = event.button;\n\n return {\n position: new Vector2(px, py),\n button,\n event,\n };\n }\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
@@ -5,11 +5,10 @@ export class MockMouseInput extends MouseInputEntity {
5
5
  }
6
6
  constructor(appObject) {
7
7
  super(appObject, MouseInputEntity.type);
8
- this.setEventElement = jest.fn();
9
- this.clearInputElement = jest.fn();
10
- this.registerController = jest.fn();
11
- this.removeController = jest.fn();
12
- this.isKeyPressed = jest.fn();
8
+ this.setEventElement = (_eventElement) => { };
9
+ this.clearInputElement = () => { };
10
+ this.registerController = (_controller) => { };
11
+ this.removeController = (_controller) => { };
13
12
  }
14
13
  }
15
14
  //# sourceMappingURL=MockMouseInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockMouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,IAAI,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAP1C,oBAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,sBAAiB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,uBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC/B,qBAAgB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC7B,iBAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIzB,CAAC;CACF","sourcesContent":["import { AppObject } from \"@vived/core\";\nimport { MouseInputEntity } from \"../Entities/MouseInput\";\n\nexport class MockMouseInput extends MouseInputEntity {\n get eventElement(): HTMLElement | undefined {\n throw new Error(\"Method not implemented.\");\n }\n setEventElement = jest.fn();\n clearInputElement = jest.fn();\n registerController = jest.fn();\n removeController = jest.fn();\n isKeyPressed = jest.fn();\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
1
+ {"version":3,"file":"MockMouseInput.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/MockMouseInput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,wBAAwB,CAAC;AAE7E,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,IAAI,YAAY;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAMD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAN1C,oBAAe,GAAG,CAAC,aAA0B,EAAQ,EAAE,GAAE,CAAC,CAAC;QAC3D,sBAAiB,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;QACnC,uBAAkB,GAAG,CAAC,WAA8B,EAAQ,EAAE,GAAE,CAAC,CAAC;QAClE,qBAAgB,GAAG,CAAC,WAA8B,EAAQ,EAAE,GAAE,CAAC,CAAC;IAIhE,CAAC;CACF","sourcesContent":["import { AppObject } from \"@vived/core\";\nimport { MouseInputEntity, MouseEventHandler } from \"../Entities/MouseInput\";\n\nexport class MockMouseInput extends MouseInputEntity {\n get eventElement(): HTMLElement | undefined {\n throw new Error(\"Method not implemented.\");\n }\n setEventElement = (_eventElement: HTMLElement): void => {};\n clearInputElement = (): void => {};\n registerController = (_controller: MouseEventHandler): void => {};\n removeController = (_controller: MouseEventHandler): void => {};\n\n constructor(appObject: AppObject) {\n super(appObject, MouseInputEntity.type);\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./MockMouseInput";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/MouseInput/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC","sourcesContent":["export * from \"./MockMouseInput\";\n"]}