js-draw 0.17.3 → 0.18.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/.github/workflows/firebase-hosting-merge.yml +2 -0
- package/.github/workflows/firebase-hosting-pull-request.yml +2 -0
- package/.github/workflows/github-pages.yml +2 -0
- package/CHANGELOG.md +10 -1
- package/README.md +17 -8
- package/build_tools/postDist.ts +71 -0
- package/dist/bundle.js +9 -1
- package/dist/cjs/build_tools/BundledFile.js +163 -0
- package/dist/cjs/build_tools/buildTranslationTemplate.js +119 -0
- package/dist/cjs/build_tools/bundle.js +10 -0
- package/dist/cjs/build_tools/postDist.js +72 -0
- package/dist/{src → cjs/src}/Color4.d.ts +1 -0
- package/dist/cjs/src/Color4.js +197 -0
- package/dist/{src → cjs/src}/Editor.d.ts +57 -1
- package/dist/cjs/src/Editor.js +904 -0
- package/dist/{src → cjs/src}/EditorImage.d.ts +4 -2
- package/dist/cjs/src/EditorImage.js +486 -0
- package/dist/cjs/src/EventDispatcher.js +57 -0
- package/dist/cjs/src/Pointer.js +84 -0
- package/dist/{src → cjs/src}/SVGLoader.d.ts +4 -0
- package/dist/cjs/src/SVGLoader.js +472 -0
- package/dist/cjs/src/UndoRedoHistory.js +93 -0
- package/dist/cjs/src/Viewport.js +264 -0
- package/dist/cjs/src/bundle/bundled.js +24 -0
- package/dist/cjs/src/commands/Command.js +34 -0
- package/dist/cjs/src/commands/Duplicate.js +39 -0
- package/dist/cjs/src/commands/Erase.js +63 -0
- package/dist/cjs/src/commands/SerializableCommand.js +42 -0
- package/dist/cjs/src/commands/UnresolvedCommand.js +28 -0
- package/dist/cjs/src/commands/invertCommand.js +49 -0
- package/dist/cjs/src/commands/lib.js +18 -0
- package/dist/cjs/src/commands/localization.js +24 -0
- package/dist/cjs/src/commands/uniteCommands.js +121 -0
- package/dist/cjs/src/components/AbstractComponent.js +258 -0
- package/dist/cjs/src/components/ImageBackground.js +146 -0
- package/dist/cjs/src/components/ImageComponent.js +152 -0
- package/dist/cjs/src/components/RestylableComponent.js +88 -0
- package/dist/cjs/src/components/SVGGlobalAttributesObject.js +65 -0
- package/dist/cjs/src/components/Stroke.js +191 -0
- package/dist/cjs/src/components/TextComponent.js +258 -0
- package/dist/cjs/src/components/UnknownSVGObject.js +50 -0
- package/dist/cjs/src/components/builders/ArrowBuilder.js +117 -0
- package/dist/cjs/src/components/builders/FreehandLineBuilder.js +173 -0
- package/dist/cjs/src/components/builders/LineBuilder.js +89 -0
- package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +347 -0
- package/dist/cjs/src/components/builders/RectangleBuilder.js +59 -0
- package/dist/cjs/src/components/builders/types.js +2 -0
- package/dist/cjs/src/components/lib.js +43 -0
- package/dist/cjs/src/components/localization.js +13 -0
- package/dist/cjs/src/components/util/StrokeSmoother.js +217 -0
- package/dist/cjs/src/components/util/describeComponentList.js +16 -0
- package/dist/{src → cjs/src}/lib.d.ts +2 -1
- package/dist/cjs/src/lib.js +63 -0
- package/dist/cjs/src/localization.js +13 -0
- package/dist/cjs/src/localizations/de.js +6 -0
- package/dist/cjs/src/localizations/en.js +6 -0
- package/dist/cjs/src/localizations/es.js +20 -0
- package/dist/cjs/src/localizations/getLocalizationTable.js +50 -0
- package/dist/cjs/src/math/LineSegment2.js +131 -0
- package/dist/cjs/src/math/Mat33.js +332 -0
- package/dist/cjs/src/math/Path.js +655 -0
- package/dist/cjs/src/math/Rect2.js +234 -0
- package/dist/cjs/src/math/Triangle.js +22 -0
- package/dist/cjs/src/math/Vec2.js +19 -0
- package/dist/cjs/src/math/Vec3.js +177 -0
- package/dist/cjs/src/math/lib.js +18 -0
- package/dist/cjs/src/math/rounding.js +135 -0
- package/dist/cjs/src/rendering/Display.js +214 -0
- package/dist/cjs/src/rendering/RenderingStyle.js +48 -0
- package/dist/cjs/src/rendering/TextRenderingStyle.js +29 -0
- package/dist/cjs/src/rendering/caching/CacheRecord.js +61 -0
- package/dist/cjs/src/rendering/caching/CacheRecordManager.js +50 -0
- package/dist/cjs/src/rendering/caching/RenderingCache.js +51 -0
- package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +326 -0
- package/dist/cjs/src/rendering/caching/testUtils.js +27 -0
- package/dist/cjs/src/rendering/caching/types.js +2 -0
- package/dist/{src → cjs/src}/rendering/lib.d.ts +2 -0
- package/dist/cjs/src/rendering/lib.js +16 -0
- package/dist/cjs/src/rendering/localization.js +12 -0
- package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +170 -0
- package/dist/{src → cjs/src}/rendering/renderers/CanvasRenderer.d.ts +25 -0
- package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +236 -0
- package/dist/cjs/src/rendering/renderers/DummyRenderer.js +112 -0
- package/dist/{src → cjs/src}/rendering/renderers/SVGRenderer.d.ts +15 -0
- package/dist/cjs/src/rendering/renderers/SVGRenderer.js +311 -0
- package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +63 -0
- package/dist/cjs/src/testing/beforeEachFile.js +12 -0
- package/dist/cjs/src/testing/createEditor.js +14 -0
- package/dist/cjs/src/testing/lib.d.ts +2 -0
- package/dist/cjs/src/testing/lib.js +10 -0
- package/dist/cjs/src/testing/loadExpectExtensions.js +28 -0
- package/dist/cjs/src/testing/sendPenEvent.d.ts +12 -0
- package/dist/cjs/src/testing/sendPenEvent.js +24 -0
- package/dist/cjs/src/testing/sendTouchEvent.d.ts +42 -0
- package/dist/cjs/src/testing/sendTouchEvent.js +87 -0
- package/dist/cjs/src/toolbar/HTMLToolbar.js +383 -0
- package/dist/cjs/src/toolbar/IconProvider.js +660 -0
- package/dist/cjs/src/toolbar/lib.js +24 -0
- package/dist/cjs/src/toolbar/localization.js +51 -0
- package/dist/cjs/src/toolbar/makeColorInput.js +120 -0
- package/dist/cjs/src/toolbar/types.js +2 -0
- package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +31 -0
- package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +50 -0
- package/dist/cjs/src/toolbar/widgets/BaseWidget.js +313 -0
- package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +126 -0
- package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +63 -0
- package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +201 -0
- package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +176 -0
- package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +77 -0
- package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +226 -0
- package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +153 -0
- package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +115 -0
- package/dist/cjs/src/toolbar/widgets/lib.js +26 -0
- package/dist/cjs/src/tools/BaseTool.js +66 -0
- package/dist/cjs/src/tools/Eraser.js +112 -0
- package/dist/cjs/src/tools/FindTool.js +121 -0
- package/dist/cjs/src/tools/PanZoom.js +421 -0
- package/dist/cjs/src/tools/PasteHandler.js +99 -0
- package/dist/cjs/src/tools/Pen.js +179 -0
- package/dist/cjs/src/tools/PipetteTool.js +45 -0
- package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +28 -0
- package/dist/cjs/src/tools/SelectionTool/Selection.js +488 -0
- package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +85 -0
- package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +405 -0
- package/dist/cjs/src/tools/SelectionTool/TransformMode.js +107 -0
- package/dist/cjs/src/tools/SelectionTool/types.js +14 -0
- package/dist/cjs/src/tools/TextTool.js +262 -0
- package/dist/cjs/src/tools/ToolController.js +187 -0
- package/dist/cjs/src/tools/ToolEnabledGroup.js +14 -0
- package/dist/cjs/src/tools/ToolSwitcherShortcut.js +38 -0
- package/dist/cjs/src/tools/ToolbarShortcutHandler.js +29 -0
- package/dist/cjs/src/tools/UndoRedoShortcut.js +28 -0
- package/dist/cjs/src/tools/lib.js +36 -0
- package/dist/cjs/src/tools/localization.js +30 -0
- package/dist/cjs/src/types.js +38 -0
- package/dist/cjs/src/util/assertions.js +51 -0
- package/dist/cjs/src/util/fileToBase64.js +15 -0
- package/dist/cjs/src/util/untilNextAnimationFrame.js +9 -0
- package/dist/cjs/src/util/waitForTimeout.js +9 -0
- package/dist/mjs/build_tools/BundledFile.d.ts +13 -0
- package/dist/{build_tools/buildTranslationTemplate.js → mjs/build_tools/buildTranslationTemplate.mjs} +1 -1
- package/dist/{build_tools/bundle.js → mjs/build_tools/bundle.mjs} +1 -1
- package/dist/mjs/build_tools/postDist.d.ts +1 -0
- package/dist/mjs/build_tools/postDist.mjs +67 -0
- package/dist/mjs/src/Color4.d.ts +61 -0
- package/dist/{src/Color4.js → mjs/src/Color4.mjs} +1 -0
- package/dist/mjs/src/Editor.d.ts +308 -0
- package/dist/{src/Editor.js → mjs/src/Editor.mjs} +86 -49
- package/dist/mjs/src/EditorImage.d.ts +97 -0
- package/dist/{src/EditorImage.js → mjs/src/EditorImage.mjs} +12 -10
- package/dist/mjs/src/EventDispatcher.d.ts +30 -0
- package/dist/mjs/src/Pointer.d.ts +24 -0
- package/dist/{src/Pointer.js → mjs/src/Pointer.mjs} +1 -1
- package/dist/mjs/src/SVGLoader.d.ts +48 -0
- package/dist/{src/SVGLoader.js → mjs/src/SVGLoader.mjs} +15 -11
- package/dist/mjs/src/UndoRedoHistory.d.ts +19 -0
- package/dist/{src/UndoRedoHistory.js → mjs/src/UndoRedoHistory.mjs} +1 -1
- package/dist/mjs/src/Viewport.d.ts +71 -0
- package/dist/{src/Viewport.js → mjs/src/Viewport.mjs} +5 -5
- package/dist/mjs/src/bundle/bundled.d.ts +4 -0
- package/dist/{src/bundle/bundled.js → mjs/src/bundle/bundled.mjs} +2 -2
- package/dist/mjs/src/commands/Command.d.ts +16 -0
- package/dist/mjs/src/commands/Duplicate.d.ts +14 -0
- package/dist/{src/commands/Duplicate.js → mjs/src/commands/Duplicate.mjs} +3 -3
- package/dist/mjs/src/commands/Erase.d.ts +14 -0
- package/dist/{src/commands/Erase.js → mjs/src/commands/Erase.mjs} +3 -3
- package/dist/mjs/src/commands/SerializableCommand.d.ts +12 -0
- package/dist/{src/commands/SerializableCommand.js → mjs/src/commands/SerializableCommand.mjs} +1 -1
- package/dist/mjs/src/commands/UnresolvedCommand.d.ts +14 -0
- package/dist/{src/commands/UnresolvedCommand.js → mjs/src/commands/UnresolvedCommand.mjs} +1 -1
- package/dist/mjs/src/commands/invertCommand.d.ts +4 -0
- package/dist/{src/commands/invertCommand.js → mjs/src/commands/invertCommand.mjs} +2 -2
- package/dist/mjs/src/commands/lib.mjs +7 -0
- package/dist/mjs/src/commands/localization.d.ts +23 -0
- package/dist/mjs/src/commands/uniteCommands.d.ts +4 -0
- package/dist/{src/commands/uniteCommands.js → mjs/src/commands/uniteCommands.mjs} +2 -2
- package/dist/mjs/src/components/AbstractComponent.d.ts +73 -0
- package/dist/{src/components/AbstractComponent.js → mjs/src/components/AbstractComponent.mjs} +4 -4
- package/dist/mjs/src/components/ImageBackground.d.ts +42 -0
- package/dist/{src/components/ImageBackground.js → mjs/src/components/ImageBackground.mjs} +5 -5
- package/dist/mjs/src/components/ImageComponent.d.ts +31 -0
- package/dist/{src/components/ImageComponent.js → mjs/src/components/ImageComponent.mjs} +3 -3
- package/dist/mjs/src/components/RestylableComponent.d.ts +24 -0
- package/dist/{src/components/RestylableComponent.js → mjs/src/components/RestylableComponent.mjs} +4 -4
- package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +21 -0
- package/dist/{src/components/SVGGlobalAttributesObject.js → mjs/src/components/SVGGlobalAttributesObject.mjs} +3 -3
- package/dist/mjs/src/components/Stroke.d.ts +40 -0
- package/dist/{src/components/Stroke.js → mjs/src/components/Stroke.mjs} +5 -5
- package/dist/mjs/src/components/TextComponent.d.ts +53 -0
- package/dist/{src/components/TextComponent.js → mjs/src/components/TextComponent.mjs} +7 -7
- package/dist/mjs/src/components/UnknownSVGObject.d.ts +18 -0
- package/dist/{src/components/UnknownSVGObject.js → mjs/src/components/UnknownSVGObject.mjs} +3 -3
- package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +19 -0
- package/dist/{src/components/builders/ArrowBuilder.js → mjs/src/components/builders/ArrowBuilder.mjs} +2 -2
- package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +33 -0
- package/dist/{src/components/builders/FreehandLineBuilder.js → mjs/src/components/builders/FreehandLineBuilder.mjs} +7 -7
- package/dist/mjs/src/components/builders/LineBuilder.d.ts +18 -0
- package/dist/{src/components/builders/LineBuilder.js → mjs/src/components/builders/LineBuilder.mjs} +2 -2
- package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +36 -0
- package/dist/{src/components/builders/PressureSensitiveFreehandLineBuilder.js → mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs} +6 -6
- package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +20 -0
- package/dist/{src/components/builders/RectangleBuilder.js → mjs/src/components/builders/RectangleBuilder.mjs} +4 -4
- package/dist/mjs/src/components/builders/types.d.ts +12 -0
- package/dist/mjs/src/components/builders/types.mjs +1 -0
- package/dist/{src/components/lib.js → mjs/src/components/lib.d.ts} +3 -3
- package/dist/mjs/src/components/lib.mjs +12 -0
- package/dist/mjs/src/components/localization.d.ts +11 -0
- package/dist/mjs/src/components/util/StrokeSmoother.d.ts +35 -0
- package/dist/{src/components/util/StrokeSmoother.js → mjs/src/components/util/StrokeSmoother.mjs} +3 -3
- package/dist/mjs/src/components/util/describeComponentList.d.ts +4 -0
- package/dist/{src/lib.js → mjs/src/lib.d.ts} +4 -3
- package/dist/mjs/src/lib.mjs +34 -0
- package/dist/mjs/src/localization.d.ts +14 -0
- package/dist/{src/localization.js → mjs/src/localization.mjs} +5 -5
- package/dist/mjs/src/localizations/de.d.ts +3 -0
- package/dist/{src/localizations/de.js → mjs/src/localizations/de.mjs} +1 -1
- package/dist/mjs/src/localizations/en.d.ts +3 -0
- package/dist/{src/localizations/en.js → mjs/src/localizations/en.mjs} +1 -1
- package/dist/mjs/src/localizations/es.d.ts +3 -0
- package/dist/{src/localizations/es.js → mjs/src/localizations/es.mjs} +1 -1
- package/dist/mjs/src/localizations/getLocalizationTable.d.ts +3 -0
- package/dist/{src/localizations/getLocalizationTable.js → mjs/src/localizations/getLocalizationTable.mjs} +4 -4
- package/dist/mjs/src/math/LineSegment2.d.ts +24 -0
- package/dist/{src/math/LineSegment2.js → mjs/src/math/LineSegment2.mjs} +2 -2
- package/dist/mjs/src/math/Mat33.d.ts +118 -0
- package/dist/{src/math/Mat33.js → mjs/src/math/Mat33.mjs} +2 -2
- package/dist/mjs/src/math/Path.d.ts +71 -0
- package/dist/{src/math/Path.js → mjs/src/math/Path.mjs} +5 -5
- package/dist/mjs/src/math/Rect2.d.ts +52 -0
- package/dist/{src/math/Rect2.js → mjs/src/math/Rect2.mjs} +2 -2
- package/dist/mjs/src/math/Triangle.d.ts +11 -0
- package/dist/mjs/src/math/Vec2.d.ts +13 -0
- package/dist/{src/math/Vec2.js → mjs/src/math/Vec2.mjs} +1 -1
- package/dist/mjs/src/math/Vec3.d.ts +106 -0
- package/dist/mjs/src/math/lib.mjs +7 -0
- package/dist/mjs/src/math/rounding.d.ts +4 -0
- package/dist/mjs/src/rendering/Display.d.ts +75 -0
- package/dist/{src/rendering/Display.js → mjs/src/rendering/Display.mjs} +7 -7
- package/dist/mjs/src/rendering/RenderingStyle.d.ts +31 -0
- package/dist/{src/rendering/RenderingStyle.js → mjs/src/rendering/RenderingStyle.mjs} +1 -1
- package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +36 -0
- package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +20 -0
- package/dist/{src/rendering/caching/CacheRecord.js → mjs/src/rendering/caching/CacheRecord.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +12 -0
- package/dist/{src/rendering/caching/CacheRecordManager.js → mjs/src/rendering/caching/CacheRecordManager.mjs} +1 -1
- package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +11 -0
- package/dist/{src/rendering/caching/RenderingCache.js → mjs/src/rendering/caching/RenderingCache.mjs} +3 -3
- package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +29 -0
- package/dist/{src/rendering/caching/RenderingCacheNode.js → mjs/src/rendering/caching/RenderingCacheNode.mjs} +3 -3
- package/dist/mjs/src/rendering/caching/testUtils.d.ts +9 -0
- package/dist/{src/rendering/caching/testUtils.js → mjs/src/rendering/caching/testUtils.mjs} +4 -4
- package/dist/mjs/src/rendering/caching/types.d.ts +19 -0
- package/dist/mjs/src/rendering/caching/types.mjs +1 -0
- package/dist/{src/rendering/lib.js → mjs/src/rendering/lib.d.ts} +2 -0
- package/dist/mjs/src/rendering/lib.mjs +5 -0
- package/dist/mjs/src/rendering/localization.d.ts +10 -0
- package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +68 -0
- package/dist/{src/rendering/renderers/AbstractRenderer.js → mjs/src/rendering/renderers/AbstractRenderer.mjs} +3 -3
- package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +63 -0
- package/dist/{src/rendering/renderers/CanvasRenderer.js → mjs/src/rendering/renderers/CanvasRenderer.mjs} +32 -5
- package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +35 -0
- package/dist/{src/rendering/renderers/DummyRenderer.js → mjs/src/rendering/renderers/DummyRenderer.mjs} +2 -2
- package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +57 -0
- package/dist/{src/rendering/renderers/SVGRenderer.js → mjs/src/rendering/renderers/SVGRenderer.mjs} +33 -7
- package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +29 -0
- package/dist/{src/rendering/renderers/TextOnlyRenderer.js → mjs/src/rendering/renderers/TextOnlyRenderer.mjs} +2 -2
- package/dist/mjs/src/testing/beforeEachFile.d.ts +1 -0
- package/dist/{src/testing/beforeEachFile.js → mjs/src/testing/beforeEachFile.mjs} +1 -1
- package/dist/mjs/src/testing/createEditor.d.ts +4 -0
- package/dist/{src/testing/createEditor.js → mjs/src/testing/createEditor.mjs} +2 -2
- package/dist/mjs/src/testing/lib.d.ts +2 -0
- package/dist/mjs/src/testing/lib.mjs +2 -0
- package/dist/mjs/src/testing/loadExpectExtensions.d.ts +2 -0
- package/dist/mjs/src/testing/sendPenEvent.d.ts +12 -0
- package/dist/mjs/src/testing/sendPenEvent.mjs +19 -0
- package/dist/mjs/src/testing/sendTouchEvent.d.ts +42 -0
- package/dist/mjs/src/testing/sendTouchEvent.mjs +62 -0
- package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +103 -0
- package/dist/{src/toolbar/HTMLToolbar.js → mjs/src/toolbar/HTMLToolbar.mjs} +17 -17
- package/dist/mjs/src/toolbar/IconProvider.d.ts +62 -0
- package/dist/{src/toolbar/IconProvider.js → mjs/src/toolbar/IconProvider.mjs} +4 -4
- package/dist/mjs/src/toolbar/lib.mjs +3 -0
- package/dist/mjs/src/toolbar/localization.d.ts +49 -0
- package/dist/mjs/src/toolbar/makeColorInput.d.ts +6 -0
- package/dist/{src/toolbar/makeColorInput.js → mjs/src/toolbar/makeColorInput.mjs} +3 -3
- package/dist/mjs/src/toolbar/types.d.ts +4 -0
- package/dist/mjs/src/toolbar/types.mjs +1 -0
- package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +15 -0
- package/dist/{src/toolbar/widgets/ActionButtonWidget.js → mjs/src/toolbar/widgets/ActionButtonWidget.mjs} +1 -1
- package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +11 -0
- package/dist/{src/toolbar/widgets/BaseToolWidget.js → mjs/src/toolbar/widgets/BaseToolWidget.mjs} +2 -2
- package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +72 -0
- package/dist/{src/toolbar/widgets/BaseWidget.js → mjs/src/toolbar/widgets/BaseWidget.mjs} +3 -3
- package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +18 -0
- package/dist/{src/toolbar/widgets/DocumentPropertiesWidget.js → mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs} +9 -7
- package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +17 -0
- package/dist/{src/toolbar/widgets/EraserToolWidget.js → mjs/src/toolbar/widgets/EraserToolWidget.mjs} +3 -3
- package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +17 -0
- package/dist/{src/toolbar/widgets/HandToolWidget.js → mjs/src/toolbar/widgets/HandToolWidget.mjs} +7 -7
- package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +19 -0
- package/dist/{src/toolbar/widgets/InsertImageWidget.js → mjs/src/toolbar/widgets/InsertImageWidget.mjs} +8 -8
- package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +25 -0
- package/dist/{src/toolbar/widgets/OverflowWidget.js → mjs/src/toolbar/widgets/OverflowWidget.mjs} +1 -1
- package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +27 -0
- package/dist/{src/toolbar/widgets/PenToolWidget.js → mjs/src/toolbar/widgets/PenToolWidget.mjs} +11 -10
- package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +13 -0
- package/dist/{src/toolbar/widgets/SelectionToolWidget.js → mjs/src/toolbar/widgets/SelectionToolWidget.mjs} +8 -8
- package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +16 -0
- package/dist/{src/toolbar/widgets/TextToolWidget.js → mjs/src/toolbar/widgets/TextToolWidget.mjs} +9 -6
- package/dist/mjs/src/toolbar/widgets/lib.mjs +10 -0
- package/dist/mjs/src/tools/BaseTool.d.ts +22 -0
- package/dist/{src/tools/BaseTool.js → mjs/src/tools/BaseTool.mjs} +1 -1
- package/dist/mjs/src/tools/Eraser.d.ts +23 -0
- package/dist/{src/tools/Eraser.js → mjs/src/tools/Eraser.mjs} +8 -8
- package/dist/mjs/src/tools/FindTool.d.ts +21 -0
- package/dist/{src/tools/FindTool.js → mjs/src/tools/FindTool.mjs} +2 -2
- package/dist/mjs/src/tools/PanZoom.d.ts +52 -0
- package/dist/{src/tools/PanZoom.js → mjs/src/tools/PanZoom.mjs} +8 -8
- package/dist/mjs/src/tools/PasteHandler.d.ts +23 -0
- package/dist/{src/tools/PasteHandler.js → mjs/src/tools/PasteHandler.mjs} +7 -7
- package/dist/mjs/src/tools/Pen.d.ts +39 -0
- package/dist/{src/tools/Pen.js → mjs/src/tools/Pen.mjs} +5 -5
- package/dist/mjs/src/tools/PipetteTool.d.ts +18 -0
- package/dist/{src/tools/PipetteTool.js → mjs/src/tools/PipetteTool.mjs} +1 -1
- package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +8 -0
- package/dist/{src/tools/SelectionTool/SelectAllShortcutHandler.js → mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs} +2 -2
- package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +64 -0
- package/dist/{src/tools/SelectionTool/Selection.js → mjs/src/tools/SelectionTool/Selection.mjs} +12 -12
- package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +38 -0
- package/dist/{src/tools/SelectionTool/SelectionHandle.js → mjs/src/tools/SelectionTool/SelectionHandle.mjs} +3 -3
- package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +36 -0
- package/dist/{src/tools/SelectionTool/SelectionTool.js → mjs/src/tools/SelectionTool/SelectionTool.mjs} +13 -14
- package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +34 -0
- package/dist/{src/tools/SelectionTool/TransformMode.js → mjs/src/tools/SelectionTool/TransformMode.mjs} +4 -4
- package/dist/mjs/src/tools/SelectionTool/types.d.ts +9 -0
- package/dist/mjs/src/tools/TextTool.d.ts +33 -0
- package/dist/{src/tools/TextTool.js → mjs/src/tools/TextTool.mjs} +11 -11
- package/dist/mjs/src/tools/ToolController.d.ts +18 -0
- package/dist/{src/tools/ToolController.js → mjs/src/tools/ToolController.mjs} +16 -16
- package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +6 -0
- package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +16 -0
- package/dist/{src/tools/ToolSwitcherShortcut.js → mjs/src/tools/ToolSwitcherShortcut.mjs} +1 -1
- package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +12 -0
- package/dist/{src/tools/ToolbarShortcutHandler.js → mjs/src/tools/ToolbarShortcutHandler.mjs} +1 -1
- package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +8 -0
- package/dist/{src/tools/UndoRedoShortcut.js → mjs/src/tools/UndoRedoShortcut.mjs} +1 -1
- package/dist/{src/tools/lib.js → mjs/src/tools/lib.d.ts} +1 -1
- package/dist/mjs/src/tools/lib.mjs +16 -0
- package/dist/mjs/src/tools/localization.d.ts +28 -0
- package/dist/mjs/src/types.d.ts +151 -0
- package/dist/mjs/src/util/assertions.d.ts +23 -0
- package/dist/mjs/src/util/fileToBase64.d.ts +3 -0
- package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +3 -0
- package/dist/mjs/src/util/waitForTimeout.d.ts +2 -0
- package/package.json +34 -33
- package/src/Color4.ts +2 -0
- package/src/Editor.ts +62 -28
- package/src/EditorImage.ts +4 -2
- package/src/SVGLoader.ts +4 -0
- package/src/lib.ts +2 -1
- package/src/rendering/lib.ts +2 -0
- package/src/rendering/renderers/CanvasRenderer.ts +27 -0
- package/src/rendering/renderers/SVGRenderer.ts +32 -1
- package/src/testing/lib.ts +3 -0
- package/src/testing/sendPenEvent.ts +31 -0
- package/src/testing/sendTouchEvent.ts +36 -1
- package/src/toolbar/toolbar.css +5 -0
- package/src/toolbar/widgets/DocumentPropertiesWidget.ts +4 -2
- package/src/toolbar/widgets/PenToolWidget.ts +1 -0
- package/src/toolbar/widgets/TextToolWidget.ts +4 -1
- package/src/tools/Eraser.test.ts +11 -10
- package/src/tools/PanZoom.test.ts +1 -1
- package/src/tools/Pen.test.ts +63 -62
- package/src/tools/SelectionTool/SelectionTool.test.ts +15 -14
- package/src/tools/SelectionTool/SelectionTool.ts +5 -7
- package/tsconfig.json +3 -2
- package/tsconfig.mjs.json +9 -0
- package/dist/src/testing/sendTouchEvent.d.ts +0 -6
- package/dist/src/testing/sendTouchEvent.js +0 -26
- /package/dist/{build_tools → cjs/build_tools}/BundledFile.d.ts +0 -0
- /package/dist/{build_tools → cjs/build_tools}/buildTranslationTemplate.d.ts +0 -0
- /package/dist/{build_tools → cjs/build_tools}/bundle.d.ts +0 -0
- /package/dist/{src/components/builders/types.js → cjs/build_tools/postDist.d.ts} +0 -0
- /package/dist/{src → cjs/src}/EventDispatcher.d.ts +0 -0
- /package/dist/{src → cjs/src}/Pointer.d.ts +0 -0
- /package/dist/{src → cjs/src}/UndoRedoHistory.d.ts +0 -0
- /package/dist/{src → cjs/src}/Viewport.d.ts +0 -0
- /package/dist/{src → cjs/src}/bundle/bundled.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Command.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Duplicate.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/Erase.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/SerializableCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/UnresolvedCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/invertCommand.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/commands/uniteCommands.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/AbstractComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/ImageBackground.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/ImageComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/RestylableComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/SVGGlobalAttributesObject.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/Stroke.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/TextComponent.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/UnknownSVGObject.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/ArrowBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/FreehandLineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/LineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/RectangleBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/builders/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/util/StrokeSmoother.d.ts +0 -0
- /package/dist/{src → cjs/src}/components/util/describeComponentList.d.ts +0 -0
- /package/dist/{src → cjs/src}/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/de.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/en.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/es.d.ts +0 -0
- /package/dist/{src → cjs/src}/localizations/getLocalizationTable.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/LineSegment2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Mat33.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Path.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Rect2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Triangle.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Vec2.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/Vec3.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/math/rounding.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/Display.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/RenderingStyle.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/TextRenderingStyle.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/CacheRecord.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/CacheRecordManager.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/RenderingCache.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/RenderingCacheNode.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/testUtils.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/caching/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/AbstractRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/DummyRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/rendering/renderers/TextOnlyRenderer.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/beforeEachFile.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/createEditor.d.ts +0 -0
- /package/dist/{src → cjs/src}/testing/loadExpectExtensions.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/HTMLToolbar.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/IconProvider.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/makeColorInput.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/ActionButtonWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/BaseToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/BaseWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/EraserToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/HandToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/InsertImageWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/OverflowWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/PenToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/SelectionToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/TextToolWidget.d.ts +0 -0
- /package/dist/{src → cjs/src}/toolbar/widgets/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/BaseTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/Eraser.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/FindTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PanZoom.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PasteHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/Pen.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/PipetteTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/Selection.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionHandle.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/SelectionTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/TransformMode.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/SelectionTool/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/TextTool.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolController.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolEnabledGroup.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolSwitcherShortcut.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/ToolbarShortcutHandler.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/UndoRedoShortcut.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/lib.d.ts +0 -0
- /package/dist/{src → cjs/src}/tools/localization.d.ts +0 -0
- /package/dist/{src → cjs/src}/types.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/assertions.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/fileToBase64.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/untilNextAnimationFrame.d.ts +0 -0
- /package/dist/{src → cjs/src}/util/waitForTimeout.d.ts +0 -0
- /package/dist/{build_tools/BundledFile.js → mjs/build_tools/BundledFile.mjs} +0 -0
- /package/dist/{src/rendering/caching/types.js → mjs/build_tools/buildTranslationTemplate.d.ts} +0 -0
- /package/dist/{src/toolbar/types.js → mjs/build_tools/bundle.d.ts} +0 -0
- /package/dist/{src/EventDispatcher.js → mjs/src/EventDispatcher.mjs} +0 -0
- /package/dist/{src/commands/Command.js → mjs/src/commands/Command.mjs} +0 -0
- /package/dist/{src/commands/lib.js → mjs/src/commands/lib.d.ts} +0 -0
- /package/dist/{src/commands/localization.js → mjs/src/commands/localization.mjs} +0 -0
- /package/dist/{src/components/localization.js → mjs/src/components/localization.mjs} +0 -0
- /package/dist/{src/components/util/describeComponentList.js → mjs/src/components/util/describeComponentList.mjs} +0 -0
- /package/dist/{src/math/Triangle.js → mjs/src/math/Triangle.mjs} +0 -0
- /package/dist/{src/math/Vec3.js → mjs/src/math/Vec3.mjs} +0 -0
- /package/dist/{src/math/lib.js → mjs/src/math/lib.d.ts} +0 -0
- /package/dist/{src/math/rounding.js → mjs/src/math/rounding.mjs} +0 -0
- /package/dist/{src/rendering/localization.js → mjs/src/rendering/localization.mjs} +0 -0
- /package/dist/{src/testing/loadExpectExtensions.js → mjs/src/testing/loadExpectExtensions.mjs} +0 -0
- /package/dist/{src/toolbar/lib.js → mjs/src/toolbar/lib.d.ts} +0 -0
- /package/dist/{src/toolbar/localization.js → mjs/src/toolbar/localization.mjs} +0 -0
- /package/dist/{src/toolbar/widgets/lib.js → mjs/src/toolbar/widgets/lib.d.ts} +0 -0
- /package/dist/{src/tools/SelectionTool/types.js → mjs/src/tools/SelectionTool/types.mjs} +0 -0
- /package/dist/{src/tools/ToolEnabledGroup.js → mjs/src/tools/ToolEnabledGroup.mjs} +0 -0
- /package/dist/{src/tools/localization.js → mjs/src/tools/localization.mjs} +0 -0
- /package/dist/{src/types.js → mjs/src/types.mjs} +0 -0
- /package/dist/{src/util/assertions.js → mjs/src/util/assertions.mjs} +0 -0
- /package/dist/{src/util/fileToBase64.js → mjs/src/util/fileToBase64.mjs} +0 -0
- /package/dist/{src/util/untilNextAnimationFrame.js → mjs/src/util/untilNextAnimationFrame.mjs} +0 -0
- /package/dist/{src/util/waitForTimeout.js → mjs/src/util/waitForTimeout.mjs} +0 -0
@@ -7,31 +7,32 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
18
|
-
import
|
19
|
-
import
|
20
|
-
import
|
21
|
-
import
|
22
|
-
import
|
23
|
-
import
|
24
|
-
import
|
25
|
-
import
|
26
|
-
import
|
27
|
-
import
|
28
|
-
import
|
29
|
-
import
|
30
|
-
import
|
31
|
-
import
|
32
|
-
import
|
33
|
-
import
|
34
|
-
import
|
10
|
+
import EditorImage from './EditorImage.mjs';
|
11
|
+
import ToolController from './tools/ToolController.mjs';
|
12
|
+
import { InputEvtType, EditorEventType } from './types.mjs';
|
13
|
+
import UndoRedoHistory from './UndoRedoHistory.mjs';
|
14
|
+
import Viewport from './Viewport.mjs';
|
15
|
+
import EventDispatcher from './EventDispatcher.mjs';
|
16
|
+
import { Vec2 } from './math/Vec2.mjs';
|
17
|
+
import Vec3 from './math/Vec3.mjs';
|
18
|
+
import HTMLToolbar from './toolbar/HTMLToolbar.mjs';
|
19
|
+
import Display, { RenderingMode } from './rendering/Display.mjs';
|
20
|
+
import SVGRenderer from './rendering/renderers/SVGRenderer.mjs';
|
21
|
+
import Color4 from './Color4.mjs';
|
22
|
+
import SVGLoader from './SVGLoader.mjs';
|
23
|
+
import Pointer from './Pointer.mjs';
|
24
|
+
import Mat33 from './math/Mat33.mjs';
|
25
|
+
import getLocalizationTable from './localizations/getLocalizationTable.mjs';
|
26
|
+
import IconProvider from './toolbar/IconProvider.mjs';
|
27
|
+
import { toRoundedString } from './math/rounding.mjs';
|
28
|
+
import CanvasRenderer from './rendering/renderers/CanvasRenderer.mjs';
|
29
|
+
import untilNextAnimationFrame from './util/untilNextAnimationFrame.mjs';
|
30
|
+
import fileToBase64 from './util/fileToBase64.mjs';
|
31
|
+
import uniteCommands from './commands/uniteCommands.mjs';
|
32
|
+
import SelectionTool from './tools/SelectionTool/SelectionTool.mjs';
|
33
|
+
import Erase from './commands/Erase.mjs';
|
34
|
+
import ImageBackground, { BackgroundType } from './components/ImageBackground.mjs';
|
35
|
+
import sendPenEvent from './testing/sendPenEvent.mjs';
|
35
36
|
/**
|
36
37
|
* The main entrypoint for the full editor.
|
37
38
|
*
|
@@ -46,6 +47,9 @@ import ImageBackground, { BackgroundType } from './components/ImageBackground';
|
|
46
47
|
* // Do something with saveData...
|
47
48
|
* });
|
48
49
|
* ```
|
50
|
+
*
|
51
|
+
* See also
|
52
|
+
* [`docs/example/example.ts`](https://github.com/personalizedrefrigerator/js-draw/blob/main/docs/example/example.ts#L15).
|
49
53
|
*/
|
50
54
|
export class Editor {
|
51
55
|
/**
|
@@ -62,6 +66,8 @@ export class Editor {
|
|
62
66
|
*
|
63
67
|
* // Add the default toolbar
|
64
68
|
* const toolbar = editor.addToolbar();
|
69
|
+
*
|
70
|
+
* // Add a save button
|
65
71
|
* toolbar.addActionButton({
|
66
72
|
* label: 'Save'
|
67
73
|
* icon: createSaveIcon(),
|
@@ -156,6 +162,7 @@ export class Editor {
|
|
156
162
|
*
|
157
163
|
* @example
|
158
164
|
* ```
|
165
|
+
* // Set the editor's height to 500px
|
159
166
|
* editor.getRootElement().style.height = '500px';
|
160
167
|
* ```
|
161
168
|
*/
|
@@ -172,8 +179,10 @@ export class Editor {
|
|
172
179
|
this.loadingWarning.style.display = 'none';
|
173
180
|
this.announceForAccessibility(this.localization.doneLoading);
|
174
181
|
}
|
175
|
-
|
176
|
-
|
182
|
+
/**
|
183
|
+
* Announce `message` for screen readers. If `message` is the same as the previous
|
184
|
+
* message, it is re-announced.
|
185
|
+
*/
|
177
186
|
announceForAccessibility(message) {
|
178
187
|
// Force re-announcing an announcement if announced again.
|
179
188
|
if (message === this.previousAccessibilityAnnouncement) {
|
@@ -424,6 +433,25 @@ export class Editor {
|
|
424
433
|
}
|
425
434
|
});
|
426
435
|
}
|
436
|
+
/**
|
437
|
+
* Forward pointer events from `elem` to this editor. Such that right-click/right-click drag
|
438
|
+
* events are also forwarded, `elem`'s contextmenu is disabled.
|
439
|
+
*
|
440
|
+
* @example
|
441
|
+
* ```ts
|
442
|
+
* const overlay = document.createElement('div');
|
443
|
+
* editor.createHTMLOverlay(overlay);
|
444
|
+
*
|
445
|
+
* // Send all pointer events that don't have the control key pressed
|
446
|
+
* // to the editor.
|
447
|
+
* editor.handlePointerEventsFrom(overlay, (event) => {
|
448
|
+
* if (event.ctrlKey) {
|
449
|
+
* return false;
|
450
|
+
* }
|
451
|
+
* return true;
|
452
|
+
* });
|
453
|
+
* ```
|
454
|
+
*/
|
427
455
|
handlePointerEventsFrom(elem, filter) {
|
428
456
|
// May be required to prevent text selection on iOS/Safari:
|
429
457
|
// See https://stackoverflow.com/a/70992717/17055750
|
@@ -560,7 +588,7 @@ export class Editor {
|
|
560
588
|
* Schedule a re-render for some time in the near future. Does not schedule an additional
|
561
589
|
* re-render if a re-render is already queued.
|
562
590
|
*
|
563
|
-
* @returns a promise that resolves when
|
591
|
+
* @returns a promise that resolves when re-rendering has completed.
|
564
592
|
*/
|
565
593
|
queueRerender() {
|
566
594
|
if (!this.rerenderQueued) {
|
@@ -582,6 +610,11 @@ export class Editor {
|
|
582
610
|
isRerenderQueued() {
|
583
611
|
return this.rerenderQueued;
|
584
612
|
}
|
613
|
+
/**
|
614
|
+
* Re-renders the entire image.
|
615
|
+
*
|
616
|
+
* @see {@link Editor.queueRerender}
|
617
|
+
*/
|
585
618
|
rerender(showImageBounds = true) {
|
586
619
|
this.display.startRerender();
|
587
620
|
// Don't render if the display has zero size.
|
@@ -601,6 +634,9 @@ export class Editor {
|
|
601
634
|
this.nextRerenderListeners = [];
|
602
635
|
}
|
603
636
|
/**
|
637
|
+
* Draws the given path onto the wet ink renderer. The given path will
|
638
|
+
* be displayed on top of the main image.
|
639
|
+
*
|
604
640
|
* @see {@link Display.getWetInkRenderer} {@link Display.flatten}
|
605
641
|
*/
|
606
642
|
drawWetInk(...path) {
|
@@ -609,17 +645,26 @@ export class Editor {
|
|
609
645
|
}
|
610
646
|
}
|
611
647
|
/**
|
648
|
+
* Clears the wet ink display.
|
649
|
+
*
|
612
650
|
* @see {@link Display.getWetInkRenderer}
|
613
651
|
*/
|
614
652
|
clearWetInk() {
|
615
653
|
this.display.getWetInkRenderer().clear();
|
616
654
|
}
|
617
|
-
|
655
|
+
/**
|
656
|
+
* Focuses the region used for text input/key commands.
|
657
|
+
*/
|
618
658
|
focus() {
|
619
659
|
this.renderingRegion.focus();
|
620
660
|
}
|
621
|
-
|
622
|
-
|
661
|
+
/**
|
662
|
+
* Creates an element that will be positioned on top of the dry/wet ink
|
663
|
+
* renderers.
|
664
|
+
*
|
665
|
+
* This is useful for displaying content on top of the rendered content
|
666
|
+
* (e.g. a selection box).
|
667
|
+
*/
|
623
668
|
createHTMLOverlay(overlay) {
|
624
669
|
overlay.classList.add('overlay');
|
625
670
|
this.container.appendChild(overlay);
|
@@ -643,19 +688,17 @@ export class Editor {
|
|
643
688
|
altKey,
|
644
689
|
});
|
645
690
|
}
|
646
|
-
|
647
|
-
|
691
|
+
/**
|
692
|
+
* Dispatch a pen event to the currently selected tool.
|
693
|
+
* Intended primarially for unit tests.
|
694
|
+
*
|
695
|
+
* @deprecated
|
696
|
+
* @see {@link sendPenEvent} {@link sendTouchEvent}
|
697
|
+
*/
|
648
698
|
sendPenEvent(eventType, point,
|
649
699
|
// @deprecated
|
650
700
|
allPointers) {
|
651
|
-
|
652
|
-
this.toolController.dispatchInputEvent({
|
653
|
-
kind: eventType,
|
654
|
-
allPointers: allPointers !== null && allPointers !== void 0 ? allPointers : [
|
655
|
-
mainPointer,
|
656
|
-
],
|
657
|
-
current: mainPointer,
|
658
|
-
});
|
701
|
+
sendPenEvent(this, eventType, point, allPointers);
|
659
702
|
}
|
660
703
|
addAndCenterComponents(components, selectComponents = true) {
|
661
704
|
return __awaiter(this, void 0, void 0, function* () {
|
@@ -717,9 +760,8 @@ export class Editor {
|
|
717
760
|
}
|
718
761
|
toSVG() {
|
719
762
|
const importExportViewport = this.image.getImportExportViewport().getTemporaryClone();
|
720
|
-
const
|
721
|
-
const result =
|
722
|
-
const renderer = new SVGRenderer(result, importExportViewport);
|
763
|
+
const sanitize = false;
|
764
|
+
const { element: result, renderer } = SVGRenderer.fromViewport(importExportViewport, sanitize);
|
723
765
|
const origTransform = importExportViewport.canvasToScreenTransform;
|
724
766
|
// Render with (0,0) at (0,0) — we'll handle translation with
|
725
767
|
// the viewBox property.
|
@@ -731,11 +773,6 @@ export class Editor {
|
|
731
773
|
result.setAttribute('viewBox', [rect.x, rect.y, rect.w, rect.h].map(part => toRoundedString(part)).join(' '));
|
732
774
|
result.setAttribute('width', toRoundedString(rect.w));
|
733
775
|
result.setAttribute('height', toRoundedString(rect.h));
|
734
|
-
// Ensure the image can be identified as an SVG if downloaded.
|
735
|
-
// See https://jwatt.org/svg/authoring/
|
736
|
-
result.setAttribute('version', '1.1');
|
737
|
-
result.setAttribute('baseProfile', 'full');
|
738
|
-
result.setAttribute('xmlns', svgNameSpace);
|
739
776
|
return result;
|
740
777
|
}
|
741
778
|
/**
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import AbstractRenderer from './rendering/renderers/AbstractRenderer';
|
2
|
+
import Viewport from './Viewport';
|
3
|
+
import AbstractComponent from './components/AbstractComponent';
|
4
|
+
import Rect2 from './math/Rect2';
|
5
|
+
import RenderingCache from './rendering/caching/RenderingCache';
|
6
|
+
import SerializableCommand from './commands/SerializableCommand';
|
7
|
+
import EventDispatcher from './EventDispatcher';
|
8
|
+
export declare const sortLeavesByZIndex: (leaves: Array<ImageNode>) => void;
|
9
|
+
export declare enum EditorImageEventType {
|
10
|
+
ExportViewportChanged = 0
|
11
|
+
}
|
12
|
+
export type EditorImageNotifier = EventDispatcher<EditorImageEventType, {
|
13
|
+
image: EditorImage;
|
14
|
+
}>;
|
15
|
+
export default class EditorImage {
|
16
|
+
private root;
|
17
|
+
private background;
|
18
|
+
private componentsById;
|
19
|
+
/** Viewport for the exported/imported image. */
|
20
|
+
private importExportViewport;
|
21
|
+
readonly notifier: EditorImageNotifier;
|
22
|
+
constructor();
|
23
|
+
getBackgroundComponents(): AbstractComponent[];
|
24
|
+
findParent(elem: AbstractComponent): ImageNode | null;
|
25
|
+
queueRerenderOf(elem: AbstractComponent): void;
|
26
|
+
/** @internal */
|
27
|
+
renderWithCache(screenRenderer: AbstractRenderer, cache: RenderingCache, viewport: Viewport): void;
|
28
|
+
/**
|
29
|
+
* Renders all nodes visible from `viewport` (or all nodes if `viewport = null`).
|
30
|
+
*
|
31
|
+
* `viewport` is used to improve rendering performance. If given, it must match
|
32
|
+
* the viewport used by the `renderer` (if any).
|
33
|
+
*/
|
34
|
+
render(renderer: AbstractRenderer, viewport: Viewport | null): void;
|
35
|
+
/** Renders all nodes, even ones not within the viewport. @internal */
|
36
|
+
renderAll(renderer: AbstractRenderer): void;
|
37
|
+
/** @returns all elements in the image, sorted by z-index. This can be slow for large images. */
|
38
|
+
getAllElements(): AbstractComponent[];
|
39
|
+
/** @returns a list of `AbstractComponent`s intersecting `region`, sorted by z-index. */
|
40
|
+
getElementsIntersectingRegion(region: Rect2): AbstractComponent[];
|
41
|
+
/** @internal */
|
42
|
+
onDestroyElement(elem: AbstractComponent): void;
|
43
|
+
/**
|
44
|
+
* @returns the AbstractComponent with `id`, if it exists.
|
45
|
+
*
|
46
|
+
* @see {@link AbstractComponent.getId}
|
47
|
+
*/
|
48
|
+
lookupElement(id: string): AbstractComponent | null;
|
49
|
+
private addElementDirectly;
|
50
|
+
private removeElementDirectly;
|
51
|
+
/**
|
52
|
+
* Returns a command that adds the given element to the `EditorImage`.
|
53
|
+
* If `applyByFlattening` is true, the content of the wet ink renderer is
|
54
|
+
* rendered onto the main rendering canvas instead of doing a full re-render.
|
55
|
+
*
|
56
|
+
* @see {@link Display.flatten}
|
57
|
+
*/
|
58
|
+
static addElement(elem: AbstractComponent, applyByFlattening?: boolean): SerializableCommand;
|
59
|
+
/** @see EditorImage.addElement */
|
60
|
+
addElement(elem: AbstractComponent, applyByFlattening?: boolean): SerializableCommand;
|
61
|
+
private static AddElementCommand;
|
62
|
+
/**
|
63
|
+
* @returns a `Viewport` for rendering the image when importing/exporting.
|
64
|
+
*/
|
65
|
+
getImportExportViewport(): Viewport;
|
66
|
+
setImportExportRect(imageRect: Rect2): SerializableCommand;
|
67
|
+
private static SetImportExportRectCommand;
|
68
|
+
}
|
69
|
+
type TooSmallToRenderCheck = (rect: Rect2) => boolean;
|
70
|
+
/** Part of the Editor's image. @internal */
|
71
|
+
export declare class ImageNode {
|
72
|
+
private parent;
|
73
|
+
private content;
|
74
|
+
private bbox;
|
75
|
+
private children;
|
76
|
+
private targetChildCount;
|
77
|
+
private id;
|
78
|
+
private static idCounter;
|
79
|
+
constructor(parent?: ImageNode | null);
|
80
|
+
getId(): number;
|
81
|
+
onContentChange(): void;
|
82
|
+
getContent(): AbstractComponent | null;
|
83
|
+
getParent(): ImageNode | null;
|
84
|
+
private getChildrenIntersectingRegion;
|
85
|
+
getChildrenOrSelfIntersectingRegion(region: Rect2): ImageNode[];
|
86
|
+
getLeavesIntersectingRegion(region: Rect2, isTooSmall?: TooSmallToRenderCheck): ImageNode[];
|
87
|
+
getChildWithContent(target: AbstractComponent): ImageNode | null;
|
88
|
+
getLeaves(): ImageNode[];
|
89
|
+
addLeaf(leaf: AbstractComponent): ImageNode;
|
90
|
+
getBBox(): Rect2;
|
91
|
+
recomputeBBox(bubbleUp: boolean): void;
|
92
|
+
private updateParents;
|
93
|
+
private rebalance;
|
94
|
+
remove(): void;
|
95
|
+
render(renderer: AbstractRenderer, visibleRect?: Rect2): void;
|
96
|
+
}
|
97
|
+
export {};
|
@@ -1,12 +1,12 @@
|
|
1
1
|
var _a, _b, _c;
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
import
|
2
|
+
import Viewport from './Viewport.mjs';
|
3
|
+
import AbstractComponent from './components/AbstractComponent.mjs';
|
4
|
+
import Rect2 from './math/Rect2.mjs';
|
5
|
+
import SerializableCommand from './commands/SerializableCommand.mjs';
|
6
|
+
import EventDispatcher from './EventDispatcher.mjs';
|
7
|
+
import { Vec2 } from './math/Vec2.mjs';
|
8
|
+
import Mat33 from './math/Mat33.mjs';
|
9
|
+
import { assertIsNumber, assertIsNumberArray } from './util/assertions.mjs';
|
10
10
|
// @internal Sort by z-index, low to high
|
11
11
|
export const sortLeavesByZIndex = (leaves) => {
|
12
12
|
leaves.sort((a, b) => a.getContent().getZIndex() - b.getContent().getZIndex());
|
@@ -67,8 +67,10 @@ export default class EditorImage {
|
|
67
67
|
cache.render(screenRenderer, this.root, viewport);
|
68
68
|
}
|
69
69
|
/**
|
70
|
-
* Renders all nodes visible from `viewport` (or all nodes if `viewport = null`)
|
71
|
-
*
|
70
|
+
* Renders all nodes visible from `viewport` (or all nodes if `viewport = null`).
|
71
|
+
*
|
72
|
+
* `viewport` is used to improve rendering performance. If given, it must match
|
73
|
+
* the viewport used by the `renderer` (if any).
|
72
74
|
*/
|
73
75
|
render(renderer, viewport) {
|
74
76
|
this.background.render(renderer, viewport === null || viewport === void 0 ? void 0 : viewport.visibleRect);
|
@@ -0,0 +1,30 @@
|
|
1
|
+
/**
|
2
|
+
* Handles notifying listeners of events.
|
3
|
+
*
|
4
|
+
* `EventKeyType` is used to distinguish events (e.g. a `ClickEvent` vs a `TouchEvent`)
|
5
|
+
* while `EventMessageType` is the type of the data sent with an event (can be `void`).
|
6
|
+
*
|
7
|
+
* @example
|
8
|
+
* ```
|
9
|
+
* const dispatcher = new EventDispatcher<'event1'|'event2'|'event3', void>();
|
10
|
+
* dispatcher.on('event1', () => {
|
11
|
+
* console.log('Event 1 triggered.');
|
12
|
+
* });
|
13
|
+
* dispatcher.dispatch('event1');
|
14
|
+
* ```
|
15
|
+
*
|
16
|
+
* @packageDocumentation
|
17
|
+
*/
|
18
|
+
type CallbackHandler<EventType> = (data: EventType) => void;
|
19
|
+
export interface DispatcherEventListener {
|
20
|
+
remove: () => void;
|
21
|
+
}
|
22
|
+
export default class EventDispatcher<EventKeyType extends string | symbol | number, EventMessageType> {
|
23
|
+
private listeners;
|
24
|
+
constructor();
|
25
|
+
dispatch(eventName: EventKeyType, event: EventMessageType): void;
|
26
|
+
on(eventName: EventKeyType, callback: CallbackHandler<EventMessageType>): DispatcherEventListener;
|
27
|
+
/** Removes an event listener. This is equivalent to calling `.remove()` on the object returned by `.on`. */
|
28
|
+
off(eventName: EventKeyType, callback: CallbackHandler<EventMessageType>): void;
|
29
|
+
}
|
30
|
+
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Point2 } from './math/Vec2';
|
2
|
+
import Viewport from './Viewport';
|
3
|
+
export declare enum PointerDevice {
|
4
|
+
Pen = 0,
|
5
|
+
Eraser = 1,
|
6
|
+
Touch = 2,
|
7
|
+
PrimaryButtonMouse = 3,
|
8
|
+
RightButtonMouse = 4,
|
9
|
+
Other = 5
|
10
|
+
}
|
11
|
+
export default class Pointer {
|
12
|
+
readonly screenPos: Point2;
|
13
|
+
readonly canvasPos: Point2;
|
14
|
+
readonly pressure: number | null;
|
15
|
+
readonly isPrimary: boolean;
|
16
|
+
readonly down: boolean;
|
17
|
+
readonly device: PointerDevice;
|
18
|
+
readonly id: number;
|
19
|
+
readonly timeStamp: number;
|
20
|
+
private constructor();
|
21
|
+
snappedToGrid(viewport: Viewport): Pointer;
|
22
|
+
static ofEvent(evt: PointerEvent, isDown: boolean, viewport: Viewport, relativeTo?: HTMLElement): Pointer;
|
23
|
+
static ofCanvasPoint(canvasPos: Point2, isDown: boolean, viewport: Viewport, id?: number, device?: PointerDevice, isPrimary?: boolean, pressure?: number | null): Pointer;
|
24
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import Rect2 from './math/Rect2';
|
2
|
+
import { ComponentAddedListener, ImageLoader, OnDetermineExportRectListener, OnProgressListener } from './types';
|
3
|
+
export declare const defaultSVGViewRect: Rect2;
|
4
|
+
export declare const svgAttributesDataKey = "svgAttrs";
|
5
|
+
export declare const svgStyleAttributesDataKey = "svgStyleAttrs";
|
6
|
+
export type SVGLoaderUnknownAttribute = [string, string];
|
7
|
+
export type SVGLoaderUnknownStyleAttribute = {
|
8
|
+
key: string;
|
9
|
+
value: string;
|
10
|
+
priority?: string;
|
11
|
+
};
|
12
|
+
export default class SVGLoader implements ImageLoader {
|
13
|
+
private source;
|
14
|
+
private onFinish?;
|
15
|
+
private readonly storeUnknown;
|
16
|
+
private onAddComponent;
|
17
|
+
private onProgress;
|
18
|
+
private onDetermineExportRect;
|
19
|
+
private processedCount;
|
20
|
+
private totalToProcess;
|
21
|
+
private rootViewBox;
|
22
|
+
private constructor();
|
23
|
+
private getStyle;
|
24
|
+
private strokeDataFromElem;
|
25
|
+
private attachUnrecognisedAttrs;
|
26
|
+
private addPath;
|
27
|
+
private addBackground;
|
28
|
+
private getTransform;
|
29
|
+
private makeText;
|
30
|
+
private addText;
|
31
|
+
private addImage;
|
32
|
+
private addUnknownNode;
|
33
|
+
private updateViewBox;
|
34
|
+
private updateSVGAttrs;
|
35
|
+
private visit;
|
36
|
+
private getSourceAttrs;
|
37
|
+
start(onAddComponent: ComponentAddedListener, onProgress: OnProgressListener, onDetermineExportRect?: OnDetermineExportRectListener | null): Promise<void>;
|
38
|
+
/**
|
39
|
+
* Create an `SVGLoader` from the content of an SVG image. SVGs are loaded within a sandboxed
|
40
|
+
* iframe with `sandbox="allow-same-origin"`
|
41
|
+
* [thereby disabling JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox).
|
42
|
+
*
|
43
|
+
* @see {@link Editor.loadFrom}
|
44
|
+
* @param text - Textual representation of the SVG (e.g. `<svg viewbox='...'>...</svg>`).
|
45
|
+
* @param sanitize - if `true`, don't store unknown attributes.
|
46
|
+
*/
|
47
|
+
static fromString(text: string, sanitize?: boolean): SVGLoader;
|
48
|
+
}
|
@@ -7,17 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
import
|
11
|
-
import
|
12
|
-
import
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
18
|
-
import
|
19
|
-
import
|
20
|
-
import
|
10
|
+
import Color4 from './Color4.mjs';
|
11
|
+
import ImageBackground, { BackgroundType, imageBackgroundCSSClassName } from './components/ImageBackground.mjs';
|
12
|
+
import ImageComponent from './components/ImageComponent.mjs';
|
13
|
+
import Stroke from './components/Stroke.mjs';
|
14
|
+
import SVGGlobalAttributesObject from './components/SVGGlobalAttributesObject.mjs';
|
15
|
+
import TextComponent from './components/TextComponent.mjs';
|
16
|
+
import UnknownSVGObject from './components/UnknownSVGObject.mjs';
|
17
|
+
import Mat33 from './math/Mat33.mjs';
|
18
|
+
import Path from './math/Path.mjs';
|
19
|
+
import Rect2 from './math/Rect2.mjs';
|
20
|
+
import { Vec2 } from './math/Vec2.mjs';
|
21
21
|
// Size of a loaded image if no size is specified.
|
22
22
|
export const defaultSVGViewRect = new Rect2(0, 0, 500, 500);
|
23
23
|
// Key to retrieve unrecognised attributes from an AbstractComponent
|
@@ -387,6 +387,10 @@ export default class SVGLoader {
|
|
387
387
|
});
|
388
388
|
}
|
389
389
|
/**
|
390
|
+
* Create an `SVGLoader` from the content of an SVG image. SVGs are loaded within a sandboxed
|
391
|
+
* iframe with `sandbox="allow-same-origin"`
|
392
|
+
* [thereby disabling JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox).
|
393
|
+
*
|
390
394
|
* @see {@link Editor.loadFrom}
|
391
395
|
* @param text - Textual representation of the SVG (e.g. `<svg viewbox='...'>...</svg>`).
|
392
396
|
* @param sanitize - if `true`, don't store unknown attributes.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import Editor from './Editor';
|
2
|
+
import Command from './commands/Command';
|
3
|
+
type AnnounceRedoCallback = (command: Command) => void;
|
4
|
+
type AnnounceUndoCallback = (command: Command) => void;
|
5
|
+
declare class UndoRedoHistory {
|
6
|
+
#private;
|
7
|
+
private readonly editor;
|
8
|
+
private announceRedoCallback;
|
9
|
+
private announceUndoCallback;
|
10
|
+
private readonly maxUndoRedoStackSize;
|
11
|
+
constructor(editor: Editor, announceRedoCallback: AnnounceRedoCallback, announceUndoCallback: AnnounceUndoCallback);
|
12
|
+
private fireUpdateEvent;
|
13
|
+
push(command: Command, apply?: boolean): void;
|
14
|
+
undo(): void;
|
15
|
+
redo(): void;
|
16
|
+
get undoStackSize(): number;
|
17
|
+
get redoStackSize(): number;
|
18
|
+
}
|
19
|
+
export default UndoRedoHistory;
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
11
|
};
|
12
12
|
var _UndoRedoHistory_undoStack, _UndoRedoHistory_redoStack;
|
13
|
-
import
|
13
|
+
import { EditorEventType, UndoEventType } from './types.mjs';
|
14
14
|
class UndoRedoHistory {
|
15
15
|
// @internal
|
16
16
|
constructor(editor, announceRedoCallback, announceUndoCallback) {
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import Command from './commands/Command';
|
2
|
+
import Mat33 from './math/Mat33';
|
3
|
+
import Rect2 from './math/Rect2';
|
4
|
+
import { Point2, Vec2 } from './math/Vec2';
|
5
|
+
import Vec3 from './math/Vec3';
|
6
|
+
import { StrokeDataPoint } from './types';
|
7
|
+
type PointDataType<T extends Point2 | StrokeDataPoint | number> = T extends Point2 ? Point2 : number;
|
8
|
+
export declare abstract class ViewportTransform extends Command {
|
9
|
+
abstract readonly transform: Mat33;
|
10
|
+
}
|
11
|
+
type TransformChangeCallback = (oldTransform: Mat33, newTransform: Mat33) => void;
|
12
|
+
export declare class Viewport {
|
13
|
+
private onTransformChangeCallback;
|
14
|
+
private static ViewportTransform;
|
15
|
+
private transform;
|
16
|
+
private inverseTransform;
|
17
|
+
private screenRect;
|
18
|
+
constructor(onTransformChangeCallback: TransformChangeCallback);
|
19
|
+
/**
|
20
|
+
* @returns a temporary copy of `this` that does not notify when modified. This is
|
21
|
+
* useful when rendering with a temporarily different viewport.
|
22
|
+
*/
|
23
|
+
getTemporaryClone(): Viewport;
|
24
|
+
updateScreenSize(screenSize: Vec2): void;
|
25
|
+
/** Get the screen's visible region transformed into canvas space. */
|
26
|
+
get visibleRect(): Rect2;
|
27
|
+
/** @returns the given point, but in canvas coordinates */
|
28
|
+
screenToCanvas(screenPoint: Point2): Point2;
|
29
|
+
/** @returns the given point transformed into screen coordinates. */
|
30
|
+
canvasToScreen(canvasPoint: Point2): Point2;
|
31
|
+
/** @returns a command that transforms the canvas by `transform`. */
|
32
|
+
static transformBy(transform: Mat33): ViewportTransform;
|
33
|
+
/**
|
34
|
+
* Updates the transformation directly. Using `transformBy` is preferred.
|
35
|
+
* @param newTransform - should map from canvas coordinates to screen coordinates.
|
36
|
+
*/
|
37
|
+
resetTransform(newTransform?: Mat33): void;
|
38
|
+
get screenToCanvasTransform(): Mat33;
|
39
|
+
get canvasToScreenTransform(): Mat33;
|
40
|
+
/** @returns the size of the visible region in pixels. */
|
41
|
+
getScreenRectSize(): Vec2;
|
42
|
+
/** Alias for `getScreenRectSize`. @deprecated */
|
43
|
+
getResolution(): Vec3;
|
44
|
+
/** @returns the amount a vector on the canvas is scaled to become a vector on the screen. */
|
45
|
+
getScaleFactor(): number;
|
46
|
+
/**
|
47
|
+
* @returns `getScaleFactor()` rounded to the nearest power of 10.
|
48
|
+
* For example, if `getScaleFactor()` returns 101, `getScaleFactorToNearestPowerOfTen()`
|
49
|
+
* should return `100` because `100` is the nearest power of 10 to 101.
|
50
|
+
*/
|
51
|
+
getScaleFactorToNearestPowerOfTen(): number;
|
52
|
+
private getScaleFactorToNearestPowerOf;
|
53
|
+
snapToGrid(canvasPos: Point2): Vec3;
|
54
|
+
/** Returns the size of one screen pixel in canvas units. */
|
55
|
+
getSizeOfPixelOnCanvas(): number;
|
56
|
+
/**
|
57
|
+
* @returns the angle of the canvas in radians.
|
58
|
+
* This is the angle by which the canvas is rotated relative to the screen.
|
59
|
+
*/
|
60
|
+
getRotationAngle(): number;
|
61
|
+
/**
|
62
|
+
* Rounds the given `point` to a multiple of 10 such that it is within `tolerance` of
|
63
|
+
* its original location. This is useful for preparing data for base-10 conversion.
|
64
|
+
*/
|
65
|
+
static roundPoint<T extends Point2 | number>(point: T, tolerance: number): PointDataType<T>;
|
66
|
+
roundPoint(point: Point2): Point2;
|
67
|
+
static roundScaleRatio(scaleRatio: number, roundAmount?: number): number;
|
68
|
+
computeZoomToTransform(toMakeVisible: Rect2, allowZoomIn?: boolean, allowZoomOut?: boolean): Mat33;
|
69
|
+
zoomTo(toMakeVisible: Rect2, allowZoomIn?: boolean, allowZoomOut?: boolean): Command;
|
70
|
+
}
|
71
|
+
export default Viewport;
|
@@ -10,11 +10,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
11
|
};
|
12
12
|
var _inverseTransform, _a;
|
13
|
-
import
|
14
|
-
import
|
15
|
-
import
|
16
|
-
import
|
17
|
-
import
|
13
|
+
import Command from './commands/Command.mjs';
|
14
|
+
import Mat33 from './math/Mat33.mjs';
|
15
|
+
import Rect2 from './math/Rect2.mjs';
|
16
|
+
import { Vec2 } from './math/Vec2.mjs';
|
17
|
+
import Vec3 from './math/Vec3.mjs';
|
18
18
|
export class ViewportTransform extends Command {
|
19
19
|
}
|
20
20
|
export class Viewport {
|