js-draw 0.25.1 → 1.0.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/README.md +60 -20
- package/build-config.json +22 -21
- package/dist/Editor.css +1281 -0
- package/dist/bundle.js +3 -3
- package/dist/bundledStyles.js +1 -1
- package/dist/cjs/Editor.d.ts +91 -12
- package/dist/cjs/Editor.js +619 -590
- package/dist/cjs/EditorImage.d.ts +5 -2
- package/dist/cjs/EditorImage.js +258 -297
- package/dist/cjs/EventDispatcher.js +17 -19
- package/dist/cjs/Pointer.d.ts +3 -1
- package/dist/cjs/Pointer.js +41 -44
- package/dist/cjs/SVGLoader.d.ts +7 -1
- package/dist/cjs/SVGLoader.js +373 -474
- package/dist/cjs/UndoRedoHistory.js +28 -40
- package/dist/cjs/Viewport.d.ts +1 -4
- package/dist/cjs/Viewport.js +150 -193
- package/dist/cjs/bundle/bundled.js +4 -1
- package/dist/cjs/commands/Command.js +22 -49
- package/dist/cjs/commands/Duplicate.js +28 -44
- package/dist/cjs/commands/Erase.js +36 -54
- package/dist/cjs/commands/SerializableCommand.js +20 -35
- package/dist/cjs/commands/UnresolvedCommand.js +14 -29
- package/dist/cjs/commands/invertCommand.js +29 -51
- package/dist/cjs/commands/lib.js +9 -6
- package/dist/cjs/commands/localization.d.ts +1 -1
- package/dist/cjs/commands/localization.js +9 -9
- package/dist/cjs/commands/uniteCommands.js +57 -87
- package/dist/cjs/components/AbstractComponent.d.ts +11 -3
- package/dist/cjs/components/AbstractComponent.js +141 -169
- package/dist/cjs/components/BackgroundComponent.d.ts +3 -6
- package/dist/cjs/components/BackgroundComponent.js +124 -149
- package/dist/cjs/components/ImageComponent.d.ts +3 -5
- package/dist/cjs/components/ImageComponent.js +95 -175
- package/dist/cjs/components/RestylableComponent.d.ts +1 -1
- package/dist/cjs/components/RestylableComponent.js +41 -56
- package/dist/cjs/components/SVGGlobalAttributesObject.d.ts +1 -3
- package/dist/cjs/components/SVGGlobalAttributesObject.js +34 -51
- package/dist/cjs/components/Stroke.d.ts +4 -6
- package/dist/cjs/components/Stroke.js +95 -121
- package/dist/cjs/components/TextComponent.d.ts +2 -4
- package/dist/cjs/components/TextComponent.js +189 -234
- package/dist/cjs/components/UnknownSVGObject.d.ts +1 -3
- package/dist/cjs/components/UnknownSVGObject.js +30 -43
- package/dist/cjs/components/builders/ArrowBuilder.d.ts +1 -1
- package/dist/cjs/components/builders/ArrowBuilder.js +43 -42
- package/dist/cjs/components/builders/CircleBuilder.js +43 -43
- package/dist/cjs/components/builders/FreehandLineBuilder.d.ts +3 -2
- package/dist/cjs/components/builders/FreehandLineBuilder.js +73 -86
- package/dist/cjs/components/builders/LineBuilder.d.ts +1 -1
- package/dist/cjs/components/builders/LineBuilder.js +38 -36
- package/dist/cjs/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +1 -1
- package/dist/cjs/components/builders/PressureSensitiveFreehandLineBuilder.js +131 -139
- package/dist/cjs/components/builders/RectangleBuilder.d.ts +1 -1
- package/dist/cjs/components/builders/RectangleBuilder.js +31 -31
- package/dist/cjs/components/builders/types.d.ts +1 -1
- package/dist/cjs/components/lib.d.ts +3 -1
- package/dist/cjs/components/lib.js +10 -7
- package/dist/cjs/components/localization.js +4 -4
- package/dist/cjs/components/util/StrokeSmoother.d.ts +1 -2
- package/dist/cjs/components/util/StrokeSmoother.js +67 -72
- package/dist/cjs/components/util/describeComponentList.d.ts +1 -1
- package/dist/cjs/components/util/describeComponentList.js +4 -5
- package/dist/cjs/dialogs/makeAboutDialog.d.ts +15 -0
- package/dist/cjs/dialogs/makeAboutDialog.js +54 -0
- package/dist/cjs/inputEvents.d.ts +84 -0
- package/dist/cjs/inputEvents.js +40 -0
- package/dist/cjs/lib.d.ts +29 -13
- package/dist/cjs/lib.js +38 -23
- package/dist/cjs/localization.js +19 -18
- package/dist/cjs/localizations/de.js +117 -13
- package/dist/cjs/localizations/en.js +4 -13
- package/dist/cjs/localizations/es.js +62 -23
- package/dist/cjs/localizations/getLocalizationTable.js +15 -13
- package/dist/cjs/rendering/Display.d.ts +1 -2
- package/dist/cjs/rendering/Display.js +70 -83
- package/dist/cjs/rendering/RenderablePathSpec.d.ts +15 -0
- package/dist/cjs/rendering/RenderablePathSpec.js +70 -0
- package/dist/cjs/rendering/RenderingStyle.d.ts +4 -4
- package/dist/cjs/rendering/RenderingStyle.js +18 -28
- package/dist/cjs/rendering/TextRenderingStyle.d.ts +10 -10
- package/dist/cjs/rendering/TextRenderingStyle.js +13 -18
- package/dist/cjs/rendering/caching/CacheRecord.d.ts +1 -2
- package/dist/cjs/rendering/caching/CacheRecord.js +20 -22
- package/dist/cjs/rendering/caching/CacheRecordManager.d.ts +1 -1
- package/dist/cjs/rendering/caching/CacheRecordManager.js +17 -15
- package/dist/cjs/rendering/caching/RenderingCache.js +19 -19
- package/dist/cjs/rendering/caching/RenderingCacheNode.d.ts +1 -1
- package/dist/cjs/rendering/caching/RenderingCacheNode.js +98 -118
- package/dist/cjs/rendering/caching/testUtils.js +24 -23
- package/dist/cjs/rendering/caching/types.d.ts +3 -3
- package/dist/cjs/rendering/lib.js +8 -5
- package/dist/cjs/rendering/localization.js +5 -5
- package/dist/cjs/rendering/renderers/AbstractRenderer.d.ts +2 -11
- package/dist/cjs/rendering/renderers/AbstractRenderer.js +53 -57
- package/dist/cjs/rendering/renderers/CanvasRenderer.d.ts +3 -5
- package/dist/cjs/rendering/renderers/CanvasRenderer.js +91 -106
- package/dist/cjs/rendering/renderers/DummyRenderer.d.ts +1 -4
- package/dist/cjs/rendering/renderers/DummyRenderer.js +56 -76
- package/dist/cjs/rendering/renderers/SVGRenderer.d.ts +5 -5
- package/dist/cjs/rendering/renderers/SVGRenderer.js +194 -176
- package/dist/cjs/rendering/renderers/TextOnlyRenderer.d.ts +1 -3
- package/dist/cjs/rendering/renderers/TextOnlyRenderer.js +47 -72
- package/dist/cjs/shortcuts/KeyBinding.d.ts +5 -0
- package/dist/cjs/shortcuts/KeyBinding.js +94 -70
- package/dist/cjs/shortcuts/KeyboardShortcutManager.d.ts +1 -1
- package/dist/cjs/shortcuts/KeyboardShortcutManager.js +36 -45
- package/dist/cjs/shortcuts/lib.js +5 -2
- package/dist/cjs/testing/createEditor.js +7 -4
- package/dist/cjs/testing/getUniquePointerId.js +4 -5
- package/dist/cjs/testing/lib.js +5 -2
- package/dist/cjs/testing/sendPenEvent.d.ts +2 -2
- package/dist/cjs/testing/sendPenEvent.js +10 -7
- package/dist/cjs/testing/sendTouchEvent.d.ts +2 -2
- package/dist/cjs/testing/sendTouchEvent.js +34 -16
- package/dist/cjs/toolbar/AbstractToolbar.d.ts +166 -0
- package/dist/cjs/toolbar/AbstractToolbar.js +410 -0
- package/dist/cjs/toolbar/DropdownToolbar.d.ts +43 -0
- package/dist/cjs/toolbar/DropdownToolbar.js +176 -0
- package/dist/cjs/toolbar/EdgeToolbar.d.ts +47 -0
- package/dist/cjs/toolbar/EdgeToolbar.js +422 -0
- package/dist/cjs/toolbar/IconProvider.d.ts +54 -30
- package/dist/cjs/toolbar/IconProvider.js +652 -224
- package/dist/cjs/toolbar/constants.d.ts +1 -0
- package/dist/cjs/toolbar/constants.js +4 -0
- package/dist/cjs/toolbar/lib.d.ts +4 -2
- package/dist/cjs/toolbar/lib.js +10 -3
- package/dist/cjs/toolbar/localization.d.ts +9 -2
- package/dist/cjs/toolbar/localization.js +26 -19
- package/dist/cjs/toolbar/types.d.ts +7 -0
- package/dist/cjs/toolbar/widgets/ActionButtonWidget.d.ts +1 -1
- package/dist/cjs/toolbar/widgets/ActionButtonWidget.js +23 -39
- package/dist/cjs/toolbar/widgets/BaseToolWidget.d.ts +1 -1
- package/dist/cjs/toolbar/widgets/BaseToolWidget.js +35 -37
- package/dist/cjs/toolbar/widgets/BaseWidget.d.ts +60 -5
- package/dist/cjs/toolbar/widgets/BaseWidget.js +232 -177
- package/dist/cjs/toolbar/widgets/DocumentPropertiesWidget.js +130 -117
- package/dist/cjs/toolbar/widgets/EraserToolWidget.d.ts +1 -3
- package/dist/cjs/toolbar/widgets/EraserToolWidget.js +45 -73
- package/dist/cjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/HandToolWidget.js +126 -141
- package/dist/cjs/toolbar/widgets/InsertImageWidget.d.ts +9 -7
- package/dist/cjs/toolbar/widgets/InsertImageWidget.js +147 -212
- package/dist/cjs/toolbar/widgets/OverflowWidget.js +33 -61
- package/dist/cjs/toolbar/widgets/PenToolWidget.d.ts +8 -1
- package/dist/cjs/toolbar/widgets/PenToolWidget.js +162 -234
- package/dist/cjs/toolbar/widgets/SelectionToolWidget.d.ts +3 -1
- package/dist/cjs/toolbar/widgets/SelectionToolWidget.js +105 -177
- package/dist/cjs/toolbar/widgets/TextToolWidget.js +64 -87
- package/dist/cjs/toolbar/widgets/components/makeColorInput.d.ts +10 -0
- package/dist/cjs/toolbar/{makeColorInput.js → widgets/components/makeColorInput.js} +57 -34
- package/dist/cjs/toolbar/widgets/components/makeFileInput.d.ts +12 -0
- package/dist/cjs/toolbar/widgets/components/makeFileInput.js +111 -0
- package/dist/cjs/toolbar/widgets/components/makeGridSelector.d.ts +24 -0
- package/dist/cjs/toolbar/widgets/components/makeGridSelector.js +127 -0
- package/dist/cjs/toolbar/widgets/components/makeSeparator.d.ts +7 -0
- package/dist/cjs/toolbar/widgets/components/makeSeparator.js +16 -0
- package/dist/cjs/toolbar/widgets/components/makeThicknessSlider.d.ts +8 -0
- package/dist/cjs/toolbar/widgets/components/makeThicknessSlider.js +47 -0
- package/dist/cjs/toolbar/widgets/keybindings.js +8 -5
- package/dist/cjs/toolbar/widgets/layout/DropdownLayoutManager.d.ts +21 -0
- package/dist/cjs/toolbar/widgets/layout/DropdownLayoutManager.js +199 -0
- package/dist/cjs/toolbar/widgets/layout/EdgeToolbarLayoutManager.d.ts +14 -0
- package/dist/cjs/toolbar/widgets/layout/EdgeToolbarLayoutManager.js +60 -0
- package/dist/cjs/toolbar/widgets/layout/types.d.ts +63 -0
- package/dist/cjs/toolbar/widgets/layout/types.js +2 -0
- package/dist/cjs/toolbar/widgets/lib.d.ts +1 -1
- package/dist/cjs/toolbar/widgets/lib.js +15 -11
- package/dist/cjs/tools/BaseTool.d.ts +28 -9
- package/dist/cjs/tools/BaseTool.js +128 -51
- package/dist/cjs/tools/Eraser.d.ts +8 -1
- package/dist/cjs/tools/Eraser.js +82 -92
- package/dist/cjs/tools/FindTool.d.ts +1 -1
- package/dist/cjs/tools/FindTool.js +61 -77
- package/dist/cjs/tools/InputFilter/FunctionMapper.d.ts +12 -0
- package/dist/cjs/tools/InputFilter/FunctionMapper.js +21 -0
- package/dist/cjs/tools/InputFilter/InputMapper.d.ts +23 -0
- package/dist/cjs/tools/InputFilter/InputMapper.js +38 -0
- package/dist/cjs/tools/InputFilter/InputPipeline.d.ts +15 -0
- package/dist/cjs/tools/InputFilter/InputPipeline.js +54 -0
- package/dist/cjs/tools/InputFilter/InputStabilizer.d.ts +29 -0
- package/dist/cjs/tools/InputFilter/InputStabilizer.js +181 -0
- package/dist/cjs/tools/InputFilter/StrokeKeyboardControl.d.ts +21 -0
- package/dist/cjs/tools/InputFilter/StrokeKeyboardControl.js +84 -0
- package/dist/cjs/tools/PanZoom.d.ts +4 -2
- package/dist/cjs/tools/PanZoom.js +186 -248
- package/dist/cjs/tools/PasteHandler.d.ts +1 -1
- package/dist/cjs/tools/PasteHandler.js +49 -148
- package/dist/cjs/tools/Pen.d.ts +12 -11
- package/dist/cjs/tools/Pen.js +123 -158
- package/dist/cjs/tools/PipetteTool.d.ts +11 -2
- package/dist/cjs/tools/PipetteTool.js +51 -48
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +1 -1
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.js +15 -30
- package/dist/cjs/tools/SelectionTool/Selection.d.ts +5 -5
- package/dist/cjs/tools/SelectionTool/Selection.js +308 -415
- package/dist/cjs/tools/SelectionTool/SelectionHandle.d.ts +15 -5
- package/dist/cjs/tools/SelectionTool/SelectionHandle.js +63 -37
- package/dist/cjs/tools/SelectionTool/SelectionTool.d.ts +4 -4
- package/dist/cjs/tools/SelectionTool/SelectionTool.js +164 -187
- package/dist/cjs/tools/SelectionTool/TransformMode.d.ts +1 -1
- package/dist/cjs/tools/SelectionTool/TransformMode.js +65 -66
- package/dist/cjs/tools/SoundUITool.d.ts +2 -1
- package/dist/cjs/tools/SoundUITool.js +70 -84
- package/dist/cjs/tools/TextTool.d.ts +5 -3
- package/dist/cjs/tools/TextTool.js +169 -173
- package/dist/cjs/tools/ToolController.d.ts +16 -2
- package/dist/cjs/tools/ToolController.js +124 -100
- package/dist/cjs/tools/ToolEnabledGroup.js +6 -9
- package/dist/cjs/tools/ToolSwitcherShortcut.d.ts +1 -1
- package/dist/cjs/tools/ToolSwitcherShortcut.js +16 -32
- package/dist/cjs/tools/ToolbarShortcutHandler.d.ts +1 -1
- package/dist/cjs/tools/ToolbarShortcutHandler.js +17 -33
- package/dist/cjs/tools/UndoRedoShortcut.d.ts +1 -1
- package/dist/cjs/tools/UndoRedoShortcut.js +12 -27
- package/dist/cjs/tools/keybindings.js +21 -18
- package/dist/cjs/tools/lib.js +17 -14
- package/dist/cjs/tools/localization.d.ts +2 -1
- package/dist/cjs/tools/localization.js +8 -7
- package/dist/cjs/types.d.ts +22 -80
- package/dist/cjs/types.js +8 -16
- package/dist/cjs/util/ReactiveValue.d.ts +65 -0
- package/dist/cjs/util/ReactiveValue.js +166 -0
- package/dist/cjs/util/assertions.js +5 -8
- package/dist/cjs/util/fileToBase64.js +6 -6
- package/dist/cjs/util/guessKeyCodeFromKey.d.ts +9 -0
- package/dist/cjs/util/guessKeyCodeFromKey.js +32 -0
- package/dist/cjs/util/listPrefixMatch.d.ts +6 -0
- package/dist/cjs/util/listPrefixMatch.js +17 -0
- package/dist/cjs/util/stopPropagationOfScrollingWheelEvents.d.ts +2 -0
- package/dist/cjs/util/stopPropagationOfScrollingWheelEvents.js +17 -0
- package/dist/cjs/util/untilNextAnimationFrame.js +3 -3
- package/dist/cjs/util/waitForAll.js +3 -3
- package/dist/cjs/util/waitForTimeout.js +3 -3
- package/dist/cjs/version.d.ts +4 -0
- package/dist/cjs/version.js +5 -0
- package/dist/mjs/Editor.d.ts +91 -12
- package/dist/mjs/Editor.mjs +565 -563
- package/dist/mjs/EditorImage.d.ts +5 -2
- package/dist/mjs/EditorImage.mjs +248 -291
- package/dist/mjs/EventDispatcher.mjs +17 -20
- package/dist/mjs/Pointer.d.ts +3 -1
- package/dist/mjs/Pointer.mjs +40 -44
- package/dist/mjs/SVGLoader.d.ts +7 -1
- package/dist/mjs/SVGLoader.mjs +338 -466
- package/dist/mjs/UndoRedoHistory.mjs +27 -39
- package/dist/mjs/Viewport.d.ts +1 -4
- package/dist/mjs/Viewport.mjs +139 -187
- package/dist/mjs/commands/Command.mjs +21 -49
- package/dist/mjs/commands/Duplicate.mjs +22 -41
- package/dist/mjs/commands/Erase.mjs +30 -51
- package/dist/mjs/commands/SerializableCommand.mjs +16 -34
- package/dist/mjs/commands/UnresolvedCommand.mjs +10 -29
- package/dist/mjs/commands/invertCommand.mjs +24 -49
- package/dist/mjs/commands/localization.d.ts +1 -1
- package/dist/mjs/commands/localization.mjs +10 -10
- package/dist/mjs/commands/uniteCommands.mjs +52 -85
- package/dist/mjs/components/AbstractComponent.d.ts +11 -3
- package/dist/mjs/components/AbstractComponent.mjs +135 -166
- package/dist/mjs/components/BackgroundComponent.d.ts +3 -6
- package/dist/mjs/components/BackgroundComponent.mjs +107 -136
- package/dist/mjs/components/ImageComponent.d.ts +3 -5
- package/dist/mjs/components/ImageComponent.mjs +90 -174
- package/dist/mjs/components/RestylableComponent.d.ts +1 -1
- package/dist/mjs/components/RestylableComponent.mjs +35 -53
- package/dist/mjs/components/SVGGlobalAttributesObject.d.ts +1 -3
- package/dist/mjs/components/SVGGlobalAttributesObject.mjs +29 -50
- package/dist/mjs/components/Stroke.d.ts +4 -6
- package/dist/mjs/components/Stroke.mjs +89 -119
- package/dist/mjs/components/TextComponent.d.ts +2 -4
- package/dist/mjs/components/TextComponent.mjs +180 -228
- package/dist/mjs/components/UnknownSVGObject.d.ts +1 -3
- package/dist/mjs/components/UnknownSVGObject.mjs +26 -43
- package/dist/mjs/components/builders/ArrowBuilder.d.ts +1 -1
- package/dist/mjs/components/builders/ArrowBuilder.mjs +32 -35
- package/dist/mjs/components/builders/CircleBuilder.mjs +35 -38
- package/dist/mjs/components/builders/FreehandLineBuilder.d.ts +3 -2
- package/dist/mjs/components/builders/FreehandLineBuilder.mjs +52 -69
- package/dist/mjs/components/builders/LineBuilder.d.ts +1 -1
- package/dist/mjs/components/builders/LineBuilder.mjs +30 -32
- package/dist/mjs/components/builders/PressureSensitiveFreehandLineBuilder.d.ts +1 -1
- package/dist/mjs/components/builders/PressureSensitiveFreehandLineBuilder.mjs +103 -115
- package/dist/mjs/components/builders/RectangleBuilder.d.ts +1 -1
- package/dist/mjs/components/builders/RectangleBuilder.mjs +27 -31
- package/dist/mjs/components/builders/types.d.ts +1 -1
- package/dist/mjs/components/lib.d.ts +3 -1
- package/dist/mjs/components/lib.mjs +1 -1
- package/dist/mjs/components/localization.mjs +5 -5
- package/dist/mjs/components/util/StrokeSmoother.d.ts +1 -2
- package/dist/mjs/components/util/StrokeSmoother.mjs +63 -69
- package/dist/mjs/components/util/describeComponentList.d.ts +1 -1
- package/dist/mjs/components/util/describeComponentList.mjs +4 -5
- package/dist/mjs/dialogs/makeAboutDialog.d.ts +15 -0
- package/dist/mjs/dialogs/makeAboutDialog.mjs +52 -0
- package/dist/mjs/inputEvents.d.ts +84 -0
- package/dist/mjs/inputEvents.mjs +34 -0
- package/dist/mjs/lib.d.ts +29 -13
- package/dist/mjs/lib.mjs +30 -13
- package/dist/mjs/localization.mjs +14 -13
- package/dist/mjs/localizations/de.mjs +116 -12
- package/dist/mjs/localizations/en.mjs +3 -12
- package/dist/mjs/localizations/es.mjs +61 -22
- package/dist/mjs/localizations/getLocalizationTable.mjs +12 -13
- package/dist/mjs/rendering/Display.d.ts +1 -2
- package/dist/mjs/rendering/Display.mjs +62 -79
- package/dist/mjs/rendering/RenderablePathSpec.d.ts +15 -0
- package/dist/mjs/rendering/RenderablePathSpec.mjs +64 -0
- package/dist/mjs/rendering/RenderingStyle.d.ts +4 -4
- package/dist/mjs/rendering/RenderingStyle.mjs +16 -26
- package/dist/mjs/rendering/TextRenderingStyle.d.ts +10 -10
- package/dist/mjs/rendering/TextRenderingStyle.mjs +12 -17
- package/dist/mjs/rendering/caching/CacheRecord.d.ts +1 -2
- package/dist/mjs/rendering/caching/CacheRecord.mjs +20 -23
- package/dist/mjs/rendering/caching/CacheRecordManager.d.ts +1 -1
- package/dist/mjs/rendering/caching/CacheRecordManager.mjs +13 -15
- package/dist/mjs/rendering/caching/RenderingCache.mjs +13 -17
- package/dist/mjs/rendering/caching/RenderingCacheNode.d.ts +1 -1
- package/dist/mjs/rendering/caching/RenderingCacheNode.mjs +94 -115
- package/dist/mjs/rendering/caching/testUtils.mjs +19 -21
- package/dist/mjs/rendering/caching/types.d.ts +3 -3
- package/dist/mjs/rendering/localization.mjs +6 -6
- package/dist/mjs/rendering/renderers/AbstractRenderer.d.ts +2 -11
- package/dist/mjs/rendering/renderers/AbstractRenderer.mjs +47 -52
- package/dist/mjs/rendering/renderers/CanvasRenderer.d.ts +3 -5
- package/dist/mjs/rendering/renderers/CanvasRenderer.mjs +84 -103
- package/dist/mjs/rendering/renderers/DummyRenderer.d.ts +1 -4
- package/dist/mjs/rendering/renderers/DummyRenderer.mjs +51 -75
- package/dist/mjs/rendering/renderers/SVGRenderer.d.ts +5 -5
- package/dist/mjs/rendering/renderers/SVGRenderer.mjs +185 -171
- package/dist/mjs/rendering/renderers/TextOnlyRenderer.d.ts +1 -3
- package/dist/mjs/rendering/renderers/TextOnlyRenderer.mjs +43 -72
- package/dist/mjs/shortcuts/KeyBinding.d.ts +5 -0
- package/dist/mjs/shortcuts/KeyBinding.mjs +94 -71
- package/dist/mjs/shortcuts/KeyboardShortcutManager.d.ts +1 -1
- package/dist/mjs/shortcuts/KeyboardShortcutManager.mjs +32 -44
- package/dist/mjs/testing/createEditor.mjs +2 -2
- package/dist/mjs/testing/getUniquePointerId.mjs +4 -5
- package/dist/mjs/testing/sendPenEvent.d.ts +2 -2
- package/dist/mjs/testing/sendPenEvent.mjs +5 -5
- package/dist/mjs/testing/sendTouchEvent.d.ts +2 -2
- package/dist/mjs/testing/sendTouchEvent.mjs +8 -16
- package/dist/mjs/toolbar/AbstractToolbar.d.ts +166 -0
- package/dist/mjs/toolbar/AbstractToolbar.mjs +405 -0
- package/dist/mjs/toolbar/DropdownToolbar.d.ts +43 -0
- package/dist/mjs/toolbar/DropdownToolbar.mjs +168 -0
- package/dist/mjs/toolbar/EdgeToolbar.d.ts +47 -0
- package/dist/mjs/toolbar/EdgeToolbar.mjs +414 -0
- package/dist/mjs/toolbar/IconProvider.d.ts +54 -30
- package/dist/mjs/toolbar/IconProvider.mjs +644 -219
- package/dist/mjs/toolbar/constants.d.ts +1 -0
- package/dist/mjs/toolbar/constants.mjs +1 -0
- package/dist/mjs/toolbar/lib.d.ts +4 -2
- package/dist/mjs/toolbar/lib.mjs +3 -1
- package/dist/mjs/toolbar/localization.d.ts +9 -2
- package/dist/mjs/toolbar/localization.mjs +27 -20
- package/dist/mjs/toolbar/types.d.ts +7 -0
- package/dist/mjs/toolbar/widgets/ActionButtonWidget.d.ts +1 -1
- package/dist/mjs/toolbar/widgets/ActionButtonWidget.mjs +19 -39
- package/dist/mjs/toolbar/widgets/BaseToolWidget.d.ts +1 -1
- package/dist/mjs/toolbar/widgets/BaseToolWidget.mjs +30 -36
- package/dist/mjs/toolbar/widgets/BaseWidget.d.ts +60 -5
- package/dist/mjs/toolbar/widgets/BaseWidget.mjs +227 -176
- package/dist/mjs/toolbar/widgets/DocumentPropertiesWidget.mjs +98 -111
- package/dist/mjs/toolbar/widgets/EraserToolWidget.d.ts +1 -3
- package/dist/mjs/toolbar/widgets/EraserToolWidget.mjs +41 -73
- package/dist/mjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/HandToolWidget.mjs +94 -136
- package/dist/mjs/toolbar/widgets/InsertImageWidget.d.ts +9 -7
- package/dist/mjs/toolbar/widgets/InsertImageWidget.mjs +140 -208
- package/dist/mjs/toolbar/widgets/OverflowWidget.mjs +30 -62
- package/dist/mjs/toolbar/widgets/PenToolWidget.d.ts +8 -1
- package/dist/mjs/toolbar/widgets/PenToolWidget.mjs +150 -225
- package/dist/mjs/toolbar/widgets/SelectionToolWidget.d.ts +3 -1
- package/dist/mjs/toolbar/widgets/SelectionToolWidget.mjs +97 -173
- package/dist/mjs/toolbar/widgets/TextToolWidget.mjs +59 -85
- package/dist/mjs/toolbar/widgets/components/makeColorInput.d.ts +10 -0
- package/dist/mjs/toolbar/{makeColorInput.mjs → widgets/components/makeColorInput.mjs} +53 -33
- package/dist/mjs/toolbar/widgets/components/makeFileInput.d.ts +12 -0
- package/dist/mjs/toolbar/widgets/components/makeFileInput.mjs +106 -0
- package/dist/mjs/toolbar/widgets/components/makeGridSelector.d.ts +24 -0
- package/dist/mjs/toolbar/widgets/components/makeGridSelector.mjs +122 -0
- package/dist/mjs/toolbar/widgets/components/makeSeparator.d.ts +7 -0
- package/dist/mjs/toolbar/widgets/components/makeSeparator.mjs +14 -0
- package/dist/mjs/toolbar/widgets/components/makeThicknessSlider.d.ts +8 -0
- package/dist/mjs/toolbar/widgets/components/makeThicknessSlider.mjs +45 -0
- package/dist/mjs/toolbar/widgets/keybindings.mjs +5 -5
- package/dist/mjs/toolbar/widgets/layout/DropdownLayoutManager.d.ts +21 -0
- package/dist/mjs/toolbar/widgets/layout/DropdownLayoutManager.mjs +193 -0
- package/dist/mjs/toolbar/widgets/layout/EdgeToolbarLayoutManager.d.ts +14 -0
- package/dist/mjs/toolbar/widgets/layout/EdgeToolbarLayoutManager.mjs +57 -0
- package/dist/mjs/toolbar/widgets/layout/types.d.ts +63 -0
- package/dist/mjs/toolbar/widgets/lib.d.ts +1 -1
- package/dist/mjs/toolbar/widgets/lib.mjs +1 -1
- package/dist/mjs/tools/BaseTool.d.ts +28 -9
- package/dist/mjs/tools/BaseTool.mjs +127 -50
- package/dist/mjs/tools/Eraser.d.ts +8 -1
- package/dist/mjs/tools/Eraser.mjs +72 -86
- package/dist/mjs/tools/FindTool.d.ts +1 -1
- package/dist/mjs/tools/FindTool.mjs +55 -75
- package/dist/mjs/tools/InputFilter/FunctionMapper.d.ts +12 -0
- package/dist/mjs/tools/InputFilter/FunctionMapper.mjs +15 -0
- package/dist/mjs/tools/InputFilter/InputMapper.d.ts +23 -0
- package/dist/mjs/tools/InputFilter/InputMapper.mjs +36 -0
- package/dist/mjs/tools/InputFilter/InputPipeline.d.ts +15 -0
- package/dist/mjs/tools/InputFilter/InputPipeline.mjs +49 -0
- package/dist/mjs/tools/InputFilter/InputStabilizer.d.ts +29 -0
- package/dist/mjs/tools/InputFilter/InputStabilizer.mjs +175 -0
- package/dist/mjs/tools/InputFilter/StrokeKeyboardControl.d.ts +21 -0
- package/dist/mjs/tools/InputFilter/StrokeKeyboardControl.mjs +78 -0
- package/dist/mjs/tools/PanZoom.d.ts +4 -2
- package/dist/mjs/tools/PanZoom.mjs +169 -235
- package/dist/mjs/tools/PasteHandler.d.ts +1 -1
- package/dist/mjs/tools/PasteHandler.mjs +42 -145
- package/dist/mjs/tools/Pen.d.ts +12 -11
- package/dist/mjs/tools/Pen.mjs +115 -154
- package/dist/mjs/tools/PipetteTool.d.ts +11 -2
- package/dist/mjs/tools/PipetteTool.mjs +47 -48
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +1 -1
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.mjs +9 -28
- package/dist/mjs/tools/SelectionTool/Selection.d.ts +5 -5
- package/dist/mjs/tools/SelectionTool/Selection.mjs +268 -401
- package/dist/mjs/tools/SelectionTool/SelectionHandle.d.ts +15 -5
- package/dist/mjs/tools/SelectionTool/SelectionHandle.mjs +62 -37
- package/dist/mjs/tools/SelectionTool/SelectionTool.d.ts +4 -4
- package/dist/mjs/tools/SelectionTool/SelectionTool.mjs +153 -179
- package/dist/mjs/tools/SelectionTool/TransformMode.d.ts +1 -1
- package/dist/mjs/tools/SelectionTool/TransformMode.mjs +52 -59
- package/dist/mjs/tools/SoundUITool.d.ts +2 -1
- package/dist/mjs/tools/SoundUITool.mjs +66 -84
- package/dist/mjs/tools/TextTool.d.ts +5 -3
- package/dist/mjs/tools/TextTool.mjs +155 -163
- package/dist/mjs/tools/ToolController.d.ts +16 -2
- package/dist/mjs/tools/ToolController.mjs +81 -84
- package/dist/mjs/tools/ToolEnabledGroup.mjs +6 -10
- package/dist/mjs/tools/ToolSwitcherShortcut.d.ts +1 -1
- package/dist/mjs/tools/ToolSwitcherShortcut.mjs +12 -32
- package/dist/mjs/tools/ToolbarShortcutHandler.d.ts +1 -1
- package/dist/mjs/tools/ToolbarShortcutHandler.mjs +13 -33
- package/dist/mjs/tools/UndoRedoShortcut.d.ts +1 -1
- package/dist/mjs/tools/UndoRedoShortcut.mjs +7 -26
- package/dist/mjs/tools/keybindings.mjs +34 -34
- package/dist/mjs/tools/localization.d.ts +2 -1
- package/dist/mjs/tools/localization.mjs +9 -8
- package/dist/mjs/types.d.ts +22 -80
- package/dist/mjs/types.mjs +7 -15
- package/dist/mjs/util/ReactiveValue.d.ts +65 -0
- package/dist/mjs/util/ReactiveValue.mjs +161 -0
- package/dist/mjs/util/assertions.mjs +5 -8
- package/dist/mjs/util/fileToBase64.mjs +6 -6
- package/dist/mjs/util/guessKeyCodeFromKey.d.ts +9 -0
- package/dist/mjs/util/guessKeyCodeFromKey.mjs +30 -0
- package/dist/mjs/util/listPrefixMatch.d.ts +6 -0
- package/dist/mjs/util/listPrefixMatch.mjs +15 -0
- package/dist/mjs/util/stopPropagationOfScrollingWheelEvents.d.ts +2 -0
- package/dist/mjs/util/stopPropagationOfScrollingWheelEvents.mjs +15 -0
- package/dist/mjs/util/untilNextAnimationFrame.mjs +3 -3
- package/dist/mjs/util/waitForAll.mjs +3 -3
- package/dist/mjs/util/waitForTimeout.mjs +3 -3
- package/dist/mjs/version.d.ts +4 -0
- package/dist/mjs/version.mjs +3 -0
- package/package.json +11 -22
- package/src/Coloris.css +8 -8
- package/src/Editor.scss +148 -0
- package/src/dialogs/dialogs.scss +36 -0
- package/src/dialogs/makeAboutDialog.scss +41 -0
- package/src/styles.js +1 -1
- package/src/toolbar/{toolbar.css → AbstractToolbar.scss} +47 -85
- package/src/toolbar/DropdownToolbar.scss +46 -0
- package/src/toolbar/EdgeToolbar.scss +511 -0
- package/src/toolbar/toolbar.scss +11 -0
- package/src/toolbar/widgets/DocumentPropertiesWidget.scss +7 -0
- package/src/toolbar/widgets/HandToolWidget.scss +14 -0
- package/src/toolbar/widgets/InsertImageWidget.scss +41 -0
- package/src/toolbar/widgets/PenToolWidget.css +0 -51
- package/src/toolbar/widgets/SelectionToolWidget.scss +6 -0
- package/src/toolbar/widgets/components/components.scss +5 -0
- package/src/toolbar/widgets/components/makeColorInput.scss +82 -0
- package/src/toolbar/widgets/components/makeFileInput.scss +77 -0
- package/src/toolbar/widgets/components/makeGridSelector.scss +60 -0
- package/src/toolbar/widgets/components/makeSeparator.scss +14 -0
- package/src/toolbar/widgets/components/makeThicknessSlider.scss +9 -0
- package/src/tools/FindTool.css +3 -3
- package/src/tools/SelectionTool/SelectionTool.css +23 -11
- package/src/tools/tools.scss +4 -0
- package/tsconfig.json +1 -1
- package/typedoc.json +4 -0
- package/dist/cjs/Color4.d.ts +0 -69
- package/dist/cjs/Color4.js +0 -263
- package/dist/cjs/Editor.loadFrom.test.d.ts +0 -1
- package/dist/cjs/Editor.toSVG.test.d.ts +0 -1
- package/dist/cjs/EditorImage.test.d.ts +0 -1
- package/dist/cjs/EventDispatcher.test.d.ts +0 -1
- package/dist/cjs/SVGLoader.test.d.ts +0 -1
- package/dist/cjs/UndoRedoHistory.test.d.ts +0 -1
- package/dist/cjs/commands/uniteCommands.test.d.ts +0 -1
- package/dist/cjs/components/AbstractComponent.transformBy.test.d.ts +0 -1
- package/dist/cjs/components/BackgroundComponent.test.d.ts +0 -1
- package/dist/cjs/components/Stroke.test.d.ts +0 -1
- package/dist/cjs/components/TextComponent.test.d.ts +0 -1
- package/dist/cjs/components/UnknownSVGObject.test.d.ts +0 -1
- package/dist/cjs/components/builders/FreehandLineBuilder.test.d.ts +0 -1
- package/dist/cjs/localizations/getLocalizationTable.test.d.ts +0 -1
- package/dist/cjs/math/Mat33.d.ts +0 -123
- package/dist/cjs/math/Mat33.js +0 -340
- package/dist/cjs/math/Mat33.test.d.ts +0 -1
- package/dist/cjs/math/Vec2.d.ts +0 -33
- package/dist/cjs/math/Vec2.js +0 -37
- package/dist/cjs/math/Vec2.test.d.ts +0 -1
- package/dist/cjs/math/Vec3.d.ts +0 -106
- package/dist/cjs/math/Vec3.js +0 -183
- package/dist/cjs/math/Vec3.test.d.ts +0 -1
- package/dist/cjs/math/lib.d.ts +0 -7
- package/dist/cjs/math/lib.js +0 -15
- package/dist/cjs/math/polynomial/solveQuadratic.d.ts +0 -9
- package/dist/cjs/math/polynomial/solveQuadratic.js +0 -39
- package/dist/cjs/math/polynomial/solveQuadratic.test.d.ts +0 -1
- package/dist/cjs/math/rounding.d.ts +0 -4
- package/dist/cjs/math/rounding.js +0 -140
- package/dist/cjs/math/rounding.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Abstract2DShape.d.ts +0 -49
- package/dist/cjs/math/shapes/Abstract2DShape.js +0 -42
- package/dist/cjs/math/shapes/BezierJSWrapper.d.ts +0 -36
- package/dist/cjs/math/shapes/BezierJSWrapper.js +0 -109
- package/dist/cjs/math/shapes/CubicBezier.d.ts +0 -17
- package/dist/cjs/math/shapes/CubicBezier.js +0 -50
- package/dist/cjs/math/shapes/LineSegment2.d.ts +0 -70
- package/dist/cjs/math/shapes/LineSegment2.js +0 -204
- package/dist/cjs/math/shapes/LineSegment2.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Path.d.ts +0 -93
- package/dist/cjs/math/shapes/Path.fromString.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Path.js +0 -865
- package/dist/cjs/math/shapes/Path.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Path.toString.test.d.ts +0 -1
- package/dist/cjs/math/shapes/PointShape2D.d.ts +0 -18
- package/dist/cjs/math/shapes/PointShape2D.js +0 -46
- package/dist/cjs/math/shapes/QuadraticBezier.d.ts +0 -34
- package/dist/cjs/math/shapes/QuadraticBezier.js +0 -133
- package/dist/cjs/math/shapes/QuadraticBezier.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Rect2.d.ts +0 -57
- package/dist/cjs/math/shapes/Rect2.js +0 -311
- package/dist/cjs/math/shapes/Rect2.test.d.ts +0 -1
- package/dist/cjs/math/shapes/Triangle.d.ts +0 -46
- package/dist/cjs/math/shapes/Triangle.js +0 -148
- package/dist/cjs/math/shapes/Triangle.test.d.ts +0 -1
- package/dist/cjs/rendering/RenderingStyle.test.d.ts +0 -1
- package/dist/cjs/rendering/caching/CacheRecord.test.d.ts +0 -1
- package/dist/cjs/rendering/caching/RenderingCache.test.d.ts +0 -1
- package/dist/cjs/rendering/renderers/DummyRenderer.test.d.ts +0 -1
- package/dist/cjs/rendering/renderers/TextOnlyRenderer.test.d.ts +0 -1
- package/dist/cjs/shortcuts/KeyBinding.test.d.ts +0 -1
- package/dist/cjs/shortcuts/KeyboardShortcutManager.test.d.ts +0 -1
- package/dist/cjs/toolbar/HTMLToolbar.d.ts +0 -105
- package/dist/cjs/toolbar/HTMLToolbar.js +0 -465
- package/dist/cjs/toolbar/makeColorInput.d.ts +0 -6
- package/dist/cjs/tools/Eraser.test.d.ts +0 -1
- package/dist/cjs/tools/PanZoom.test.d.ts +0 -1
- package/dist/cjs/tools/Pen.test.d.ts +0 -1
- package/dist/cjs/tools/SelectionTool/SelectionTool.test.d.ts +0 -1
- package/dist/cjs/tools/UndoRedoShortcut.test.d.ts +0 -1
- package/dist/mjs/Color4.d.ts +0 -69
- package/dist/mjs/Color4.mjs +0 -260
- package/dist/mjs/Color4.test.d.ts +0 -1
- package/dist/mjs/Editor.loadFrom.test.d.ts +0 -1
- package/dist/mjs/Editor.toSVG.test.d.ts +0 -1
- package/dist/mjs/EditorImage.test.d.ts +0 -1
- package/dist/mjs/EventDispatcher.test.d.ts +0 -1
- package/dist/mjs/SVGLoader.test.d.ts +0 -1
- package/dist/mjs/UndoRedoHistory.test.d.ts +0 -1
- package/dist/mjs/commands/uniteCommands.test.d.ts +0 -1
- package/dist/mjs/components/AbstractComponent.transformBy.test.d.ts +0 -1
- package/dist/mjs/components/BackgroundComponent.test.d.ts +0 -1
- package/dist/mjs/components/Stroke.test.d.ts +0 -1
- package/dist/mjs/components/TextComponent.test.d.ts +0 -1
- package/dist/mjs/components/UnknownSVGObject.test.d.ts +0 -1
- package/dist/mjs/components/builders/FreehandLineBuilder.test.d.ts +0 -1
- package/dist/mjs/localizations/getLocalizationTable.test.d.ts +0 -1
- package/dist/mjs/math/Mat33.d.ts +0 -123
- package/dist/mjs/math/Mat33.mjs +0 -338
- package/dist/mjs/math/Mat33.test.d.ts +0 -1
- package/dist/mjs/math/Vec2.d.ts +0 -33
- package/dist/mjs/math/Vec2.mjs +0 -34
- package/dist/mjs/math/Vec2.test.d.ts +0 -1
- package/dist/mjs/math/Vec3.d.ts +0 -106
- package/dist/mjs/math/Vec3.mjs +0 -181
- package/dist/mjs/math/Vec3.test.d.ts +0 -1
- package/dist/mjs/math/lib.d.ts +0 -7
- package/dist/mjs/math/lib.mjs +0 -7
- package/dist/mjs/math/polynomial/solveQuadratic.d.ts +0 -9
- package/dist/mjs/math/polynomial/solveQuadratic.mjs +0 -37
- package/dist/mjs/math/polynomial/solveQuadratic.test.d.ts +0 -1
- package/dist/mjs/math/rounding.d.ts +0 -4
- package/dist/mjs/math/rounding.mjs +0 -133
- package/dist/mjs/math/rounding.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Abstract2DShape.d.ts +0 -49
- package/dist/mjs/math/shapes/Abstract2DShape.mjs +0 -40
- package/dist/mjs/math/shapes/BezierJSWrapper.d.ts +0 -36
- package/dist/mjs/math/shapes/BezierJSWrapper.mjs +0 -107
- package/dist/mjs/math/shapes/CubicBezier.d.ts +0 -17
- package/dist/mjs/math/shapes/CubicBezier.mjs +0 -48
- package/dist/mjs/math/shapes/LineSegment2.d.ts +0 -70
- package/dist/mjs/math/shapes/LineSegment2.mjs +0 -202
- package/dist/mjs/math/shapes/LineSegment2.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Path.d.ts +0 -93
- package/dist/mjs/math/shapes/Path.fromString.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Path.mjs +0 -862
- package/dist/mjs/math/shapes/Path.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Path.toString.test.d.ts +0 -1
- package/dist/mjs/math/shapes/PointShape2D.d.ts +0 -18
- package/dist/mjs/math/shapes/PointShape2D.mjs +0 -44
- package/dist/mjs/math/shapes/QuadraticBezier.d.ts +0 -34
- package/dist/mjs/math/shapes/QuadraticBezier.mjs +0 -131
- package/dist/mjs/math/shapes/QuadraticBezier.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Rect2.d.ts +0 -57
- package/dist/mjs/math/shapes/Rect2.mjs +0 -309
- package/dist/mjs/math/shapes/Rect2.test.d.ts +0 -1
- package/dist/mjs/math/shapes/Triangle.d.ts +0 -46
- package/dist/mjs/math/shapes/Triangle.mjs +0 -146
- package/dist/mjs/math/shapes/Triangle.test.d.ts +0 -1
- package/dist/mjs/rendering/RenderingStyle.test.d.ts +0 -1
- package/dist/mjs/rendering/caching/CacheRecord.test.d.ts +0 -1
- package/dist/mjs/rendering/caching/RenderingCache.test.d.ts +0 -1
- package/dist/mjs/rendering/renderers/DummyRenderer.test.d.ts +0 -1
- package/dist/mjs/rendering/renderers/TextOnlyRenderer.test.d.ts +0 -1
- package/dist/mjs/shortcuts/KeyBinding.test.d.ts +0 -1
- package/dist/mjs/shortcuts/KeyboardShortcutManager.test.d.ts +0 -1
- package/dist/mjs/toolbar/HTMLToolbar.d.ts +0 -105
- package/dist/mjs/toolbar/HTMLToolbar.mjs +0 -462
- package/dist/mjs/toolbar/makeColorInput.d.ts +0 -6
- package/dist/mjs/tools/Eraser.test.d.ts +0 -1
- package/dist/mjs/tools/PanZoom.test.d.ts +0 -1
- package/dist/mjs/tools/Pen.test.d.ts +0 -1
- package/dist/mjs/tools/SelectionTool/SelectionTool.test.d.ts +0 -1
- package/dist/mjs/tools/UndoRedoShortcut.test.d.ts +0 -1
- package/dist-test/test_imports/package-lock.json +0 -13
- package/dist-test/test_imports/package.json +0 -12
- package/dist-test/test_imports/test-imports.js +0 -17
- package/dist-test/test_imports/test-require.cjs +0 -19
- package/src/Color4.test.ts +0 -47
- package/src/Color4.ts +0 -304
- package/src/Editor.css +0 -98
- package/src/Editor.loadFrom.test.ts +0 -24
- package/src/Editor.toSVG.test.ts +0 -111
- package/src/Editor.ts +0 -1171
- 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 -72
- package/src/Pointer.ts +0 -170
- package/src/SVGLoader.test.ts +0 -114
- package/src/SVGLoader.ts +0 -610
- package/src/UndoRedoHistory.test.ts +0 -33
- package/src/UndoRedoHistory.ts +0 -102
- package/src/Viewport.ts +0 -325
- package/src/bundle/bundled.ts +0 -7
- package/src/commands/Command.ts +0 -45
- package/src/commands/Duplicate.ts +0 -75
- package/src/commands/Erase.ts +0 -94
- package/src/commands/SerializableCommand.ts +0 -49
- package/src/commands/UnresolvedCommand.ts +0 -37
- package/src/commands/invertCommand.ts +0 -58
- 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 -140
- package/src/components/AbstractComponent.transformBy.test.ts +0 -22
- package/src/components/AbstractComponent.ts +0 -374
- package/src/components/BackgroundComponent.test.ts +0 -45
- package/src/components/BackgroundComponent.ts +0 -353
- package/src/components/ImageComponent.ts +0 -178
- package/src/components/RestylableComponent.ts +0 -161
- package/src/components/SVGGlobalAttributesObject.ts +0 -81
- package/src/components/Stroke.test.ts +0 -139
- package/src/components/Stroke.ts +0 -296
- package/src/components/TextComponent.test.ts +0 -204
- package/src/components/TextComponent.ts +0 -432
- 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/CircleBuilder.ts +0 -102
- package/src/components/builders/FreehandLineBuilder.test.ts +0 -25
- 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 -31
- package/src/components/localization.ts +0 -24
- package/src/components/util/StrokeSmoother.ts +0 -302
- package/src/components/util/describeComponentList.ts +0 -18
- package/src/lib.ts +0 -69
- package/src/localization.ts +0 -34
- package/src/localizations/de.ts +0 -146
- 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 -74
- package/src/math/Mat33.test.ts +0 -244
- package/src/math/Mat33.ts +0 -442
- package/src/math/Vec2.test.ts +0 -30
- package/src/math/Vec2.ts +0 -40
- 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/polynomial/solveQuadratic.test.ts +0 -39
- package/src/math/polynomial/solveQuadratic.ts +0 -43
- package/src/math/rounding.test.ts +0 -65
- package/src/math/rounding.ts +0 -156
- package/src/math/shapes/Abstract2DShape.ts +0 -63
- package/src/math/shapes/BezierJSWrapper.ts +0 -93
- package/src/math/shapes/CubicBezier.ts +0 -35
- package/src/math/shapes/LineSegment2.test.ts +0 -99
- package/src/math/shapes/LineSegment2.ts +0 -231
- package/src/math/shapes/Path.fromString.test.ts +0 -223
- package/src/math/shapes/Path.test.ts +0 -309
- package/src/math/shapes/Path.toString.test.ts +0 -77
- package/src/math/shapes/Path.ts +0 -1027
- package/src/math/shapes/PointShape2D.ts +0 -33
- package/src/math/shapes/QuadraticBezier.test.ts +0 -31
- package/src/math/shapes/QuadraticBezier.ts +0 -141
- package/src/math/shapes/Rect2.test.ts +0 -209
- package/src/math/shapes/Rect2.ts +0 -344
- package/src/math/shapes/Triangle.test.ts +0 -61
- package/src/math/shapes/Triangle.ts +0 -139
- package/src/rendering/Display.ts +0 -248
- package/src/rendering/RenderingStyle.test.ts +0 -68
- package/src/rendering/RenderingStyle.ts +0 -55
- package/src/rendering/TextRenderingStyle.ts +0 -55
- 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 -8
- package/src/rendering/localization.ts +0 -20
- package/src/rendering/renderers/AbstractRenderer.ts +0 -242
- package/src/rendering/renderers/CanvasRenderer.ts +0 -307
- package/src/rendering/renderers/DummyRenderer.test.ts +0 -42
- package/src/rendering/renderers/DummyRenderer.ts +0 -145
- package/src/rendering/renderers/SVGRenderer.ts +0 -377
- package/src/rendering/renderers/TextOnlyRenderer.test.ts +0 -34
- package/src/rendering/renderers/TextOnlyRenderer.ts +0 -71
- package/src/shortcuts/KeyBinding.test.ts +0 -51
- package/src/shortcuts/KeyBinding.ts +0 -218
- package/src/shortcuts/KeyboardShortcutManager.test.ts +0 -95
- package/src/shortcuts/KeyboardShortcutManager.ts +0 -163
- package/src/shortcuts/lib.ts +0 -3
- package/src/testing/createEditor.ts +0 -11
- package/src/testing/getUniquePointerId.ts +0 -18
- package/src/testing/lib.ts +0 -3
- package/src/testing/sendPenEvent.ts +0 -36
- package/src/testing/sendTouchEvent.ts +0 -71
- package/src/toolbar/HTMLToolbar.ts +0 -567
- package/src/toolbar/IconProvider.ts +0 -805
- package/src/toolbar/lib.ts +0 -4
- package/src/toolbar/localization.ts +0 -114
- package/src/toolbar/makeColorInput.ts +0 -159
- package/src/toolbar/types.ts +0 -5
- package/src/toolbar/widgets/ActionButtonWidget.ts +0 -39
- package/src/toolbar/widgets/BaseToolWidget.ts +0 -65
- package/src/toolbar/widgets/BaseWidget.ts +0 -428
- package/src/toolbar/widgets/DocumentPropertiesWidget.ts +0 -234
- 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.ts +0 -92
- package/src/toolbar/widgets/PenToolWidget.ts +0 -409
- package/src/toolbar/widgets/SelectionToolWidget.ts +0 -197
- package/src/toolbar/widgets/TextToolWidget.ts +0 -145
- package/src/toolbar/widgets/keybindings.ts +0 -21
- package/src/toolbar/widgets/lib.ts +0 -13
- package/src/tools/BaseTool.ts +0 -97
- package/src/tools/Eraser.test.ts +0 -103
- package/src/tools/Eraser.ts +0 -160
- package/src/tools/FindTool.ts +0 -153
- package/src/tools/PanZoom.test.ts +0 -349
- package/src/tools/PanZoom.ts +0 -502
- package/src/tools/PasteHandler.ts +0 -95
- package/src/tools/Pen.test.ts +0 -262
- package/src/tools/Pen.ts +0 -300
- package/src/tools/PipetteTool.ts +0 -55
- package/src/tools/SelectionTool/SelectAllShortcutHandler.ts +0 -29
- package/src/tools/SelectionTool/Selection.ts +0 -611
- package/src/tools/SelectionTool/SelectionHandle.ts +0 -108
- package/src/tools/SelectionTool/SelectionTool.test.ts +0 -261
- package/src/tools/SelectionTool/SelectionTool.ts +0 -496
- package/src/tools/SelectionTool/TransformMode.ts +0 -114
- package/src/tools/SelectionTool/types.ts +0 -11
- package/src/tools/SoundUITool.ts +0 -212
- package/src/tools/TextTool.ts +0 -340
- package/src/tools/ToolController.ts +0 -200
- package/src/tools/ToolEnabledGroup.ts +0 -14
- package/src/tools/ToolSwitcherShortcut.ts +0 -39
- package/src/tools/ToolbarShortcutHandler.ts +0 -39
- package/src/tools/UndoRedoShortcut.test.ts +0 -56
- package/src/tools/UndoRedoShortcut.ts +0 -24
- package/src/tools/keybindings.ts +0 -85
- package/src/tools/lib.ts +0 -22
- package/src/tools/localization.ts +0 -74
- package/src/tools/tools.css +0 -4
- package/src/types.ts +0 -239
- package/src/util/assertions.ts +0 -55
- package/src/util/fileToBase64.ts +0 -18
- package/src/util/untilNextAnimationFrame.ts +0 -9
- package/src/util/waitForAll.ts +0 -18
- package/src/util/waitForTimeout.ts +0 -9
- /package/dist/{cjs/Color4.test.d.ts → mjs/toolbar/widgets/layout/types.mjs} +0 -0
@@ -1,10 +1,7 @@
|
|
1
|
-
import
|
2
|
-
import Rect2 from '../../math/shapes/Rect2.mjs';
|
3
|
-
import LineSegment2 from '../../math/shapes/LineSegment2.mjs';
|
4
|
-
import QuadraticBezier from '../../math/shapes/QuadraticBezier.mjs';
|
1
|
+
import { Vec2, Rect2, LineSegment2, QuadraticBezier } from '@js-draw/math';
|
5
2
|
// Handles stroke smoothing
|
6
|
-
|
7
|
-
|
3
|
+
export class StrokeSmoother {
|
4
|
+
constructor(startPoint,
|
8
5
|
// Maximum distance from the actual curve (irrespective of stroke width)
|
9
6
|
// for which a point is considered 'part of the curve'.
|
10
7
|
// Note that the maximum will be smaller if the stroke width is less than
|
@@ -24,34 +21,34 @@ var StrokeSmoother = /** @class */ (function () {
|
|
24
21
|
this.curveStartWidth = startPoint.width;
|
25
22
|
this.bbox = new Rect2(this.startPoint.pos.x, this.startPoint.pos.y, 0, 0);
|
26
23
|
}
|
27
|
-
|
24
|
+
getBBox() {
|
28
25
|
return this.bbox;
|
29
|
-
}
|
30
|
-
|
26
|
+
}
|
27
|
+
preview() {
|
31
28
|
if (!this.currentCurve) {
|
32
29
|
return null;
|
33
30
|
}
|
34
31
|
return this.currentSegmentToPath();
|
35
|
-
}
|
32
|
+
}
|
36
33
|
// Returns the distance between the start, control, and end points of the curve.
|
37
|
-
|
34
|
+
approxCurrentCurveLength() {
|
38
35
|
if (!this.currentCurve) {
|
39
36
|
return 0;
|
40
37
|
}
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
38
|
+
const startPt = this.currentCurve.p0;
|
39
|
+
const controlPt = this.currentCurve.p1;
|
40
|
+
const endPt = this.currentCurve.p2;
|
41
|
+
const toControlDist = startPt.minus(controlPt).length();
|
42
|
+
const toEndDist = endPt.minus(controlPt).length();
|
46
43
|
return toControlDist + toEndDist;
|
47
|
-
}
|
48
|
-
|
44
|
+
}
|
45
|
+
finalizeCurrentCurve() {
|
49
46
|
// Case where no points have been added
|
50
47
|
if (!this.currentCurve) {
|
51
48
|
return;
|
52
49
|
}
|
53
50
|
this.onCurveAdded(this.currentSegmentToPath());
|
54
|
-
|
51
|
+
const lastPoint = this.buffer[this.buffer.length - 1];
|
55
52
|
this.lastExitingVec = this.currentCurve.p2.minus(this.currentCurve.p1);
|
56
53
|
console.assert(this.lastExitingVec.magnitude() !== 0, 'lastExitingVec has zero length!');
|
57
54
|
// Use the last two points to start a new curve (the last point isn't used
|
@@ -61,38 +58,36 @@ var StrokeSmoother = /** @class */ (function () {
|
|
61
58
|
];
|
62
59
|
this.currentCurve = null;
|
63
60
|
this.isFirstSegment = false;
|
64
|
-
}
|
61
|
+
}
|
65
62
|
// Returns [upper curve, connector, lower curve]
|
66
|
-
|
63
|
+
currentSegmentToPath() {
|
67
64
|
if (this.currentCurve == null) {
|
68
65
|
throw new Error('Invalid State: currentCurve is null!');
|
69
66
|
}
|
70
|
-
|
67
|
+
const startVec = this.currentCurve.normal(0).normalized();
|
71
68
|
if (!isFinite(startVec.magnitude())) {
|
72
|
-
throw new Error(
|
69
|
+
throw new Error(`startVec(${startVec}) is NaN or ∞`);
|
73
70
|
}
|
74
|
-
|
75
|
-
|
76
|
-
|
71
|
+
const startPt = this.currentCurve.at(0);
|
72
|
+
const endPt = this.currentCurve.at(1);
|
73
|
+
const controlPoint = this.currentCurve.p1;
|
77
74
|
return {
|
78
75
|
startPoint: startPt,
|
79
|
-
controlPoint
|
76
|
+
controlPoint,
|
80
77
|
endPoint: endPt,
|
81
78
|
startWidth: this.curveStartWidth,
|
82
79
|
endWidth: this.curveEndWidth,
|
83
80
|
};
|
84
|
-
}
|
81
|
+
}
|
85
82
|
// Compute the direction of the velocity at the end of this.buffer
|
86
|
-
|
83
|
+
computeExitingVec() {
|
87
84
|
return this.momentum.normalized().times(this.lastPoint.width / 2);
|
88
|
-
}
|
89
|
-
|
90
|
-
var _this = this;
|
91
|
-
var _a, _b;
|
85
|
+
}
|
86
|
+
addPoint(newPoint) {
|
92
87
|
if (this.lastPoint) {
|
93
88
|
// Ignore points that are identical
|
94
|
-
|
95
|
-
|
89
|
+
const fuzzEq = 1e-10;
|
90
|
+
const deltaTime = newPoint.time - this.lastPoint.time;
|
96
91
|
if (newPoint.pos.eq(this.lastPoint.pos, fuzzEq) || deltaTime === 0) {
|
97
92
|
return;
|
98
93
|
}
|
@@ -100,8 +95,8 @@ var StrokeSmoother = /** @class */ (function () {
|
|
100
95
|
console.warn('Discarding NaN point.', newPoint);
|
101
96
|
return;
|
102
97
|
}
|
103
|
-
|
104
|
-
|
98
|
+
const threshold = Math.min(this.lastPoint.width, newPoint.width) / 3;
|
99
|
+
const shouldSnapToInitial = this.startPoint.pos.minus(newPoint.pos).magnitude() < threshold
|
105
100
|
&& this.isFirstSegment;
|
106
101
|
// Snap to the starting point if the stroke is contained within a small ball centered
|
107
102
|
// at the starting point.
|
@@ -109,22 +104,24 @@ var StrokeSmoother = /** @class */ (function () {
|
|
109
104
|
if (shouldSnapToInitial) {
|
110
105
|
return;
|
111
106
|
}
|
112
|
-
|
113
|
-
|
107
|
+
const deltaTimeSeconds = deltaTime / 1000;
|
108
|
+
const velocity = newPoint.pos.minus(this.lastPoint.pos).times(1 / deltaTimeSeconds);
|
109
|
+
// TODO: Do we need momentum smoothing? (this.momentum.lerp(velocity, 0.9);)
|
110
|
+
this.momentum = velocity;
|
114
111
|
}
|
115
|
-
|
112
|
+
const lastPoint = this.lastPoint ?? newPoint;
|
116
113
|
this.lastPoint = newPoint;
|
117
114
|
this.buffer.push(newPoint.pos);
|
118
|
-
|
119
|
-
|
115
|
+
const pointRadius = newPoint.width;
|
116
|
+
const prevEndWidth = this.curveEndWidth;
|
120
117
|
this.curveEndWidth = pointRadius;
|
121
118
|
// recompute bbox
|
122
119
|
this.bbox = this.bbox.grownToPoint(newPoint.pos, pointRadius);
|
123
120
|
// If the last curve just ended or it's the first curve,
|
124
121
|
if (this.currentCurve === null) {
|
125
|
-
|
126
|
-
|
127
|
-
|
122
|
+
const p1 = lastPoint.pos;
|
123
|
+
const p2 = lastPoint.pos.plus(this.lastExitingVec ?? Vec2.unitX);
|
124
|
+
const p3 = newPoint.pos;
|
128
125
|
// Quadratic Bézier curve
|
129
126
|
this.currentCurve = new QuadraticBezier(p1, p2, p3);
|
130
127
|
console.assert(!isNaN(p1.magnitude()) && !isNaN(p2.magnitude()) && !isNaN(p3.magnitude()), 'Expected !NaN');
|
@@ -137,21 +134,21 @@ var StrokeSmoother = /** @class */ (function () {
|
|
137
134
|
}
|
138
135
|
}
|
139
136
|
// If there isn't an entering vector (e.g. because this.isFirstCurve), approximate it.
|
140
|
-
|
137
|
+
let enteringVec = this.lastExitingVec;
|
141
138
|
if (!enteringVec) {
|
142
|
-
|
139
|
+
let sampleIdx = Math.ceil(this.buffer.length / 2);
|
143
140
|
if (sampleIdx === 0 || sampleIdx >= this.buffer.length) {
|
144
141
|
sampleIdx = this.buffer.length - 1;
|
145
142
|
}
|
146
143
|
enteringVec = this.buffer[sampleIdx].minus(this.buffer[0]);
|
147
144
|
}
|
148
|
-
|
145
|
+
let exitingVec = this.computeExitingVec();
|
149
146
|
// Find the intersection between the entering vector and the exiting vector
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
147
|
+
const maxRelativeLength = 2.4;
|
148
|
+
const segmentStart = this.buffer[0];
|
149
|
+
const segmentEnd = newPoint.pos;
|
150
|
+
const startEndDist = segmentEnd.minus(segmentStart).magnitude();
|
151
|
+
const maxControlPointDist = maxRelativeLength * startEndDist;
|
155
152
|
// Exit in cases where we would divide by zero
|
156
153
|
if (maxControlPointDist === 0 || exitingVec.magnitude() === 0 || !isFinite(exitingVec.magnitude())) {
|
157
154
|
return;
|
@@ -160,11 +157,11 @@ var StrokeSmoother = /** @class */ (function () {
|
|
160
157
|
enteringVec = enteringVec.normalized();
|
161
158
|
exitingVec = exitingVec.normalized();
|
162
159
|
console.assert(isFinite(enteringVec.magnitude()), 'Normalized enteringVec has NaN or ∞ magnitude!');
|
163
|
-
|
164
|
-
|
165
|
-
|
160
|
+
const lineFromStart = new LineSegment2(segmentStart, segmentStart.plus(enteringVec.times(maxControlPointDist)));
|
161
|
+
const lineFromEnd = new LineSegment2(segmentEnd.minus(exitingVec.times(maxControlPointDist)), segmentEnd);
|
162
|
+
const intersection = lineFromEnd.intersection(lineFromStart);
|
166
163
|
// Position the control point at this intersection
|
167
|
-
|
164
|
+
let controlPoint = null;
|
168
165
|
if (intersection) {
|
169
166
|
controlPoint = intersection.point;
|
170
167
|
}
|
@@ -176,7 +173,7 @@ var StrokeSmoother = /** @class */ (function () {
|
|
176
173
|
}
|
177
174
|
console.assert(!segmentStart.eq(controlPoint, 1e-11), 'Start and control points are equal!');
|
178
175
|
console.assert(!controlPoint.eq(segmentEnd, 1e-11), 'Control and end points are equal!');
|
179
|
-
|
176
|
+
const prevCurve = this.currentCurve;
|
180
177
|
this.currentCurve = new QuadraticBezier(segmentStart, controlPoint, segmentEnd);
|
181
178
|
if (isNaN(this.currentCurve.normal(0).magnitude())) {
|
182
179
|
console.error('NaN normal at 0. Curve:', this.currentCurve);
|
@@ -184,15 +181,14 @@ var StrokeSmoother = /** @class */ (function () {
|
|
184
181
|
}
|
185
182
|
// Should we start making a new curve? Check whether all buffer points are within
|
186
183
|
// ±strokeWidth of the curve.
|
187
|
-
|
188
|
-
|
184
|
+
const curveMatchesPoints = (curve) => {
|
185
|
+
const minFit = Math.min(Math.max(Math.min(this.curveStartWidth, this.curveEndWidth) / 4, this.minFitAllowed), this.maxFitAllowed);
|
189
186
|
// The sum of distances greater than minFit must not exceed this:
|
190
|
-
|
187
|
+
const maxNonMatchingDistSum = minFit;
|
191
188
|
// Sum of distances greater than minFit.
|
192
|
-
|
193
|
-
for (
|
194
|
-
|
195
|
-
var dist = curve.approximateDistance(point);
|
189
|
+
let nonMatchingDistSum = 0;
|
190
|
+
for (const point of this.buffer) {
|
191
|
+
let dist = curve.approximateDistance(point);
|
196
192
|
if (dist > minFit) {
|
197
193
|
// Use the more accurate distance function
|
198
194
|
dist = curve.distance(point);
|
@@ -215,8 +211,6 @@ var StrokeSmoother = /** @class */ (function () {
|
|
215
211
|
return;
|
216
212
|
}
|
217
213
|
}
|
218
|
-
}
|
219
|
-
|
220
|
-
}());
|
221
|
-
export { StrokeSmoother };
|
214
|
+
}
|
215
|
+
}
|
222
216
|
export default StrokeSmoother;
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import AbstractComponent from '../AbstractComponent';
|
2
2
|
import { ImageComponentLocalization } from '../localization';
|
3
|
-
declare const _default: (localizationTable: ImageComponentLocalization, elems: AbstractComponent[]) => string;
|
3
|
+
declare const _default: (localizationTable: ImageComponentLocalization, elems: AbstractComponent[]) => string | null;
|
4
4
|
export default _default;
|
@@ -1,15 +1,14 @@
|
|
1
1
|
// Returns the description of all given elements, if identical, otherwise,
|
2
2
|
// returns null.
|
3
|
-
export default (
|
3
|
+
export default (localizationTable, elems) => {
|
4
4
|
if (elems.length === 0) {
|
5
5
|
return null;
|
6
6
|
}
|
7
|
-
|
8
|
-
for (
|
9
|
-
var elem = elems_1[_i];
|
7
|
+
const description = elems[0].description(localizationTable);
|
8
|
+
for (const elem of elems) {
|
10
9
|
if (elem.description(localizationTable) !== description) {
|
11
10
|
return null;
|
12
11
|
}
|
13
12
|
}
|
14
13
|
return description;
|
15
|
-
}
|
14
|
+
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import type Editor from '../Editor';
|
2
|
+
export interface AboutDialogLink {
|
3
|
+
kind: 'link';
|
4
|
+
text: string;
|
5
|
+
href: string;
|
6
|
+
}
|
7
|
+
export interface AboutDialogEntry {
|
8
|
+
heading: string | AboutDialogLink;
|
9
|
+
text?: string;
|
10
|
+
minimized?: boolean;
|
11
|
+
}
|
12
|
+
declare const makeAboutDialog: (editor: Editor, entries: AboutDialogEntry[]) => {
|
13
|
+
close: () => void;
|
14
|
+
};
|
15
|
+
export default makeAboutDialog;
|
@@ -0,0 +1,52 @@
|
|
1
|
+
const makeAboutDialog = (editor, entries) => {
|
2
|
+
const overlay = document.createElement('div');
|
3
|
+
const { remove: removeOverlay } = editor.createHTMLOverlay(overlay);
|
4
|
+
overlay.classList.add('dialog-container', 'about-dialog-container');
|
5
|
+
const dialog = document.createElement('dialog');
|
6
|
+
const heading = document.createElement('h1');
|
7
|
+
heading.innerText = editor.localization.about;
|
8
|
+
heading.setAttribute('autofocus', 'true');
|
9
|
+
const closeButton = document.createElement('button');
|
10
|
+
closeButton.innerText = editor.localization.closeDialog;
|
11
|
+
closeButton.classList.add('close-button');
|
12
|
+
closeButton.onclick = () => removeOverlay();
|
13
|
+
overlay.onclick = event => {
|
14
|
+
if (event.target === overlay) {
|
15
|
+
removeOverlay();
|
16
|
+
}
|
17
|
+
};
|
18
|
+
const licenseContainer = document.createElement('div');
|
19
|
+
licenseContainer.classList.add('about-entry-container');
|
20
|
+
// Allow scrolling in the license container -- don't forward wheel events.
|
21
|
+
licenseContainer.onwheel = evt => evt.stopPropagation();
|
22
|
+
for (const entry of entries) {
|
23
|
+
const container = document.createElement(entry.minimized ? 'details' : 'div');
|
24
|
+
container.classList.add('about-entry');
|
25
|
+
const header = document.createElement(entry.minimized ? 'summary' : 'h2');
|
26
|
+
if (typeof (entry.heading) === 'string') {
|
27
|
+
header.innerText = entry.heading;
|
28
|
+
}
|
29
|
+
else {
|
30
|
+
const link = document.createElement('a');
|
31
|
+
link.href = entry.heading.href.replace(/^javascript:/i, '');
|
32
|
+
link.text = entry.heading.text;
|
33
|
+
header.appendChild(link);
|
34
|
+
}
|
35
|
+
container.appendChild(header);
|
36
|
+
if (entry.text) {
|
37
|
+
const bodyText = document.createElement('div');
|
38
|
+
bodyText.innerText = entry.text;
|
39
|
+
container.appendChild(bodyText);
|
40
|
+
}
|
41
|
+
licenseContainer.appendChild(container);
|
42
|
+
}
|
43
|
+
dialog.replaceChildren(heading, licenseContainer, closeButton);
|
44
|
+
overlay.replaceChildren(dialog);
|
45
|
+
dialog.show();
|
46
|
+
return {
|
47
|
+
close: () => {
|
48
|
+
removeOverlay();
|
49
|
+
},
|
50
|
+
};
|
51
|
+
};
|
52
|
+
export default makeAboutDialog;
|
@@ -0,0 +1,84 @@
|
|
1
|
+
import Pointer from './Pointer';
|
2
|
+
import { Point2, Vec3 } from '@js-draw/math';
|
3
|
+
export type HTMLPointerEventName = 'pointerdown' | 'pointermove' | 'pointerup' | 'pointercancel';
|
4
|
+
export type HTMLPointerEventFilter = (eventName: HTMLPointerEventName, event: PointerEvent) => boolean;
|
5
|
+
export interface PointerEvtListener {
|
6
|
+
onPointerDown(event: PointerEvt): boolean;
|
7
|
+
onPointerMove(event: PointerEvt): void;
|
8
|
+
onPointerUp(event: PointerEvt): void;
|
9
|
+
onGestureCancel(): void;
|
10
|
+
}
|
11
|
+
export declare enum InputEvtType {
|
12
|
+
PointerDownEvt = 0,
|
13
|
+
PointerMoveEvt = 1,
|
14
|
+
PointerUpEvt = 2,
|
15
|
+
GestureCancelEvt = 3,
|
16
|
+
WheelEvt = 4,
|
17
|
+
KeyPressEvent = 5,
|
18
|
+
KeyUpEvent = 6,
|
19
|
+
CopyEvent = 7,
|
20
|
+
PasteEvent = 8
|
21
|
+
}
|
22
|
+
export interface WheelEvt {
|
23
|
+
readonly kind: InputEvtType.WheelEvt;
|
24
|
+
readonly delta: Vec3;
|
25
|
+
readonly screenPos: Point2;
|
26
|
+
}
|
27
|
+
interface BaseKeyEvent {
|
28
|
+
readonly key: string;
|
29
|
+
readonly code: string;
|
30
|
+
readonly ctrlKey: boolean | undefined;
|
31
|
+
readonly altKey: boolean | undefined;
|
32
|
+
readonly shiftKey: boolean | undefined;
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* Represents a keydown or auto-repeated keydown event.
|
36
|
+
*
|
37
|
+
* Use {@link keyPressEventFromHTMLEvent} where possible rather than
|
38
|
+
* constructing directly (required properties may change between minor
|
39
|
+
* releases).
|
40
|
+
*/
|
41
|
+
export interface KeyPressEvent extends BaseKeyEvent {
|
42
|
+
readonly kind: InputEvtType.KeyPressEvent;
|
43
|
+
}
|
44
|
+
/**
|
45
|
+
* Represents a key release or auto-repeated key releae event.
|
46
|
+
*
|
47
|
+
* Use {@link keyUpEventFromHTMLEvent} where possible rather than
|
48
|
+
* constructing directly (required properties may change between minor
|
49
|
+
* releases).
|
50
|
+
*/
|
51
|
+
export interface KeyUpEvent extends BaseKeyEvent {
|
52
|
+
readonly kind: InputEvtType.KeyUpEvent;
|
53
|
+
}
|
54
|
+
export interface CopyEvent {
|
55
|
+
readonly kind: InputEvtType.CopyEvent;
|
56
|
+
setData(mime: string, data: string): void;
|
57
|
+
}
|
58
|
+
export interface PasteEvent {
|
59
|
+
readonly kind: InputEvtType.PasteEvent;
|
60
|
+
readonly data: string;
|
61
|
+
readonly mime: string;
|
62
|
+
}
|
63
|
+
export interface GestureCancelEvt {
|
64
|
+
readonly kind: InputEvtType.GestureCancelEvt;
|
65
|
+
}
|
66
|
+
interface PointerEvtBase {
|
67
|
+
readonly current: Pointer;
|
68
|
+
readonly allPointers: Pointer[];
|
69
|
+
}
|
70
|
+
export interface PointerDownEvt extends PointerEvtBase {
|
71
|
+
readonly kind: InputEvtType.PointerDownEvt;
|
72
|
+
}
|
73
|
+
export interface PointerMoveEvt extends PointerEvtBase {
|
74
|
+
readonly kind: InputEvtType.PointerMoveEvt;
|
75
|
+
}
|
76
|
+
export interface PointerUpEvt extends PointerEvtBase {
|
77
|
+
readonly kind: InputEvtType.PointerUpEvt;
|
78
|
+
}
|
79
|
+
export type PointerEvt = PointerDownEvt | PointerMoveEvt | PointerUpEvt;
|
80
|
+
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt | CopyEvent | PasteEvent;
|
81
|
+
export declare const keyUpEventFromHTMLEvent: (event: KeyboardEvent) => KeyUpEvent;
|
82
|
+
export declare const keyPressEventFromHTMLEvent: (event: KeyboardEvent) => KeyPressEvent;
|
83
|
+
export declare const isPointerEvt: (event: InputEvt) => event is PointerEvt;
|
84
|
+
export {};
|
@@ -0,0 +1,34 @@
|
|
1
|
+
export var InputEvtType;
|
2
|
+
(function (InputEvtType) {
|
3
|
+
InputEvtType[InputEvtType["PointerDownEvt"] = 0] = "PointerDownEvt";
|
4
|
+
InputEvtType[InputEvtType["PointerMoveEvt"] = 1] = "PointerMoveEvt";
|
5
|
+
InputEvtType[InputEvtType["PointerUpEvt"] = 2] = "PointerUpEvt";
|
6
|
+
InputEvtType[InputEvtType["GestureCancelEvt"] = 3] = "GestureCancelEvt";
|
7
|
+
InputEvtType[InputEvtType["WheelEvt"] = 4] = "WheelEvt";
|
8
|
+
InputEvtType[InputEvtType["KeyPressEvent"] = 5] = "KeyPressEvent";
|
9
|
+
InputEvtType[InputEvtType["KeyUpEvent"] = 6] = "KeyUpEvent";
|
10
|
+
InputEvtType[InputEvtType["CopyEvent"] = 7] = "CopyEvent";
|
11
|
+
InputEvtType[InputEvtType["PasteEvent"] = 8] = "PasteEvent";
|
12
|
+
})(InputEvtType || (InputEvtType = {}));
|
13
|
+
// Constructor
|
14
|
+
const keyEventFromHTMLEvent = (kind, event) => {
|
15
|
+
return {
|
16
|
+
kind,
|
17
|
+
key: event.key,
|
18
|
+
code: event.code,
|
19
|
+
ctrlKey: event.ctrlKey || event.metaKey,
|
20
|
+
altKey: event.altKey,
|
21
|
+
shiftKey: event.shiftKey,
|
22
|
+
};
|
23
|
+
};
|
24
|
+
export const keyUpEventFromHTMLEvent = (event) => {
|
25
|
+
return keyEventFromHTMLEvent(InputEvtType.KeyUpEvent, event);
|
26
|
+
};
|
27
|
+
export const keyPressEventFromHTMLEvent = (event) => {
|
28
|
+
return keyEventFromHTMLEvent(InputEvtType.KeyPressEvent, event);
|
29
|
+
};
|
30
|
+
export const isPointerEvt = (event) => {
|
31
|
+
return event.kind === InputEvtType.PointerDownEvt
|
32
|
+
|| event.kind === InputEvtType.PointerMoveEvt
|
33
|
+
|| event.kind === InputEvtType.PointerUpEvt;
|
34
|
+
};
|
package/dist/mjs/lib.d.ts
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
* is available through the [`js-draw` package](https://www.npmjs.com/package/js-draw).
|
4
4
|
*
|
5
5
|
* @example
|
6
|
-
* ```
|
7
|
-
* import { Editor, Vec3, Mat33 } from 'js-draw';
|
6
|
+
* ```ts,runnable
|
7
|
+
* import { Editor, Vec3, Mat33, ToolbarWidgetTag } from 'js-draw';
|
8
8
|
*
|
9
9
|
* // Apply js-draw CSS
|
10
10
|
* import 'js-draw/styles';
|
@@ -14,8 +14,11 @@
|
|
14
14
|
* (async () => {
|
15
15
|
* const editor = new Editor(document.body);
|
16
16
|
* const toolbar = editor.addToolbar();
|
17
|
+
*
|
18
|
+
* // Increases the minimum height of the editor
|
17
19
|
* editor.getRootElement().style.height = '600px';
|
18
20
|
*
|
21
|
+
* // Loads from SVG data
|
19
22
|
* await editor.loadFromSVG(`
|
20
23
|
* <svg viewBox="0 0 500 500" width="500" height="500" version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
|
21
24
|
* <style id="js-draw-style-sheet">path{stroke-linecap:round;stroke-linejoin:round;}text{white-space:pre;}</style>
|
@@ -24,13 +27,19 @@
|
|
24
27
|
* </svg>
|
25
28
|
* `);
|
26
29
|
*
|
27
|
-
* toolbar.
|
28
|
-
*
|
29
|
-
*
|
30
|
-
* }, () => {
|
31
|
-
* const saveData = editor.toSVG().outerHTML;
|
30
|
+
* // Adding tags to a toolbar button allows different styles to be applied.
|
31
|
+
* // Also see addActionButton.
|
32
|
+
* const buttonLabels = [ ToolbarWidgetTag.Save ];
|
32
33
|
*
|
33
|
-
*
|
34
|
+
* toolbar.addSaveButton(() => {
|
35
|
+
* const saveData = editor.toSVG().outerHTML;
|
36
|
+
*
|
37
|
+
* // Do something with saveData
|
38
|
+
* });
|
39
|
+
*
|
40
|
+
* toolbar.addExitButton(() => {
|
41
|
+
* // Save/confirm exiting here?
|
42
|
+
* editor.remove();
|
34
43
|
* });
|
35
44
|
* })();
|
36
45
|
* ```
|
@@ -38,19 +47,19 @@
|
|
38
47
|
* @see
|
39
48
|
* {@link Editor}
|
40
49
|
* {@link Editor.loadFromSVG}
|
41
|
-
* {@link
|
50
|
+
* {@link AbstractToolbar.addActionButton }
|
42
51
|
*
|
43
52
|
* @packageDocumentation
|
44
53
|
*/
|
45
54
|
import Editor, { EditorSettings } from './Editor';
|
46
55
|
export { default as EditorImage } from './EditorImage';
|
47
56
|
export * from './types';
|
57
|
+
export * from './inputEvents';
|
48
58
|
export { default as getLocalizationTable, matchingLocalizationTable } from './localizations/getLocalizationTable';
|
49
59
|
export * from './localization';
|
50
|
-
export { default as Color4 } from './Color4';
|
51
60
|
export { default as SVGLoader } from './SVGLoader';
|
52
61
|
export { default as Viewport } from './Viewport';
|
53
|
-
export * from '
|
62
|
+
export * from '@js-draw/math';
|
54
63
|
export * from './components/lib';
|
55
64
|
export * from './commands/lib';
|
56
65
|
export * from './tools/lib';
|
@@ -60,7 +69,14 @@ export * from './testing/lib';
|
|
60
69
|
export * from './shortcuts/lib';
|
61
70
|
export { default as EventDispatcher } from './EventDispatcher';
|
62
71
|
export { default as Pointer, PointerDevice } from './Pointer';
|
63
|
-
export { default as HTMLToolbar } from './toolbar/HTMLToolbar';
|
64
72
|
export { default as UndoRedoHistory } from './UndoRedoHistory';
|
65
|
-
export {
|
73
|
+
export { default as __js_draw__version } from './version';
|
74
|
+
import AbstractToolbar from './toolbar/AbstractToolbar';
|
75
|
+
export { Editor, EditorSettings, AbstractToolbar,
|
76
|
+
/**
|
77
|
+
* Using the HTMLToolbar alias is deprecated. Use
|
78
|
+
* `AbstractToolbar` instead.
|
79
|
+
* @deprecated
|
80
|
+
*/
|
81
|
+
AbstractToolbar as HTMLToolbar, };
|
66
82
|
export default Editor;
|
package/dist/mjs/lib.mjs
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
* is available through the [`js-draw` package](https://www.npmjs.com/package/js-draw).
|
4
4
|
*
|
5
5
|
* @example
|
6
|
-
* ```
|
7
|
-
* import { Editor, Vec3, Mat33 } from 'js-draw';
|
6
|
+
* ```ts,runnable
|
7
|
+
* import { Editor, Vec3, Mat33, ToolbarWidgetTag } from 'js-draw';
|
8
8
|
*
|
9
9
|
* // Apply js-draw CSS
|
10
10
|
* import 'js-draw/styles';
|
@@ -14,8 +14,11 @@
|
|
14
14
|
* (async () => {
|
15
15
|
* const editor = new Editor(document.body);
|
16
16
|
* const toolbar = editor.addToolbar();
|
17
|
+
*
|
18
|
+
* // Increases the minimum height of the editor
|
17
19
|
* editor.getRootElement().style.height = '600px';
|
18
20
|
*
|
21
|
+
* // Loads from SVG data
|
19
22
|
* await editor.loadFromSVG(`
|
20
23
|
* <svg viewBox="0 0 500 500" width="500" height="500" version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
|
21
24
|
* <style id="js-draw-style-sheet">path{stroke-linecap:round;stroke-linejoin:round;}text{white-space:pre;}</style>
|
@@ -24,13 +27,19 @@
|
|
24
27
|
* </svg>
|
25
28
|
* `);
|
26
29
|
*
|
27
|
-
* toolbar.
|
28
|
-
*
|
29
|
-
*
|
30
|
-
* }, () => {
|
31
|
-
* const saveData = editor.toSVG().outerHTML;
|
30
|
+
* // Adding tags to a toolbar button allows different styles to be applied.
|
31
|
+
* // Also see addActionButton.
|
32
|
+
* const buttonLabels = [ ToolbarWidgetTag.Save ];
|
32
33
|
*
|
33
|
-
*
|
34
|
+
* toolbar.addSaveButton(() => {
|
35
|
+
* const saveData = editor.toSVG().outerHTML;
|
36
|
+
*
|
37
|
+
* // Do something with saveData
|
38
|
+
* });
|
39
|
+
*
|
40
|
+
* toolbar.addExitButton(() => {
|
41
|
+
* // Save/confirm exiting here?
|
42
|
+
* editor.remove();
|
34
43
|
* });
|
35
44
|
* })();
|
36
45
|
* ```
|
@@ -38,19 +47,19 @@
|
|
38
47
|
* @see
|
39
48
|
* {@link Editor}
|
40
49
|
* {@link Editor.loadFromSVG}
|
41
|
-
* {@link
|
50
|
+
* {@link AbstractToolbar.addActionButton }
|
42
51
|
*
|
43
52
|
* @packageDocumentation
|
44
53
|
*/
|
45
54
|
import Editor from './Editor.mjs';
|
46
55
|
export { default as EditorImage } from './EditorImage.mjs';
|
47
56
|
export * from './types.mjs';
|
57
|
+
export * from './inputEvents.mjs';
|
48
58
|
export { default as getLocalizationTable, matchingLocalizationTable } from './localizations/getLocalizationTable.mjs';
|
49
59
|
export * from './localization.mjs';
|
50
|
-
export { default as Color4 } from './Color4.mjs';
|
51
60
|
export { default as SVGLoader } from './SVGLoader.mjs';
|
52
61
|
export { default as Viewport } from './Viewport.mjs';
|
53
|
-
export
|
62
|
+
export * from '@js-draw/math';
|
54
63
|
export * from './components/lib.mjs';
|
55
64
|
export * from './commands/lib.mjs';
|
56
65
|
export * from './tools/lib.mjs';
|
@@ -60,7 +69,15 @@ export * from './testing/lib.mjs';
|
|
60
69
|
export * from './shortcuts/lib.mjs';
|
61
70
|
export { default as EventDispatcher } from './EventDispatcher.mjs';
|
62
71
|
export { default as Pointer, PointerDevice } from './Pointer.mjs';
|
63
|
-
export { default as HTMLToolbar } from './toolbar/HTMLToolbar.mjs';
|
64
72
|
export { default as UndoRedoHistory } from './UndoRedoHistory.mjs';
|
65
|
-
|
73
|
+
// @internal
|
74
|
+
export { default as __js_draw__version } from './version.mjs';
|
75
|
+
import AbstractToolbar from './toolbar/AbstractToolbar.mjs';
|
76
|
+
export { Editor, AbstractToolbar,
|
77
|
+
/**
|
78
|
+
* Using the HTMLToolbar alias is deprecated. Use
|
79
|
+
* `AbstractToolbar` instead.
|
80
|
+
* @deprecated
|
81
|
+
*/
|
82
|
+
AbstractToolbar as HTMLToolbar, };
|
66
83
|
export default Editor;
|