js-draw 1.20.3 → 1.21.1
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +1 -1
- package/dist/Editor.css +134 -26
- package/dist/bundle.js +2 -2
- package/dist/bundledStyles.js +1 -1
- package/dist/cjs/Editor.d.ts +27 -6
- package/dist/cjs/Editor.js +30 -8
- package/dist/cjs/SVGLoader/SVGLoader.js +2 -2
- package/dist/cjs/Viewport.d.ts +2 -2
- package/dist/cjs/commands/Command.d.ts +5 -0
- package/dist/cjs/commands/Command.js +5 -0
- package/dist/cjs/commands/SerializableCommand.d.ts +7 -0
- package/dist/cjs/commands/SerializableCommand.js +9 -0
- package/dist/cjs/dialogs/makeAboutDialog.d.ts +1 -1
- package/dist/cjs/dialogs/makeAboutDialog.js +10 -25
- package/dist/cjs/dialogs/makeMessageDialog.d.ts +11 -0
- package/dist/cjs/dialogs/makeMessageDialog.js +56 -0
- package/dist/cjs/image/EditorImage.d.ts +15 -1
- package/dist/cjs/image/EditorImage.js +15 -5
- package/dist/cjs/inputEvents.d.ts +10 -2
- package/dist/cjs/inputEvents.js +1 -0
- package/dist/cjs/localizations/es.js +3 -0
- package/dist/cjs/rendering/Display.d.ts +1 -0
- package/dist/cjs/rendering/Display.js +1 -0
- package/dist/cjs/rendering/TextRenderingStyle.d.ts +7 -6
- package/dist/cjs/rendering/TextRenderingStyle.js +1 -0
- package/dist/cjs/rendering/renderers/CanvasRenderer.d.ts +12 -3
- package/dist/cjs/rendering/renderers/CanvasRenderer.js +15 -2
- package/dist/cjs/rendering/renderers/DummyRenderer.d.ts +1 -1
- package/dist/cjs/testing/firstElementAncestorOfNode.d.ts +1 -1
- package/dist/cjs/testing/firstElementAncestorOfNode.js +1 -1
- package/dist/cjs/testing/sendPenEvent.d.ts +2 -2
- package/dist/cjs/testing/sendTouchEvent.d.ts +2 -2
- package/dist/cjs/toolbar/AbstractToolbar.d.ts +6 -1
- package/dist/cjs/toolbar/AbstractToolbar.js +6 -1
- package/dist/cjs/toolbar/IconProvider.d.ts +1 -1
- package/dist/cjs/toolbar/IconProvider.js +6 -1
- package/dist/cjs/toolbar/widgets/BaseWidget.d.ts +8 -0
- package/dist/cjs/toolbar/widgets/BaseWidget.js +8 -0
- package/dist/cjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/cjs/toolbar/widgets/HandToolWidget.js +1 -0
- package/dist/cjs/toolbar/widgets/PenToolWidget.d.ts +6 -0
- package/dist/cjs/toolbar/widgets/PenToolWidget.js +5 -0
- package/dist/cjs/types.d.ts +5 -0
- package/dist/cjs/types.js +1 -0
- package/dist/cjs/util/ClipboardHandler.d.ts +9 -1
- package/dist/cjs/util/ClipboardHandler.js +82 -24
- package/dist/cjs/version.js +1 -1
- package/dist/mjs/Editor.d.ts +27 -6
- package/dist/mjs/Editor.mjs +31 -9
- package/dist/mjs/SVGLoader/SVGLoader.mjs +2 -2
- package/dist/mjs/Viewport.d.ts +2 -2
- package/dist/mjs/commands/Command.d.ts +5 -0
- package/dist/mjs/commands/Command.mjs +5 -0
- package/dist/mjs/commands/SerializableCommand.d.ts +7 -0
- package/dist/mjs/commands/SerializableCommand.mjs +9 -0
- package/dist/mjs/dialogs/makeAboutDialog.d.ts +1 -1
- package/dist/mjs/dialogs/makeAboutDialog.mjs +7 -25
- package/dist/mjs/dialogs/makeMessageDialog.d.ts +11 -0
- package/dist/mjs/dialogs/makeMessageDialog.mjs +51 -0
- package/dist/mjs/image/EditorImage.d.ts +15 -1
- package/dist/mjs/image/EditorImage.mjs +15 -5
- package/dist/mjs/inputEvents.d.ts +10 -2
- package/dist/mjs/inputEvents.mjs +1 -0
- package/dist/mjs/localizations/es.mjs +3 -0
- package/dist/mjs/rendering/Display.d.ts +1 -0
- package/dist/mjs/rendering/Display.mjs +1 -0
- package/dist/mjs/rendering/TextRenderingStyle.d.ts +7 -6
- package/dist/mjs/rendering/TextRenderingStyle.mjs +1 -0
- package/dist/mjs/rendering/renderers/CanvasRenderer.d.ts +12 -3
- package/dist/mjs/rendering/renderers/CanvasRenderer.mjs +15 -2
- package/dist/mjs/rendering/renderers/DummyRenderer.d.ts +1 -1
- package/dist/mjs/testing/firstElementAncestorOfNode.d.ts +1 -1
- package/dist/mjs/testing/firstElementAncestorOfNode.mjs +1 -1
- package/dist/mjs/testing/sendPenEvent.d.ts +2 -2
- package/dist/mjs/testing/sendTouchEvent.d.ts +2 -2
- package/dist/mjs/toolbar/AbstractToolbar.d.ts +6 -1
- package/dist/mjs/toolbar/AbstractToolbar.mjs +6 -1
- package/dist/mjs/toolbar/IconProvider.d.ts +1 -1
- package/dist/mjs/toolbar/IconProvider.mjs +6 -1
- package/dist/mjs/toolbar/widgets/BaseWidget.d.ts +8 -0
- package/dist/mjs/toolbar/widgets/BaseWidget.mjs +8 -0
- package/dist/mjs/toolbar/widgets/HandToolWidget.d.ts +1 -0
- package/dist/mjs/toolbar/widgets/HandToolWidget.mjs +1 -0
- package/dist/mjs/toolbar/widgets/PenToolWidget.d.ts +6 -0
- package/dist/mjs/toolbar/widgets/PenToolWidget.mjs +5 -0
- package/dist/mjs/types.d.ts +5 -0
- package/dist/mjs/types.mjs +1 -0
- package/dist/mjs/util/ClipboardHandler.d.ts +9 -1
- package/dist/mjs/util/ClipboardHandler.mjs +82 -24
- package/dist/mjs/version.mjs +1 -1
- package/package.json +8 -9
- package/src/dialogs/dialogs.scss +9 -21
- package/src/dialogs/makeAboutDialog.scss +13 -33
- package/src/dialogs/makeMessageDialog.scss +46 -0
- package/dist/cjs/tools/BaseTool.d.ts +0 -60
- package/dist/cjs/tools/BaseTool.js +0 -174
- package/dist/cjs/tools/Eraser.d.ts +0 -56
- package/dist/cjs/tools/Eraser.js +0 -295
- package/dist/cjs/tools/Eraser.test.d.ts +0 -1
- package/dist/cjs/tools/FindTool.d.ts +0 -21
- package/dist/cjs/tools/FindTool.js +0 -137
- package/dist/cjs/tools/FindTool.test.d.ts +0 -1
- package/dist/cjs/tools/InputFilter/FunctionMapper.d.ts +0 -12
- package/dist/cjs/tools/InputFilter/FunctionMapper.js +0 -21
- package/dist/cjs/tools/InputFilter/InputMapper.d.ts +0 -23
- package/dist/cjs/tools/InputFilter/InputMapper.js +0 -38
- package/dist/cjs/tools/InputFilter/InputPipeline.d.ts +0 -15
- package/dist/cjs/tools/InputFilter/InputPipeline.js +0 -54
- package/dist/cjs/tools/InputFilter/InputPipeline.test.d.ts +0 -1
- package/dist/cjs/tools/InputFilter/InputStabilizer.d.ts +0 -29
- package/dist/cjs/tools/InputFilter/InputStabilizer.js +0 -181
- package/dist/cjs/tools/InputFilter/StrokeKeyboardControl.d.ts +0 -21
- package/dist/cjs/tools/InputFilter/StrokeKeyboardControl.js +0 -84
- package/dist/cjs/tools/PanZoom.d.ts +0 -119
- package/dist/cjs/tools/PanZoom.js +0 -508
- package/dist/cjs/tools/PanZoom.test.d.ts +0 -1
- package/dist/cjs/tools/PasteHandler.d.ts +0 -23
- package/dist/cjs/tools/PasteHandler.js +0 -109
- package/dist/cjs/tools/Pen.d.ts +0 -53
- package/dist/cjs/tools/Pen.js +0 -318
- package/dist/cjs/tools/Pen.test.d.ts +0 -1
- package/dist/cjs/tools/PipetteTool.d.ts +0 -28
- package/dist/cjs/tools/PipetteTool.js +0 -69
- package/dist/cjs/tools/ScrollbarTool.d.ts +0 -18
- package/dist/cjs/tools/ScrollbarTool.js +0 -85
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -9
- package/dist/cjs/tools/SelectionTool/SelectAllShortcutHandler.js +0 -32
- package/dist/cjs/tools/SelectionTool/Selection.d.ts +0 -71
- package/dist/cjs/tools/SelectionTool/Selection.js +0 -620
- package/dist/cjs/tools/SelectionTool/SelectionHandle.d.ts +0 -62
- package/dist/cjs/tools/SelectionTool/SelectionHandle.js +0 -141
- package/dist/cjs/tools/SelectionTool/SelectionTool.d.ts +0 -40
- package/dist/cjs/tools/SelectionTool/SelectionTool.js +0 -494
- package/dist/cjs/tools/SelectionTool/SelectionTool.selecting.test.d.ts +0 -1
- package/dist/cjs/tools/SelectionTool/SelectionTool.test.d.ts +0 -1
- package/dist/cjs/tools/SelectionTool/ToPointerAutoscroller.d.ts +0 -23
- package/dist/cjs/tools/SelectionTool/ToPointerAutoscroller.js +0 -83
- package/dist/cjs/tools/SelectionTool/TransformMode.d.ts +0 -42
- package/dist/cjs/tools/SelectionTool/TransformMode.js +0 -155
- package/dist/cjs/tools/SelectionTool/types.d.ts +0 -28
- package/dist/cjs/tools/SelectionTool/types.js +0 -14
- package/dist/cjs/tools/SoundUITool.d.ts +0 -26
- package/dist/cjs/tools/SoundUITool.js +0 -171
- package/dist/cjs/tools/TextTool.d.ts +0 -36
- package/dist/cjs/tools/TextTool.js +0 -285
- package/dist/cjs/tools/TextTool.test.d.ts +0 -1
- package/dist/cjs/tools/ToolController.d.ts +0 -73
- package/dist/cjs/tools/ToolController.js +0 -304
- package/dist/cjs/tools/ToolController.test.d.ts +0 -1
- package/dist/cjs/tools/ToolEnabledGroup.d.ts +0 -6
- package/dist/cjs/tools/ToolEnabledGroup.js +0 -13
- package/dist/cjs/tools/ToolSwitcherShortcut.d.ts +0 -16
- package/dist/cjs/tools/ToolSwitcherShortcut.js +0 -40
- package/dist/cjs/tools/ToolbarShortcutHandler.d.ts +0 -12
- package/dist/cjs/tools/ToolbarShortcutHandler.js +0 -34
- package/dist/cjs/tools/UndoRedoShortcut.d.ts +0 -8
- package/dist/cjs/tools/UndoRedoShortcut.js +0 -27
- package/dist/cjs/tools/UndoRedoShortcut.test.d.ts +0 -1
- package/dist/cjs/tools/keybindings.d.ts +0 -18
- package/dist/cjs/tools/keybindings.js +0 -49
- package/dist/cjs/tools/lib.d.ts +0 -14
- package/dist/cjs/tools/lib.js +0 -36
- package/dist/cjs/tools/localization.d.ts +0 -34
- package/dist/cjs/tools/localization.js +0 -36
- package/dist/cjs/tools/util/StationaryPenDetector.d.ts +0 -22
- package/dist/cjs/tools/util/StationaryPenDetector.js +0 -95
- package/dist/mjs/tools/BaseTool.d.ts +0 -60
- package/dist/mjs/tools/BaseTool.mjs +0 -172
- package/dist/mjs/tools/Eraser.d.ts +0 -56
- package/dist/mjs/tools/Eraser.mjs +0 -288
- package/dist/mjs/tools/Eraser.test.d.ts +0 -1
- package/dist/mjs/tools/FindTool.d.ts +0 -21
- package/dist/mjs/tools/FindTool.mjs +0 -131
- package/dist/mjs/tools/FindTool.test.d.ts +0 -1
- package/dist/mjs/tools/InputFilter/FunctionMapper.d.ts +0 -12
- package/dist/mjs/tools/InputFilter/FunctionMapper.mjs +0 -15
- package/dist/mjs/tools/InputFilter/InputMapper.d.ts +0 -23
- package/dist/mjs/tools/InputFilter/InputMapper.mjs +0 -36
- package/dist/mjs/tools/InputFilter/InputPipeline.d.ts +0 -15
- package/dist/mjs/tools/InputFilter/InputPipeline.mjs +0 -49
- package/dist/mjs/tools/InputFilter/InputPipeline.test.d.ts +0 -1
- package/dist/mjs/tools/InputFilter/InputStabilizer.d.ts +0 -29
- package/dist/mjs/tools/InputFilter/InputStabilizer.mjs +0 -175
- package/dist/mjs/tools/InputFilter/StrokeKeyboardControl.d.ts +0 -21
- package/dist/mjs/tools/InputFilter/StrokeKeyboardControl.mjs +0 -78
- package/dist/mjs/tools/PanZoom.d.ts +0 -119
- package/dist/mjs/tools/PanZoom.mjs +0 -501
- package/dist/mjs/tools/PanZoom.test.d.ts +0 -1
- package/dist/mjs/tools/PasteHandler.d.ts +0 -23
- package/dist/mjs/tools/PasteHandler.mjs +0 -103
- package/dist/mjs/tools/Pen.d.ts +0 -53
- package/dist/mjs/tools/Pen.mjs +0 -312
- package/dist/mjs/tools/Pen.test.d.ts +0 -1
- package/dist/mjs/tools/PipetteTool.d.ts +0 -28
- package/dist/mjs/tools/PipetteTool.mjs +0 -63
- package/dist/mjs/tools/ScrollbarTool.d.ts +0 -18
- package/dist/mjs/tools/ScrollbarTool.mjs +0 -79
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.d.ts +0 -9
- package/dist/mjs/tools/SelectionTool/SelectAllShortcutHandler.mjs +0 -26
- package/dist/mjs/tools/SelectionTool/Selection.d.ts +0 -71
- package/dist/mjs/tools/SelectionTool/Selection.mjs +0 -592
- package/dist/mjs/tools/SelectionTool/SelectionHandle.d.ts +0 -62
- package/dist/mjs/tools/SelectionTool/SelectionHandle.mjs +0 -137
- package/dist/mjs/tools/SelectionTool/SelectionTool.d.ts +0 -40
- package/dist/mjs/tools/SelectionTool/SelectionTool.mjs +0 -488
- package/dist/mjs/tools/SelectionTool/SelectionTool.selecting.test.d.ts +0 -1
- package/dist/mjs/tools/SelectionTool/SelectionTool.test.d.ts +0 -1
- package/dist/mjs/tools/SelectionTool/ToPointerAutoscroller.d.ts +0 -23
- package/dist/mjs/tools/SelectionTool/ToPointerAutoscroller.mjs +0 -77
- package/dist/mjs/tools/SelectionTool/TransformMode.d.ts +0 -42
- package/dist/mjs/tools/SelectionTool/TransformMode.mjs +0 -146
- package/dist/mjs/tools/SelectionTool/types.d.ts +0 -28
- package/dist/mjs/tools/SelectionTool/types.mjs +0 -11
- package/dist/mjs/tools/SoundUITool.d.ts +0 -26
- package/dist/mjs/tools/SoundUITool.mjs +0 -165
- package/dist/mjs/tools/TextTool.d.ts +0 -36
- package/dist/mjs/tools/TextTool.mjs +0 -279
- package/dist/mjs/tools/TextTool.test.d.ts +0 -1
- package/dist/mjs/tools/ToolController.d.ts +0 -73
- package/dist/mjs/tools/ToolController.mjs +0 -275
- package/dist/mjs/tools/ToolController.test.d.ts +0 -1
- package/dist/mjs/tools/ToolEnabledGroup.d.ts +0 -6
- package/dist/mjs/tools/ToolEnabledGroup.mjs +0 -10
- package/dist/mjs/tools/ToolSwitcherShortcut.d.ts +0 -16
- package/dist/mjs/tools/ToolSwitcherShortcut.mjs +0 -34
- package/dist/mjs/tools/ToolbarShortcutHandler.d.ts +0 -12
- package/dist/mjs/tools/ToolbarShortcutHandler.mjs +0 -28
- package/dist/mjs/tools/UndoRedoShortcut.d.ts +0 -8
- package/dist/mjs/tools/UndoRedoShortcut.mjs +0 -21
- package/dist/mjs/tools/UndoRedoShortcut.test.d.ts +0 -1
- package/dist/mjs/tools/keybindings.d.ts +0 -18
- package/dist/mjs/tools/keybindings.mjs +0 -43
- package/dist/mjs/tools/lib.d.ts +0 -14
- package/dist/mjs/tools/lib.mjs +0 -14
- package/dist/mjs/tools/localization.d.ts +0 -34
- package/dist/mjs/tools/localization.mjs +0 -33
- package/dist/mjs/tools/util/StationaryPenDetector.d.ts +0 -22
- package/dist/mjs/tools/util/StationaryPenDetector.mjs +0 -92
- package/src/tools/FindTool.css +0 -7
- package/src/tools/ScrollbarTool.scss +0 -57
- package/src/tools/SelectionTool/SelectionTool.scss +0 -137
- package/src/tools/SoundUITool.scss +0 -22
- package/src/tools/tools.scss +0 -5
@@ -0,0 +1,56 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const waitForTimeout_1 = __importDefault(require("../util/waitForTimeout"));
|
7
|
+
const makeAboutDialog = (editor, options) => {
|
8
|
+
const overlay = document.createElement('div');
|
9
|
+
const { remove: removeOverlay } = editor.createHTMLOverlay(overlay);
|
10
|
+
overlay.classList.add('dialog-container', 'message-dialog-container', ...(options.classNames ?? []));
|
11
|
+
const dialog = document.createElement('dialog');
|
12
|
+
const contentWrapper = document.createElement('div');
|
13
|
+
contentWrapper.classList.add('message-dialog-content', ...(options.contentClassNames ?? []));
|
14
|
+
const heading = document.createElement('h1');
|
15
|
+
heading.textContent = options.title;
|
16
|
+
heading.setAttribute('autofocus', 'true');
|
17
|
+
const closeButton = document.createElement('button');
|
18
|
+
closeButton.innerText = editor.localization.closeDialog;
|
19
|
+
closeButton.classList.add('close');
|
20
|
+
const scrollRegion = document.createElement('div');
|
21
|
+
scrollRegion.classList.add('scroll');
|
22
|
+
// Allow scrolling in the scrollable container -- don't forward wheel events.
|
23
|
+
scrollRegion.onwheel = evt => evt.stopPropagation();
|
24
|
+
contentWrapper.replaceChildren(heading, scrollRegion, closeButton);
|
25
|
+
dialog.replaceChildren(contentWrapper);
|
26
|
+
overlay.replaceChildren(dialog);
|
27
|
+
const closeTimeout = 300;
|
28
|
+
dialog.style.setProperty('--close-delay', `${closeTimeout}ms`);
|
29
|
+
const closeDialog = async () => {
|
30
|
+
dialog.classList.add('-closing');
|
31
|
+
await (0, waitForTimeout_1.default)(closeTimeout);
|
32
|
+
dialog.close();
|
33
|
+
};
|
34
|
+
const addCloseListeners = () => {
|
35
|
+
dialog.addEventListener('pointerdown', event => {
|
36
|
+
if (event.target === dialog) {
|
37
|
+
void closeDialog();
|
38
|
+
}
|
39
|
+
});
|
40
|
+
dialog.onclose = () => {
|
41
|
+
removeOverlay();
|
42
|
+
};
|
43
|
+
closeButton.onclick = () => closeDialog();
|
44
|
+
};
|
45
|
+
addCloseListeners();
|
46
|
+
dialog.showModal();
|
47
|
+
return {
|
48
|
+
close: () => {
|
49
|
+
return closeDialog();
|
50
|
+
},
|
51
|
+
appendChild: (child) => {
|
52
|
+
scrollRegion.appendChild(child);
|
53
|
+
},
|
54
|
+
};
|
55
|
+
};
|
56
|
+
exports.default = makeAboutDialog;
|
@@ -21,6 +21,9 @@ export type EditorImageNotifier = EventDispatcher<EditorImageEventType, {
|
|
21
21
|
* 3. stop the render process early by returning `false`.
|
22
22
|
*/
|
23
23
|
export type PreRenderComponentCallback = (component: AbstractComponent, componentsProcessed: number, totalComponents: number) => Promise<boolean>;
|
24
|
+
/**
|
25
|
+
* Handles lookup/storage of elements in the image.
|
26
|
+
*/
|
24
27
|
export default class EditorImage {
|
25
28
|
private root;
|
26
29
|
private background;
|
@@ -88,7 +91,8 @@ export default class EditorImage {
|
|
88
91
|
*
|
89
92
|
* @see {@link Display.flatten}
|
90
93
|
*
|
91
|
-
*
|
94
|
+
* **Example**:
|
95
|
+
*
|
92
96
|
* [[include:doc-pages/inline-examples/adding-a-stroke.md]]
|
93
97
|
*/
|
94
98
|
static addElement(elem: AbstractComponent, applyByFlattening?: boolean): SerializableCommand;
|
@@ -199,6 +203,16 @@ export declare class ImageNode {
|
|
199
203
|
getParent(): ImageNode | null;
|
200
204
|
protected getChildrenIntersectingRegion(region: Rect2, isTooSmallFilter?: TooSmallToRenderCheck): ImageNode[];
|
201
205
|
getChildrenOrSelfIntersectingRegion(region: Rect2): ImageNode[];
|
206
|
+
/**
|
207
|
+
* Returns a list of `ImageNode`s with content (and thus no children).
|
208
|
+
* Override getChildrenIntersectingRegion to customize how this method
|
209
|
+
* determines whether/which children are in `region`.
|
210
|
+
*
|
211
|
+
* @paran region - All resultant `ImageNode`s must intersect `region`.
|
212
|
+
* @param isTooSmall - If `isTooSmall` returns true for an image node, that node
|
213
|
+
* is excluded from the output.
|
214
|
+
*
|
215
|
+
*/
|
202
216
|
getLeavesIntersectingRegion(region: Rect2, isTooSmall?: TooSmallToRenderCheck): ImageNode[];
|
203
217
|
getChildWithContent(target: AbstractComponent): ImageNode | null;
|
204
218
|
getLeaves(): ImageNode[];
|
@@ -50,7 +50,9 @@ var EditorImageEventType;
|
|
50
50
|
EditorImageEventType[EditorImageEventType["AutoresizeModeChanged"] = 1] = "AutoresizeModeChanged";
|
51
51
|
})(EditorImageEventType || (exports.EditorImageEventType = EditorImageEventType = {}));
|
52
52
|
let debugMode = false;
|
53
|
-
|
53
|
+
/**
|
54
|
+
* Handles lookup/storage of elements in the image.
|
55
|
+
*/
|
54
56
|
class EditorImage {
|
55
57
|
// @internal
|
56
58
|
constructor() {
|
@@ -211,7 +213,8 @@ class EditorImage {
|
|
211
213
|
*
|
212
214
|
* @see {@link Display.flatten}
|
213
215
|
*
|
214
|
-
*
|
216
|
+
* **Example**:
|
217
|
+
*
|
215
218
|
* [[include:doc-pages/inline-examples/adding-a-stroke.md]]
|
216
219
|
*/
|
217
220
|
static addElement(elem, applyByFlattening = false) {
|
@@ -549,9 +552,16 @@ class ImageNode {
|
|
549
552
|
}
|
550
553
|
return this.getChildrenIntersectingRegion(region);
|
551
554
|
}
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
+
/**
|
556
|
+
* Returns a list of `ImageNode`s with content (and thus no children).
|
557
|
+
* Override getChildrenIntersectingRegion to customize how this method
|
558
|
+
* determines whether/which children are in `region`.
|
559
|
+
*
|
560
|
+
* @paran region - All resultant `ImageNode`s must intersect `region`.
|
561
|
+
* @param isTooSmall - If `isTooSmall` returns true for an image node, that node
|
562
|
+
* is excluded from the output.
|
563
|
+
*
|
564
|
+
*/
|
555
565
|
getLeavesIntersectingRegion(region, isTooSmall) {
|
556
566
|
const result = [];
|
557
567
|
const workList = [];
|
@@ -17,7 +17,8 @@ export declare enum InputEvtType {
|
|
17
17
|
KeyPressEvent = 5,
|
18
18
|
KeyUpEvent = 6,
|
19
19
|
CopyEvent = 7,
|
20
|
-
PasteEvent = 8
|
20
|
+
PasteEvent = 8,
|
21
|
+
ContextMenu = 9
|
21
22
|
}
|
22
23
|
export interface WheelEvt {
|
23
24
|
readonly kind: InputEvtType.WheelEvt;
|
@@ -76,18 +77,25 @@ export interface PointerMoveEvt extends PointerEvtBase {
|
|
76
77
|
export interface PointerUpEvt extends PointerEvtBase {
|
77
78
|
readonly kind: InputEvtType.PointerUpEvt;
|
78
79
|
}
|
80
|
+
export interface ContextMenuEvt {
|
81
|
+
readonly kind: InputEvtType.ContextMenu;
|
82
|
+
readonly screenPos: Point2;
|
83
|
+
readonly canvasPos: Point2;
|
84
|
+
}
|
79
85
|
/**
|
80
86
|
* An internal `js-draw` pointer event type.
|
81
87
|
*
|
82
88
|
* This **is not** the same as a DOM pointer event.
|
83
89
|
*/
|
84
90
|
export type PointerEvt = PointerDownEvt | PointerMoveEvt | PointerUpEvt;
|
91
|
+
/** The type of any internal {@link PointerEvt} record. */
|
92
|
+
export type PointerEvtType = InputEvtType.PointerDownEvt | InputEvtType.PointerMoveEvt | InputEvtType.PointerUpEvt;
|
85
93
|
/**
|
86
94
|
* An internal `js-draw` input event type.
|
87
95
|
*
|
88
96
|
* These are not DOM events.
|
89
97
|
*/
|
90
|
-
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt | CopyEvent | PasteEvent;
|
98
|
+
export type InputEvt = KeyPressEvent | KeyUpEvent | WheelEvt | GestureCancelEvt | PointerEvt | CopyEvent | PasteEvent | ContextMenuEvt;
|
91
99
|
export declare const keyUpEventFromHTMLEvent: (event: KeyboardEvent) => KeyUpEvent;
|
92
100
|
export declare const keyPressEventFromHTMLEvent: (event: KeyboardEvent) => KeyPressEvent;
|
93
101
|
export declare const isPointerEvt: (event: InputEvt) => event is PointerEvt;
|
package/dist/cjs/inputEvents.js
CHANGED
@@ -12,6 +12,7 @@ var InputEvtType;
|
|
12
12
|
InputEvtType[InputEvtType["KeyUpEvent"] = 6] = "KeyUpEvent";
|
13
13
|
InputEvtType[InputEvtType["CopyEvent"] = 7] = "CopyEvent";
|
14
14
|
InputEvtType[InputEvtType["PasteEvent"] = 8] = "PasteEvent";
|
15
|
+
InputEvtType[InputEvtType["ContextMenu"] = 9] = "ContextMenu";
|
15
16
|
})(InputEvtType || (exports.InputEvtType = InputEvtType = {}));
|
16
17
|
// Constructor
|
17
18
|
const keyEventFromHTMLEvent = (kind, event) => {
|
@@ -43,6 +43,9 @@ const localization = {
|
|
43
43
|
filledRectanglePen: 'Rectángulo sin borde',
|
44
44
|
lockRotation: 'Bloquea rotación',
|
45
45
|
paste: 'Pegar',
|
46
|
+
selectionMenu__paste: 'Pegar',
|
47
|
+
selectionMenu__delete: 'Eliminar',
|
48
|
+
selectionMenu__duplicate: 'Duplicar',
|
46
49
|
closeSidebar: (toolName) => `Close sidebar for ${toolName}`,
|
47
50
|
dropdownShown: (toolName) => `Menú por ${toolName} es visible`,
|
48
51
|
dropdownHidden: (toolName) => { return `Menú por ${toolName} fue ocultado`; },
|
@@ -22,10 +22,11 @@ export declare const cloneTextStyle: (style: TextRenderingStyle) => {
|
|
22
22
|
};
|
23
23
|
size: number;
|
24
24
|
fontFamily: string;
|
25
|
-
fontWeight?: string
|
26
|
-
fontStyle?: string
|
27
|
-
fontVariant?: string
|
25
|
+
fontWeight?: string;
|
26
|
+
fontStyle?: string;
|
27
|
+
fontVariant?: string;
|
28
28
|
};
|
29
|
+
/** `json` can either be a `string` or an `object`. */
|
29
30
|
export declare const textStyleFromJSON: (json: any) => TextRenderingStyle;
|
30
31
|
export declare const textStyleToJSON: (style: TextRenderingStyle) => {
|
31
32
|
renderingStyle: {
|
@@ -37,7 +38,7 @@ export declare const textStyleToJSON: (style: TextRenderingStyle) => {
|
|
37
38
|
};
|
38
39
|
size: number;
|
39
40
|
fontFamily: string;
|
40
|
-
fontWeight?: string
|
41
|
-
fontStyle?: string
|
42
|
-
fontVariant?: string
|
41
|
+
fontWeight?: string;
|
42
|
+
fontStyle?: string;
|
43
|
+
fontVariant?: string;
|
43
44
|
};
|
@@ -8,9 +8,15 @@ import RenderablePathSpec from '../RenderablePathSpec';
|
|
8
8
|
* Renders onto a `CanvasRenderingContext2D`.
|
9
9
|
*
|
10
10
|
* @example
|
11
|
-
* ```ts
|
12
|
-
*
|
11
|
+
* ```ts,runnable
|
12
|
+
* import {Editor,CanvasRenderer} from 'js-draw';
|
13
13
|
*
|
14
|
+
* // Create an editor and load initial data -- don't add to the body (hidden editor).
|
15
|
+
* const editor = new Editor(document.createElement('div'));
|
16
|
+
* await editor.loadFromSVG('<svg><path d="m0,0 l100,5 l-50,60 l30,20 z" fill="green"/></svg>');
|
17
|
+
* ---visible---
|
18
|
+
* // Given some editor.
|
19
|
+
* // Set up the canvas to be drawn onto.
|
14
20
|
* const canvas = document.createElement('canvas');
|
15
21
|
* const ctx = canvas.getContext('2d');
|
16
22
|
*
|
@@ -22,6 +28,9 @@ import RenderablePathSpec from '../RenderablePathSpec';
|
|
22
28
|
* // Render editor.image onto the renderer
|
23
29
|
* const renderer = new CanvasRenderer(ctx, viewport);
|
24
30
|
* editor.image.render(renderer, viewport);
|
31
|
+
*
|
32
|
+
* // Add the rendered canvas to the document.
|
33
|
+
* document.body.appendChild(canvas);
|
25
34
|
* ```
|
26
35
|
*/
|
27
36
|
export default class CanvasRenderer extends AbstractRenderer {
|
@@ -39,7 +48,7 @@ export default class CanvasRenderer extends AbstractRenderer {
|
|
39
48
|
*/
|
40
49
|
constructor(ctx: CanvasRenderingContext2D, viewport: Viewport);
|
41
50
|
private transformBy;
|
42
|
-
canRenderFromWithoutDataLoss(other: AbstractRenderer):
|
51
|
+
canRenderFromWithoutDataLoss(other: AbstractRenderer): other is CanvasRenderer;
|
43
52
|
renderFromOtherOfSameType(transformBy: Mat33, other: AbstractRenderer): void;
|
44
53
|
setDraftMode(draftMode: boolean): void;
|
45
54
|
displaySize(): Vec2;
|
@@ -11,9 +11,15 @@ const RenderablePathSpec_1 = require("../RenderablePathSpec");
|
|
11
11
|
* Renders onto a `CanvasRenderingContext2D`.
|
12
12
|
*
|
13
13
|
* @example
|
14
|
-
* ```ts
|
15
|
-
*
|
14
|
+
* ```ts,runnable
|
15
|
+
* import {Editor,CanvasRenderer} from 'js-draw';
|
16
16
|
*
|
17
|
+
* // Create an editor and load initial data -- don't add to the body (hidden editor).
|
18
|
+
* const editor = new Editor(document.createElement('div'));
|
19
|
+
* await editor.loadFromSVG('<svg><path d="m0,0 l100,5 l-50,60 l30,20 z" fill="green"/></svg>');
|
20
|
+
* ---visible---
|
21
|
+
* // Given some editor.
|
22
|
+
* // Set up the canvas to be drawn onto.
|
17
23
|
* const canvas = document.createElement('canvas');
|
18
24
|
* const ctx = canvas.getContext('2d');
|
19
25
|
*
|
@@ -25,6 +31,9 @@ const RenderablePathSpec_1 = require("../RenderablePathSpec");
|
|
25
31
|
* // Render editor.image onto the renderer
|
26
32
|
* const renderer = new CanvasRenderer(ctx, viewport);
|
27
33
|
* editor.image.render(renderer, viewport);
|
34
|
+
*
|
35
|
+
* // Add the rendered canvas to the document.
|
36
|
+
* document.body.appendChild(canvas);
|
28
37
|
* ```
|
29
38
|
*/
|
30
39
|
class CanvasRenderer extends AbstractRenderer_1.default {
|
@@ -176,6 +185,10 @@ class CanvasRenderer extends AbstractRenderer_1.default {
|
|
176
185
|
this.ctx.restore();
|
177
186
|
}
|
178
187
|
drawImage(image) {
|
188
|
+
// .drawImage can fail for zero-size images.
|
189
|
+
if (image.image.width === 0 || image.image.height === 0) {
|
190
|
+
return;
|
191
|
+
}
|
179
192
|
this.ctx.save();
|
180
193
|
const transform = this.getCanvasToScreenTransform().rightMul(image.transform);
|
181
194
|
this.transformBy(transform);
|
@@ -27,7 +27,7 @@ export default class DummyRenderer extends AbstractRenderer {
|
|
27
27
|
startObject(boundingBox: Rect2, _clip: boolean): void;
|
28
28
|
endObject(): void;
|
29
29
|
isTooSmallToRender(_rect: Rect2): boolean;
|
30
|
-
canRenderFromWithoutDataLoss(other: AbstractRenderer):
|
30
|
+
canRenderFromWithoutDataLoss(other: AbstractRenderer): other is DummyRenderer;
|
31
31
|
renderFromOtherOfSameType(transform: Mat33, other: AbstractRenderer): void;
|
32
32
|
toString(): string;
|
33
33
|
}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
/** Returns the first ancestor of the given node that is an HTMLElement */
|
1
|
+
/** Returns the first ancestor of the given node (or the node itself) that is an HTMLElement */
|
2
2
|
declare const firstElementAncestorOfNode: (node: Node | null) => HTMLElement | null;
|
3
3
|
export default firstElementAncestorOfNode;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
/** Returns the first ancestor of the given node that is an HTMLElement */
|
3
|
+
/** Returns the first ancestor of the given node (or the node itself) that is an HTMLElement */
|
4
4
|
const firstElementAncestorOfNode = (node) => {
|
5
5
|
if (node instanceof HTMLElement) {
|
6
6
|
return node;
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import Editor from '../Editor';
|
2
2
|
import { Point2 } from '@js-draw/math';
|
3
3
|
import Pointer, { PointerDevice } from '../Pointer';
|
4
|
-
import {
|
4
|
+
import { PointerEvtType } from '../inputEvents';
|
5
5
|
/**
|
6
6
|
* Dispatch a pen event to the currently selected tool.
|
7
7
|
* Intended for unit tests.
|
8
8
|
*
|
9
9
|
* @see {@link sendTouchEvent}
|
10
10
|
*/
|
11
|
-
declare const sendPenEvent: (editor: Editor, eventType:
|
11
|
+
declare const sendPenEvent: (editor: Editor, eventType: PointerEvtType, point: Point2, allPointers?: Pointer[], deviceType?: PointerDevice) => Pointer;
|
12
12
|
export default sendPenEvent;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import Editor from '../Editor';
|
2
2
|
import { Vec2 } from '@js-draw/math';
|
3
3
|
import Pointer from '../Pointer';
|
4
|
-
import {
|
4
|
+
import { PointerEvtType } from '../inputEvents';
|
5
5
|
/**
|
6
6
|
* Dispatch a touch event to the currently selected tool. Intended for unit tests.
|
7
7
|
*
|
@@ -38,5 +38,5 @@ import { InputEvtType } from '../inputEvents';
|
|
38
38
|
* }
|
39
39
|
* ```
|
40
40
|
*/
|
41
|
-
declare const sendTouchEvent: (editor: Editor, eventType:
|
41
|
+
declare const sendTouchEvent: (editor: Editor, eventType: PointerEvtType, screenPos: Vec2, allOtherPointers?: Pointer[]) => Pointer;
|
42
42
|
export default sendTouchEvent;
|
@@ -13,6 +13,11 @@ export type ToolbarActionButtonOptions = {
|
|
13
13
|
mustBeToplevel?: boolean;
|
14
14
|
autoDisableInReadOnlyEditors?: boolean;
|
15
15
|
};
|
16
|
+
/**
|
17
|
+
* Abstract base class for js-draw editor toolbars.
|
18
|
+
*
|
19
|
+
* See {@link Editor.addToolbar}, {@link makeDropdownToolbar}, and {@link makeEdgeToolbar}.
|
20
|
+
*/
|
16
21
|
export default abstract class AbstractToolbar {
|
17
22
|
#private;
|
18
23
|
protected editor: Editor;
|
@@ -82,7 +87,7 @@ export default abstract class AbstractToolbar {
|
|
82
87
|
* Called by `serializeState` to attach any additional JSONifyable data
|
83
88
|
* to the serialized result.
|
84
89
|
*
|
85
|
-
* @
|
90
|
+
* @returns an object that can be converted to JSON with `JSON.stringify`.
|
86
91
|
*/
|
87
92
|
protected serializeInternal(): any;
|
88
93
|
/**
|
@@ -36,6 +36,11 @@ const math_1 = require("@js-draw/math");
|
|
36
36
|
const constants_1 = require("./constants");
|
37
37
|
const SaveActionWidget_1 = __importDefault(require("./widgets/SaveActionWidget"));
|
38
38
|
const ExitActionWidget_1 = __importDefault(require("./widgets/ExitActionWidget"));
|
39
|
+
/**
|
40
|
+
* Abstract base class for js-draw editor toolbars.
|
41
|
+
*
|
42
|
+
* See {@link Editor.addToolbar}, {@link makeDropdownToolbar}, and {@link makeEdgeToolbar}.
|
43
|
+
*/
|
39
44
|
class AbstractToolbar {
|
40
45
|
/** @internal */
|
41
46
|
constructor(editor, localizationTable = localization_1.defaultToolbarLocalization) {
|
@@ -222,7 +227,7 @@ class AbstractToolbar {
|
|
222
227
|
* Called by `serializeState` to attach any additional JSONifyable data
|
223
228
|
* to the serialized result.
|
224
229
|
*
|
225
|
-
* @
|
230
|
+
* @returns an object that can be converted to JSON with `JSON.stringify`.
|
226
231
|
*/
|
227
232
|
serializeInternal() { }
|
228
233
|
/**
|
@@ -63,7 +63,7 @@ export default class IconProvider {
|
|
63
63
|
/** Renamed to {@link makeResizeImageToSelectionIcon} @deprecated */
|
64
64
|
makeResizeViewportIcon(): IconElemType;
|
65
65
|
makeDuplicateSelectionIcon(): IconElemType;
|
66
|
-
|
66
|
+
makeCopyIcon(): IconElemType;
|
67
67
|
makePasteIcon(): IconElemType;
|
68
68
|
makeDeleteSelectionIcon(): IconElemType;
|
69
69
|
makeCloseIcon(): IconElemType;
|
@@ -710,7 +710,12 @@ class IconProvider {
|
|
710
710
|
M 10,25 10,90 70,90 70,60 40,60 40,25 10,25 z
|
711
711
|
`);
|
712
712
|
}
|
713
|
-
|
713
|
+
makeCopyIcon() {
|
714
|
+
return this.makeIconFromPath(`
|
715
|
+
M 45,10 45,55 90,55 90,10 45,10 z
|
716
|
+
M 10,25 10,90 70,90 70,60 40,60 40,25 10,25 z
|
717
|
+
`);
|
718
|
+
}
|
714
719
|
makePasteIcon() {
|
715
720
|
const icon = this.makeIconFromPath(`
|
716
721
|
M 50 0 L 50 5 L 35 5 L 40 24.75 L 20 25 L 20 100 L 85 100 L 100 90 L 100 24 L 75.1 24.3 L 80 5 L 65 5 L 65 0 L 50 0 z
|
@@ -13,6 +13,14 @@ export declare enum ToolbarWidgetTag {
|
|
13
13
|
Undo = "undo",
|
14
14
|
Redo = "redo"
|
15
15
|
}
|
16
|
+
/**
|
17
|
+
* The `abstract` base class for items that can be shown in a `js-draw` toolbar. See also {@link AbstractToolbar.addWidget}.
|
18
|
+
*
|
19
|
+
* See [the custom tool example](https://github.com/personalizedrefrigerator/js-draw/blob/main/docs/examples/example-custom-tools/example.ts)
|
20
|
+
* for how to create a custom toolbar widget for a tool.
|
21
|
+
*
|
22
|
+
* For custom action buttons, {@link AbstractToolbar.addActionButton} may be sufficient for most use cases.
|
23
|
+
*/
|
16
24
|
export default abstract class BaseWidget {
|
17
25
|
#private;
|
18
26
|
protected editor: Editor;
|
@@ -32,6 +32,14 @@ var ToolbarWidgetTag;
|
|
32
32
|
ToolbarWidgetTag["Undo"] = "undo";
|
33
33
|
ToolbarWidgetTag["Redo"] = "redo";
|
34
34
|
})(ToolbarWidgetTag || (exports.ToolbarWidgetTag = ToolbarWidgetTag = {}));
|
35
|
+
/**
|
36
|
+
* The `abstract` base class for items that can be shown in a `js-draw` toolbar. See also {@link AbstractToolbar.addWidget}.
|
37
|
+
*
|
38
|
+
* See [the custom tool example](https://github.com/personalizedrefrigerator/js-draw/blob/main/docs/examples/example-custom-tools/example.ts)
|
39
|
+
* for how to create a custom toolbar widget for a tool.
|
40
|
+
*
|
41
|
+
* For custom action buttons, {@link AbstractToolbar.addActionButton} may be sufficient for most use cases.
|
42
|
+
*/
|
35
43
|
class BaseWidget {
|
36
44
|
constructor(editor, id, localizationTable) {
|
37
45
|
_BaseWidget_instances.add(this);
|
@@ -4,6 +4,7 @@ import { ToolbarLocalization } from '../localization';
|
|
4
4
|
import BaseToolWidget from './BaseToolWidget';
|
5
5
|
import { SavedToolbuttonState } from './BaseWidget';
|
6
6
|
import HelpDisplay from '../utils/HelpDisplay';
|
7
|
+
/** This toolbar widget allows controlling the editor's {@link PanZoom} tool(s). */
|
7
8
|
export default class HandToolWidget extends BaseToolWidget {
|
8
9
|
private allowTogglingBaseTool;
|
9
10
|
protected overridePanZoomTool: PanZoom;
|
@@ -130,6 +130,7 @@ class HandModeWidget extends BaseWidget_1.default {
|
|
130
130
|
return this.helpText;
|
131
131
|
}
|
132
132
|
}
|
133
|
+
/** This toolbar widget allows controlling the editor's {@link PanZoom} tool(s). */
|
133
134
|
class HandToolWidget extends BaseToolWidget_1.default {
|
134
135
|
constructor(editor,
|
135
136
|
// Can either be the primary pan/zoom tool (in the primary tools list) or
|
@@ -6,12 +6,18 @@ import { ToolbarLocalization } from '../localization';
|
|
6
6
|
import BaseToolWidget from './BaseToolWidget';
|
7
7
|
import { SavedToolbuttonState } from './BaseWidget';
|
8
8
|
import HelpDisplay from '../utils/HelpDisplay';
|
9
|
+
/** Represents a style that can be applied to a pen tool. */
|
9
10
|
export interface PenTypeRecord {
|
10
11
|
name: string;
|
11
12
|
id: string;
|
12
13
|
isShapeBuilder?: boolean;
|
13
14
|
factory: ComponentBuilderFactory;
|
14
15
|
}
|
16
|
+
/**
|
17
|
+
* This toolbar widget allows a user to control a single {@link Pen} tool.
|
18
|
+
*
|
19
|
+
* See also {@link AbstractToolbar.addDefaultToolWidgets}.
|
20
|
+
*/
|
15
21
|
export default class PenToolWidget extends BaseToolWidget {
|
16
22
|
private tool;
|
17
23
|
private updateInputs;
|
@@ -18,6 +18,11 @@ const constants_1 = require("../constants");
|
|
18
18
|
const makeThicknessSlider_1 = __importDefault(require("./components/makeThicknessSlider"));
|
19
19
|
const makeGridSelector_1 = __importDefault(require("./components/makeGridSelector"));
|
20
20
|
const PolylineBuilder_1 = require("../../components/builders/PolylineBuilder");
|
21
|
+
/**
|
22
|
+
* This toolbar widget allows a user to control a single {@link Pen} tool.
|
23
|
+
*
|
24
|
+
* See also {@link AbstractToolbar.addDefaultToolWidgets}.
|
25
|
+
*/
|
21
26
|
class PenToolWidget extends BaseToolWidget_1.default {
|
22
27
|
constructor(editor, tool, localization) {
|
23
28
|
super(editor, tool, 'pen', localization);
|
package/dist/cjs/types.d.ts
CHANGED
@@ -4,7 +4,12 @@ import type BaseTool from './tools/BaseTool';
|
|
4
4
|
import type AbstractComponent from './components/AbstractComponent';
|
5
5
|
import type Command from './commands/Command';
|
6
6
|
import type { WidgetContentLayoutManager } from './toolbar/widgets/layout/types';
|
7
|
+
/**
|
8
|
+
* The type of the {@link Editor.notifier}, which provides notifications for
|
9
|
+
* various editor-related events.
|
10
|
+
*/
|
7
11
|
export type EditorNotifier = EventDispatcher<EditorEventType, EditorEventDataType>;
|
12
|
+
/** @see {@link EditorNotifier} */
|
8
13
|
export declare enum EditorEventType {
|
9
14
|
ToolEnabled = 0,
|
10
15
|
ToolDisabled = 1,
|
package/dist/cjs/types.js
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
// Types related to the image editor
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
4
|
exports.UndoEventType = exports.EditorEventType = void 0;
|
5
|
+
/** @see {@link EditorNotifier} */
|
5
6
|
var EditorEventType;
|
6
7
|
(function (EditorEventType) {
|
7
8
|
EditorEventType[EditorEventType["ToolEnabled"] = 0] = "ToolEnabled";
|
@@ -1,4 +1,8 @@
|
|
1
1
|
import { Editor } from '../Editor';
|
2
|
+
interface Callbacks {
|
3
|
+
onPasteError(error: Error | unknown): void;
|
4
|
+
onCopyError(error: Error | unknown): void;
|
5
|
+
}
|
2
6
|
/**
|
3
7
|
* Handles conversion between the browser clipboard APIs and internal
|
4
8
|
* js-draw clipboard events.
|
@@ -6,7 +10,8 @@ import { Editor } from '../Editor';
|
|
6
10
|
export default class ClipboardHandler {
|
7
11
|
#private;
|
8
12
|
private editor;
|
9
|
-
|
13
|
+
private callbacks?;
|
14
|
+
constructor(editor: Editor, callbacks?: Callbacks | undefined);
|
10
15
|
/**
|
11
16
|
* Pastes data from the clipboard into the editor associated with
|
12
17
|
* this handler.
|
@@ -16,6 +21,7 @@ export default class ClipboardHandler {
|
|
16
21
|
* @returns true if the paste event was handled by the editor.
|
17
22
|
*/
|
18
23
|
paste(event?: DragEvent | ClipboardEvent): Promise<boolean>;
|
24
|
+
private pasteInternal;
|
19
25
|
/**
|
20
26
|
* Copies text from the editor associated with this.
|
21
27
|
*
|
@@ -24,4 +30,6 @@ export default class ClipboardHandler {
|
|
24
30
|
* images.
|
25
31
|
*/
|
26
32
|
copy(event?: ClipboardEvent): Promise<void>;
|
33
|
+
private copyInternal;
|
27
34
|
}
|
35
|
+
export {};
|