@idraw/core 0.4.0-beta.33 → 0.4.0-beta.35
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 +92 -51
- 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 +453 -297
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -824,14 +824,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
824
824
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
825
825
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
826
826
|
};
|
|
827
|
-
var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_createTempStorage;
|
|
827
|
+
var _Store_instances, _Store_temp, _Store_backUpDefaultStorage, _Store_static, _Store_createTempStorage;
|
|
828
828
|
class Store {
|
|
829
829
|
constructor(opts) {
|
|
830
830
|
_Store_instances.add(this);
|
|
831
831
|
_Store_temp.set(this, void 0);
|
|
832
832
|
_Store_backUpDefaultStorage.set(this, void 0);
|
|
833
|
+
_Store_static.set(this, void 0);
|
|
833
834
|
__classPrivateFieldSet$7(this, _Store_backUpDefaultStorage, deepClone(opts.defaultStorage), "f");
|
|
834
835
|
__classPrivateFieldSet$7(this, _Store_temp, __classPrivateFieldGet$7(this, _Store_instances, "m", _Store_createTempStorage).call(this), "f");
|
|
836
|
+
__classPrivateFieldSet$7(this, _Store_static, opts.defaultStatic || {}, "f");
|
|
835
837
|
}
|
|
836
838
|
set(name, value) {
|
|
837
839
|
__classPrivateFieldGet$7(this, _Store_temp, "f")[name] = value;
|
|
@@ -839,6 +841,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
839
841
|
get(name) {
|
|
840
842
|
return __classPrivateFieldGet$7(this, _Store_temp, "f")[name];
|
|
841
843
|
}
|
|
844
|
+
setStatic(name, value) {
|
|
845
|
+
__classPrivateFieldGet$7(this, _Store_static, "f")[name] = value;
|
|
846
|
+
}
|
|
847
|
+
getStatic(name) {
|
|
848
|
+
return __classPrivateFieldGet$7(this, _Store_static, "f")[name];
|
|
849
|
+
}
|
|
842
850
|
getSnapshot(opts) {
|
|
843
851
|
if ((opts === null || opts === void 0 ? void 0 : opts.deepClone) === true) {
|
|
844
852
|
return deepClone(__classPrivateFieldGet$7(this, _Store_temp, "f"));
|
|
@@ -850,9 +858,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
850
858
|
}
|
|
851
859
|
destroy() {
|
|
852
860
|
__classPrivateFieldSet$7(this, _Store_temp, null, "f");
|
|
861
|
+
__classPrivateFieldSet$7(this, _Store_static, null, "f");
|
|
853
862
|
}
|
|
854
863
|
}
|
|
855
|
-
_Store_temp = /* @__PURE__ */ new WeakMap(), _Store_backUpDefaultStorage = /* @__PURE__ */ new WeakMap(), _Store_instances = /* @__PURE__ */ new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage2() {
|
|
864
|
+
_Store_temp = /* @__PURE__ */ new WeakMap(), _Store_backUpDefaultStorage = /* @__PURE__ */ new WeakMap(), _Store_static = /* @__PURE__ */ new WeakMap(), _Store_instances = /* @__PURE__ */ new WeakSet(), _Store_createTempStorage = function _Store_createTempStorage2() {
|
|
856
865
|
return deepClone(__classPrivateFieldGet$7(this, _Store_backUpDefaultStorage, "f"));
|
|
857
866
|
};
|
|
858
867
|
function getViewScaleInfoFromSnapshot(snapshot) {
|
|
@@ -1266,6 +1275,36 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1266
1275
|
_loop(elements);
|
|
1267
1276
|
return result;
|
|
1268
1277
|
}
|
|
1278
|
+
function getElementPositionMapFromList(uuids, elements) {
|
|
1279
|
+
const currentPosition = [];
|
|
1280
|
+
const positionMap = {};
|
|
1281
|
+
let over = false;
|
|
1282
|
+
const _loop = (list) => {
|
|
1283
|
+
var _a;
|
|
1284
|
+
for (let i = 0; i < list.length; i++) {
|
|
1285
|
+
if (over === true) {
|
|
1286
|
+
break;
|
|
1287
|
+
}
|
|
1288
|
+
currentPosition.push(i);
|
|
1289
|
+
const elem = list[i];
|
|
1290
|
+
if (uuids.includes(elem.uuid)) {
|
|
1291
|
+
positionMap[elem.uuid] = [...currentPosition];
|
|
1292
|
+
if (Object.keys(positionMap).length === uuids.length) {
|
|
1293
|
+
over = true;
|
|
1294
|
+
break;
|
|
1295
|
+
}
|
|
1296
|
+
} else if (elem.type === "group") {
|
|
1297
|
+
_loop(((_a = elem === null || elem === void 0 ? void 0 : elem.detail) === null || _a === void 0 ? void 0 : _a.children) || []);
|
|
1298
|
+
}
|
|
1299
|
+
if (over) {
|
|
1300
|
+
break;
|
|
1301
|
+
}
|
|
1302
|
+
currentPosition.pop();
|
|
1303
|
+
}
|
|
1304
|
+
};
|
|
1305
|
+
_loop(elements);
|
|
1306
|
+
return positionMap;
|
|
1307
|
+
}
|
|
1269
1308
|
function getElementVertexes(elemSize) {
|
|
1270
1309
|
const { x: x2, y: y2, h: h2, w: w2 } = elemSize;
|
|
1271
1310
|
return [
|
|
@@ -3680,6 +3719,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3680
3719
|
}
|
|
3681
3720
|
});
|
|
3682
3721
|
_BoardWatcher_onContextMenu.set(this, (e) => {
|
|
3722
|
+
if (e.button !== 2) {
|
|
3723
|
+
return;
|
|
3724
|
+
}
|
|
3683
3725
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3684
3726
|
return;
|
|
3685
3727
|
}
|
|
@@ -3688,6 +3730,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3688
3730
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
|
|
3689
3731
|
return;
|
|
3690
3732
|
}
|
|
3733
|
+
this.trigger("contextMenu", { point });
|
|
3691
3734
|
});
|
|
3692
3735
|
_BoardWatcher_onClick.set(this, (e) => {
|
|
3693
3736
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
@@ -3745,6 +3788,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3745
3788
|
this.trigger("pointMove", { point });
|
|
3746
3789
|
});
|
|
3747
3790
|
_BoardWatcher_onPointStart.set(this, (e) => {
|
|
3791
|
+
if (e.button !== 0) {
|
|
3792
|
+
return;
|
|
3793
|
+
}
|
|
3748
3794
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3749
3795
|
return;
|
|
3750
3796
|
}
|
|
@@ -4113,7 +4159,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4113
4159
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4114
4160
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4115
4161
|
};
|
|
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;
|
|
4162
|
+
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
4163
|
class Board {
|
|
4118
4164
|
constructor(opts) {
|
|
4119
4165
|
_Board_instances.add(this);
|
|
@@ -4306,6 +4352,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4306
4352
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("scrollY", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollY).bind(this));
|
|
4307
4353
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("resize", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleResize).bind(this));
|
|
4308
4354
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("doubleClick", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleDoubleClick).bind(this));
|
|
4355
|
+
__classPrivateFieldGet(this, _Board_watcher, "f").on("contextMenu", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleContextMenu).bind(this));
|
|
4309
4356
|
__classPrivateFieldGet(this, _Board_renderer, "f").on("load", () => {
|
|
4310
4357
|
__classPrivateFieldGet(this, _Board_eventHub, "f").trigger("loadResource");
|
|
4311
4358
|
});
|
|
@@ -4354,6 +4401,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4354
4401
|
return;
|
|
4355
4402
|
}
|
|
4356
4403
|
}
|
|
4404
|
+
}, _Board_handleContextMenu = function _Board_handleContextMenu2(e) {
|
|
4405
|
+
var _a;
|
|
4406
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
|
|
4407
|
+
const obj = __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f")[i];
|
|
4408
|
+
const result = (_a = obj === null || obj === void 0 ? void 0 : obj.contextMenu) === null || _a === void 0 ? void 0 : _a.call(obj, e);
|
|
4409
|
+
if (result === false) {
|
|
4410
|
+
return;
|
|
4411
|
+
}
|
|
4412
|
+
}
|
|
4357
4413
|
}, _Board_handleWheel = function _Board_handleWheel2(e) {
|
|
4358
4414
|
var _a;
|
|
4359
4415
|
for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
|
|
@@ -4442,6 +4498,36 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4442
4498
|
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
4499
|
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
4500
|
const CURSOR_RESIZE_ROTATE = `data:image/png;base64,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`;
|
|
4501
|
+
const EVENT_KEY_CHANGE = "change";
|
|
4502
|
+
const EVENT_KEY_CURSOR = "cursor";
|
|
4503
|
+
const EVENT_KEY_RULER = "ruler";
|
|
4504
|
+
const EVENT_KEY_SCALE = "scale";
|
|
4505
|
+
const EVENT_KEY_SELECT = "select";
|
|
4506
|
+
const EVENT_KEY_CLEAR_SELECT = "clearSelect";
|
|
4507
|
+
const EVENT_KEY_TEXT_EDIT = "textEdit";
|
|
4508
|
+
const EVENT_KEY_TEXT_CHANGE = "textChange";
|
|
4509
|
+
const EVENT_KEY_CONTEXT_MENU = "contextMenu";
|
|
4510
|
+
const EVENT_KEY_SELECT_IN_GROUP = "selectInGroup";
|
|
4511
|
+
const innerEventKeys = {
|
|
4512
|
+
CURSOR: EVENT_KEY_CURSOR,
|
|
4513
|
+
CHANGE: EVENT_KEY_CHANGE,
|
|
4514
|
+
RULER: EVENT_KEY_RULER,
|
|
4515
|
+
SCALE: EVENT_KEY_SCALE,
|
|
4516
|
+
SELECT: EVENT_KEY_SELECT,
|
|
4517
|
+
CLEAR_SELECT: EVENT_KEY_CLEAR_SELECT,
|
|
4518
|
+
TEXT_EDIT: EVENT_KEY_TEXT_EDIT,
|
|
4519
|
+
TEXT_CHANGE: EVENT_KEY_TEXT_CHANGE,
|
|
4520
|
+
CONTEXT_MENU: EVENT_KEY_CONTEXT_MENU,
|
|
4521
|
+
SELECT_IN_GROUP: EVENT_KEY_SELECT_IN_GROUP,
|
|
4522
|
+
SNAP_TO_GRID: EVENT_KEY_SELECT_IN_GROUP
|
|
4523
|
+
};
|
|
4524
|
+
const coreEventKeys = {};
|
|
4525
|
+
Object.keys(innerEventKeys).forEach((keyName) => {
|
|
4526
|
+
Object.defineProperty(coreEventKeys, keyName, {
|
|
4527
|
+
value: innerEventKeys[keyName],
|
|
4528
|
+
writable: false
|
|
4529
|
+
});
|
|
4530
|
+
});
|
|
4445
4531
|
class Cursor {
|
|
4446
4532
|
constructor(container, opts) {
|
|
4447
4533
|
__privateAdd(this, _init);
|
|
@@ -4475,7 +4561,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4475
4561
|
init_fn = function() {
|
|
4476
4562
|
const eventHub = __privateGet(this, _eventHub);
|
|
4477
4563
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "default");
|
|
4478
|
-
eventHub.on(
|
|
4564
|
+
eventHub.on(coreEventKeys.CURSOR, (e) => {
|
|
4479
4565
|
var _a;
|
|
4480
4566
|
if (e.type === "over-element" || !e.type) {
|
|
4481
4567
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
|
|
@@ -4583,7 +4669,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4583
4669
|
}
|
|
4584
4670
|
return key2;
|
|
4585
4671
|
};
|
|
4586
|
-
const eventChange = "change";
|
|
4587
4672
|
const key$3 = "SELECT";
|
|
4588
4673
|
const keyActionType = Symbol(`${key$3}_actionType`);
|
|
4589
4674
|
const keyResizeType = Symbol(`${key$3}_resizeType`);
|
|
@@ -4614,10 +4699,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4614
4699
|
lockedColor,
|
|
4615
4700
|
referenceColor
|
|
4616
4701
|
};
|
|
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
4702
|
function drawVertexes(ctx, vertexes, opts) {
|
|
4622
4703
|
const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
|
|
4623
4704
|
ctx.setLineDash([]);
|
|
@@ -5872,228 +5953,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5872
5953
|
xLines
|
|
5873
5954
|
};
|
|
5874
5955
|
}
|
|
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
5956
|
const key$2 = "LAYOUT_SELECT";
|
|
6098
5957
|
const keyLayoutActionType = Symbol(`${key$2}_layoutActionType`);
|
|
6099
5958
|
const keyLayoutControlType = Symbol(`${key$2}_layoutControlType`);
|
|
@@ -6260,7 +6119,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6260
6119
|
}
|
|
6261
6120
|
if (layoutControlType) {
|
|
6262
6121
|
sharer.setSharedStorage(keyLayoutControlType, layoutControlType);
|
|
6263
|
-
eventHub.trigger(
|
|
6122
|
+
eventHub.trigger(coreEventKeys.CLEAR_SELECT);
|
|
6264
6123
|
return layoutControlType;
|
|
6265
6124
|
}
|
|
6266
6125
|
}
|
|
@@ -6271,7 +6130,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6271
6130
|
if (isBusy === true) {
|
|
6272
6131
|
return;
|
|
6273
6132
|
}
|
|
6274
|
-
eventHub.trigger(
|
|
6133
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6275
6134
|
type: controlType ? `resize-${controlType}` : controlType,
|
|
6276
6135
|
groupQueue: [],
|
|
6277
6136
|
element: getLayoutSize()
|
|
@@ -6445,7 +6304,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6445
6304
|
const layoutControlType = sharer.getSharedStorage(keyLayoutControlType);
|
|
6446
6305
|
const data = sharer.getActiveStorage("data");
|
|
6447
6306
|
if (data && layoutActionType === "resize" && layoutControlType) {
|
|
6448
|
-
eventHub.trigger(
|
|
6307
|
+
eventHub.trigger(coreEventKeys.CHANGE, {
|
|
6449
6308
|
type: "changeLayout",
|
|
6450
6309
|
data
|
|
6451
6310
|
});
|
|
@@ -6498,6 +6357,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6498
6357
|
let moveOriginalStartPoint = null;
|
|
6499
6358
|
let moveOriginalStartElementSize = null;
|
|
6500
6359
|
let inBusyMode = null;
|
|
6360
|
+
let hasChangedData = null;
|
|
6501
6361
|
sharer.setSharedStorage(keyActionType, null);
|
|
6502
6362
|
sharer.setSharedStorage(keyEnableSnapToGrid, true);
|
|
6503
6363
|
const getActiveElements = () => {
|
|
@@ -6548,7 +6408,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6548
6408
|
sharer.setSharedStorage(keySelectedElementPosition, []);
|
|
6549
6409
|
}
|
|
6550
6410
|
if ((opts2 == null ? void 0 : opts2.triggerEvent) === true) {
|
|
6551
|
-
|
|
6411
|
+
const uuids = list.map((elem) => elem.uuid);
|
|
6412
|
+
const data = sharer.getActiveStorage("data");
|
|
6413
|
+
const positionMap = getElementPositionMapFromList(uuids, (data == null ? void 0 : data.elements) || []);
|
|
6414
|
+
eventHub.trigger(coreEventKeys.SELECT, { uuids, positions: list.map((elem) => [...positionMap[elem.uuid]]) });
|
|
6552
6415
|
}
|
|
6553
6416
|
};
|
|
6554
6417
|
const pointTargetBaseOptions = () => {
|
|
@@ -6581,7 +6444,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6581
6444
|
sharer.setSharedStorage(keyIsMoving, null);
|
|
6582
6445
|
};
|
|
6583
6446
|
clear();
|
|
6584
|
-
const selectCallback = ({ uuids, positions }) => {
|
|
6447
|
+
const selectCallback = ({ uuids = [], positions }) => {
|
|
6585
6448
|
let elements = [];
|
|
6586
6449
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
6587
6450
|
const data = sharer.getActiveStorage("data");
|
|
@@ -6618,16 +6481,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6618
6481
|
return {
|
|
6619
6482
|
name: "@middleware/selector",
|
|
6620
6483
|
use() {
|
|
6621
|
-
eventHub.on(
|
|
6622
|
-
eventHub.on(
|
|
6623
|
-
eventHub.on(
|
|
6624
|
-
eventHub.on(
|
|
6484
|
+
eventHub.on(coreEventKeys.SELECT, selectCallback);
|
|
6485
|
+
eventHub.on(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
6486
|
+
eventHub.on(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
6487
|
+
eventHub.on(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
6625
6488
|
},
|
|
6626
6489
|
disuse() {
|
|
6627
|
-
eventHub.off(
|
|
6628
|
-
eventHub.off(
|
|
6629
|
-
eventHub.off(
|
|
6630
|
-
eventHub.off(
|
|
6490
|
+
eventHub.off(coreEventKeys.SELECT, selectCallback);
|
|
6491
|
+
eventHub.off(coreEventKeys.CLEAR_SELECT, selectClearCallback);
|
|
6492
|
+
eventHub.off(coreEventKeys.SELECT_IN_GROUP, selectInGroupCallback);
|
|
6493
|
+
eventHub.off(coreEventKeys.SNAP_TO_GRID, setSnapToSnapCallback);
|
|
6631
6494
|
},
|
|
6632
6495
|
hover: (e) => {
|
|
6633
6496
|
var _a, _b, _c, _d, _e;
|
|
@@ -6641,7 +6504,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6641
6504
|
}
|
|
6642
6505
|
const cursor = target2.type;
|
|
6643
6506
|
if (inBusyMode === null) {
|
|
6644
|
-
eventHub.trigger(
|
|
6507
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6645
6508
|
type: cursor,
|
|
6646
6509
|
groupQueue: target2.groupQueue,
|
|
6647
6510
|
element: target2.elements[0]
|
|
@@ -6734,15 +6597,14 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6734
6597
|
groupQueue
|
|
6735
6598
|
})) {
|
|
6736
6599
|
const target2 = getPointTarget(e.point, pointTargetBaseOptions());
|
|
6737
|
-
|
|
6738
|
-
|
|
6739
|
-
} else {
|
|
6740
|
-
updateHoverElement(null);
|
|
6741
|
-
}
|
|
6600
|
+
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;
|
|
6601
|
+
updateHoverElement(null);
|
|
6742
6602
|
if (((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
|
|
6743
6603
|
moveOriginalStartElementSize = getElementSize(target2 == null ? void 0 : target2.elements[0]);
|
|
6744
6604
|
}
|
|
6745
|
-
if (
|
|
6605
|
+
if (isLockedElement2 === true) {
|
|
6606
|
+
clear();
|
|
6607
|
+
} else if (target2.type === "over-element" && ((_e = target2 == null ? void 0 : target2.elements) == null ? void 0 : _e.length) === 1) {
|
|
6746
6608
|
updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
|
|
6747
6609
|
sharer.setSharedStorage(keyActionType, "drag");
|
|
6748
6610
|
} else if ((_f = target2.type) == null ? void 0 : _f.startsWith("resize-")) {
|
|
@@ -6768,27 +6630,23 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6768
6630
|
groupQueue: []
|
|
6769
6631
|
});
|
|
6770
6632
|
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
|
-
}
|
|
6633
|
+
updateHoverElement(null);
|
|
6774
6634
|
if (((_j = target == null ? void 0 : target.elements) == null ? void 0 : _j.length) === 1) {
|
|
6775
6635
|
moveOriginalStartElementSize = getElementSize(target == null ? void 0 : target.elements[0]);
|
|
6776
6636
|
}
|
|
6777
|
-
if (
|
|
6778
|
-
|
|
6779
|
-
|
|
6780
|
-
|
|
6781
|
-
|
|
6782
|
-
|
|
6783
|
-
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
updateSelectedElementList([], { triggerEvent: true });
|
|
6791
|
-
}
|
|
6637
|
+
if (isLockedElement === true) {
|
|
6638
|
+
clear();
|
|
6639
|
+
sharer.setSharedStorage(keyActionType, "area");
|
|
6640
|
+
sharer.setSharedStorage(keyAreaStart, e.point);
|
|
6641
|
+
updateSelectedElementList([], { triggerEvent: true });
|
|
6642
|
+
} else if (target.type === "list-area") {
|
|
6643
|
+
sharer.setSharedStorage(keyActionType, "drag-list");
|
|
6644
|
+
} else if (target.type === "over-element" && ((_k = target == null ? void 0 : target.elements) == null ? void 0 : _k.length) === 1) {
|
|
6645
|
+
updateSelectedElementList([target.elements[0]], { triggerEvent: true });
|
|
6646
|
+
sharer.setSharedStorage(keyActionType, "drag");
|
|
6647
|
+
} else if ((_l = target.type) == null ? void 0 : _l.startsWith("resize-")) {
|
|
6648
|
+
sharer.setSharedStorage(keyResizeType, target.type);
|
|
6649
|
+
sharer.setSharedStorage(keyActionType, "resize");
|
|
6792
6650
|
} else {
|
|
6793
6651
|
clear();
|
|
6794
6652
|
sharer.setSharedStorage(keyActionType, "area");
|
|
@@ -6813,6 +6671,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6813
6671
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6814
6672
|
const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid);
|
|
6815
6673
|
if (actionType === "drag") {
|
|
6674
|
+
hasChangedData = true;
|
|
6816
6675
|
inBusyMode = "drag";
|
|
6817
6676
|
if (data && (elems == null ? void 0 : elems.length) === 1 && moveOriginalStartElementSize && originalStart && end && ((_b = (_a = elems[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.locked) !== true) {
|
|
6818
6677
|
const { moveX, moveY } = calcMoveInGroup(originalStart, end, groupQueue);
|
|
@@ -6856,6 +6715,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6856
6715
|
}
|
|
6857
6716
|
viewer.drawFrame();
|
|
6858
6717
|
} else if (actionType === "drag-list") {
|
|
6718
|
+
hasChangedData = true;
|
|
6859
6719
|
inBusyMode = "drag-list";
|
|
6860
6720
|
if (data && originalStart && start && end && (elems == null ? void 0 : elems.length) > 1) {
|
|
6861
6721
|
const moveX = (end.x - start.x) / scale;
|
|
@@ -6883,6 +6743,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6883
6743
|
viewer.drawFrame();
|
|
6884
6744
|
} else if (actionType === "resize") {
|
|
6885
6745
|
if (data && (elems == null ? void 0 : elems.length) === 1 && originalStart && moveOriginalStartElementSize && (resizeType == null ? void 0 : resizeType.startsWith("resize-"))) {
|
|
6746
|
+
hasChangedData = true;
|
|
6886
6747
|
inBusyMode = "resize";
|
|
6887
6748
|
const pointGroupQueue = [];
|
|
6888
6749
|
groupQueue.forEach((group) => {
|
|
@@ -7023,7 +6884,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7023
6884
|
}
|
|
7024
6885
|
if (data && ["drag", "drag-list", "drag-list-end", "resize"].includes(actionType)) {
|
|
7025
6886
|
let type = "dragElement";
|
|
7026
|
-
|
|
6887
|
+
if (hasChangedData) {
|
|
6888
|
+
eventHub.trigger(coreEventKeys.CHANGE, { data, type, selectedElements, hoverElement });
|
|
6889
|
+
hasChangedData = false;
|
|
6890
|
+
}
|
|
7027
6891
|
}
|
|
7028
6892
|
viewer.drawFrame();
|
|
7029
6893
|
};
|
|
@@ -7055,7 +6919,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7055
6919
|
return;
|
|
7056
6920
|
}
|
|
7057
6921
|
} 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(
|
|
6922
|
+
eventHub.trigger(coreEventKeys.TEXT_EDIT, {
|
|
7059
6923
|
element: target.elements[0],
|
|
7060
6924
|
groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
|
|
7061
6925
|
position: getElementPositionFromList((_g = target.elements[0]) == null ? void 0 : _g.uuid, ((_h = sharer.getActiveStorage("data")) == null ? void 0 : _h.elements) || []),
|
|
@@ -7064,6 +6928,46 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7064
6928
|
}
|
|
7065
6929
|
sharer.setSharedStorage(keyActionType, null);
|
|
7066
6930
|
},
|
|
6931
|
+
contextMenu: (e) => {
|
|
6932
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
6933
|
+
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6934
|
+
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6935
|
+
if (isPointInViewActiveGroup(e.point, {
|
|
6936
|
+
ctx: overlayContext,
|
|
6937
|
+
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6938
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6939
|
+
groupQueue
|
|
6940
|
+
})) {
|
|
6941
|
+
const target2 = getPointTarget(e.point, pointTargetBaseOptions());
|
|
6942
|
+
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) {
|
|
6943
|
+
clear();
|
|
6944
|
+
updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
|
|
6945
|
+
viewer.drawFrame();
|
|
6946
|
+
} else if (!((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length)) {
|
|
6947
|
+
clear();
|
|
6948
|
+
}
|
|
6949
|
+
}
|
|
6950
|
+
return;
|
|
6951
|
+
}
|
|
6952
|
+
const listAreaSize = calcSelectedElementsArea(getActiveElements(), {
|
|
6953
|
+
viewScaleInfo: sharer.getActiveViewScaleInfo(),
|
|
6954
|
+
viewSizeInfo: sharer.getActiveViewSizeInfo(),
|
|
6955
|
+
calculator
|
|
6956
|
+
});
|
|
6957
|
+
const target = getPointTarget(e.point, {
|
|
6958
|
+
...pointTargetBaseOptions(),
|
|
6959
|
+
areaSize: listAreaSize,
|
|
6960
|
+
groupQueue: []
|
|
6961
|
+
});
|
|
6962
|
+
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) {
|
|
6963
|
+
clear();
|
|
6964
|
+
updateSelectedElementList([target.elements[0]], { triggerEvent: true });
|
|
6965
|
+
viewer.drawFrame();
|
|
6966
|
+
return;
|
|
6967
|
+
} else if (!((_h = target == null ? void 0 : target.elements) == null ? void 0 : _h.length)) {
|
|
6968
|
+
clear();
|
|
6969
|
+
}
|
|
6970
|
+
},
|
|
7067
6971
|
beforeDrawFrame({ snapshot }) {
|
|
7068
6972
|
var _a;
|
|
7069
6973
|
const { activeStore, sharedStore } = snapshot;
|
|
@@ -7088,11 +6992,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7088
6992
|
controllerSize: 10,
|
|
7089
6993
|
viewScaleInfo
|
|
7090
6994
|
}) : null;
|
|
7091
|
-
const
|
|
6995
|
+
const isHoverLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
|
|
7092
6996
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
7093
6997
|
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
7094
6998
|
if (hoverElement && actionType !== "drag") {
|
|
7095
|
-
if (
|
|
6999
|
+
if (isHoverLocked) {
|
|
7096
7000
|
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7097
7001
|
...drawBaseOpts,
|
|
7098
7002
|
controller: calcElementSizeController(hoverElement, {
|
|
@@ -7106,7 +7010,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7106
7010
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7107
7011
|
}
|
|
7108
7012
|
}
|
|
7109
|
-
if (
|
|
7013
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7110
7014
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7111
7015
|
...drawBaseOpts,
|
|
7112
7016
|
element: elem,
|
|
@@ -7138,7 +7042,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7138
7042
|
}
|
|
7139
7043
|
} else {
|
|
7140
7044
|
if (hoverElement && actionType !== "drag") {
|
|
7141
|
-
if (
|
|
7045
|
+
if (isHoverLocked) {
|
|
7142
7046
|
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7143
7047
|
...drawBaseOpts,
|
|
7144
7048
|
controller: calcElementSizeController(hoverElement, {
|
|
@@ -7152,7 +7056,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7152
7056
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7153
7057
|
}
|
|
7154
7058
|
}
|
|
7155
|
-
if (
|
|
7059
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7156
7060
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7157
7061
|
...drawBaseOpts,
|
|
7158
7062
|
element: elem,
|
|
@@ -7485,7 +7389,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7485
7389
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
7486
7390
|
sharer.setSharedStorage(keyHoverYThumbRect, true);
|
|
7487
7391
|
}
|
|
7488
|
-
eventHub.trigger(
|
|
7392
|
+
eventHub.trigger(coreEventKeys.CURSOR, { type: "default" });
|
|
7489
7393
|
return false;
|
|
7490
7394
|
}
|
|
7491
7395
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
@@ -7532,7 +7436,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7532
7436
|
}
|
|
7533
7437
|
};
|
|
7534
7438
|
};
|
|
7535
|
-
const middlewareEventScale = "@middleware/scale";
|
|
7536
7439
|
const MiddlewareScaler = (opts) => {
|
|
7537
7440
|
const { viewer, sharer, eventHub } = opts;
|
|
7538
7441
|
const maxScale = 50;
|
|
@@ -7555,7 +7458,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7555
7458
|
viewer.scroll({ moveX, moveY });
|
|
7556
7459
|
viewer.drawFrame();
|
|
7557
7460
|
const scaleNum = formatNumber(scale);
|
|
7558
|
-
eventHub.trigger(
|
|
7461
|
+
eventHub.trigger(coreEventKeys.SCALE, { scale: scaleNum });
|
|
7559
7462
|
}
|
|
7560
7463
|
};
|
|
7561
7464
|
};
|
|
@@ -7833,7 +7736,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7833
7736
|
ctx.fill();
|
|
7834
7737
|
}
|
|
7835
7738
|
}
|
|
7836
|
-
const middlewareEventRuler = "@middleware/show-ruler";
|
|
7837
7739
|
const MiddlewareRuler = (opts, config) => {
|
|
7838
7740
|
const { boardContent, viewer, eventHub, calculator } = opts;
|
|
7839
7741
|
const { overlayContext, underlayContext } = boardContent;
|
|
@@ -7867,10 +7769,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7867
7769
|
return {
|
|
7868
7770
|
name: "@middleware/ruler",
|
|
7869
7771
|
use() {
|
|
7870
|
-
eventHub.on(
|
|
7772
|
+
eventHub.on(coreEventKeys.RULER, rulerCallback);
|
|
7871
7773
|
},
|
|
7872
7774
|
disuse() {
|
|
7873
|
-
eventHub.off(
|
|
7775
|
+
eventHub.off(coreEventKeys.RULER, rulerCallback);
|
|
7874
7776
|
},
|
|
7875
7777
|
beforeDrawFrame: ({ snapshot }) => {
|
|
7876
7778
|
if (show === true) {
|
|
@@ -7896,6 +7798,228 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7896
7798
|
}
|
|
7897
7799
|
};
|
|
7898
7800
|
};
|
|
7801
|
+
const defaultElementDetail = getDefaultElementDetailConfig();
|
|
7802
|
+
const MiddlewareTextEditor = (opts) => {
|
|
7803
|
+
const { eventHub, boardContent, viewer, sharer } = opts;
|
|
7804
|
+
const canvas = boardContent.boardContext.canvas;
|
|
7805
|
+
const textarea = document.createElement("div");
|
|
7806
|
+
textarea.setAttribute("contenteditable", "true");
|
|
7807
|
+
const canvasWrapper = document.createElement("div");
|
|
7808
|
+
const container = opts.container || document.body;
|
|
7809
|
+
const mask = document.createElement("div");
|
|
7810
|
+
let activeElem = null;
|
|
7811
|
+
let activePosition = [];
|
|
7812
|
+
const id = `idraw-middleware-text-editor-${Math.random().toString(26).substring(2)}`;
|
|
7813
|
+
mask.setAttribute("id", id);
|
|
7814
|
+
canvasWrapper.appendChild(textarea);
|
|
7815
|
+
canvasWrapper.style.position = "absolute";
|
|
7816
|
+
mask.appendChild(canvasWrapper);
|
|
7817
|
+
mask.style.position = "fixed";
|
|
7818
|
+
mask.style.top = "0";
|
|
7819
|
+
mask.style.bottom = "0";
|
|
7820
|
+
mask.style.left = "0";
|
|
7821
|
+
mask.style.right = "0";
|
|
7822
|
+
mask.style.display = "none";
|
|
7823
|
+
container.appendChild(mask);
|
|
7824
|
+
const showTextArea = (e) => {
|
|
7825
|
+
resetCanvasWrapper();
|
|
7826
|
+
resetTextArea(e);
|
|
7827
|
+
mask.style.display = "block";
|
|
7828
|
+
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
7829
|
+
sharer.setActiveOverrideElemenentMap({
|
|
7830
|
+
[activeElem.uuid]: {
|
|
7831
|
+
operations: { invisible: true }
|
|
7832
|
+
}
|
|
7833
|
+
});
|
|
7834
|
+
viewer.drawFrame();
|
|
7835
|
+
}
|
|
7836
|
+
};
|
|
7837
|
+
const hideTextArea = () => {
|
|
7838
|
+
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
7839
|
+
const map = sharer.getActiveOverrideElemenentMap();
|
|
7840
|
+
if (map) {
|
|
7841
|
+
delete map[activeElem.uuid];
|
|
7842
|
+
}
|
|
7843
|
+
sharer.setActiveOverrideElemenentMap(map);
|
|
7844
|
+
viewer.drawFrame();
|
|
7845
|
+
}
|
|
7846
|
+
mask.style.display = "none";
|
|
7847
|
+
activeElem = null;
|
|
7848
|
+
activePosition = [];
|
|
7849
|
+
};
|
|
7850
|
+
const getCanvasRect = () => {
|
|
7851
|
+
const clientRect = canvas.getBoundingClientRect();
|
|
7852
|
+
const { left, top, width, height } = clientRect;
|
|
7853
|
+
return { left, top, width, height };
|
|
7854
|
+
};
|
|
7855
|
+
const createBox = (opts2) => {
|
|
7856
|
+
const { size, parent } = opts2;
|
|
7857
|
+
const div = document.createElement("div");
|
|
7858
|
+
const { x: x2, y: y2, w: w2, h: h2 } = size;
|
|
7859
|
+
const angle2 = limitAngle(size.angle || 0);
|
|
7860
|
+
div.style.position = "absolute";
|
|
7861
|
+
div.style.left = `${x2}px`;
|
|
7862
|
+
div.style.top = `${y2}px`;
|
|
7863
|
+
div.style.width = `${w2}px`;
|
|
7864
|
+
div.style.height = `${h2}px`;
|
|
7865
|
+
div.style.transform = `rotate(${angle2}deg)`;
|
|
7866
|
+
parent.appendChild(div);
|
|
7867
|
+
return div;
|
|
7868
|
+
};
|
|
7869
|
+
const resetTextArea = (e) => {
|
|
7870
|
+
const { viewScaleInfo, element, groupQueue } = e;
|
|
7871
|
+
const { scale, offsetTop, offsetLeft } = viewScaleInfo;
|
|
7872
|
+
if (canvasWrapper.children) {
|
|
7873
|
+
Array.from(canvasWrapper.children).forEach((child) => {
|
|
7874
|
+
child.remove();
|
|
7875
|
+
});
|
|
7876
|
+
}
|
|
7877
|
+
let parent = canvasWrapper;
|
|
7878
|
+
for (let i = 0; i < groupQueue.length; i++) {
|
|
7879
|
+
const group = groupQueue[i];
|
|
7880
|
+
const { x: x2, y: y2, w: w2, h: h2 } = group;
|
|
7881
|
+
const angle2 = limitAngle(group.angle || 0);
|
|
7882
|
+
const size = {
|
|
7883
|
+
x: x2 * scale,
|
|
7884
|
+
y: y2 * scale,
|
|
7885
|
+
w: w2 * scale,
|
|
7886
|
+
h: h2 * scale,
|
|
7887
|
+
angle: angle2
|
|
7888
|
+
};
|
|
7889
|
+
if (i === 0) {
|
|
7890
|
+
size.x += offsetLeft;
|
|
7891
|
+
size.y += offsetTop;
|
|
7892
|
+
}
|
|
7893
|
+
parent = createBox({ size, parent });
|
|
7894
|
+
}
|
|
7895
|
+
const detail = {
|
|
7896
|
+
...defaultElementDetail,
|
|
7897
|
+
...element.detail
|
|
7898
|
+
};
|
|
7899
|
+
let elemX = element.x * scale + offsetLeft;
|
|
7900
|
+
let elemY = element.y * scale + offsetTop;
|
|
7901
|
+
let elemW = element.w * scale;
|
|
7902
|
+
let elemH = element.h * scale;
|
|
7903
|
+
if (groupQueue.length > 0) {
|
|
7904
|
+
elemX = element.x * scale;
|
|
7905
|
+
elemY = element.y * scale;
|
|
7906
|
+
elemW = element.w * scale;
|
|
7907
|
+
elemH = element.h * scale;
|
|
7908
|
+
}
|
|
7909
|
+
let justifyContent = "center";
|
|
7910
|
+
let alignItems = "center";
|
|
7911
|
+
if (detail.textAlign === "left") {
|
|
7912
|
+
justifyContent = "start";
|
|
7913
|
+
} else if (detail.textAlign === "right") {
|
|
7914
|
+
justifyContent = "end";
|
|
7915
|
+
}
|
|
7916
|
+
if (detail.verticalAlign === "top") {
|
|
7917
|
+
alignItems = "start";
|
|
7918
|
+
} else if (detail.verticalAlign === "bottom") {
|
|
7919
|
+
alignItems = "end";
|
|
7920
|
+
}
|
|
7921
|
+
textarea.style.display = "inline-flex";
|
|
7922
|
+
textarea.style.justifyContent = justifyContent;
|
|
7923
|
+
textarea.style.alignItems = alignItems;
|
|
7924
|
+
textarea.style.position = "absolute";
|
|
7925
|
+
textarea.style.left = `${elemX - 1}px`;
|
|
7926
|
+
textarea.style.top = `${elemY - 1}px`;
|
|
7927
|
+
textarea.style.width = `${elemW + 2}px`;
|
|
7928
|
+
textarea.style.height = `${elemH + 2}px`;
|
|
7929
|
+
textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
|
|
7930
|
+
textarea.style.boxSizing = "border-box";
|
|
7931
|
+
textarea.style.border = "1px solid #1973ba";
|
|
7932
|
+
textarea.style.resize = "none";
|
|
7933
|
+
textarea.style.overflow = "hidden";
|
|
7934
|
+
textarea.style.wordBreak = "break-all";
|
|
7935
|
+
textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
|
|
7936
|
+
textarea.style.background = `${detail.background || "transparent"}`;
|
|
7937
|
+
textarea.style.color = `${detail.color || "#333333"}`;
|
|
7938
|
+
textarea.style.fontSize = `${detail.fontSize * scale}px`;
|
|
7939
|
+
textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
|
|
7940
|
+
textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
|
|
7941
|
+
textarea.style.fontWeight = `${detail.fontWeight}`;
|
|
7942
|
+
textarea.style.padding = "0";
|
|
7943
|
+
textarea.style.margin = "0";
|
|
7944
|
+
textarea.style.outline = "none";
|
|
7945
|
+
textarea.innerText = detail.text || "";
|
|
7946
|
+
parent.appendChild(textarea);
|
|
7947
|
+
};
|
|
7948
|
+
const resetCanvasWrapper = () => {
|
|
7949
|
+
const { left, top, width, height } = getCanvasRect();
|
|
7950
|
+
canvasWrapper.style.position = "absolute";
|
|
7951
|
+
canvasWrapper.style.overflow = "hidden";
|
|
7952
|
+
canvasWrapper.style.top = `${top}px`;
|
|
7953
|
+
canvasWrapper.style.left = `${left}px`;
|
|
7954
|
+
canvasWrapper.style.width = `${width}px`;
|
|
7955
|
+
canvasWrapper.style.height = `${height}px`;
|
|
7956
|
+
};
|
|
7957
|
+
mask.addEventListener("click", () => {
|
|
7958
|
+
hideTextArea();
|
|
7959
|
+
});
|
|
7960
|
+
textarea.addEventListener("click", (e) => {
|
|
7961
|
+
e.stopPropagation();
|
|
7962
|
+
});
|
|
7963
|
+
textarea.addEventListener("input", () => {
|
|
7964
|
+
if (activeElem && activePosition) {
|
|
7965
|
+
activeElem.detail.text = textarea.innerText || "";
|
|
7966
|
+
eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
|
|
7967
|
+
element: {
|
|
7968
|
+
uuid: activeElem.uuid,
|
|
7969
|
+
detail: {
|
|
7970
|
+
text: activeElem.detail.text
|
|
7971
|
+
}
|
|
7972
|
+
},
|
|
7973
|
+
position: [...activePosition || []]
|
|
7974
|
+
});
|
|
7975
|
+
viewer.drawFrame();
|
|
7976
|
+
}
|
|
7977
|
+
});
|
|
7978
|
+
textarea.addEventListener("blur", () => {
|
|
7979
|
+
if (activeElem && activePosition) {
|
|
7980
|
+
eventHub.trigger(coreEventKeys.TEXT_CHANGE, {
|
|
7981
|
+
element: {
|
|
7982
|
+
uuid: activeElem.uuid,
|
|
7983
|
+
detail: {
|
|
7984
|
+
text: activeElem.detail.text
|
|
7985
|
+
}
|
|
7986
|
+
},
|
|
7987
|
+
position: [...activePosition]
|
|
7988
|
+
});
|
|
7989
|
+
}
|
|
7990
|
+
hideTextArea();
|
|
7991
|
+
});
|
|
7992
|
+
textarea.addEventListener("keydown", (e) => {
|
|
7993
|
+
e.stopPropagation();
|
|
7994
|
+
});
|
|
7995
|
+
textarea.addEventListener("keypress", (e) => {
|
|
7996
|
+
e.stopPropagation();
|
|
7997
|
+
});
|
|
7998
|
+
textarea.addEventListener("keyup", (e) => {
|
|
7999
|
+
e.stopPropagation();
|
|
8000
|
+
});
|
|
8001
|
+
textarea.addEventListener("wheel", (e) => {
|
|
8002
|
+
e.stopPropagation();
|
|
8003
|
+
e.preventDefault();
|
|
8004
|
+
});
|
|
8005
|
+
const textEditCallback = (e) => {
|
|
8006
|
+
var _a;
|
|
8007
|
+
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") {
|
|
8008
|
+
activeElem = e.element;
|
|
8009
|
+
activePosition = e.position;
|
|
8010
|
+
}
|
|
8011
|
+
showTextArea(e);
|
|
8012
|
+
};
|
|
8013
|
+
return {
|
|
8014
|
+
name: "@middleware/text-editor",
|
|
8015
|
+
use() {
|
|
8016
|
+
eventHub.on(coreEventKeys.TEXT_EDIT, textEditCallback);
|
|
8017
|
+
},
|
|
8018
|
+
disuse() {
|
|
8019
|
+
eventHub.off(coreEventKeys.TEXT_EDIT, textEditCallback);
|
|
8020
|
+
}
|
|
8021
|
+
};
|
|
8022
|
+
};
|
|
7899
8023
|
const key = "DRAG";
|
|
7900
8024
|
const keyPrevPoint = Symbol(`${key}_prevPoint`);
|
|
7901
8025
|
const MiddlewareDragger = (opts) => {
|
|
@@ -7907,7 +8031,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7907
8031
|
if (isDragging === true) {
|
|
7908
8032
|
return;
|
|
7909
8033
|
}
|
|
7910
|
-
eventHub.trigger(
|
|
8034
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7911
8035
|
type: "drag-default"
|
|
7912
8036
|
});
|
|
7913
8037
|
},
|
|
@@ -7915,7 +8039,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7915
8039
|
const { point } = e;
|
|
7916
8040
|
sharer.setSharedStorage(keyPrevPoint, point);
|
|
7917
8041
|
isDragging = true;
|
|
7918
|
-
eventHub.trigger(
|
|
8042
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7919
8043
|
type: "drag-active"
|
|
7920
8044
|
});
|
|
7921
8045
|
},
|
|
@@ -7933,7 +8057,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7933
8057
|
pointEnd() {
|
|
7934
8058
|
isDragging = false;
|
|
7935
8059
|
sharer.setSharedStorage(keyPrevPoint, null);
|
|
7936
|
-
eventHub.trigger(
|
|
8060
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7937
8061
|
type: "drag-default"
|
|
7938
8062
|
});
|
|
7939
8063
|
}
|
|
@@ -8074,13 +8198,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8074
8198
|
return {
|
|
8075
8199
|
name: "@middleware/info",
|
|
8076
8200
|
beforeDrawFrame({ snapshot }) {
|
|
8077
|
-
var _a;
|
|
8078
8201
|
const { sharedStore } = snapshot;
|
|
8079
8202
|
const selectedElementList = sharedStore[keySelectedElementList];
|
|
8080
|
-
const hoverElement = sharedStore[keyHoverElement];
|
|
8081
8203
|
const actionType = sharedStore[keyActionType];
|
|
8082
8204
|
const groupQueue = sharedStore[keyGroupQueue] || [];
|
|
8083
|
-
if (selectedElementList.length === 1
|
|
8205
|
+
if (selectedElementList.length === 1) {
|
|
8084
8206
|
const elem = selectedElementList[0];
|
|
8085
8207
|
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
8086
8208
|
const viewScaleInfo = getViewScaleInfoFromSnapshot(snapshot);
|
|
@@ -8170,6 +8292,47 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8170
8292
|
}
|
|
8171
8293
|
};
|
|
8172
8294
|
};
|
|
8295
|
+
const MiddlewarePointer = (opts) => {
|
|
8296
|
+
const { boardContent, eventHub, sharer } = opts;
|
|
8297
|
+
const canvas = boardContent.boardContext.canvas;
|
|
8298
|
+
const container = opts.container || document.body;
|
|
8299
|
+
const id = `idraw-middleware-pointer-${Math.random().toString(26).substring(2)}`;
|
|
8300
|
+
const getCanvasRect = () => {
|
|
8301
|
+
const clientRect = canvas.getBoundingClientRect();
|
|
8302
|
+
const { left, top, width, height } = clientRect;
|
|
8303
|
+
return { left, top, width, height };
|
|
8304
|
+
};
|
|
8305
|
+
const contextMenuPointer = document.createElement("div");
|
|
8306
|
+
contextMenuPointer.setAttribute("id", id);
|
|
8307
|
+
contextMenuPointer.style.position = "fixed";
|
|
8308
|
+
contextMenuPointer.style.top = "0";
|
|
8309
|
+
contextMenuPointer.style.bottom = "unset";
|
|
8310
|
+
contextMenuPointer.style.left = "0";
|
|
8311
|
+
contextMenuPointer.style.right = "unset";
|
|
8312
|
+
container.appendChild(contextMenuPointer);
|
|
8313
|
+
return {
|
|
8314
|
+
name: "@middleware/pointer",
|
|
8315
|
+
use() {
|
|
8316
|
+
},
|
|
8317
|
+
disuse() {
|
|
8318
|
+
},
|
|
8319
|
+
pointStart(e) {
|
|
8320
|
+
},
|
|
8321
|
+
pointEnd() {
|
|
8322
|
+
},
|
|
8323
|
+
contextMenu(e) {
|
|
8324
|
+
const { point } = e;
|
|
8325
|
+
const { left, top } = getCanvasRect();
|
|
8326
|
+
contextMenuPointer.style.left = `${left + point.x}px`;
|
|
8327
|
+
contextMenuPointer.style.top = `${top + point.y}px`;
|
|
8328
|
+
const selectedElements = sharer.getSharedStorage(keySelectedElementList);
|
|
8329
|
+
eventHub.trigger(coreEventKeys.CONTEXT_MENU, {
|
|
8330
|
+
pointerContainer: contextMenuPointer,
|
|
8331
|
+
selectedElements: selectedElements || []
|
|
8332
|
+
});
|
|
8333
|
+
}
|
|
8334
|
+
};
|
|
8335
|
+
};
|
|
8173
8336
|
class Core {
|
|
8174
8337
|
constructor(container, opts) {
|
|
8175
8338
|
__privateAdd(this, _initContainer);
|
|
@@ -8287,20 +8450,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8287
8450
|
exports.MiddlewareDragger = MiddlewareDragger;
|
|
8288
8451
|
exports.MiddlewareInfo = MiddlewareInfo;
|
|
8289
8452
|
exports.MiddlewareLayoutSelector = MiddlewareLayoutSelector;
|
|
8453
|
+
exports.MiddlewarePointer = MiddlewarePointer;
|
|
8290
8454
|
exports.MiddlewareRuler = MiddlewareRuler;
|
|
8291
8455
|
exports.MiddlewareScaler = MiddlewareScaler;
|
|
8292
8456
|
exports.MiddlewareScroller = MiddlewareScroller;
|
|
8293
8457
|
exports.MiddlewareSelector = MiddlewareSelector;
|
|
8294
8458
|
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;
|
|
8459
|
+
exports.coreEventKeys = coreEventKeys;
|
|
8304
8460
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8305
8461
|
return exports;
|
|
8306
8462
|
}({});
|