@inditextech/weave-sdk 0.10.3 → 0.11.0
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/sdk.cjs +106 -81
- package/dist/sdk.d.cts +6 -7
- package/dist/sdk.d.ts +6 -7
- package/dist/sdk.js +106 -81
- package/package.json +2 -2
package/dist/sdk.cjs
CHANGED
|
@@ -15871,9 +15871,6 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15871
15871
|
});
|
|
15872
15872
|
this.initEvents();
|
|
15873
15873
|
this.initialized = true;
|
|
15874
|
-
this.instance.on("onRender", () => {
|
|
15875
|
-
this.triggerSelectedNodesEvent();
|
|
15876
|
-
});
|
|
15877
15874
|
this.instance.on("onActiveActionChange", (activeAction) => {
|
|
15878
15875
|
if (typeof activeAction !== "undefined" && activeAction !== "selectionTool") {
|
|
15879
15876
|
this.active = false;
|
|
@@ -16143,9 +16140,9 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16143
16140
|
weave: object.weave,
|
|
16144
16141
|
weaveMinPoint: object.weaveMinPoint
|
|
16145
16142
|
};
|
|
16146
|
-
resolve();
|
|
16147
|
-
} catch (
|
|
16148
|
-
|
|
16143
|
+
resolve(true);
|
|
16144
|
+
} catch (_) {
|
|
16145
|
+
resolve(false);
|
|
16149
16146
|
}
|
|
16150
16147
|
}).catch((error) => {
|
|
16151
16148
|
reject(error);
|
|
@@ -16167,31 +16164,36 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16167
16164
|
}
|
|
16168
16165
|
initEvents() {
|
|
16169
16166
|
const stage = this.instance.getStage();
|
|
16170
|
-
|
|
16171
|
-
|
|
16172
|
-
|
|
16173
|
-
|
|
16174
|
-
|
|
16175
|
-
if (!this.enabled) return;
|
|
16176
|
-
const items = event.clipboardData?.items;
|
|
16177
|
-
if (!items) return;
|
|
16178
|
-
try {
|
|
16179
|
-
await this.readClipboardData();
|
|
16180
|
-
this.performPaste();
|
|
16181
|
-
} catch (ex) {
|
|
16182
|
-
this.instance.emitEvent("onPaste", ex);
|
|
16167
|
+
window.addEventListener("keydown", async (e) => {
|
|
16168
|
+
if (e.key === "c" && (e.ctrlKey || e.metaKey)) {
|
|
16169
|
+
e.preventDefault();
|
|
16170
|
+
await this.performCopy();
|
|
16171
|
+
return;
|
|
16183
16172
|
}
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
if (
|
|
16187
|
-
|
|
16188
|
-
this.
|
|
16173
|
+
if (e.key === "v" && (e.ctrlKey || e.metaKey)) {
|
|
16174
|
+
e.preventDefault();
|
|
16175
|
+
if (!this.enabled) return;
|
|
16176
|
+
try {
|
|
16177
|
+
const continueToPaste = await this.readClipboardData();
|
|
16178
|
+
if (!continueToPaste) {
|
|
16179
|
+
this.instance.emitEvent("onPaste", new Error("Invalid elements to paste"));
|
|
16180
|
+
return;
|
|
16181
|
+
}
|
|
16182
|
+
this.performPaste();
|
|
16183
|
+
} catch (ex) {
|
|
16184
|
+
this.instance.emitEvent("onPaste", ex);
|
|
16189
16185
|
}
|
|
16190
|
-
|
|
16191
|
-
|
|
16186
|
+
try {
|
|
16187
|
+
const items = await navigator.clipboard.read();
|
|
16188
|
+
if (items && items.length === 1) {
|
|
16189
|
+
const item = items[0];
|
|
16190
|
+
this.instance.emitEvent("onPasteExternal", item);
|
|
16191
|
+
}
|
|
16192
|
+
} catch (ex) {
|
|
16193
|
+
this.instance.emitEvent("onPaste", ex);
|
|
16194
|
+
}
|
|
16195
|
+
return;
|
|
16192
16196
|
}
|
|
16193
|
-
};
|
|
16194
|
-
stage.container().addEventListener("keydown", (e) => {
|
|
16195
16197
|
if (e.key === "Escape") {
|
|
16196
16198
|
this.cancel();
|
|
16197
16199
|
return;
|
|
@@ -16275,7 +16277,11 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16275
16277
|
await this.performCopy();
|
|
16276
16278
|
}
|
|
16277
16279
|
async paste() {
|
|
16278
|
-
await this.readClipboardData();
|
|
16280
|
+
const continueToPaste = await this.readClipboardData();
|
|
16281
|
+
if (!continueToPaste) {
|
|
16282
|
+
this.instance.emitEvent("onPaste", new Error("Invalid elements to paste"));
|
|
16283
|
+
return;
|
|
16284
|
+
}
|
|
16279
16285
|
this.performPaste();
|
|
16280
16286
|
}
|
|
16281
16287
|
getSelectedNodes() {
|
|
@@ -17838,7 +17844,7 @@ var WeaveRegisterManager = class {
|
|
|
17838
17844
|
|
|
17839
17845
|
//#endregion
|
|
17840
17846
|
//#region package.json
|
|
17841
|
-
var version = "0.
|
|
17847
|
+
var version = "0.11.0";
|
|
17842
17848
|
|
|
17843
17849
|
//#endregion
|
|
17844
17850
|
//#region src/managers/setup.ts
|
|
@@ -19738,6 +19744,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19738
19744
|
...config
|
|
19739
19745
|
};
|
|
19740
19746
|
if (!this.config.zoomSteps.includes(this.config.defaultZoom)) throw new Error(`Default zoom ${this.config.defaultZoom} is not in zoom steps`);
|
|
19747
|
+
this.isCtrlOrMetaPressed = false;
|
|
19741
19748
|
this.actualStep = this.config.zoomSteps.findIndex((step) => step === this.config.defaultZoom);
|
|
19742
19749
|
this.actualScale = this.config.zoomSteps[this.actualStep];
|
|
19743
19750
|
this.defaultStep = this.actualStep;
|
|
@@ -19746,6 +19753,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19746
19753
|
return WEAVE_STAGE_ZOOM_KEY;
|
|
19747
19754
|
}
|
|
19748
19755
|
onInit() {
|
|
19756
|
+
this.initEvents();
|
|
19749
19757
|
this.setZoom(this.config.zoomSteps[this.actualStep]);
|
|
19750
19758
|
}
|
|
19751
19759
|
setZoom(scale, centered = true) {
|
|
@@ -19894,6 +19902,21 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19894
19902
|
disable() {
|
|
19895
19903
|
this.enabled = false;
|
|
19896
19904
|
}
|
|
19905
|
+
initEvents() {
|
|
19906
|
+
const stage = this.instance.getStage();
|
|
19907
|
+
stage.container().addEventListener("keydown", (e) => {
|
|
19908
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = true;
|
|
19909
|
+
});
|
|
19910
|
+
stage.container().addEventListener("keyup", (e) => {
|
|
19911
|
+
if (!(e.ctrlKey || e.metaKey)) this.isCtrlOrMetaPressed = false;
|
|
19912
|
+
});
|
|
19913
|
+
stage.on("wheel", (e) => {
|
|
19914
|
+
e.evt.preventDefault();
|
|
19915
|
+
if (!this.enabled || !this.isCtrlOrMetaPressed) return;
|
|
19916
|
+
if (e.evt.deltaY > 0) this.zoomOut();
|
|
19917
|
+
if (e.evt.deltaY < 0) this.zoomIn();
|
|
19918
|
+
});
|
|
19919
|
+
}
|
|
19897
19920
|
};
|
|
19898
19921
|
|
|
19899
19922
|
//#endregion
|
|
@@ -20995,6 +21018,9 @@ const WEAVE_GRID_LAYER_ID = "gridLayer";
|
|
|
20995
21018
|
|
|
20996
21019
|
//#endregion
|
|
20997
21020
|
//#region src/plugins/stage-grid/stage-grid.ts
|
|
21021
|
+
function isZeroOrClose(value, tolerance = 1e-6) {
|
|
21022
|
+
return Math.abs(value) <= tolerance;
|
|
21023
|
+
}
|
|
20998
21024
|
var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
20999
21025
|
constructor(params) {
|
|
21000
21026
|
super();
|
|
@@ -21030,10 +21056,10 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21030
21056
|
}
|
|
21031
21057
|
initEvents() {
|
|
21032
21058
|
const stage = this.instance.getStage();
|
|
21033
|
-
|
|
21059
|
+
window.addEventListener("keydown", (e) => {
|
|
21034
21060
|
if (e.code === "Space") this.isSpaceKeyPressed = true;
|
|
21035
21061
|
});
|
|
21036
|
-
|
|
21062
|
+
window.addEventListener("keyup", (e) => {
|
|
21037
21063
|
if (e.code === "Space") this.isSpaceKeyPressed = false;
|
|
21038
21064
|
});
|
|
21039
21065
|
stage.on("mousedown", (e) => {
|
|
@@ -21104,11 +21130,13 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21104
21130
|
if (!layer) return;
|
|
21105
21131
|
const stage = this.instance.getStage();
|
|
21106
21132
|
const stageXRound = this.round(stage.x(), this.config.gridSize) * -1;
|
|
21133
|
+
const overflowX = 10 * this.config.gridSize;
|
|
21134
|
+
const overflowY = 10 * this.config.gridSize;
|
|
21107
21135
|
const pointsX = [];
|
|
21108
|
-
for (let i = stageXRound; i < stageXRound + stage.width(); i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21136
|
+
for (let i = stageXRound - overflowX; i < stageXRound + stage.width() + overflowX; i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21109
21137
|
const stageYRound = this.round(stage.y(), this.config.gridSize) * -1;
|
|
21110
21138
|
const pointsY = [];
|
|
21111
|
-
for (let i = stageYRound; i < stageYRound + stage.height(); i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21139
|
+
for (let i = stageYRound - overflowY; i < stageYRound + stage.height() + overflowY; i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21112
21140
|
for (let index = 0; index < pointsX.length; index++) {
|
|
21113
21141
|
const point = pointsX[index];
|
|
21114
21142
|
let color = this.config.gridColor;
|
|
@@ -21116,12 +21144,12 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21116
21144
|
layer.add(new konva_lib_shapes_Line.Line({
|
|
21117
21145
|
points: [
|
|
21118
21146
|
point,
|
|
21119
|
-
(-stage.y() -
|
|
21147
|
+
(-stage.y() - overflowY) / stage.scaleY(),
|
|
21120
21148
|
point,
|
|
21121
|
-
(stage.
|
|
21149
|
+
(-stage.y() + stage.height() + overflowY) / stage.scaleY()
|
|
21122
21150
|
],
|
|
21123
21151
|
stroke: color,
|
|
21124
|
-
strokeWidth: (point % (10 * (this.config.gridSize / stage.scaleX()))
|
|
21152
|
+
strokeWidth: (isZeroOrClose(point % (10 * (this.config.gridSize / stage.scaleX()))) ? 2.5 : .5) / stage.scaleX(),
|
|
21125
21153
|
listening: false
|
|
21126
21154
|
}));
|
|
21127
21155
|
}
|
|
@@ -21131,13 +21159,13 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21131
21159
|
if (point === 0) color = this.config.gridOriginColor;
|
|
21132
21160
|
layer.add(new konva_lib_shapes_Line.Line({
|
|
21133
21161
|
points: [
|
|
21134
|
-
(-stage.x() -
|
|
21162
|
+
(-stage.x() - overflowX) / stage.scaleX(),
|
|
21135
21163
|
point,
|
|
21136
|
-
(stage.
|
|
21164
|
+
(-stage.x() + stage.width() + overflowX) / stage.scaleX(),
|
|
21137
21165
|
point
|
|
21138
21166
|
],
|
|
21139
21167
|
stroke: color,
|
|
21140
|
-
strokeWidth: (point % (10 * (this.config.gridSize / stage.scaleY()))
|
|
21168
|
+
strokeWidth: (isZeroOrClose(point % (10 * (this.config.gridSize / stage.scaleY()))) ? 2.5 : .5) / stage.scaleX(),
|
|
21141
21169
|
listening: false
|
|
21142
21170
|
}));
|
|
21143
21171
|
}
|
|
@@ -21146,12 +21174,14 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21146
21174
|
const layer = this.getLayer();
|
|
21147
21175
|
if (!layer) return;
|
|
21148
21176
|
const stage = this.instance.getStage();
|
|
21177
|
+
const overflowX = Math.max(stage.width() * .2, 10 * this.config.gridSize);
|
|
21178
|
+
const overflowY = Math.max(stage.height() * .2, 10 * this.config.gridSize);
|
|
21149
21179
|
const stageXRound = this.round(stage.x(), this.config.gridSize) * -1;
|
|
21150
21180
|
const pointsX = [];
|
|
21151
|
-
for (let i = stageXRound; i < stageXRound + stage.width(); i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21181
|
+
for (let i = stageXRound - overflowX; i < stageXRound + stage.width() + overflowX; i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21152
21182
|
const stageYRound = this.round(stage.y(), this.config.gridSize) * -1;
|
|
21153
21183
|
const pointsY = [];
|
|
21154
|
-
for (let i = stageYRound; i < stageYRound + stage.height(); i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21184
|
+
for (let i = stageYRound - overflowY; i < stageYRound + stage.height() + overflowY; i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21155
21185
|
for (let indexX = 0; indexX < pointsX.length; indexX++) {
|
|
21156
21186
|
const pointX = pointsX[indexX];
|
|
21157
21187
|
for (let indexY = 0; indexY < pointsY.length; indexY++) {
|
|
@@ -21206,6 +21236,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21206
21236
|
this.enabled = true;
|
|
21207
21237
|
this.moveToolActive = false;
|
|
21208
21238
|
this.isMouseMiddleButtonPressed = false;
|
|
21239
|
+
this.isCtrlOrMetaPressed = false;
|
|
21209
21240
|
this.isSpaceKeyPressed = false;
|
|
21210
21241
|
this.previousPointer = null;
|
|
21211
21242
|
}
|
|
@@ -21233,13 +21264,15 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21233
21264
|
let previousMouseX = Infinity;
|
|
21234
21265
|
let previousMouseY = Infinity;
|
|
21235
21266
|
const stage = this.instance.getStage();
|
|
21236
|
-
|
|
21267
|
+
window.addEventListener("keydown", (e) => {
|
|
21268
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = true;
|
|
21237
21269
|
if (e.code === "Space") {
|
|
21238
21270
|
this.isSpaceKeyPressed = true;
|
|
21239
21271
|
this.enableMove();
|
|
21240
21272
|
}
|
|
21241
21273
|
});
|
|
21242
|
-
|
|
21274
|
+
window.addEventListener("keyup", (e) => {
|
|
21275
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = false;
|
|
21243
21276
|
if (e.code === "Space") {
|
|
21244
21277
|
this.isSpaceKeyPressed = false;
|
|
21245
21278
|
this.disableMove();
|
|
@@ -21313,7 +21346,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21313
21346
|
});
|
|
21314
21347
|
stage.on("wheel", (e) => {
|
|
21315
21348
|
e.evt.preventDefault();
|
|
21316
|
-
if (!this.enabled || this.isSpaceKeyPressed || this.isMouseMiddleButtonPressed) return;
|
|
21349
|
+
if (!this.enabled || this.isCtrlOrMetaPressed || this.isSpaceKeyPressed || this.isMouseMiddleButtonPressed) return;
|
|
21317
21350
|
stage.x(stage.x() - e.evt.deltaX);
|
|
21318
21351
|
stage.y(stage.y() - e.evt.deltaY);
|
|
21319
21352
|
});
|
|
@@ -21442,9 +21475,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21442
21475
|
constructor(params) {
|
|
21443
21476
|
super();
|
|
21444
21477
|
const { config } = params;
|
|
21445
|
-
this.renderCursors = true;
|
|
21446
21478
|
this.usersPointers = {};
|
|
21447
|
-
this.usersPointersTimers = {};
|
|
21448
21479
|
this.config = config;
|
|
21449
21480
|
}
|
|
21450
21481
|
getName() {
|
|
@@ -21455,9 +21486,15 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21455
21486
|
}
|
|
21456
21487
|
initLayer() {
|
|
21457
21488
|
const stage = this.instance.getStage();
|
|
21458
|
-
const layer = new konva.default.Layer({
|
|
21489
|
+
const layer = new konva.default.Layer({
|
|
21490
|
+
id: this.getLayerName(),
|
|
21491
|
+
listening: false
|
|
21492
|
+
});
|
|
21459
21493
|
stage.add(layer);
|
|
21460
21494
|
}
|
|
21495
|
+
onRender() {
|
|
21496
|
+
this.renderPointers();
|
|
21497
|
+
}
|
|
21461
21498
|
getLayer() {
|
|
21462
21499
|
const stage = this.instance.getStage();
|
|
21463
21500
|
return stage.findOne(`#${WEAVE_USERS_POINTERS_LAYER_ID}`);
|
|
@@ -21467,10 +21504,12 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21467
21504
|
const stage = this.instance.getStage();
|
|
21468
21505
|
this.instance.addEventListener("onAwarenessChange", (changes) => {
|
|
21469
21506
|
const selfUser = this.config.getUser();
|
|
21507
|
+
const allActiveUsers = [];
|
|
21470
21508
|
for (const change of changes) {
|
|
21471
21509
|
if (!change[WEAVE_USER_POINTER_KEY]) continue;
|
|
21472
21510
|
if (change[WEAVE_USER_POINTER_KEY] && selfUser.name !== change[WEAVE_USER_POINTER_KEY].user) {
|
|
21473
21511
|
const userPointer = change[WEAVE_USER_POINTER_KEY];
|
|
21512
|
+
allActiveUsers.push(userPointer.user);
|
|
21474
21513
|
this.usersPointers[userPointer.user] = {
|
|
21475
21514
|
oldPos: this.usersPointers[userPointer.user]?.actualPos ?? {
|
|
21476
21515
|
user: userPointer.user,
|
|
@@ -21481,6 +21520,17 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21481
21520
|
};
|
|
21482
21521
|
}
|
|
21483
21522
|
}
|
|
21523
|
+
const allActiveUsersPointers = Object.keys(this.usersPointers).map((userPointerKey) => {
|
|
21524
|
+
const pointerInfo = this.usersPointers[userPointerKey];
|
|
21525
|
+
return pointerInfo.actualPos.user;
|
|
21526
|
+
});
|
|
21527
|
+
const inactivePointers = import_lodash.default.differenceWith(allActiveUsersPointers, allActiveUsers, import_lodash.default.isEqual);
|
|
21528
|
+
const pointersLayer = this.getLayer();
|
|
21529
|
+
for (const inactivePointer of inactivePointers) {
|
|
21530
|
+
const userPointerNode = pointersLayer?.findOne(`#${inactivePointer}`);
|
|
21531
|
+
if (userPointerNode) userPointerNode.destroy();
|
|
21532
|
+
delete this.usersPointers[inactivePointer];
|
|
21533
|
+
}
|
|
21484
21534
|
this.renderPointers();
|
|
21485
21535
|
});
|
|
21486
21536
|
stage.on("dragmove", (e) => {
|
|
@@ -21503,9 +21553,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21503
21553
|
y: mousePos.y
|
|
21504
21554
|
});
|
|
21505
21555
|
});
|
|
21506
|
-
this.
|
|
21507
|
-
this.renderPointers();
|
|
21508
|
-
});
|
|
21556
|
+
this.renderPointers();
|
|
21509
21557
|
}
|
|
21510
21558
|
stringToColour(str) {
|
|
21511
21559
|
let hash = 0;
|
|
@@ -21519,29 +21567,16 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21519
21567
|
}
|
|
21520
21568
|
return colour;
|
|
21521
21569
|
}
|
|
21522
|
-
setUserMovementTimer(userPointer) {
|
|
21523
|
-
const pointersLayer = this.getLayer();
|
|
21524
|
-
if (this.usersPointersTimers[`${userPointer.user}-opacity`]) clearTimeout(this.usersPointersTimers[`${userPointer.user}-opacity`]);
|
|
21525
|
-
this.usersPointersTimers[`${userPointer.user}-opacity`] = setTimeout(() => {
|
|
21526
|
-
const userPointerNode = pointersLayer?.findOne(`#${userPointer.user}`);
|
|
21527
|
-
if (userPointerNode) userPointerNode.opacity(.5);
|
|
21528
|
-
}, 5e3);
|
|
21529
|
-
if (this.usersPointersTimers[`${userPointer.user}-destroy`]) clearTimeout(this.usersPointersTimers[`${userPointer.user}-destroy`]);
|
|
21530
|
-
this.usersPointersTimers[`${userPointer.user}-destroy`] = setTimeout(() => {
|
|
21531
|
-
const userPointerNode = pointersLayer?.findOne(`#${userPointer.user}`);
|
|
21532
|
-
if (userPointerNode) userPointerNode.destroy();
|
|
21533
|
-
}, 3e4);
|
|
21534
|
-
}
|
|
21535
21570
|
renderPointers() {
|
|
21536
21571
|
const stage = this.instance.getStage();
|
|
21537
21572
|
const pointersLayer = this.getLayer();
|
|
21538
|
-
pointersLayer?.clear();
|
|
21539
21573
|
if (!this.enabled) return;
|
|
21540
|
-
|
|
21574
|
+
for (const userPointerKey of Object.keys(this.usersPointers)) {
|
|
21541
21575
|
const userPointer = this.usersPointers[userPointerKey];
|
|
21542
21576
|
const userPointerNode = pointersLayer?.findOne(`#${userPointer.actualPos.user}`);
|
|
21543
21577
|
if (!userPointerNode) {
|
|
21544
21578
|
const userPointerNode$1 = new konva.default.Group({
|
|
21579
|
+
name: "pointer",
|
|
21545
21580
|
id: userPointer.actualPos.user,
|
|
21546
21581
|
x: userPointer.actualPos.x,
|
|
21547
21582
|
y: userPointer.actualPos.y,
|
|
@@ -21587,7 +21622,6 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21587
21622
|
userPointerNode$1.add(userNameBackground);
|
|
21588
21623
|
userPointerNode$1.add(userNameNode);
|
|
21589
21624
|
pointersLayer?.add(userPointerNode$1);
|
|
21590
|
-
this.setUserMovementTimer(userPointer.actualPos);
|
|
21591
21625
|
continue;
|
|
21592
21626
|
}
|
|
21593
21627
|
const oldPos = {
|
|
@@ -21620,22 +21654,13 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21620
21654
|
height: userPointNodeText[0]?.height() + this.userPointerBackgroundPaddingY * 2
|
|
21621
21655
|
});
|
|
21622
21656
|
userPointNode[0]?.setAttrs({ y: userPointNodeBackground[0]?.y() + userPointNodeBackground[0]?.height() / 2 });
|
|
21623
|
-
if (hasChanged) {
|
|
21624
|
-
|
|
21625
|
-
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
});
|
|
21629
|
-
if (hasChanged) this.setUserMovementTimer(userPointer.actualPos);
|
|
21630
|
-
}
|
|
21657
|
+
if (hasChanged) userPointerNode.setAttrs({
|
|
21658
|
+
x: userPointer.actualPos.x,
|
|
21659
|
+
y: userPointer.actualPos.y,
|
|
21660
|
+
opacity: 1
|
|
21661
|
+
});
|
|
21631
21662
|
}
|
|
21632
21663
|
}
|
|
21633
|
-
toggleRenderCursors() {
|
|
21634
|
-
this.renderCursors = !this.renderCursors;
|
|
21635
|
-
}
|
|
21636
|
-
setRenderCursors(render) {
|
|
21637
|
-
this.renderCursors = render;
|
|
21638
|
-
}
|
|
21639
21664
|
enable() {
|
|
21640
21665
|
this.getLayer()?.show();
|
|
21641
21666
|
this.enabled = true;
|
package/dist/sdk.d.cts
CHANGED
|
@@ -1166,6 +1166,7 @@ declare class WeaveStageGridPlugin extends WeavePlugin {
|
|
|
1166
1166
|
declare class WeaveStagePanningPlugin extends WeavePlugin {
|
|
1167
1167
|
private moveToolActive;
|
|
1168
1168
|
private isMouseMiddleButtonPressed;
|
|
1169
|
+
private isCtrlOrMetaPressed;
|
|
1169
1170
|
private isSpaceKeyPressed;
|
|
1170
1171
|
protected previousPointer: string | null;
|
|
1171
1172
|
getLayerName: undefined;
|
|
@@ -1216,6 +1217,8 @@ type WeaveStageZoomPluginParams = {
|
|
|
1216
1217
|
//#endregion
|
|
1217
1218
|
//#region src/plugins/stage-zoom/stage-zoom.d.ts
|
|
1218
1219
|
declare class WeaveStageZoomPlugin extends WeavePlugin {
|
|
1220
|
+
private isCtrlOrMetaPressed;
|
|
1221
|
+
protected previousPointer: string | null;
|
|
1219
1222
|
getLayerName: undefined;
|
|
1220
1223
|
initLayer: undefined;
|
|
1221
1224
|
onRender: undefined;
|
|
@@ -1238,6 +1241,7 @@ declare class WeaveStageZoomPlugin extends WeavePlugin {
|
|
|
1238
1241
|
fitToSelection(): void;
|
|
1239
1242
|
enable(): void;
|
|
1240
1243
|
disable(): void;
|
|
1244
|
+
private initEvents;
|
|
1241
1245
|
}
|
|
1242
1246
|
|
|
1243
1247
|
//#endregion
|
|
@@ -1301,9 +1305,7 @@ type WeaveUserPointerKey = typeof WEAVE_USER_POINTER_KEY;
|
|
|
1301
1305
|
//#region src/plugins/users-pointers/users-pointers.d.ts
|
|
1302
1306
|
declare class WeaveUsersPointersPlugin extends WeavePlugin {
|
|
1303
1307
|
private usersPointers;
|
|
1304
|
-
private usersPointersTimers;
|
|
1305
1308
|
private config;
|
|
1306
|
-
private renderCursors;
|
|
1307
1309
|
private userPointerCircleRadius;
|
|
1308
1310
|
private userPointerSeparation;
|
|
1309
1311
|
private userPointerCircleStrokeWidth;
|
|
@@ -1311,18 +1313,15 @@ declare class WeaveUsersPointersPlugin extends WeavePlugin {
|
|
|
1311
1313
|
private userPointerBackgroundCornerRadius;
|
|
1312
1314
|
private userPointerBackgroundPaddingX;
|
|
1313
1315
|
private userPointerBackgroundPaddingY;
|
|
1314
|
-
onRender: undefined;
|
|
1315
1316
|
constructor(params: WeaveUsersPointersPluginParams);
|
|
1316
1317
|
getName(): string;
|
|
1317
1318
|
getLayerName(): string;
|
|
1318
1319
|
initLayer(): void;
|
|
1320
|
+
onRender(): void;
|
|
1319
1321
|
getLayer(): Konva.Layer | undefined;
|
|
1320
1322
|
onInit(): void;
|
|
1321
1323
|
private stringToColour;
|
|
1322
|
-
private setUserMovementTimer;
|
|
1323
1324
|
private renderPointers;
|
|
1324
|
-
toggleRenderCursors(): void;
|
|
1325
|
-
setRenderCursors(render: boolean): void;
|
|
1326
1325
|
enable(): void;
|
|
1327
1326
|
disable(): void;
|
|
1328
1327
|
}
|
|
@@ -1417,7 +1416,7 @@ declare class WeaveCopyPasteNodesPlugin extends WeavePlugin {
|
|
|
1417
1416
|
onInit(): void;
|
|
1418
1417
|
private readClipboardData;
|
|
1419
1418
|
private writeClipboardData;
|
|
1420
|
-
|
|
1419
|
+
initEvents(): void;
|
|
1421
1420
|
private mapToPasteNodes;
|
|
1422
1421
|
private setState;
|
|
1423
1422
|
private handlePaste;
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1166,6 +1166,7 @@ declare class WeaveStageGridPlugin extends WeavePlugin {
|
|
|
1166
1166
|
declare class WeaveStagePanningPlugin extends WeavePlugin {
|
|
1167
1167
|
private moveToolActive;
|
|
1168
1168
|
private isMouseMiddleButtonPressed;
|
|
1169
|
+
private isCtrlOrMetaPressed;
|
|
1169
1170
|
private isSpaceKeyPressed;
|
|
1170
1171
|
protected previousPointer: string | null;
|
|
1171
1172
|
getLayerName: undefined;
|
|
@@ -1216,6 +1217,8 @@ type WeaveStageZoomPluginParams = {
|
|
|
1216
1217
|
//#endregion
|
|
1217
1218
|
//#region src/plugins/stage-zoom/stage-zoom.d.ts
|
|
1218
1219
|
declare class WeaveStageZoomPlugin extends WeavePlugin {
|
|
1220
|
+
private isCtrlOrMetaPressed;
|
|
1221
|
+
protected previousPointer: string | null;
|
|
1219
1222
|
getLayerName: undefined;
|
|
1220
1223
|
initLayer: undefined;
|
|
1221
1224
|
onRender: undefined;
|
|
@@ -1238,6 +1241,7 @@ declare class WeaveStageZoomPlugin extends WeavePlugin {
|
|
|
1238
1241
|
fitToSelection(): void;
|
|
1239
1242
|
enable(): void;
|
|
1240
1243
|
disable(): void;
|
|
1244
|
+
private initEvents;
|
|
1241
1245
|
}
|
|
1242
1246
|
|
|
1243
1247
|
//#endregion
|
|
@@ -1301,9 +1305,7 @@ type WeaveUserPointerKey = typeof WEAVE_USER_POINTER_KEY;
|
|
|
1301
1305
|
//#region src/plugins/users-pointers/users-pointers.d.ts
|
|
1302
1306
|
declare class WeaveUsersPointersPlugin extends WeavePlugin {
|
|
1303
1307
|
private usersPointers;
|
|
1304
|
-
private usersPointersTimers;
|
|
1305
1308
|
private config;
|
|
1306
|
-
private renderCursors;
|
|
1307
1309
|
private userPointerCircleRadius;
|
|
1308
1310
|
private userPointerSeparation;
|
|
1309
1311
|
private userPointerCircleStrokeWidth;
|
|
@@ -1311,18 +1313,15 @@ declare class WeaveUsersPointersPlugin extends WeavePlugin {
|
|
|
1311
1313
|
private userPointerBackgroundCornerRadius;
|
|
1312
1314
|
private userPointerBackgroundPaddingX;
|
|
1313
1315
|
private userPointerBackgroundPaddingY;
|
|
1314
|
-
onRender: undefined;
|
|
1315
1316
|
constructor(params: WeaveUsersPointersPluginParams);
|
|
1316
1317
|
getName(): string;
|
|
1317
1318
|
getLayerName(): string;
|
|
1318
1319
|
initLayer(): void;
|
|
1320
|
+
onRender(): void;
|
|
1319
1321
|
getLayer(): Konva.Layer | undefined;
|
|
1320
1322
|
onInit(): void;
|
|
1321
1323
|
private stringToColour;
|
|
1322
|
-
private setUserMovementTimer;
|
|
1323
1324
|
private renderPointers;
|
|
1324
|
-
toggleRenderCursors(): void;
|
|
1325
|
-
setRenderCursors(render: boolean): void;
|
|
1326
1325
|
enable(): void;
|
|
1327
1326
|
disable(): void;
|
|
1328
1327
|
}
|
|
@@ -1417,7 +1416,7 @@ declare class WeaveCopyPasteNodesPlugin extends WeavePlugin {
|
|
|
1417
1416
|
onInit(): void;
|
|
1418
1417
|
private readClipboardData;
|
|
1419
1418
|
private writeClipboardData;
|
|
1420
|
-
|
|
1419
|
+
initEvents(): void;
|
|
1421
1420
|
private mapToPasteNodes;
|
|
1422
1421
|
private setState;
|
|
1423
1422
|
private handlePaste;
|
package/dist/sdk.js
CHANGED
|
@@ -15871,9 +15871,6 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15871
15871
|
});
|
|
15872
15872
|
this.initEvents();
|
|
15873
15873
|
this.initialized = true;
|
|
15874
|
-
this.instance.on("onRender", () => {
|
|
15875
|
-
this.triggerSelectedNodesEvent();
|
|
15876
|
-
});
|
|
15877
15874
|
this.instance.on("onActiveActionChange", (activeAction) => {
|
|
15878
15875
|
if (typeof activeAction !== "undefined" && activeAction !== "selectionTool") {
|
|
15879
15876
|
this.active = false;
|
|
@@ -16143,9 +16140,9 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16143
16140
|
weave: object.weave,
|
|
16144
16141
|
weaveMinPoint: object.weaveMinPoint
|
|
16145
16142
|
};
|
|
16146
|
-
resolve();
|
|
16147
|
-
} catch (
|
|
16148
|
-
|
|
16143
|
+
resolve(true);
|
|
16144
|
+
} catch (_) {
|
|
16145
|
+
resolve(false);
|
|
16149
16146
|
}
|
|
16150
16147
|
}).catch((error) => {
|
|
16151
16148
|
reject(error);
|
|
@@ -16167,31 +16164,36 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16167
16164
|
}
|
|
16168
16165
|
initEvents() {
|
|
16169
16166
|
const stage = this.instance.getStage();
|
|
16170
|
-
|
|
16171
|
-
|
|
16172
|
-
|
|
16173
|
-
|
|
16174
|
-
|
|
16175
|
-
if (!this.enabled) return;
|
|
16176
|
-
const items = event.clipboardData?.items;
|
|
16177
|
-
if (!items) return;
|
|
16178
|
-
try {
|
|
16179
|
-
await this.readClipboardData();
|
|
16180
|
-
this.performPaste();
|
|
16181
|
-
} catch (ex) {
|
|
16182
|
-
this.instance.emitEvent("onPaste", ex);
|
|
16167
|
+
window.addEventListener("keydown", async (e) => {
|
|
16168
|
+
if (e.key === "c" && (e.ctrlKey || e.metaKey)) {
|
|
16169
|
+
e.preventDefault();
|
|
16170
|
+
await this.performCopy();
|
|
16171
|
+
return;
|
|
16183
16172
|
}
|
|
16184
|
-
|
|
16185
|
-
|
|
16186
|
-
if (
|
|
16187
|
-
|
|
16188
|
-
this.
|
|
16173
|
+
if (e.key === "v" && (e.ctrlKey || e.metaKey)) {
|
|
16174
|
+
e.preventDefault();
|
|
16175
|
+
if (!this.enabled) return;
|
|
16176
|
+
try {
|
|
16177
|
+
const continueToPaste = await this.readClipboardData();
|
|
16178
|
+
if (!continueToPaste) {
|
|
16179
|
+
this.instance.emitEvent("onPaste", new Error("Invalid elements to paste"));
|
|
16180
|
+
return;
|
|
16181
|
+
}
|
|
16182
|
+
this.performPaste();
|
|
16183
|
+
} catch (ex) {
|
|
16184
|
+
this.instance.emitEvent("onPaste", ex);
|
|
16189
16185
|
}
|
|
16190
|
-
|
|
16191
|
-
|
|
16186
|
+
try {
|
|
16187
|
+
const items = await navigator.clipboard.read();
|
|
16188
|
+
if (items && items.length === 1) {
|
|
16189
|
+
const item = items[0];
|
|
16190
|
+
this.instance.emitEvent("onPasteExternal", item);
|
|
16191
|
+
}
|
|
16192
|
+
} catch (ex) {
|
|
16193
|
+
this.instance.emitEvent("onPaste", ex);
|
|
16194
|
+
}
|
|
16195
|
+
return;
|
|
16192
16196
|
}
|
|
16193
|
-
};
|
|
16194
|
-
stage.container().addEventListener("keydown", (e) => {
|
|
16195
16197
|
if (e.key === "Escape") {
|
|
16196
16198
|
this.cancel();
|
|
16197
16199
|
return;
|
|
@@ -16275,7 +16277,11 @@ var WeaveCopyPasteNodesPlugin = class extends WeavePlugin {
|
|
|
16275
16277
|
await this.performCopy();
|
|
16276
16278
|
}
|
|
16277
16279
|
async paste() {
|
|
16278
|
-
await this.readClipboardData();
|
|
16280
|
+
const continueToPaste = await this.readClipboardData();
|
|
16281
|
+
if (!continueToPaste) {
|
|
16282
|
+
this.instance.emitEvent("onPaste", new Error("Invalid elements to paste"));
|
|
16283
|
+
return;
|
|
16284
|
+
}
|
|
16279
16285
|
this.performPaste();
|
|
16280
16286
|
}
|
|
16281
16287
|
getSelectedNodes() {
|
|
@@ -17838,7 +17844,7 @@ var WeaveRegisterManager = class {
|
|
|
17838
17844
|
|
|
17839
17845
|
//#endregion
|
|
17840
17846
|
//#region package.json
|
|
17841
|
-
var version = "0.
|
|
17847
|
+
var version = "0.11.0";
|
|
17842
17848
|
|
|
17843
17849
|
//#endregion
|
|
17844
17850
|
//#region src/managers/setup.ts
|
|
@@ -19738,6 +19744,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19738
19744
|
...config
|
|
19739
19745
|
};
|
|
19740
19746
|
if (!this.config.zoomSteps.includes(this.config.defaultZoom)) throw new Error(`Default zoom ${this.config.defaultZoom} is not in zoom steps`);
|
|
19747
|
+
this.isCtrlOrMetaPressed = false;
|
|
19741
19748
|
this.actualStep = this.config.zoomSteps.findIndex((step) => step === this.config.defaultZoom);
|
|
19742
19749
|
this.actualScale = this.config.zoomSteps[this.actualStep];
|
|
19743
19750
|
this.defaultStep = this.actualStep;
|
|
@@ -19746,6 +19753,7 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19746
19753
|
return WEAVE_STAGE_ZOOM_KEY;
|
|
19747
19754
|
}
|
|
19748
19755
|
onInit() {
|
|
19756
|
+
this.initEvents();
|
|
19749
19757
|
this.setZoom(this.config.zoomSteps[this.actualStep]);
|
|
19750
19758
|
}
|
|
19751
19759
|
setZoom(scale, centered = true) {
|
|
@@ -19894,6 +19902,21 @@ var WeaveStageZoomPlugin = class extends WeavePlugin {
|
|
|
19894
19902
|
disable() {
|
|
19895
19903
|
this.enabled = false;
|
|
19896
19904
|
}
|
|
19905
|
+
initEvents() {
|
|
19906
|
+
const stage = this.instance.getStage();
|
|
19907
|
+
stage.container().addEventListener("keydown", (e) => {
|
|
19908
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = true;
|
|
19909
|
+
});
|
|
19910
|
+
stage.container().addEventListener("keyup", (e) => {
|
|
19911
|
+
if (!(e.ctrlKey || e.metaKey)) this.isCtrlOrMetaPressed = false;
|
|
19912
|
+
});
|
|
19913
|
+
stage.on("wheel", (e) => {
|
|
19914
|
+
e.evt.preventDefault();
|
|
19915
|
+
if (!this.enabled || !this.isCtrlOrMetaPressed) return;
|
|
19916
|
+
if (e.evt.deltaY > 0) this.zoomOut();
|
|
19917
|
+
if (e.evt.deltaY < 0) this.zoomIn();
|
|
19918
|
+
});
|
|
19919
|
+
}
|
|
19897
19920
|
};
|
|
19898
19921
|
|
|
19899
19922
|
//#endregion
|
|
@@ -20995,6 +21018,9 @@ const WEAVE_GRID_LAYER_ID = "gridLayer";
|
|
|
20995
21018
|
|
|
20996
21019
|
//#endregion
|
|
20997
21020
|
//#region src/plugins/stage-grid/stage-grid.ts
|
|
21021
|
+
function isZeroOrClose(value, tolerance = 1e-6) {
|
|
21022
|
+
return Math.abs(value) <= tolerance;
|
|
21023
|
+
}
|
|
20998
21024
|
var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
20999
21025
|
constructor(params) {
|
|
21000
21026
|
super();
|
|
@@ -21030,10 +21056,10 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21030
21056
|
}
|
|
21031
21057
|
initEvents() {
|
|
21032
21058
|
const stage = this.instance.getStage();
|
|
21033
|
-
|
|
21059
|
+
window.addEventListener("keydown", (e) => {
|
|
21034
21060
|
if (e.code === "Space") this.isSpaceKeyPressed = true;
|
|
21035
21061
|
});
|
|
21036
|
-
|
|
21062
|
+
window.addEventListener("keyup", (e) => {
|
|
21037
21063
|
if (e.code === "Space") this.isSpaceKeyPressed = false;
|
|
21038
21064
|
});
|
|
21039
21065
|
stage.on("mousedown", (e) => {
|
|
@@ -21104,11 +21130,13 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21104
21130
|
if (!layer) return;
|
|
21105
21131
|
const stage = this.instance.getStage();
|
|
21106
21132
|
const stageXRound = this.round(stage.x(), this.config.gridSize) * -1;
|
|
21133
|
+
const overflowX = 10 * this.config.gridSize;
|
|
21134
|
+
const overflowY = 10 * this.config.gridSize;
|
|
21107
21135
|
const pointsX = [];
|
|
21108
|
-
for (let i = stageXRound; i < stageXRound + stage.width(); i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21136
|
+
for (let i = stageXRound - overflowX; i < stageXRound + stage.width() + overflowX; i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21109
21137
|
const stageYRound = this.round(stage.y(), this.config.gridSize) * -1;
|
|
21110
21138
|
const pointsY = [];
|
|
21111
|
-
for (let i = stageYRound; i < stageYRound + stage.height(); i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21139
|
+
for (let i = stageYRound - overflowY; i < stageYRound + stage.height() + overflowY; i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21112
21140
|
for (let index = 0; index < pointsX.length; index++) {
|
|
21113
21141
|
const point = pointsX[index];
|
|
21114
21142
|
let color = this.config.gridColor;
|
|
@@ -21116,12 +21144,12 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21116
21144
|
layer.add(new Line({
|
|
21117
21145
|
points: [
|
|
21118
21146
|
point,
|
|
21119
|
-
(-stage.y() -
|
|
21147
|
+
(-stage.y() - overflowY) / stage.scaleY(),
|
|
21120
21148
|
point,
|
|
21121
|
-
(stage.
|
|
21149
|
+
(-stage.y() + stage.height() + overflowY) / stage.scaleY()
|
|
21122
21150
|
],
|
|
21123
21151
|
stroke: color,
|
|
21124
|
-
strokeWidth: (point % (10 * (this.config.gridSize / stage.scaleX()))
|
|
21152
|
+
strokeWidth: (isZeroOrClose(point % (10 * (this.config.gridSize / stage.scaleX()))) ? 2.5 : .5) / stage.scaleX(),
|
|
21125
21153
|
listening: false
|
|
21126
21154
|
}));
|
|
21127
21155
|
}
|
|
@@ -21131,13 +21159,13 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21131
21159
|
if (point === 0) color = this.config.gridOriginColor;
|
|
21132
21160
|
layer.add(new Line({
|
|
21133
21161
|
points: [
|
|
21134
|
-
(-stage.x() -
|
|
21162
|
+
(-stage.x() - overflowX) / stage.scaleX(),
|
|
21135
21163
|
point,
|
|
21136
|
-
(stage.
|
|
21164
|
+
(-stage.x() + stage.width() + overflowX) / stage.scaleX(),
|
|
21137
21165
|
point
|
|
21138
21166
|
],
|
|
21139
21167
|
stroke: color,
|
|
21140
|
-
strokeWidth: (point % (10 * (this.config.gridSize / stage.scaleY()))
|
|
21168
|
+
strokeWidth: (isZeroOrClose(point % (10 * (this.config.gridSize / stage.scaleY()))) ? 2.5 : .5) / stage.scaleX(),
|
|
21141
21169
|
listening: false
|
|
21142
21170
|
}));
|
|
21143
21171
|
}
|
|
@@ -21146,12 +21174,14 @@ var WeaveStageGridPlugin = class extends WeavePlugin {
|
|
|
21146
21174
|
const layer = this.getLayer();
|
|
21147
21175
|
if (!layer) return;
|
|
21148
21176
|
const stage = this.instance.getStage();
|
|
21177
|
+
const overflowX = Math.max(stage.width() * .2, 10 * this.config.gridSize);
|
|
21178
|
+
const overflowY = Math.max(stage.height() * .2, 10 * this.config.gridSize);
|
|
21149
21179
|
const stageXRound = this.round(stage.x(), this.config.gridSize) * -1;
|
|
21150
21180
|
const pointsX = [];
|
|
21151
|
-
for (let i = stageXRound; i < stageXRound + stage.width(); i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21181
|
+
for (let i = stageXRound - overflowX; i < stageXRound + stage.width() + overflowX; i += this.config.gridSize) pointsX.push(i / stage.scaleX());
|
|
21152
21182
|
const stageYRound = this.round(stage.y(), this.config.gridSize) * -1;
|
|
21153
21183
|
const pointsY = [];
|
|
21154
|
-
for (let i = stageYRound; i < stageYRound + stage.height(); i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21184
|
+
for (let i = stageYRound - overflowY; i < stageYRound + stage.height() + overflowY; i += this.config.gridSize) pointsY.push(i / stage.scaleY());
|
|
21155
21185
|
for (let indexX = 0; indexX < pointsX.length; indexX++) {
|
|
21156
21186
|
const pointX = pointsX[indexX];
|
|
21157
21187
|
for (let indexY = 0; indexY < pointsY.length; indexY++) {
|
|
@@ -21206,6 +21236,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21206
21236
|
this.enabled = true;
|
|
21207
21237
|
this.moveToolActive = false;
|
|
21208
21238
|
this.isMouseMiddleButtonPressed = false;
|
|
21239
|
+
this.isCtrlOrMetaPressed = false;
|
|
21209
21240
|
this.isSpaceKeyPressed = false;
|
|
21210
21241
|
this.previousPointer = null;
|
|
21211
21242
|
}
|
|
@@ -21233,13 +21264,15 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21233
21264
|
let previousMouseX = Infinity;
|
|
21234
21265
|
let previousMouseY = Infinity;
|
|
21235
21266
|
const stage = this.instance.getStage();
|
|
21236
|
-
|
|
21267
|
+
window.addEventListener("keydown", (e) => {
|
|
21268
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = true;
|
|
21237
21269
|
if (e.code === "Space") {
|
|
21238
21270
|
this.isSpaceKeyPressed = true;
|
|
21239
21271
|
this.enableMove();
|
|
21240
21272
|
}
|
|
21241
21273
|
});
|
|
21242
|
-
|
|
21274
|
+
window.addEventListener("keyup", (e) => {
|
|
21275
|
+
if (e.ctrlKey || e.metaKey) this.isCtrlOrMetaPressed = false;
|
|
21243
21276
|
if (e.code === "Space") {
|
|
21244
21277
|
this.isSpaceKeyPressed = false;
|
|
21245
21278
|
this.disableMove();
|
|
@@ -21313,7 +21346,7 @@ var WeaveStagePanningPlugin = class extends WeavePlugin {
|
|
|
21313
21346
|
});
|
|
21314
21347
|
stage.on("wheel", (e) => {
|
|
21315
21348
|
e.evt.preventDefault();
|
|
21316
|
-
if (!this.enabled || this.isSpaceKeyPressed || this.isMouseMiddleButtonPressed) return;
|
|
21349
|
+
if (!this.enabled || this.isCtrlOrMetaPressed || this.isSpaceKeyPressed || this.isMouseMiddleButtonPressed) return;
|
|
21317
21350
|
stage.x(stage.x() - e.evt.deltaX);
|
|
21318
21351
|
stage.y(stage.y() - e.evt.deltaY);
|
|
21319
21352
|
});
|
|
@@ -21442,9 +21475,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21442
21475
|
constructor(params) {
|
|
21443
21476
|
super();
|
|
21444
21477
|
const { config } = params;
|
|
21445
|
-
this.renderCursors = true;
|
|
21446
21478
|
this.usersPointers = {};
|
|
21447
|
-
this.usersPointersTimers = {};
|
|
21448
21479
|
this.config = config;
|
|
21449
21480
|
}
|
|
21450
21481
|
getName() {
|
|
@@ -21455,9 +21486,15 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21455
21486
|
}
|
|
21456
21487
|
initLayer() {
|
|
21457
21488
|
const stage = this.instance.getStage();
|
|
21458
|
-
const layer = new Konva.Layer({
|
|
21489
|
+
const layer = new Konva.Layer({
|
|
21490
|
+
id: this.getLayerName(),
|
|
21491
|
+
listening: false
|
|
21492
|
+
});
|
|
21459
21493
|
stage.add(layer);
|
|
21460
21494
|
}
|
|
21495
|
+
onRender() {
|
|
21496
|
+
this.renderPointers();
|
|
21497
|
+
}
|
|
21461
21498
|
getLayer() {
|
|
21462
21499
|
const stage = this.instance.getStage();
|
|
21463
21500
|
return stage.findOne(`#${WEAVE_USERS_POINTERS_LAYER_ID}`);
|
|
@@ -21467,10 +21504,12 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21467
21504
|
const stage = this.instance.getStage();
|
|
21468
21505
|
this.instance.addEventListener("onAwarenessChange", (changes) => {
|
|
21469
21506
|
const selfUser = this.config.getUser();
|
|
21507
|
+
const allActiveUsers = [];
|
|
21470
21508
|
for (const change of changes) {
|
|
21471
21509
|
if (!change[WEAVE_USER_POINTER_KEY]) continue;
|
|
21472
21510
|
if (change[WEAVE_USER_POINTER_KEY] && selfUser.name !== change[WEAVE_USER_POINTER_KEY].user) {
|
|
21473
21511
|
const userPointer = change[WEAVE_USER_POINTER_KEY];
|
|
21512
|
+
allActiveUsers.push(userPointer.user);
|
|
21474
21513
|
this.usersPointers[userPointer.user] = {
|
|
21475
21514
|
oldPos: this.usersPointers[userPointer.user]?.actualPos ?? {
|
|
21476
21515
|
user: userPointer.user,
|
|
@@ -21481,6 +21520,17 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21481
21520
|
};
|
|
21482
21521
|
}
|
|
21483
21522
|
}
|
|
21523
|
+
const allActiveUsersPointers = Object.keys(this.usersPointers).map((userPointerKey) => {
|
|
21524
|
+
const pointerInfo = this.usersPointers[userPointerKey];
|
|
21525
|
+
return pointerInfo.actualPos.user;
|
|
21526
|
+
});
|
|
21527
|
+
const inactivePointers = import_lodash.default.differenceWith(allActiveUsersPointers, allActiveUsers, import_lodash.default.isEqual);
|
|
21528
|
+
const pointersLayer = this.getLayer();
|
|
21529
|
+
for (const inactivePointer of inactivePointers) {
|
|
21530
|
+
const userPointerNode = pointersLayer?.findOne(`#${inactivePointer}`);
|
|
21531
|
+
if (userPointerNode) userPointerNode.destroy();
|
|
21532
|
+
delete this.usersPointers[inactivePointer];
|
|
21533
|
+
}
|
|
21484
21534
|
this.renderPointers();
|
|
21485
21535
|
});
|
|
21486
21536
|
stage.on("dragmove", (e) => {
|
|
@@ -21503,9 +21553,7 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21503
21553
|
y: mousePos.y
|
|
21504
21554
|
});
|
|
21505
21555
|
});
|
|
21506
|
-
this.
|
|
21507
|
-
this.renderPointers();
|
|
21508
|
-
});
|
|
21556
|
+
this.renderPointers();
|
|
21509
21557
|
}
|
|
21510
21558
|
stringToColour(str) {
|
|
21511
21559
|
let hash = 0;
|
|
@@ -21519,29 +21567,16 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21519
21567
|
}
|
|
21520
21568
|
return colour;
|
|
21521
21569
|
}
|
|
21522
|
-
setUserMovementTimer(userPointer) {
|
|
21523
|
-
const pointersLayer = this.getLayer();
|
|
21524
|
-
if (this.usersPointersTimers[`${userPointer.user}-opacity`]) clearTimeout(this.usersPointersTimers[`${userPointer.user}-opacity`]);
|
|
21525
|
-
this.usersPointersTimers[`${userPointer.user}-opacity`] = setTimeout(() => {
|
|
21526
|
-
const userPointerNode = pointersLayer?.findOne(`#${userPointer.user}`);
|
|
21527
|
-
if (userPointerNode) userPointerNode.opacity(.5);
|
|
21528
|
-
}, 5e3);
|
|
21529
|
-
if (this.usersPointersTimers[`${userPointer.user}-destroy`]) clearTimeout(this.usersPointersTimers[`${userPointer.user}-destroy`]);
|
|
21530
|
-
this.usersPointersTimers[`${userPointer.user}-destroy`] = setTimeout(() => {
|
|
21531
|
-
const userPointerNode = pointersLayer?.findOne(`#${userPointer.user}`);
|
|
21532
|
-
if (userPointerNode) userPointerNode.destroy();
|
|
21533
|
-
}, 3e4);
|
|
21534
|
-
}
|
|
21535
21570
|
renderPointers() {
|
|
21536
21571
|
const stage = this.instance.getStage();
|
|
21537
21572
|
const pointersLayer = this.getLayer();
|
|
21538
|
-
pointersLayer?.clear();
|
|
21539
21573
|
if (!this.enabled) return;
|
|
21540
|
-
|
|
21574
|
+
for (const userPointerKey of Object.keys(this.usersPointers)) {
|
|
21541
21575
|
const userPointer = this.usersPointers[userPointerKey];
|
|
21542
21576
|
const userPointerNode = pointersLayer?.findOne(`#${userPointer.actualPos.user}`);
|
|
21543
21577
|
if (!userPointerNode) {
|
|
21544
21578
|
const userPointerNode$1 = new Konva.Group({
|
|
21579
|
+
name: "pointer",
|
|
21545
21580
|
id: userPointer.actualPos.user,
|
|
21546
21581
|
x: userPointer.actualPos.x,
|
|
21547
21582
|
y: userPointer.actualPos.y,
|
|
@@ -21587,7 +21622,6 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21587
21622
|
userPointerNode$1.add(userNameBackground);
|
|
21588
21623
|
userPointerNode$1.add(userNameNode);
|
|
21589
21624
|
pointersLayer?.add(userPointerNode$1);
|
|
21590
|
-
this.setUserMovementTimer(userPointer.actualPos);
|
|
21591
21625
|
continue;
|
|
21592
21626
|
}
|
|
21593
21627
|
const oldPos = {
|
|
@@ -21620,22 +21654,13 @@ var WeaveUsersPointersPlugin = class extends WeavePlugin {
|
|
|
21620
21654
|
height: userPointNodeText[0]?.height() + this.userPointerBackgroundPaddingY * 2
|
|
21621
21655
|
});
|
|
21622
21656
|
userPointNode[0]?.setAttrs({ y: userPointNodeBackground[0]?.y() + userPointNodeBackground[0]?.height() / 2 });
|
|
21623
|
-
if (hasChanged) {
|
|
21624
|
-
|
|
21625
|
-
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
});
|
|
21629
|
-
if (hasChanged) this.setUserMovementTimer(userPointer.actualPos);
|
|
21630
|
-
}
|
|
21657
|
+
if (hasChanged) userPointerNode.setAttrs({
|
|
21658
|
+
x: userPointer.actualPos.x,
|
|
21659
|
+
y: userPointer.actualPos.y,
|
|
21660
|
+
opacity: 1
|
|
21661
|
+
});
|
|
21631
21662
|
}
|
|
21632
21663
|
}
|
|
21633
|
-
toggleRenderCursors() {
|
|
21634
|
-
this.renderCursors = !this.renderCursors;
|
|
21635
|
-
}
|
|
21636
|
-
setRenderCursors(render) {
|
|
21637
|
-
this.renderCursors = render;
|
|
21638
|
-
}
|
|
21639
21664
|
enable() {
|
|
21640
21665
|
this.getLayer()?.show();
|
|
21641
21666
|
this.enabled = true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"version:release": "npm version $RELEASE_VERSION -m \"[npm-scripts] prepare release $RELEASE_VERSION\" --tag-version-prefix \"\""
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@inditextech/weave-types": "0.
|
|
46
|
+
"@inditextech/weave-types": "0.11.0",
|
|
47
47
|
"@syncedstore/core": "0.6.0",
|
|
48
48
|
"canvas": "3.1.0",
|
|
49
49
|
"konva": "9.3.20",
|