@reffy/infinite-canvas 0.0.1
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/LICENSE.txt +21 -0
- package/README.md +94 -0
- package/esm/API.d.ts +21 -0
- package/esm/API.d.ts.map +1 -0
- package/esm/API.js +74 -0
- package/esm/API.js.map +1 -0
- package/esm/Canvas.d.ts +69 -0
- package/esm/Canvas.d.ts.map +1 -0
- package/esm/Canvas.js +383 -0
- package/esm/Canvas.js.map +1 -0
- package/esm/Component.d.ts +126 -0
- package/esm/Component.d.ts.map +1 -0
- package/esm/Component.js +612 -0
- package/esm/Component.js.map +1 -0
- package/esm/bounding/AABB.d.ts +10 -0
- package/esm/bounding/AABB.d.ts.map +1 -0
- package/esm/bounding/AABB.js +19 -0
- package/esm/bounding/AABB.js.map +1 -0
- package/esm/bounding/BoundingBox.d.ts +53 -0
- package/esm/bounding/BoundingBox.d.ts.map +1 -0
- package/esm/bounding/BoundingBox.js +300 -0
- package/esm/bounding/BoundingBox.js.map +1 -0
- package/esm/bounding/Marquee.d.ts +28 -0
- package/esm/bounding/Marquee.d.ts.map +1 -0
- package/esm/bounding/Marquee.js +111 -0
- package/esm/bounding/Marquee.js.map +1 -0
- package/esm/bounding/MultiBoundingBox.d.ts +33 -0
- package/esm/bounding/MultiBoundingBox.d.ts.map +1 -0
- package/esm/bounding/MultiBoundingBox.js +373 -0
- package/esm/bounding/MultiBoundingBox.js.map +1 -0
- package/esm/bounding/index.d.ts +6 -0
- package/esm/bounding/index.d.ts.map +1 -0
- package/esm/bounding/index.js +6 -0
- package/esm/bounding/index.js.map +1 -0
- package/esm/bounding/type.d.ts +13 -0
- package/esm/bounding/type.d.ts.map +1 -0
- package/esm/bounding/type.js +6 -0
- package/esm/bounding/type.js.map +1 -0
- package/esm/camera/Camera.d.ts +27 -0
- package/esm/camera/Camera.d.ts.map +1 -0
- package/esm/camera/Camera.js +68 -0
- package/esm/camera/Camera.js.map +1 -0
- package/esm/camera/index.d.ts +2 -0
- package/esm/camera/index.d.ts.map +1 -0
- package/esm/camera/index.js +2 -0
- package/esm/camera/index.js.map +1 -0
- package/esm/contextMenu/ContextMenu.d.ts +57 -0
- package/esm/contextMenu/ContextMenu.d.ts.map +1 -0
- package/esm/contextMenu/ContextMenu.js +118 -0
- package/esm/contextMenu/ContextMenu.js.map +1 -0
- package/esm/contextMenu/Interaction.d.ts +22 -0
- package/esm/contextMenu/Interaction.d.ts.map +1 -0
- package/esm/contextMenu/Interaction.js +256 -0
- package/esm/contextMenu/Interaction.js.map +1 -0
- package/esm/contextMenu/index.d.ts +3 -0
- package/esm/contextMenu/index.d.ts.map +1 -0
- package/esm/contextMenu/index.js +3 -0
- package/esm/contextMenu/index.js.map +1 -0
- package/esm/history/history.d.ts +29 -0
- package/esm/history/history.d.ts.map +1 -0
- package/esm/history/history.js +120 -0
- package/esm/history/history.js.map +1 -0
- package/esm/history/index.d.ts +2 -0
- package/esm/history/index.d.ts.map +1 -0
- package/esm/history/index.js +2 -0
- package/esm/history/index.js.map +1 -0
- package/esm/index.d.ts +5 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +5 -0
- package/esm/index.js.map +1 -0
- package/esm/loader/Interaction.d.ts +4 -0
- package/esm/loader/Interaction.d.ts.map +1 -0
- package/esm/loader/Interaction.js +17 -0
- package/esm/loader/Interaction.js.map +1 -0
- package/esm/loader/Loader.d.ts +19 -0
- package/esm/loader/Loader.d.ts.map +1 -0
- package/esm/loader/Loader.js +49 -0
- package/esm/loader/Loader.js.map +1 -0
- package/esm/loader/index.d.ts +3 -0
- package/esm/loader/index.d.ts.map +1 -0
- package/esm/loader/index.js +3 -0
- package/esm/loader/index.js.map +1 -0
- package/esm/manager/ContextMenu.d.ts +11 -0
- package/esm/manager/ContextMenu.d.ts.map +1 -0
- package/esm/manager/ContextMenu.js +46 -0
- package/esm/manager/ContextMenu.js.map +1 -0
- package/esm/manager/FlipCommand.d.ts +18 -0
- package/esm/manager/FlipCommand.d.ts.map +1 -0
- package/esm/manager/FlipCommand.js +35 -0
- package/esm/manager/FlipCommand.js.map +1 -0
- package/esm/manager/KeyEvent.d.ts +16 -0
- package/esm/manager/KeyEvent.d.ts.map +1 -0
- package/esm/manager/KeyEvent.js +51 -0
- package/esm/manager/KeyEvent.js.map +1 -0
- package/esm/manager/OrderCommand.d.ts +17 -0
- package/esm/manager/OrderCommand.d.ts.map +1 -0
- package/esm/manager/OrderCommand.js +28 -0
- package/esm/manager/OrderCommand.js.map +1 -0
- package/esm/manager/PointerEvent.d.ts +70 -0
- package/esm/manager/PointerEvent.d.ts.map +1 -0
- package/esm/manager/PointerEvent.js +171 -0
- package/esm/manager/PointerEvent.js.map +1 -0
- package/esm/manager/SceneCommand.d.ts +18 -0
- package/esm/manager/SceneCommand.d.ts.map +1 -0
- package/esm/manager/SceneCommand.js +85 -0
- package/esm/manager/SceneCommand.js.map +1 -0
- package/esm/manager/Selection.d.ts +61 -0
- package/esm/manager/Selection.d.ts.map +1 -0
- package/esm/manager/Selection.js +305 -0
- package/esm/manager/Selection.js.map +1 -0
- package/esm/manager/TransformCommand.d.ts +20 -0
- package/esm/manager/TransformCommand.d.ts.map +1 -0
- package/esm/manager/TransformCommand.js +29 -0
- package/esm/manager/TransformCommand.js.map +1 -0
- package/esm/manager/index.d.ts +9 -0
- package/esm/manager/index.d.ts.map +1 -0
- package/esm/manager/index.js +9 -0
- package/esm/manager/index.js.map +1 -0
- package/esm/serializer/index.d.ts +2 -0
- package/esm/serializer/index.d.ts.map +1 -0
- package/esm/serializer/index.js +2 -0
- package/esm/serializer/index.js.map +1 -0
- package/esm/serializer/serializer.d.ts +54 -0
- package/esm/serializer/serializer.d.ts.map +1 -0
- package/esm/serializer/serializer.js +226 -0
- package/esm/serializer/serializer.js.map +1 -0
- package/esm/shaders/grid.d.ts +3 -0
- package/esm/shaders/grid.d.ts.map +1 -0
- package/esm/shaders/grid.js +89 -0
- package/esm/shaders/grid.js.map +1 -0
- package/esm/shaders/img.d.ts +4 -0
- package/esm/shaders/img.d.ts.map +1 -0
- package/esm/shaders/img.js +39 -0
- package/esm/shaders/img.js.map +1 -0
- package/esm/shaders/index.d.ts +4 -0
- package/esm/shaders/index.d.ts.map +1 -0
- package/esm/shaders/index.js +4 -0
- package/esm/shaders/index.js.map +1 -0
- package/esm/shaders/shape.d.ts +4 -0
- package/esm/shaders/shape.d.ts.map +1 -0
- package/esm/shaders/shape.js +29 -0
- package/esm/shaders/shape.js.map +1 -0
- package/esm/shapes/Grid.d.ts +21 -0
- package/esm/shapes/Grid.d.ts.map +1 -0
- package/esm/shapes/Grid.js +86 -0
- package/esm/shapes/Grid.js.map +1 -0
- package/esm/shapes/Img.d.ts +47 -0
- package/esm/shapes/Img.d.ts.map +1 -0
- package/esm/shapes/Img.js +310 -0
- package/esm/shapes/Img.js.map +1 -0
- package/esm/shapes/Rect.d.ts +34 -0
- package/esm/shapes/Rect.d.ts.map +1 -0
- package/esm/shapes/Rect.js +92 -0
- package/esm/shapes/Rect.js.map +1 -0
- package/esm/shapes/Renderable.d.ts +54 -0
- package/esm/shapes/Renderable.d.ts.map +1 -0
- package/esm/shapes/Renderable.js +141 -0
- package/esm/shapes/Renderable.js.map +1 -0
- package/esm/shapes/Shape.d.ts +27 -0
- package/esm/shapes/Shape.d.ts.map +1 -0
- package/esm/shapes/Shape.js +69 -0
- package/esm/shapes/Shape.js.map +1 -0
- package/esm/shapes/Triangle.d.ts +20 -0
- package/esm/shapes/Triangle.d.ts.map +1 -0
- package/esm/shapes/Triangle.js +82 -0
- package/esm/shapes/Triangle.js.map +1 -0
- package/esm/shapes/index.d.ts +6 -0
- package/esm/shapes/index.d.ts.map +1 -0
- package/esm/shapes/index.js +7 -0
- package/esm/shapes/index.js.map +1 -0
- package/esm/state/camera.d.ts +36 -0
- package/esm/state/camera.d.ts.map +1 -0
- package/esm/state/camera.js +88 -0
- package/esm/state/camera.js.map +1 -0
- package/esm/state/index.d.ts +4 -0
- package/esm/state/index.d.ts.map +1 -0
- package/esm/state/index.js +4 -0
- package/esm/state/index.js.map +1 -0
- package/esm/state/pointerEvent.d.ts +23 -0
- package/esm/state/pointerEvent.d.ts.map +1 -0
- package/esm/state/pointerEvent.js +49 -0
- package/esm/state/pointerEvent.js.map +1 -0
- package/esm/state/renderable.d.ts +36 -0
- package/esm/state/renderable.d.ts.map +1 -0
- package/esm/state/renderable.js +176 -0
- package/esm/state/renderable.js.map +1 -0
- package/esm/storage/defaultStorage.d.ts +34 -0
- package/esm/storage/defaultStorage.d.ts.map +1 -0
- package/esm/storage/defaultStorage.js +237 -0
- package/esm/storage/defaultStorage.js.map +1 -0
- package/esm/storage/index.d.ts +3 -0
- package/esm/storage/index.d.ts.map +1 -0
- package/esm/storage/index.js +3 -0
- package/esm/storage/index.js.map +1 -0
- package/esm/storage/storage.d.ts +36 -0
- package/esm/storage/storage.d.ts.map +1 -0
- package/esm/storage/storage.js +44 -0
- package/esm/storage/storage.js.map +1 -0
- package/esm/util/camera/camera.d.ts +19 -0
- package/esm/util/camera/camera.d.ts.map +1 -0
- package/esm/util/camera/camera.js +75 -0
- package/esm/util/camera/camera.js.map +1 -0
- package/esm/util/camera/index.d.ts +2 -0
- package/esm/util/camera/index.d.ts.map +1 -0
- package/esm/util/camera/index.js +2 -0
- package/esm/util/camera/index.js.map +1 -0
- package/esm/util/checks.d.ts +11 -0
- package/esm/util/checks.d.ts.map +1 -0
- package/esm/util/checks.js +36 -0
- package/esm/util/checks.js.map +1 -0
- package/esm/util/clipboard.d.ts +7 -0
- package/esm/util/clipboard.d.ts.map +1 -0
- package/esm/util/clipboard.js +146 -0
- package/esm/util/clipboard.js.map +1 -0
- package/esm/util/color.d.ts +4 -0
- package/esm/util/color.d.ts.map +1 -0
- package/esm/util/color.js +8 -0
- package/esm/util/color.js.map +1 -0
- package/esm/util/customEventType.d.ts +35 -0
- package/esm/util/customEventType.d.ts.map +1 -0
- package/esm/util/customEventType.js +35 -0
- package/esm/util/customEventType.js.map +1 -0
- package/esm/util/files.d.ts +19 -0
- package/esm/util/files.d.ts.map +1 -0
- package/esm/util/files.js +182 -0
- package/esm/util/files.js.map +1 -0
- package/esm/util/handles.d.ts +10 -0
- package/esm/util/handles.d.ts.map +1 -0
- package/esm/util/handles.js +16 -0
- package/esm/util/handles.js.map +1 -0
- package/esm/util/index.d.ts +11 -0
- package/esm/util/index.d.ts.map +1 -0
- package/esm/util/index.js +11 -0
- package/esm/util/index.js.map +1 -0
- package/esm/util/performance.d.ts +2 -0
- package/esm/util/performance.d.ts.map +1 -0
- package/esm/util/performance.js +7 -0
- package/esm/util/performance.js.map +1 -0
- package/esm/util/shaders.d.ts +2 -0
- package/esm/util/shaders.d.ts.map +1 -0
- package/esm/util/shaders.js +30 -0
- package/esm/util/shaders.js.map +1 -0
- package/esm/util/webgl/index.d.ts +3 -0
- package/esm/util/webgl/index.d.ts.map +1 -0
- package/esm/util/webgl/index.js +3 -0
- package/esm/util/webgl/index.js.map +1 -0
- package/esm/util/webgl/m3.d.ts +11 -0
- package/esm/util/webgl/m3.d.ts.map +1 -0
- package/esm/util/webgl/m3.js +98 -0
- package/esm/util/webgl/m3.js.map +1 -0
- package/esm/util/webgl/uniform.d.ts +5 -0
- package/esm/util/webgl/uniform.d.ts.map +1 -0
- package/esm/util/webgl/uniform.js +18 -0
- package/esm/util/webgl/uniform.js.map +1 -0
- package/lib/API.d.ts +21 -0
- package/lib/API.d.ts.map +1 -0
- package/lib/API.js +78 -0
- package/lib/API.js.map +1 -0
- package/lib/Canvas.d.ts +69 -0
- package/lib/Canvas.d.ts.map +1 -0
- package/lib/Canvas.js +387 -0
- package/lib/Canvas.js.map +1 -0
- package/lib/Component.d.ts +126 -0
- package/lib/Component.d.ts.map +1 -0
- package/lib/Component.js +618 -0
- package/lib/Component.js.map +1 -0
- package/lib/bounding/AABB.d.ts +10 -0
- package/lib/bounding/AABB.d.ts.map +1 -0
- package/lib/bounding/AABB.js +23 -0
- package/lib/bounding/AABB.js.map +1 -0
- package/lib/bounding/BoundingBox.d.ts +53 -0
- package/lib/bounding/BoundingBox.d.ts.map +1 -0
- package/lib/bounding/BoundingBox.js +304 -0
- package/lib/bounding/BoundingBox.js.map +1 -0
- package/lib/bounding/Marquee.d.ts +28 -0
- package/lib/bounding/Marquee.d.ts.map +1 -0
- package/lib/bounding/Marquee.js +115 -0
- package/lib/bounding/Marquee.js.map +1 -0
- package/lib/bounding/MultiBoundingBox.d.ts +33 -0
- package/lib/bounding/MultiBoundingBox.d.ts.map +1 -0
- package/lib/bounding/MultiBoundingBox.js +377 -0
- package/lib/bounding/MultiBoundingBox.js.map +1 -0
- package/lib/bounding/index.d.ts +6 -0
- package/lib/bounding/index.d.ts.map +1 -0
- package/lib/bounding/index.js +22 -0
- package/lib/bounding/index.js.map +1 -0
- package/lib/bounding/type.d.ts +13 -0
- package/lib/bounding/type.d.ts.map +1 -0
- package/lib/bounding/type.js +9 -0
- package/lib/bounding/type.js.map +1 -0
- package/lib/camera/Camera.d.ts +27 -0
- package/lib/camera/Camera.d.ts.map +1 -0
- package/lib/camera/Camera.js +72 -0
- package/lib/camera/Camera.js.map +1 -0
- package/lib/camera/index.d.ts +2 -0
- package/lib/camera/index.d.ts.map +1 -0
- package/lib/camera/index.js +18 -0
- package/lib/camera/index.js.map +1 -0
- package/lib/contextMenu/ContextMenu.d.ts +57 -0
- package/lib/contextMenu/ContextMenu.d.ts.map +1 -0
- package/lib/contextMenu/ContextMenu.js +124 -0
- package/lib/contextMenu/ContextMenu.js.map +1 -0
- package/lib/contextMenu/Interaction.d.ts +22 -0
- package/lib/contextMenu/Interaction.d.ts.map +1 -0
- package/lib/contextMenu/Interaction.js +265 -0
- package/lib/contextMenu/Interaction.js.map +1 -0
- package/lib/contextMenu/index.d.ts +3 -0
- package/lib/contextMenu/index.d.ts.map +1 -0
- package/lib/contextMenu/index.js +19 -0
- package/lib/contextMenu/index.js.map +1 -0
- package/lib/history/history.d.ts +29 -0
- package/lib/history/history.d.ts.map +1 -0
- package/lib/history/history.js +127 -0
- package/lib/history/history.js.map +1 -0
- package/lib/history/index.d.ts +2 -0
- package/lib/history/index.d.ts.map +1 -0
- package/lib/history/index.js +18 -0
- package/lib/history/index.js.map +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/loader/Interaction.d.ts +4 -0
- package/lib/loader/Interaction.d.ts.map +1 -0
- package/lib/loader/Interaction.js +21 -0
- package/lib/loader/Interaction.js.map +1 -0
- package/lib/loader/Loader.d.ts +19 -0
- package/lib/loader/Loader.d.ts.map +1 -0
- package/lib/loader/Loader.js +53 -0
- package/lib/loader/Loader.js.map +1 -0
- package/lib/loader/index.d.ts +3 -0
- package/lib/loader/index.d.ts.map +1 -0
- package/lib/loader/index.js +19 -0
- package/lib/loader/index.js.map +1 -0
- package/lib/manager/ContextMenu.d.ts +11 -0
- package/lib/manager/ContextMenu.d.ts.map +1 -0
- package/lib/manager/ContextMenu.js +50 -0
- package/lib/manager/ContextMenu.js.map +1 -0
- package/lib/manager/FlipCommand.d.ts +18 -0
- package/lib/manager/FlipCommand.d.ts.map +1 -0
- package/lib/manager/FlipCommand.js +39 -0
- package/lib/manager/FlipCommand.js.map +1 -0
- package/lib/manager/KeyEvent.d.ts +16 -0
- package/lib/manager/KeyEvent.d.ts.map +1 -0
- package/lib/manager/KeyEvent.js +55 -0
- package/lib/manager/KeyEvent.js.map +1 -0
- package/lib/manager/OrderCommand.d.ts +17 -0
- package/lib/manager/OrderCommand.d.ts.map +1 -0
- package/lib/manager/OrderCommand.js +32 -0
- package/lib/manager/OrderCommand.js.map +1 -0
- package/lib/manager/PointerEvent.d.ts +70 -0
- package/lib/manager/PointerEvent.d.ts.map +1 -0
- package/lib/manager/PointerEvent.js +175 -0
- package/lib/manager/PointerEvent.js.map +1 -0
- package/lib/manager/SceneCommand.d.ts +18 -0
- package/lib/manager/SceneCommand.d.ts.map +1 -0
- package/lib/manager/SceneCommand.js +91 -0
- package/lib/manager/SceneCommand.js.map +1 -0
- package/lib/manager/Selection.d.ts +61 -0
- package/lib/manager/Selection.d.ts.map +1 -0
- package/lib/manager/Selection.js +309 -0
- package/lib/manager/Selection.js.map +1 -0
- package/lib/manager/TransformCommand.d.ts +20 -0
- package/lib/manager/TransformCommand.d.ts.map +1 -0
- package/lib/manager/TransformCommand.js +33 -0
- package/lib/manager/TransformCommand.js.map +1 -0
- package/lib/manager/index.d.ts +9 -0
- package/lib/manager/index.d.ts.map +1 -0
- package/lib/manager/index.js +25 -0
- package/lib/manager/index.js.map +1 -0
- package/lib/serializer/index.d.ts +2 -0
- package/lib/serializer/index.d.ts.map +1 -0
- package/lib/serializer/index.js +18 -0
- package/lib/serializer/index.js.map +1 -0
- package/lib/serializer/serializer.d.ts +54 -0
- package/lib/serializer/serializer.d.ts.map +1 -0
- package/lib/serializer/serializer.js +231 -0
- package/lib/serializer/serializer.js.map +1 -0
- package/lib/shaders/grid.d.ts +3 -0
- package/lib/shaders/grid.d.ts.map +1 -0
- package/lib/shaders/grid.js +92 -0
- package/lib/shaders/grid.js.map +1 -0
- package/lib/shaders/img.d.ts +4 -0
- package/lib/shaders/img.d.ts.map +1 -0
- package/lib/shaders/img.js +43 -0
- package/lib/shaders/img.js.map +1 -0
- package/lib/shaders/index.d.ts +4 -0
- package/lib/shaders/index.d.ts.map +1 -0
- package/lib/shaders/index.js +20 -0
- package/lib/shaders/index.js.map +1 -0
- package/lib/shaders/shape.d.ts +4 -0
- package/lib/shaders/shape.d.ts.map +1 -0
- package/lib/shaders/shape.js +33 -0
- package/lib/shaders/shape.js.map +1 -0
- package/lib/shapes/Grid.d.ts +21 -0
- package/lib/shapes/Grid.d.ts.map +1 -0
- package/lib/shapes/Grid.js +90 -0
- package/lib/shapes/Grid.js.map +1 -0
- package/lib/shapes/Img.d.ts +47 -0
- package/lib/shapes/Img.d.ts.map +1 -0
- package/lib/shapes/Img.js +314 -0
- package/lib/shapes/Img.js.map +1 -0
- package/lib/shapes/Rect.d.ts +34 -0
- package/lib/shapes/Rect.d.ts.map +1 -0
- package/lib/shapes/Rect.js +96 -0
- package/lib/shapes/Rect.js.map +1 -0
- package/lib/shapes/Renderable.d.ts +54 -0
- package/lib/shapes/Renderable.d.ts.map +1 -0
- package/lib/shapes/Renderable.js +146 -0
- package/lib/shapes/Renderable.js.map +1 -0
- package/lib/shapes/Shape.d.ts +27 -0
- package/lib/shapes/Shape.d.ts.map +1 -0
- package/lib/shapes/Shape.js +73 -0
- package/lib/shapes/Shape.js.map +1 -0
- package/lib/shapes/Triangle.d.ts +20 -0
- package/lib/shapes/Triangle.d.ts.map +1 -0
- package/lib/shapes/Triangle.js +86 -0
- package/lib/shapes/Triangle.js.map +1 -0
- package/lib/shapes/index.d.ts +6 -0
- package/lib/shapes/index.d.ts.map +1 -0
- package/lib/shapes/index.js +23 -0
- package/lib/shapes/index.js.map +1 -0
- package/lib/state/camera.d.ts +36 -0
- package/lib/state/camera.d.ts.map +1 -0
- package/lib/state/camera.js +92 -0
- package/lib/state/camera.js.map +1 -0
- package/lib/state/index.d.ts +4 -0
- package/lib/state/index.d.ts.map +1 -0
- package/lib/state/index.js +20 -0
- package/lib/state/index.js.map +1 -0
- package/lib/state/pointerEvent.d.ts +23 -0
- package/lib/state/pointerEvent.d.ts.map +1 -0
- package/lib/state/pointerEvent.js +53 -0
- package/lib/state/pointerEvent.js.map +1 -0
- package/lib/state/renderable.d.ts +36 -0
- package/lib/state/renderable.d.ts.map +1 -0
- package/lib/state/renderable.js +180 -0
- package/lib/state/renderable.js.map +1 -0
- package/lib/storage/defaultStorage.d.ts +34 -0
- package/lib/storage/defaultStorage.d.ts.map +1 -0
- package/lib/storage/defaultStorage.js +246 -0
- package/lib/storage/defaultStorage.js.map +1 -0
- package/lib/storage/index.d.ts +3 -0
- package/lib/storage/index.d.ts.map +1 -0
- package/lib/storage/index.js +19 -0
- package/lib/storage/index.js.map +1 -0
- package/lib/storage/storage.d.ts +36 -0
- package/lib/storage/storage.d.ts.map +1 -0
- package/lib/storage/storage.js +50 -0
- package/lib/storage/storage.js.map +1 -0
- package/lib/util/camera/camera.d.ts +19 -0
- package/lib/util/camera/camera.d.ts.map +1 -0
- package/lib/util/camera/camera.js +87 -0
- package/lib/util/camera/camera.js.map +1 -0
- package/lib/util/camera/index.d.ts +2 -0
- package/lib/util/camera/index.d.ts.map +1 -0
- package/lib/util/camera/index.js +18 -0
- package/lib/util/camera/index.js.map +1 -0
- package/lib/util/checks.d.ts +11 -0
- package/lib/util/checks.d.ts.map +1 -0
- package/lib/util/checks.js +49 -0
- package/lib/util/checks.js.map +1 -0
- package/lib/util/clipboard.d.ts +7 -0
- package/lib/util/clipboard.d.ts.map +1 -0
- package/lib/util/clipboard.js +152 -0
- package/lib/util/clipboard.js.map +1 -0
- package/lib/util/color.d.ts +4 -0
- package/lib/util/color.d.ts.map +1 -0
- package/lib/util/color.js +11 -0
- package/lib/util/color.js.map +1 -0
- package/lib/util/customEventType.d.ts +35 -0
- package/lib/util/customEventType.d.ts.map +1 -0
- package/lib/util/customEventType.js +38 -0
- package/lib/util/customEventType.js.map +1 -0
- package/lib/util/files.d.ts +19 -0
- package/lib/util/files.d.ts.map +1 -0
- package/lib/util/files.js +193 -0
- package/lib/util/files.js.map +1 -0
- package/lib/util/handles.d.ts +10 -0
- package/lib/util/handles.d.ts.map +1 -0
- package/lib/util/handles.js +20 -0
- package/lib/util/handles.js.map +1 -0
- package/lib/util/index.d.ts +11 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +27 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/performance.d.ts +2 -0
- package/lib/util/performance.d.ts.map +1 -0
- package/lib/util/performance.js +10 -0
- package/lib/util/performance.js.map +1 -0
- package/lib/util/shaders.d.ts +2 -0
- package/lib/util/shaders.d.ts.map +1 -0
- package/lib/util/shaders.js +33 -0
- package/lib/util/shaders.js.map +1 -0
- package/lib/util/webgl/index.d.ts +3 -0
- package/lib/util/webgl/index.d.ts.map +1 -0
- package/lib/util/webgl/index.js +19 -0
- package/lib/util/webgl/index.js.map +1 -0
- package/lib/util/webgl/m3.d.ts +11 -0
- package/lib/util/webgl/m3.d.ts.map +1 -0
- package/lib/util/webgl/m3.js +101 -0
- package/lib/util/webgl/m3.js.map +1 -0
- package/lib/util/webgl/uniform.d.ts +5 -0
- package/lib/util/webgl/uniform.d.ts.map +1 -0
- package/lib/util/webgl/uniform.js +21 -0
- package/lib/util/webgl/uniform.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CanvasStorage = exports.FileStorage = exports.ImageFileMetadata = void 0;
|
|
4
|
+
const util_1 = require("../util");
|
|
5
|
+
class ImageFileMetadata {
|
|
6
|
+
_touch() {
|
|
7
|
+
this._lastRetrieved = Date.now();
|
|
8
|
+
}
|
|
9
|
+
get id() {
|
|
10
|
+
this._touch();
|
|
11
|
+
return this._id;
|
|
12
|
+
}
|
|
13
|
+
get dataURL() {
|
|
14
|
+
this._touch();
|
|
15
|
+
return this._dataURL;
|
|
16
|
+
}
|
|
17
|
+
get mimetype() {
|
|
18
|
+
this._touch();
|
|
19
|
+
return this._mimetype;
|
|
20
|
+
}
|
|
21
|
+
get created() {
|
|
22
|
+
this._touch();
|
|
23
|
+
return this._created;
|
|
24
|
+
}
|
|
25
|
+
get lastRetrieved() {
|
|
26
|
+
return this._lastRetrieved;
|
|
27
|
+
}
|
|
28
|
+
constructor(dataURL) {
|
|
29
|
+
this._dataURL = dataURL;
|
|
30
|
+
this._mimetype = (0, util_1.getMimeType)(dataURL);
|
|
31
|
+
this._created = Date.now();
|
|
32
|
+
this._lastRetrieved = Date.now();
|
|
33
|
+
}
|
|
34
|
+
static async create(dataURL) {
|
|
35
|
+
const entry = new ImageFileMetadata(dataURL);
|
|
36
|
+
entry._id = await (0, util_1.hashStringToId)(dataURL);
|
|
37
|
+
return entry;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ImageFileMetadata = ImageFileMetadata;
|
|
41
|
+
class FileStorage {
|
|
42
|
+
}
|
|
43
|
+
exports.FileStorage = FileStorage;
|
|
44
|
+
/**
|
|
45
|
+
* Writes the canvas data into storage
|
|
46
|
+
*/
|
|
47
|
+
class CanvasStorage {
|
|
48
|
+
}
|
|
49
|
+
exports.CanvasStorage = CanvasStorage;
|
|
50
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"src/","sources":["storage/storage.ts"],"names":[],"mappings":";;;AACA,kCAAsD;AAEtD,MAAa,iBAAiB;IAOpB,MAAM;QACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,EAAE;QACJ,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,YAAY,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAe;QACjC,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC7C,KAAK,CAAC,GAAG,GAAG,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA/CD,8CA+CC;AAED,MAAsB,WAAW;CAWhC;AAXD,kCAWC;AAID;;GAEG;AACH,MAAsB,aAAa;CAKlC;AALD,sCAKC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Canvas } from "Canvas";
|
|
2
|
+
export declare function getClipSpaceMousePosition(e: MouseEvent, canvas: HTMLCanvasElement): number[];
|
|
3
|
+
export declare function clipToCSS(clipX: number, clipY: number, canvas: HTMLCanvasElement): [number, number];
|
|
4
|
+
export declare function screenToWorld(clientX: number, clientY: number, w: number, h: number, canvas: HTMLCanvasElement, worldMatrix: number[]): [number, number];
|
|
5
|
+
export declare function getWorldCoords(x: number, y: number, canvas: Canvas): [number, number];
|
|
6
|
+
/**
|
|
7
|
+
* Transforms a point from world space to camera (view) space.
|
|
8
|
+
* @param worldX X coordinate in world space
|
|
9
|
+
* @param worldY Y coordinate in world space
|
|
10
|
+
* @param cameraMatrix The camera/view matrix (usually canvas.worldMatrix)
|
|
11
|
+
* @returns [cameraX, cameraY]
|
|
12
|
+
*/
|
|
13
|
+
export declare function worldToCamera(worldX: number, worldY: number, cameraMatrix: number[]): number[];
|
|
14
|
+
export declare function applyMatrixToPoint(matrix: number[], x?: number, y?: number): [number, number];
|
|
15
|
+
export declare function getScaleXFromMatrix(matrix: number[]): number;
|
|
16
|
+
export declare function getScaleYFromMatrix(matrix: number[]): number;
|
|
17
|
+
export declare function getScalesFromMatrix(matrix: number[]): [number, number];
|
|
18
|
+
export declare function isScalePositive(matrix: number[]): number[];
|
|
19
|
+
//# sourceMappingURL=camera.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera.d.ts","sourceRoot":"src/","sources":["util/camera/camera.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,wBAAgB,yBAAyB,CACvC,CAAC,EAAE,UAAU,EACb,MAAM,EAAE,iBAAiB,YAa1B;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,iBAAiB,GACxB,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB;AAID,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,MAAM,EAAE,GACpB,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBlB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,oBAUlE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,EAAE,CAIV;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,CAAC,CAAC,EAAE,MAAM,EACV,CAAC,CAAC,EAAE,MAAM,GACT,CAAC,MAAM,EAAE,MAAM,CAAC,CAOlB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtE;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE1D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getClipSpaceMousePosition = getClipSpaceMousePosition;
|
|
4
|
+
exports.clipToCSS = clipToCSS;
|
|
5
|
+
exports.screenToWorld = screenToWorld;
|
|
6
|
+
exports.getWorldCoords = getWorldCoords;
|
|
7
|
+
exports.worldToCamera = worldToCamera;
|
|
8
|
+
exports.applyMatrixToPoint = applyMatrixToPoint;
|
|
9
|
+
exports.getScaleXFromMatrix = getScaleXFromMatrix;
|
|
10
|
+
exports.getScaleYFromMatrix = getScaleYFromMatrix;
|
|
11
|
+
exports.getScalesFromMatrix = getScalesFromMatrix;
|
|
12
|
+
exports.isScalePositive = isScalePositive;
|
|
13
|
+
const m3_1 = require("../webgl/m3");
|
|
14
|
+
function getClipSpaceMousePosition(e, canvas) {
|
|
15
|
+
const rect = canvas.getBoundingClientRect();
|
|
16
|
+
const cssX = e.clientX - rect.left;
|
|
17
|
+
const cssY = e.clientY - rect.top;
|
|
18
|
+
const normalizedX = cssX / canvas.clientWidth;
|
|
19
|
+
const normalizedY = cssY / canvas.clientHeight;
|
|
20
|
+
const clipX = normalizedX * 2 - 1;
|
|
21
|
+
const clipY = normalizedY * -2 + 1;
|
|
22
|
+
return [clipX, clipY];
|
|
23
|
+
}
|
|
24
|
+
function clipToCSS(clipX, clipY, canvas) {
|
|
25
|
+
const x = (clipX + 1) * 0.5 * canvas.clientWidth;
|
|
26
|
+
const y = (1 - clipY) * 0.5 * canvas.clientHeight;
|
|
27
|
+
return [x, y];
|
|
28
|
+
}
|
|
29
|
+
// Render: clip = P · V · world
|
|
30
|
+
// Picking: world = inverse(P · V) · clip
|
|
31
|
+
function screenToWorld(clientX, clientY, w, h, canvas, worldMatrix) {
|
|
32
|
+
const rect = canvas.getBoundingClientRect();
|
|
33
|
+
const dpr = window.devicePixelRatio || 1;
|
|
34
|
+
// Device pixels relative to canvas
|
|
35
|
+
const x = (clientX - rect.left) * dpr;
|
|
36
|
+
const y = (clientY - rect.top) * dpr;
|
|
37
|
+
const xClip = (x / w) * 2 - 1;
|
|
38
|
+
const yClip = (y / h) * -2 + 1;
|
|
39
|
+
// projection matrix transforms pixel space to clip space
|
|
40
|
+
const proj = m3_1.m3.projection(w, h);
|
|
41
|
+
// view-projection matrix
|
|
42
|
+
const pv = m3_1.m3.multiply(proj, worldMatrix); // worldMatrix is view matrix and calculates the matrix to map world-space to clip-space
|
|
43
|
+
// used to unproject and retrieve world coords
|
|
44
|
+
const invPV = m3_1.m3.inverse(pv);
|
|
45
|
+
const [wx, wy] = m3_1.m3.transformPoint(invPV, [xClip, yClip]);
|
|
46
|
+
return [wx, wy];
|
|
47
|
+
}
|
|
48
|
+
function getWorldCoords(x, y, canvas) {
|
|
49
|
+
const { gl, canvas: innerCanvas } = canvas;
|
|
50
|
+
return screenToWorld(x, y, gl.canvas.width, gl.canvas.height, innerCanvas, canvas.worldMatrix);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Transforms a point from world space to camera (view) space.
|
|
54
|
+
* @param worldX X coordinate in world space
|
|
55
|
+
* @param worldY Y coordinate in world space
|
|
56
|
+
* @param cameraMatrix The camera/view matrix (usually canvas.worldMatrix)
|
|
57
|
+
* @returns [cameraX, cameraY]
|
|
58
|
+
*/
|
|
59
|
+
function worldToCamera(worldX, worldY, cameraMatrix) {
|
|
60
|
+
// The camera matrix maps camera space to world space, so invert it
|
|
61
|
+
const invCamera = m3_1.m3.inverse(cameraMatrix);
|
|
62
|
+
return m3_1.m3.transformPoint(invCamera, [worldX, worldY]);
|
|
63
|
+
}
|
|
64
|
+
function applyMatrixToPoint(matrix, x, y) {
|
|
65
|
+
const px = x ?? 0;
|
|
66
|
+
const py = y ?? 0;
|
|
67
|
+
return [
|
|
68
|
+
matrix[0] * px + matrix[3] * py + matrix[6],
|
|
69
|
+
matrix[1] * px + matrix[4] * py + matrix[7],
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
function getScaleXFromMatrix(matrix) {
|
|
73
|
+
return Math.hypot(matrix[0], matrix[1]);
|
|
74
|
+
}
|
|
75
|
+
function getScaleYFromMatrix(matrix) {
|
|
76
|
+
return Math.hypot(matrix[3], matrix[4]);
|
|
77
|
+
}
|
|
78
|
+
function getScalesFromMatrix(matrix) {
|
|
79
|
+
return [getScaleXFromMatrix(matrix), getScaleYFromMatrix(matrix)];
|
|
80
|
+
}
|
|
81
|
+
function isPositive(num) {
|
|
82
|
+
return num / Math.abs(num);
|
|
83
|
+
}
|
|
84
|
+
function isScalePositive(matrix) {
|
|
85
|
+
return [isPositive(matrix[0]), isPositive(matrix[4])];
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=camera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera.js","sourceRoot":"src/","sources":["util/camera/camera.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"src/","sources":["util/camera/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./camera"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"src/","sources":["util/camera/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function arraysEqual(a: any, b: any): boolean;
|
|
2
|
+
export declare const isNumber: (a: any) => a is number;
|
|
3
|
+
export declare const isObject: (a: any) => a is object;
|
|
4
|
+
export declare const isBoolean: (arg: any) => arg is boolean;
|
|
5
|
+
export declare const isFunction: (val: any) => val is Function;
|
|
6
|
+
export declare const isUndefined: (val: any) => val is undefined;
|
|
7
|
+
export declare const isNil: (val: any) => val is null | undefined;
|
|
8
|
+
export declare const sameSign: (a: number, b: number) => boolean;
|
|
9
|
+
export declare const normalizeSign: (v: number, EPS: number) => number;
|
|
10
|
+
export declare const willFlip: (current: number, factor: number, EPS: number) => boolean;
|
|
11
|
+
//# sourceMappingURL=checks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.d.ts","sourceRoot":"src/","sources":["util/checks.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,KAAA,EAAE,CAAC,KAAA,WAe/B;AAED,eAAO,MAAM,QAAQ,GAAI,MAAC,KAAG,CAAC,IAAI,MAA+B,CAAC;AAClE,eAAO,MAAM,QAAQ,GAAI,MAAC,KAAG,CAAC,IAAI,MAA6B,CAAC;AAChE,eAAO,MAAM,SAAS,GAAI,QAAG,KAAG,GAAG,IAAI,OAAwB,CAAC;AAChE,eAAO,MAAM,UAAU,GAAI,QAAG,KAAG,GAAG,IAAI,QAAqC,CAAC;AAC9E,eAAO,MAAM,WAAW,GAAI,QAAG,KAAG,GAAG,IAAI,SAA8B,CAAC;AACxE,eAAO,MAAM,KAAK,GAAI,QAAG,KAAG,GAAG,IAAI,IAAI,GAAG,SAAwB,CAAC;AAEnE,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,YAAkC,CAAC;AAEhF,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,WAGnD,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,EAAE,QAAQ,MAAM,EAAE,KAAK,MAAM,YAGpE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.willFlip = exports.normalizeSign = exports.sameSign = exports.isNil = exports.isUndefined = exports.isFunction = exports.isBoolean = exports.isObject = exports.isNumber = void 0;
|
|
4
|
+
exports.arraysEqual = arraysEqual;
|
|
5
|
+
function arraysEqual(a, b) {
|
|
6
|
+
if (a == undefined || b == undefined)
|
|
7
|
+
return false;
|
|
8
|
+
if (a === b)
|
|
9
|
+
return true;
|
|
10
|
+
if (a == null || b == null)
|
|
11
|
+
return false;
|
|
12
|
+
if (a.length !== b.length)
|
|
13
|
+
return false;
|
|
14
|
+
// If you don't care about the order of the elements inside
|
|
15
|
+
// the array, you should sort both arrays here.
|
|
16
|
+
// Please note that calling sort on an array will modify that array.
|
|
17
|
+
// you might want to clone your array first.
|
|
18
|
+
for (var i = 0; i < a.length; ++i) {
|
|
19
|
+
if (a[i] !== b[i])
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const isNumber = (a) => typeof a === "number";
|
|
25
|
+
exports.isNumber = isNumber;
|
|
26
|
+
const isObject = (a) => a instanceof Object;
|
|
27
|
+
exports.isObject = isObject;
|
|
28
|
+
const isBoolean = (arg) => arg === !!arg;
|
|
29
|
+
exports.isBoolean = isBoolean;
|
|
30
|
+
const isFunction = (val) => typeof val === "function";
|
|
31
|
+
exports.isFunction = isFunction;
|
|
32
|
+
const isUndefined = (val) => val === undefined;
|
|
33
|
+
exports.isUndefined = isUndefined;
|
|
34
|
+
const isNil = (val) => val == null;
|
|
35
|
+
exports.isNil = isNil;
|
|
36
|
+
const sameSign = (a, b) => Math.sign(a) === Math.sign(b);
|
|
37
|
+
exports.sameSign = sameSign;
|
|
38
|
+
const normalizeSign = (v, EPS) => {
|
|
39
|
+
if (Math.abs(v) < EPS)
|
|
40
|
+
return 0;
|
|
41
|
+
return Math.sign(v);
|
|
42
|
+
};
|
|
43
|
+
exports.normalizeSign = normalizeSign;
|
|
44
|
+
const willFlip = (current, factor, EPS) => {
|
|
45
|
+
const next = current * factor;
|
|
46
|
+
return (0, exports.normalizeSign)(current, EPS) !== (0, exports.normalizeSign)(next, EPS);
|
|
47
|
+
};
|
|
48
|
+
exports.willFlip = willFlip;
|
|
49
|
+
//# sourceMappingURL=checks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checks.js","sourceRoot":"src/","sources":["util/checks.ts"],"names":[],"mappings":";;;AAAA,kCAeC;AAfD,SAAgB,WAAW,CAAC,CAAC,EAAE,CAAC;IAC9B,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAExC,2DAA2D;IAC3D,+CAA+C;IAC/C,oEAAoE;IACpE,4CAA4C;IAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;AAArD,QAAA,QAAQ,YAA6C;AAC3D,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,YAAY,MAAM,CAAC;AAAnD,QAAA,QAAQ,YAA2C;AACzD,MAAM,SAAS,GAAG,CAAC,GAAG,EAAkB,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;AAAnD,QAAA,SAAS,aAA0C;AACzD,MAAM,UAAU,GAAG,CAAC,GAAG,EAAmB,EAAE,CAAC,OAAO,GAAG,KAAK,UAAU,CAAC;AAAjE,QAAA,UAAU,cAAuD;AACvE,MAAM,WAAW,GAAG,CAAC,GAAG,EAAoB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;AAA3D,QAAA,WAAW,eAAgD;AACjE,MAAM,KAAK,GAAG,CAAC,GAAG,EAA2B,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;AAAtD,QAAA,KAAK,SAAiD;AAE5D,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAAnE,QAAA,QAAQ,YAA2D;AAEzE,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE;IACtD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;QAAE,OAAO,CAAC,CAAC;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC;AAHW,QAAA,aAAa,iBAGxB;AAEK,MAAM,QAAQ,GAAG,CAAC,OAAe,EAAE,MAAc,EAAE,GAAW,EAAE,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC;IAC9B,OAAO,IAAA,qBAAa,EAAC,OAAO,EAAE,GAAG,CAAC,KAAK,IAAA,qBAAa,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClE,CAAC,CAAC;AAHW,QAAA,QAAQ,YAGnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Img } from "../shapes";
|
|
2
|
+
import { Canvas } from "Canvas";
|
|
3
|
+
import { CanvasHistory } from "history";
|
|
4
|
+
export declare const probablySupportsClipboardWriteText: () => boolean;
|
|
5
|
+
export declare function copy(selected: Img[], clipboardEvent?: ClipboardEvent): Promise<void>;
|
|
6
|
+
export declare function paste(clientX: number, clientY: number, canvas: Canvas, history: CanvasHistory, isWorldCoord?: boolean): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=clipboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.d.ts","sourceRoot":"src/","sources":["util/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAkBxC,eAAO,MAAM,kCAAkC,eAE9C,CAAC;AAIF,wBAAsB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,cAAc,CAAC,EAAE,cAAc,iBAsC1E;AA2CD,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAc,iBAqF7B"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.probablySupportsClipboardWriteText = void 0;
|
|
4
|
+
exports.copy = copy;
|
|
5
|
+
exports.paste = paste;
|
|
6
|
+
const _1 = require(".");
|
|
7
|
+
const SceneCommand_1 = require("../manager/SceneCommand");
|
|
8
|
+
const acceptedPasteMimeType = ["image/", "text/plain"];
|
|
9
|
+
const probablySupportsClipboardWriteText = () => {
|
|
10
|
+
return "clipboard" in navigator && "writeText" in navigator.clipboard;
|
|
11
|
+
};
|
|
12
|
+
exports.probablySupportsClipboardWriteText = probablySupportsClipboardWriteText;
|
|
13
|
+
// the original copying method involved writing to clipboard API which can take a long time when writing multiple images
|
|
14
|
+
// opted for in canvas only copying, which is faster
|
|
15
|
+
async function copy(selected, clipboardEvent) {
|
|
16
|
+
const dataStored = {
|
|
17
|
+
type: "infinite_canvas",
|
|
18
|
+
elements: selected.map((img) => ({
|
|
19
|
+
src: img.src,
|
|
20
|
+
x: img.x,
|
|
21
|
+
y: img.y,
|
|
22
|
+
sx: img.sx,
|
|
23
|
+
sy: img.sy,
|
|
24
|
+
})),
|
|
25
|
+
};
|
|
26
|
+
const json = JSON.stringify(dataStored);
|
|
27
|
+
const clipboardItem = new ClipboardItem({
|
|
28
|
+
"text/plain": new Blob([json], { type: "text/plain" }),
|
|
29
|
+
});
|
|
30
|
+
if ((0, exports.probablySupportsClipboardWriteText)()) {
|
|
31
|
+
try {
|
|
32
|
+
await navigator.clipboard.write([clipboardItem]);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
console.error(err);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
if (clipboardEvent) {
|
|
41
|
+
clipboardEvent.clipboardData?.setData("text/plain", json);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error(err);
|
|
47
|
+
}
|
|
48
|
+
if (!copyTextViaExecCommand(json)) {
|
|
49
|
+
throw new Error("Error copying to clipboard.");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function copyTextViaExecCommand(text) {
|
|
53
|
+
// execCommand doesn't allow copying empty strings, so if we're
|
|
54
|
+
// clearing clipboard using this API, we must copy at least an empty char
|
|
55
|
+
if (!text) {
|
|
56
|
+
text = " ";
|
|
57
|
+
}
|
|
58
|
+
const isRTL = document.documentElement.getAttribute("dir") === "rtl";
|
|
59
|
+
const textarea = document.createElement("textarea");
|
|
60
|
+
textarea.style.border = "0";
|
|
61
|
+
textarea.style.padding = "0";
|
|
62
|
+
textarea.style.margin = "0";
|
|
63
|
+
textarea.style.position = "absolute";
|
|
64
|
+
textarea.style[isRTL ? "right" : "left"] = "-9999px";
|
|
65
|
+
const yPosition = window.pageYOffset || document.documentElement.scrollTop;
|
|
66
|
+
textarea.style.top = `${yPosition}px`;
|
|
67
|
+
textarea.style.fontSize = "12pt";
|
|
68
|
+
textarea.setAttribute("readonly", "");
|
|
69
|
+
textarea.value = text;
|
|
70
|
+
document.body.appendChild(textarea);
|
|
71
|
+
let success = false;
|
|
72
|
+
try {
|
|
73
|
+
textarea.select();
|
|
74
|
+
textarea.setSelectionRange(0, textarea.value.length);
|
|
75
|
+
success = document.execCommand("copy");
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
console.error(error);
|
|
79
|
+
}
|
|
80
|
+
textarea.remove();
|
|
81
|
+
return success;
|
|
82
|
+
}
|
|
83
|
+
async function paste(clientX, clientY, canvas, history, isWorldCoord = true) {
|
|
84
|
+
// check if there is anything from your clipboard to paste from
|
|
85
|
+
const items = await navigator.clipboard.read();
|
|
86
|
+
const types = items[0].types;
|
|
87
|
+
const [wx, wy] = isWorldCoord
|
|
88
|
+
? [clientX, clientY]
|
|
89
|
+
: (0, _1.getWorldCoords)(clientX, clientY, canvas);
|
|
90
|
+
for (const type of types) {
|
|
91
|
+
const allowed = acceptedPasteMimeType.find((allowed) => allowed.endsWith("/") ? type.startsWith(allowed) : type === allowed);
|
|
92
|
+
if (!allowed)
|
|
93
|
+
continue;
|
|
94
|
+
const blob = await items[0].getType(type);
|
|
95
|
+
try {
|
|
96
|
+
if (type === "text/plain") {
|
|
97
|
+
const data = JSON.parse(await blob.text());
|
|
98
|
+
if (data.elements.length === 0)
|
|
99
|
+
return;
|
|
100
|
+
let minX = Infinity, minY = Infinity;
|
|
101
|
+
for (const el of data.elements) {
|
|
102
|
+
if (el.x < minX)
|
|
103
|
+
minX = el.x;
|
|
104
|
+
if (el.y < minY)
|
|
105
|
+
minY = el.y;
|
|
106
|
+
}
|
|
107
|
+
const images = await Promise.all(data.elements.map((element) => canvas.addImageToCanvas(element.src, wx + element.x - minX, wy + element.y - minY, element.sx, element.sy)));
|
|
108
|
+
history.push((0, SceneCommand_1.makeMultiAddChildCommand)(canvas, images));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
console.error("Failed to parse clipboard data", err);
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
let base64;
|
|
117
|
+
if (type.startsWith("image/svg")) {
|
|
118
|
+
try {
|
|
119
|
+
const svgText = await blob.text();
|
|
120
|
+
base64 = await (0, _1.convertToPNG)(`data:image/svg+xml;base64,${btoa(svgText)}`);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
console.error("SVG conversion failed", err);
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
try {
|
|
129
|
+
base64 = await new Promise((resolve, reject) => {
|
|
130
|
+
const reader = new FileReader();
|
|
131
|
+
reader.onloadend = () => resolve(reader.result);
|
|
132
|
+
reader.onerror = reject;
|
|
133
|
+
reader.readAsDataURL(blob);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
console.error("Image read failed", err);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const img = await canvas.addImageToCanvas(base64, wx, wy);
|
|
143
|
+
history.push((0, SceneCommand_1.makeMultiAddChildCommand)(canvas, [img]));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
console.error("Failed to add image to canvas", err);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=clipboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard.js","sourceRoot":"src/","sources":["util/clipboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"src/","sources":["util/color.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAwB,CAAC;AAChF,eAAO,MAAM,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAEvD,CAAC;AACF,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAEzD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MARQUEE_BLUE = exports.LIGHT_BLUE = exports.BASE_BLUE = void 0;
|
|
4
|
+
exports.BASE_BLUE = [0.33, 0.6, 0.95, 1];
|
|
5
|
+
exports.LIGHT_BLUE = [
|
|
6
|
+
0.33, 0.6, 0.95, 0.6,
|
|
7
|
+
];
|
|
8
|
+
exports.MARQUEE_BLUE = [
|
|
9
|
+
0.33, 0.6, 0.95, 0.4,
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"src/","sources":["util/color.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAqC,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACnE,QAAA,UAAU,GAAqC;IAC1D,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;CACrB,CAAC;AACW,QAAA,YAAY,GAAqC;IAC5D,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;CACrB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const ContextMenuEvent: {
|
|
2
|
+
readonly Open: "opencontextmenu";
|
|
3
|
+
readonly Close: "closecontextmenu";
|
|
4
|
+
};
|
|
5
|
+
export declare const CanvasEvent: {
|
|
6
|
+
readonly Dirty: "dirty";
|
|
7
|
+
readonly Save: "save";
|
|
8
|
+
readonly SelectionChanged: "selectionchanged";
|
|
9
|
+
readonly Render: "render";
|
|
10
|
+
readonly Resize: "resize";
|
|
11
|
+
readonly Zoom: "zoom";
|
|
12
|
+
readonly ModeChange: "modechange";
|
|
13
|
+
readonly HistoryChange: "historychange";
|
|
14
|
+
readonly PointerDown: "pointerdown";
|
|
15
|
+
readonly PointerUp: "pointerup";
|
|
16
|
+
readonly PointerMove: "pointermove";
|
|
17
|
+
readonly ImageAdded: "imageadded";
|
|
18
|
+
readonly ImageRemoved: "imageremoved";
|
|
19
|
+
readonly Change: "statechange";
|
|
20
|
+
};
|
|
21
|
+
export declare const CustomClipboardEvent: {
|
|
22
|
+
readonly Copy: "copy";
|
|
23
|
+
readonly Cut: "cut";
|
|
24
|
+
readonly Paste: "paste";
|
|
25
|
+
};
|
|
26
|
+
export declare const LoaderEvent: {
|
|
27
|
+
readonly start: "startloading";
|
|
28
|
+
readonly done: "completeloading";
|
|
29
|
+
};
|
|
30
|
+
export declare const SaveEvent: {
|
|
31
|
+
readonly Save: "save";
|
|
32
|
+
readonly SaveCompleted: "savecompleted";
|
|
33
|
+
readonly SaveFailed: "savefailed";
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=customEventType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customEventType.d.ts","sourceRoot":"src/","sources":["util/customEventType.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;CAed,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX,eAAO,MAAM,SAAS;;;;CAIZ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SaveEvent = exports.LoaderEvent = exports.CustomClipboardEvent = exports.CanvasEvent = exports.ContextMenuEvent = void 0;
|
|
4
|
+
exports.ContextMenuEvent = {
|
|
5
|
+
Open: "opencontextmenu",
|
|
6
|
+
Close: "closecontextmenu",
|
|
7
|
+
};
|
|
8
|
+
exports.CanvasEvent = {
|
|
9
|
+
Dirty: "dirty",
|
|
10
|
+
Save: "save",
|
|
11
|
+
SelectionChanged: "selectionchanged",
|
|
12
|
+
Render: "render",
|
|
13
|
+
Resize: "resize",
|
|
14
|
+
Zoom: "zoom",
|
|
15
|
+
ModeChange: "modechange",
|
|
16
|
+
HistoryChange: "historychange",
|
|
17
|
+
PointerDown: "pointerdown",
|
|
18
|
+
PointerUp: "pointerup",
|
|
19
|
+
PointerMove: "pointermove",
|
|
20
|
+
ImageAdded: "imageadded",
|
|
21
|
+
ImageRemoved: "imageremoved",
|
|
22
|
+
Change: "statechange",
|
|
23
|
+
};
|
|
24
|
+
exports.CustomClipboardEvent = {
|
|
25
|
+
Copy: "copy",
|
|
26
|
+
Cut: "cut",
|
|
27
|
+
Paste: "paste",
|
|
28
|
+
};
|
|
29
|
+
exports.LoaderEvent = {
|
|
30
|
+
start: "startloading",
|
|
31
|
+
done: "completeloading",
|
|
32
|
+
};
|
|
33
|
+
exports.SaveEvent = {
|
|
34
|
+
Save: "save",
|
|
35
|
+
SaveCompleted: "savecompleted",
|
|
36
|
+
SaveFailed: "savefailed",
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=customEventType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customEventType.js","sourceRoot":"src/","sources":["util/customEventType.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,kBAAkB;CACjB,CAAC;AAEE,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,kBAAkB;IACpC,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,aAAa;CACb,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,OAAO;CACN,CAAC;AAEE,QAAA,WAAW,GAAG;IACzB,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,iBAAiB;CACf,CAAC;AAEE,QAAA,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,YAAY;CAChB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SerializedCanvas } from "../serializer";
|
|
2
|
+
import { Img } from "../shapes";
|
|
3
|
+
export declare function previewImage(file: File): Promise<string | ArrayBuffer>;
|
|
4
|
+
export declare function hashStringToId(str: string): Promise<string>;
|
|
5
|
+
/**
|
|
6
|
+
* Extract mimetype from base64 string
|
|
7
|
+
*/
|
|
8
|
+
export declare function getMimeType(data: string): string;
|
|
9
|
+
export declare function addImages(files: FileList, addToCanvas: (src: string) => Promise<Img>): Promise<any[]>;
|
|
10
|
+
export declare function downloadJSON(filename: string, data: SerializedCanvas): void;
|
|
11
|
+
export declare function readJSONFile<T = unknown>(file: File): Promise<T>;
|
|
12
|
+
export declare function convertToPNG(src: string, quality?: number): Promise<string>;
|
|
13
|
+
export declare function mergeMultiImg(imgs: Img[]): Promise<string>;
|
|
14
|
+
export declare function mergeImagesToCanvas(images: Img[]): Promise<{
|
|
15
|
+
mergedCanvas: HTMLCanvasElement;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"src/","sources":["util/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,iCAU5C;AAiBD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMjE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,UAGvC;AAED,wBAAsB,SAAS,CAC7B,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,kBAmB3C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,QAWpE;AAED,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAGtE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA4ChE;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,GAAG,EAAE,GACZ,OAAO,CAAC;IAAE,YAAY,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAgD7E"}
|