js-draw 0.18.0 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/bundle.js +1 -1
- package/package.json +3 -2
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -34
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/ISSUE_TEMPLATE/translation.yml +0 -902
- package/.github/pull_request_template.md +0 -15
- package/.github/workflows/firebase-hosting-merge.yml +0 -34
- package/.github/workflows/firebase-hosting-pull-request.yml +0 -34
- package/.github/workflows/github-pages.yml +0 -58
- package/.husky/pre-commit +0 -4
- package/build_tools/BundledFile.ts +0 -167
- package/build_tools/buildTranslationTemplate.ts +0 -121
- package/build_tools/bundle.ts +0 -11
- package/build_tools/postDist.ts +0 -71
- package/dist/cjs/build_tools/BundledFile.d.ts +0 -13
- package/dist/cjs/build_tools/BundledFile.js +0 -163
- package/dist/cjs/build_tools/buildTranslationTemplate.d.ts +0 -1
- package/dist/cjs/build_tools/buildTranslationTemplate.js +0 -119
- package/dist/cjs/build_tools/bundle.d.ts +0 -1
- package/dist/cjs/build_tools/bundle.js +0 -10
- package/dist/cjs/build_tools/postDist.d.ts +0 -1
- package/dist/cjs/build_tools/postDist.js +0 -72
- package/dist/cjs/src/Color4.d.ts +0 -61
- package/dist/cjs/src/Color4.js +0 -197
- package/dist/cjs/src/Editor.d.ts +0 -308
- package/dist/cjs/src/Editor.js +0 -904
- package/dist/cjs/src/EditorImage.d.ts +0 -97
- package/dist/cjs/src/EditorImage.js +0 -486
- package/dist/cjs/src/EventDispatcher.d.ts +0 -30
- package/dist/cjs/src/EventDispatcher.js +0 -57
- package/dist/cjs/src/Pointer.d.ts +0 -24
- package/dist/cjs/src/Pointer.js +0 -84
- package/dist/cjs/src/SVGLoader.d.ts +0 -48
- package/dist/cjs/src/SVGLoader.js +0 -472
- package/dist/cjs/src/UndoRedoHistory.d.ts +0 -19
- package/dist/cjs/src/UndoRedoHistory.js +0 -93
- package/dist/cjs/src/Viewport.d.ts +0 -71
- package/dist/cjs/src/Viewport.js +0 -264
- package/dist/cjs/src/bundle/bundled.d.ts +0 -4
- package/dist/cjs/src/bundle/bundled.js +0 -24
- package/dist/cjs/src/commands/Command.d.ts +0 -16
- package/dist/cjs/src/commands/Command.js +0 -34
- package/dist/cjs/src/commands/Duplicate.d.ts +0 -14
- package/dist/cjs/src/commands/Duplicate.js +0 -39
- package/dist/cjs/src/commands/Erase.d.ts +0 -14
- package/dist/cjs/src/commands/Erase.js +0 -63
- package/dist/cjs/src/commands/SerializableCommand.d.ts +0 -12
- package/dist/cjs/src/commands/SerializableCommand.js +0 -42
- package/dist/cjs/src/commands/UnresolvedCommand.d.ts +0 -14
- package/dist/cjs/src/commands/UnresolvedCommand.js +0 -28
- package/dist/cjs/src/commands/invertCommand.d.ts +0 -4
- package/dist/cjs/src/commands/invertCommand.js +0 -49
- package/dist/cjs/src/commands/lib.d.ts +0 -7
- package/dist/cjs/src/commands/lib.js +0 -18
- package/dist/cjs/src/commands/localization.d.ts +0 -23
- package/dist/cjs/src/commands/localization.js +0 -24
- package/dist/cjs/src/commands/uniteCommands.d.ts +0 -4
- package/dist/cjs/src/commands/uniteCommands.js +0 -121
- package/dist/cjs/src/components/AbstractComponent.d.ts +0 -73
- package/dist/cjs/src/components/AbstractComponent.js +0 -258
- package/dist/cjs/src/components/ImageBackground.d.ts +0 -42
- package/dist/cjs/src/components/ImageBackground.js +0 -146
- package/dist/cjs/src/components/ImageComponent.d.ts +0 -31
- package/dist/cjs/src/components/ImageComponent.js +0 -152
- package/dist/cjs/src/components/RestylableComponent.d.ts +0 -24
- package/dist/cjs/src/components/RestylableComponent.js +0 -88
- package/dist/cjs/src/components/SVGGlobalAttributesObject.d.ts +0 -21
- package/dist/cjs/src/components/SVGGlobalAttributesObject.js +0 -65
- package/dist/cjs/src/components/Stroke.d.ts +0 -40
- package/dist/cjs/src/components/Stroke.js +0 -191
- package/dist/cjs/src/components/TextComponent.d.ts +0 -53
- package/dist/cjs/src/components/TextComponent.js +0 -258
- package/dist/cjs/src/components/UnknownSVGObject.d.ts +0 -18
- package/dist/cjs/src/components/UnknownSVGObject.js +0 -50
- package/dist/cjs/src/components/builders/ArrowBuilder.d.ts +0 -19
- package/dist/cjs/src/components/builders/ArrowBuilder.js +0 -117
- package/dist/cjs/src/components/builders/FreehandLineBuilder.d.ts +0 -33
- package/dist/cjs/src/components/builders/FreehandLineBuilder.js +0 -173
- package/dist/cjs/src/components/builders/LineBuilder.d.ts +0 -18
- package/dist/cjs/src/components/builders/LineBuilder.js +0 -89
- package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -36
- package/dist/cjs/src/components/builders/PressureSensitiveFreehandLineBuilder.js +0 -347
- package/dist/cjs/src/components/builders/RectangleBuilder.d.ts +0 -20
- package/dist/cjs/src/components/builders/RectangleBuilder.js +0 -59
- package/dist/cjs/src/components/builders/types.d.ts +0 -12
- package/dist/cjs/src/components/builders/types.js +0 -2
- package/dist/cjs/src/components/lib.d.ts +0 -12
- package/dist/cjs/src/components/lib.js +0 -43
- package/dist/cjs/src/components/localization.d.ts +0 -11
- package/dist/cjs/src/components/localization.js +0 -13
- package/dist/cjs/src/components/util/StrokeSmoother.d.ts +0 -35
- package/dist/cjs/src/components/util/StrokeSmoother.js +0 -217
- package/dist/cjs/src/components/util/describeComponentList.d.ts +0 -4
- package/dist/cjs/src/components/util/describeComponentList.js +0 -16
- package/dist/cjs/src/lib.d.ts +0 -34
- package/dist/cjs/src/lib.js +0 -63
- package/dist/cjs/src/localization.d.ts +0 -14
- package/dist/cjs/src/localization.js +0 -13
- package/dist/cjs/src/localizations/de.d.ts +0 -3
- package/dist/cjs/src/localizations/de.js +0 -6
- package/dist/cjs/src/localizations/en.d.ts +0 -3
- package/dist/cjs/src/localizations/en.js +0 -6
- package/dist/cjs/src/localizations/es.d.ts +0 -3
- package/dist/cjs/src/localizations/es.js +0 -20
- package/dist/cjs/src/localizations/getLocalizationTable.d.ts +0 -3
- package/dist/cjs/src/localizations/getLocalizationTable.js +0 -50
- package/dist/cjs/src/math/LineSegment2.d.ts +0 -24
- package/dist/cjs/src/math/LineSegment2.js +0 -131
- package/dist/cjs/src/math/Mat33.d.ts +0 -118
- package/dist/cjs/src/math/Mat33.js +0 -332
- package/dist/cjs/src/math/Path.d.ts +0 -71
- package/dist/cjs/src/math/Path.js +0 -655
- package/dist/cjs/src/math/Rect2.d.ts +0 -52
- package/dist/cjs/src/math/Rect2.js +0 -234
- package/dist/cjs/src/math/Triangle.d.ts +0 -11
- package/dist/cjs/src/math/Triangle.js +0 -22
- package/dist/cjs/src/math/Vec2.d.ts +0 -13
- package/dist/cjs/src/math/Vec2.js +0 -19
- package/dist/cjs/src/math/Vec3.d.ts +0 -106
- package/dist/cjs/src/math/Vec3.js +0 -177
- package/dist/cjs/src/math/lib.d.ts +0 -7
- package/dist/cjs/src/math/lib.js +0 -18
- package/dist/cjs/src/math/rounding.d.ts +0 -4
- package/dist/cjs/src/math/rounding.js +0 -135
- package/dist/cjs/src/rendering/Display.d.ts +0 -75
- package/dist/cjs/src/rendering/Display.js +0 -214
- package/dist/cjs/src/rendering/RenderingStyle.d.ts +0 -31
- package/dist/cjs/src/rendering/RenderingStyle.js +0 -48
- package/dist/cjs/src/rendering/TextRenderingStyle.d.ts +0 -36
- package/dist/cjs/src/rendering/TextRenderingStyle.js +0 -29
- package/dist/cjs/src/rendering/caching/CacheRecord.d.ts +0 -20
- package/dist/cjs/src/rendering/caching/CacheRecord.js +0 -61
- package/dist/cjs/src/rendering/caching/CacheRecordManager.d.ts +0 -12
- package/dist/cjs/src/rendering/caching/CacheRecordManager.js +0 -50
- package/dist/cjs/src/rendering/caching/RenderingCache.d.ts +0 -11
- package/dist/cjs/src/rendering/caching/RenderingCache.js +0 -51
- package/dist/cjs/src/rendering/caching/RenderingCacheNode.d.ts +0 -29
- package/dist/cjs/src/rendering/caching/RenderingCacheNode.js +0 -326
- package/dist/cjs/src/rendering/caching/testUtils.d.ts +0 -9
- package/dist/cjs/src/rendering/caching/testUtils.js +0 -27
- package/dist/cjs/src/rendering/caching/types.d.ts +0 -19
- package/dist/cjs/src/rendering/caching/types.js +0 -2
- package/dist/cjs/src/rendering/lib.d.ts +0 -5
- package/dist/cjs/src/rendering/lib.js +0 -16
- package/dist/cjs/src/rendering/localization.d.ts +0 -10
- package/dist/cjs/src/rendering/localization.js +0 -12
- package/dist/cjs/src/rendering/renderers/AbstractRenderer.d.ts +0 -68
- package/dist/cjs/src/rendering/renderers/AbstractRenderer.js +0 -170
- package/dist/cjs/src/rendering/renderers/CanvasRenderer.d.ts +0 -63
- package/dist/cjs/src/rendering/renderers/CanvasRenderer.js +0 -236
- package/dist/cjs/src/rendering/renderers/DummyRenderer.d.ts +0 -35
- package/dist/cjs/src/rendering/renderers/DummyRenderer.js +0 -112
- package/dist/cjs/src/rendering/renderers/SVGRenderer.d.ts +0 -57
- package/dist/cjs/src/rendering/renderers/SVGRenderer.js +0 -311
- package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.d.ts +0 -29
- package/dist/cjs/src/rendering/renderers/TextOnlyRenderer.js +0 -63
- package/dist/cjs/src/testing/beforeEachFile.d.ts +0 -1
- package/dist/cjs/src/testing/beforeEachFile.js +0 -12
- package/dist/cjs/src/testing/createEditor.d.ts +0 -4
- package/dist/cjs/src/testing/createEditor.js +0 -14
- package/dist/cjs/src/testing/lib.d.ts +0 -2
- package/dist/cjs/src/testing/lib.js +0 -10
- package/dist/cjs/src/testing/loadExpectExtensions.d.ts +0 -2
- package/dist/cjs/src/testing/loadExpectExtensions.js +0 -28
- package/dist/cjs/src/testing/sendPenEvent.d.ts +0 -12
- package/dist/cjs/src/testing/sendPenEvent.js +0 -24
- package/dist/cjs/src/testing/sendTouchEvent.d.ts +0 -42
- package/dist/cjs/src/testing/sendTouchEvent.js +0 -87
- package/dist/cjs/src/toolbar/HTMLToolbar.d.ts +0 -103
- package/dist/cjs/src/toolbar/HTMLToolbar.js +0 -383
- package/dist/cjs/src/toolbar/IconProvider.d.ts +0 -62
- package/dist/cjs/src/toolbar/IconProvider.js +0 -660
- package/dist/cjs/src/toolbar/lib.d.ts +0 -3
- package/dist/cjs/src/toolbar/lib.js +0 -24
- package/dist/cjs/src/toolbar/localization.d.ts +0 -49
- package/dist/cjs/src/toolbar/localization.js +0 -51
- package/dist/cjs/src/toolbar/makeColorInput.d.ts +0 -6
- package/dist/cjs/src/toolbar/makeColorInput.js +0 -120
- package/dist/cjs/src/toolbar/types.d.ts +0 -4
- package/dist/cjs/src/toolbar/types.js +0 -2
- package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.d.ts +0 -15
- package/dist/cjs/src/toolbar/widgets/ActionButtonWidget.js +0 -31
- package/dist/cjs/src/toolbar/widgets/BaseToolWidget.d.ts +0 -11
- package/dist/cjs/src/toolbar/widgets/BaseToolWidget.js +0 -50
- package/dist/cjs/src/toolbar/widgets/BaseWidget.d.ts +0 -72
- package/dist/cjs/src/toolbar/widgets/BaseWidget.js +0 -313
- package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -18
- package/dist/cjs/src/toolbar/widgets/DocumentPropertiesWidget.js +0 -126
- package/dist/cjs/src/toolbar/widgets/EraserToolWidget.d.ts +0 -17
- package/dist/cjs/src/toolbar/widgets/EraserToolWidget.js +0 -63
- package/dist/cjs/src/toolbar/widgets/HandToolWidget.d.ts +0 -17
- package/dist/cjs/src/toolbar/widgets/HandToolWidget.js +0 -201
- package/dist/cjs/src/toolbar/widgets/InsertImageWidget.d.ts +0 -19
- package/dist/cjs/src/toolbar/widgets/InsertImageWidget.js +0 -176
- package/dist/cjs/src/toolbar/widgets/OverflowWidget.d.ts +0 -25
- package/dist/cjs/src/toolbar/widgets/OverflowWidget.js +0 -77
- package/dist/cjs/src/toolbar/widgets/PenToolWidget.d.ts +0 -27
- package/dist/cjs/src/toolbar/widgets/PenToolWidget.js +0 -226
- package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.d.ts +0 -13
- package/dist/cjs/src/toolbar/widgets/SelectionToolWidget.js +0 -153
- package/dist/cjs/src/toolbar/widgets/TextToolWidget.d.ts +0 -16
- package/dist/cjs/src/toolbar/widgets/TextToolWidget.js +0 -115
- package/dist/cjs/src/toolbar/widgets/lib.d.ts +0 -10
- package/dist/cjs/src/toolbar/widgets/lib.js +0 -26
- package/dist/cjs/src/tools/BaseTool.d.ts +0 -22
- package/dist/cjs/src/tools/BaseTool.js +0 -66
- package/dist/cjs/src/tools/Eraser.d.ts +0 -23
- package/dist/cjs/src/tools/Eraser.js +0 -112
- package/dist/cjs/src/tools/FindTool.d.ts +0 -21
- package/dist/cjs/src/tools/FindTool.js +0 -121
- package/dist/cjs/src/tools/PanZoom.d.ts +0 -52
- package/dist/cjs/src/tools/PanZoom.js +0 -421
- package/dist/cjs/src/tools/PasteHandler.d.ts +0 -23
- package/dist/cjs/src/tools/PasteHandler.js +0 -99
- package/dist/cjs/src/tools/Pen.d.ts +0 -39
- package/dist/cjs/src/tools/Pen.js +0 -179
- package/dist/cjs/src/tools/PipetteTool.d.ts +0 -18
- package/dist/cjs/src/tools/PipetteTool.js +0 -45
- package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -8
- package/dist/cjs/src/tools/SelectionTool/SelectAllShortcutHandler.js +0 -28
- package/dist/cjs/src/tools/SelectionTool/Selection.d.ts +0 -64
- package/dist/cjs/src/tools/SelectionTool/Selection.js +0 -488
- package/dist/cjs/src/tools/SelectionTool/SelectionHandle.d.ts +0 -38
- package/dist/cjs/src/tools/SelectionTool/SelectionHandle.js +0 -85
- package/dist/cjs/src/tools/SelectionTool/SelectionTool.d.ts +0 -36
- package/dist/cjs/src/tools/SelectionTool/SelectionTool.js +0 -405
- package/dist/cjs/src/tools/SelectionTool/TransformMode.d.ts +0 -34
- package/dist/cjs/src/tools/SelectionTool/TransformMode.js +0 -107
- package/dist/cjs/src/tools/SelectionTool/types.d.ts +0 -9
- package/dist/cjs/src/tools/SelectionTool/types.js +0 -14
- package/dist/cjs/src/tools/TextTool.d.ts +0 -33
- package/dist/cjs/src/tools/TextTool.js +0 -262
- package/dist/cjs/src/tools/ToolController.d.ts +0 -18
- package/dist/cjs/src/tools/ToolController.js +0 -187
- package/dist/cjs/src/tools/ToolEnabledGroup.d.ts +0 -6
- package/dist/cjs/src/tools/ToolEnabledGroup.js +0 -14
- package/dist/cjs/src/tools/ToolSwitcherShortcut.d.ts +0 -16
- package/dist/cjs/src/tools/ToolSwitcherShortcut.js +0 -38
- package/dist/cjs/src/tools/ToolbarShortcutHandler.d.ts +0 -12
- package/dist/cjs/src/tools/ToolbarShortcutHandler.js +0 -29
- package/dist/cjs/src/tools/UndoRedoShortcut.d.ts +0 -8
- package/dist/cjs/src/tools/UndoRedoShortcut.js +0 -28
- package/dist/cjs/src/tools/lib.d.ts +0 -16
- package/dist/cjs/src/tools/lib.js +0 -36
- package/dist/cjs/src/tools/localization.d.ts +0 -28
- package/dist/cjs/src/tools/localization.js +0 -30
- package/dist/cjs/src/types.d.ts +0 -151
- package/dist/cjs/src/types.js +0 -38
- package/dist/cjs/src/util/assertions.d.ts +0 -23
- package/dist/cjs/src/util/assertions.js +0 -51
- package/dist/cjs/src/util/fileToBase64.d.ts +0 -3
- package/dist/cjs/src/util/fileToBase64.js +0 -15
- package/dist/cjs/src/util/untilNextAnimationFrame.d.ts +0 -3
- package/dist/cjs/src/util/untilNextAnimationFrame.js +0 -9
- package/dist/cjs/src/util/waitForTimeout.d.ts +0 -2
- package/dist/cjs/src/util/waitForTimeout.js +0 -9
- package/dist/mjs/build_tools/BundledFile.d.ts +0 -13
- package/dist/mjs/build_tools/BundledFile.mjs +0 -157
- package/dist/mjs/build_tools/buildTranslationTemplate.d.ts +0 -1
- package/dist/mjs/build_tools/buildTranslationTemplate.mjs +0 -94
- package/dist/mjs/build_tools/bundle.d.ts +0 -1
- package/dist/mjs/build_tools/bundle.mjs +0 -5
- package/dist/mjs/build_tools/postDist.d.ts +0 -1
- package/dist/mjs/build_tools/postDist.mjs +0 -67
- package/dist/mjs/src/Color4.d.ts +0 -61
- package/dist/mjs/src/Color4.mjs +0 -193
- package/dist/mjs/src/Editor.d.ts +0 -308
- package/dist/mjs/src/Editor.mjs +0 -874
- package/dist/mjs/src/EditorImage.d.ts +0 -97
- package/dist/mjs/src/EditorImage.mjs +0 -477
- package/dist/mjs/src/EventDispatcher.d.ts +0 -30
- package/dist/mjs/src/EventDispatcher.mjs +0 -54
- package/dist/mjs/src/Pointer.d.ts +0 -24
- package/dist/mjs/src/Pointer.mjs +0 -80
- package/dist/mjs/src/SVGLoader.d.ts +0 -48
- package/dist/mjs/src/SVGLoader.mjs +0 -442
- package/dist/mjs/src/UndoRedoHistory.d.ts +0 -19
- package/dist/mjs/src/UndoRedoHistory.mjs +0 -91
- package/dist/mjs/src/Viewport.d.ts +0 -71
- package/dist/mjs/src/Viewport.mjs +0 -256
- package/dist/mjs/src/bundle/bundled.d.ts +0 -4
- package/dist/mjs/src/bundle/bundled.mjs +0 -5
- package/dist/mjs/src/commands/Command.d.ts +0 -16
- package/dist/mjs/src/commands/Command.mjs +0 -30
- package/dist/mjs/src/commands/Duplicate.d.ts +0 -14
- package/dist/mjs/src/commands/Duplicate.mjs +0 -33
- package/dist/mjs/src/commands/Erase.d.ts +0 -14
- package/dist/mjs/src/commands/Erase.mjs +0 -57
- package/dist/mjs/src/commands/SerializableCommand.d.ts +0 -12
- package/dist/mjs/src/commands/SerializableCommand.mjs +0 -36
- package/dist/mjs/src/commands/UnresolvedCommand.d.ts +0 -14
- package/dist/mjs/src/commands/UnresolvedCommand.mjs +0 -22
- package/dist/mjs/src/commands/invertCommand.d.ts +0 -4
- package/dist/mjs/src/commands/invertCommand.mjs +0 -44
- package/dist/mjs/src/commands/lib.d.ts +0 -7
- package/dist/mjs/src/commands/lib.mjs +0 -7
- package/dist/mjs/src/commands/localization.d.ts +0 -23
- package/dist/mjs/src/commands/localization.mjs +0 -21
- package/dist/mjs/src/commands/uniteCommands.d.ts +0 -4
- package/dist/mjs/src/commands/uniteCommands.mjs +0 -116
- package/dist/mjs/src/components/AbstractComponent.d.ts +0 -73
- package/dist/mjs/src/components/AbstractComponent.mjs +0 -252
- package/dist/mjs/src/components/ImageBackground.d.ts +0 -42
- package/dist/mjs/src/components/ImageBackground.mjs +0 -139
- package/dist/mjs/src/components/ImageComponent.d.ts +0 -31
- package/dist/mjs/src/components/ImageComponent.mjs +0 -146
- package/dist/mjs/src/components/RestylableComponent.d.ts +0 -24
- package/dist/mjs/src/components/RestylableComponent.mjs +0 -80
- package/dist/mjs/src/components/SVGGlobalAttributesObject.d.ts +0 -21
- package/dist/mjs/src/components/SVGGlobalAttributesObject.mjs +0 -59
- package/dist/mjs/src/components/Stroke.d.ts +0 -40
- package/dist/mjs/src/components/Stroke.mjs +0 -185
- package/dist/mjs/src/components/TextComponent.d.ts +0 -53
- package/dist/mjs/src/components/TextComponent.mjs +0 -252
- package/dist/mjs/src/components/UnknownSVGObject.d.ts +0 -18
- package/dist/mjs/src/components/UnknownSVGObject.mjs +0 -44
- package/dist/mjs/src/components/builders/ArrowBuilder.d.ts +0 -19
- package/dist/mjs/src/components/builders/ArrowBuilder.mjs +0 -86
- package/dist/mjs/src/components/builders/FreehandLineBuilder.d.ts +0 -33
- package/dist/mjs/src/components/builders/FreehandLineBuilder.mjs +0 -165
- package/dist/mjs/src/components/builders/LineBuilder.d.ts +0 -18
- package/dist/mjs/src/components/builders/LineBuilder.mjs +0 -58
- package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +0 -36
- package/dist/mjs/src/components/builders/PressureSensitiveFreehandLineBuilder.mjs +0 -339
- package/dist/mjs/src/components/builders/RectangleBuilder.d.ts +0 -20
- package/dist/mjs/src/components/builders/RectangleBuilder.mjs +0 -50
- package/dist/mjs/src/components/builders/types.d.ts +0 -12
- package/dist/mjs/src/components/builders/types.mjs +0 -1
- package/dist/mjs/src/components/lib.d.ts +0 -12
- package/dist/mjs/src/components/lib.mjs +0 -12
- package/dist/mjs/src/components/localization.d.ts +0 -11
- package/dist/mjs/src/components/localization.mjs +0 -10
- package/dist/mjs/src/components/util/StrokeSmoother.d.ts +0 -35
- package/dist/mjs/src/components/util/StrokeSmoother.mjs +0 -210
- package/dist/mjs/src/components/util/describeComponentList.d.ts +0 -4
- package/dist/mjs/src/components/util/describeComponentList.mjs +0 -14
- package/dist/mjs/src/lib.d.ts +0 -34
- package/dist/mjs/src/lib.mjs +0 -34
- package/dist/mjs/src/localization.d.ts +0 -14
- package/dist/mjs/src/localization.mjs +0 -10
- package/dist/mjs/src/localizations/de.d.ts +0 -3
- package/dist/mjs/src/localizations/de.mjs +0 -4
- package/dist/mjs/src/localizations/en.d.ts +0 -3
- package/dist/mjs/src/localizations/en.mjs +0 -4
- package/dist/mjs/src/localizations/es.d.ts +0 -3
- package/dist/mjs/src/localizations/es.mjs +0 -18
- package/dist/mjs/src/localizations/getLocalizationTable.d.ts +0 -3
- package/dist/mjs/src/localizations/getLocalizationTable.mjs +0 -45
- package/dist/mjs/src/math/LineSegment2.d.ts +0 -24
- package/dist/mjs/src/math/LineSegment2.mjs +0 -125
- package/dist/mjs/src/math/Mat33.d.ts +0 -118
- package/dist/mjs/src/math/Mat33.mjs +0 -326
- package/dist/mjs/src/math/Path.d.ts +0 -71
- package/dist/mjs/src/math/Path.mjs +0 -648
- package/dist/mjs/src/math/Rect2.d.ts +0 -52
- package/dist/mjs/src/math/Rect2.mjs +0 -228
- package/dist/mjs/src/math/Triangle.d.ts +0 -11
- package/dist/mjs/src/math/Triangle.mjs +0 -19
- package/dist/mjs/src/math/Vec2.d.ts +0 -13
- package/dist/mjs/src/math/Vec2.mjs +0 -13
- package/dist/mjs/src/math/Vec3.d.ts +0 -106
- package/dist/mjs/src/math/Vec3.mjs +0 -174
- package/dist/mjs/src/math/lib.d.ts +0 -7
- package/dist/mjs/src/math/lib.mjs +0 -7
- package/dist/mjs/src/math/rounding.d.ts +0 -4
- package/dist/mjs/src/math/rounding.mjs +0 -128
- package/dist/mjs/src/rendering/Display.d.ts +0 -75
- package/dist/mjs/src/rendering/Display.mjs +0 -207
- package/dist/mjs/src/rendering/RenderingStyle.d.ts +0 -31
- package/dist/mjs/src/rendering/RenderingStyle.mjs +0 -38
- package/dist/mjs/src/rendering/TextRenderingStyle.d.ts +0 -36
- package/dist/mjs/src/rendering/TextRenderingStyle.mjs +0 -23
- package/dist/mjs/src/rendering/caching/CacheRecord.d.ts +0 -20
- package/dist/mjs/src/rendering/caching/CacheRecord.mjs +0 -55
- package/dist/mjs/src/rendering/caching/CacheRecordManager.d.ts +0 -12
- package/dist/mjs/src/rendering/caching/CacheRecordManager.mjs +0 -43
- package/dist/mjs/src/rendering/caching/RenderingCache.d.ts +0 -11
- package/dist/mjs/src/rendering/caching/RenderingCache.mjs +0 -45
- package/dist/mjs/src/rendering/caching/RenderingCacheNode.d.ts +0 -29
- package/dist/mjs/src/rendering/caching/RenderingCacheNode.mjs +0 -320
- package/dist/mjs/src/rendering/caching/testUtils.d.ts +0 -9
- package/dist/mjs/src/rendering/caching/testUtils.mjs +0 -20
- package/dist/mjs/src/rendering/caching/types.d.ts +0 -19
- package/dist/mjs/src/rendering/caching/types.mjs +0 -1
- package/dist/mjs/src/rendering/lib.d.ts +0 -5
- package/dist/mjs/src/rendering/lib.mjs +0 -5
- package/dist/mjs/src/rendering/localization.d.ts +0 -10
- package/dist/mjs/src/rendering/localization.mjs +0 -9
- package/dist/mjs/src/rendering/renderers/AbstractRenderer.d.ts +0 -68
- package/dist/mjs/src/rendering/renderers/AbstractRenderer.mjs +0 -144
- package/dist/mjs/src/rendering/renderers/CanvasRenderer.d.ts +0 -63
- package/dist/mjs/src/rendering/renderers/CanvasRenderer.mjs +0 -230
- package/dist/mjs/src/rendering/renderers/DummyRenderer.d.ts +0 -35
- package/dist/mjs/src/rendering/renderers/DummyRenderer.mjs +0 -106
- package/dist/mjs/src/rendering/renderers/SVGRenderer.d.ts +0 -57
- package/dist/mjs/src/rendering/renderers/SVGRenderer.mjs +0 -304
- package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.d.ts +0 -29
- package/dist/mjs/src/rendering/renderers/TextOnlyRenderer.mjs +0 -57
- package/dist/mjs/src/testing/beforeEachFile.d.ts +0 -1
- package/dist/mjs/src/testing/beforeEachFile.mjs +0 -7
- package/dist/mjs/src/testing/createEditor.d.ts +0 -4
- package/dist/mjs/src/testing/createEditor.mjs +0 -9
- package/dist/mjs/src/testing/lib.d.ts +0 -2
- package/dist/mjs/src/testing/lib.mjs +0 -2
- package/dist/mjs/src/testing/loadExpectExtensions.d.ts +0 -2
- package/dist/mjs/src/testing/loadExpectExtensions.mjs +0 -24
- package/dist/mjs/src/testing/sendPenEvent.d.ts +0 -12
- package/dist/mjs/src/testing/sendPenEvent.mjs +0 -19
- package/dist/mjs/src/testing/sendTouchEvent.d.ts +0 -42
- package/dist/mjs/src/testing/sendTouchEvent.mjs +0 -62
- package/dist/mjs/src/toolbar/HTMLToolbar.d.ts +0 -103
- package/dist/mjs/src/toolbar/HTMLToolbar.mjs +0 -376
- package/dist/mjs/src/toolbar/IconProvider.d.ts +0 -62
- package/dist/mjs/src/toolbar/IconProvider.mjs +0 -654
- package/dist/mjs/src/toolbar/lib.d.ts +0 -3
- package/dist/mjs/src/toolbar/lib.mjs +0 -3
- package/dist/mjs/src/toolbar/localization.d.ts +0 -49
- package/dist/mjs/src/toolbar/localization.mjs +0 -48
- package/dist/mjs/src/toolbar/makeColorInput.d.ts +0 -6
- package/dist/mjs/src/toolbar/makeColorInput.mjs +0 -113
- package/dist/mjs/src/toolbar/types.d.ts +0 -4
- package/dist/mjs/src/toolbar/types.mjs +0 -1
- package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.d.ts +0 -15
- package/dist/mjs/src/toolbar/widgets/ActionButtonWidget.mjs +0 -25
- package/dist/mjs/src/toolbar/widgets/BaseToolWidget.d.ts +0 -11
- package/dist/mjs/src/toolbar/widgets/BaseToolWidget.mjs +0 -44
- package/dist/mjs/src/toolbar/widgets/BaseWidget.d.ts +0 -72
- package/dist/mjs/src/toolbar/widgets/BaseWidget.mjs +0 -307
- package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.d.ts +0 -18
- package/dist/mjs/src/toolbar/widgets/DocumentPropertiesWidget.mjs +0 -120
- package/dist/mjs/src/toolbar/widgets/EraserToolWidget.d.ts +0 -17
- package/dist/mjs/src/toolbar/widgets/EraserToolWidget.mjs +0 -57
- package/dist/mjs/src/toolbar/widgets/HandToolWidget.d.ts +0 -17
- package/dist/mjs/src/toolbar/widgets/HandToolWidget.mjs +0 -172
- package/dist/mjs/src/toolbar/widgets/InsertImageWidget.d.ts +0 -19
- package/dist/mjs/src/toolbar/widgets/InsertImageWidget.mjs +0 -170
- package/dist/mjs/src/toolbar/widgets/OverflowWidget.d.ts +0 -25
- package/dist/mjs/src/toolbar/widgets/OverflowWidget.mjs +0 -71
- package/dist/mjs/src/toolbar/widgets/PenToolWidget.d.ts +0 -27
- package/dist/mjs/src/toolbar/widgets/PenToolWidget.mjs +0 -220
- package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.d.ts +0 -13
- package/dist/mjs/src/toolbar/widgets/SelectionToolWidget.mjs +0 -147
- package/dist/mjs/src/toolbar/widgets/TextToolWidget.d.ts +0 -16
- package/dist/mjs/src/toolbar/widgets/TextToolWidget.mjs +0 -109
- package/dist/mjs/src/toolbar/widgets/lib.d.ts +0 -10
- package/dist/mjs/src/toolbar/widgets/lib.mjs +0 -10
- package/dist/mjs/src/tools/BaseTool.d.ts +0 -22
- package/dist/mjs/src/tools/BaseTool.mjs +0 -63
- package/dist/mjs/src/tools/Eraser.d.ts +0 -23
- package/dist/mjs/src/tools/Eraser.mjs +0 -106
- package/dist/mjs/src/tools/FindTool.d.ts +0 -21
- package/dist/mjs/src/tools/FindTool.mjs +0 -114
- package/dist/mjs/src/tools/PanZoom.d.ts +0 -52
- package/dist/mjs/src/tools/PanZoom.mjs +0 -414
- package/dist/mjs/src/tools/PasteHandler.d.ts +0 -23
- package/dist/mjs/src/tools/PasteHandler.mjs +0 -93
- package/dist/mjs/src/tools/Pen.d.ts +0 -39
- package/dist/mjs/src/tools/Pen.mjs +0 -173
- package/dist/mjs/src/tools/PipetteTool.d.ts +0 -18
- package/dist/mjs/src/tools/PipetteTool.mjs +0 -39
- package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -8
- package/dist/mjs/src/tools/SelectionTool/SelectAllShortcutHandler.mjs +0 -22
- package/dist/mjs/src/tools/SelectionTool/Selection.d.ts +0 -64
- package/dist/mjs/src/tools/SelectionTool/Selection.mjs +0 -459
- package/dist/mjs/src/tools/SelectionTool/SelectionHandle.d.ts +0 -38
- package/dist/mjs/src/tools/SelectionTool/SelectionHandle.mjs +0 -81
- package/dist/mjs/src/tools/SelectionTool/SelectionTool.d.ts +0 -36
- package/dist/mjs/src/tools/SelectionTool/SelectionTool.mjs +0 -398
- package/dist/mjs/src/tools/SelectionTool/TransformMode.d.ts +0 -34
- package/dist/mjs/src/tools/SelectionTool/TransformMode.mjs +0 -98
- package/dist/mjs/src/tools/SelectionTool/types.d.ts +0 -9
- package/dist/mjs/src/tools/SelectionTool/types.mjs +0 -11
- package/dist/mjs/src/tools/TextTool.d.ts +0 -33
- package/dist/mjs/src/tools/TextTool.mjs +0 -256
- package/dist/mjs/src/tools/ToolController.d.ts +0 -18
- package/dist/mjs/src/tools/ToolController.mjs +0 -158
- package/dist/mjs/src/tools/ToolEnabledGroup.d.ts +0 -6
- package/dist/mjs/src/tools/ToolEnabledGroup.mjs +0 -11
- package/dist/mjs/src/tools/ToolSwitcherShortcut.d.ts +0 -16
- package/dist/mjs/src/tools/ToolSwitcherShortcut.mjs +0 -32
- package/dist/mjs/src/tools/ToolbarShortcutHandler.d.ts +0 -12
- package/dist/mjs/src/tools/ToolbarShortcutHandler.mjs +0 -23
- package/dist/mjs/src/tools/UndoRedoShortcut.d.ts +0 -8
- package/dist/mjs/src/tools/UndoRedoShortcut.mjs +0 -22
- package/dist/mjs/src/tools/lib.d.ts +0 -16
- package/dist/mjs/src/tools/lib.mjs +0 -16
- package/dist/mjs/src/tools/localization.d.ts +0 -28
- package/dist/mjs/src/tools/localization.mjs +0 -27
- package/dist/mjs/src/types.d.ts +0 -151
- package/dist/mjs/src/types.mjs +0 -35
- package/dist/mjs/src/util/assertions.d.ts +0 -23
- package/dist/mjs/src/util/assertions.mjs +0 -45
- package/dist/mjs/src/util/fileToBase64.d.ts +0 -3
- package/dist/mjs/src/util/fileToBase64.mjs +0 -13
- package/dist/mjs/src/util/untilNextAnimationFrame.d.ts +0 -3
- package/dist/mjs/src/util/untilNextAnimationFrame.mjs +0 -7
- package/dist/mjs/src/util/waitForTimeout.d.ts +0 -2
- package/dist/mjs/src/util/waitForTimeout.mjs +0 -7
- package/src/Color4.test.ts +0 -40
- package/src/Color4.ts +0 -236
- package/src/Editor.css +0 -86
- package/src/Editor.loadFrom.test.ts +0 -24
- package/src/Editor.toSVG.test.ts +0 -111
- package/src/Editor.ts +0 -1122
- package/src/EditorImage.test.ts +0 -120
- package/src/EditorImage.ts +0 -603
- package/src/EventDispatcher.test.ts +0 -123
- package/src/EventDispatcher.ts +0 -71
- package/src/Pointer.ts +0 -127
- package/src/SVGLoader.test.ts +0 -114
- package/src/SVGLoader.ts +0 -511
- package/src/UndoRedoHistory.test.ts +0 -33
- package/src/UndoRedoHistory.ts +0 -102
- package/src/Viewport.ts +0 -319
- package/src/bundle/bundled.ts +0 -7
- package/src/commands/Command.ts +0 -45
- package/src/commands/Duplicate.ts +0 -48
- package/src/commands/Erase.ts +0 -74
- package/src/commands/SerializableCommand.ts +0 -49
- package/src/commands/UnresolvedCommand.ts +0 -37
- package/src/commands/invertCommand.ts +0 -51
- package/src/commands/lib.ts +0 -16
- package/src/commands/localization.ts +0 -47
- package/src/commands/uniteCommands.test.ts +0 -23
- package/src/commands/uniteCommands.ts +0 -135
- package/src/components/AbstractComponent.transformBy.test.ts +0 -22
- package/src/components/AbstractComponent.ts +0 -364
- package/src/components/ImageBackground.test.ts +0 -35
- package/src/components/ImageBackground.ts +0 -176
- package/src/components/ImageComponent.ts +0 -171
- package/src/components/RestylableComponent.ts +0 -142
- package/src/components/SVGGlobalAttributesObject.ts +0 -81
- package/src/components/Stroke.test.ts +0 -139
- package/src/components/Stroke.ts +0 -245
- package/src/components/TextComponent.test.ts +0 -99
- package/src/components/TextComponent.ts +0 -315
- package/src/components/UnknownSVGObject.test.ts +0 -10
- package/src/components/UnknownSVGObject.ts +0 -60
- package/src/components/builders/ArrowBuilder.ts +0 -107
- package/src/components/builders/FreehandLineBuilder.ts +0 -212
- package/src/components/builders/LineBuilder.ts +0 -77
- package/src/components/builders/PressureSensitiveFreehandLineBuilder.ts +0 -454
- package/src/components/builders/RectangleBuilder.ts +0 -74
- package/src/components/builders/types.ts +0 -15
- package/src/components/lib.ts +0 -25
- package/src/components/localization.ts +0 -22
- package/src/components/util/StrokeSmoother.ts +0 -293
- package/src/components/util/describeComponentList.ts +0 -18
- package/src/lib.ts +0 -37
- package/src/localization.ts +0 -34
- package/src/localizations/de.ts +0 -98
- package/src/localizations/en.ts +0 -8
- package/src/localizations/es.ts +0 -74
- package/src/localizations/getLocalizationTable.test.ts +0 -27
- package/src/localizations/getLocalizationTable.ts +0 -55
- package/src/math/LineSegment2.test.ts +0 -99
- package/src/math/LineSegment2.ts +0 -160
- package/src/math/Mat33.test.ts +0 -244
- package/src/math/Mat33.ts +0 -437
- package/src/math/Path.fromString.test.ts +0 -223
- package/src/math/Path.test.ts +0 -198
- package/src/math/Path.toString.test.ts +0 -77
- package/src/math/Path.ts +0 -790
- package/src/math/Rect2.test.ts +0 -204
- package/src/math/Rect2.ts +0 -315
- package/src/math/Triangle.ts +0 -29
- package/src/math/Vec2.test.ts +0 -30
- package/src/math/Vec2.ts +0 -18
- package/src/math/Vec3.test.ts +0 -44
- package/src/math/Vec3.ts +0 -218
- package/src/math/lib.ts +0 -15
- package/src/math/rounding.test.ts +0 -65
- package/src/math/rounding.ts +0 -156
- package/src/rendering/Display.ts +0 -249
- package/src/rendering/RenderingStyle.test.ts +0 -68
- package/src/rendering/RenderingStyle.ts +0 -55
- package/src/rendering/TextRenderingStyle.ts +0 -45
- package/src/rendering/caching/CacheRecord.test.ts +0 -49
- package/src/rendering/caching/CacheRecord.ts +0 -77
- package/src/rendering/caching/CacheRecordManager.ts +0 -71
- package/src/rendering/caching/RenderingCache.test.ts +0 -44
- package/src/rendering/caching/RenderingCache.ts +0 -66
- package/src/rendering/caching/RenderingCacheNode.ts +0 -405
- package/src/rendering/caching/testUtils.ts +0 -35
- package/src/rendering/caching/types.ts +0 -34
- package/src/rendering/lib.ts +0 -6
- package/src/rendering/localization.ts +0 -20
- package/src/rendering/renderers/AbstractRenderer.ts +0 -222
- package/src/rendering/renderers/CanvasRenderer.ts +0 -296
- package/src/rendering/renderers/DummyRenderer.test.ts +0 -42
- package/src/rendering/renderers/DummyRenderer.ts +0 -136
- package/src/rendering/renderers/SVGRenderer.ts +0 -354
- package/src/rendering/renderers/TextOnlyRenderer.ts +0 -70
- package/src/styles.js +0 -7
- package/src/testing/beforeEachFile.ts +0 -8
- package/src/testing/createEditor.ts +0 -11
- package/src/testing/global.d.ts +0 -17
- package/src/testing/lib.ts +0 -3
- package/src/testing/loadExpectExtensions.ts +0 -25
- package/src/testing/sendPenEvent.ts +0 -31
- package/src/testing/sendTouchEvent.ts +0 -78
- package/src/toolbar/HTMLToolbar.ts +0 -492
- package/src/toolbar/IconProvider.ts +0 -736
- package/src/toolbar/lib.ts +0 -4
- package/src/toolbar/localization.ts +0 -106
- package/src/toolbar/makeColorInput.ts +0 -145
- package/src/toolbar/toolbar.css +0 -213
- package/src/toolbar/types.ts +0 -5
- package/src/toolbar/widgets/ActionButtonWidget.ts +0 -39
- package/src/toolbar/widgets/BaseToolWidget.ts +0 -56
- package/src/toolbar/widgets/BaseWidget.ts +0 -377
- package/src/toolbar/widgets/DocumentPropertiesWidget.ts +0 -167
- package/src/toolbar/widgets/EraserToolWidget.ts +0 -85
- package/src/toolbar/widgets/HandToolWidget.ts +0 -250
- package/src/toolbar/widgets/InsertImageWidget.css +0 -44
- package/src/toolbar/widgets/InsertImageWidget.ts +0 -223
- package/src/toolbar/widgets/OverflowWidget.css +0 -27
- package/src/toolbar/widgets/OverflowWidget.ts +0 -92
- package/src/toolbar/widgets/PenToolWidget.ts +0 -288
- package/src/toolbar/widgets/SelectionToolWidget.ts +0 -190
- package/src/toolbar/widgets/TextToolWidget.ts +0 -145
- package/src/toolbar/widgets/lib.ts +0 -13
- package/src/tools/BaseTool.ts +0 -76
- package/src/tools/Eraser.test.ts +0 -103
- package/src/tools/Eraser.ts +0 -139
- package/src/tools/FindTool.css +0 -7
- package/src/tools/FindTool.ts +0 -152
- package/src/tools/PanZoom.test.ts +0 -310
- package/src/tools/PanZoom.ts +0 -520
- package/src/tools/PasteHandler.ts +0 -95
- package/src/tools/Pen.test.ts +0 -194
- package/src/tools/Pen.ts +0 -226
- package/src/tools/PipetteTool.ts +0 -55
- package/src/tools/SelectionTool/SelectAllShortcutHandler.ts +0 -28
- package/src/tools/SelectionTool/Selection.ts +0 -607
- package/src/tools/SelectionTool/SelectionHandle.ts +0 -108
- package/src/tools/SelectionTool/SelectionTool.css +0 -23
- package/src/tools/SelectionTool/SelectionTool.test.ts +0 -261
- package/src/tools/SelectionTool/SelectionTool.ts +0 -480
- package/src/tools/SelectionTool/TransformMode.ts +0 -114
- package/src/tools/SelectionTool/types.ts +0 -11
- package/src/tools/TextTool.ts +0 -326
- package/src/tools/ToolController.ts +0 -178
- package/src/tools/ToolEnabledGroup.ts +0 -14
- package/src/tools/ToolSwitcherShortcut.ts +0 -39
- package/src/tools/ToolbarShortcutHandler.ts +0 -34
- package/src/tools/UndoRedoShortcut.test.ts +0 -56
- package/src/tools/UndoRedoShortcut.ts +0 -25
- package/src/tools/lib.ts +0 -21
- package/src/tools/localization.ts +0 -66
- package/src/types.ts +0 -234
- package/src/util/assertions.ts +0 -55
- package/src/util/fileToBase64.ts +0 -18
- package/src/util/untilNextAnimationFrame.ts +0 -9
- package/src/util/waitForTimeout.ts +0 -9
package/dist/mjs/src/Pointer.mjs
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
import { Vec2 } from './math/Vec2.mjs';
|
2
|
-
export var PointerDevice;
|
3
|
-
(function (PointerDevice) {
|
4
|
-
PointerDevice[PointerDevice["Pen"] = 0] = "Pen";
|
5
|
-
PointerDevice[PointerDevice["Eraser"] = 1] = "Eraser";
|
6
|
-
PointerDevice[PointerDevice["Touch"] = 2] = "Touch";
|
7
|
-
PointerDevice[PointerDevice["PrimaryButtonMouse"] = 3] = "PrimaryButtonMouse";
|
8
|
-
PointerDevice[PointerDevice["RightButtonMouse"] = 4] = "RightButtonMouse";
|
9
|
-
PointerDevice[PointerDevice["Other"] = 5] = "Other";
|
10
|
-
})(PointerDevice || (PointerDevice = {}));
|
11
|
-
// Provides a snapshot containing information about a pointer. A Pointer
|
12
|
-
// object is immutable — it will not be updated when the pointer's information changes.
|
13
|
-
export default class Pointer {
|
14
|
-
constructor(
|
15
|
-
// The (x, y) position of the pointer relative to the top-left corner
|
16
|
-
// of the visible canvas.
|
17
|
-
screenPos,
|
18
|
-
// Position of the pointer relative to the top left corner of the drawing
|
19
|
-
// surface.
|
20
|
-
canvasPos, pressure, isPrimary, down, device,
|
21
|
-
// Unique ID for the pointer
|
22
|
-
id,
|
23
|
-
// Numeric timestamp (milliseconds, as from `(new Date).getTime()`)
|
24
|
-
timeStamp) {
|
25
|
-
this.screenPos = screenPos;
|
26
|
-
this.canvasPos = canvasPos;
|
27
|
-
this.pressure = pressure;
|
28
|
-
this.isPrimary = isPrimary;
|
29
|
-
this.down = down;
|
30
|
-
this.device = device;
|
31
|
-
this.id = id;
|
32
|
-
this.timeStamp = timeStamp;
|
33
|
-
}
|
34
|
-
// Snaps this pointer to the nearest grid point (rounds the coordinates of this
|
35
|
-
// pointer based on the current zoom). Returns a new Pointer and does not modify
|
36
|
-
// this.
|
37
|
-
snappedToGrid(viewport) {
|
38
|
-
const snappedCanvasPos = viewport.snapToGrid(this.canvasPos);
|
39
|
-
const snappedScreenPos = viewport.canvasToScreen(snappedCanvasPos);
|
40
|
-
return new Pointer(snappedScreenPos, snappedCanvasPos, this.pressure, this.isPrimary, this.down, this.device, this.id, this.timeStamp);
|
41
|
-
}
|
42
|
-
// Creates a Pointer from a DOM event. If `relativeTo` is given, (0, 0) in screen coordinates is
|
43
|
-
// considered the top left of `relativeTo`.
|
44
|
-
static ofEvent(evt, isDown, viewport, relativeTo) {
|
45
|
-
var _a, _b;
|
46
|
-
let screenPos = Vec2.of(evt.clientX, evt.clientY);
|
47
|
-
if (relativeTo) {
|
48
|
-
const bbox = relativeTo.getBoundingClientRect();
|
49
|
-
screenPos = screenPos.minus(Vec2.of(bbox.left, bbox.top));
|
50
|
-
}
|
51
|
-
const pointerTypeToDevice = {
|
52
|
-
'mouse': PointerDevice.PrimaryButtonMouse,
|
53
|
-
'pen': PointerDevice.Pen,
|
54
|
-
'touch': PointerDevice.Touch,
|
55
|
-
};
|
56
|
-
let device = (_a = pointerTypeToDevice[evt.pointerType]) !== null && _a !== void 0 ? _a : PointerDevice.Other;
|
57
|
-
const eraserButtonMask = 0x20;
|
58
|
-
if (device === PointerDevice.Pen && (evt.buttons & eraserButtonMask) !== 0) {
|
59
|
-
device = PointerDevice.Eraser;
|
60
|
-
}
|
61
|
-
const timeStamp = (new Date()).getTime();
|
62
|
-
const canvasPos = viewport.roundPoint(viewport.screenToCanvas(screenPos));
|
63
|
-
if (device === PointerDevice.PrimaryButtonMouse) {
|
64
|
-
if (evt.buttons & 0x2) {
|
65
|
-
device = PointerDevice.RightButtonMouse;
|
66
|
-
}
|
67
|
-
else if (!(evt.buttons & 0x1)) {
|
68
|
-
device = PointerDevice.Other;
|
69
|
-
}
|
70
|
-
}
|
71
|
-
return new Pointer(screenPos, canvasPos, (_b = evt.pressure) !== null && _b !== void 0 ? _b : null, evt.isPrimary, isDown, device, evt.pointerId, timeStamp);
|
72
|
-
}
|
73
|
-
// Create a new Pointer from a point on the canvas.
|
74
|
-
// Intended for unit tests.
|
75
|
-
static ofCanvasPoint(canvasPos, isDown, viewport, id = 0, device = PointerDevice.Pen, isPrimary = true, pressure = null) {
|
76
|
-
const screenPos = viewport.canvasToScreen(canvasPos);
|
77
|
-
const timeStamp = (new Date()).getTime();
|
78
|
-
return new Pointer(screenPos, canvasPos, pressure, isPrimary, isDown, device, id, timeStamp);
|
79
|
-
}
|
80
|
-
}
|
@@ -1,48 +0,0 @@
|
|
1
|
-
import Rect2 from './math/Rect2';
|
2
|
-
import { ComponentAddedListener, ImageLoader, OnDetermineExportRectListener, OnProgressListener } from './types';
|
3
|
-
export declare const defaultSVGViewRect: Rect2;
|
4
|
-
export declare const svgAttributesDataKey = "svgAttrs";
|
5
|
-
export declare const svgStyleAttributesDataKey = "svgStyleAttrs";
|
6
|
-
export type SVGLoaderUnknownAttribute = [string, string];
|
7
|
-
export type SVGLoaderUnknownStyleAttribute = {
|
8
|
-
key: string;
|
9
|
-
value: string;
|
10
|
-
priority?: string;
|
11
|
-
};
|
12
|
-
export default class SVGLoader implements ImageLoader {
|
13
|
-
private source;
|
14
|
-
private onFinish?;
|
15
|
-
private readonly storeUnknown;
|
16
|
-
private onAddComponent;
|
17
|
-
private onProgress;
|
18
|
-
private onDetermineExportRect;
|
19
|
-
private processedCount;
|
20
|
-
private totalToProcess;
|
21
|
-
private rootViewBox;
|
22
|
-
private constructor();
|
23
|
-
private getStyle;
|
24
|
-
private strokeDataFromElem;
|
25
|
-
private attachUnrecognisedAttrs;
|
26
|
-
private addPath;
|
27
|
-
private addBackground;
|
28
|
-
private getTransform;
|
29
|
-
private makeText;
|
30
|
-
private addText;
|
31
|
-
private addImage;
|
32
|
-
private addUnknownNode;
|
33
|
-
private updateViewBox;
|
34
|
-
private updateSVGAttrs;
|
35
|
-
private visit;
|
36
|
-
private getSourceAttrs;
|
37
|
-
start(onAddComponent: ComponentAddedListener, onProgress: OnProgressListener, onDetermineExportRect?: OnDetermineExportRectListener | null): Promise<void>;
|
38
|
-
/**
|
39
|
-
* Create an `SVGLoader` from the content of an SVG image. SVGs are loaded within a sandboxed
|
40
|
-
* iframe with `sandbox="allow-same-origin"`
|
41
|
-
* [thereby disabling JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox).
|
42
|
-
*
|
43
|
-
* @see {@link Editor.loadFrom}
|
44
|
-
* @param text - Textual representation of the SVG (e.g. `<svg viewbox='...'>...</svg>`).
|
45
|
-
* @param sanitize - if `true`, don't store unknown attributes.
|
46
|
-
*/
|
47
|
-
static fromString(text: string, sanitize?: boolean): SVGLoader;
|
48
|
-
}
|
@@ -1,442 +0,0 @@
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
-
});
|
9
|
-
};
|
10
|
-
import Color4 from './Color4.mjs';
|
11
|
-
import ImageBackground, { BackgroundType, imageBackgroundCSSClassName } from './components/ImageBackground.mjs';
|
12
|
-
import ImageComponent from './components/ImageComponent.mjs';
|
13
|
-
import Stroke from './components/Stroke.mjs';
|
14
|
-
import SVGGlobalAttributesObject from './components/SVGGlobalAttributesObject.mjs';
|
15
|
-
import TextComponent from './components/TextComponent.mjs';
|
16
|
-
import UnknownSVGObject from './components/UnknownSVGObject.mjs';
|
17
|
-
import Mat33 from './math/Mat33.mjs';
|
18
|
-
import Path from './math/Path.mjs';
|
19
|
-
import Rect2 from './math/Rect2.mjs';
|
20
|
-
import { Vec2 } from './math/Vec2.mjs';
|
21
|
-
// Size of a loaded image if no size is specified.
|
22
|
-
export const defaultSVGViewRect = new Rect2(0, 0, 500, 500);
|
23
|
-
// Key to retrieve unrecognised attributes from an AbstractComponent
|
24
|
-
export const svgAttributesDataKey = 'svgAttrs';
|
25
|
-
export const svgStyleAttributesDataKey = 'svgStyleAttrs';
|
26
|
-
const supportedStrokeFillStyleAttrs = ['stroke', 'fill', 'stroke-width'];
|
27
|
-
// Handles loading images from SVG.
|
28
|
-
export default class SVGLoader {
|
29
|
-
constructor(source, onFinish, storeUnknown = true) {
|
30
|
-
this.source = source;
|
31
|
-
this.onFinish = onFinish;
|
32
|
-
this.storeUnknown = storeUnknown;
|
33
|
-
this.onAddComponent = null;
|
34
|
-
this.onProgress = null;
|
35
|
-
this.onDetermineExportRect = null;
|
36
|
-
this.processedCount = 0;
|
37
|
-
this.totalToProcess = 0;
|
38
|
-
}
|
39
|
-
// If [computedStyles] is given, it is preferred to directly accessing node's style object.
|
40
|
-
getStyle(node, computedStyles) {
|
41
|
-
var _a, _b, _c, _d, _f, _g;
|
42
|
-
const style = {
|
43
|
-
fill: Color4.transparent,
|
44
|
-
};
|
45
|
-
// If possible, use computedStyles (allows property inheritance).
|
46
|
-
const fillAttribute = (_b = (_a = node.getAttribute('fill')) !== null && _a !== void 0 ? _a : computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.fill) !== null && _b !== void 0 ? _b : node.style.fill;
|
47
|
-
if (fillAttribute) {
|
48
|
-
try {
|
49
|
-
style.fill = Color4.fromString(fillAttribute);
|
50
|
-
}
|
51
|
-
catch (e) {
|
52
|
-
console.error('Unknown fill color,', fillAttribute);
|
53
|
-
}
|
54
|
-
}
|
55
|
-
const strokeAttribute = (_d = (_c = node.getAttribute('stroke')) !== null && _c !== void 0 ? _c : computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.stroke) !== null && _d !== void 0 ? _d : node.style.stroke;
|
56
|
-
const strokeWidthAttr = (_g = (_f = node.getAttribute('stroke-width')) !== null && _f !== void 0 ? _f : computedStyles === null || computedStyles === void 0 ? void 0 : computedStyles.strokeWidth) !== null && _g !== void 0 ? _g : node.style.strokeWidth;
|
57
|
-
if (strokeAttribute && strokeWidthAttr) {
|
58
|
-
try {
|
59
|
-
let width = parseFloat(strokeWidthAttr !== null && strokeWidthAttr !== void 0 ? strokeWidthAttr : '1');
|
60
|
-
if (!isFinite(width)) {
|
61
|
-
width = 0;
|
62
|
-
}
|
63
|
-
const strokeColor = Color4.fromString(strokeAttribute);
|
64
|
-
if (strokeColor.a > 0) {
|
65
|
-
style.stroke = {
|
66
|
-
width,
|
67
|
-
color: strokeColor,
|
68
|
-
};
|
69
|
-
}
|
70
|
-
}
|
71
|
-
catch (e) {
|
72
|
-
console.error('Error parsing stroke data:', e);
|
73
|
-
}
|
74
|
-
}
|
75
|
-
return style;
|
76
|
-
}
|
77
|
-
strokeDataFromElem(node) {
|
78
|
-
var _a;
|
79
|
-
const result = [];
|
80
|
-
const pathData = (_a = node.getAttribute('d')) !== null && _a !== void 0 ? _a : '';
|
81
|
-
const style = this.getStyle(node);
|
82
|
-
// Break the path into chunks at each moveTo ('M') command:
|
83
|
-
const parts = pathData.split('M');
|
84
|
-
let isFirst = true;
|
85
|
-
for (const part of parts) {
|
86
|
-
// Skip effective no-ops -- moveTos without additional commands.
|
87
|
-
const isNoOpMoveTo = /^[0-9., \t\n]+$/.exec(part);
|
88
|
-
if (part !== '' && !isNoOpMoveTo) {
|
89
|
-
// We split the path by moveTo commands, so add the 'M' back in
|
90
|
-
// if it was present.
|
91
|
-
const current = !isFirst ? `M${part}` : part;
|
92
|
-
const path = Path.fromString(current);
|
93
|
-
const spec = path.toRenderable(style);
|
94
|
-
result.push(spec);
|
95
|
-
}
|
96
|
-
isFirst = false;
|
97
|
-
}
|
98
|
-
return result;
|
99
|
-
}
|
100
|
-
attachUnrecognisedAttrs(elem, node, supportedAttrs, supportedStyleAttrs) {
|
101
|
-
if (!this.storeUnknown) {
|
102
|
-
return;
|
103
|
-
}
|
104
|
-
for (const attr of node.getAttributeNames()) {
|
105
|
-
if (supportedAttrs.has(attr) || (attr === 'style' && supportedStyleAttrs)) {
|
106
|
-
continue;
|
107
|
-
}
|
108
|
-
elem.attachLoadSaveData(svgAttributesDataKey, [attr, node.getAttribute(attr)]);
|
109
|
-
}
|
110
|
-
if (supportedStyleAttrs && node.style) {
|
111
|
-
for (const attr of node.style) {
|
112
|
-
if (attr === '' || !attr) {
|
113
|
-
continue;
|
114
|
-
}
|
115
|
-
if (supportedStyleAttrs.has(attr)) {
|
116
|
-
continue;
|
117
|
-
}
|
118
|
-
// TODO: Do we need special logic for !important properties?
|
119
|
-
elem.attachLoadSaveData(svgStyleAttributesDataKey, {
|
120
|
-
key: attr,
|
121
|
-
value: node.style.getPropertyValue(attr),
|
122
|
-
priority: node.style.getPropertyPriority(attr)
|
123
|
-
});
|
124
|
-
}
|
125
|
-
}
|
126
|
-
}
|
127
|
-
// Adds a stroke with a single path
|
128
|
-
addPath(node) {
|
129
|
-
var _a;
|
130
|
-
return __awaiter(this, void 0, void 0, function* () {
|
131
|
-
let elem;
|
132
|
-
try {
|
133
|
-
const strokeData = this.strokeDataFromElem(node);
|
134
|
-
elem = new Stroke(strokeData);
|
135
|
-
this.attachUnrecognisedAttrs(elem, node, new Set([...supportedStrokeFillStyleAttrs, 'd']), new Set(supportedStrokeFillStyleAttrs));
|
136
|
-
}
|
137
|
-
catch (e) {
|
138
|
-
console.error('Invalid path in node', node, '\nError:', e, '\nAdding as an unknown object.');
|
139
|
-
if (this.storeUnknown) {
|
140
|
-
elem = new UnknownSVGObject(node);
|
141
|
-
}
|
142
|
-
else {
|
143
|
-
return;
|
144
|
-
}
|
145
|
-
}
|
146
|
-
yield ((_a = this.onAddComponent) === null || _a === void 0 ? void 0 : _a.call(this, elem));
|
147
|
-
});
|
148
|
-
}
|
149
|
-
addBackground(node) {
|
150
|
-
var _a, _b, _c;
|
151
|
-
return __awaiter(this, void 0, void 0, function* () {
|
152
|
-
const fill = Color4.fromString((_b = (_a = node.getAttribute('fill')) !== null && _a !== void 0 ? _a : node.style.fill) !== null && _b !== void 0 ? _b : 'black');
|
153
|
-
const elem = new ImageBackground(BackgroundType.SolidColor, fill);
|
154
|
-
yield ((_c = this.onAddComponent) === null || _c === void 0 ? void 0 : _c.call(this, elem));
|
155
|
-
});
|
156
|
-
}
|
157
|
-
// If given, 'supportedAttrs' will have x, y, etc. attributes that were used in computing the transform added to it,
|
158
|
-
// to prevent storing duplicate transform information when saving the component.
|
159
|
-
getTransform(elem, supportedAttrs, computedStyles) {
|
160
|
-
computedStyles !== null && computedStyles !== void 0 ? computedStyles : (computedStyles = window.getComputedStyle(elem));
|
161
|
-
let transformProperty = computedStyles.transform;
|
162
|
-
if (transformProperty === '' || transformProperty === 'none') {
|
163
|
-
transformProperty = elem.style.transform || 'none';
|
164
|
-
}
|
165
|
-
// Prefer the actual .style.transform
|
166
|
-
// to the computed stylesheet -- in some browsers, the computedStyles version
|
167
|
-
// can have lower precision.
|
168
|
-
let transform;
|
169
|
-
try {
|
170
|
-
transform = Mat33.fromCSSMatrix(elem.style.transform);
|
171
|
-
}
|
172
|
-
catch (_e) {
|
173
|
-
transform = Mat33.fromCSSMatrix(transformProperty);
|
174
|
-
}
|
175
|
-
const elemX = elem.getAttribute('x');
|
176
|
-
const elemY = elem.getAttribute('y');
|
177
|
-
if (elemX || elemY) {
|
178
|
-
const x = parseFloat(elemX !== null && elemX !== void 0 ? elemX : '0');
|
179
|
-
const y = parseFloat(elemY !== null && elemY !== void 0 ? elemY : '0');
|
180
|
-
if (!isNaN(x) && !isNaN(y)) {
|
181
|
-
supportedAttrs === null || supportedAttrs === void 0 ? void 0 : supportedAttrs.push('x', 'y');
|
182
|
-
transform = transform.rightMul(Mat33.translation(Vec2.of(x, y)));
|
183
|
-
}
|
184
|
-
}
|
185
|
-
return transform;
|
186
|
-
}
|
187
|
-
makeText(elem) {
|
188
|
-
var _a;
|
189
|
-
const contentList = [];
|
190
|
-
for (const child of elem.childNodes) {
|
191
|
-
if (child.nodeType === Node.TEXT_NODE) {
|
192
|
-
contentList.push((_a = child.nodeValue) !== null && _a !== void 0 ? _a : '');
|
193
|
-
}
|
194
|
-
else if (child.nodeType === Node.ELEMENT_NODE) {
|
195
|
-
const subElem = child;
|
196
|
-
if (subElem.tagName.toLowerCase() === 'tspan') {
|
197
|
-
// FIXME: tspan's (x, y) components are absolute, not relative to the parent.
|
198
|
-
contentList.push(this.makeText(subElem));
|
199
|
-
}
|
200
|
-
else {
|
201
|
-
throw new Error(`Unrecognized text child element: ${subElem}`);
|
202
|
-
}
|
203
|
-
}
|
204
|
-
else {
|
205
|
-
throw new Error(`Unrecognized text child node: ${child}.`);
|
206
|
-
}
|
207
|
-
}
|
208
|
-
// If no content, the content is an empty string.
|
209
|
-
if (contentList.length === 0) {
|
210
|
-
contentList.push('');
|
211
|
-
}
|
212
|
-
// Compute styles.
|
213
|
-
const computedStyles = window.getComputedStyle(elem);
|
214
|
-
const fontSizeExp = /^([-0-9.e]+)px/i;
|
215
|
-
// In some environments, computedStyles.fontSize can be increased by the system.
|
216
|
-
// Thus, to prevent text from growing on load/save, prefer .style.fontSize.
|
217
|
-
let fontSizeMatch = fontSizeExp.exec(elem.style.fontSize);
|
218
|
-
if (!fontSizeMatch && elem.tagName.toLowerCase() === 'tspan' && elem.parentElement) {
|
219
|
-
// Try to inherit the font size of the parent text element.
|
220
|
-
fontSizeMatch = fontSizeExp.exec(elem.parentElement.style.fontSize);
|
221
|
-
}
|
222
|
-
// If we still couldn't find a font size, try to use computedStyles (which can be
|
223
|
-
// wrong).
|
224
|
-
if (!fontSizeMatch) {
|
225
|
-
fontSizeMatch = fontSizeExp.exec(computedStyles.fontSize);
|
226
|
-
}
|
227
|
-
const supportedStyleAttrs = [
|
228
|
-
'fontFamily',
|
229
|
-
'transform',
|
230
|
-
...supportedStrokeFillStyleAttrs,
|
231
|
-
];
|
232
|
-
let fontSize = 12;
|
233
|
-
if (fontSizeMatch) {
|
234
|
-
supportedStyleAttrs.push('fontSize');
|
235
|
-
fontSize = parseFloat(fontSizeMatch[1]);
|
236
|
-
}
|
237
|
-
const style = {
|
238
|
-
size: fontSize,
|
239
|
-
fontFamily: computedStyles.fontFamily || elem.style.fontFamily || 'sans-serif',
|
240
|
-
renderingStyle: this.getStyle(elem, computedStyles),
|
241
|
-
};
|
242
|
-
const supportedAttrs = [];
|
243
|
-
const transform = this.getTransform(elem, supportedAttrs, computedStyles);
|
244
|
-
const result = new TextComponent(contentList, transform, style);
|
245
|
-
this.attachUnrecognisedAttrs(result, elem, new Set(supportedAttrs), new Set(supportedStyleAttrs));
|
246
|
-
return result;
|
247
|
-
}
|
248
|
-
addText(elem) {
|
249
|
-
var _a;
|
250
|
-
return __awaiter(this, void 0, void 0, function* () {
|
251
|
-
try {
|
252
|
-
const textElem = this.makeText(elem);
|
253
|
-
yield ((_a = this.onAddComponent) === null || _a === void 0 ? void 0 : _a.call(this, textElem));
|
254
|
-
}
|
255
|
-
catch (e) {
|
256
|
-
console.error('Invalid text object in node', elem, '. Continuing.... Error:', e);
|
257
|
-
this.addUnknownNode(elem);
|
258
|
-
}
|
259
|
-
});
|
260
|
-
}
|
261
|
-
addImage(elem) {
|
262
|
-
var _a, _b, _c;
|
263
|
-
return __awaiter(this, void 0, void 0, function* () {
|
264
|
-
const image = new Image();
|
265
|
-
image.src = (_a = elem.getAttribute('xlink:href')) !== null && _a !== void 0 ? _a : elem.href.baseVal;
|
266
|
-
image.setAttribute('alt', (_b = elem.getAttribute('aria-label')) !== null && _b !== void 0 ? _b : '');
|
267
|
-
try {
|
268
|
-
const supportedAttrs = [];
|
269
|
-
const transform = this.getTransform(elem, supportedAttrs);
|
270
|
-
const imageElem = yield ImageComponent.fromImage(image, transform);
|
271
|
-
this.attachUnrecognisedAttrs(imageElem, elem, new Set(supportedAttrs), new Set(['transform']));
|
272
|
-
yield ((_c = this.onAddComponent) === null || _c === void 0 ? void 0 : _c.call(this, imageElem));
|
273
|
-
}
|
274
|
-
catch (e) {
|
275
|
-
console.error('Error loading image:', e, '. Element: ', elem, '. Continuing...');
|
276
|
-
yield this.addUnknownNode(elem);
|
277
|
-
}
|
278
|
-
});
|
279
|
-
}
|
280
|
-
addUnknownNode(node) {
|
281
|
-
var _a;
|
282
|
-
return __awaiter(this, void 0, void 0, function* () {
|
283
|
-
if (this.storeUnknown) {
|
284
|
-
const component = new UnknownSVGObject(node);
|
285
|
-
yield ((_a = this.onAddComponent) === null || _a === void 0 ? void 0 : _a.call(this, component));
|
286
|
-
}
|
287
|
-
});
|
288
|
-
}
|
289
|
-
updateViewBox(node) {
|
290
|
-
var _a;
|
291
|
-
const viewBoxAttr = node.getAttribute('viewBox');
|
292
|
-
if (this.rootViewBox || !viewBoxAttr) {
|
293
|
-
return;
|
294
|
-
}
|
295
|
-
const components = viewBoxAttr.split(/[ \t\n,]+/);
|
296
|
-
const x = parseFloat(components[0]);
|
297
|
-
const y = parseFloat(components[1]);
|
298
|
-
const width = parseFloat(components[2]);
|
299
|
-
const height = parseFloat(components[3]);
|
300
|
-
if (isNaN(x) || isNaN(y) || isNaN(width) || isNaN(height)) {
|
301
|
-
console.warn(`node ${node} has an unparsable viewbox. Viewbox: ${viewBoxAttr}. Match: ${components}.`);
|
302
|
-
return;
|
303
|
-
}
|
304
|
-
this.rootViewBox = new Rect2(x, y, width, height);
|
305
|
-
(_a = this.onDetermineExportRect) === null || _a === void 0 ? void 0 : _a.call(this, this.rootViewBox);
|
306
|
-
}
|
307
|
-
updateSVGAttrs(node) {
|
308
|
-
var _a;
|
309
|
-
return __awaiter(this, void 0, void 0, function* () {
|
310
|
-
if (this.storeUnknown) {
|
311
|
-
yield ((_a = this.onAddComponent) === null || _a === void 0 ? void 0 : _a.call(this, new SVGGlobalAttributesObject(this.getSourceAttrs(node))));
|
312
|
-
}
|
313
|
-
});
|
314
|
-
}
|
315
|
-
visit(node) {
|
316
|
-
var _a;
|
317
|
-
return __awaiter(this, void 0, void 0, function* () {
|
318
|
-
this.totalToProcess += node.childElementCount;
|
319
|
-
let visitChildren = true;
|
320
|
-
switch (node.tagName.toLowerCase()) {
|
321
|
-
case 'g':
|
322
|
-
// Continue -- visit the node's children.
|
323
|
-
break;
|
324
|
-
case 'path':
|
325
|
-
if (node.classList.contains(imageBackgroundCSSClassName)) {
|
326
|
-
yield this.addBackground(node);
|
327
|
-
}
|
328
|
-
else {
|
329
|
-
yield this.addPath(node);
|
330
|
-
}
|
331
|
-
break;
|
332
|
-
case 'text':
|
333
|
-
yield this.addText(node);
|
334
|
-
visitChildren = false;
|
335
|
-
break;
|
336
|
-
case 'image':
|
337
|
-
yield this.addImage(node);
|
338
|
-
// Images should not have children.
|
339
|
-
visitChildren = false;
|
340
|
-
break;
|
341
|
-
case 'svg':
|
342
|
-
this.updateViewBox(node);
|
343
|
-
this.updateSVGAttrs(node);
|
344
|
-
break;
|
345
|
-
case 'style':
|
346
|
-
yield this.addUnknownNode(node);
|
347
|
-
break;
|
348
|
-
default:
|
349
|
-
console.warn('Unknown SVG element,', node);
|
350
|
-
if (!(node instanceof SVGElement)) {
|
351
|
-
console.warn('Element', node, 'is not an SVGElement!', this.storeUnknown ? 'Continuing anyway.' : 'Skipping.');
|
352
|
-
}
|
353
|
-
yield this.addUnknownNode(node);
|
354
|
-
return;
|
355
|
-
}
|
356
|
-
if (visitChildren) {
|
357
|
-
for (const child of node.children) {
|
358
|
-
yield this.visit(child);
|
359
|
-
}
|
360
|
-
}
|
361
|
-
this.processedCount++;
|
362
|
-
yield ((_a = this.onProgress) === null || _a === void 0 ? void 0 : _a.call(this, this.processedCount, this.totalToProcess));
|
363
|
-
});
|
364
|
-
}
|
365
|
-
// Get SVG element attributes (e.g. xlink=...)
|
366
|
-
getSourceAttrs(node) {
|
367
|
-
return node.getAttributeNames().map(attr => {
|
368
|
-
return [attr, node.getAttribute(attr)];
|
369
|
-
});
|
370
|
-
}
|
371
|
-
start(onAddComponent, onProgress, onDetermineExportRect = null) {
|
372
|
-
var _a, _b;
|
373
|
-
return __awaiter(this, void 0, void 0, function* () {
|
374
|
-
this.onAddComponent = onAddComponent;
|
375
|
-
this.onProgress = onProgress;
|
376
|
-
this.onDetermineExportRect = onDetermineExportRect;
|
377
|
-
// Estimate the number of tags to process.
|
378
|
-
this.totalToProcess = this.source.childElementCount;
|
379
|
-
this.processedCount = 0;
|
380
|
-
this.rootViewBox = null;
|
381
|
-
yield this.visit(this.source);
|
382
|
-
const viewBox = this.rootViewBox;
|
383
|
-
if (!viewBox) {
|
384
|
-
(_a = this.onDetermineExportRect) === null || _a === void 0 ? void 0 : _a.call(this, defaultSVGViewRect);
|
385
|
-
}
|
386
|
-
(_b = this.onFinish) === null || _b === void 0 ? void 0 : _b.call(this);
|
387
|
-
});
|
388
|
-
}
|
389
|
-
/**
|
390
|
-
* Create an `SVGLoader` from the content of an SVG image. SVGs are loaded within a sandboxed
|
391
|
-
* iframe with `sandbox="allow-same-origin"`
|
392
|
-
* [thereby disabling JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox).
|
393
|
-
*
|
394
|
-
* @see {@link Editor.loadFrom}
|
395
|
-
* @param text - Textual representation of the SVG (e.g. `<svg viewbox='...'>...</svg>`).
|
396
|
-
* @param sanitize - if `true`, don't store unknown attributes.
|
397
|
-
*/
|
398
|
-
static fromString(text, sanitize = false) {
|
399
|
-
var _a, _b;
|
400
|
-
const sandbox = document.createElement('iframe');
|
401
|
-
sandbox.src = 'about:blank';
|
402
|
-
sandbox.setAttribute('sandbox', 'allow-same-origin');
|
403
|
-
sandbox.setAttribute('csp', 'default-src \'about:blank\'');
|
404
|
-
sandbox.style.display = 'none';
|
405
|
-
// Required to access the frame's DOM. See https://stackoverflow.com/a/17777943/17055750
|
406
|
-
document.body.appendChild(sandbox);
|
407
|
-
if (!sandbox.hasAttribute('sandbox')) {
|
408
|
-
sandbox.remove();
|
409
|
-
throw new Error('SVG loading iframe is not sandboxed.');
|
410
|
-
}
|
411
|
-
const sandboxDoc = (_b = (_a = sandbox.contentWindow) === null || _a === void 0 ? void 0 : _a.document) !== null && _b !== void 0 ? _b : sandbox.contentDocument;
|
412
|
-
if (sandboxDoc == null)
|
413
|
-
throw new Error('Unable to open a sandboxed iframe!');
|
414
|
-
sandboxDoc.open();
|
415
|
-
sandboxDoc.write(`
|
416
|
-
<!DOCTYPE html>
|
417
|
-
<html>
|
418
|
-
<head>
|
419
|
-
<title>SVG Loading Sandbox</title>
|
420
|
-
<meta name='viewport' conent='width=device-width,initial-scale=1.0'/>
|
421
|
-
<meta charset='utf-8'/>
|
422
|
-
</head>
|
423
|
-
<body style='font-size: 12px;'>
|
424
|
-
<script>
|
425
|
-
console.error('JavaScript should not be able to run here!');
|
426
|
-
throw new Error(
|
427
|
-
'The SVG sandbox is broken! Please double-check the sandboxing setting.'
|
428
|
-
);
|
429
|
-
</script>
|
430
|
-
</body>
|
431
|
-
</html>
|
432
|
-
`);
|
433
|
-
sandboxDoc.close();
|
434
|
-
const svgElem = sandboxDoc.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
435
|
-
svgElem.innerHTML = text;
|
436
|
-
sandboxDoc.body.appendChild(svgElem);
|
437
|
-
return new SVGLoader(svgElem, () => {
|
438
|
-
svgElem.remove();
|
439
|
-
sandbox.remove();
|
440
|
-
}, !sanitize);
|
441
|
-
}
|
442
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import Editor from './Editor';
|
2
|
-
import Command from './commands/Command';
|
3
|
-
type AnnounceRedoCallback = (command: Command) => void;
|
4
|
-
type AnnounceUndoCallback = (command: Command) => void;
|
5
|
-
declare class UndoRedoHistory {
|
6
|
-
#private;
|
7
|
-
private readonly editor;
|
8
|
-
private announceRedoCallback;
|
9
|
-
private announceUndoCallback;
|
10
|
-
private readonly maxUndoRedoStackSize;
|
11
|
-
constructor(editor: Editor, announceRedoCallback: AnnounceRedoCallback, announceUndoCallback: AnnounceUndoCallback);
|
12
|
-
private fireUpdateEvent;
|
13
|
-
push(command: Command, apply?: boolean): void;
|
14
|
-
undo(): void;
|
15
|
-
redo(): void;
|
16
|
-
get undoStackSize(): number;
|
17
|
-
get redoStackSize(): number;
|
18
|
-
}
|
19
|
-
export default UndoRedoHistory;
|
@@ -1,91 +0,0 @@
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
6
|
-
};
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
11
|
-
};
|
12
|
-
var _UndoRedoHistory_undoStack, _UndoRedoHistory_redoStack;
|
13
|
-
import { EditorEventType, UndoEventType } from './types.mjs';
|
14
|
-
class UndoRedoHistory {
|
15
|
-
// @internal
|
16
|
-
constructor(editor, announceRedoCallback, announceUndoCallback) {
|
17
|
-
this.editor = editor;
|
18
|
-
this.announceRedoCallback = announceRedoCallback;
|
19
|
-
this.announceUndoCallback = announceUndoCallback;
|
20
|
-
_UndoRedoHistory_undoStack.set(this, void 0);
|
21
|
-
_UndoRedoHistory_redoStack.set(this, void 0);
|
22
|
-
this.maxUndoRedoStackSize = 700;
|
23
|
-
__classPrivateFieldSet(this, _UndoRedoHistory_undoStack, [], "f");
|
24
|
-
__classPrivateFieldSet(this, _UndoRedoHistory_redoStack, [], "f");
|
25
|
-
}
|
26
|
-
fireUpdateEvent(stackUpdateType, triggeringCommand) {
|
27
|
-
this.editor.notifier.dispatch(EditorEventType.UndoRedoStackUpdated, {
|
28
|
-
kind: EditorEventType.UndoRedoStackUpdated,
|
29
|
-
undoStackSize: __classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").length,
|
30
|
-
redoStackSize: __classPrivateFieldGet(this, _UndoRedoHistory_redoStack, "f").length,
|
31
|
-
command: triggeringCommand,
|
32
|
-
stackUpdateType,
|
33
|
-
});
|
34
|
-
}
|
35
|
-
// Adds the given command to this and applies it to the editor.
|
36
|
-
push(command, apply = true) {
|
37
|
-
if (apply) {
|
38
|
-
command.apply(this.editor);
|
39
|
-
}
|
40
|
-
__classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").push(command);
|
41
|
-
for (const elem of __classPrivateFieldGet(this, _UndoRedoHistory_redoStack, "f")) {
|
42
|
-
elem.onDrop(this.editor);
|
43
|
-
}
|
44
|
-
__classPrivateFieldSet(this, _UndoRedoHistory_redoStack, [], "f");
|
45
|
-
if (__classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").length > this.maxUndoRedoStackSize) {
|
46
|
-
const removeAtOnceCount = Math.ceil(this.maxUndoRedoStackSize / 100);
|
47
|
-
const removedElements = __classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").splice(0, removeAtOnceCount);
|
48
|
-
removedElements.forEach(elem => elem.onDrop(this.editor));
|
49
|
-
}
|
50
|
-
this.fireUpdateEvent(UndoEventType.CommandDone, command);
|
51
|
-
this.editor.notifier.dispatch(EditorEventType.CommandDone, {
|
52
|
-
kind: EditorEventType.CommandDone,
|
53
|
-
command,
|
54
|
-
});
|
55
|
-
}
|
56
|
-
// Remove the last command from this' undo stack and apply it.
|
57
|
-
undo() {
|
58
|
-
const command = __classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").pop();
|
59
|
-
if (command) {
|
60
|
-
__classPrivateFieldGet(this, _UndoRedoHistory_redoStack, "f").push(command);
|
61
|
-
command.unapply(this.editor);
|
62
|
-
this.announceUndoCallback(command);
|
63
|
-
this.fireUpdateEvent(UndoEventType.CommandUndone, command);
|
64
|
-
this.editor.notifier.dispatch(EditorEventType.CommandUndone, {
|
65
|
-
kind: EditorEventType.CommandUndone,
|
66
|
-
command,
|
67
|
-
});
|
68
|
-
}
|
69
|
-
}
|
70
|
-
redo() {
|
71
|
-
const command = __classPrivateFieldGet(this, _UndoRedoHistory_redoStack, "f").pop();
|
72
|
-
if (command) {
|
73
|
-
__classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").push(command);
|
74
|
-
command.apply(this.editor);
|
75
|
-
this.announceRedoCallback(command);
|
76
|
-
this.fireUpdateEvent(UndoEventType.CommandRedone, command);
|
77
|
-
this.editor.notifier.dispatch(EditorEventType.CommandDone, {
|
78
|
-
kind: EditorEventType.CommandDone,
|
79
|
-
command,
|
80
|
-
});
|
81
|
-
}
|
82
|
-
}
|
83
|
-
get undoStackSize() {
|
84
|
-
return __classPrivateFieldGet(this, _UndoRedoHistory_undoStack, "f").length;
|
85
|
-
}
|
86
|
-
get redoStackSize() {
|
87
|
-
return __classPrivateFieldGet(this, _UndoRedoHistory_redoStack, "f").length;
|
88
|
-
}
|
89
|
-
}
|
90
|
-
_UndoRedoHistory_undoStack = new WeakMap(), _UndoRedoHistory_redoStack = new WeakMap();
|
91
|
-
export default UndoRedoHistory;
|