js-draw 0.25.0 → 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 +44 -45
- 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 +43 -45
- 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 -167
- 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
package/dist/mjs/types.d.ts
CHANGED
@@ -1,77 +1,9 @@
|
|
1
|
-
import EventDispatcher from './EventDispatcher';
|
2
|
-
import Mat33 from '
|
3
|
-
import
|
4
|
-
import
|
5
|
-
import
|
6
|
-
import
|
7
|
-
import Rect2 from './math/shapes/Rect2';
|
8
|
-
import Pointer from './Pointer';
|
9
|
-
import Color4 from './Color4';
|
10
|
-
import Command from './commands/Command';
|
11
|
-
import BaseWidget from './toolbar/widgets/BaseWidget';
|
12
|
-
export type HTMLPointerEventName = 'pointerdown' | 'pointermove' | 'pointerup' | 'pointercancel';
|
13
|
-
export type HTMLPointerEventFilter = (eventName: HTMLPointerEventName, event: PointerEvent) => boolean;
|
14
|
-
export interface PointerEvtListener {
|
15
|
-
onPointerDown(event: PointerEvt): boolean;
|
16
|
-
onPointerMove(event: PointerEvt): void;
|
17
|
-
onPointerUp(event: PointerEvt): void;
|
18
|
-
onGestureCancel(): void;
|
19
|
-
}
|
20
|
-
export declare enum InputEvtType {
|
21
|
-
PointerDownEvt = 0,
|
22
|
-
PointerMoveEvt = 1,
|
23
|
-
PointerUpEvt = 2,
|
24
|
-
GestureCancelEvt = 3,
|
25
|
-
WheelEvt = 4,
|
26
|
-
KeyPressEvent = 5,
|
27
|
-
KeyUpEvent = 6,
|
28
|
-
CopyEvent = 7,
|
29
|
-
PasteEvent = 8
|
30
|
-
}
|
31
|
-
export interface WheelEvt {
|
32
|
-
readonly kind: InputEvtType.WheelEvt;
|
33
|
-
readonly delta: Vec3;
|
34
|
-
readonly screenPos: Point2;
|
35
|
-
}
|
36
|
-
export interface KeyPressEvent {
|
37
|
-
readonly kind: InputEvtType.KeyPressEvent;
|
38
|
-
readonly key: string;
|
39
|
-
readonly ctrlKey: boolean | undefined;
|
40
|
-
readonly altKey: boolean | undefined;
|
41
|
-
}
|
42
|
-
export interface KeyUpEvent {
|
43
|
-
readonly kind: InputEvtType.KeyUpEvent;
|
44
|
-
readonly key: string;
|
45
|
-
readonly ctrlKey: boolean | undefined;
|
46
|
-
readonly altKey: boolean | undefined;
|
47
|
-
}
|
48
|
-
export interface CopyEvent {
|
49
|
-
readonly kind: InputEvtType.CopyEvent;
|
50
|
-
setData(mime: string, data: string): void;
|
51
|
-
}
|
52
|
-
export interface PasteEvent {
|
53
|
-
readonly kind: InputEvtType.PasteEvent;
|
54
|
-
readonly data: string;
|
55
|
-
readonly mime: string;
|
56
|
-
}
|
57
|
-
export interface GestureCancelEvt {
|
58
|
-
readonly kind: InputEvtType.GestureCancelEvt;
|
59
|
-
}
|
60
|
-
interface PointerEvtBase {
|
61
|
-
readonly current: Pointer;
|
62
|
-
readonly allPointers: Pointer[];
|
63
|
-
}
|
64
|
-
export interface PointerDownEvt extends PointerEvtBase {
|
65
|
-
readonly kind: InputEvtType.PointerDownEvt;
|
66
|
-
}
|
67
|
-
export interface PointerMoveEvt extends PointerEvtBase {
|
68
|
-
readonly kind: InputEvtType.PointerMoveEvt;
|
69
|
-
}
|
70
|
-
export interface PointerUpEvt extends PointerEvtBase {
|
71
|
-
readonly kind: InputEvtType.PointerUpEvt;
|
72
|
-
}
|
73
|
-
export type PointerEvt = PointerDownEvt | PointerMoveEvt | PointerUpEvt;
|
74
|
-
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt | CopyEvent | PasteEvent;
|
1
|
+
import type EventDispatcher from './EventDispatcher';
|
2
|
+
import type { Mat33, Point2, Vec2, Rect2, Color4 } from '@js-draw/math';
|
3
|
+
import type BaseTool from './tools/BaseTool';
|
4
|
+
import type AbstractComponent from './components/AbstractComponent';
|
5
|
+
import type Command from './commands/Command';
|
6
|
+
import type { WidgetContentLayoutManager } from './toolbar/widgets/layout/types';
|
75
7
|
export type EditorNotifier = EventDispatcher<EditorEventType, EditorEventDataType>;
|
76
8
|
export declare enum EditorEventType {
|
77
9
|
ToolEnabled = 0,
|
@@ -83,9 +15,13 @@ export declare enum EditorEventType {
|
|
83
15
|
ObjectAdded = 6,
|
84
16
|
ViewportChanged = 7,
|
85
17
|
DisplayResized = 8,
|
86
|
-
|
87
|
-
|
88
|
-
|
18
|
+
SelectionUpdated = 9,
|
19
|
+
/** @internal */
|
20
|
+
ColorPickerToggled = 10,
|
21
|
+
/** @internal */
|
22
|
+
ColorPickerColorSelected = 11,
|
23
|
+
/** @deprecated @internal */
|
24
|
+
ToolbarDropdownShown = 12
|
89
25
|
}
|
90
26
|
export declare enum UndoEventType {
|
91
27
|
CommandDone = 0,
|
@@ -125,6 +61,11 @@ export interface CommandUndoneEvent {
|
|
125
61
|
readonly kind: EditorEventType.CommandUndone;
|
126
62
|
readonly command: Command;
|
127
63
|
}
|
64
|
+
export interface SelectionUpdated {
|
65
|
+
readonly kind: EditorEventType.SelectionUpdated;
|
66
|
+
readonly selectedComponents: AbstractComponent[];
|
67
|
+
readonly tool: BaseTool;
|
68
|
+
}
|
128
69
|
export interface ColorPickerToggled {
|
129
70
|
readonly kind: EditorEventType.ColorPickerToggled;
|
130
71
|
readonly open: boolean;
|
@@ -135,9 +76,10 @@ export interface ColorPickerColorSelected {
|
|
135
76
|
}
|
136
77
|
export interface ToolbarDropdownShownEvent {
|
137
78
|
readonly kind: EditorEventType.ToolbarDropdownShown;
|
138
|
-
readonly
|
79
|
+
readonly fromToplevelDropdown: boolean;
|
80
|
+
readonly layoutManager: WidgetContentLayoutManager;
|
139
81
|
}
|
140
|
-
export type EditorEventDataType = EditorToolEvent | EditorObjectEvent | EditorViewportChangedEvent | DisplayResizedEvent | EditorUndoStackUpdated | CommandDoneEvent | CommandUndoneEvent | ColorPickerToggled | ColorPickerColorSelected | ToolbarDropdownShownEvent;
|
82
|
+
export type EditorEventDataType = EditorToolEvent | EditorObjectEvent | EditorViewportChangedEvent | DisplayResizedEvent | EditorUndoStackUpdated | CommandDoneEvent | CommandUndoneEvent | SelectionUpdated | ColorPickerToggled | ColorPickerColorSelected | ToolbarDropdownShownEvent;
|
141
83
|
export type OnProgressListener = (amountProcessed: number, totalToProcess: number) => Promise<void> | null | void;
|
142
84
|
export type ComponentAddedListener = (component: AbstractComponent) => Promise<void> | void;
|
143
85
|
export type OnDetermineExportRectListener = (exportRect: Rect2) => void;
|
@@ -147,7 +89,7 @@ export interface ImageLoader {
|
|
147
89
|
export interface StrokeDataPoint {
|
148
90
|
pos: Point2;
|
149
91
|
width: number;
|
150
|
-
/** Time in milliseconds (e.g. as returned by `
|
92
|
+
/** Time in milliseconds (e.g. as returned by `performance.now()`). */
|
151
93
|
time: number;
|
152
94
|
color: Color4;
|
153
95
|
}
|
package/dist/mjs/types.mjs
CHANGED
@@ -1,16 +1,4 @@
|
|
1
1
|
// Types related to the image editor
|
2
|
-
export var InputEvtType;
|
3
|
-
(function (InputEvtType) {
|
4
|
-
InputEvtType[InputEvtType["PointerDownEvt"] = 0] = "PointerDownEvt";
|
5
|
-
InputEvtType[InputEvtType["PointerMoveEvt"] = 1] = "PointerMoveEvt";
|
6
|
-
InputEvtType[InputEvtType["PointerUpEvt"] = 2] = "PointerUpEvt";
|
7
|
-
InputEvtType[InputEvtType["GestureCancelEvt"] = 3] = "GestureCancelEvt";
|
8
|
-
InputEvtType[InputEvtType["WheelEvt"] = 4] = "WheelEvt";
|
9
|
-
InputEvtType[InputEvtType["KeyPressEvent"] = 5] = "KeyPressEvent";
|
10
|
-
InputEvtType[InputEvtType["KeyUpEvent"] = 6] = "KeyUpEvent";
|
11
|
-
InputEvtType[InputEvtType["CopyEvent"] = 7] = "CopyEvent";
|
12
|
-
InputEvtType[InputEvtType["PasteEvent"] = 8] = "PasteEvent";
|
13
|
-
})(InputEvtType || (InputEvtType = {}));
|
14
2
|
export var EditorEventType;
|
15
3
|
(function (EditorEventType) {
|
16
4
|
EditorEventType[EditorEventType["ToolEnabled"] = 0] = "ToolEnabled";
|
@@ -22,9 +10,13 @@ export var EditorEventType;
|
|
22
10
|
EditorEventType[EditorEventType["ObjectAdded"] = 6] = "ObjectAdded";
|
23
11
|
EditorEventType[EditorEventType["ViewportChanged"] = 7] = "ViewportChanged";
|
24
12
|
EditorEventType[EditorEventType["DisplayResized"] = 8] = "DisplayResized";
|
25
|
-
EditorEventType[EditorEventType["
|
26
|
-
|
27
|
-
EditorEventType[EditorEventType["
|
13
|
+
EditorEventType[EditorEventType["SelectionUpdated"] = 9] = "SelectionUpdated";
|
14
|
+
/** @internal */
|
15
|
+
EditorEventType[EditorEventType["ColorPickerToggled"] = 10] = "ColorPickerToggled";
|
16
|
+
/** @internal */
|
17
|
+
EditorEventType[EditorEventType["ColorPickerColorSelected"] = 11] = "ColorPickerColorSelected";
|
18
|
+
/** @deprecated @internal */
|
19
|
+
EditorEventType[EditorEventType["ToolbarDropdownShown"] = 12] = "ToolbarDropdownShown";
|
28
20
|
})(EditorEventType || (EditorEventType = {}));
|
29
21
|
// Types of `EditorUndoStackUpdated` events.
|
30
22
|
export var UndoEventType;
|
@@ -0,0 +1,65 @@
|
|
1
|
+
type ListenerResult = {
|
2
|
+
remove(): void;
|
3
|
+
};
|
4
|
+
type UpdateCallback<T> = (value: T) => void;
|
5
|
+
/**
|
6
|
+
* A `ReactiveValue` is a value that
|
7
|
+
* - updates periodically,
|
8
|
+
* - can fire listeners when it updates,
|
9
|
+
* - and can be chanined together with other `ReactiveValue`s.
|
10
|
+
*
|
11
|
+
* A `ReactiveValue` is a read-only view. See {@link MutableReactiveValue} for a
|
12
|
+
* read-write view.
|
13
|
+
*
|
14
|
+
* Static methods in the `ReactiveValue` and `MutableReactiveValue` classes are
|
15
|
+
* constructors (e.g. `fromImmutable`).
|
16
|
+
*/
|
17
|
+
export declare abstract class ReactiveValue<T> {
|
18
|
+
/**
|
19
|
+
* Returns a reference to the current value of this `ReactiveValue`.
|
20
|
+
*
|
21
|
+
* The result of this **should not be modified** (use `setValue` instead).
|
22
|
+
*/
|
23
|
+
abstract get(): T;
|
24
|
+
/**
|
25
|
+
* Registers a listener that is notified when the value of this changes.
|
26
|
+
*/
|
27
|
+
abstract onUpdate(listener: UpdateCallback<T>): ListenerResult;
|
28
|
+
/**
|
29
|
+
* Calls `callback` immediately, then registers `callback` as an onUpdateListener.
|
30
|
+
*
|
31
|
+
* @see {@link onUpdate}.
|
32
|
+
*/
|
33
|
+
abstract onUpdateAndNow(callback: UpdateCallback<T>): ListenerResult;
|
34
|
+
/** Creates a `ReactiveValue` with an initial value, `initialValue`. */
|
35
|
+
static fromInitialValue<T>(initialValue: T): MutableReactiveValue<T>;
|
36
|
+
/** Returns a `ReactiveValue` that is **known** will never change. */
|
37
|
+
static fromImmutable<T>(value: T): ReactiveValue<T>;
|
38
|
+
/**
|
39
|
+
* Creates a `ReactiveValue` whose values come from `callback`.
|
40
|
+
*
|
41
|
+
* `callback` is called whenever any of `sourceValues` are updated and initially to
|
42
|
+
* set the initial value of the result.
|
43
|
+
*/
|
44
|
+
static fromCallback<T>(callback: () => T, sourceValues: ReactiveValue<any>[]): ReactiveValue<T>;
|
45
|
+
/**
|
46
|
+
* Returns a reactive value derived from a single `source`.
|
47
|
+
*
|
48
|
+
* If `inverseMap` is `undefined`, the result is a read-only view.
|
49
|
+
*/
|
50
|
+
static map<A, B>(source: ReactiveValue<A>, map: (a: A) => B, inverseMap?: undefined): ReactiveValue<B>;
|
51
|
+
/**
|
52
|
+
* Returns a reactive value derived from a single `source`.
|
53
|
+
*/
|
54
|
+
static map<A, B>(source: ReactiveValue<A>, map: (a: A) => B, inverseMap: (b: B) => A): MutableReactiveValue<B>;
|
55
|
+
}
|
56
|
+
export declare abstract class MutableReactiveValue<T> extends ReactiveValue<T> {
|
57
|
+
/**
|
58
|
+
* Changes the value of this and fires all update listeners.
|
59
|
+
*
|
60
|
+
* @see {@link onUpdate}
|
61
|
+
*/
|
62
|
+
abstract set(newValue: T): void;
|
63
|
+
static fromProperty<SourceType extends object, Name extends keyof SourceType>(sourceValue: MutableReactiveValue<SourceType>, propertyName: Name): MutableReactiveValue<SourceType[Name]>;
|
64
|
+
}
|
65
|
+
export default ReactiveValue;
|
@@ -0,0 +1,161 @@
|
|
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 _ReactiveValueImpl_value, _ReactiveValueImpl_onUpdateListeners;
|
13
|
+
const noOpUpdateListenerResult = {
|
14
|
+
remove() { }
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* An update listener that does nothing. Useful for reactive values
|
18
|
+
* that will never change.
|
19
|
+
*/
|
20
|
+
const noOpSetUpdateListener = () => {
|
21
|
+
return noOpUpdateListenerResult;
|
22
|
+
};
|
23
|
+
/**
|
24
|
+
* A `ReactiveValue` is a value that
|
25
|
+
* - updates periodically,
|
26
|
+
* - can fire listeners when it updates,
|
27
|
+
* - and can be chanined together with other `ReactiveValue`s.
|
28
|
+
*
|
29
|
+
* A `ReactiveValue` is a read-only view. See {@link MutableReactiveValue} for a
|
30
|
+
* read-write view.
|
31
|
+
*
|
32
|
+
* Static methods in the `ReactiveValue` and `MutableReactiveValue` classes are
|
33
|
+
* constructors (e.g. `fromImmutable`).
|
34
|
+
*/
|
35
|
+
export class ReactiveValue {
|
36
|
+
/** Creates a `ReactiveValue` with an initial value, `initialValue`. */
|
37
|
+
static fromInitialValue(initialValue) {
|
38
|
+
return new ReactiveValueImpl(initialValue);
|
39
|
+
}
|
40
|
+
/** Returns a `ReactiveValue` that is **known** will never change. */
|
41
|
+
static fromImmutable(value) {
|
42
|
+
return {
|
43
|
+
get: () => value,
|
44
|
+
onUpdate: noOpSetUpdateListener,
|
45
|
+
onUpdateAndNow: callback => {
|
46
|
+
callback(value);
|
47
|
+
return noOpUpdateListenerResult;
|
48
|
+
},
|
49
|
+
};
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* Creates a `ReactiveValue` whose values come from `callback`.
|
53
|
+
*
|
54
|
+
* `callback` is called whenever any of `sourceValues` are updated and initially to
|
55
|
+
* set the initial value of the result.
|
56
|
+
*/
|
57
|
+
static fromCallback(callback, sourceValues) {
|
58
|
+
const result = new ReactiveValueImpl(callback());
|
59
|
+
const resultRef = window.WeakRef ? new WeakRef(result) : { deref: () => result };
|
60
|
+
for (const value of sourceValues) {
|
61
|
+
const listener = value.onUpdate(() => {
|
62
|
+
// Use resultRef to allow `result` to be garbage collected
|
63
|
+
// despite this listener.
|
64
|
+
const value = resultRef.deref();
|
65
|
+
if (value) {
|
66
|
+
value.set(callback());
|
67
|
+
}
|
68
|
+
else {
|
69
|
+
listener.remove();
|
70
|
+
}
|
71
|
+
});
|
72
|
+
}
|
73
|
+
return result;
|
74
|
+
}
|
75
|
+
static map(source, map, inverseMap) {
|
76
|
+
const result = ReactiveValue.fromInitialValue(map(source.get()));
|
77
|
+
let expectedResultValue = result.get();
|
78
|
+
source.onUpdate(newValue => {
|
79
|
+
expectedResultValue = map(newValue);
|
80
|
+
result.set(expectedResultValue);
|
81
|
+
});
|
82
|
+
if (inverseMap) {
|
83
|
+
result.onUpdate(newValue => {
|
84
|
+
// Prevent infinite loops if inverseMap is not a true
|
85
|
+
// inverse.
|
86
|
+
if (newValue !== expectedResultValue) {
|
87
|
+
source.set(inverseMap(newValue));
|
88
|
+
}
|
89
|
+
});
|
90
|
+
}
|
91
|
+
return result;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
export class MutableReactiveValue extends ReactiveValue {
|
95
|
+
static fromProperty(sourceValue, propertyName) {
|
96
|
+
const child = ReactiveValue.fromInitialValue(sourceValue.get()[propertyName]);
|
97
|
+
const childRef = new WeakRef(child);
|
98
|
+
// When the source is updated...
|
99
|
+
const sourceListener = sourceValue.onUpdate(newValue => {
|
100
|
+
const childValue = childRef.deref();
|
101
|
+
if (childValue) {
|
102
|
+
childValue.set(newValue[propertyName]);
|
103
|
+
}
|
104
|
+
else {
|
105
|
+
// TODO: What if `sourceValue` would be dropped before
|
106
|
+
// the child value?
|
107
|
+
sourceListener.remove();
|
108
|
+
}
|
109
|
+
});
|
110
|
+
// When the child is updated, also apply the update to the
|
111
|
+
// parent.
|
112
|
+
child.onUpdate(newValue => {
|
113
|
+
sourceValue.set({
|
114
|
+
...sourceValue.get(),
|
115
|
+
[propertyName]: newValue,
|
116
|
+
});
|
117
|
+
});
|
118
|
+
return child;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
// @internal
|
122
|
+
class ReactiveValueImpl extends MutableReactiveValue {
|
123
|
+
constructor(initialValue) {
|
124
|
+
super();
|
125
|
+
_ReactiveValueImpl_value.set(this, void 0);
|
126
|
+
_ReactiveValueImpl_onUpdateListeners.set(this, void 0);
|
127
|
+
__classPrivateFieldSet(this, _ReactiveValueImpl_value, initialValue, "f");
|
128
|
+
__classPrivateFieldSet(this, _ReactiveValueImpl_onUpdateListeners, [], "f");
|
129
|
+
}
|
130
|
+
set(newValue) {
|
131
|
+
if (__classPrivateFieldGet(this, _ReactiveValueImpl_value, "f") === newValue) {
|
132
|
+
return;
|
133
|
+
}
|
134
|
+
__classPrivateFieldSet(this, _ReactiveValueImpl_value, newValue, "f");
|
135
|
+
for (const listener of __classPrivateFieldGet(this, _ReactiveValueImpl_onUpdateListeners, "f")) {
|
136
|
+
listener(newValue);
|
137
|
+
}
|
138
|
+
}
|
139
|
+
get() {
|
140
|
+
return __classPrivateFieldGet(this, _ReactiveValueImpl_value, "f");
|
141
|
+
}
|
142
|
+
onUpdate(listener) {
|
143
|
+
// **Note**: If memory is a concern, listeners should avoid referencing this
|
144
|
+
// reactive value directly. Doing so allows the value to be garbage collected when
|
145
|
+
// no longer referenced.
|
146
|
+
__classPrivateFieldGet(this, _ReactiveValueImpl_onUpdateListeners, "f").push(listener);
|
147
|
+
return {
|
148
|
+
remove: () => {
|
149
|
+
__classPrivateFieldSet(this, _ReactiveValueImpl_onUpdateListeners, __classPrivateFieldGet(this, _ReactiveValueImpl_onUpdateListeners, "f").filter(otherListener => {
|
150
|
+
return otherListener !== listener;
|
151
|
+
}), "f");
|
152
|
+
},
|
153
|
+
};
|
154
|
+
}
|
155
|
+
onUpdateAndNow(callback) {
|
156
|
+
callback(this.get());
|
157
|
+
return this.onUpdate(callback);
|
158
|
+
}
|
159
|
+
}
|
160
|
+
_ReactiveValueImpl_value = new WeakMap(), _ReactiveValueImpl_onUpdateListeners = new WeakMap();
|
161
|
+
export default ReactiveValue;
|
@@ -2,9 +2,9 @@
|
|
2
2
|
* Compile-time assertion that a branch of code is unreachable.
|
3
3
|
* @internal
|
4
4
|
*/
|
5
|
-
export
|
5
|
+
export const assertUnreachable = (key) => {
|
6
6
|
// See https://stackoverflow.com/a/39419171/17055750
|
7
|
-
throw new Error(
|
7
|
+
throw new Error(`Should be unreachable. Key: ${key}.`);
|
8
8
|
};
|
9
9
|
/**
|
10
10
|
* Throws an exception if the typeof given value is not a number or `value` is NaN.
|
@@ -19,8 +19,7 @@ export var assertUnreachable = function (key) {
|
|
19
19
|
*
|
20
20
|
*
|
21
21
|
*/
|
22
|
-
export
|
23
|
-
if (allowNaN === void 0) { allowNaN = false; }
|
22
|
+
export const assertIsNumber = (value, allowNaN = false) => {
|
24
23
|
if (typeof value !== 'number' || (!allowNaN && isNaN(value))) {
|
25
24
|
throw new Error('Given value is not a number');
|
26
25
|
// return false;
|
@@ -30,16 +29,14 @@ export var assertIsNumber = function (value, allowNaN) {
|
|
30
29
|
/**
|
31
30
|
* Throws if any of `values` is not of type number.
|
32
31
|
*/
|
33
|
-
export
|
34
|
-
if (allowNaN === void 0) { allowNaN = false; }
|
32
|
+
export const assertIsNumberArray = (values, allowNaN = false) => {
|
35
33
|
if (typeof values !== 'object') {
|
36
34
|
throw new Error('Asserting isNumberArray: Given entity is not an array');
|
37
35
|
}
|
38
36
|
if (!assertIsNumber(values['length'])) {
|
39
37
|
return false;
|
40
38
|
}
|
41
|
-
for (
|
42
|
-
var value = values_1[_i];
|
39
|
+
for (const value of values) {
|
43
40
|
if (!assertIsNumber(value, allowNaN)) {
|
44
41
|
return false;
|
45
42
|
}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
return new Promise(
|
4
|
-
reader.onload =
|
1
|
+
const fileToBase64 = (file, onprogress) => {
|
2
|
+
const reader = new FileReader();
|
3
|
+
return new Promise((resolve, reject) => {
|
4
|
+
reader.onload = () => resolve(reader.result);
|
5
5
|
reader.onerror = reject;
|
6
6
|
reader.onabort = reject;
|
7
|
-
reader.onprogress =
|
8
|
-
onprogress
|
7
|
+
reader.onprogress = (evt) => {
|
8
|
+
onprogress?.(evt);
|
9
9
|
};
|
10
10
|
reader.readAsDataURL(file);
|
11
11
|
});
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/**
|
2
|
+
* Attempts to guess the .code value corresponding to the given key.
|
3
|
+
*
|
4
|
+
* Use this to facilitate testing.
|
5
|
+
*
|
6
|
+
* If no matching keycode is found, returns `key`.
|
7
|
+
*/
|
8
|
+
declare const guessKeyCodeFromKey: (key: string) => string;
|
9
|
+
export default guessKeyCodeFromKey;
|
@@ -0,0 +1,30 @@
|
|
1
|
+
// See https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values for
|
2
|
+
// more
|
3
|
+
const keyToKeyCode = {
|
4
|
+
'Control': 'ControlLeft',
|
5
|
+
'=': 'Equal',
|
6
|
+
'-': 'Minus',
|
7
|
+
';': 'Semicolon',
|
8
|
+
' ': 'Space',
|
9
|
+
};
|
10
|
+
/**
|
11
|
+
* Attempts to guess the .code value corresponding to the given key.
|
12
|
+
*
|
13
|
+
* Use this to facilitate testing.
|
14
|
+
*
|
15
|
+
* If no matching keycode is found, returns `key`.
|
16
|
+
*/
|
17
|
+
const guessKeyCodeFromKey = (key) => {
|
18
|
+
const upperKey = key.toUpperCase();
|
19
|
+
if ('A' <= upperKey && upperKey <= 'Z') {
|
20
|
+
return `Key${upperKey}`;
|
21
|
+
}
|
22
|
+
if ('0' <= key && key <= '9') {
|
23
|
+
return `Digit${key}`;
|
24
|
+
}
|
25
|
+
if (key in keyToKeyCode) {
|
26
|
+
return keyToKeyCode[key];
|
27
|
+
}
|
28
|
+
return key;
|
29
|
+
};
|
30
|
+
export default guessKeyCodeFromKey;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* Returns true iff all elements in the shorter list equal (===) the elements
|
3
|
+
* in the longer list.
|
4
|
+
*/
|
5
|
+
const listPrefixMatch = (a, b) => {
|
6
|
+
const shorter = a.length < b.length ? a : b;
|
7
|
+
const longer = shorter === a ? b : a;
|
8
|
+
for (let i = 0; i < shorter.length; i++) {
|
9
|
+
if (shorter[i] !== longer[i]) {
|
10
|
+
return false;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
return true;
|
14
|
+
};
|
15
|
+
export default listPrefixMatch;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
const stopPropagationOfScrollingWheelEvents = (scrollingContainer) => {
|
2
|
+
scrollingContainer.onwheel = (event) => {
|
3
|
+
const hasScroll = scrollingContainer.clientWidth !== scrollingContainer.scrollWidth
|
4
|
+
&& event.deltaX !== 0;
|
5
|
+
const eventScrollsPastLeft = scrollingContainer.scrollLeft + event.deltaX <= 0;
|
6
|
+
const scrollRight = scrollingContainer.scrollLeft + scrollingContainer.clientWidth;
|
7
|
+
const eventScrollsPastRight = scrollRight + event.deltaX > scrollingContainer.scrollWidth;
|
8
|
+
// Stop the editor from receiving the event if it will scroll the pen type selector
|
9
|
+
// instead.
|
10
|
+
if (hasScroll && !eventScrollsPastLeft && !eventScrollsPastRight) {
|
11
|
+
event.stopPropagation();
|
12
|
+
}
|
13
|
+
};
|
14
|
+
};
|
15
|
+
export default stopPropagationOfScrollingWheelEvents;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/** @internal */
|
2
|
-
|
3
|
-
return new Promise(
|
4
|
-
requestAnimationFrame(
|
2
|
+
const untilNextAnimationFrame = () => {
|
3
|
+
return new Promise((resolve) => {
|
4
|
+
requestAnimationFrame(() => resolve());
|
5
5
|
});
|
6
6
|
};
|
7
7
|
export default untilNextAnimationFrame;
|
@@ -2,13 +2,13 @@
|
|
2
2
|
* Resolves when all given promises have resolved. If no promises are given,
|
3
3
|
* does not return a Promise.
|
4
4
|
*/
|
5
|
-
|
5
|
+
const waitForAll = (results) => {
|
6
6
|
// If any are Promises...
|
7
|
-
if (results.some(
|
7
|
+
if (results.some(command => command && command['then'])) {
|
8
8
|
// Wait for all commands to finish.
|
9
9
|
return Promise.all(results)
|
10
10
|
// Ensure we return a Promise<void> and not a Promise<void[]>
|
11
|
-
.then(
|
11
|
+
.then(() => { });
|
12
12
|
}
|
13
13
|
return;
|
14
14
|
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Returns a promise that resolves after `timeout` milliseconds.
|
2
|
-
|
3
|
-
return new Promise(
|
4
|
-
setTimeout(
|
2
|
+
const waitForTimeout = (timeout) => {
|
3
|
+
return new Promise(resolve => {
|
4
|
+
setTimeout(() => resolve(), timeout);
|
5
5
|
});
|
6
6
|
};
|
7
7
|
export default waitForTimeout;
|