@idraw/core 0.4.0-beta.33 → 0.4.0-beta.34
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/dist/esm/config.d.ts +26 -1
- package/dist/esm/config.js +32 -1
- package/dist/esm/index.d.ts +7 -5
- package/dist/esm/index.js +6 -5
- package/dist/esm/lib/cursor.js +2 -1
- package/dist/esm/middleware/dragger/index.js +4 -3
- package/dist/esm/middleware/info/index.d.ts +2 -2
- package/dist/esm/middleware/info/index.js +2 -4
- package/dist/esm/middleware/layout-selector/index.d.ts +2 -2
- package/dist/esm/middleware/layout-selector/index.js +5 -5
- package/dist/esm/middleware/pointer/index.d.ts +3 -0
- package/dist/esm/middleware/pointer/index.js +43 -0
- package/dist/esm/middleware/pointer/types.d.ts +3 -0
- package/dist/esm/middleware/pointer/types.js +1 -0
- package/dist/esm/middleware/ruler/index.d.ts +0 -1
- package/dist/esm/middleware/ruler/index.js +3 -3
- package/dist/esm/middleware/scaler/index.d.ts +0 -1
- package/dist/esm/middleware/scaler/index.js +2 -2
- package/dist/esm/middleware/scroller/index.js +2 -1
- package/dist/esm/middleware/selector/config.d.ts +0 -4
- package/dist/esm/middleware/selector/config.js +0 -4
- package/dist/esm/middleware/selector/index.d.ts +1 -2
- package/dist/esm/middleware/selector/index.js +81 -50
- package/dist/esm/middleware/text-editor/index.d.ts +2 -3
- package/dist/esm/middleware/text-editor/index.js +7 -6
- package/dist/index.global.js +416 -309
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -3680,6 +3680,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3680
3680
|
}
|
|
3681
3681
|
});
|
|
3682
3682
|
_BoardWatcher_onContextMenu.set(this, (e) => {
|
|
3683
|
+
if (e.button !== 2) {
|
|
3684
|
+
return;
|
|
3685
|
+
}
|
|
3683
3686
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3684
3687
|
return;
|
|
3685
3688
|
}
|
|
@@ -3688,6 +3691,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3688
3691
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
|
|
3689
3692
|
return;
|
|
3690
3693
|
}
|
|
3694
|
+
this.trigger("contextMenu", { point });
|
|
3691
3695
|
});
|
|
3692
3696
|
_BoardWatcher_onClick.set(this, (e) => {
|
|
3693
3697
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
@@ -3745,6 +3749,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3745
3749
|
this.trigger("pointMove", { point });
|
|
3746
3750
|
});
|
|
3747
3751
|
_BoardWatcher_onPointStart.set(this, (e) => {
|
|
3752
|
+
if (e.button !== 0) {
|
|
3753
|
+
return;
|
|
3754
|
+
}
|
|
3748
3755
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3749
3756
|
return;
|
|
3750
3757
|
}
|
|
@@ -4113,7 +4120,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4113
4120
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4114
4121
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4115
4122
|
};
|
|
4116
|
-
var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_middlewares, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_hasDestroyed, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handleHover, _Board_handleDoubleClick, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
|
|
4123
|
+
var _Board_instances, _Board_opts, _Board_middlewareMap, _Board_middlewares, _Board_activeMiddlewareObjs, _Board_watcher, _Board_renderer, _Board_sharer, _Board_viewer, _Board_calculator, _Board_eventHub, _Board_hasDestroyed, _Board_init, _Board_handlePointStart, _Board_handlePointEnd, _Board_handlePointMove, _Board_handleHover, _Board_handleDoubleClick, _Board_handleContextMenu, _Board_handleWheel, _Board_handleWheelScale, _Board_handleScrollX, _Board_handleScrollY, _Board_handleResize, _Board_handleClear, _Board_handleBeforeDrawFrame, _Board_handleAfterDrawFrame, _Board_resetActiveMiddlewareObjs;
|
|
4117
4124
|
class Board {
|
|
4118
4125
|
constructor(opts) {
|
|
4119
4126
|
_Board_instances.add(this);
|
|
@@ -4306,6 +4313,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4306
4313
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("scrollY", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollY).bind(this));
|
|
4307
4314
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("resize", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleResize).bind(this));
|
|
4308
4315
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("doubleClick", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleDoubleClick).bind(this));
|
|
4316
|
+
__classPrivateFieldGet(this, _Board_watcher, "f").on("contextMenu", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleContextMenu).bind(this));
|
|
4309
4317
|
__classPrivateFieldGet(this, _Board_renderer, "f").on("load", () => {
|
|
4310
4318
|
__classPrivateFieldGet(this, _Board_eventHub, "f").trigger("loadResource");
|
|
4311
4319
|
});
|
|
@@ -4354,6 +4362,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4354
4362
|
return;
|
|
4355
4363
|
}
|
|
4356
4364
|
}
|
|
4365
|
+
}, _Board_handleContextMenu = function _Board_handleContextMenu2(e) {
|
|
4366
|
+
var _a;
|
|
4367
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
|
|
4368
|
+
const obj = __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f")[i];
|
|
4369
|
+
const result = (_a = obj === null || obj === void 0 ? void 0 : obj.contextMenu) === null || _a === void 0 ? void 0 : _a.call(obj, e);
|
|
4370
|
+
if (result === false) {
|
|
4371
|
+
return;
|
|
4372
|
+
}
|
|
4373
|
+
}
|
|
4357
4374
|
}, _Board_handleWheel = function _Board_handleWheel2(e) {
|
|
4358
4375
|
var _a;
|
|
4359
4376
|
for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
|
|
@@ -4442,6 +4459,36 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4442
4459
|
const CURSOR_DRAG_DEFAULT = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAYAAABHomvIAAAEvUlEQVRYhc2Y20/cVRDHP8v+uKzAWkpDCtZq8BYhJkq8PBoJxgj7I2m0ryaSyFN9IT74pI8+8WJiggRj/APApFkSTGRJ+qKGUiyxbGPEWsUSuVhYC12Wy8+HmeMeYPe3d3WSye/k/M7le+bMzJkZ+J9ToEJreGVYN+vihcytstjQocUlAw0WCSoIVCv3Ae8CXwIt+u8XHVeOG8qLqgAHqAFCQCNwGugCthBJGd7S/tM6LqTzHI5KuqzgaoAHgEvAtwrkG2AG8FzXvep5nue67lX9N6P/PR1/SefXlBtkFXKNDUA/RyX1D9uUbYzOb9D1ygbSQU7eDMxhSSsSiVz3AxiJRK57nuf19/fPad8coqONFCBJPyUOIKc1OvcbgiY9ICDT8+0DHge2gR0gBeyTtviM5HeKAGlrrfMZVwhdAVaAr4F3KNF4gkA9cBbowOc68+3LwDn1Mhdy4/OcYk54nPr6+m54nofruvPa9SFQ6wfQTweNgTwInAGuQWk6mEUvHwb+Au4Dexx7ffK9+0q+CHWIBIOZ9skHYKWfK9tQ8gZoLDjIyWCg3ORY+2T8aYOyg4EaRIFrkCs4QU1NTSvabC20zyIDzuyfkYzEahHX8jHwE/LwXwHeJ4P7KIVIu5ouxFDC+HgLAy4MfEF2v1UpgOezATSiNVf6EvAWsD01NXVtdnb2bk9Pz81sp/q3KIi8t83Ae4DX0tJy0z7t8PDwD4FAYIX/WILVwKMAzc3Nu/agoaGhzmg0ugcsV0hIvlSNoH8IuIiebHJycrls4sotwaxGYvueAPAjEg3jum79yMjIr5WUjFLOxMpBIopWoBN4GfhOJ+4NDg4ulVt6i4uLm7r+BvAscA4fCXrAAfJQJ5Fg8gPgMuCMjo62d3V1LW1sbKRKlpXSxMTEmjZ/5qQrOwHwUAGmkIjiHhJdfKrM/Pz8Y+3t7RvT09Ob5QAYi8X2tbmke2cEZwAaCdoAt5QvIzEbiUSitbe3tyoej++UCnBhYSGkzdu6d1aQxkgOkfwgieQMCeCu8iwSnpNKpcIdHR3BZDJ5UCy4SCSyvL6+/giiSou67wE+eYmhAKKkIaAJUdynkdflNcQF3dFTpooxjmg0aozDAz4DXkB8bxPy1OYM7QzIOuAU0AY8pQu9CrwJ3AK8UCj0RyHgZmZmli1w3wOvAM/oHo1kiZiygbSDh7PAE8DzQA/wBqKnnuM4a2NjY7dygbtw4cICRy31deBFJA09o7eWsU7kJ1KTLJmyRyOSn5zS70fAkwBtbW2/DwwMHHR3d9d3dnY2rK6u7o2Pj2/GYrH9eDzurK2tndM1vwI+QXT7T2BTD5skQz6SCyAcLRoZkGEFGQbeRqpbubK+BPA5MI14h00L3I6Cy2h4+eQbJsKuRa6iQcGFFfB5oBt4DpFsI+Ky7iDBxW3gBhBH/GtC+R7i1lKk3UxRAG2QpvxWr0AbtB3SA5jkx36djH/dVlDbyibN3M8GDvJPyI2PSulixm/u6kZ1OQCaJ/S+tndJX6tvsFBIxcCUdA3vW5ubxMrObc0hDMhd/Rqp5QQHxeW8dubnHGM7tzVv/IECMlxQ/bpcRfRMqaNRheNcUGG9XFWDACfzWs/6Fl3t/xtO//8gpbCORQAAAABJRU5ErkJggg==`;
|
|
4443
4460
|
const CURSOR_DRAG_ACTIVE = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAER0lEQVRYhe2YT2hjRRjAf8lL22xsNsm6EWKrSKvuIkIh+O9QRFxEW18KUsoe7FHoRaWCN1FPetOrIHgVKS0q9P5OxaJbodkalgVrtVZjS7Ntd02z6abPw3yzmaT585q+elj2g2HmvZn35jffN/PNNwP35R6XgM/fuif4n+dO2klQvgsaZRc4NJJvoJbHdhrIAkJAN2ADHwFfAw9J3ZoB/b9I0AA6A0SBc0Aa2EVpSqddeZ+QdmfkO+u0gIPSQQR4HfhRQH4AHMDNZDJXXNd1M5nMFalzdB3wJTAOPAD0yEB9066G6wXepVZTd5MpTdporZ6jVqsatmMJoTR3HvgJQ1u2bS+3ArRte9l1XXdsbGyJo1pdBN6Wf3d3ChlAmSQO9LeC8fquQRpDWaerHWSjSr1iu4BkJyOsF9u2s67rkslkluTVxygltAVsJBZqdCngEj5osIlW+4EYytRNF04jeu3vulCT+7QkLH20dEOhumft97pQI4s3+iiRSPwtxVSbd39J8eEGvzFXc1NAs8KSFAZeBt4AHgNeBFDWObkEAne7HAK2gT2gCFQatdca1GbtBj4E3veFprVYVLXXcg4GqM6588BbAMlkcm1qamqzr6/v6ikBet5RgiizJoDPAXdgYGDZXHkzMzPrrk9CdRWngUeAsxxdCzVwpgZ/BigWiz1mo4mJif7jqMajeJrU5hywgGvAej6fvzA0NLThN1Eul9uT4g5VTbYFNKUIfAbsZ7PZvuHh4Wt+As7Ozu5IcY2j219TQB0NV4A7qODgO4CFhYWLg4ODOb8AHccpG4A68m6pRQ1YAQ6A28A+8BXwBcDq6upTqVTquh+AuVyuW4q/opRRaQdZD1gCbgE3ge+BT4HdfD7/ZDwe/z2bzRY6hRsfH1/e3Nx8FDX/sgbgoZfvg6jo4ixqW7oIPA+8CrwHrAJuJBLJd+JaHMf5k6qmPgGeQe1SCenXk0/U21xcIC8AzwGvAJPAEuAmEon1xcXFba9w8/Pz5oqdB14CnpY+oij35km0qwmjwqAU8ISM9hIwBeQA17KsG9PT07+1gxsZGdmgdqW+BjwLDAAPoo4ALU+W9arVwWoIpXp9kouKZpPAO8AwQCwW+2d0dLQ0OTkZSafT0UKhUJ6bm9t2HKeysrIS3tra0g7+KvABUJC0g5rrJdRcbLpImtleRzYashc1P2OSXwbebDVykX3gW+Ab1AHqhuQ3pe6AJlFMO0CoPROHDcio5I8DL1A9C8dQbmod+APYAK4DvwjQnsDdErgyVTfTEaCG1GFYGHXG7TVSo2OkdvhlAflXoHSuNdfStFqaRhEi2kfdprrj6M5LAt0I8EDaaMdflPal48CB95hMr3Bt8h4jD0kyL5E0pN6dysZzW7N2AqjbmhdIZjJvufTOpE19x3g+9s1XJ/ck5tVbfdhu+rxDfLiSO+lFToCjZwrXyH2/0Lwv95z8B1jAqXmDnj4YAAAAAElFTkSuQmCC`;
|
|
4444
4461
|
const CURSOR_RESIZE_ROTATE = `data:image/png;base64,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`;
|
|
4462
|
+
const EVENT_KEY_CHANGE = "change";
|
|
4463
|
+
const EVENT_KEY_CURSOR = "cursor";
|
|
4464
|
+
const EVENT_KEY_RULER = "ruler";
|
|
4465
|
+
const EVENT_KEY_SCALE = "scale";
|
|
4466
|
+
const EVENT_KEY_SELECT = "select";
|
|
4467
|
+
const EVENT_KEY_CLEAR_SELECT = "clearSelect";
|
|
4468
|
+
const EVENT_KEY_TEXT_EDIT = "textEdit";
|
|
4469
|
+
const EVENT_KEY_TEXT_CHANGE = "textChange";
|
|
4470
|
+
const EVENT_KEY_CONTEXT_MENU = "contextMenu";
|
|
4471
|
+
const EVENT_KEY_SELECT_IN_GROUP = "selectInGroup";
|
|
4472
|
+
const innerEventKeys = {
|
|
4473
|
+
CURSOR: EVENT_KEY_CURSOR,
|
|
4474
|
+
CHANGE: EVENT_KEY_CHANGE,
|
|
4475
|
+
RULER: EVENT_KEY_RULER,
|
|
4476
|
+
SCALE: EVENT_KEY_SCALE,
|
|
4477
|
+
SELECT: EVENT_KEY_SELECT,
|
|
4478
|
+
CLEAR_SELECT: EVENT_KEY_CLEAR_SELECT,
|
|
4479
|
+
TEXT_EDIT: EVENT_KEY_TEXT_EDIT,
|
|
4480
|
+
TEXT_CHANGE: EVENT_KEY_TEXT_CHANGE,
|
|
4481
|
+
CONTEXT_MENU: EVENT_KEY_CONTEXT_MENU,
|
|
4482
|
+
SELECT_IN_GROUP: EVENT_KEY_SELECT_IN_GROUP,
|
|
4483
|
+
SNAP_TO_GRID: EVENT_KEY_SELECT_IN_GROUP
|
|
4484
|
+
};
|
|
4485
|
+
const coreEventKeys = {};
|
|
4486
|
+
Object.keys(innerEventKeys).forEach((keyName) => {
|
|
4487
|
+
Object.defineProperty(coreEventKeys, keyName, {
|
|
4488
|
+
value: innerEventKeys[keyName],
|
|
4489
|
+
writable: false
|
|
4490
|
+
});
|
|
4491
|
+
});
|
|
4445
4492
|
class Cursor {
|
|
4446
4493
|
constructor(container, opts) {
|
|
4447
4494
|
__privateAdd(this, _init);
|
|
@@ -4475,7 +4522,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4475
4522
|
init_fn = function() {
|
|
4476
4523
|
const eventHub = __privateGet(this, _eventHub);
|
|
4477
4524
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "default");
|
|
4478
|
-
eventHub.on(
|
|
4525
|
+
eventHub.on(coreEventKeys.CURSOR, (e) => {
|
|
4479
4526
|
var _a;
|
|
4480
4527
|
if (e.type === "over-element" || !e.type) {
|
|
4481
4528
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
|
|
@@ -4583,7 +4630,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4583
4630
|
}
|
|
4584
4631
|
return key2;
|
|
4585
4632
|
};
|
|
4586
|
-
const eventChange = "change";
|
|
4587
4633
|
const key$3 = "SELECT";
|
|
4588
4634
|
const keyActionType = Symbol(`${key$3}_actionType`);
|
|
4589
4635
|
const keyResizeType = Symbol(`${key$3}_resizeType`);
|
|
@@ -4614,10 +4660,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4614
4660
|
lockedColor,
|
|
4615
4661
|
referenceColor
|
|
4616
4662
|
};
|
|
4617
|
-
const middlewareEventSelect = "@middleware/select";
|
|
4618
|
-
const middlewareEventSelectClear = "@middleware/select-clear";
|
|
4619
|
-
const middlewareEventSelectInGroup = "@middleware/select-in-group";
|
|
4620
|
-
const middlewareEventSnapToGrid = "@middleware/snap-to-grid";
|
|
4621
4663
|
function drawVertexes(ctx, vertexes, opts) {
|
|
4622
4664
|
const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
|
|
4623
4665
|
ctx.setLineDash([]);
|
|
@@ -5872,228 +5914,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5872
5914
|
xLines
|
|
5873
5915
|
};
|
|
5874
5916
|
}
|
|
5875
|
-
const middlewareEventTextEdit = "@middleware/text-edit";
|
|
5876
|
-
const middlewareEventTextChange = "@middleware/text-change";
|
|
5877
|
-
const defaultElementDetail = getDefaultElementDetailConfig();
|
|
5878
|
-
const MiddlewareTextEditor = (opts) => {
|
|
5879
|
-
const { eventHub, boardContent, viewer, sharer } = opts;
|
|
5880
|
-
const canvas = boardContent.boardContext.canvas;
|
|
5881
|
-
const textarea = document.createElement("div");
|
|
5882
|
-
textarea.setAttribute("contenteditable", "true");
|
|
5883
|
-
const canvasWrapper = document.createElement("div");
|
|
5884
|
-
const container = opts.container || document.body;
|
|
5885
|
-
const mask = document.createElement("div");
|
|
5886
|
-
let activeElem = null;
|
|
5887
|
-
let activePosition = [];
|
|
5888
|
-
canvasWrapper.appendChild(textarea);
|
|
5889
|
-
canvasWrapper.style.position = "absolute";
|
|
5890
|
-
mask.appendChild(canvasWrapper);
|
|
5891
|
-
mask.style.position = "fixed";
|
|
5892
|
-
mask.style.top = "0";
|
|
5893
|
-
mask.style.bottom = "0";
|
|
5894
|
-
mask.style.left = "0";
|
|
5895
|
-
mask.style.right = "0";
|
|
5896
|
-
mask.style.display = "none";
|
|
5897
|
-
container.appendChild(mask);
|
|
5898
|
-
const showTextArea = (e) => {
|
|
5899
|
-
resetCanvasWrapper();
|
|
5900
|
-
resetTextArea(e);
|
|
5901
|
-
mask.style.display = "block";
|
|
5902
|
-
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
5903
|
-
sharer.setActiveOverrideElemenentMap({
|
|
5904
|
-
[activeElem.uuid]: {
|
|
5905
|
-
operations: { invisible: true }
|
|
5906
|
-
}
|
|
5907
|
-
});
|
|
5908
|
-
viewer.drawFrame();
|
|
5909
|
-
}
|
|
5910
|
-
};
|
|
5911
|
-
const hideTextArea = () => {
|
|
5912
|
-
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
5913
|
-
const map = sharer.getActiveOverrideElemenentMap();
|
|
5914
|
-
if (map) {
|
|
5915
|
-
delete map[activeElem.uuid];
|
|
5916
|
-
}
|
|
5917
|
-
sharer.setActiveOverrideElemenentMap(map);
|
|
5918
|
-
viewer.drawFrame();
|
|
5919
|
-
}
|
|
5920
|
-
mask.style.display = "none";
|
|
5921
|
-
activeElem = null;
|
|
5922
|
-
activePosition = [];
|
|
5923
|
-
};
|
|
5924
|
-
const getCanvasRect = () => {
|
|
5925
|
-
const clientRect = canvas.getBoundingClientRect();
|
|
5926
|
-
const { left, top, width, height } = clientRect;
|
|
5927
|
-
return { left, top, width, height };
|
|
5928
|
-
};
|
|
5929
|
-
const createBox = (opts2) => {
|
|
5930
|
-
const { size, parent } = opts2;
|
|
5931
|
-
const div = document.createElement("div");
|
|
5932
|
-
const { x: x2, y: y2, w: w2, h: h2 } = size;
|
|
5933
|
-
const angle2 = limitAngle(size.angle || 0);
|
|
5934
|
-
div.style.position = "absolute";
|
|
5935
|
-
div.style.left = `${x2}px`;
|
|
5936
|
-
div.style.top = `${y2}px`;
|
|
5937
|
-
div.style.width = `${w2}px`;
|
|
5938
|
-
div.style.height = `${h2}px`;
|
|
5939
|
-
div.style.transform = `rotate(${angle2}deg)`;
|
|
5940
|
-
parent.appendChild(div);
|
|
5941
|
-
return div;
|
|
5942
|
-
};
|
|
5943
|
-
const resetTextArea = (e) => {
|
|
5944
|
-
const { viewScaleInfo, element, groupQueue } = e;
|
|
5945
|
-
const { scale, offsetTop, offsetLeft } = viewScaleInfo;
|
|
5946
|
-
if (canvasWrapper.children) {
|
|
5947
|
-
Array.from(canvasWrapper.children).forEach((child) => {
|
|
5948
|
-
child.remove();
|
|
5949
|
-
});
|
|
5950
|
-
}
|
|
5951
|
-
let parent = canvasWrapper;
|
|
5952
|
-
for (let i = 0; i < groupQueue.length; i++) {
|
|
5953
|
-
const group = groupQueue[i];
|
|
5954
|
-
const { x: x2, y: y2, w: w2, h: h2 } = group;
|
|
5955
|
-
const angle2 = limitAngle(group.angle || 0);
|
|
5956
|
-
const size = {
|
|
5957
|
-
x: x2 * scale,
|
|
5958
|
-
y: y2 * scale,
|
|
5959
|
-
w: w2 * scale,
|
|
5960
|
-
h: h2 * scale,
|
|
5961
|
-
angle: angle2
|
|
5962
|
-
};
|
|
5963
|
-
if (i === 0) {
|
|
5964
|
-
size.x += offsetLeft;
|
|
5965
|
-
size.y += offsetTop;
|
|
5966
|
-
}
|
|
5967
|
-
parent = createBox({ size, parent });
|
|
5968
|
-
}
|
|
5969
|
-
const detail = {
|
|
5970
|
-
...defaultElementDetail,
|
|
5971
|
-
...element.detail
|
|
5972
|
-
};
|
|
5973
|
-
let elemX = element.x * scale + offsetLeft;
|
|
5974
|
-
let elemY = element.y * scale + offsetTop;
|
|
5975
|
-
let elemW = element.w * scale;
|
|
5976
|
-
let elemH = element.h * scale;
|
|
5977
|
-
if (groupQueue.length > 0) {
|
|
5978
|
-
elemX = element.x * scale;
|
|
5979
|
-
elemY = element.y * scale;
|
|
5980
|
-
elemW = element.w * scale;
|
|
5981
|
-
elemH = element.h * scale;
|
|
5982
|
-
}
|
|
5983
|
-
let justifyContent = "center";
|
|
5984
|
-
let alignItems = "center";
|
|
5985
|
-
if (detail.textAlign === "left") {
|
|
5986
|
-
justifyContent = "start";
|
|
5987
|
-
} else if (detail.textAlign === "right") {
|
|
5988
|
-
justifyContent = "end";
|
|
5989
|
-
}
|
|
5990
|
-
if (detail.verticalAlign === "top") {
|
|
5991
|
-
alignItems = "start";
|
|
5992
|
-
} else if (detail.verticalAlign === "bottom") {
|
|
5993
|
-
alignItems = "end";
|
|
5994
|
-
}
|
|
5995
|
-
textarea.style.display = "inline-flex";
|
|
5996
|
-
textarea.style.justifyContent = justifyContent;
|
|
5997
|
-
textarea.style.alignItems = alignItems;
|
|
5998
|
-
textarea.style.position = "absolute";
|
|
5999
|
-
textarea.style.left = `${elemX - 1}px`;
|
|
6000
|
-
textarea.style.top = `${elemY - 1}px`;
|
|
6001
|
-
textarea.style.width = `${elemW + 2}px`;
|
|
6002
|
-
textarea.style.height = `${elemH + 2}px`;
|
|
6003
|
-
textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
|
|
6004
|
-
textarea.style.boxSizing = "border-box";
|
|
6005
|
-
textarea.style.border = "1px solid #1973ba";
|
|
6006
|
-
textarea.style.resize = "none";
|
|
6007
|
-
textarea.style.overflow = "hidden";
|
|
6008
|
-
textarea.style.wordBreak = "break-all";
|
|
6009
|
-
textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
|
|
6010
|
-
textarea.style.background = `${detail.background || "transparent"}`;
|
|
6011
|
-
textarea.style.color = `${detail.color || "#333333"}`;
|
|
6012
|
-
textarea.style.fontSize = `${detail.fontSize * scale}px`;
|
|
6013
|
-
textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
|
|
6014
|
-
textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
|
|
6015
|
-
textarea.style.fontWeight = `${detail.fontWeight}`;
|
|
6016
|
-
textarea.style.padding = "0";
|
|
6017
|
-
textarea.style.margin = "0";
|
|
6018
|
-
textarea.style.outline = "none";
|
|
6019
|
-
textarea.innerText = detail.text || "";
|
|
6020
|
-
parent.appendChild(textarea);
|
|
6021
|
-
};
|
|
6022
|
-
const resetCanvasWrapper = () => {
|
|
6023
|
-
const { left, top, width, height } = getCanvasRect();
|
|
6024
|
-
canvasWrapper.style.position = "absolute";
|
|
6025
|
-
canvasWrapper.style.overflow = "hidden";
|
|
6026
|
-
canvasWrapper.style.top = `${top}px`;
|
|
6027
|
-
canvasWrapper.style.left = `${left}px`;
|
|
6028
|
-
canvasWrapper.style.width = `${width}px`;
|
|
6029
|
-
canvasWrapper.style.height = `${height}px`;
|
|
6030
|
-
};
|
|
6031
|
-
mask.addEventListener("click", () => {
|
|
6032
|
-
hideTextArea();
|
|
6033
|
-
});
|
|
6034
|
-
textarea.addEventListener("click", (e) => {
|
|
6035
|
-
e.stopPropagation();
|
|
6036
|
-
});
|
|
6037
|
-
textarea.addEventListener("input", () => {
|
|
6038
|
-
if (activeElem && activePosition) {
|
|
6039
|
-
activeElem.detail.text = textarea.innerText || "";
|
|
6040
|
-
eventHub.trigger(middlewareEventTextChange, {
|
|
6041
|
-
element: {
|
|
6042
|
-
uuid: activeElem.uuid,
|
|
6043
|
-
detail: {
|
|
6044
|
-
text: activeElem.detail.text
|
|
6045
|
-
}
|
|
6046
|
-
},
|
|
6047
|
-
position: [...activePosition || []]
|
|
6048
|
-
});
|
|
6049
|
-
viewer.drawFrame();
|
|
6050
|
-
}
|
|
6051
|
-
});
|
|
6052
|
-
textarea.addEventListener("blur", () => {
|
|
6053
|
-
if (activeElem && activePosition) {
|
|
6054
|
-
eventHub.trigger(middlewareEventTextChange, {
|
|
6055
|
-
element: {
|
|
6056
|
-
uuid: activeElem.uuid,
|
|
6057
|
-
detail: {
|
|
6058
|
-
text: activeElem.detail.text
|
|
6059
|
-
}
|
|
6060
|
-
},
|
|
6061
|
-
position: [...activePosition]
|
|
6062
|
-
});
|
|
6063
|
-
}
|
|
6064
|
-
hideTextArea();
|
|
6065
|
-
});
|
|
6066
|
-
textarea.addEventListener("keydown", (e) => {
|
|
6067
|
-
e.stopPropagation();
|
|
6068
|
-
});
|
|
6069
|
-
textarea.addEventListener("keypress", (e) => {
|
|
6070
|
-
e.stopPropagation();
|
|
6071
|
-
});
|
|
6072
|
-
textarea.addEventListener("keyup", (e) => {
|
|
6073
|
-
e.stopPropagation();
|
|
6074
|
-
});
|
|
6075
|
-
textarea.addEventListener("wheel", (e) => {
|
|
6076
|
-
e.stopPropagation();
|
|
6077
|
-
e.preventDefault();
|
|
6078
|
-
});
|
|
6079
|
-
const textEditCallback = (e) => {
|
|
6080
|
-
var _a;
|
|
6081
|
-
if ((e == null ? void 0 : e.position) && (e == null ? void 0 : e.element) && ((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.type) === "text") {
|
|
6082
|
-
activeElem = e.element;
|
|
6083
|
-
activePosition = e.position;
|
|
6084
|
-
}
|
|
6085
|
-
showTextArea(e);
|
|
6086
|
-
};
|
|
6087
|
-
return {
|
|
6088
|
-
name: "@middleware/text-editor",
|
|
6089
|
-
use() {
|
|
6090
|
-
eventHub.on(middlewareEventTextEdit, textEditCallback);
|
|
6091
|
-
},
|
|
6092
|
-
disuse() {
|
|
6093
|
-
eventHub.off(middlewareEventTextEdit, textEditCallback);
|
|
6094
|
-
}
|
|
6095
|
-
};
|
|
6096
|
-
};
|
|
6097
5917
|
const key$2 = "LAYOUT_SELECT";
|
|
6098
5918
|
const keyLayoutActionType = Symbol(`${key$2}_layoutActionType`);
|
|
6099
5919
|
const keyLayoutControlType = Symbol(`${key$2}_layoutControlType`);
|
|
@@ -6260,7 +6080,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6260
6080
|
}
|
|
6261
6081
|
if (layoutControlType) {
|
|
6262
6082
|
sharer.setSharedStorage(keyLayoutControlType, layoutControlType);
|
|
6263
|
-
eventHub.trigger(
|
|
6083
|
+
eventHub.trigger(coreEventKeys.CLEAR_SELECT);
|
|
6264
6084
|
return layoutControlType;
|
|
6265
6085
|
}
|
|
6266
6086
|
}
|
|
@@ -6271,7 +6091,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6271
6091
|
if (isBusy === true) {
|
|
6272
6092
|
return;
|
|
6273
6093
|
}
|
|
6274
|
-
eventHub.trigger(
|
|
6094
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6275
6095
|
type: controlType ? `resize-${controlType}` : controlType,
|
|
6276
6096
|
groupQueue: [],
|
|
6277
6097
|
element: getLayoutSize()
|
|
@@ -6445,7 +6265,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6445
6265
|
const layoutControlType = sharer.getSharedStorage(keyLayoutControlType);
|
|
6446
6266
|
const data = sharer.getActiveStorage("data");
|
|
6447
6267
|
if (data && layoutActionType === "resize" && layoutControlType) {
|
|
6448
|
-
eventHub.trigger(
|
|
6268
|
+
eventHub.trigger(coreEventKeys.CHANGE, {
|
|
6449
6269
|
type: "changeLayout",
|
|
6450
6270
|
data
|
|
6451
6271
|
});
|
|
@@ -6548,7 +6368,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6548
6368
|
sharer.setSharedStorage(keySelectedElementPosition, []);
|
|
6549
6369
|
}
|
|
6550
6370
|
if ((opts2 == null ? void 0 : opts2.triggerEvent) === true) {
|
|
6551
|
-
eventHub.trigger(
|
|
6371
|
+
eventHub.trigger(coreEventKeys.SELECT, { uuids: list.map((elem) => elem.uuid), positions: [] });
|
|
6552
6372
|
}
|
|
6553
6373
|
};
|
|
6554
6374
|
const pointTargetBaseOptions = () => {
|
|
@@ -6581,7 +6401,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6581
6401
|
sharer.setSharedStorage(keyIsMoving, null);
|
|
6582
6402
|
};
|
|
6583
6403
|
clear();
|
|
6584
|
-
const selectCallback = ({ uuids, positions }) => {
|
|
6404
|
+
const selectCallback = ({ uuids = [], positions }) => {
|
|
6585
6405
|
let elements = [];
|
|
6586
6406
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
6587
6407
|
const data = sharer.getActiveStorage("data");
|
|
@@ -6618,16 +6438,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6618
6438
|
return {
|
|
6619
6439
|
name: "@middleware/selector",
|
|
6620
6440
|
use() {
|
|
6621
|
-
eventHub.on(
|
|
6622
|
-
eventHub.on(
|
|
6623
|
-
eventHub.on(
|
|
6624
|
-
eventHub.on(
|
|
6441
|
+
eventHub.on(coreEventKeys.SELECT, selectCallback);
|
|
6442
|
+
eventHub.on(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
6443
|
+
eventHub.on(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
6444
|
+
eventHub.on(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
6625
6445
|
},
|
|
6626
6446
|
disuse() {
|
|
6627
|
-
eventHub.off(
|
|
6628
|
-
eventHub.off(
|
|
6629
|
-
eventHub.off(
|
|
6630
|
-
eventHub.off(
|
|
6447
|
+
eventHub.off(coreEventKeys.SELECT, selectCallback);
|
|
6448
|
+
eventHub.off(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
6449
|
+
eventHub.off(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
6450
|
+
eventHub.off(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
6631
6451
|
},
|
|
6632
6452
|
hover: (e) => {
|
|
6633
6453
|
var _a, _b, _c, _d, _e;
|
|
@@ -6641,7 +6461,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6641
6461
|
}
|
|
6642
6462
|
const cursor = target2.type;
|
|
6643
6463
|
if (inBusyMode === null) {
|
|
6644
|
-
eventHub.trigger(
|
|
6464
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6645
6465
|
type: cursor,
|
|
6646
6466
|
groupQueue: target2.groupQueue,
|
|
6647
6467
|
element: target2.elements[0]
|
|
@@ -6734,15 +6554,14 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6734
6554
|
groupQueue
|
|
6735
6555
|
})) {
|
|
6736
6556
|
const target2 = getPointTarget(e.point, pointTargetBaseOptions());
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
} else {
|
|
6740
|
-
updateHoverElement(null);
|
|
6741
|
-
}
|
|
6557
|
+
const isLockedElement2 = ((_a = target2 == null ? void 0 : target2.elements) == null ? void 0 : _a.length) === 1 && ((_c = (_b = target2.elements[0]) == null ? void 0 : _b.operations) == null ? void 0 : _c.locked) === true;
|
|
6558
|
+
updateHoverElement(null);
|
|
6742
6559
|
if (((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
|
|
6743
6560
|
moveOriginalStartElementSize = getElementSize(target2 == null ? void 0 : target2.elements[0]);
|
|
6744
6561
|
}
|
|
6745
|
-
if (
|
|
6562
|
+
if (isLockedElement2 === true) {
|
|
6563
|
+
clear();
|
|
6564
|
+
} else if (target2.type === "over-element" && ((_e = target2 == null ? void 0 : target2.elements) == null ? void 0 : _e.length) === 1) {
|
|
6746
6565
|
updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
|
|
6747
6566
|
sharer.setSharedStorage(keyActionType, "drag");
|
|
6748
6567
|
} else if ((_f = target2.type) == null ? void 0 : _f.startsWith("resize-")) {
|
|
@@ -6768,27 +6587,23 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6768
6587
|
groupQueue: []
|
|
6769
6588
|
});
|
|
6770
6589
|
const isLockedElement = ((_g = target == null ? void 0 : target.elements) == null ? void 0 : _g.length) === 1 && ((_i = (_h = target.elements[0]) == null ? void 0 : _h.operations) == null ? void 0 : _i.locked) === true;
|
|
6771
|
-
|
|
6772
|
-
updateHoverElement(null);
|
|
6773
|
-
}
|
|
6590
|
+
updateHoverElement(null);
|
|
6774
6591
|
if (((_j = target == null ? void 0 : target.elements) == null ? void 0 : _j.length) === 1) {
|
|
6775
6592
|
moveOriginalStartElementSize = getElementSize(target == null ? void 0 : target.elements[0]);
|
|
6776
6593
|
}
|
|
6777
|
-
if (
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
updateSelectedElementList([], { triggerEvent: true });
|
|
6791
|
-
}
|
|
6594
|
+
if (isLockedElement === true) {
|
|
6595
|
+
clear();
|
|
6596
|
+
sharer.setSharedStorage(keyActionType, "area");
|
|
6597
|
+
sharer.setSharedStorage(keyAreaStart, e.point);
|
|
6598
|
+
updateSelectedElementList([], { triggerEvent: true });
|
|
6599
|
+
} else if (target.type === "list-area") {
|
|
6600
|
+
sharer.setSharedStorage(keyActionType, "drag-list");
|
|
6601
|
+
} else if (target.type === "over-element" && ((_k = target == null ? void 0 : target.elements) == null ? void 0 : _k.length) === 1) {
|
|
6602
|
+
updateSelectedElementList([target.elements[0]], { triggerEvent: true });
|
|
6603
|
+
sharer.setSharedStorage(keyActionType, "drag");
|
|
6604
|
+
} else if ((_l = target.type) == null ? void 0 : _l.startsWith("resize-")) {
|
|
6605
|
+
sharer.setSharedStorage(keyResizeType, target.type);
|
|
6606
|
+
sharer.setSharedStorage(keyActionType, "resize");
|
|
6792
6607
|
} else {
|
|
6793
6608
|
clear();
|
|
6794
6609
|
sharer.setSharedStorage(keyActionType, "area");
|
|
@@ -7023,7 +6838,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7023
6838
|
}
|
|
7024
6839
|
if (data && ["drag", "drag-list", "drag-list-end", "resize"].includes(actionType)) {
|
|
7025
6840
|
let type = "dragElement";
|
|
7026
|
-
eventHub.trigger(
|
|
6841
|
+
eventHub.trigger(coreEventKeys.CHANGE, { data, type, selectedElements, hoverElement });
|
|
7027
6842
|
}
|
|
7028
6843
|
viewer.drawFrame();
|
|
7029
6844
|
};
|
|
@@ -7055,7 +6870,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7055
6870
|
return;
|
|
7056
6871
|
}
|
|
7057
6872
|
} else if (target.elements.length === 1 && ((_d = target.elements[0]) == null ? void 0 : _d.type) === "text" && !((_f = (_e = target.elements[0]) == null ? void 0 : _e.operations) == null ? void 0 : _f.invisible)) {
|
|
7058
|
-
eventHub.trigger(
|
|
6873
|
+
eventHub.trigger(coreEventKeys.TEXT_EDIT, {
|
|
7059
6874
|
element: target.elements[0],
|
|
7060
6875
|
groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
|
|
7061
6876
|
position: getElementPositionFromList((_g = target.elements[0]) == null ? void 0 : _g.uuid, ((_h = sharer.getActiveStorage("data")) == null ? void 0 : _h.elements) || []),
|
|
@@ -7064,20 +6879,60 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7064
6879
|
}
|
|
7065
6880
|
sharer.setSharedStorage(keyActionType, null);
|
|
7066
6881
|
},
|
|
7067
|
-
|
|
7068
|
-
var _a;
|
|
7069
|
-
const
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
6882
|
+
contextMenu: (e) => {
|
|
6883
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
6884
|
+
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6885
|
+
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6886
|
+
if (isPointInViewActiveGroup(e.point, {
|
|
6887
|
+
ctx: overlayContext,
|
|
6888
|
+
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6889
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6890
|
+
groupQueue
|
|
6891
|
+
})) {
|
|
6892
|
+
const target2 = getPointTarget(e.point, pointTargetBaseOptions());
|
|
6893
|
+
if (((_a = target2 == null ? void 0 : target2.elements) == null ? void 0 : _a.length) === 1 && ((_c = (_b = target2.elements[0]) == null ? void 0 : _b.operations) == null ? void 0 : _c.locked) !== true) {
|
|
6894
|
+
clear();
|
|
6895
|
+
updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
|
|
6896
|
+
viewer.drawFrame();
|
|
6897
|
+
} else if (!((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length)) {
|
|
6898
|
+
clear();
|
|
6899
|
+
}
|
|
6900
|
+
}
|
|
6901
|
+
return;
|
|
6902
|
+
}
|
|
6903
|
+
const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
|
|
6904
|
+
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6905
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6906
|
+
calculator
|
|
6907
|
+
});
|
|
6908
|
+
const target = getPointTarget(e.point, {
|
|
6909
|
+
...pointTargetBaseOptions(),
|
|
6910
|
+
areaSize: listAreaSize,
|
|
6911
|
+
groupQueue: []
|
|
6912
|
+
});
|
|
6913
|
+
if (((_e = target == null ? void 0 : target.elements) == null ? void 0 : _e.length) === 1 && ((_g = (_f = target.elements[0]) == null ? void 0 : _f.operations) == null ? void 0 : _g.locked) !== true) {
|
|
6914
|
+
clear();
|
|
6915
|
+
updateSelectedElementList([target.elements[0]], { triggerEvent: true });
|
|
6916
|
+
viewer.drawFrame();
|
|
6917
|
+
return;
|
|
6918
|
+
} else if (!((_h = target == null ? void 0 : target.elements) == null ? void 0 : _h.length)) {
|
|
6919
|
+
clear();
|
|
6920
|
+
}
|
|
6921
|
+
},
|
|
6922
|
+
beforeDrawFrame({ snapshot }) {
|
|
6923
|
+
var _a;
|
|
6924
|
+
const { activeStore, sharedStore } = snapshot;
|
|
6925
|
+
const { scale, offsetLeft, offsetTop, offsetRight, offsetBottom, width, height, contextHeight, contextWidth, devicePixelRatio } = activeStore;
|
|
6926
|
+
const sharer2 = opts.sharer;
|
|
6927
|
+
const viewScaleInfo = { scale, offsetLeft, offsetTop, offsetRight, offsetBottom };
|
|
6928
|
+
const viewSizeInfo = { width, height, contextHeight, contextWidth, devicePixelRatio };
|
|
6929
|
+
const selectedElements = sharedStore[keySelectedElementList];
|
|
6930
|
+
const elem = selectedElements[0];
|
|
6931
|
+
const hoverElement = sharedStore[keyHoverElement];
|
|
6932
|
+
const hoverElementVertexes = sharedStore[keyHoverElementVertexes];
|
|
6933
|
+
const actionType = sharedStore[keyActionType];
|
|
6934
|
+
const areaStart = sharedStore[keyAreaStart];
|
|
6935
|
+
const areaEnd = sharedStore[keyAreaEnd];
|
|
7081
6936
|
const groupQueue = sharedStore[keyGroupQueue];
|
|
7082
6937
|
const groupQueueVertexesList = sharedStore[keyGroupQueueVertexesList];
|
|
7083
6938
|
const isMoving = sharedStore[keyIsMoving];
|
|
@@ -7088,11 +6943,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7088
6943
|
controllerSize: 10,
|
|
7089
6944
|
viewScaleInfo
|
|
7090
6945
|
}) : null;
|
|
7091
|
-
const
|
|
6946
|
+
const isHoverLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
|
|
7092
6947
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
7093
6948
|
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
7094
6949
|
if (hoverElement && actionType !== "drag") {
|
|
7095
|
-
if (
|
|
6950
|
+
if (isHoverLocked) {
|
|
7096
6951
|
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7097
6952
|
...drawBaseOpts,
|
|
7098
6953
|
controller: calcElementSizeController(hoverElement, {
|
|
@@ -7106,7 +6961,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7106
6961
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7107
6962
|
}
|
|
7108
6963
|
}
|
|
7109
|
-
if (
|
|
6964
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7110
6965
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7111
6966
|
...drawBaseOpts,
|
|
7112
6967
|
element: elem,
|
|
@@ -7138,7 +6993,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7138
6993
|
}
|
|
7139
6994
|
} else {
|
|
7140
6995
|
if (hoverElement && actionType !== "drag") {
|
|
7141
|
-
if (
|
|
6996
|
+
if (isHoverLocked) {
|
|
7142
6997
|
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7143
6998
|
...drawBaseOpts,
|
|
7144
6999
|
controller: calcElementSizeController(hoverElement, {
|
|
@@ -7152,7 +7007,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7152
7007
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7153
7008
|
}
|
|
7154
7009
|
}
|
|
7155
|
-
if (
|
|
7010
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7156
7011
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7157
7012
|
...drawBaseOpts,
|
|
7158
7013
|
element: elem,
|
|
@@ -7485,7 +7340,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7485
7340
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
7486
7341
|
sharer.setSharedStorage(keyHoverYThumbRect, true);
|
|
7487
7342
|
}
|
|
7488
|
-
eventHub.trigger(
|
|
7343
|
+
eventHub.trigger(coreEventKeys.CURSOR, { type: "default" });
|
|
7489
7344
|
return false;
|
|
7490
7345
|
}
|
|
7491
7346
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
@@ -7532,7 +7387,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7532
7387
|
}
|
|
7533
7388
|
};
|
|
7534
7389
|
};
|
|
7535
|
-
const middlewareEventScale = "@middleware/scale";
|
|
7536
7390
|
const MiddlewareScaler = (opts) => {
|
|
7537
7391
|
const { viewer, sharer, eventHub } = opts;
|
|
7538
7392
|
const maxScale = 50;
|
|
@@ -7555,7 +7409,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7555
7409
|
viewer.scroll({ moveX, moveY });
|
|
7556
7410
|
viewer.drawFrame();
|
|
7557
7411
|
const scaleNum = formatNumber(scale);
|
|
7558
|
-
eventHub.trigger(
|
|
7412
|
+
eventHub.trigger(coreEventKeys.SCALE, { scale: scaleNum });
|
|
7559
7413
|
}
|
|
7560
7414
|
};
|
|
7561
7415
|
};
|
|
@@ -7833,7 +7687,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7833
7687
|
ctx.fill();
|
|
7834
7688
|
}
|
|
7835
7689
|
}
|
|
7836
|
-
const middlewareEventRuler = "@middleware/show-ruler";
|
|
7837
7690
|
const MiddlewareRuler = (opts, config) => {
|
|
7838
7691
|
const { boardContent, viewer, eventHub, calculator } = opts;
|
|
7839
7692
|
const { overlayContext, underlayContext } = boardContent;
|
|
@@ -7867,10 +7720,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7867
7720
|
return {
|
|
7868
7721
|
name: "@middleware/ruler",
|
|
7869
7722
|
use() {
|
|
7870
|
-
eventHub.on(
|
|
7723
|
+
eventHub.on(coreEventKeys.RULER, rulerCallback);
|
|
7871
7724
|
},
|
|
7872
7725
|
disuse() {
|
|
7873
|
-
eventHub.off(
|
|
7726
|
+
eventHub.off(coreEventKeys.RULER, rulerCallback);
|
|
7874
7727
|
},
|
|
7875
7728
|
beforeDrawFrame: ({ snapshot }) => {
|
|
7876
7729
|
if (show === true) {
|
|
@@ -7896,6 +7749,228 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7896
7749
|
}
|
|
7897
7750
|
};
|
|
7898
7751
|
};
|
|
7752
|
+
const defaultElementDetail = getDefaultElementDetailConfig();
|
|
7753
|
+
const MiddlewareTextEditor = (opts) => {
|
|
7754
|
+
const { eventHub, boardContent, viewer, sharer } = opts;
|
|
7755
|
+
const canvas = boardContent.boardContext.canvas;
|
|
7756
|
+
const textarea = document.createElement("div");
|
|
7757
|
+
textarea.setAttribute("contenteditable", "true");
|
|
7758
|
+
const canvasWrapper = document.createElement("div");
|
|
7759
|
+
const container = opts.container || document.body;
|
|
7760
|
+
const mask = document.createElement("div");
|
|
7761
|
+
let activeElem = null;
|
|
7762
|
+
let activePosition = [];
|
|
7763
|
+
const id = `idraw-middleware-text-editor-${Math.random().toString(26).substring(2)}`;
|
|
7764
|
+
mask.setAttribute("id", id);
|
|
7765
|
+
canvasWrapper.appendChild(textarea);
|
|
7766
|
+
canvasWrapper.style.position = "absolute";
|
|
7767
|
+
mask.appendChild(canvasWrapper);
|
|
7768
|
+
mask.style.position = "fixed";
|
|
7769
|
+
mask.style.top = "0";
|
|
7770
|
+
mask.style.bottom = "0";
|
|
7771
|
+
mask.style.left = "0";
|
|
7772
|
+
mask.style.right = "0";
|
|
7773
|
+
mask.style.display = "none";
|
|
7774
|
+
container.appendChild(mask);
|
|
7775
|
+
const showTextArea = (e) => {
|
|
7776
|
+
resetCanvasWrapper();
|
|
7777
|
+
resetTextArea(e);
|
|
7778
|
+
mask.style.display = "block";
|
|
7779
|
+
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
7780
|
+
sharer.setActiveOverrideElemenentMap({
|
|
7781
|
+
[activeElem.uuid]: {
|
|
7782
|
+
operations: { invisible: true }
|
|
7783
|
+
}
|
|
7784
|
+
});
|
|
7785
|
+
viewer.drawFrame();
|
|
7786
|
+
}
|
|
7787
|
+
};
|
|
7788
|
+
const hideTextArea = () => {
|
|
7789
|
+
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
7790
|
+
const map = sharer.getActiveOverrideElemenentMap();
|
|
7791
|
+
if (map) {
|
|
7792
|
+
delete map[activeElem.uuid];
|
|
7793
|
+
}
|
|
7794
|
+
sharer.setActiveOverrideElemenentMap(map);
|
|
7795
|
+
viewer.drawFrame();
|
|
7796
|
+
}
|
|
7797
|
+
mask.style.display = "none";
|
|
7798
|
+
activeElem = null;
|
|
7799
|
+
activePosition = [];
|
|
7800
|
+
};
|
|
7801
|
+
const getCanvasRect = () => {
|
|
7802
|
+
const clientRect = canvas.getBoundingClientRect();
|
|
7803
|
+
const { left, top, width, height } = clientRect;
|
|
7804
|
+
return { left, top, width, height };
|
|
7805
|
+
};
|
|
7806
|
+
const createBox = (opts2) => {
|
|
7807
|
+
const { size, parent } = opts2;
|
|
7808
|
+
const div = document.createElement("div");
|
|
7809
|
+
const { x: x2, y: y2, w: w2, h: h2 } = size;
|
|
7810
|
+
const angle2 = limitAngle(size.angle || 0);
|
|
7811
|
+
div.style.position = "absolute";
|
|
7812
|
+
div.style.left = `${x2}px`;
|
|
7813
|
+
div.style.top = `${y2}px`;
|
|
7814
|
+
div.style.width = `${w2}px`;
|
|
7815
|
+
div.style.height = `${h2}px`;
|
|
7816
|
+
div.style.transform = `rotate(${angle2}deg)`;
|
|
7817
|
+
parent.appendChild(div);
|
|
7818
|
+
return div;
|
|
7819
|
+
};
|
|
7820
|
+
const resetTextArea = (e) => {
|
|
7821
|
+
const { viewScaleInfo, element, groupQueue } = e;
|
|
7822
|
+
const { scale, offsetTop, offsetLeft } = viewScaleInfo;
|
|
7823
|
+
if (canvasWrapper.children) {
|
|
7824
|
+
Array.from(canvasWrapper.children).forEach((child) => {
|
|
7825
|
+
child.remove();
|
|
7826
|
+
});
|
|
7827
|
+
}
|
|
7828
|
+
let parent = canvasWrapper;
|
|
7829
|
+
for (let i = 0; i < groupQueue.length; i++) {
|
|
7830
|
+
const group = groupQueue[i];
|
|
7831
|
+
const { x: x2, y: y2, w: w2, h: h2 } = group;
|
|
7832
|
+
const angle2 = limitAngle(group.angle || 0);
|
|
7833
|
+
const size = {
|
|
7834
|
+
x: x2 * scale,
|
|
7835
|
+
y: y2 * scale,
|
|
7836
|
+
w: w2 * scale,
|
|
7837
|
+
h: h2 * scale,
|
|
7838
|
+
angle: angle2
|
|
7839
|
+
};
|
|
7840
|
+
if (i === 0) {
|
|
7841
|
+
size.x += offsetLeft;
|
|
7842
|
+
size.y += offsetTop;
|
|
7843
|
+
}
|
|
7844
|
+
parent = createBox({ size, parent });
|
|
7845
|
+
}
|
|
7846
|
+
const detail = {
|
|
7847
|
+
...defaultElementDetail,
|
|
7848
|
+
...element.detail
|
|
7849
|
+
};
|
|
7850
|
+
let elemX = element.x * scale + offsetLeft;
|
|
7851
|
+
let elemY = element.y * scale + offsetTop;
|
|
7852
|
+
let elemW = element.w * scale;
|
|
7853
|
+
let elemH = element.h * scale;
|
|
7854
|
+
if (groupQueue.length > 0) {
|
|
7855
|
+
elemX = element.x * scale;
|
|
7856
|
+
elemY = element.y * scale;
|
|
7857
|
+
elemW = element.w * scale;
|
|
7858
|
+
elemH = element.h * scale;
|
|
7859
|
+
}
|
|
7860
|
+
let justifyContent = "center";
|
|
7861
|
+
let alignItems = "center";
|
|
7862
|
+
if (detail.textAlign === "left") {
|
|
7863
|
+
justifyContent = "start";
|
|
7864
|
+
} else if (detail.textAlign === "right") {
|
|
7865
|
+
justifyContent = "end";
|
|
7866
|
+
}
|
|
7867
|
+
if (detail.verticalAlign === "top") {
|
|
7868
|
+
alignItems = "start";
|
|
7869
|
+
} else if (detail.verticalAlign === "bottom") {
|
|
7870
|
+
alignItems = "end";
|
|
7871
|
+
}
|
|
7872
|
+
textarea.style.display = "inline-flex";
|
|
7873
|
+
textarea.style.justifyContent = justifyContent;
|
|
7874
|
+
textarea.style.alignItems = alignItems;
|
|
7875
|
+
textarea.style.position = "absolute";
|
|
7876
|
+
textarea.style.left = `${elemX - 1}px`;
|
|
7877
|
+
textarea.style.top = `${elemY - 1}px`;
|
|
7878
|
+
textarea.style.width = `${elemW + 2}px`;
|
|
7879
|
+
textarea.style.height = `${elemH + 2}px`;
|
|
7880
|
+
textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
|
|
7881
|
+
textarea.style.boxSizing = "border-box";
|
|
7882
|
+
textarea.style.border = "1px solid #1973ba";
|
|
7883
|
+
textarea.style.resize = "none";
|
|
7884
|
+
textarea.style.overflow = "hidden";
|
|
7885
|
+
textarea.style.wordBreak = "break-all";
|
|
7886
|
+
textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
|
|
7887
|
+
textarea.style.background = `${detail.background || "transparent"}`;
|
|
7888
|
+
textarea.style.color = `${detail.color || "#333333"}`;
|
|
7889
|
+
textarea.style.fontSize = `${detail.fontSize * scale}px`;
|
|
7890
|
+
textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
|
|
7891
|
+
textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
|
|
7892
|
+
textarea.style.fontWeight = `${detail.fontWeight}`;
|
|
7893
|
+
textarea.style.padding = "0";
|
|
7894
|
+
textarea.style.margin = "0";
|
|
7895
|
+
textarea.style.outline = "none";
|
|
7896
|
+
textarea.innerText = detail.text || "";
|
|
7897
|
+
parent.appendChild(textarea);
|
|
7898
|
+
};
|
|
7899
|
+
const resetCanvasWrapper = () => {
|
|
7900
|
+
const { left, top, width, height } = getCanvasRect();
|
|
7901
|
+
canvasWrapper.style.position = "absolute";
|
|
7902
|
+
canvasWrapper.style.overflow = "hidden";
|
|
7903
|
+
canvasWrapper.style.top = `${top}px`;
|
|
7904
|
+
canvasWrapper.style.left = `${left}px`;
|
|
7905
|
+
canvasWrapper.style.width = `${width}px`;
|
|
7906
|
+
canvasWrapper.style.height = `${height}px`;
|
|
7907
|
+
};
|
|
7908
|
+
mask.addEventListener("click", () => {
|
|
7909
|
+
hideTextArea();
|
|
7910
|
+
});
|
|
7911
|
+
textarea.addEventListener("click", (e) => {
|
|
7912
|
+
e.stopPropagation();
|
|
7913
|
+
});
|
|
7914
|
+
textarea.addEventListener("input", () => {
|
|
7915
|
+
if (activeElem && activePosition) {
|
|
7916
|
+
activeElem.detail.text = textarea.innerText || "";
|
|
7917
|
+
eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
|
|
7918
|
+
element: {
|
|
7919
|
+
uuid: activeElem.uuid,
|
|
7920
|
+
detail: {
|
|
7921
|
+
text: activeElem.detail.text
|
|
7922
|
+
}
|
|
7923
|
+
},
|
|
7924
|
+
position: [...activePosition || []]
|
|
7925
|
+
});
|
|
7926
|
+
viewer.drawFrame();
|
|
7927
|
+
}
|
|
7928
|
+
});
|
|
7929
|
+
textarea.addEventListener("blur", () => {
|
|
7930
|
+
if (activeElem && activePosition) {
|
|
7931
|
+
eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
|
|
7932
|
+
element: {
|
|
7933
|
+
uuid: activeElem.uuid,
|
|
7934
|
+
detail: {
|
|
7935
|
+
text: activeElem.detail.text
|
|
7936
|
+
}
|
|
7937
|
+
},
|
|
7938
|
+
position: [...activePosition]
|
|
7939
|
+
});
|
|
7940
|
+
}
|
|
7941
|
+
hideTextArea();
|
|
7942
|
+
});
|
|
7943
|
+
textarea.addEventListener("keydown", (e) => {
|
|
7944
|
+
e.stopPropagation();
|
|
7945
|
+
});
|
|
7946
|
+
textarea.addEventListener("keypress", (e) => {
|
|
7947
|
+
e.stopPropagation();
|
|
7948
|
+
});
|
|
7949
|
+
textarea.addEventListener("keyup", (e) => {
|
|
7950
|
+
e.stopPropagation();
|
|
7951
|
+
});
|
|
7952
|
+
textarea.addEventListener("wheel", (e) => {
|
|
7953
|
+
e.stopPropagation();
|
|
7954
|
+
e.preventDefault();
|
|
7955
|
+
});
|
|
7956
|
+
const textEditCallback = (e) => {
|
|
7957
|
+
var _a;
|
|
7958
|
+
if ((e == null ? void 0 : e.position) && (e == null ? void 0 : e.element) && ((_a = e == null ? void 0 : e.element) == null ? void 0 : _a.type) === "text") {
|
|
7959
|
+
activeElem = e.element;
|
|
7960
|
+
activePosition = e.position;
|
|
7961
|
+
}
|
|
7962
|
+
showTextArea(e);
|
|
7963
|
+
};
|
|
7964
|
+
return {
|
|
7965
|
+
name: "@middleware/text-editor",
|
|
7966
|
+
use() {
|
|
7967
|
+
eventHub.on(coreEventKeys.TEXT_EDIT, textEditCallback);
|
|
7968
|
+
},
|
|
7969
|
+
disuse() {
|
|
7970
|
+
eventHub.off(coreEventKeys.TEXT_EDIT, textEditCallback);
|
|
7971
|
+
}
|
|
7972
|
+
};
|
|
7973
|
+
};
|
|
7899
7974
|
const key = "DRAG";
|
|
7900
7975
|
const keyPrevPoint = Symbol(`${key}_prevPoint`);
|
|
7901
7976
|
const MiddlewareDragger = (opts) => {
|
|
@@ -7907,7 +7982,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7907
7982
|
if (isDragging === true) {
|
|
7908
7983
|
return;
|
|
7909
7984
|
}
|
|
7910
|
-
eventHub.trigger(
|
|
7985
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7911
7986
|
type: "drag-default"
|
|
7912
7987
|
});
|
|
7913
7988
|
},
|
|
@@ -7915,7 +7990,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7915
7990
|
const { point } = e;
|
|
7916
7991
|
sharer.setSharedStorage(keyPrevPoint, point);
|
|
7917
7992
|
isDragging = true;
|
|
7918
|
-
eventHub.trigger(
|
|
7993
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7919
7994
|
type: "drag-active"
|
|
7920
7995
|
});
|
|
7921
7996
|
},
|
|
@@ -7933,7 +8008,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7933
8008
|
pointEnd() {
|
|
7934
8009
|
isDragging = false;
|
|
7935
8010
|
sharer.setSharedStorage(keyPrevPoint, null);
|
|
7936
|
-
eventHub.trigger(
|
|
8011
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7937
8012
|
type: "drag-default"
|
|
7938
8013
|
});
|
|
7939
8014
|
}
|
|
@@ -8074,13 +8149,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8074
8149
|
return {
|
|
8075
8150
|
name: "@middleware/info",
|
|
8076
8151
|
beforeDrawFrame({ snapshot }) {
|
|
8077
|
-
var _a;
|
|
8078
8152
|
const { sharedStore } = snapshot;
|
|
8079
8153
|
const selectedElementList = sharedStore[keySelectedElementList];
|
|
8080
|
-
const hoverElement = sharedStore[keyHoverElement];
|
|
8081
8154
|
const actionType = sharedStore[keyActionType];
|
|
8082
8155
|
const groupQueue = sharedStore[keyGroupQueue] || [];
|
|
8083
|
-
if (selectedElementList.length === 1
|
|
8156
|
+
if (selectedElementList.length === 1) {
|
|
8084
8157
|
const elem = selectedElementList[0];
|
|
8085
8158
|
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
8086
8159
|
const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
|
|
@@ -8170,6 +8243,47 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8170
8243
|
}
|
|
8171
8244
|
};
|
|
8172
8245
|
};
|
|
8246
|
+
const MiddlewarePointer = (opts) => {
|
|
8247
|
+
const { boardContent, eventHub, sharer } = opts;
|
|
8248
|
+
const canvas = boardContent.boardContext.canvas;
|
|
8249
|
+
const container = opts.container || document.body;
|
|
8250
|
+
const id = `idraw-middleware-pointer-${Math.random().toString(26).substring(2)}`;
|
|
8251
|
+
const getCanvasRect = () => {
|
|
8252
|
+
const clientRect = canvas.getBoundingClientRect();
|
|
8253
|
+
const { left, top, width, height } = clientRect;
|
|
8254
|
+
return { left, top, width, height };
|
|
8255
|
+
};
|
|
8256
|
+
const contextMenuPointer = document.createElement("div");
|
|
8257
|
+
contextMenuPointer.setAttribute("id", id);
|
|
8258
|
+
contextMenuPointer.style.position = "fixed";
|
|
8259
|
+
contextMenuPointer.style.top = "0";
|
|
8260
|
+
contextMenuPointer.style.bottom = "unset";
|
|
8261
|
+
contextMenuPointer.style.left = "0";
|
|
8262
|
+
contextMenuPointer.style.right = "unset";
|
|
8263
|
+
container.appendChild(contextMenuPointer);
|
|
8264
|
+
return {
|
|
8265
|
+
name: "@middleware/pointer",
|
|
8266
|
+
use() {
|
|
8267
|
+
},
|
|
8268
|
+
disuse() {
|
|
8269
|
+
},
|
|
8270
|
+
pointStart(e) {
|
|
8271
|
+
},
|
|
8272
|
+
pointEnd() {
|
|
8273
|
+
},
|
|
8274
|
+
contextMenu(e) {
|
|
8275
|
+
const { point } = e;
|
|
8276
|
+
const { left, top } = getCanvasRect();
|
|
8277
|
+
contextMenuPointer.style.left = `${left + point.x}px`;
|
|
8278
|
+
contextMenuPointer.style.top = `${top + point.y}px`;
|
|
8279
|
+
const selectedElements = sharer.getSharedStorage(keySelectedElementList);
|
|
8280
|
+
eventHub.trigger(coreEventKeys.CONTEXT_MENU, {
|
|
8281
|
+
pointerContainer: contextMenuPointer,
|
|
8282
|
+
selectedElements: selectedElements || []
|
|
8283
|
+
});
|
|
8284
|
+
}
|
|
8285
|
+
};
|
|
8286
|
+
};
|
|
8173
8287
|
class Core {
|
|
8174
8288
|
constructor(container, opts) {
|
|
8175
8289
|
__privateAdd(this, _initContainer);
|
|
@@ -8287,20 +8401,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8287
8401
|
exports.MiddlewareDragger = MiddlewareDragger;
|
|
8288
8402
|
exports.MiddlewareInfo = MiddlewareInfo;
|
|
8289
8403
|
exports.MiddlewareLayoutSelector = MiddlewareLayoutSelector;
|
|
8404
|
+
exports.MiddlewarePointer = MiddlewarePointer;
|
|
8290
8405
|
exports.MiddlewareRuler = MiddlewareRuler;
|
|
8291
8406
|
exports.MiddlewareScaler = MiddlewareScaler;
|
|
8292
8407
|
exports.MiddlewareScroller = MiddlewareScroller;
|
|
8293
8408
|
exports.MiddlewareSelector = MiddlewareSelector;
|
|
8294
8409
|
exports.MiddlewareTextEditor = MiddlewareTextEditor;
|
|
8295
|
-
exports.
|
|
8296
|
-
exports.middlewareEventRuler = middlewareEventRuler;
|
|
8297
|
-
exports.middlewareEventScale = middlewareEventScale;
|
|
8298
|
-
exports.middlewareEventSelect = middlewareEventSelect;
|
|
8299
|
-
exports.middlewareEventSelectClear = middlewareEventSelectClear;
|
|
8300
|
-
exports.middlewareEventSelectInGroup = middlewareEventSelectInGroup;
|
|
8301
|
-
exports.middlewareEventSnapToGrid = middlewareEventSnapToGrid;
|
|
8302
|
-
exports.middlewareEventTextChange = middlewareEventTextChange;
|
|
8303
|
-
exports.middlewareEventTextEdit = middlewareEventTextEdit;
|
|
8410
|
+
exports.coreEventKeys = coreEventKeys;
|
|
8304
8411
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8305
8412
|
return exports;
|
|
8306
8413
|
}({});
|