@ue-too/board-fabric-integration 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/fabric-input-event-parser.d.ts +2 -2
- package/index.d.ts +1 -1
- package/index.js.map +2 -2
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InputOrchestrator, KmtInputStateMachine } from
|
|
2
|
-
import { StaticCanvas, TPointerEventInfo } from
|
|
1
|
+
import { InputOrchestrator, KmtInputStateMachine } from '@ue-too/board';
|
|
2
|
+
import { StaticCanvas, TPointerEventInfo } from 'fabric';
|
|
3
3
|
export declare class FabricInputEventParser {
|
|
4
4
|
private _fabricCanvas;
|
|
5
5
|
private _kmtInputStateMachine;
|
package/index.d.ts
CHANGED
package/index.js.map
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
"fabric-input-event-parser.ts"
|
|
5
5
|
],
|
|
6
6
|
"sourcesContent": [
|
|
7
|
-
"import { InputOrchestrator
|
|
7
|
+
"import { EventArgs } from '@ue-too/being';\nimport {\n InputOrchestrator,\n KmtInputEventMapping,\n KmtInputStateMachine,\n} from '@ue-too/board';\nimport { StaticCanvas, TPointerEventInfo } from 'fabric';\n\nexport class FabricInputEventParser {\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(\n fabricCanvas: StaticCanvas,\n kmtInputStateMachine: KmtInputStateMachine,\n inputOrchestrator: InputOrchestrator\n ) {\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, {\n signal: this._abortController.signal,\n });\n window.addEventListener('keyup', this.keyupHandler, {\n signal: this._abortController.signal,\n });\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(\n event: TPointerEventInfo & { alreadySelected: boolean }\n ) {\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', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\n return;\n }\n if (nativeEvent.button === 1) {\n this.processEvent('middlePointerDown', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\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', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\n return;\n }\n if (nativeEvent.button === 1) {\n this.processEvent('middlePointerUp', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\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', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\n return;\n }\n if (nativeEvent.buttons === 4) {\n this.processEvent('middlePointerMove', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\n return;\n }\n this.processEvent('pointerMove', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n });\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', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n deltaX: nativeEvent.deltaX,\n deltaY: nativeEvent.deltaY,\n });\n } else {\n this.processEvent('scroll', {\n x: nativeEvent.clientX,\n y: nativeEvent.clientY,\n deltaX: nativeEvent.deltaX,\n deltaY: nativeEvent.deltaY,\n });\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"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "
|
|
9
|
+
"mappings": "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",
|
|
10
10
|
"debugId": "D373009ED0FA45DB64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
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.
|
|
4
|
+
"version": "0.15.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
"types": "./index.d.ts",
|
|
24
24
|
"module": "./index.js",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@ue-too/board": "^0.
|
|
27
|
-
"@ue-too/being": "^0.
|
|
28
|
-
"@ue-too/math": "^0.
|
|
26
|
+
"@ue-too/board": "^0.15.0",
|
|
27
|
+
"@ue-too/being": "^0.15.0",
|
|
28
|
+
"@ue-too/math": "^0.15.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"fabric": "7.
|
|
31
|
+
"fabric": "7.2.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"fabric": "7.
|
|
34
|
+
"fabric": "7.2.0"
|
|
35
35
|
}
|
|
36
36
|
}
|