@ue-too/board-fabric-integration 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  class P{_fabricCanvas;_kmtInputStateMachine;_inputOrchestrator;_keyfirstPressed;_abortController;_disabled=!1;constructor(x,p,g){this._fabricCanvas=x,this._kmtInputStateMachine=p,this._inputOrchestrator=g,this._keyfirstPressed=new Map,this.bindFunctions(),this._abortController=new AbortController}bindFunctions(){this.pointerDownHandler=this.pointerDownHandler.bind(this),this.pointerUpHandler=this.pointerUpHandler.bind(this),this.pointerMoveHandler=this.pointerMoveHandler.bind(this),this.scrollHandler=this.scrollHandler.bind(this),this.keydownHandler=this.keydownHandler.bind(this),this.keyupHandler=this.keyupHandler.bind(this)}setUp(){this._fabricCanvas.on("mouse:down",this.pointerDownHandler),this._fabricCanvas.on("mouse:up",this.pointerUpHandler),this._fabricCanvas.on("mouse:move",this.pointerMoveHandler),this._fabricCanvas.on("mouse:wheel",this.scrollHandler),window.addEventListener("keydown",this.keydownHandler,{signal:this._abortController.signal}),window.addEventListener("keyup",this.keyupHandler,{signal:this._abortController.signal})}tearDown(){this._fabricCanvas.off("mouse:down",this.pointerDownHandler),this._fabricCanvas.off("mouse:up",this.pointerUpHandler),this._fabricCanvas.off("mouse:move",this.pointerMoveHandler),this._fabricCanvas.off("mouse:wheel",this.scrollHandler),this._abortController.abort(),this._abortController=new AbortController}processEvent(...x){let p=this._kmtInputStateMachine.happens(...x);if(p.handled&&"output"in p)this._inputOrchestrator.processInputEventOutput(p.output)}pointerDownHandler(x){console.log("pointerDownHandler",x),x.e.preventDefault();let p=x.e;if(!(p instanceof MouseEvent))return;if(p.button===0){this.processEvent("leftPointerDown",{x:p.clientX,y:p.clientY});return}if(p.button===1){this.processEvent("middlePointerDown",{x:p.clientX,y:p.clientY});return}}disable(){this._disabled=!0}enable(){this._disabled=!1}get disabled(){return this._disabled}pointerUpHandler(x){if(this._disabled)return;let p=x.e;if(!(p instanceof MouseEvent))return;if(p.button===0){this.processEvent("leftPointerUp",{x:p.clientX,y:p.clientY});return}if(p.button===1){this.processEvent("middlePointerUp",{x:p.clientX,y:p.clientY});return}}pointerMoveHandler(x){if(this._disabled)return;let p=x.e;if(!(p instanceof MouseEvent))return;if(p.buttons===1){this.processEvent("leftPointerMove",{x:p.clientX,y:p.clientY});return}if(p.buttons===4){this.processEvent("middlePointerMove",{x:p.clientX,y:p.clientY});return}this.processEvent("pointerMove",{x:p.clientX,y:p.clientY})}scrollHandler(x){if(this._disabled)return;let p=x.e;if(p.ctrlKey)this.processEvent("scrollWithCtrl",{x:p.clientX,y:p.clientY,deltaX:p.deltaX,deltaY:p.deltaY});else this.processEvent("scroll",{x:p.clientX,y:p.clientY,deltaX:p.deltaX,deltaY:p.deltaY})}keydownHandler(x){if(this._disabled)return;if(this._keyfirstPressed.has(x.key))return;if(this._keyfirstPressed.set(x.key,!0),x.key===" ")this.processEvent("spacebarDown")}keyupHandler(x){if(this._disabled)return;if(this._keyfirstPressed.has(x.key))this._keyfirstPressed.delete(x.key);if(x.key===" ")this.processEvent("spacebarUp")}}export{P as FabricInputEventParser};
2
2
 
3
3
  //# debugId=D373009ED0FA45DB64756E2164756E21
