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.
Files changed (113) hide show
  1. package/.github/ISSUE_TEMPLATE/translation.md +4 -1
  2. package/CHANGELOG.md +15 -0
  3. package/dist/bundle.js +1 -1
  4. package/dist/src/Editor.d.ts +4 -1
  5. package/dist/src/Editor.js +117 -2
  6. package/dist/src/EditorImage.js +4 -1
  7. package/dist/src/SVGLoader.d.ts +4 -1
  8. package/dist/src/SVGLoader.js +78 -33
  9. package/dist/src/UndoRedoHistory.d.ts +1 -0
  10. package/dist/src/UndoRedoHistory.js +6 -0
  11. package/dist/src/Viewport.d.ts +1 -0
  12. package/dist/src/Viewport.js +12 -4
  13. package/dist/src/commands/lib.d.ts +2 -1
  14. package/dist/src/commands/lib.js +2 -1
  15. package/dist/src/commands/localization.d.ts +1 -0
  16. package/dist/src/commands/localization.js +1 -0
  17. package/dist/src/commands/uniteCommands.d.ts +4 -0
  18. package/dist/src/commands/uniteCommands.js +105 -0
  19. package/dist/src/components/AbstractComponent.d.ts +2 -0
  20. package/dist/src/components/AbstractComponent.js +41 -5
  21. package/dist/src/components/ImageComponent.d.ts +27 -0
  22. package/dist/src/components/ImageComponent.js +129 -0
  23. package/dist/src/components/Stroke.js +11 -6
  24. package/dist/src/components/builders/FreehandLineBuilder.js +7 -7
  25. package/dist/src/components/lib.d.ts +4 -2
  26. package/dist/src/components/lib.js +4 -2
  27. package/dist/src/components/localization.d.ts +2 -0
  28. package/dist/src/components/localization.js +2 -0
  29. package/dist/src/math/LineSegment2.d.ts +4 -0
  30. package/dist/src/math/LineSegment2.js +9 -0
  31. package/dist/src/math/Path.d.ts +5 -1
  32. package/dist/src/math/Path.js +89 -7
  33. package/dist/src/math/Rect2.js +1 -1
  34. package/dist/src/math/Triangle.d.ts +11 -0
  35. package/dist/src/math/Triangle.js +19 -0
  36. package/dist/src/rendering/Display.js +2 -2
  37. package/dist/src/rendering/localization.d.ts +3 -0
  38. package/dist/src/rendering/localization.js +3 -0
  39. package/dist/src/rendering/renderers/AbstractRenderer.d.ts +9 -1
  40. package/dist/src/rendering/renderers/CanvasRenderer.d.ts +2 -1
  41. package/dist/src/rendering/renderers/CanvasRenderer.js +7 -0
  42. package/dist/src/rendering/renderers/DummyRenderer.d.ts +3 -1
  43. package/dist/src/rendering/renderers/DummyRenderer.js +5 -0
  44. package/dist/src/rendering/renderers/SVGRenderer.d.ts +14 -12
  45. package/dist/src/rendering/renderers/SVGRenderer.js +71 -87
  46. package/dist/src/rendering/renderers/TextOnlyRenderer.d.ts +3 -1
  47. package/dist/src/rendering/renderers/TextOnlyRenderer.js +8 -1
  48. package/dist/src/toolbar/HTMLToolbar.d.ts +1 -0
  49. package/dist/src/toolbar/HTMLToolbar.js +1 -0
  50. package/dist/src/toolbar/widgets/BaseWidget.d.ts +3 -0
  51. package/dist/src/toolbar/widgets/BaseWidget.js +21 -1
  52. package/dist/src/tools/BaseTool.d.ts +4 -1
  53. package/dist/src/tools/BaseTool.js +12 -0
  54. package/dist/src/tools/PasteHandler.d.ts +16 -0
  55. package/dist/src/tools/PasteHandler.js +142 -0
  56. package/dist/src/tools/Pen.d.ts +2 -1
  57. package/dist/src/tools/Pen.js +16 -0
  58. package/dist/src/tools/SelectionTool.d.ts +7 -1
  59. package/dist/src/tools/SelectionTool.js +63 -5
  60. package/dist/src/tools/ToolController.d.ts +1 -0
  61. package/dist/src/tools/ToolController.js +45 -29
  62. package/dist/src/tools/ToolSwitcherShortcut.d.ts +8 -0
  63. package/dist/src/tools/ToolSwitcherShortcut.js +26 -0
  64. package/dist/src/tools/lib.d.ts +2 -0
  65. package/dist/src/tools/lib.js +2 -0
  66. package/dist/src/tools/localization.d.ts +4 -0
  67. package/dist/src/tools/localization.js +4 -0
  68. package/dist/src/types.d.ts +21 -4
  69. package/dist/src/types.js +3 -0
  70. package/package.json +2 -2
  71. package/src/Editor.ts +131 -2
  72. package/src/EditorImage.ts +7 -1
  73. package/src/SVGLoader.ts +90 -36
  74. package/src/UndoRedoHistory.test.ts +33 -0
  75. package/src/UndoRedoHistory.ts +8 -0
  76. package/src/Viewport.ts +13 -4
  77. package/src/commands/lib.ts +2 -0
  78. package/src/commands/localization.ts +2 -0
  79. package/src/commands/uniteCommands.test.ts +23 -0
  80. package/src/commands/uniteCommands.ts +121 -0
  81. package/src/components/AbstractComponent.ts +55 -9
  82. package/src/components/ImageComponent.ts +153 -0
  83. package/src/components/Stroke.test.ts +5 -0
  84. package/src/components/Stroke.ts +13 -7
  85. package/src/components/builders/FreehandLineBuilder.ts +7 -7
  86. package/src/components/lib.ts +7 -2
  87. package/src/components/localization.ts +4 -0
  88. package/src/math/LineSegment2.test.ts +9 -0
  89. package/src/math/LineSegment2.ts +13 -0
  90. package/src/math/Path.test.ts +53 -0
  91. package/src/math/Path.toString.test.ts +4 -2
  92. package/src/math/Path.ts +109 -11
  93. package/src/math/Rect2.ts +1 -1
  94. package/src/math/Triangle.ts +29 -0
  95. package/src/rendering/Display.ts +2 -2
  96. package/src/rendering/localization.ts +6 -0
  97. package/src/rendering/renderers/AbstractRenderer.ts +17 -0
  98. package/src/rendering/renderers/CanvasRenderer.ts +10 -1
  99. package/src/rendering/renderers/DummyRenderer.ts +6 -1
  100. package/src/rendering/renderers/SVGRenderer.ts +76 -101
  101. package/src/rendering/renderers/TextOnlyRenderer.ts +10 -2
  102. package/src/toolbar/HTMLToolbar.ts +1 -1
  103. package/src/toolbar/types.ts +1 -1
  104. package/src/toolbar/widgets/BaseWidget.ts +27 -1
  105. package/src/tools/BaseTool.ts +17 -1
  106. package/src/tools/PasteHandler.ts +156 -0
  107. package/src/tools/Pen.ts +20 -1
  108. package/src/tools/SelectionTool.ts +80 -8
  109. package/src/tools/ToolController.ts +60 -46
  110. package/src/tools/ToolSwitcherShortcut.ts +34 -0
  111. package/src/tools/lib.ts +2 -0
  112. package/src/tools/localization.ts +10 -0
  113. 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.