js-draw 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/translation.md +4 -1
- package/CHANGELOG.md +15 -0
- package/dist/bundle.js +1 -1
- package/dist/src/Editor.d.ts +4 -1
- package/dist/src/Editor.js +117 -2
- package/dist/src/EditorImage.js +4 -1
- package/dist/src/SVGLoader.d.ts +4 -1
- package/dist/src/SVGLoader.js +78 -33
- package/dist/src/UndoRedoHistory.d.ts +1 -0
- package/dist/src/UndoRedoHistory.js +6 -0
- package/dist/src/Viewport.d.ts +1 -0
- package/dist/src/Viewport.js +12 -4
- package/dist/src/commands/lib.d.ts +2 -1
- package/dist/src/commands/lib.js +2 -1
- package/dist/src/commands/localization.d.ts +1 -0
- package/dist/src/commands/localization.js +1 -0
- package/dist/src/commands/uniteCommands.d.ts +4 -0
- package/dist/src/commands/uniteCommands.js +105 -0
- package/dist/src/components/AbstractComponent.d.ts +2 -0
- package/dist/src/components/AbstractComponent.js +41 -5
- package/dist/src/components/ImageComponent.d.ts +27 -0
- package/dist/src/components/ImageComponent.js +129 -0
- package/dist/src/components/Stroke.js +11 -6
- package/dist/src/components/builders/FreehandLineBuilder.js +7 -7
- package/dist/src/components/lib.d.ts +4 -2
- package/dist/src/components/lib.js +4 -2
- package/dist/src/components/localization.d.ts +2 -0
- package/dist/src/components/localization.js +2 -0
- package/dist/src/math/LineSegment2.d.ts +4 -0
- package/dist/src/math/LineSegment2.js +9 -0
- package/dist/src/math/Path.d.ts +5 -1
- package/dist/src/math/Path.js +89 -7
- package/dist/src/math/Rect2.js +1 -1
- package/dist/src/math/Triangle.d.ts +11 -0
- package/dist/src/math/Triangle.js +19 -0
- package/dist/src/rendering/Display.js +2 -2
- package/dist/src/rendering/localization.d.ts +3 -0
- package/dist/src/rendering/localization.js +3 -0
- package/dist/src/rendering/renderers/AbstractRenderer.d.ts +9 -1
- package/dist/src/rendering/renderers/CanvasRenderer.d.ts +2 -1
- package/dist/src/rendering/renderers/CanvasRenderer.js +7 -0
- package/dist/src/rendering/renderers/DummyRenderer.d.ts +3 -1
- package/dist/src/rendering/renderers/DummyRenderer.js +5 -0
- package/dist/src/rendering/renderers/SVGRenderer.d.ts +14 -12
- package/dist/src/rendering/renderers/SVGRenderer.js +71 -87
- package/dist/src/rendering/renderers/TextOnlyRenderer.d.ts +3 -1
- package/dist/src/rendering/renderers/TextOnlyRenderer.js +8 -1
- package/dist/src/toolbar/HTMLToolbar.d.ts +1 -0
- package/dist/src/toolbar/HTMLToolbar.js +1 -0
- package/dist/src/toolbar/widgets/BaseWidget.d.ts +3 -0
- package/dist/src/toolbar/widgets/BaseWidget.js +21 -1
- package/dist/src/tools/BaseTool.d.ts +4 -1
- package/dist/src/tools/BaseTool.js +12 -0
- package/dist/src/tools/PasteHandler.d.ts +16 -0
- package/dist/src/tools/PasteHandler.js +142 -0
- package/dist/src/tools/Pen.d.ts +2 -1
- package/dist/src/tools/Pen.js +16 -0
- package/dist/src/tools/SelectionTool.d.ts +7 -1
- package/dist/src/tools/SelectionTool.js +63 -5
- package/dist/src/tools/ToolController.d.ts +1 -0
- package/dist/src/tools/ToolController.js +45 -29
- package/dist/src/tools/ToolSwitcherShortcut.d.ts +8 -0
- package/dist/src/tools/ToolSwitcherShortcut.js +26 -0
- package/dist/src/tools/lib.d.ts +2 -0
- package/dist/src/tools/lib.js +2 -0
- package/dist/src/tools/localization.d.ts +4 -0
- package/dist/src/tools/localization.js +4 -0
- package/dist/src/types.d.ts +21 -4
- package/dist/src/types.js +3 -0
- package/package.json +2 -2
- package/src/Editor.ts +131 -2
- package/src/EditorImage.ts +7 -1
- package/src/SVGLoader.ts +90 -36
- package/src/UndoRedoHistory.test.ts +33 -0
- package/src/UndoRedoHistory.ts +8 -0
- package/src/Viewport.ts +13 -4
- package/src/commands/lib.ts +2 -0
- package/src/commands/localization.ts +2 -0
- package/src/commands/uniteCommands.test.ts +23 -0
- package/src/commands/uniteCommands.ts +121 -0
- package/src/components/AbstractComponent.ts +55 -9
- package/src/components/ImageComponent.ts +153 -0
- package/src/components/Stroke.test.ts +5 -0
- package/src/components/Stroke.ts +13 -7
- package/src/components/builders/FreehandLineBuilder.ts +7 -7
- package/src/components/lib.ts +7 -2
- package/src/components/localization.ts +4 -0
- package/src/math/LineSegment2.test.ts +9 -0
- package/src/math/LineSegment2.ts +13 -0
- package/src/math/Path.test.ts +53 -0
- package/src/math/Path.toString.test.ts +4 -2
- package/src/math/Path.ts +109 -11
- package/src/math/Rect2.ts +1 -1
- package/src/math/Triangle.ts +29 -0
- package/src/rendering/Display.ts +2 -2
- package/src/rendering/localization.ts +6 -0
- package/src/rendering/renderers/AbstractRenderer.ts +17 -0
- package/src/rendering/renderers/CanvasRenderer.ts +10 -1
- package/src/rendering/renderers/DummyRenderer.ts +6 -1
- package/src/rendering/renderers/SVGRenderer.ts +76 -101
- package/src/rendering/renderers/TextOnlyRenderer.ts +10 -2
- package/src/toolbar/HTMLToolbar.ts +1 -1
- package/src/toolbar/types.ts +1 -1
- package/src/toolbar/widgets/BaseWidget.ts +27 -1
- package/src/tools/BaseTool.ts +17 -1
- package/src/tools/PasteHandler.ts +156 -0
- package/src/tools/Pen.ts +20 -1
- package/src/tools/SelectionTool.ts +80 -8
- package/src/tools/ToolController.ts +60 -46
- package/src/tools/ToolSwitcherShortcut.ts +34 -0
- package/src/tools/lib.ts +2 -0
- package/src/tools/localization.ts +10 -0
- package/src/types.ts +29 -3
@@ -12,6 +12,11 @@ export interface ToolLocalization {
|
|
12
12
|
|
13
13
|
textTool: string;
|
14
14
|
enterTextToInsert: string;
|
15
|
+
changeTool: string;
|
16
|
+
pasteHandler: string;
|
17
|
+
|
18
|
+
copied: (count: number, description: string) => string;
|
19
|
+
pasted: (count: number, description: string) => string;
|
15
20
|
|
16
21
|
toolEnabledAnnouncement: (toolName: string) => string;
|
17
22
|
toolDisabledAnnouncement: (toolName: string) => string;
|
@@ -30,6 +35,11 @@ export const defaultToolLocalization: ToolLocalization = {
|
|
30
35
|
|
31
36
|
textTool: 'Text',
|
32
37
|
enterTextToInsert: 'Text to insert',
|
38
|
+
changeTool: 'Change tool',
|
39
|
+
pasteHandler: 'Copy paste handler',
|
40
|
+
|
41
|
+
copied: (count: number, description: string) => `Copied ${count} ${description}`,
|
42
|
+
pasted: (count: number, description: string) => `Pasted ${count} ${description}`,
|
33
43
|
|
34
44
|
toolEnabledAnnouncement: (toolName) => `${toolName} enabled`,
|
35
45
|
toolDisabledAnnouncement: (toolName) => `${toolName} disabled`,
|
package/src/types.ts
CHANGED
@@ -10,6 +10,7 @@ import Rect2 from './math/Rect2';
|
|
10
10
|
import Pointer from './Pointer';
|
11
11
|
import Color4 from './Color4';
|
12
12
|
import Command from './commands/Command';
|
13
|
+
import { BaseWidget } from './lib';
|
13
14
|
|
14
15
|
|
15
16
|
export interface PointerEvtListener {
|
@@ -34,7 +35,10 @@ export enum InputEvtType {
|
|
34
35
|
|
35
36
|
WheelEvt,
|
36
37
|
KeyPressEvent,
|
37
|
-
KeyUpEvent
|
38
|
+
KeyUpEvent,
|
39
|
+
|
40
|
+
CopyEvent,
|
41
|
+
PasteEvent,
|
38
42
|
}
|
39
43
|
|
40
44
|
// [delta.x] is horizontal scroll,
|
@@ -58,6 +62,17 @@ export interface KeyUpEvent {
|
|
58
62
|
readonly ctrlKey: boolean;
|
59
63
|
}
|
60
64
|
|
65
|
+
export interface CopyEvent {
|
66
|
+
readonly kind: InputEvtType.CopyEvent;
|
67
|
+
setData(mime: string, data: string): void;
|
68
|
+
}
|
69
|
+
|
70
|
+
export interface PasteEvent {
|
71
|
+
readonly kind: InputEvtType.PasteEvent;
|
72
|
+
readonly data: string;
|
73
|
+
readonly mime: string;
|
74
|
+
}
|
75
|
+
|
61
76
|
// Event triggered when pointer capture is taken by a different [PointerEvtListener].
|
62
77
|
export interface GestureCancelEvt {
|
63
78
|
readonly kind: InputEvtType.GestureCancelEvt;
|
@@ -81,13 +96,17 @@ export interface PointerUpEvt extends PointerEvtBase {
|
|
81
96
|
}
|
82
97
|
|
83
98
|
export type PointerEvt = PointerDownEvt | PointerMoveEvt | PointerUpEvt;
|
84
|
-
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt;
|
99
|
+
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt | CopyEvent | PasteEvent;
|
85
100
|
|
86
101
|
export type EditorNotifier = EventDispatcher<EditorEventType, EditorEventDataType>;
|
87
102
|
|
88
103
|
|
89
104
|
|
90
105
|
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
91
110
|
export enum EditorEventType {
|
92
111
|
ToolEnabled,
|
93
112
|
ToolDisabled,
|
@@ -103,6 +122,7 @@ export enum EditorEventType {
|
|
103
122
|
|
104
123
|
ColorPickerToggled,
|
105
124
|
ColorPickerColorSelected,
|
125
|
+
ToolbarDropdownShown,
|
106
126
|
}
|
107
127
|
|
108
128
|
type EditorToolEventType = EditorEventType.ToolEnabled
|
@@ -157,10 +177,16 @@ export interface ColorPickerColorSelected {
|
|
157
177
|
readonly color: Color4;
|
158
178
|
}
|
159
179
|
|
180
|
+
export interface ToolbarDropdownShownEvent {
|
181
|
+
readonly kind: EditorEventType.ToolbarDropdownShown;
|
182
|
+
readonly parentWidget: BaseWidget;
|
183
|
+
}
|
184
|
+
|
160
185
|
export type EditorEventDataType = EditorToolEvent | EditorObjectEvent
|
161
186
|
| EditorViewportChangedEvent | DisplayResizedEvent
|
162
187
|
| EditorUndoStackUpdated | CommandDoneEvent | CommandUndoneEvent
|
163
|
-
| ColorPickerToggled | ColorPickerColorSelected
|
188
|
+
| ColorPickerToggled | ColorPickerColorSelected
|
189
|
+
| ToolbarDropdownShownEvent;
|
164
190
|
|
165
191
|
|
166
192
|
// Returns a Promise to indicate that the event source should pause until the Promise resolves.
|