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
@@ -0,0 +1,71 @@
|
|
1
|
+
import { Bezier } from 'bezier-js';
|
2
|
+
import { RenderablePathSpec } from '../rendering/renderers/AbstractRenderer';
|
3
|
+
import RenderingStyle from '../rendering/RenderingStyle';
|
4
|
+
import LineSegment2 from './LineSegment2';
|
5
|
+
import Mat33 from './Mat33';
|
6
|
+
import Rect2 from './Rect2';
|
7
|
+
import { Point2 } from './Vec2';
|
8
|
+
export declare enum PathCommandType {
|
9
|
+
LineTo = 0,
|
10
|
+
MoveTo = 1,
|
11
|
+
CubicBezierTo = 2,
|
12
|
+
QuadraticBezierTo = 3
|
13
|
+
}
|
14
|
+
export interface CubicBezierPathCommand {
|
15
|
+
kind: PathCommandType.CubicBezierTo;
|
16
|
+
controlPoint1: Point2;
|
17
|
+
controlPoint2: Point2;
|
18
|
+
endPoint: Point2;
|
19
|
+
}
|
20
|
+
export interface QuadraticBezierPathCommand {
|
21
|
+
kind: PathCommandType.QuadraticBezierTo;
|
22
|
+
controlPoint: Point2;
|
23
|
+
endPoint: Point2;
|
24
|
+
}
|
25
|
+
export interface LinePathCommand {
|
26
|
+
kind: PathCommandType.LineTo;
|
27
|
+
point: Point2;
|
28
|
+
}
|
29
|
+
export interface MoveToPathCommand {
|
30
|
+
kind: PathCommandType.MoveTo;
|
31
|
+
point: Point2;
|
32
|
+
}
|
33
|
+
export type PathCommand = CubicBezierPathCommand | LinePathCommand | QuadraticBezierPathCommand | MoveToPathCommand;
|
34
|
+
interface IntersectionResult {
|
35
|
+
curve: LineSegment2 | Bezier;
|
36
|
+
parameterValue: number;
|
37
|
+
point: Point2;
|
38
|
+
}
|
39
|
+
export default class Path {
|
40
|
+
readonly startPoint: Point2;
|
41
|
+
readonly parts: PathCommand[];
|
42
|
+
readonly bbox: Rect2;
|
43
|
+
constructor(startPoint: Point2, parts: PathCommand[]);
|
44
|
+
private cachedGeometry;
|
45
|
+
get geometry(): Array<LineSegment2 | Bezier>;
|
46
|
+
private cachedPolylineApproximation;
|
47
|
+
polylineApproximation(): LineSegment2[];
|
48
|
+
static computeBBoxForSegment(startPoint: Point2, part: PathCommand): Rect2;
|
49
|
+
intersection(line: LineSegment2): IntersectionResult[];
|
50
|
+
private static mapPathCommand;
|
51
|
+
mapPoints(mapping: (point: Point2) => Point2): Path;
|
52
|
+
transformedBy(affineTransfm: Mat33): Path;
|
53
|
+
union(other: Path | null): Path;
|
54
|
+
private getEndPoint;
|
55
|
+
roughlyIntersects(rect: Rect2, strokeWidth?: number): boolean;
|
56
|
+
closedRoughlyIntersects(rect: Rect2): boolean;
|
57
|
+
static fromRect(rect: Rect2, lineWidth?: number | null): Path;
|
58
|
+
static fromRenderable(renderable: RenderablePathSpec): Path;
|
59
|
+
toRenderable(fill: RenderingStyle): RenderablePathSpec;
|
60
|
+
/**
|
61
|
+
* @returns a Path that, when rendered, looks roughly equivalent to the given path.
|
62
|
+
*/
|
63
|
+
static visualEquivalent(renderablePath: RenderablePathSpec, visibleRect: Rect2): RenderablePathSpec;
|
64
|
+
private cachedStringVersion;
|
65
|
+
toString(useNonAbsCommands?: boolean): string;
|
66
|
+
serialize(): string;
|
67
|
+
static toString(startPoint: Point2, parts: PathCommand[], onlyAbsCommands?: boolean): string;
|
68
|
+
static fromString(pathString: string): Path;
|
69
|
+
static empty: Path;
|
70
|
+
}
|
71
|
+
export {};
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { Bezier } from 'bezier-js';
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
2
|
+
import { toRoundedString, toStringOfSamePrecision } from './rounding.mjs';
|
3
|
+
import LineSegment2 from './LineSegment2.mjs';
|
4
|
+
import Mat33 from './Mat33.mjs';
|
5
|
+
import Rect2 from './Rect2.mjs';
|
6
|
+
import { Vec2 } from './Vec2.mjs';
|
7
7
|
export var PathCommandType;
|
8
8
|
(function (PathCommandType) {
|
9
9
|
PathCommandType[PathCommandType["LineTo"] = 0] = "LineTo";
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import LineSegment2 from './LineSegment2';
|
2
|
+
import Mat33 from './Mat33';
|
3
|
+
import { Point2, Vec2 } from './Vec2';
|
4
|
+
/** An object that can be converted to a Rect2. */
|
5
|
+
export interface RectTemplate {
|
6
|
+
x: number;
|
7
|
+
y: number;
|
8
|
+
w?: number;
|
9
|
+
h?: number;
|
10
|
+
width?: number;
|
11
|
+
height?: number;
|
12
|
+
}
|
13
|
+
export default class Rect2 {
|
14
|
+
readonly x: number;
|
15
|
+
readonly y: number;
|
16
|
+
readonly w: number;
|
17
|
+
readonly h: number;
|
18
|
+
readonly topLeft: Point2;
|
19
|
+
readonly size: Vec2;
|
20
|
+
readonly bottomRight: Point2;
|
21
|
+
readonly center: Point2;
|
22
|
+
readonly area: number;
|
23
|
+
constructor(x: number, y: number, w: number, h: number);
|
24
|
+
translatedBy(vec: Vec2): Rect2;
|
25
|
+
resizedTo(size: Vec2): Rect2;
|
26
|
+
containsPoint(other: Point2): boolean;
|
27
|
+
containsRect(other: Rect2): boolean;
|
28
|
+
intersects(other: Rect2): boolean;
|
29
|
+
intersection(other: Rect2): Rect2 | null;
|
30
|
+
union(other: Rect2): Rect2;
|
31
|
+
divideIntoGrid(columns: number, rows: number): Rect2[];
|
32
|
+
grownToPoint(point: Point2, margin?: number): Rect2;
|
33
|
+
grownBy(margin: number): Rect2;
|
34
|
+
getClosestPointOnBoundaryTo(target: Point2): import("./Vec3").default;
|
35
|
+
get corners(): Point2[];
|
36
|
+
get maxDimension(): number;
|
37
|
+
get topRight(): import("./Vec3").default;
|
38
|
+
get bottomLeft(): import("./Vec3").default;
|
39
|
+
get width(): number;
|
40
|
+
get height(): number;
|
41
|
+
getEdges(): LineSegment2[];
|
42
|
+
transformedBoundingBox(affineTransform: Mat33): Rect2;
|
43
|
+
/** @return true iff this is equal to [other] ± fuzz */
|
44
|
+
eq(other: Rect2, fuzz?: number): boolean;
|
45
|
+
toString(): string;
|
46
|
+
static fromCorners(corner1: Point2, corner2: Point2): Rect2;
|
47
|
+
static bboxOf(points: Point2[], margin?: number): Rect2;
|
48
|
+
static union(...rects: Rect2[]): Rect2;
|
49
|
+
static of(template: RectTemplate): Rect2;
|
50
|
+
static empty: Rect2;
|
51
|
+
static unitSquare: Rect2;
|
52
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import Mat33 from './Mat33';
|
2
|
+
import Vec3 from './Vec3';
|
3
|
+
export default class Triangle {
|
4
|
+
readonly vertex1: Vec3;
|
5
|
+
readonly vertex2: Vec3;
|
6
|
+
readonly vertex3: Vec3;
|
7
|
+
constructor(vertex1: Vec3, vertex2: Vec3, vertex3: Vec3);
|
8
|
+
map(mapping: (vertex: Vec3) => Vec3): Triangle;
|
9
|
+
transformed2DBy(affineTransform: Mat33): Triangle;
|
10
|
+
transformedBy(linearTransform: Mat33): Triangle;
|
11
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import Vec3 from './Vec3';
|
2
|
+
export declare namespace Vec2 {
|
3
|
+
const of: (x: number, y: number) => Vec2;
|
4
|
+
const ofXY: ({ x, y }: {
|
5
|
+
x: number;
|
6
|
+
y: number;
|
7
|
+
}) => Vec2;
|
8
|
+
const unitX: Vec3;
|
9
|
+
const unitY: Vec3;
|
10
|
+
const zero: Vec3;
|
11
|
+
}
|
12
|
+
export type Point2 = Vec3;
|
13
|
+
export type Vec2 = Vec3;
|
@@ -0,0 +1,106 @@
|
|
1
|
+
/**
|
2
|
+
* A vector with three components. Can also be used to represent a two-component vector.
|
3
|
+
*
|
4
|
+
* A `Vec3` is immutable.
|
5
|
+
*/
|
6
|
+
export default class Vec3 {
|
7
|
+
readonly x: number;
|
8
|
+
readonly y: number;
|
9
|
+
readonly z: number;
|
10
|
+
private constructor();
|
11
|
+
/** Returns the x, y components of this. */
|
12
|
+
get xy(): {
|
13
|
+
x: number;
|
14
|
+
y: number;
|
15
|
+
};
|
16
|
+
static of(x: number, y: number, z: number): Vec3;
|
17
|
+
/** Returns this' `idx`th component. For example, `Vec3.of(1, 2, 3).at(1) → 2`. */
|
18
|
+
at(idx: number): number;
|
19
|
+
/** Alias for this.magnitude. */
|
20
|
+
length(): number;
|
21
|
+
magnitude(): number;
|
22
|
+
magnitudeSquared(): number;
|
23
|
+
/**
|
24
|
+
* Return this' angle in the XY plane (treats this as a Vec2).
|
25
|
+
*
|
26
|
+
* This is equivalent to `Math.atan2(vec.y, vec.x)`.
|
27
|
+
*/
|
28
|
+
angle(): number;
|
29
|
+
/**
|
30
|
+
* Returns a unit vector in the same direction as this.
|
31
|
+
*
|
32
|
+
* If `this` has zero length, the resultant vector has `NaN` components.
|
33
|
+
*/
|
34
|
+
normalized(): Vec3;
|
35
|
+
/** @returns A copy of `this` multiplied by a scalar. */
|
36
|
+
times(c: number): Vec3;
|
37
|
+
plus(v: Vec3): Vec3;
|
38
|
+
minus(v: Vec3): Vec3;
|
39
|
+
dot(other: Vec3): number;
|
40
|
+
cross(other: Vec3): Vec3;
|
41
|
+
/**
|
42
|
+
* If `other` is a `Vec3`, multiplies `this` component-wise by `other`. Otherwise,
|
43
|
+
* if `other is a `number`, returns the result of scalar multiplication.
|
44
|
+
*
|
45
|
+
* @example
|
46
|
+
* ```
|
47
|
+
* Vec3.of(1, 2, 3).scale(Vec3.of(2, 4, 6)); // → Vec3(2, 8, 18)
|
48
|
+
* ```
|
49
|
+
*/
|
50
|
+
scale(other: Vec3 | number): Vec3;
|
51
|
+
/**
|
52
|
+
* Returns a vector orthogonal to this. If this is a Vec2, returns `this` rotated
|
53
|
+
* 90 degrees counter-clockwise.
|
54
|
+
*/
|
55
|
+
orthog(): Vec3;
|
56
|
+
/** Returns this plus a vector of length `distance` in `direction`. */
|
57
|
+
extend(distance: number, direction: Vec3): Vec3;
|
58
|
+
/** Returns a vector `fractionTo` of the way to target from this. */
|
59
|
+
lerp(target: Vec3, fractionTo: number): Vec3;
|
60
|
+
/**
|
61
|
+
* `zip` Maps a component of this and a corresponding component of
|
62
|
+
* `other` to a component of the output vector.
|
63
|
+
*
|
64
|
+
* @example
|
65
|
+
* ```
|
66
|
+
* const a = Vec3.of(1, 2, 3);
|
67
|
+
* const b = Vec3.of(0.5, 2.1, 2.9);
|
68
|
+
*
|
69
|
+
* const zipped = a.zip(b, (aComponent, bComponent) => {
|
70
|
+
* return Math.min(aComponent, bComponent);
|
71
|
+
* });
|
72
|
+
*
|
73
|
+
* console.log(zipped.toString()); // → Vec(0.5, 2, 2.9)
|
74
|
+
* ```
|
75
|
+
*/
|
76
|
+
zip(other: Vec3, zip: (componentInThis: number, componentInOther: number) => number): Vec3;
|
77
|
+
/**
|
78
|
+
* Returns a vector with each component acted on by `fn`.
|
79
|
+
*
|
80
|
+
* @example
|
81
|
+
* ```
|
82
|
+
* console.log(Vec3.of(1, 2, 3).map(val => val + 1)); // → Vec(2, 3, 4)
|
83
|
+
* ```
|
84
|
+
*/
|
85
|
+
map(fn: (component: number, index: number) => number): Vec3;
|
86
|
+
asArray(): [number, number, number];
|
87
|
+
/**
|
88
|
+
* [fuzz] The maximum difference between two components for this and [other]
|
89
|
+
* to be considered equal.
|
90
|
+
*
|
91
|
+
* @example
|
92
|
+
* ```
|
93
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 100); // → true
|
94
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 0.1); // → false
|
95
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3); // → true
|
96
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 3.01); // → true
|
97
|
+
* Vec3.of(1, 2, 3).eq(Vec3.of(4, 5, 6), 2.99); // → false
|
98
|
+
* ```
|
99
|
+
*/
|
100
|
+
eq(other: Vec3, fuzz?: number): boolean;
|
101
|
+
toString(): string;
|
102
|
+
static unitX: Vec3;
|
103
|
+
static unitY: Vec3;
|
104
|
+
static unitZ: Vec3;
|
105
|
+
static zero: Vec3;
|
106
|
+
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import LineSegment2 from './LineSegment2.mjs';
|
2
|
+
import Mat33 from './Mat33.mjs';
|
3
|
+
import Path from './Path.mjs';
|
4
|
+
import Rect2 from './Rect2.mjs';
|
5
|
+
import { Vec2 } from './Vec2.mjs';
|
6
|
+
import Vec3 from './Vec3.mjs';
|
7
|
+
export { LineSegment2, Mat33, Path, Rect2, Vec3, Vec2, };
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export declare const cleanUpNumber: (text: string) => string;
|
2
|
+
export declare const toRoundedString: (num: number) => string;
|
3
|
+
export declare const getLenAfterDecimal: (numberAsString: string) => number;
|
4
|
+
export declare const toStringOfSamePrecision: (num: number, ...references: string[]) => string;
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import AbstractRenderer from './renderers/AbstractRenderer';
|
2
|
+
import { Editor } from '../Editor';
|
3
|
+
import { Point2 } from '../math/Vec2';
|
4
|
+
import RenderingCache from './caching/RenderingCache';
|
5
|
+
import Color4 from '../Color4';
|
6
|
+
export declare enum RenderingMode {
|
7
|
+
DummyRenderer = 0,
|
8
|
+
CanvasRenderer = 1
|
9
|
+
}
|
10
|
+
/**
|
11
|
+
* Handles `HTMLCanvasElement`s (or other drawing surfaces if being used) used to display the editor's contents.
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ```
|
15
|
+
* const editor = new Editor(document.body);
|
16
|
+
* const w = editor.display.width;
|
17
|
+
* const h = editor.display.height;
|
18
|
+
* const center = Vec2.of(w / 2, h / 2);
|
19
|
+
* const colorAtCenter = editor.display.getColorAt(center);
|
20
|
+
* ```
|
21
|
+
*/
|
22
|
+
export default class Display {
|
23
|
+
private editor;
|
24
|
+
private parent;
|
25
|
+
private dryInkRenderer;
|
26
|
+
private wetInkRenderer;
|
27
|
+
private textRenderer;
|
28
|
+
private textRerenderOutput;
|
29
|
+
private cache;
|
30
|
+
private resizeSurfacesCallback?;
|
31
|
+
private flattenCallback?;
|
32
|
+
/** @internal */
|
33
|
+
constructor(editor: Editor, mode: RenderingMode, parent: HTMLElement | null);
|
34
|
+
/**
|
35
|
+
* @returns the visible width of the display (e.g. how much
|
36
|
+
* space the display's element takes up in the x direction
|
37
|
+
* in the DOM).
|
38
|
+
*/
|
39
|
+
get width(): number;
|
40
|
+
get height(): number;
|
41
|
+
/** @internal */
|
42
|
+
getCache(): RenderingCache;
|
43
|
+
/**
|
44
|
+
* @returns the color at the given point on the dry ink renderer, or `null` if `screenPos`
|
45
|
+
* is not on the display.
|
46
|
+
*/
|
47
|
+
getColorAt: (_screenPos: Point2) => Color4 | null;
|
48
|
+
private initializeCanvasRendering;
|
49
|
+
private initializeTextRendering;
|
50
|
+
/**
|
51
|
+
* Rerenders the text-based display.
|
52
|
+
* The text-based display is intended for screen readers and can be navigated to by pressing `tab`.
|
53
|
+
*/
|
54
|
+
rerenderAsText(): void;
|
55
|
+
/**
|
56
|
+
* Clears the drawing surfaces and otherwise prepares for a rerender.
|
57
|
+
*
|
58
|
+
* @returns the dry ink renderer.
|
59
|
+
*/
|
60
|
+
startRerender(): AbstractRenderer;
|
61
|
+
/**
|
62
|
+
* If `draftMode`, the dry ink renderer is configured to render
|
63
|
+
* low-quality output.
|
64
|
+
*/
|
65
|
+
setDraftMode(draftMode: boolean): void;
|
66
|
+
/** @internal */
|
67
|
+
getDryInkRenderer(): AbstractRenderer;
|
68
|
+
/**
|
69
|
+
* @returns The renderer used for showing action previews (e.g. an unfinished stroke).
|
70
|
+
* The `wetInkRenderer`'s surface is stacked above the `dryInkRenderer`'s.
|
71
|
+
*/
|
72
|
+
getWetInkRenderer(): AbstractRenderer;
|
73
|
+
/** Re-renders the contents of the wetInkRenderer onto the dryInkRenderer. */
|
74
|
+
flatten(): void;
|
75
|
+
}
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import
|
1
|
+
import CanvasRenderer from './renderers/CanvasRenderer.mjs';
|
2
|
+
import { EditorEventType } from '../types.mjs';
|
3
|
+
import DummyRenderer from './renderers/DummyRenderer.mjs';
|
4
|
+
import { Vec2 } from '../math/Vec2.mjs';
|
5
|
+
import RenderingCache from './caching/RenderingCache.mjs';
|
6
|
+
import TextOnlyRenderer from './renderers/TextOnlyRenderer.mjs';
|
7
|
+
import Color4 from '../Color4.mjs';
|
8
8
|
export var RenderingMode;
|
9
9
|
(function (RenderingMode) {
|
10
10
|
RenderingMode[RenderingMode["DummyRenderer"] = 0] = "DummyRenderer";
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import Color4 from '../Color4';
|
2
|
+
interface RenderingStyle {
|
3
|
+
fill: Color4;
|
4
|
+
stroke?: {
|
5
|
+
color: Color4;
|
6
|
+
width: number;
|
7
|
+
};
|
8
|
+
}
|
9
|
+
export default RenderingStyle;
|
10
|
+
export declare const cloneStyle: (style: RenderingStyle) => {
|
11
|
+
fill: Color4;
|
12
|
+
stroke: {
|
13
|
+
color: Color4;
|
14
|
+
width: number;
|
15
|
+
} | undefined;
|
16
|
+
};
|
17
|
+
export declare const stylesEqual: (a: RenderingStyle, b: RenderingStyle) => boolean;
|
18
|
+
export declare const styleToJSON: (style: RenderingStyle) => {
|
19
|
+
fill: string;
|
20
|
+
stroke: {
|
21
|
+
color: string;
|
22
|
+
width: number;
|
23
|
+
} | undefined;
|
24
|
+
};
|
25
|
+
export declare const styleFromJSON: (json: Record<string, any>) => {
|
26
|
+
fill: Color4;
|
27
|
+
stroke: {
|
28
|
+
color: Color4;
|
29
|
+
width: any;
|
30
|
+
} | undefined;
|
31
|
+
};
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import RenderingStyle from './RenderingStyle';
|
2
|
+
export interface TextStyle {
|
3
|
+
size: number;
|
4
|
+
fontFamily: string;
|
5
|
+
fontWeight?: string;
|
6
|
+
fontVariant?: string;
|
7
|
+
renderingStyle: RenderingStyle;
|
8
|
+
}
|
9
|
+
export default TextStyle;
|
10
|
+
export declare const cloneTextStyle: (style: TextStyle) => {
|
11
|
+
renderingStyle: {
|
12
|
+
fill: import("../Color4").default;
|
13
|
+
stroke: {
|
14
|
+
color: import("../Color4").default;
|
15
|
+
width: number;
|
16
|
+
} | undefined;
|
17
|
+
};
|
18
|
+
size: number;
|
19
|
+
fontFamily: string;
|
20
|
+
fontWeight?: string | undefined;
|
21
|
+
fontVariant?: string | undefined;
|
22
|
+
};
|
23
|
+
export declare const textStyleFromJSON: (json: any) => TextStyle;
|
24
|
+
export declare const textStyleToJSON: (style: TextStyle) => {
|
25
|
+
renderingStyle: {
|
26
|
+
fill: string;
|
27
|
+
stroke: {
|
28
|
+
color: string;
|
29
|
+
width: number;
|
30
|
+
} | undefined;
|
31
|
+
};
|
32
|
+
size: number;
|
33
|
+
fontFamily: string;
|
34
|
+
fontWeight?: string | undefined;
|
35
|
+
fontVariant?: string | undefined;
|
36
|
+
};
|
package/dist/{src/rendering/TextRenderingStyle.js → mjs/src/rendering/TextRenderingStyle.mjs}
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { cloneStyle, styleFromJSON, styleToJSON } from './RenderingStyle.mjs';
|
2
2
|
export const cloneTextStyle = (style) => {
|
3
3
|
return Object.assign(Object.assign({}, style), { renderingStyle: cloneStyle(style.renderingStyle) });
|
4
4
|
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import Mat33 from '../../math/Mat33';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
4
|
+
import { BeforeDeallocCallback, CacheState } from './types';
|
5
|
+
export default class CacheRecord {
|
6
|
+
private onBeforeDeallocCallback;
|
7
|
+
private cacheState;
|
8
|
+
private renderer;
|
9
|
+
private lastUsedCycle;
|
10
|
+
private allocd;
|
11
|
+
allocCount: number;
|
12
|
+
constructor(onBeforeDeallocCallback: BeforeDeallocCallback | null, cacheState: CacheState);
|
13
|
+
startRender(): AbstractRenderer;
|
14
|
+
dealloc(): void;
|
15
|
+
isAllocd(): boolean;
|
16
|
+
realloc(newDeallocCallback: BeforeDeallocCallback): void;
|
17
|
+
getLastUsedCycle(): number;
|
18
|
+
getTransform(drawTo: Rect2): Mat33;
|
19
|
+
setRenderingRegion(drawTo: Rect2): void;
|
20
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { BeforeDeallocCallback, CacheProps, CacheState } from './types';
|
2
|
+
import CacheRecord from './CacheRecord';
|
3
|
+
import Rect2 from '../../math/Rect2';
|
4
|
+
export declare class CacheRecordManager {
|
5
|
+
private cacheRecords;
|
6
|
+
private maxCanvases;
|
7
|
+
private cacheState;
|
8
|
+
constructor(cacheProps: CacheProps);
|
9
|
+
setSharedState(state: CacheState): void;
|
10
|
+
allocCanvas(drawTo: Rect2, onDealloc: BeforeDeallocCallback): CacheRecord;
|
11
|
+
private getLeastRecentlyUsedRecord;
|
12
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { ImageNode } from '../../EditorImage';
|
2
|
+
import Viewport from '../../Viewport';
|
3
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
4
|
+
import { CacheProps } from './types';
|
5
|
+
export default class RenderingCache {
|
6
|
+
private sharedState;
|
7
|
+
private recordManager;
|
8
|
+
private rootNode;
|
9
|
+
constructor(cacheProps: CacheProps);
|
10
|
+
render(screenRenderer: AbstractRenderer, image: ImageNode, viewport: Viewport): void;
|
11
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
1
|
+
import Rect2 from '../../math/Rect2.mjs';
|
2
|
+
import RenderingCacheNode from './RenderingCacheNode.mjs';
|
3
|
+
import { CacheRecordManager } from './CacheRecordManager.mjs';
|
4
4
|
export default class RenderingCache {
|
5
5
|
constructor(cacheProps) {
|
6
6
|
this.recordManager = new CacheRecordManager(cacheProps);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { ImageNode } from '../../EditorImage';
|
2
|
+
import Rect2 from '../../math/Rect2';
|
3
|
+
import Viewport from '../../Viewport';
|
4
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
5
|
+
import { CacheState } from './types';
|
6
|
+
export default class RenderingCacheNode {
|
7
|
+
readonly region: Rect2;
|
8
|
+
private readonly cacheState;
|
9
|
+
private instantiatedChildren;
|
10
|
+
private parent;
|
11
|
+
private cachedRenderer;
|
12
|
+
private renderedIds;
|
13
|
+
private renderedMaxZIndex;
|
14
|
+
constructor(region: Rect2, cacheState: CacheState);
|
15
|
+
generateParent(): RenderingCacheNode;
|
16
|
+
private generateChildren;
|
17
|
+
private getChildren;
|
18
|
+
smallestChildContaining(rect: Rect2): RenderingCacheNode | null;
|
19
|
+
private renderingWouldBeHighEnoughResolution;
|
20
|
+
private allChildrenCanRender;
|
21
|
+
private computeSortedByLeafIds;
|
22
|
+
private idsOfIntersecting;
|
23
|
+
private allRenderedIdsIn;
|
24
|
+
private renderingIsUpToDate;
|
25
|
+
renderItems(screenRenderer: AbstractRenderer, items: ImageNode[], viewport: Viewport): void;
|
26
|
+
private isEmpty;
|
27
|
+
private onRegionDealloc;
|
28
|
+
private checkRep;
|
29
|
+
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// A cache record with sub-nodes.
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
2
|
+
import Color4 from '../../Color4.mjs';
|
3
|
+
import { sortLeavesByZIndex } from '../../EditorImage.mjs';
|
4
|
+
import Rect2 from '../../math/Rect2.mjs';
|
5
5
|
// 3x3 divisions for each node.
|
6
6
|
const cacheDivisionSize = 3;
|
7
7
|
// True: Show rendering updates.
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import DummyRenderer from '../renderers/DummyRenderer';
|
2
|
+
import RenderingCache from './RenderingCache';
|
3
|
+
import { CacheProps } from './types';
|
4
|
+
type RenderAllocCallback = (renderer: DummyRenderer) => void;
|
5
|
+
export declare const createCache: (onRenderAlloc?: RenderAllocCallback, cacheOptions?: Partial<CacheProps>) => {
|
6
|
+
cache: RenderingCache;
|
7
|
+
editor: import("../../Editor").Editor;
|
8
|
+
};
|
9
|
+
export {};
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import
|
3
|
-
import
|
4
|
-
import
|
1
|
+
import { Vec2 } from '../../math/Vec2.mjs';
|
2
|
+
import DummyRenderer from '../renderers/DummyRenderer.mjs';
|
3
|
+
import createEditor from '../../testing/createEditor.mjs';
|
4
|
+
import RenderingCache from './RenderingCache.mjs';
|
5
5
|
// Override any default test options with [cacheOptions]
|
6
6
|
export const createCache = (onRenderAlloc, cacheOptions) => {
|
7
7
|
const editor = createEditor();
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Vec2 } from '../../math/Vec2';
|
2
|
+
import AbstractRenderer from '../renderers/AbstractRenderer';
|
3
|
+
import { CacheRecordManager } from './CacheRecordManager';
|
4
|
+
export type CacheAddress = number;
|
5
|
+
export type BeforeDeallocCallback = () => void;
|
6
|
+
export interface CacheProps {
|
7
|
+
createRenderer(): AbstractRenderer;
|
8
|
+
isOfCorrectType(renderer: AbstractRenderer): boolean;
|
9
|
+
blockResolution: Vec2;
|
10
|
+
cacheSize: number;
|
11
|
+
maxScale: number;
|
12
|
+
minProportionalRenderTimePerCache: number;
|
13
|
+
minProportionalRenderTimeToUseCache: number;
|
14
|
+
}
|
15
|
+
export interface CacheState {
|
16
|
+
currentRenderingCycle: number;
|
17
|
+
props: CacheProps;
|
18
|
+
recordManager: CacheRecordManager;
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -1,3 +1,5 @@
|
|
1
1
|
export { default as AbstractRenderer } from './renderers/AbstractRenderer';
|
2
2
|
export { default as DummyRenderer } from './renderers/DummyRenderer';
|
3
|
+
export { default as SVGRenderer } from './renderers/SVGRenderer';
|
4
|
+
export { default as CanvasRenderer } from './renderers/CanvasRenderer';
|
3
5
|
export { default as Display } from './Display';
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { default as AbstractRenderer } from './renderers/AbstractRenderer.mjs';
|
2
|
+
export { default as DummyRenderer } from './renderers/DummyRenderer.mjs';
|
3
|
+
export { default as SVGRenderer } from './renderers/SVGRenderer.mjs';
|
4
|
+
export { default as CanvasRenderer } from './renderers/CanvasRenderer.mjs';
|
5
|
+
export { default as Display } from './Display.mjs';
|