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
@@ -1,5 +1,5 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import Path, { PathCommandType } from '../../math/Path.mjs';
|
2
|
+
import Stroke from '../Stroke.mjs';
|
3
3
|
export const makeArrowBuilder = (initialPoint, viewport) => {
|
4
4
|
return new ArrowBuilder(initialPoint, viewport);
|
5
5
|
};
|
@@ -0,0 +1,33 @@
|
|
1
|
+
import AbstractRenderer, { RenderablePathSpec } from '../../rendering/renderers/AbstractRenderer';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import Stroke from '../Stroke';
|
4
|
+
import Viewport from '../../Viewport';
|
5
|
+
import { StrokeDataPoint } from '../../types';
|
6
|
+
import { ComponentBuilder, ComponentBuilderFactory } from './types';
|
7
|
+
import RenderingStyle from '../../rendering/RenderingStyle';
|
8
|
+
export declare const makeFreehandLineBuilder: ComponentBuilderFactory;
|
9
|
+
export default class FreehandLineBuilder implements ComponentBuilder {
|
10
|
+
private startPoint;
|
11
|
+
private minFitAllowed;
|
12
|
+
private viewport;
|
13
|
+
private isFirstSegment;
|
14
|
+
private parts;
|
15
|
+
private curveFitter;
|
16
|
+
private bbox;
|
17
|
+
private averageWidth;
|
18
|
+
private widthAverageNumSamples;
|
19
|
+
constructor(startPoint: StrokeDataPoint, minFitAllowed: number, maxFitAllowed: number, viewport: Viewport);
|
20
|
+
getBBox(): Rect2;
|
21
|
+
protected getRenderingStyle(): RenderingStyle;
|
22
|
+
protected previewCurrentPath(): RenderablePathSpec | null;
|
23
|
+
protected previewFullPath(): RenderablePathSpec[] | null;
|
24
|
+
private previewStroke;
|
25
|
+
preview(renderer: AbstractRenderer): void;
|
26
|
+
build(): Stroke;
|
27
|
+
private getMinFit;
|
28
|
+
private roundPoint;
|
29
|
+
private roundDistance;
|
30
|
+
private curveToPathCommands;
|
31
|
+
private addCurve;
|
32
|
+
addPoint(newPoint: StrokeDataPoint): void;
|
33
|
+
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
1
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
2
|
+
import Rect2 from '../../math/Rect2.mjs';
|
3
|
+
import { PathCommandType } from '../../math/Path.mjs';
|
4
|
+
import Stroke from '../Stroke.mjs';
|
5
|
+
import Viewport from '../../Viewport.mjs';
|
6
|
+
import { StrokeSmoother } from '../util/StrokeSmoother.mjs';
|
7
|
+
import Color4 from '../../Color4.mjs';
|
8
8
|
export const makeFreehandLineBuilder = (initialPoint, viewport) => {
|
9
9
|
// Don't smooth if input is more than ± 3 pixels from the true curve, do smooth if
|
10
10
|
// less than ±1 px from the curve.
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import Rect2 from '../../math/Rect2';
|
2
|
+
import AbstractRenderer from '../../rendering/renderers/AbstractRenderer';
|
3
|
+
import { StrokeDataPoint } from '../../types';
|
4
|
+
import Viewport from '../../Viewport';
|
5
|
+
import AbstractComponent from '../AbstractComponent';
|
6
|
+
import { ComponentBuilder, ComponentBuilderFactory } from './types';
|
7
|
+
export declare const makeLineBuilder: ComponentBuilderFactory;
|
8
|
+
export default class LineBuilder implements ComponentBuilder {
|
9
|
+
private readonly startPoint;
|
10
|
+
private readonly viewport;
|
11
|
+
private endPoint;
|
12
|
+
constructor(startPoint: StrokeDataPoint, viewport: Viewport);
|
13
|
+
getBBox(): Rect2;
|
14
|
+
private buildPreview;
|
15
|
+
build(): AbstractComponent;
|
16
|
+
preview(renderer: AbstractRenderer): void;
|
17
|
+
addPoint(point: StrokeDataPoint): void;
|
18
|
+
}
|
package/dist/{src/components/builders/LineBuilder.js → mjs/src/components/builders/LineBuilder.mjs}
RENAMED
@@ -1,5 +1,5 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import Path, { PathCommandType } from '../../math/Path.mjs';
|
2
|
+
import Stroke from '../Stroke.mjs';
|
3
3
|
export const makeLineBuilder = (initialPoint, viewport) => {
|
4
4
|
return new LineBuilder(initialPoint, viewport);
|
5
5
|
};
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import AbstractRenderer from '../../rendering/renderers/AbstractRenderer';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import Stroke from '../Stroke';
|
4
|
+
import Viewport from '../../Viewport';
|
5
|
+
import { StrokeDataPoint } from '../../types';
|
6
|
+
import { ComponentBuilder, ComponentBuilderFactory } from './types';
|
7
|
+
export declare const makePressureSensitiveFreehandLineBuilder: ComponentBuilderFactory;
|
8
|
+
export default class PressureSensitiveFreehandLineBuilder implements ComponentBuilder {
|
9
|
+
private startPoint;
|
10
|
+
private minFitAllowed;
|
11
|
+
private viewport;
|
12
|
+
private isFirstSegment;
|
13
|
+
private pathStartConnector;
|
14
|
+
private mostRecentConnector;
|
15
|
+
private upperSegments;
|
16
|
+
private lowerSegments;
|
17
|
+
private lastUpperBezier;
|
18
|
+
private lastLowerBezier;
|
19
|
+
private parts;
|
20
|
+
private curveFitter;
|
21
|
+
private curveStartWidth;
|
22
|
+
private bbox;
|
23
|
+
constructor(startPoint: StrokeDataPoint, minFitAllowed: number, maxFitAllowed: number, viewport: Viewport);
|
24
|
+
getBBox(): Rect2;
|
25
|
+
private getRenderingStyle;
|
26
|
+
private previewCurrentPath;
|
27
|
+
private previewFullPath;
|
28
|
+
private previewStroke;
|
29
|
+
preview(renderer: AbstractRenderer): void;
|
30
|
+
build(): Stroke;
|
31
|
+
private roundPoint;
|
32
|
+
private shouldStartNewSegment;
|
33
|
+
private addCurve;
|
34
|
+
private segmentToPath;
|
35
|
+
addPoint(newPoint: StrokeDataPoint): void;
|
36
|
+
}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { Bezier } from 'bezier-js';
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
2
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
3
|
+
import Rect2 from '../../math/Rect2.mjs';
|
4
|
+
import { PathCommandType } from '../../math/Path.mjs';
|
5
|
+
import Stroke from '../Stroke.mjs';
|
6
|
+
import Viewport from '../../Viewport.mjs';
|
7
|
+
import { StrokeSmoother } from '../util/StrokeSmoother.mjs';
|
8
8
|
export const makePressureSensitiveFreehandLineBuilder = (initialPoint, viewport) => {
|
9
9
|
// Don't smooth if input is more than ± 3 pixels from the true curve, do smooth if
|
10
10
|
// less than ±1 px from the curve.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import Rect2 from '../../math/Rect2';
|
2
|
+
import AbstractRenderer from '../../rendering/renderers/AbstractRenderer';
|
3
|
+
import { StrokeDataPoint } from '../../types';
|
4
|
+
import Viewport from '../../Viewport';
|
5
|
+
import AbstractComponent from '../AbstractComponent';
|
6
|
+
import { ComponentBuilder, ComponentBuilderFactory } from './types';
|
7
|
+
export declare const makeFilledRectangleBuilder: ComponentBuilderFactory;
|
8
|
+
export declare const makeOutlinedRectangleBuilder: ComponentBuilderFactory;
|
9
|
+
export default class RectangleBuilder implements ComponentBuilder {
|
10
|
+
private readonly startPoint;
|
11
|
+
private filled;
|
12
|
+
private viewport;
|
13
|
+
private endPoint;
|
14
|
+
constructor(startPoint: StrokeDataPoint, filled: boolean, viewport: Viewport);
|
15
|
+
getBBox(): Rect2;
|
16
|
+
private buildPreview;
|
17
|
+
build(): AbstractComponent;
|
18
|
+
preview(renderer: AbstractRenderer): void;
|
19
|
+
addPoint(point: StrokeDataPoint): void;
|
20
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
1
|
+
import Mat33 from '../../math/Mat33.mjs';
|
2
|
+
import Path from '../../math/Path.mjs';
|
3
|
+
import Rect2 from '../../math/Rect2.mjs';
|
4
|
+
import Stroke from '../Stroke.mjs';
|
5
5
|
export const makeFilledRectangleBuilder = (initialPoint, viewport) => {
|
6
6
|
return new RectangleBuilder(initialPoint, true, viewport);
|
7
7
|
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import Rect2 from '../../math/Rect2';
|
2
|
+
import AbstractRenderer from '../../rendering/renderers/AbstractRenderer';
|
3
|
+
import { StrokeDataPoint } from '../../types';
|
4
|
+
import Viewport from '../../Viewport';
|
5
|
+
import AbstractComponent from '../AbstractComponent';
|
6
|
+
export interface ComponentBuilder {
|
7
|
+
getBBox(): Rect2;
|
8
|
+
build(): AbstractComponent;
|
9
|
+
preview(renderer: AbstractRenderer): void;
|
10
|
+
addPoint(point: StrokeDataPoint): void;
|
11
|
+
}
|
12
|
+
export type ComponentBuilderFactory = (startPoint: StrokeDataPoint, viewport: Viewport) => ComponentBuilder;
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -1,12 +1,12 @@
|
|
1
1
|
export * from './builders/types';
|
2
2
|
export { makeFreehandLineBuilder } from './builders/FreehandLineBuilder';
|
3
3
|
export { makePressureSensitiveFreehandLineBuilder } from './builders/PressureSensitiveFreehandLineBuilder';
|
4
|
-
export { default as StrokeSmoother } from './util/StrokeSmoother';
|
4
|
+
export { default as StrokeSmoother, Curve as StrokeSmootherCurve } from './util/StrokeSmoother';
|
5
5
|
export * from './AbstractComponent';
|
6
6
|
export { default as AbstractComponent } from './AbstractComponent';
|
7
7
|
import Stroke from './Stroke';
|
8
8
|
import TextComponent from './TextComponent';
|
9
9
|
import ImageComponent from './ImageComponent';
|
10
|
-
import { createRestyleComponentCommand, isRestylableComponent } from './RestylableComponent';
|
10
|
+
import RestyleableComponent, { createRestyleComponentCommand, isRestylableComponent } from './RestylableComponent';
|
11
11
|
import ImageBackground from './ImageBackground';
|
12
|
-
export { Stroke, TextComponent as Text, createRestyleComponentCommand, isRestylableComponent, TextComponent, Stroke as StrokeComponent, ImageBackground as BackgroundComponent, ImageComponent, };
|
12
|
+
export { Stroke, TextComponent as Text, RestyleableComponent, createRestyleComponentCommand, isRestylableComponent, TextComponent, Stroke as StrokeComponent, ImageBackground as BackgroundComponent, ImageComponent, };
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export * from './builders/types.mjs';
|
2
|
+
export { makeFreehandLineBuilder } from './builders/FreehandLineBuilder.mjs';
|
3
|
+
export { makePressureSensitiveFreehandLineBuilder } from './builders/PressureSensitiveFreehandLineBuilder.mjs';
|
4
|
+
export { default as StrokeSmoother } from './util/StrokeSmoother.mjs';
|
5
|
+
export * from './AbstractComponent.mjs';
|
6
|
+
export { default as AbstractComponent } from './AbstractComponent.mjs';
|
7
|
+
import Stroke from './Stroke.mjs';
|
8
|
+
import TextComponent from './TextComponent.mjs';
|
9
|
+
import ImageComponent from './ImageComponent.mjs';
|
10
|
+
import { createRestyleComponentCommand, isRestylableComponent } from './RestylableComponent.mjs';
|
11
|
+
import ImageBackground from './ImageBackground.mjs';
|
12
|
+
export { Stroke, TextComponent as Text, createRestyleComponentCommand, isRestylableComponent, TextComponent, Stroke as StrokeComponent, ImageBackground as BackgroundComponent, ImageComponent, };
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export interface ImageComponentLocalization {
|
2
|
+
unlabeledImageNode: string;
|
3
|
+
text: (text: string) => string;
|
4
|
+
imageNode: (description: string) => string;
|
5
|
+
stroke: string;
|
6
|
+
svgObject: string;
|
7
|
+
emptyBackground: string;
|
8
|
+
filledBackgroundWithColor: (color: string) => string;
|
9
|
+
restyledElement: (elementDescription: string) => string;
|
10
|
+
}
|
11
|
+
export declare const defaultComponentLocalization: ImageComponentLocalization;
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Vec2 } from '../../math/Vec2';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import { StrokeDataPoint } from '../../types';
|
4
|
+
export interface Curve {
|
5
|
+
startPoint: Vec2;
|
6
|
+
startWidth: number;
|
7
|
+
controlPoint: Vec2;
|
8
|
+
endWidth: number;
|
9
|
+
endPoint: Vec2;
|
10
|
+
}
|
11
|
+
type OnCurveAddedCallback = (curve: Curve | null) => void;
|
12
|
+
export declare class StrokeSmoother {
|
13
|
+
private startPoint;
|
14
|
+
private minFitAllowed;
|
15
|
+
private maxFitAllowed;
|
16
|
+
private onCurveAdded;
|
17
|
+
private isFirstSegment;
|
18
|
+
private buffer;
|
19
|
+
private lastPoint;
|
20
|
+
private lastExitingVec;
|
21
|
+
private currentCurve;
|
22
|
+
private curveStartWidth;
|
23
|
+
private curveEndWidth;
|
24
|
+
private momentum;
|
25
|
+
private bbox;
|
26
|
+
constructor(startPoint: StrokeDataPoint, minFitAllowed: number, maxFitAllowed: number, onCurveAdded: OnCurveAddedCallback);
|
27
|
+
getBBox(): Rect2;
|
28
|
+
preview(): Curve | null;
|
29
|
+
private approxCurrentCurveLength;
|
30
|
+
finalizeCurrentCurve(): void;
|
31
|
+
private currentSegmentToPath;
|
32
|
+
private computeExitingVec;
|
33
|
+
addPoint(newPoint: StrokeDataPoint): void;
|
34
|
+
}
|
35
|
+
export default StrokeSmoother;
|
package/dist/{src/components/util/StrokeSmoother.js → mjs/src/components/util/StrokeSmoother.mjs}
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Bezier } from 'bezier-js';
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
2
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
3
|
+
import Rect2 from '../../math/Rect2.mjs';
|
4
|
+
import LineSegment2 from '../../math/LineSegment2.mjs';
|
5
5
|
// Handles stroke smoothing
|
6
6
|
export class StrokeSmoother {
|
7
7
|
constructor(startPoint,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* The main entrypoint for the NPM package. Everything exported by this file
|
3
|
-
* is available through the `js-draw` package.
|
3
|
+
* is available through the [`js-draw` package](https://www.npmjs.com/package/js-draw).
|
4
4
|
*
|
5
5
|
* @example
|
6
6
|
* ```
|
@@ -12,7 +12,7 @@
|
|
12
12
|
*
|
13
13
|
* @packageDocumentation
|
14
14
|
*/
|
15
|
-
import Editor from './Editor';
|
15
|
+
import Editor, { EditorSettings } from './Editor';
|
16
16
|
export { default as EditorImage } from './EditorImage';
|
17
17
|
export * from './types';
|
18
18
|
export { default as getLocalizationTable } from './localizations/getLocalizationTable';
|
@@ -26,8 +26,9 @@ export * from './commands/lib';
|
|
26
26
|
export * from './tools/lib';
|
27
27
|
export * from './toolbar/lib';
|
28
28
|
export * from './rendering/lib';
|
29
|
+
export * from './testing/lib';
|
29
30
|
export { default as Pointer, PointerDevice } from './Pointer';
|
30
31
|
export { default as HTMLToolbar } from './toolbar/HTMLToolbar';
|
31
32
|
export { default as UndoRedoHistory } from './UndoRedoHistory';
|
32
|
-
export { Editor };
|
33
|
+
export { Editor, EditorSettings };
|
33
34
|
export default Editor;
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* The main entrypoint for the NPM package. Everything exported by this file
|
3
|
+
* is available through the [`js-draw` package](https://www.npmjs.com/package/js-draw).
|
4
|
+
*
|
5
|
+
* @example
|
6
|
+
* ```
|
7
|
+
* import { Editor, Vec3, Mat33 } from 'js-draw';
|
8
|
+
* ```
|
9
|
+
*
|
10
|
+
* @see
|
11
|
+
* {@link Editor}
|
12
|
+
*
|
13
|
+
* @packageDocumentation
|
14
|
+
*/
|
15
|
+
import Editor from './Editor.mjs';
|
16
|
+
export { default as EditorImage } from './EditorImage.mjs';
|
17
|
+
export * from './types.mjs';
|
18
|
+
export { default as getLocalizationTable } from './localizations/getLocalizationTable.mjs';
|
19
|
+
export * from './localization.mjs';
|
20
|
+
export { default as Color4 } from './Color4.mjs';
|
21
|
+
export { default as SVGLoader } from './SVGLoader.mjs';
|
22
|
+
export { default as Viewport } from './Viewport.mjs';
|
23
|
+
export * from './math/lib.mjs';
|
24
|
+
export * from './components/lib.mjs';
|
25
|
+
export * from './commands/lib.mjs';
|
26
|
+
export * from './tools/lib.mjs';
|
27
|
+
export * from './toolbar/lib.mjs';
|
28
|
+
export * from './rendering/lib.mjs';
|
29
|
+
export * from './testing/lib.mjs';
|
30
|
+
export { default as Pointer, PointerDevice } from './Pointer.mjs';
|
31
|
+
export { default as HTMLToolbar } from './toolbar/HTMLToolbar.mjs';
|
32
|
+
export { default as UndoRedoHistory } from './UndoRedoHistory.mjs';
|
33
|
+
export { Editor };
|
34
|
+
export default Editor;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { CommandLocalization } from './commands/localization';
|
2
|
+
import { ImageComponentLocalization } from './components/localization';
|
3
|
+
import { TextRendererLocalization } from './rendering/localization';
|
4
|
+
import { ToolbarLocalization } from './toolbar/localization';
|
5
|
+
import { ToolLocalization } from './tools/localization';
|
6
|
+
export interface EditorLocalization extends ToolbarLocalization, ToolLocalization, CommandLocalization, ImageComponentLocalization, TextRendererLocalization {
|
7
|
+
accessibilityInputInstructions: string;
|
8
|
+
undoAnnouncement: (actionDescription: string) => string;
|
9
|
+
redoAnnouncement: (actionDescription: string) => string;
|
10
|
+
doneLoading: string;
|
11
|
+
loading: (percentage: number) => string;
|
12
|
+
imageEditor: string;
|
13
|
+
}
|
14
|
+
export declare const defaultEditorLocalization: EditorLocalization;
|
@@ -1,8 +1,8 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
1
|
+
import { defaultCommandLocalization } from './commands/localization.mjs';
|
2
|
+
import { defaultComponentLocalization } from './components/localization.mjs';
|
3
|
+
import { defaultTextRendererLocalization } from './rendering/localization.mjs';
|
4
|
+
import { defaultToolbarLocalization } from './toolbar/localization.mjs';
|
5
|
+
import { defaultToolLocalization } from './tools/localization.mjs';
|
6
6
|
export const defaultEditorLocalization = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, defaultToolbarLocalization), defaultToolLocalization), defaultCommandLocalization), defaultComponentLocalization), defaultTextRendererLocalization), { accessibilityInputInstructions: [
|
7
7
|
'Press "t" to read the contents of the viewport as text.',
|
8
8
|
'Use the arrow keys to move the viewport, click and drag to draw strokes.',
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { defaultEditorLocalization } from '../localization.mjs';
|
2
2
|
// German localization
|
3
3
|
const localization = Object.assign(Object.assign({}, defaultEditorLocalization), { pen: 'Stift', eraser: 'Radierer', select: 'Auswahl', handTool: 'Verschieben', zoom: 'Vergrößerung', resetView: 'Ansicht zurücksetzen', thicknessLabel: 'Dicke: ', colorLabel: 'Farbe: ', fontLabel: 'Schriftart: ', resizeImageToSelection: 'Bildgröße an Auswahl anpassen', deleteSelection: 'Auswahl löschen', duplicateSelection: 'Auswahl duplizieren', undo: 'Rückgängig', redo: 'Wiederholen', pickColorFromScreen: 'Farbe von Bildschirm auswählen', clickToPickColorAnnouncement: 'Klicke auf den Bildschirm, um eine Farbe auszuwählen', selectionToolKeyboardShortcuts: 'Auswahl-Werkzeug: Verwende die Pfeiltasten, um ausgewählte Elemente zu verschieben und ‚i‘ und ‚o‘, um ihre Größe zu ändern.', touchPanning: 'Ansicht mit Touchscreen verschieben', anyDevicePanning: 'Ansicht mit jedem Eingabegerät verschieben', selectObjectType: 'Objekt-Typ: ', freehandPen: 'Freihand', arrowPen: 'Pfeil', linePen: 'Linie', outlinedRectanglePen: 'Umrissenes Rechteck', filledRectanglePen: 'Ausgefülltes Rechteck', dropdownShown: t => `Dropdown-Menü für ${t} angezeigt`, dropdownHidden: t => `Dropdown-Menü für ${t} versteckt`, zoomLevel: t => `Vergößerung: ${t}%`, colorChangedAnnouncement: t => `Farbe zu ${t} geändert`, penTool: t => `Stift ${t}`, selectionTool: 'Auswahl', eraserTool: 'Radiergummi', touchPanTool: 'Ansicht mit Touchscreen verschieben', twoFingerPanZoomTool: 'Ansicht verschieben und vergrößern', undoRedoTool: 'Rückgängig/Wiederholen', rightClickDragPanTool: 'Rechtsklick-Ziehen', pipetteTool: 'Farbe von Bildschirm auswählen', keyboardPanZoom: 'Tastaturkürzel zum Verschieben/Vergrößern der Ansicht', textTool: 'Text', enterTextToInsert: 'Einzufügender Text', toolEnabledAnnouncement: t => `${t} aktiviert`, toolDisabledAnnouncement: t => `${t} deaktiviert`, updatedViewport: 'Transformierte Ansicht', transformedElements: t => `${t} Element${1 === t ? '' : 'e'} transformiert`, resizeOutputCommand: t => `Bildgröße auf ${t.w}x${t.h} geändert`, addElementAction: t => `${t} hinzugefügt`, eraseAction: (t, e) => `${e} ${t} gelöscht`, duplicateAction: (t, e) => `${e} ${t} dupliziert`, inverseOf: t => `Umkehrung von ${t}`, elements: 'Elemente', erasedNoElements: 'Nichts entfernt', duplicatedNoElements: 'Nichts dupliziert', rotatedBy: t => `${Math.abs(t)} Grad ${t < 0 ? 'im Uhrzeigersinn' : 'gegen den Uhrzeigersinn'} gedreht`, movedLeft: 'Nacht links bewegt', movedUp: 'Nacht oben bewegt', movedDown: 'Nacht unten bewegt', movedRight: 'Nacht rechts bewegt', zoomedOut: 'Ansicht verkleinert', zoomedIn: 'Ansicht vergrößert', selectedElements: t => `${t} Element${1 === t ? '' : 'e'} ausgewählt`, stroke: 'Strich', svgObject: 'SVG-Objekt', text: t => `Text-Objekt: ${t}`, pathNodeCount: t => `Es gibt ${t} sichtbare Pfad-Objekte.`, textNodeCount: t => `Es gibt ${t} sichtbare Text-Knotenpunkte.`, textNode: t => `Text: ${t}`, rerenderAsText: 'Als Text darstellen', accessibilityInputInstructions: 'Drücke ‚t‘, um den Inhalt des Ansichtsfensters als Text zu lesen. Verwende die Pfeiltasten, um die Ansicht zu verschieben, und klicke und ziehe, um Striche zu zeichnen. Drücke ‚w‘ zum Vergrößern und ‚s‘ zum Verkleinern der Ansicht.', loading: t => `Laden ${t}%...`, doneLoading: 'Laden fertig', imageEditor: 'Bild-Editor', undoAnnouncement: t => `Rückgangig gemacht ${t}`, redoAnnouncement: t => `Wiederholt ${t}` });
|
4
4
|
export default localization;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { defaultEditorLocalization } from '../localization.mjs';
|
2
2
|
// Default localizations are already in English.
|
3
3
|
const localization = Object.assign({}, defaultEditorLocalization);
|
4
4
|
export default localization;
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { defaultEditorLocalization } from '../localization.mjs';
|
2
2
|
// A partial Spanish localization.
|
3
3
|
const localization = Object.assign(Object.assign({}, defaultEditorLocalization), {
|
4
4
|
// Strings for the main editor interface
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
1
|
+
import { defaultEditorLocalization } from '../localization.mjs';
|
2
|
+
import de from './de.mjs';
|
3
|
+
import en from './en.mjs';
|
4
|
+
import es from './es.mjs';
|
5
5
|
const allLocales = {
|
6
6
|
de,
|
7
7
|
en,
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import Mat33 from './Mat33';
|
2
|
+
import Rect2 from './Rect2';
|
3
|
+
import { Vec2, Point2 } from './Vec2';
|
4
|
+
interface IntersectionResult {
|
5
|
+
point: Point2;
|
6
|
+
t: number;
|
7
|
+
}
|
8
|
+
export default class LineSegment2 {
|
9
|
+
private readonly point1;
|
10
|
+
private readonly point2;
|
11
|
+
readonly direction: Vec2;
|
12
|
+
readonly length: number;
|
13
|
+
readonly bbox: Rect2;
|
14
|
+
constructor(point1: Point2, point2: Point2);
|
15
|
+
get p1(): Point2;
|
16
|
+
get p2(): Point2;
|
17
|
+
get(t: number): Point2;
|
18
|
+
intersection(other: LineSegment2): IntersectionResult | null;
|
19
|
+
intersects(other: LineSegment2): boolean;
|
20
|
+
closestPointTo(target: Point2): import("./Vec3").default;
|
21
|
+
transformedBy(affineTransfm: Mat33): LineSegment2;
|
22
|
+
toString(): string;
|
23
|
+
}
|
24
|
+
export {};
|
@@ -0,0 +1,118 @@
|
|
1
|
+
import { Point2, Vec2 } from './Vec2';
|
2
|
+
import Vec3 from './Vec3';
|
3
|
+
export type Mat33Array = [
|
4
|
+
number,
|
5
|
+
number,
|
6
|
+
number,
|
7
|
+
number,
|
8
|
+
number,
|
9
|
+
number,
|
10
|
+
number,
|
11
|
+
number,
|
12
|
+
number
|
13
|
+
];
|
14
|
+
/**
|
15
|
+
* Represents a three dimensional linear transformation or
|
16
|
+
* a two-dimensional affine transformation. (An affine transformation scales/rotates/shears
|
17
|
+
* **and** translates while a linear transformation just scales/rotates/shears).
|
18
|
+
*/
|
19
|
+
export default class Mat33 {
|
20
|
+
readonly a1: number;
|
21
|
+
readonly a2: number;
|
22
|
+
readonly a3: number;
|
23
|
+
readonly b1: number;
|
24
|
+
readonly b2: number;
|
25
|
+
readonly b3: number;
|
26
|
+
readonly c1: number;
|
27
|
+
readonly c2: number;
|
28
|
+
readonly c3: number;
|
29
|
+
private readonly rows;
|
30
|
+
/**
|
31
|
+
* Creates a matrix from inputs in the form,
|
32
|
+
* ```
|
33
|
+
* ⎡ a1 a2 a3 ⎤
|
34
|
+
* ⎢ b1 b2 b3 ⎥
|
35
|
+
* ⎣ c1 c2 c3 ⎦
|
36
|
+
* ```
|
37
|
+
*/
|
38
|
+
constructor(a1: number, a2: number, a3: number, b1: number, b2: number, b3: number, c1: number, c2: number, c3: number);
|
39
|
+
/**
|
40
|
+
* Creates a matrix from the given rows:
|
41
|
+
* ```
|
42
|
+
* ⎡ r1.x r1.y r1.z ⎤
|
43
|
+
* ⎢ r2.x r2.y r2.z ⎥
|
44
|
+
* ⎣ r3.x r3.y r3.z ⎦
|
45
|
+
* ```
|
46
|
+
*/
|
47
|
+
static ofRows(r1: Vec3, r2: Vec3, r3: Vec3): Mat33;
|
48
|
+
static identity: Mat33;
|
49
|
+
/**
|
50
|
+
* Either returns the inverse of this, or, if this matrix is singular/uninvertable,
|
51
|
+
* returns Mat33.identity.
|
52
|
+
*
|
53
|
+
* This may cache the computed inverse and return the cached version instead of recomputing
|
54
|
+
* it.
|
55
|
+
*/
|
56
|
+
inverse(): Mat33;
|
57
|
+
invertable(): boolean;
|
58
|
+
private cachedInverse;
|
59
|
+
private computeInverse;
|
60
|
+
transposed(): Mat33;
|
61
|
+
rightMul(other: Mat33): Mat33;
|
62
|
+
/**
|
63
|
+
* Applies this as an affine transformation to the given vector.
|
64
|
+
* Returns a transformed version of `other`.
|
65
|
+
*/
|
66
|
+
transformVec2(other: Vec2): Vec2;
|
67
|
+
/**
|
68
|
+
* Applies this as a linear transformation to the given vector (doesn't translate).
|
69
|
+
* This is the standard way of transforming vectors in ℝ³.
|
70
|
+
*/
|
71
|
+
transformVec3(other: Vec3): Vec3;
|
72
|
+
/** @returns true iff this is the identity matrix. */
|
73
|
+
isIdentity(): boolean;
|
74
|
+
/** Returns true iff this = other ± fuzz */
|
75
|
+
eq(other: Mat33, fuzz?: number): boolean;
|
76
|
+
toString(): string;
|
77
|
+
/**
|
78
|
+
* ```
|
79
|
+
* result[0] = top left element
|
80
|
+
* result[1] = element at row zero, column 1
|
81
|
+
* ...
|
82
|
+
* ```
|
83
|
+
*/
|
84
|
+
toArray(): Mat33Array;
|
85
|
+
/**
|
86
|
+
* @example
|
87
|
+
* ```
|
88
|
+
* new Mat33(
|
89
|
+
* 1, 2, 3,
|
90
|
+
* 4, 5, 6,
|
91
|
+
* 7, 8, 9,
|
92
|
+
* ).mapEntries(component => component - 1);
|
93
|
+
* // → ⎡ 0, 1, 2 ⎤
|
94
|
+
* // ⎢ 3, 4, 5 ⎥
|
95
|
+
* // ⎣ 6, 7, 8 ⎦
|
96
|
+
* ```
|
97
|
+
*/
|
98
|
+
mapEntries(mapping: (component: number) => number): Mat33;
|
99
|
+
/** Estimate the scale factor of this matrix (based on the first row). */
|
100
|
+
getScaleFactor(): number;
|
101
|
+
/** Constructs a 3x3 translation matrix (for translating `Vec2`s) */
|
102
|
+
static translation(amount: Vec2): Mat33;
|
103
|
+
static zRotation(radians: number, center?: Point2): Mat33;
|
104
|
+
static scaling2D(amount: number | Vec2, center?: Point2): Mat33;
|
105
|
+
/** @see {@link fromCSSMatrix} */
|
106
|
+
toCSSMatrix(): string;
|
107
|
+
/**
|
108
|
+
* Converts a CSS-form `matrix(a, b, c, d, e, f)` to a Mat33.
|
109
|
+
*
|
110
|
+
* Note that such a matrix has the form,
|
111
|
+
* ```
|
112
|
+
* ⎡ a c e ⎤
|
113
|
+
* ⎢ b d f ⎥
|
114
|
+
* ⎣ 0 0 1 ⎦
|
115
|
+
* ```
|
116
|
+
*/
|
117
|
+
static fromCSSMatrix(cssString: string): Mat33;
|
118
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
import { Vec2 } from './Vec2.mjs';
|
2
|
+
import Vec3 from './Vec3.mjs';
|
3
3
|
/**
|
4
4
|
* Represents a three dimensional linear transformation or
|
5
5
|
* a two-dimensional affine transformation. (An affine transformation scales/rotates/shears
|