@idraw/core 0.4.0-beta.32 → 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/types.d.ts +2 -2
- 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/draw-wrapper.d.ts +3 -3
- package/dist/esm/middleware/selector/draw-wrapper.js +1 -1
- package/dist/esm/middleware/selector/index.d.ts +1 -2
- package/dist/esm/middleware/selector/index.js +105 -54
- package/dist/esm/middleware/selector/util.d.ts +2 -2
- package/dist/esm/middleware/selector/util.js +4 -4
- 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 +450 -316
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -1209,6 +1209,11 @@ var __privateMethod = (obj, member, method) => {
|
|
|
1209
1209
|
}
|
|
1210
1210
|
return groupQueue;
|
|
1211
1211
|
}
|
|
1212
|
+
function getElementSize(elem) {
|
|
1213
|
+
const { x: x2, y: y2, w: w2, h: h2, angle: angle2 } = elem;
|
|
1214
|
+
const size = { x: x2, y: y2, w: w2, h: h2, angle: angle2 };
|
|
1215
|
+
return size;
|
|
1216
|
+
}
|
|
1212
1217
|
function findElementsFromListByPositions(positions, list) {
|
|
1213
1218
|
const elements = [];
|
|
1214
1219
|
positions.forEach((pos) => {
|
|
@@ -3675,6 +3680,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3675
3680
|
}
|
|
3676
3681
|
});
|
|
3677
3682
|
_BoardWatcher_onContextMenu.set(this, (e) => {
|
|
3683
|
+
if (e.button !== 2) {
|
|
3684
|
+
return;
|
|
3685
|
+
}
|
|
3678
3686
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3679
3687
|
return;
|
|
3680
3688
|
}
|
|
@@ -3683,6 +3691,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3683
3691
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isVaildPoint).call(this, point)) {
|
|
3684
3692
|
return;
|
|
3685
3693
|
}
|
|
3694
|
+
this.trigger("contextMenu", { point });
|
|
3686
3695
|
});
|
|
3687
3696
|
_BoardWatcher_onClick.set(this, (e) => {
|
|
3688
3697
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
@@ -3740,6 +3749,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
3740
3749
|
this.trigger("pointMove", { point });
|
|
3741
3750
|
});
|
|
3742
3751
|
_BoardWatcher_onPointStart.set(this, (e) => {
|
|
3752
|
+
if (e.button !== 0) {
|
|
3753
|
+
return;
|
|
3754
|
+
}
|
|
3743
3755
|
if (!__classPrivateFieldGet$3(this, _BoardWatcher_instances, "m", _BoardWatcher_isInTarget).call(this, e)) {
|
|
3744
3756
|
return;
|
|
3745
3757
|
}
|
|
@@ -4108,7 +4120,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4108
4120
|
throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4109
4121
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4110
4122
|
};
|
|
4111
|
-
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;
|
|
4112
4124
|
class Board {
|
|
4113
4125
|
constructor(opts) {
|
|
4114
4126
|
_Board_instances.add(this);
|
|
@@ -4301,6 +4313,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4301
4313
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("scrollY", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleScrollY).bind(this));
|
|
4302
4314
|
__classPrivateFieldGet(this, _Board_watcher, "f").on("resize", __classPrivateFieldGet(this, _Board_instances, "m", _Board_handleResize).bind(this));
|
|
4303
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));
|
|
4304
4317
|
__classPrivateFieldGet(this, _Board_renderer, "f").on("load", () => {
|
|
4305
4318
|
__classPrivateFieldGet(this, _Board_eventHub, "f").trigger("loadResource");
|
|
4306
4319
|
});
|
|
@@ -4349,6 +4362,15 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4349
4362
|
return;
|
|
4350
4363
|
}
|
|
4351
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
|
+
}
|
|
4352
4374
|
}, _Board_handleWheel = function _Board_handleWheel2(e) {
|
|
4353
4375
|
var _a;
|
|
4354
4376
|
for (let i = 0; i < __classPrivateFieldGet(this, _Board_activeMiddlewareObjs, "f").length; i++) {
|
|
@@ -4437,6 +4459,36 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4437
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==`;
|
|
4438
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`;
|
|
4439
4461
|
const CURSOR_RESIZE_ROTATE = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAIiklEQVRYhe2YW2yUxxmGn7W96zXGNnZsr2FJHQyYBHNIU1ttAqVUVjlJUAtxQyUXhKgQktUDdSUkuEDtBVJ9UQXRC0RJRblrq/SCIARpFImWQ8VBIZQinJpQYozNyWaxiw/rfXsx3+z+6xNOe9tPGv2nOTzzffPPvDMhSXwJC1nKAXIDV/9ellLAqF1T9o5A2Ry7J5A/Fbh3mUMh8qYJ5kHCQATID6QIkBcAHAVGgKFAStq33EB53/ao5Rm064i9g0CmqcDyrNICYCZQBJTYdaa9j1jelDUwCAwAz4F+ex61DhZauXzr1CDwDHhq1wFg2Do1KWAo0NsCAyoDKoGYXcuBWdZY1PKnzAsDQB/wBOg1yKTVN8vqmoHz6nOgC7gHdFrbCasrNRFgyMCj5qVXgDlANfAaMA/4ir2rMI+MtSHgEdAN9BjsiNVZYR0sNq8+AtqB69Z2MuDBcYA+pAXW0yoDWgTUWXrd8k1l+cBcSxjIIBlPB63G8uUB/8Z57znwAkgGAX1YC4BSK7QIWA7UWwoDJJNJzp49y4ULF2hvb6e7u5tEIkFhYSGVlZXMmzePhoYGNmzYQElJCVZv2tPt7e3s2bOHvr4+9u3bx/r16+PWjg/zQ9x4BEk+5UkqklQt6ZuSdkn6jaRbMhsYGFBbW5uWLVvmp5MpU3V1tVpbW9XV1aWgbdy4MZ2npqbGvx6W9DtJ35e0RFJREDBX0gxJcUnfkPQDScck3fGlz549q7q6ummBjU2xWEzvvfdeGvCtt95Kf6uoqAiyfyBpt6SvSZrlAUOSIpLKJS2X9D1Jv5Z025d69913FQqFJmy8rKxMS5YsUUNDg5YvX67Zs2dPCrpjxw6NjIxoxYoV6XdVVVVBwI8l/UTS1yWVesBcC+18SRsk/ULS33yJtra2CRtramrSiRMn1NXVpWQyKUlKpVJ6+vSpTp48qZ07dyo/P39cua1bt6q+vn4ywL9IapX0tqQyDxiRFDPq3ZL+JCklSadOnRrXwMKFC3X69GlNx65du6aVK1eOqyMYjTGAf50IsNC8t1FSm6TPJOn+/fuKxWJZFb/zzjvjBvx0bO/evQqHwxNG4mUe9MtYMZk5bwHA4cOH6enpSc9BixYt4uTJk5SVlflXfcBN4DFuapoHLPQfz58/z9WrVwmFQsTjceLxOHfv3uUlNlZcpFeMEtzsXg2QSCQ4duxYulQoFOLQoUNBuE7gvAE+x82b/VZHyblz52hsbCSZTL4MCGWrqUECq0gQsBi3ts4B+PDDD3n48GG61OrVq1mzZo1/fGZw54HbVmGV1bMAWPbRRx9NC24CwD7cajLiAXNwIS7ELW3lAGfOnMmqZPv27cHHvwM3gH8AnwH/wnn0C+AuwLZt25g/f/5L4cLhMNu2bfOPnbh1+xkZ9UMebvmKGmQEoLOzM11JQUEBK1eu9I/JAFAPTqnk4hTNY9xS1V5TU1N7+fJlOjo6SKXS+jPLJFFUVMTixYsxmJtW/inOi2nAXDI/C0BWeMvKyojFYv6xz1LCKhnCRSEBPMCFfBaQKi0tfb2+vn5qFzp7AnwCXAM+t45mAUJGfgMwOpoWtIRCWZ/89BB8TuJ+lG5cNEatkXYgjtN+BYG2ktaxBE4U3AP+iRsud3EeHCTwk6Ss0IhvtaKiIk3Q19dHb28vhYWF4H6mYtxwiBrQIE4aPTHgIVzoO3E/TzlOV4YD3/stj9eMPj2xzg4HAYMSPQnkxePxNGB/fz+XLl1iy5Yt4HTeq+aZTtyA9h18Yb33G6aRQBqyDiUNLihmH1q54LAZ9ZHKISPRn1loaGxsJGjHjx8PPi6xtAgnNufgVHcRmf1J2DpTiJsjvYout3c5gQ49Ns89s3fpOdB70I+Hx7iBXrV27VqKi4tJJBKAm3auXLmCDfpy4G3rZSHur/aSPg83BCpx24MFuNUlbnkHcGMubEDdxpG0lBn8AcBBsgfsVysqKti6dStHjhwBYGRkhJaWFs6dO0ckEgGYj9v0xIA71rkha7jUgBYCb5hHGRoaIj8/f4Z5s8jafUpmN/diLBwAkmZKWiipSdKvJN2VpI6ODhUVFWUt7Js2bdLAwMBYLdAt6VNJlyV9IumLsRkOHjyo2tparVixQrdvp2Xmn00YrJI0R05VBRV+GjAiqcoUxA8lnfI1HD16dJz6WLVqla5fvz4tFdPZ2anm5uas8s3Nzf7zp5J+LmmNpFcl5U8GmCupWFKtpO9K+qWkG76W3bt3j4OMRqNqaWnRhQsXNDQ0lAWVTCZ169YtHThwQFVVVePKtrS0+Kw3pgsYso+Vkuol7ZD0W0ldvsHW1tZJZXxtba0aGxvV1NSkdevWaenSpYpGoxPmXb9+vXp6ejzgx5J+ZiGeLSk8GaD34ky5Hd23JP1I0h8kPQmGu7y8/L/aNEUiEe3fv1/Dw8Pp6Es6KqlZ0puSXpHbVU4KiPVglqQFkr4j6aeSfi/pvq/13r172rVrlyorK6cFFo1GtXnzZl25ciU4Ch5J+qOkH0v6tqTXzDk5EwGGlNFjOWQOd8px4vUN4E3cpn2pz/jgwQPef/99Ll68yJ07d+jt7WVwcJBIJEJJSQlz586loaGBTZs2UVdXF5w0OoDLwFWcbPsct6r04+bRLHEYCoWyAD1kBDfHleHmsxrccccS3NFHNV/eenBy6iZwCycMOnHz5wBuDh2nyyY6H0zhFmoF7vtxk+l9q3ieQfrDo8msF7cy3cN56g7ZWnKcep7IxnrQmz+wHKu2K3EKJWbPpWSUTQ4ZtRJc23sC6ZGB9ZM52JwcboIQjzUvZvNxYfeHlyVkZFcBbux6wKA6ShjoM5yM8uH0Xpuy8ekAQuZc2W8P8nEei9p9mMmPgAfJHO0O27e0lHppw9MEDJo//A4eoE91iB48SJ80lFMB/t/+V/sPGZfTmtMFR4EAAAAASUVORK5CYII=`;
|
|
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
|
+
});
|
|
4440
4492
|
class Cursor {
|
|
4441
4493
|
constructor(container, opts) {
|
|
4442
4494
|
__privateAdd(this, _init);
|
|
@@ -4470,7 +4522,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4470
4522
|
init_fn = function() {
|
|
4471
4523
|
const eventHub = __privateGet(this, _eventHub);
|
|
4472
4524
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "default");
|
|
4473
|
-
eventHub.on(
|
|
4525
|
+
eventHub.on(coreEventKeys.CURSOR, (e) => {
|
|
4474
4526
|
var _a;
|
|
4475
4527
|
if (e.type === "over-element" || !e.type) {
|
|
4476
4528
|
__privateMethod(this, _resetCursor, resetCursor_fn).call(this, "auto");
|
|
@@ -4578,7 +4630,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4578
4630
|
}
|
|
4579
4631
|
return key2;
|
|
4580
4632
|
};
|
|
4581
|
-
const eventChange = "change";
|
|
4582
4633
|
const key$3 = "SELECT";
|
|
4583
4634
|
const keyActionType = Symbol(`${key$3}_actionType`);
|
|
4584
4635
|
const keyResizeType = Symbol(`${key$3}_resizeType`);
|
|
@@ -4609,10 +4660,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4609
4660
|
lockedColor,
|
|
4610
4661
|
referenceColor
|
|
4611
4662
|
};
|
|
4612
|
-
const middlewareEventSelect = "@middleware/select";
|
|
4613
|
-
const middlewareEventSelectClear = "@middleware/select-clear";
|
|
4614
|
-
const middlewareEventSelectInGroup = "@middleware/select-in-group";
|
|
4615
|
-
const middlewareEventSnapToGrid = "@middleware/snap-to-grid";
|
|
4616
4663
|
function drawVertexes(ctx, vertexes, opts) {
|
|
4617
4664
|
const { borderColor: borderColor2, borderWidth: borderWidth2, background: background2, lineDash } = opts;
|
|
4618
4665
|
ctx.setLineDash([]);
|
|
@@ -4722,7 +4769,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
4722
4769
|
const wrapperOpts = { borderColor: activeColor2, borderWidth: 1, background: "transparent", lineDash: [] };
|
|
4723
4770
|
drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
|
|
4724
4771
|
}
|
|
4725
|
-
function
|
|
4772
|
+
function drawLockedVertexesWrapper(ctx, vertexes, opts) {
|
|
4726
4773
|
if (!vertexes) {
|
|
4727
4774
|
return;
|
|
4728
4775
|
}
|
|
@@ -5502,10 +5549,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5502
5549
|
const endY = Math.max(start.y, end.y);
|
|
5503
5550
|
for (let idx = 0; idx < data.elements.length; idx++) {
|
|
5504
5551
|
const elem = data.elements[idx];
|
|
5505
|
-
if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.
|
|
5552
|
+
if (((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.locked) === true) {
|
|
5506
5553
|
continue;
|
|
5507
5554
|
}
|
|
5508
|
-
const elemSize = calcViewElementSize(elem, { viewScaleInfo
|
|
5555
|
+
const elemSize = calcViewElementSize(elem, { viewScaleInfo });
|
|
5509
5556
|
const center = calcElementCenter(elemSize);
|
|
5510
5557
|
if (center.x >= startX && center.x <= endX && center.y >= startY && center.y <= endY) {
|
|
5511
5558
|
indexes.push(idx);
|
|
@@ -5532,14 +5579,14 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5532
5579
|
return null;
|
|
5533
5580
|
}
|
|
5534
5581
|
const area = { x: 0, y: 0, w: 0, h: 0 };
|
|
5535
|
-
const { viewScaleInfo
|
|
5582
|
+
const { viewScaleInfo } = opts;
|
|
5536
5583
|
let prevElemSize = null;
|
|
5537
5584
|
for (let i = 0; i < elements.length; i++) {
|
|
5538
5585
|
const elem = elements[i];
|
|
5539
5586
|
if ((_a = elem == null ? void 0 : elem.operations) == null ? void 0 : _a.invisible) {
|
|
5540
5587
|
continue;
|
|
5541
5588
|
}
|
|
5542
|
-
const elemSize = calcViewElementSize(elem, { viewScaleInfo
|
|
5589
|
+
const elemSize = calcViewElementSize(elem, { viewScaleInfo });
|
|
5543
5590
|
if (elemSize.angle && (elemSize.angle > 0 || elemSize.angle < 0)) {
|
|
5544
5591
|
const ves = rotateElementVertexes(elemSize);
|
|
5545
5592
|
if (ves.length === 4) {
|
|
@@ -5867,228 +5914,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
5867
5914
|
xLines
|
|
5868
5915
|
};
|
|
5869
5916
|
}
|
|
5870
|
-
const middlewareEventTextEdit = "@middleware/text-edit";
|
|
5871
|
-
const middlewareEventTextChange = "@middleware/text-change";
|
|
5872
|
-
const defaultElementDetail = getDefaultElementDetailConfig();
|
|
5873
|
-
const MiddlewareTextEditor = (opts) => {
|
|
5874
|
-
const { eventHub, boardContent, viewer, sharer } = opts;
|
|
5875
|
-
const canvas = boardContent.boardContext.canvas;
|
|
5876
|
-
const textarea = document.createElement("div");
|
|
5877
|
-
textarea.setAttribute("contenteditable", "true");
|
|
5878
|
-
const canvasWrapper = document.createElement("div");
|
|
5879
|
-
const container = opts.container || document.body;
|
|
5880
|
-
const mask = document.createElement("div");
|
|
5881
|
-
let activeElem = null;
|
|
5882
|
-
let activePosition = [];
|
|
5883
|
-
canvasWrapper.appendChild(textarea);
|
|
5884
|
-
canvasWrapper.style.position = "absolute";
|
|
5885
|
-
mask.appendChild(canvasWrapper);
|
|
5886
|
-
mask.style.position = "fixed";
|
|
5887
|
-
mask.style.top = "0";
|
|
5888
|
-
mask.style.bottom = "0";
|
|
5889
|
-
mask.style.left = "0";
|
|
5890
|
-
mask.style.right = "0";
|
|
5891
|
-
mask.style.display = "none";
|
|
5892
|
-
container.appendChild(mask);
|
|
5893
|
-
const showTextArea = (e) => {
|
|
5894
|
-
resetCanvasWrapper();
|
|
5895
|
-
resetTextArea(e);
|
|
5896
|
-
mask.style.display = "block";
|
|
5897
|
-
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
5898
|
-
sharer.setActiveOverrideElemenentMap({
|
|
5899
|
-
[activeElem.uuid]: {
|
|
5900
|
-
operations: { invisible: true }
|
|
5901
|
-
}
|
|
5902
|
-
});
|
|
5903
|
-
viewer.drawFrame();
|
|
5904
|
-
}
|
|
5905
|
-
};
|
|
5906
|
-
const hideTextArea = () => {
|
|
5907
|
-
if (activeElem == null ? void 0 : activeElem.uuid) {
|
|
5908
|
-
const map = sharer.getActiveOverrideElemenentMap();
|
|
5909
|
-
if (map) {
|
|
5910
|
-
delete map[activeElem.uuid];
|
|
5911
|
-
}
|
|
5912
|
-
sharer.setActiveOverrideElemenentMap(map);
|
|
5913
|
-
viewer.drawFrame();
|
|
5914
|
-
}
|
|
5915
|
-
mask.style.display = "none";
|
|
5916
|
-
activeElem = null;
|
|
5917
|
-
activePosition = [];
|
|
5918
|
-
};
|
|
5919
|
-
const getCanvasRect = () => {
|
|
5920
|
-
const clientRect = canvas.getBoundingClientRect();
|
|
5921
|
-
const { left, top, width, height } = clientRect;
|
|
5922
|
-
return { left, top, width, height };
|
|
5923
|
-
};
|
|
5924
|
-
const createBox = (opts2) => {
|
|
5925
|
-
const { size, parent } = opts2;
|
|
5926
|
-
const div = document.createElement("div");
|
|
5927
|
-
const { x: x2, y: y2, w: w2, h: h2 } = size;
|
|
5928
|
-
const angle2 = limitAngle(size.angle || 0);
|
|
5929
|
-
div.style.position = "absolute";
|
|
5930
|
-
div.style.left = `${x2}px`;
|
|
5931
|
-
div.style.top = `${y2}px`;
|
|
5932
|
-
div.style.width = `${w2}px`;
|
|
5933
|
-
div.style.height = `${h2}px`;
|
|
5934
|
-
div.style.transform = `rotate(${angle2}deg)`;
|
|
5935
|
-
parent.appendChild(div);
|
|
5936
|
-
return div;
|
|
5937
|
-
};
|
|
5938
|
-
const resetTextArea = (e) => {
|
|
5939
|
-
const { viewScaleInfo, element, groupQueue } = e;
|
|
5940
|
-
const { scale, offsetTop, offsetLeft } = viewScaleInfo;
|
|
5941
|
-
if (canvasWrapper.children) {
|
|
5942
|
-
Array.from(canvasWrapper.children).forEach((child) => {
|
|
5943
|
-
child.remove();
|
|
5944
|
-
});
|
|
5945
|
-
}
|
|
5946
|
-
let parent = canvasWrapper;
|
|
5947
|
-
for (let i = 0; i < groupQueue.length; i++) {
|
|
5948
|
-
const group = groupQueue[i];
|
|
5949
|
-
const { x: x2, y: y2, w: w2, h: h2 } = group;
|
|
5950
|
-
const angle2 = limitAngle(group.angle || 0);
|
|
5951
|
-
const size = {
|
|
5952
|
-
x: x2 * scale,
|
|
5953
|
-
y: y2 * scale,
|
|
5954
|
-
w: w2 * scale,
|
|
5955
|
-
h: h2 * scale,
|
|
5956
|
-
angle: angle2
|
|
5957
|
-
};
|
|
5958
|
-
if (i === 0) {
|
|
5959
|
-
size.x += offsetLeft;
|
|
5960
|
-
size.y += offsetTop;
|
|
5961
|
-
}
|
|
5962
|
-
parent = createBox({ size, parent });
|
|
5963
|
-
}
|
|
5964
|
-
const detail = {
|
|
5965
|
-
...defaultElementDetail,
|
|
5966
|
-
...element.detail
|
|
5967
|
-
};
|
|
5968
|
-
let elemX = element.x * scale + offsetLeft;
|
|
5969
|
-
let elemY = element.y * scale + offsetTop;
|
|
5970
|
-
let elemW = element.w * scale;
|
|
5971
|
-
let elemH = element.h * scale;
|
|
5972
|
-
if (groupQueue.length > 0) {
|
|
5973
|
-
elemX = element.x * scale;
|
|
5974
|
-
elemY = element.y * scale;
|
|
5975
|
-
elemW = element.w * scale;
|
|
5976
|
-
elemH = element.h * scale;
|
|
5977
|
-
}
|
|
5978
|
-
let justifyContent = "center";
|
|
5979
|
-
let alignItems = "center";
|
|
5980
|
-
if (detail.textAlign === "left") {
|
|
5981
|
-
justifyContent = "start";
|
|
5982
|
-
} else if (detail.textAlign === "right") {
|
|
5983
|
-
justifyContent = "end";
|
|
5984
|
-
}
|
|
5985
|
-
if (detail.verticalAlign === "top") {
|
|
5986
|
-
alignItems = "start";
|
|
5987
|
-
} else if (detail.verticalAlign === "bottom") {
|
|
5988
|
-
alignItems = "end";
|
|
5989
|
-
}
|
|
5990
|
-
textarea.style.display = "inline-flex";
|
|
5991
|
-
textarea.style.justifyContent = justifyContent;
|
|
5992
|
-
textarea.style.alignItems = alignItems;
|
|
5993
|
-
textarea.style.position = "absolute";
|
|
5994
|
-
textarea.style.left = `${elemX - 1}px`;
|
|
5995
|
-
textarea.style.top = `${elemY - 1}px`;
|
|
5996
|
-
textarea.style.width = `${elemW + 2}px`;
|
|
5997
|
-
textarea.style.height = `${elemH + 2}px`;
|
|
5998
|
-
textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
|
|
5999
|
-
textarea.style.boxSizing = "border-box";
|
|
6000
|
-
textarea.style.border = "1px solid #1973ba";
|
|
6001
|
-
textarea.style.resize = "none";
|
|
6002
|
-
textarea.style.overflow = "hidden";
|
|
6003
|
-
textarea.style.wordBreak = "break-all";
|
|
6004
|
-
textarea.style.borderRadius = `${(typeof detail.borderRadius === "number" ? detail.borderRadius : 0) * scale}px`;
|
|
6005
|
-
textarea.style.background = `${detail.background || "transparent"}`;
|
|
6006
|
-
textarea.style.color = `${detail.color || "#333333"}`;
|
|
6007
|
-
textarea.style.fontSize = `${detail.fontSize * scale}px`;
|
|
6008
|
-
textarea.style.lineHeight = `${(detail.lineHeight || detail.fontSize) * scale}px`;
|
|
6009
|
-
textarea.style.fontFamily = enhanceFontFamliy(detail.fontFamily);
|
|
6010
|
-
textarea.style.fontWeight = `${detail.fontWeight}`;
|
|
6011
|
-
textarea.style.padding = "0";
|
|
6012
|
-
textarea.style.margin = "0";
|
|
6013
|
-
textarea.style.outline = "none";
|
|
6014
|
-
textarea.innerText = detail.text || "";
|
|
6015
|
-
parent.appendChild(textarea);
|
|
6016
|
-
};
|
|
6017
|
-
const resetCanvasWrapper = () => {
|
|
6018
|
-
const { left, top, width, height } = getCanvasRect();
|
|
6019
|
-
canvasWrapper.style.position = "absolute";
|
|
6020
|
-
canvasWrapper.style.overflow = "hidden";
|
|
6021
|
-
canvasWrapper.style.top = `${top}px`;
|
|
6022
|
-
canvasWrapper.style.left = `${left}px`;
|
|
6023
|
-
canvasWrapper.style.width = `${width}px`;
|
|
6024
|
-
canvasWrapper.style.height = `${height}px`;
|
|
6025
|
-
};
|
|
6026
|
-
mask.addEventListener("click", () => {
|
|
6027
|
-
hideTextArea();
|
|
6028
|
-
});
|
|
6029
|
-
textarea.addEventListener("click", (e) => {
|
|
6030
|
-
e.stopPropagation();
|
|
6031
|
-
});
|
|
6032
|
-
textarea.addEventListener("input", () => {
|
|
6033
|
-
if (activeElem && activePosition) {
|
|
6034
|
-
activeElem.detail.text = textarea.innerText || "";
|
|
6035
|
-
eventHub.trigger(middlewareEventTextChange, {
|
|
6036
|
-
element: {
|
|
6037
|
-
uuid: activeElem.uuid,
|
|
6038
|
-
detail: {
|
|
6039
|
-
text: activeElem.detail.text
|
|
6040
|
-
}
|
|
6041
|
-
},
|
|
6042
|
-
position: [...activePosition || []]
|
|
6043
|
-
});
|
|
6044
|
-
viewer.drawFrame();
|
|
6045
|
-
}
|
|
6046
|
-
});
|
|
6047
|
-
textarea.addEventListener("blur", () => {
|
|
6048
|
-
if (activeElem && activePosition) {
|
|
6049
|
-
eventHub.trigger(middlewareEventTextChange, {
|
|
6050
|
-
element: {
|
|
6051
|
-
uuid: activeElem.uuid,
|
|
6052
|
-
detail: {
|
|
6053
|
-
text: activeElem.detail.text
|
|
6054
|
-
}
|
|
6055
|
-
},
|
|
6056
|
-
position: [...activePosition]
|
|
6057
|
-
});
|
|
6058
|
-
}
|
|
6059
|
-
hideTextArea();
|
|
6060
|
-
});
|
|
6061
|
-
textarea.addEventListener("keydown", (e) => {
|
|
6062
|
-
e.stopPropagation();
|
|
6063
|
-
});
|
|
6064
|
-
textarea.addEventListener("keypress", (e) => {
|
|
6065
|
-
e.stopPropagation();
|
|
6066
|
-
});
|
|
6067
|
-
textarea.addEventListener("keyup", (e) => {
|
|
6068
|
-
e.stopPropagation();
|
|
6069
|
-
});
|
|
6070
|
-
textarea.addEventListener("wheel", (e) => {
|
|
6071
|
-
e.stopPropagation();
|
|
6072
|
-
e.preventDefault();
|
|
6073
|
-
});
|
|
6074
|
-
const textEditCallback = (e) => {
|
|
6075
|
-
var _a;
|
|
6076
|
-
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") {
|
|
6077
|
-
activeElem = e.element;
|
|
6078
|
-
activePosition = e.position;
|
|
6079
|
-
}
|
|
6080
|
-
showTextArea(e);
|
|
6081
|
-
};
|
|
6082
|
-
return {
|
|
6083
|
-
name: "@middleware/text-editor",
|
|
6084
|
-
use() {
|
|
6085
|
-
eventHub.on(middlewareEventTextEdit, textEditCallback);
|
|
6086
|
-
},
|
|
6087
|
-
disuse() {
|
|
6088
|
-
eventHub.off(middlewareEventTextEdit, textEditCallback);
|
|
6089
|
-
}
|
|
6090
|
-
};
|
|
6091
|
-
};
|
|
6092
5917
|
const key$2 = "LAYOUT_SELECT";
|
|
6093
5918
|
const keyLayoutActionType = Symbol(`${key$2}_layoutActionType`);
|
|
6094
5919
|
const keyLayoutControlType = Symbol(`${key$2}_layoutControlType`);
|
|
@@ -6255,7 +6080,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6255
6080
|
}
|
|
6256
6081
|
if (layoutControlType) {
|
|
6257
6082
|
sharer.setSharedStorage(keyLayoutControlType, layoutControlType);
|
|
6258
|
-
eventHub.trigger(
|
|
6083
|
+
eventHub.trigger(coreEventKeys.CLEAR_SELECT);
|
|
6259
6084
|
return layoutControlType;
|
|
6260
6085
|
}
|
|
6261
6086
|
}
|
|
@@ -6266,7 +6091,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6266
6091
|
if (isBusy === true) {
|
|
6267
6092
|
return;
|
|
6268
6093
|
}
|
|
6269
|
-
eventHub.trigger(
|
|
6094
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6270
6095
|
type: controlType ? `resize-${controlType}` : controlType,
|
|
6271
6096
|
groupQueue: [],
|
|
6272
6097
|
element: getLayoutSize()
|
|
@@ -6440,7 +6265,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6440
6265
|
const layoutControlType = sharer.getSharedStorage(keyLayoutControlType);
|
|
6441
6266
|
const data = sharer.getActiveStorage("data");
|
|
6442
6267
|
if (data && layoutActionType === "resize" && layoutControlType) {
|
|
6443
|
-
eventHub.trigger(
|
|
6268
|
+
eventHub.trigger(coreEventKeys.CHANGE, {
|
|
6444
6269
|
type: "changeLayout",
|
|
6445
6270
|
data
|
|
6446
6271
|
});
|
|
@@ -6490,6 +6315,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6490
6315
|
const { viewer, sharer, boardContent, calculator, eventHub } = opts;
|
|
6491
6316
|
const { overlayContext } = boardContent;
|
|
6492
6317
|
let prevPoint = null;
|
|
6318
|
+
let moveOriginalStartPoint = null;
|
|
6319
|
+
let moveOriginalStartElementSize = null;
|
|
6493
6320
|
let inBusyMode = null;
|
|
6494
6321
|
sharer.setSharedStorage(keyActionType, null);
|
|
6495
6322
|
sharer.setSharedStorage(keyEnableSnapToGrid, true);
|
|
@@ -6541,7 +6368,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6541
6368
|
sharer.setSharedStorage(keySelectedElementPosition, []);
|
|
6542
6369
|
}
|
|
6543
6370
|
if ((opts2 == null ? void 0 : opts2.triggerEvent) === true) {
|
|
6544
|
-
eventHub.trigger(
|
|
6371
|
+
eventHub.trigger(coreEventKeys.SELECT, { uuids: list.map((elem) => elem.uuid), positions: [] });
|
|
6545
6372
|
}
|
|
6546
6373
|
};
|
|
6547
6374
|
const pointTargetBaseOptions = () => {
|
|
@@ -6574,7 +6401,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6574
6401
|
sharer.setSharedStorage(keyIsMoving, null);
|
|
6575
6402
|
};
|
|
6576
6403
|
clear();
|
|
6577
|
-
const selectCallback = ({ uuids, positions }) => {
|
|
6404
|
+
const selectCallback = ({ uuids = [], positions }) => {
|
|
6578
6405
|
let elements = [];
|
|
6579
6406
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
6580
6407
|
const data = sharer.getActiveStorage("data");
|
|
@@ -6611,16 +6438,16 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6611
6438
|
return {
|
|
6612
6439
|
name: "@middleware/selector",
|
|
6613
6440
|
use() {
|
|
6614
|
-
eventHub.on(
|
|
6615
|
-
eventHub.on(
|
|
6616
|
-
eventHub.on(
|
|
6617
|
-
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);
|
|
6618
6445
|
},
|
|
6619
6446
|
disuse() {
|
|
6620
|
-
eventHub.off(
|
|
6621
|
-
eventHub.off(
|
|
6622
|
-
eventHub.off(
|
|
6623
|
-
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);
|
|
6624
6451
|
},
|
|
6625
6452
|
hover: (e) => {
|
|
6626
6453
|
var _a, _b, _c, _d, _e;
|
|
@@ -6634,7 +6461,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6634
6461
|
}
|
|
6635
6462
|
const cursor = target2.type;
|
|
6636
6463
|
if (inBusyMode === null) {
|
|
6637
|
-
eventHub.trigger(
|
|
6464
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
6638
6465
|
type: cursor,
|
|
6639
6466
|
groupQueue: target2.groupQueue,
|
|
6640
6467
|
element: target2.elements[0]
|
|
@@ -6715,8 +6542,9 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6715
6542
|
}
|
|
6716
6543
|
},
|
|
6717
6544
|
pointStart: (e) => {
|
|
6718
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
6545
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
6719
6546
|
prevPoint = e.point;
|
|
6547
|
+
moveOriginalStartPoint = e.point;
|
|
6720
6548
|
const groupQueue = sharer.getSharedStorage(keyGroupQueue);
|
|
6721
6549
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
6722
6550
|
if (isPointInViewActiveGroup(e.point, {
|
|
@@ -6726,15 +6554,17 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6726
6554
|
groupQueue
|
|
6727
6555
|
})) {
|
|
6728
6556
|
const target2 = getPointTarget(e.point, pointTargetBaseOptions());
|
|
6729
|
-
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
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);
|
|
6559
|
+
if (((_d = target2 == null ? void 0 : target2.elements) == null ? void 0 : _d.length) === 1) {
|
|
6560
|
+
moveOriginalStartElementSize = getElementSize(target2 == null ? void 0 : target2.elements[0]);
|
|
6733
6561
|
}
|
|
6734
|
-
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) {
|
|
6735
6565
|
updateSelectedElementList([target2.elements[0]], { triggerEvent: true });
|
|
6736
6566
|
sharer.setSharedStorage(keyActionType, "drag");
|
|
6737
|
-
} else if ((
|
|
6567
|
+
} else if ((_f = target2.type) == null ? void 0 : _f.startsWith("resize-")) {
|
|
6738
6568
|
sharer.setSharedStorage(keyResizeType, target2.type);
|
|
6739
6569
|
sharer.setSharedStorage(keyActionType, "resize");
|
|
6740
6570
|
} else {
|
|
@@ -6756,17 +6586,22 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6756
6586
|
areaSize: listAreaSize,
|
|
6757
6587
|
groupQueue: []
|
|
6758
6588
|
});
|
|
6759
|
-
|
|
6760
|
-
|
|
6761
|
-
|
|
6762
|
-
|
|
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;
|
|
6590
|
+
updateHoverElement(null);
|
|
6591
|
+
if (((_j = target == null ? void 0 : target.elements) == null ? void 0 : _j.length) === 1) {
|
|
6592
|
+
moveOriginalStartElementSize = getElementSize(target == null ? void 0 : target.elements[0]);
|
|
6763
6593
|
}
|
|
6764
|
-
if (
|
|
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") {
|
|
6765
6600
|
sharer.setSharedStorage(keyActionType, "drag-list");
|
|
6766
|
-
} else if (target.type === "over-element" && ((
|
|
6601
|
+
} else if (target.type === "over-element" && ((_k = target == null ? void 0 : target.elements) == null ? void 0 : _k.length) === 1) {
|
|
6767
6602
|
updateSelectedElementList([target.elements[0]], { triggerEvent: true });
|
|
6768
6603
|
sharer.setSharedStorage(keyActionType, "drag");
|
|
6769
|
-
} else if ((
|
|
6604
|
+
} else if ((_l = target.type) == null ? void 0 : _l.startsWith("resize-")) {
|
|
6770
6605
|
sharer.setSharedStorage(keyResizeType, target.type);
|
|
6771
6606
|
sharer.setSharedStorage(keyActionType, "resize");
|
|
6772
6607
|
} else {
|
|
@@ -6786,6 +6621,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6786
6621
|
const viewScaleInfo = sharer.getActiveViewScaleInfo();
|
|
6787
6622
|
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
6788
6623
|
const start = prevPoint;
|
|
6624
|
+
const originalStart = moveOriginalStartPoint;
|
|
6789
6625
|
const end = e.point;
|
|
6790
6626
|
const resizeType = sharer.getSharedStorage(keyResizeType);
|
|
6791
6627
|
const actionType = sharer.getSharedStorage(keyActionType);
|
|
@@ -6793,8 +6629,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6793
6629
|
const enableSnapToGrid = sharer.getSharedStorage(keyEnableSnapToGrid);
|
|
6794
6630
|
if (actionType === "drag") {
|
|
6795
6631
|
inBusyMode = "drag";
|
|
6796
|
-
if (data && (elems == null ? void 0 : elems.length) === 1 &&
|
|
6797
|
-
const { moveX, moveY } = calcMoveInGroup(
|
|
6632
|
+
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) {
|
|
6633
|
+
const { moveX, moveY } = calcMoveInGroup(originalStart, end, groupQueue);
|
|
6798
6634
|
let totalMoveX = calculator.toGridNum(moveX / scale);
|
|
6799
6635
|
let totalMoveY = calculator.toGridNum(moveY / scale);
|
|
6800
6636
|
if (enableSnapToGrid === true) {
|
|
@@ -6818,8 +6654,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6818
6654
|
console.error(err);
|
|
6819
6655
|
}
|
|
6820
6656
|
}
|
|
6821
|
-
elems[0].x = calculator.toGridNum(
|
|
6822
|
-
elems[0].y = calculator.toGridNum(
|
|
6657
|
+
elems[0].x = calculator.toGridNum(moveOriginalStartElementSize.x + totalMoveX);
|
|
6658
|
+
elems[0].y = calculator.toGridNum(moveOriginalStartElementSize.y + totalMoveY);
|
|
6823
6659
|
updateSelectedElementList([elems[0]]);
|
|
6824
6660
|
calculator.modifyViewVisibleInfoMap(data, {
|
|
6825
6661
|
modifyOptions: {
|
|
@@ -6836,12 +6672,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6836
6672
|
viewer.drawFrame();
|
|
6837
6673
|
} else if (actionType === "drag-list") {
|
|
6838
6674
|
inBusyMode = "drag-list";
|
|
6839
|
-
if (data && start && end && (elems == null ? void 0 : elems.length) > 1) {
|
|
6675
|
+
if (data && originalStart && start && end && (elems == null ? void 0 : elems.length) > 1) {
|
|
6840
6676
|
const moveX = (end.x - start.x) / scale;
|
|
6841
6677
|
const moveY = (end.y - start.y) / scale;
|
|
6842
6678
|
elems.forEach((elem) => {
|
|
6843
6679
|
var _a2;
|
|
6844
|
-
if (elem && ((_a2 = elem == null ? void 0 : elem.operations) == null ? void 0 : _a2.
|
|
6680
|
+
if (elem && ((_a2 = elem == null ? void 0 : elem.operations) == null ? void 0 : _a2.locked) !== true) {
|
|
6845
6681
|
elem.x = calculator.toGridNum(elem.x + moveX);
|
|
6846
6682
|
elem.y = calculator.toGridNum(elem.y + moveY);
|
|
6847
6683
|
calculator.modifyViewVisibleInfoMap(data, {
|
|
@@ -6861,7 +6697,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6861
6697
|
}
|
|
6862
6698
|
viewer.drawFrame();
|
|
6863
6699
|
} else if (actionType === "resize") {
|
|
6864
|
-
if (data && (elems == null ? void 0 : elems.length) === 1 &&
|
|
6700
|
+
if (data && (elems == null ? void 0 : elems.length) === 1 && originalStart && moveOriginalStartElementSize && (resizeType == null ? void 0 : resizeType.startsWith("resize-"))) {
|
|
6865
6701
|
inBusyMode = "resize";
|
|
6866
6702
|
const pointGroupQueue = [];
|
|
6867
6703
|
groupQueue.forEach((group) => {
|
|
@@ -6874,10 +6710,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6874
6710
|
angle: 0 - angle2
|
|
6875
6711
|
});
|
|
6876
6712
|
});
|
|
6877
|
-
let resizeStart =
|
|
6713
|
+
let resizeStart = originalStart;
|
|
6878
6714
|
let resizeEnd = end;
|
|
6879
6715
|
if (groupQueue.length > 0) {
|
|
6880
|
-
resizeStart = rotatePointInGroup(
|
|
6716
|
+
resizeStart = rotatePointInGroup(originalStart, pointGroupQueue);
|
|
6881
6717
|
resizeEnd = rotatePointInGroup(end, pointGroupQueue);
|
|
6882
6718
|
}
|
|
6883
6719
|
if (resizeType === "resize-rotate") {
|
|
@@ -6889,19 +6725,19 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6889
6725
|
controller.bottomRight.center
|
|
6890
6726
|
];
|
|
6891
6727
|
const viewCenter = calcElementCenterFromVertexes(viewVertexes);
|
|
6892
|
-
const resizedElemSize = rotateElement(
|
|
6728
|
+
const resizedElemSize = rotateElement(moveOriginalStartElementSize, {
|
|
6893
6729
|
center: viewCenter,
|
|
6894
6730
|
viewScaleInfo,
|
|
6895
6731
|
viewSizeInfo,
|
|
6896
|
-
start,
|
|
6732
|
+
start: originalStart,
|
|
6897
6733
|
end,
|
|
6898
6734
|
resizeType,
|
|
6899
6735
|
sharer
|
|
6900
6736
|
});
|
|
6901
6737
|
elems[0].angle = calculator.toGridNum(resizedElemSize.angle || 0);
|
|
6902
6738
|
} else {
|
|
6903
|
-
const resizedElemSize = resizeElement(
|
|
6904
|
-
const calcOpts = { ignore: !!
|
|
6739
|
+
const resizedElemSize = resizeElement(moveOriginalStartElementSize, { scale, start: resizeStart, end: resizeEnd, resizeType, sharer });
|
|
6740
|
+
const calcOpts = { ignore: !!moveOriginalStartElementSize.angle };
|
|
6905
6741
|
elems[0].x = calculator.toGridNum(resizedElemSize.x, calcOpts);
|
|
6906
6742
|
elems[0].y = calculator.toGridNum(resizedElemSize.y, calcOpts);
|
|
6907
6743
|
if (elems[0].type === "group" && ((_c = elems[0].operations) == null ? void 0 : _c.deepResize) === true) {
|
|
@@ -6946,6 +6782,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
6946
6782
|
const viewSizeInfo = sharer.getActiveViewSizeInfo();
|
|
6947
6783
|
let needDrawFrame = false;
|
|
6948
6784
|
prevPoint = null;
|
|
6785
|
+
moveOriginalStartPoint = null;
|
|
6786
|
+
moveOriginalStartElementSize = null;
|
|
6949
6787
|
if (actionType === "resize" && resizeType) {
|
|
6950
6788
|
sharer.setSharedStorage(keyResizeType, null);
|
|
6951
6789
|
needDrawFrame = true;
|
|
@@ -7000,7 +6838,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7000
6838
|
}
|
|
7001
6839
|
if (data && ["drag", "drag-list", "drag-list-end", "resize"].includes(actionType)) {
|
|
7002
6840
|
let type = "dragElement";
|
|
7003
|
-
eventHub.trigger(
|
|
6841
|
+
eventHub.trigger(coreEventKeys.CHANGE, { data, type, selectedElements, hoverElement });
|
|
7004
6842
|
}
|
|
7005
6843
|
viewer.drawFrame();
|
|
7006
6844
|
};
|
|
@@ -7008,6 +6846,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7008
6846
|
},
|
|
7009
6847
|
pointLeave() {
|
|
7010
6848
|
prevPoint = null;
|
|
6849
|
+
moveOriginalStartPoint = null;
|
|
6850
|
+
moveOriginalStartElementSize = null;
|
|
7011
6851
|
clear();
|
|
7012
6852
|
viewer.drawFrame();
|
|
7013
6853
|
},
|
|
@@ -7019,7 +6859,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7019
6859
|
const target = getPointTarget(e.point, pointTargetBaseOptions());
|
|
7020
6860
|
sharer.setSharedStorage(keySelectedElementController, null);
|
|
7021
6861
|
sharer.setSharedStorage(keySelectedElementList, []);
|
|
7022
|
-
if (target.elements.length === 1 && ((_b = (_a = target.elements[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.
|
|
6862
|
+
if (target.elements.length === 1 && ((_b = (_a = target.elements[0]) == null ? void 0 : _a.operations) == null ? void 0 : _b.locked) === true) {
|
|
7023
6863
|
return;
|
|
7024
6864
|
}
|
|
7025
6865
|
if (target.elements.length === 1 && ((_c = target.elements[0]) == null ? void 0 : _c.type) === "group") {
|
|
@@ -7030,7 +6870,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7030
6870
|
return;
|
|
7031
6871
|
}
|
|
7032
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)) {
|
|
7033
|
-
eventHub.trigger(
|
|
6873
|
+
eventHub.trigger(coreEventKeys.TEXT_EDIT, {
|
|
7034
6874
|
element: target.elements[0],
|
|
7035
6875
|
groupQueue: sharer.getSharedStorage(keyGroupQueue) || [],
|
|
7036
6876
|
position: getElementPositionFromList((_g = target.elements[0]) == null ? void 0 : _g.uuid, ((_h = sharer.getActiveStorage("data")) == null ? void 0 : _h.elements) || []),
|
|
@@ -7039,19 +6879,59 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7039
6879
|
}
|
|
7040
6880
|
sharer.setSharedStorage(keyActionType, null);
|
|
7041
6881
|
},
|
|
7042
|
-
|
|
7043
|
-
var _a;
|
|
7044
|
-
const
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
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];
|
|
7055
6935
|
const areaEnd = sharedStore[keyAreaEnd];
|
|
7056
6936
|
const groupQueue = sharedStore[keyGroupQueue];
|
|
7057
6937
|
const groupQueueVertexesList = sharedStore[keyGroupQueueVertexesList];
|
|
@@ -7063,12 +6943,12 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7063
6943
|
controllerSize: 10,
|
|
7064
6944
|
viewScaleInfo
|
|
7065
6945
|
}) : null;
|
|
7066
|
-
const
|
|
6946
|
+
const isHoverLocked = !!((_a = hoverElement == null ? void 0 : hoverElement.operations) == null ? void 0 : _a.locked);
|
|
7067
6947
|
if ((groupQueue == null ? void 0 : groupQueue.length) > 0) {
|
|
7068
6948
|
drawGroupQueueVertexesWrappers(overlayContext, groupQueueVertexesList, drawBaseOpts);
|
|
7069
6949
|
if (hoverElement && actionType !== "drag") {
|
|
7070
|
-
if (
|
|
7071
|
-
|
|
6950
|
+
if (isHoverLocked) {
|
|
6951
|
+
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7072
6952
|
...drawBaseOpts,
|
|
7073
6953
|
controller: calcElementSizeController(hoverElement, {
|
|
7074
6954
|
groupQueue,
|
|
@@ -7081,7 +6961,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7081
6961
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7082
6962
|
}
|
|
7083
6963
|
}
|
|
7084
|
-
if (
|
|
6964
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7085
6965
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7086
6966
|
...drawBaseOpts,
|
|
7087
6967
|
element: elem,
|
|
@@ -7113,8 +6993,8 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7113
6993
|
}
|
|
7114
6994
|
} else {
|
|
7115
6995
|
if (hoverElement && actionType !== "drag") {
|
|
7116
|
-
if (
|
|
7117
|
-
|
|
6996
|
+
if (isHoverLocked) {
|
|
6997
|
+
drawLockedVertexesWrapper(overlayContext, hoverElementVertexes, {
|
|
7118
6998
|
...drawBaseOpts,
|
|
7119
6999
|
controller: calcElementSizeController(hoverElement, {
|
|
7120
7000
|
groupQueue,
|
|
@@ -7127,7 +7007,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7127
7007
|
drawHoverVertexesWrapper(overlayContext, hoverElementVertexes, drawBaseOpts);
|
|
7128
7008
|
}
|
|
7129
7009
|
}
|
|
7130
|
-
if (
|
|
7010
|
+
if (elem && ["select", "drag", "resize"].includes(actionType)) {
|
|
7131
7011
|
drawSelectedElementControllersVertexes(overlayContext, selectedElementController, {
|
|
7132
7012
|
...drawBaseOpts,
|
|
7133
7013
|
element: elem,
|
|
@@ -7460,7 +7340,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7460
7340
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
7461
7341
|
sharer.setSharedStorage(keyHoverYThumbRect, true);
|
|
7462
7342
|
}
|
|
7463
|
-
eventHub.trigger(
|
|
7343
|
+
eventHub.trigger(coreEventKeys.CURSOR, { type: "default" });
|
|
7464
7344
|
return false;
|
|
7465
7345
|
}
|
|
7466
7346
|
sharer.setSharedStorage(keyHoverXThumbRect, false);
|
|
@@ -7507,7 +7387,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7507
7387
|
}
|
|
7508
7388
|
};
|
|
7509
7389
|
};
|
|
7510
|
-
const middlewareEventScale = "@middleware/scale";
|
|
7511
7390
|
const MiddlewareScaler = (opts) => {
|
|
7512
7391
|
const { viewer, sharer, eventHub } = opts;
|
|
7513
7392
|
const maxScale = 50;
|
|
@@ -7530,7 +7409,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7530
7409
|
viewer.scroll({ moveX, moveY });
|
|
7531
7410
|
viewer.drawFrame();
|
|
7532
7411
|
const scaleNum = formatNumber(scale);
|
|
7533
|
-
eventHub.trigger(
|
|
7412
|
+
eventHub.trigger(coreEventKeys.SCALE, { scale: scaleNum });
|
|
7534
7413
|
}
|
|
7535
7414
|
};
|
|
7536
7415
|
};
|
|
@@ -7808,7 +7687,6 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7808
7687
|
ctx.fill();
|
|
7809
7688
|
}
|
|
7810
7689
|
}
|
|
7811
|
-
const middlewareEventRuler = "@middleware/show-ruler";
|
|
7812
7690
|
const MiddlewareRuler = (opts, config) => {
|
|
7813
7691
|
const { boardContent, viewer, eventHub, calculator } = opts;
|
|
7814
7692
|
const { overlayContext, underlayContext } = boardContent;
|
|
@@ -7842,10 +7720,10 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7842
7720
|
return {
|
|
7843
7721
|
name: "@middleware/ruler",
|
|
7844
7722
|
use() {
|
|
7845
|
-
eventHub.on(
|
|
7723
|
+
eventHub.on(coreEventKeys.RULER, rulerCallback);
|
|
7846
7724
|
},
|
|
7847
7725
|
disuse() {
|
|
7848
|
-
eventHub.off(
|
|
7726
|
+
eventHub.off(coreEventKeys.RULER, rulerCallback);
|
|
7849
7727
|
},
|
|
7850
7728
|
beforeDrawFrame: ({ snapshot }) => {
|
|
7851
7729
|
if (show === true) {
|
|
@@ -7871,6 +7749,228 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7871
7749
|
}
|
|
7872
7750
|
};
|
|
7873
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
|
+
};
|
|
7874
7974
|
const key = "DRAG";
|
|
7875
7975
|
const keyPrevPoint = Symbol(`${key}_prevPoint`);
|
|
7876
7976
|
const MiddlewareDragger = (opts) => {
|
|
@@ -7882,7 +7982,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7882
7982
|
if (isDragging === true) {
|
|
7883
7983
|
return;
|
|
7884
7984
|
}
|
|
7885
|
-
eventHub.trigger(
|
|
7985
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7886
7986
|
type: "drag-default"
|
|
7887
7987
|
});
|
|
7888
7988
|
},
|
|
@@ -7890,7 +7990,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7890
7990
|
const { point } = e;
|
|
7891
7991
|
sharer.setSharedStorage(keyPrevPoint, point);
|
|
7892
7992
|
isDragging = true;
|
|
7893
|
-
eventHub.trigger(
|
|
7993
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7894
7994
|
type: "drag-active"
|
|
7895
7995
|
});
|
|
7896
7996
|
},
|
|
@@ -7908,7 +8008,7 @@ var __privateMethod = (obj, member, method) => {
|
|
|
7908
8008
|
pointEnd() {
|
|
7909
8009
|
isDragging = false;
|
|
7910
8010
|
sharer.setSharedStorage(keyPrevPoint, null);
|
|
7911
|
-
eventHub.trigger(
|
|
8011
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
7912
8012
|
type: "drag-default"
|
|
7913
8013
|
});
|
|
7914
8014
|
}
|
|
@@ -8143,6 +8243,47 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8143
8243
|
}
|
|
8144
8244
|
};
|
|
8145
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
|
+
};
|
|
8146
8287
|
class Core {
|
|
8147
8288
|
constructor(container, opts) {
|
|
8148
8289
|
__privateAdd(this, _initContainer);
|
|
@@ -8260,20 +8401,13 @@ var __privateMethod = (obj, member, method) => {
|
|
|
8260
8401
|
exports.MiddlewareDragger = MiddlewareDragger;
|
|
8261
8402
|
exports.MiddlewareInfo = MiddlewareInfo;
|
|
8262
8403
|
exports.MiddlewareLayoutSelector = MiddlewareLayoutSelector;
|
|
8404
|
+
exports.MiddlewarePointer = MiddlewarePointer;
|
|
8263
8405
|
exports.MiddlewareRuler = MiddlewareRuler;
|
|
8264
8406
|
exports.MiddlewareScaler = MiddlewareScaler;
|
|
8265
8407
|
exports.MiddlewareScroller = MiddlewareScroller;
|
|
8266
8408
|
exports.MiddlewareSelector = MiddlewareSelector;
|
|
8267
8409
|
exports.MiddlewareTextEditor = MiddlewareTextEditor;
|
|
8268
|
-
exports.
|
|
8269
|
-
exports.middlewareEventRuler = middlewareEventRuler;
|
|
8270
|
-
exports.middlewareEventScale = middlewareEventScale;
|
|
8271
|
-
exports.middlewareEventSelect = middlewareEventSelect;
|
|
8272
|
-
exports.middlewareEventSelectClear = middlewareEventSelectClear;
|
|
8273
|
-
exports.middlewareEventSelectInGroup = middlewareEventSelectInGroup;
|
|
8274
|
-
exports.middlewareEventSnapToGrid = middlewareEventSnapToGrid;
|
|
8275
|
-
exports.middlewareEventTextChange = middlewareEventTextChange;
|
|
8276
|
-
exports.middlewareEventTextEdit = middlewareEventTextEdit;
|
|
8410
|
+
exports.coreEventKeys = coreEventKeys;
|
|
8277
8411
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
8278
8412
|
return exports;
|
|
8279
8413
|
}({});
|