4
+
5
+ //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/fabric-input-event-parser.ts"],
3
+ "sources": [
4
+ "fabric-input-event-parser.ts"
5
+ ],
4
6
  "sourcesContent": [
5
7
  "import { InputOrchestrator, KmtInputEventMapping, KmtInputStateMachine } from \"@ue-too/board\";\nimport { StaticCanvas, TPointerEventInfo } from \"fabric\";\nimport { EventArgs } from \"@ue-too/being\";\n\nexport class FabricInputEventParser {\n\n private _fabricCanvas: StaticCanvas;\n private _kmtInputStateMachine: KmtInputStateMachine;\n private _inputOrchestrator: InputOrchestrator;\n private _keyfirstPressed: Map<string, boolean>;\n private _abortController: AbortController;\n private _disabled: boolean = false;\n\n constructor(fabricCanvas: StaticCanvas, kmtInputStateMachine: KmtInputStateMachine, inputOrchestrator: InputOrchestrator) {\n this._fabricCanvas = fabricCanvas;\n this._kmtInputStateMachine = kmtInputStateMachine;\n this._inputOrchestrator = inputOrchestrator;\n this._keyfirstPressed = new Map();\n this.bindFunctions();\n this._abortController = new AbortController();\n }\n\n bindFunctions(){\n this.pointerDownHandler = this.pointerDownHandler.bind(this);\n this.pointerUpHandler = this.pointerUpHandler.bind(this);\n this.pointerMoveHandler = this.pointerMoveHandler.bind(this);\n this.scrollHandler = this.scrollHandler.bind(this);\n this.keydownHandler = this.keydownHandler.bind(this);\n this.keyupHandler = this.keyupHandler.bind(this);\n }\n\n setUp(){\n this._fabricCanvas.on(\"mouse:down\", this.pointerDownHandler);\n this._fabricCanvas.on(\"mouse:up\", this.pointerUpHandler);\n this._fabricCanvas.on(\"mouse:move\", this.pointerMoveHandler);\n this._fabricCanvas.on(\"mouse:wheel\", this.scrollHandler);\n window.addEventListener(\"keydown\", this.keydownHandler, {signal: this._abortController.signal});\n window.addEventListener(\"keyup\", this.keyupHandler, {signal: this._abortController.signal});\n }\n\n tearDown(){\n this._fabricCanvas.off(\"mouse:down\", this.pointerDownHandler);\n this._fabricCanvas.off(\"mouse:up\", this.pointerUpHandler);\n this._fabricCanvas.off(\"mouse:move\", this.pointerMoveHandler);\n this._fabricCanvas.off(\"mouse:wheel\", this.scrollHandler);\n this._abortController.abort();\n this._abortController = new AbortController();\n }\n\n private processEvent<K extends keyof KmtInputEventMapping>(\n ...args: EventArgs<KmtInputEventMapping, K>\n ): void {\n const result = this._kmtInputStateMachine.happens(...args);\n if (result.handled && \"output\" in result) {\n this._inputOrchestrator.processInputEventOutput(result.output);\n }\n }\n\n pointerDownHandler(event: TPointerEventInfo & { alreadySelected: boolean }){\n console.log(\"pointerDownHandler\", event);\n event.e.preventDefault();\n const nativeEvent = event.e;\n // Only handle mouse events, not touch events\n if(!(nativeEvent instanceof MouseEvent)){\n return;\n }\n if(nativeEvent.button === 0){\n this.processEvent(\"leftPointerDown\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n if(nativeEvent.button === 1){\n this.processEvent(\"middlePointerDown\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n }\n\n disable(){\n this._disabled = true;\n }\n\n enable(){\n this._disabled = false;\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n pointerUpHandler(event: TPointerEventInfo & { isClick: boolean }){\n if(this._disabled){\n return;\n }\n const nativeEvent = event.e;\n // Only handle mouse events, not touch events\n if(!(nativeEvent instanceof MouseEvent)){\n return;\n }\n if(nativeEvent.button === 0){\n this.processEvent(\"leftPointerUp\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n if(nativeEvent.button === 1){\n this.processEvent(\"middlePointerUp\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n }\n\n pointerMoveHandler(event: TPointerEventInfo){\n if(this._disabled){\n return;\n }\n const nativeEvent = event.e;\n // Only handle mouse events, not touch events\n if(!(nativeEvent instanceof MouseEvent)){\n return;\n }\n if(nativeEvent.buttons === 1){\n this.processEvent(\"leftPointerMove\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n if(nativeEvent.buttons === 4){\n this.processEvent(\"middlePointerMove\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n return;\n }\n this.processEvent(\"pointerMove\", {x: nativeEvent.clientX, y: nativeEvent.clientY});\n }\n\n scrollHandler(event: TPointerEventInfo<WheelEvent>){\n if(this._disabled){\n return;\n }\n const nativeEvent = event.e;\n if(nativeEvent.ctrlKey){\n this.processEvent(\"scrollWithCtrl\", {x: nativeEvent.clientX, y: nativeEvent.clientY, deltaX: nativeEvent.deltaX, deltaY: nativeEvent.deltaY});\n } else {\n this.processEvent(\"scroll\", {x: nativeEvent.clientX, y: nativeEvent.clientY, deltaX: nativeEvent.deltaX, deltaY: nativeEvent.deltaY});\n }\n }\n\n keydownHandler(event: KeyboardEvent){\n if(this._disabled){\n return;\n }\n if(this._keyfirstPressed.has(event.key)){\n return;\n }\n this._keyfirstPressed.set(event.key, true);\n if(event.key === \" \"){\n this.processEvent(\"spacebarDown\");\n }\n }\n\n keyupHandler(event: KeyboardEvent){\n if(this._disabled){\n return;\n }\n if(this._keyfirstPressed.has(event.key)){\n this._keyfirstPressed.delete(event.key);\n }\n if(event.key === \" \"){\n this.processEvent(\"spacebarUp\");\n }\n }\n}\n"
6
8
  ],
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ue-too/board-fabric-integration",
3
3
  "type": "module",
4
- "version": "0.13.0",
4
+ "version": "0.14.0",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -23,9 +23,9 @@
23
23
  "types": "./index.d.ts",
24
24
  "module": "./index.js",
25
25
  "dependencies": {
26
- "@ue-too/board": "^0.13.0",
27
- "@ue-too/being": "^0.13.0",
28
- "@ue-too/math": "^0.13.0"
26
+ "@ue-too/board": "^0.14.0",
27
+ "@ue-too/being": "^0.14.0",
28
+ "@ue-too/math": "^0.14.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "fabric": "7.1.0"