@inditextech/weave-sdk 0.3.2 → 0.4.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 +108 -3
- package/dist/sdk.d.cts +8 -0
- package/dist/sdk.d.ts +8 -0
- package/dist/sdk.js +109 -4
- package/package.json +3 -3
package/dist/sdk.cjs
CHANGED
|
@@ -16286,6 +16286,40 @@ var WeaveNode = class {
|
|
|
16286
16286
|
if (selectionPlugin.getSelectedNodes().length === 1 && selectionPlugin.getSelectedNodes()[0].getAttrs().id === ele.getAttrs().id) selected = true;
|
|
16287
16287
|
return selected;
|
|
16288
16288
|
}
|
|
16289
|
+
clearContainerTargets() {
|
|
16290
|
+
const getContainers = this.instance.getContainerNodes();
|
|
16291
|
+
for (const container of getContainers) container.fire(__inditextech_weave_types.WEAVE_NODE_CUSTOM_EVENTS.onTargetLeave, { bubbles: true });
|
|
16292
|
+
}
|
|
16293
|
+
checkIfOverContainer(node) {
|
|
16294
|
+
const nodesIntersected = this.instance.pointIntersectsContainerElement();
|
|
16295
|
+
let nodeActualContainer = node.getParent();
|
|
16296
|
+
if (nodeActualContainer?.getAttrs().nodeId) nodeActualContainer = this.instance.getStage().findOne(`#${nodeActualContainer.getAttrs().nodeId}`);
|
|
16297
|
+
let layerToMove = void 0;
|
|
16298
|
+
if (!node.getAttrs().containerId && nodesIntersected && nodeActualContainer?.getAttrs().id !== nodesIntersected.getAttrs().id) layerToMove = nodesIntersected;
|
|
16299
|
+
return layerToMove;
|
|
16300
|
+
}
|
|
16301
|
+
moveNodeToContainer(node) {
|
|
16302
|
+
const nodesIntersected = this.instance.pointIntersectsContainerElement();
|
|
16303
|
+
let nodeActualContainer = node.getParent();
|
|
16304
|
+
if (nodeActualContainer?.getAttrs().nodeId) nodeActualContainer = this.instance.getStage().findOne(`#${nodeActualContainer.getAttrs().nodeId}`);
|
|
16305
|
+
let layerToMove = void 0;
|
|
16306
|
+
if (!node.getAttrs().containerId && nodesIntersected && nodeActualContainer?.getAttrs().id !== nodesIntersected.getAttrs().id) layerToMove = nodesIntersected;
|
|
16307
|
+
if (!nodesIntersected && nodeActualContainer?.getAttrs().id !== __inditextech_weave_types.WEAVE_NODE_LAYER_ID) layerToMove = this.instance.getMainLayer();
|
|
16308
|
+
if (layerToMove) {
|
|
16309
|
+
const nodePos = node.getAbsolutePosition();
|
|
16310
|
+
const nodeRotation = node.getAbsoluteRotation();
|
|
16311
|
+
node.moveTo(layerToMove);
|
|
16312
|
+
node.setAbsolutePosition(nodePos);
|
|
16313
|
+
node.rotation(nodeRotation);
|
|
16314
|
+
node.x(node.x() - (layerToMove.getAttrs().containerOffsetX ?? 0));
|
|
16315
|
+
node.y(node.y() - (layerToMove.getAttrs().containerOffsetY ?? 0));
|
|
16316
|
+
const nodeHandler = this.instance.getNodeHandler(node.getAttrs().nodeType);
|
|
16317
|
+
const actualNode = nodeHandler.serialize(node);
|
|
16318
|
+
this.instance.removeNode(actualNode);
|
|
16319
|
+
this.instance.addNode(actualNode, layerToMove?.getAttrs().id);
|
|
16320
|
+
}
|
|
16321
|
+
return layerToMove;
|
|
16322
|
+
}
|
|
16289
16323
|
setupDefaultNodeEvents(node) {
|
|
16290
16324
|
this.previousPointer = null;
|
|
16291
16325
|
this.instance.addEventListener("onNodesChange", () => {
|
|
@@ -16303,14 +16337,18 @@ var WeaveNode = class {
|
|
|
16303
16337
|
});
|
|
16304
16338
|
node.on("dragmove", (e) => {
|
|
16305
16339
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16340
|
+
this.clearContainerTargets();
|
|
16341
|
+
const layerToMove = this.checkIfOverContainer(e.target);
|
|
16342
|
+
if (layerToMove) layerToMove.fire(__inditextech_weave_types.WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, { bubbles: true });
|
|
16306
16343
|
this.instance.updateNode(this.serialize(node));
|
|
16307
|
-
e.cancelBubble = true;
|
|
16308
16344
|
}
|
|
16309
16345
|
});
|
|
16310
16346
|
node.on("dragend", (e) => {
|
|
16311
16347
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16348
|
+
this.clearContainerTargets();
|
|
16349
|
+
const layerToMove = this.moveNodeToContainer(e.target);
|
|
16350
|
+
if (layerToMove) return;
|
|
16312
16351
|
this.instance.updateNode(this.serialize(node));
|
|
16313
|
-
e.cancelBubble = true;
|
|
16314
16352
|
}
|
|
16315
16353
|
});
|
|
16316
16354
|
this.previousPointer = null;
|
|
@@ -16960,6 +16998,27 @@ var WeaveTargetingManager = class {
|
|
|
16960
16998
|
this.logger = this.instance.getChildLogger("targeting-manager");
|
|
16961
16999
|
this.logger.debug("Targeting manager created");
|
|
16962
17000
|
}
|
|
17001
|
+
pointIntersectsContainerElement(point) {
|
|
17002
|
+
const stage = this.instance.getStage();
|
|
17003
|
+
const relativeMousePointer = point ? point : stage.getPointerPosition() ?? {
|
|
17004
|
+
x: 0,
|
|
17005
|
+
y: 0
|
|
17006
|
+
};
|
|
17007
|
+
const intersections = this.instance.getMainLayer()?.getAllIntersections(relativeMousePointer);
|
|
17008
|
+
let intersectedNode = void 0;
|
|
17009
|
+
if (intersections) for (const node of intersections) {
|
|
17010
|
+
if (node.getAttrs().nodeId) {
|
|
17011
|
+
const parent = stage.findOne(`#${node.getAttrs().nodeId}`);
|
|
17012
|
+
intersectedNode = parent;
|
|
17013
|
+
break;
|
|
17014
|
+
}
|
|
17015
|
+
if (node.getAttrs().containerId) {
|
|
17016
|
+
intersectedNode = node;
|
|
17017
|
+
break;
|
|
17018
|
+
}
|
|
17019
|
+
}
|
|
17020
|
+
return intersectedNode;
|
|
17021
|
+
}
|
|
16963
17022
|
getMousePointer(point) {
|
|
16964
17023
|
this.logger.debug({ point }, "getMousePointer");
|
|
16965
17024
|
const stage = this.instance.getStage();
|
|
@@ -17431,6 +17490,17 @@ var WeaveStateManager = class {
|
|
|
17431
17490
|
});
|
|
17432
17491
|
return found;
|
|
17433
17492
|
}
|
|
17493
|
+
getContainerNodes(tree) {
|
|
17494
|
+
const found = [];
|
|
17495
|
+
if (tree.props.containerId) {
|
|
17496
|
+
found.push(tree);
|
|
17497
|
+
return found;
|
|
17498
|
+
}
|
|
17499
|
+
if (tree.props?.children && tree.props.children.length > 0) tree.props.children.some((child) => {
|
|
17500
|
+
found.push(...this.getContainerNodes(child));
|
|
17501
|
+
});
|
|
17502
|
+
return found;
|
|
17503
|
+
}
|
|
17434
17504
|
getNode(nodeKey) {
|
|
17435
17505
|
const state = this.instance.getStore().getState().weave;
|
|
17436
17506
|
if ((0, import_lodash.isEmpty)(state)) return {
|
|
@@ -17699,7 +17769,7 @@ var WeaveRegisterManager = class {
|
|
|
17699
17769
|
|
|
17700
17770
|
//#endregion
|
|
17701
17771
|
//#region package.json
|
|
17702
|
-
var version = "0.
|
|
17772
|
+
var version = "0.4.0";
|
|
17703
17773
|
|
|
17704
17774
|
//#endregion
|
|
17705
17775
|
//#region src/managers/setup.ts
|
|
@@ -17771,6 +17841,10 @@ var WeaveStageManager = class {
|
|
|
17771
17841
|
const stage = this.getStage();
|
|
17772
17842
|
return stage.findOne(`#${__inditextech_weave_types.WEAVE_NODE_LAYER_ID}`);
|
|
17773
17843
|
}
|
|
17844
|
+
getUtilityLayer() {
|
|
17845
|
+
const stage = this.getStage();
|
|
17846
|
+
return stage.findOne(`#${__inditextech_weave_types.WEAVE_UTILITY_LAYER_ID}`);
|
|
17847
|
+
}
|
|
17774
17848
|
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
17775
17849
|
const attributes = instance.getAttrs();
|
|
17776
17850
|
if (instance.getParent() && instance.getParent()?.getAttrs().nodeType && ![
|
|
@@ -17794,6 +17868,11 @@ var WeaveStageManager = class {
|
|
|
17794
17868
|
stage.draw();
|
|
17795
17869
|
this.setStage(stage);
|
|
17796
17870
|
}
|
|
17871
|
+
getContainerNodes() {
|
|
17872
|
+
return this.instance.getMainLayer()?.find((node) => {
|
|
17873
|
+
return node.getAttrs().containerId;
|
|
17874
|
+
});
|
|
17875
|
+
}
|
|
17797
17876
|
};
|
|
17798
17877
|
|
|
17799
17878
|
//#endregion
|
|
@@ -18153,6 +18232,9 @@ var Weave = class extends Emittery {
|
|
|
18153
18232
|
getMainLayer() {
|
|
18154
18233
|
return this.stageManager.getMainLayer();
|
|
18155
18234
|
}
|
|
18235
|
+
getUtilityLayer() {
|
|
18236
|
+
return this.stageManager.getUtilityLayer();
|
|
18237
|
+
}
|
|
18156
18238
|
setStage(stage) {
|
|
18157
18239
|
this.stageManager.setStage(stage);
|
|
18158
18240
|
}
|
|
@@ -18162,6 +18244,9 @@ var Weave = class extends Emittery {
|
|
|
18162
18244
|
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
18163
18245
|
return this.stageManager.getInstanceRecursive(instance, filterInstanceType);
|
|
18164
18246
|
}
|
|
18247
|
+
getContainerNodes() {
|
|
18248
|
+
return this.stageManager.getContainerNodes();
|
|
18249
|
+
}
|
|
18165
18250
|
getRegisterManager() {
|
|
18166
18251
|
return this.registerManager;
|
|
18167
18252
|
}
|
|
@@ -18282,6 +18367,9 @@ var Weave = class extends Emittery {
|
|
|
18282
18367
|
unGroup(group) {
|
|
18283
18368
|
this.groupsManager.unGroup(group);
|
|
18284
18369
|
}
|
|
18370
|
+
pointIntersectsContainerElement(point) {
|
|
18371
|
+
return this.targetingManager.pointIntersectsContainerElement(point);
|
|
18372
|
+
}
|
|
18285
18373
|
getMousePointer(point) {
|
|
18286
18374
|
return this.targetingManager.getMousePointer(point);
|
|
18287
18375
|
}
|
|
@@ -19327,6 +19415,9 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19327
19415
|
const frame = new konva.default.Group({
|
|
19328
19416
|
...frameParams,
|
|
19329
19417
|
containerId: `${id}-group-internal`,
|
|
19418
|
+
containerOffsetX: 0,
|
|
19419
|
+
containerOffsetY: titleHeight + strokeWidth,
|
|
19420
|
+
isTarget: false,
|
|
19330
19421
|
width: frameWidth + strokeWidth * 2,
|
|
19331
19422
|
height: frameHeight + titleHeight + strokeWidth * 2,
|
|
19332
19423
|
fill: "#ffffffff",
|
|
@@ -19382,6 +19473,20 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19382
19473
|
});
|
|
19383
19474
|
frame.add(frameInternal);
|
|
19384
19475
|
this.setupDefaultNodeEvents(frame);
|
|
19476
|
+
frame.on(__inditextech_weave_types.WEAVE_NODE_CUSTOM_EVENTS.onTargetLeave, () => {
|
|
19477
|
+
background.setAttrs({
|
|
19478
|
+
stroke: "#000000ff",
|
|
19479
|
+
strokeWidth: 2,
|
|
19480
|
+
fill: "#ffffffff"
|
|
19481
|
+
});
|
|
19482
|
+
});
|
|
19483
|
+
frame.on(__inditextech_weave_types.WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, () => {
|
|
19484
|
+
background.setAttrs({
|
|
19485
|
+
stroke: "#ff6863ff",
|
|
19486
|
+
strokeWidth: 2,
|
|
19487
|
+
fill: "#ecececff"
|
|
19488
|
+
});
|
|
19489
|
+
});
|
|
19385
19490
|
return frame;
|
|
19386
19491
|
}
|
|
19387
19492
|
onUpdate(nodeInstance, nextProps) {
|
package/dist/sdk.d.cts
CHANGED
|
@@ -274,6 +274,9 @@ declare abstract class WeaveNode implements WeaveNodeBase {
|
|
|
274
274
|
isSelecting(): boolean;
|
|
275
275
|
isPasting(): boolean;
|
|
276
276
|
isNodeSelected(ele: Konva.Node): boolean;
|
|
277
|
+
clearContainerTargets(): void;
|
|
278
|
+
checkIfOverContainer(node: Konva.Node): Konva.Node | undefined;
|
|
279
|
+
moveNodeToContainer(node: Konva.Node): Konva.Node | undefined;
|
|
277
280
|
setupDefaultNodeEvents(node: Konva.Node): void;
|
|
278
281
|
create(key: string, props: WeaveElementAttributes): WeaveStateElement;
|
|
279
282
|
abstract onRender(props: WeaveElementAttributes): WeaveElementInstance;
|
|
@@ -358,8 +361,10 @@ declare class WeaveStageManager {
|
|
|
358
361
|
setStage(stage: Konva.Stage): void;
|
|
359
362
|
getStage(): Konva.Stage;
|
|
360
363
|
getMainLayer(): Konva.Layer | undefined;
|
|
364
|
+
getUtilityLayer(): Konva.Layer | undefined;
|
|
361
365
|
getInstanceRecursive(instance: Konva.Node, filterInstanceType?: string[]): Konva.Node;
|
|
362
366
|
initStage(): void;
|
|
367
|
+
getContainerNodes(): WeaveElementInstance[];
|
|
363
368
|
}
|
|
364
369
|
|
|
365
370
|
//#endregion
|
|
@@ -403,9 +408,11 @@ declare class Weave extends Emittery {
|
|
|
403
408
|
getStageManager(): WeaveStageManager;
|
|
404
409
|
getStage(): Konva.Stage;
|
|
405
410
|
getMainLayer(): Konva.Layer | undefined;
|
|
411
|
+
getUtilityLayer(): Konva.Layer | undefined;
|
|
406
412
|
setStage(stage: Konva.Stage): void;
|
|
407
413
|
getStageConfiguration(): StageConfig;
|
|
408
414
|
getInstanceRecursive(instance: Konva.Node, filterInstanceType?: string[]): Konva.Node;
|
|
415
|
+
getContainerNodes(): WeaveElementInstance[];
|
|
409
416
|
getRegisterManager(): WeaveRegisterManager;
|
|
410
417
|
getPlugins(): Record<string, WeavePlugin>;
|
|
411
418
|
getPlugin<T>(pluginName: string): T;
|
|
@@ -446,6 +453,7 @@ declare class Weave extends Emittery {
|
|
|
446
453
|
bringToFront(node: WeaveElementInstance): void;
|
|
447
454
|
group(nodes: WeaveStateElement[]): void;
|
|
448
455
|
unGroup(group: WeaveStateElement): void;
|
|
456
|
+
pointIntersectsContainerElement(point?: Vector2d): Konva.Node | undefined;
|
|
449
457
|
getMousePointer(point?: Vector2d): WeaveMousePointInfo;
|
|
450
458
|
getMousePointerRelativeToContainer(container: Konva.Group | Konva.Layer): WeaveMousePointInfoSimple;
|
|
451
459
|
nodesToGroupSerialized(instancesToClone: Konva.Node[]): WeaveSerializedGroup;
|
package/dist/sdk.d.ts
CHANGED
|
@@ -274,6 +274,9 @@ declare abstract class WeaveNode implements WeaveNodeBase {
|
|
|
274
274
|
isSelecting(): boolean;
|
|
275
275
|
isPasting(): boolean;
|
|
276
276
|
isNodeSelected(ele: Konva.Node): boolean;
|
|
277
|
+
clearContainerTargets(): void;
|
|
278
|
+
checkIfOverContainer(node: Konva.Node): Konva.Node | undefined;
|
|
279
|
+
moveNodeToContainer(node: Konva.Node): Konva.Node | undefined;
|
|
277
280
|
setupDefaultNodeEvents(node: Konva.Node): void;
|
|
278
281
|
create(key: string, props: WeaveElementAttributes): WeaveStateElement;
|
|
279
282
|
abstract onRender(props: WeaveElementAttributes): WeaveElementInstance;
|
|
@@ -358,8 +361,10 @@ declare class WeaveStageManager {
|
|
|
358
361
|
setStage(stage: Konva.Stage): void;
|
|
359
362
|
getStage(): Konva.Stage;
|
|
360
363
|
getMainLayer(): Konva.Layer | undefined;
|
|
364
|
+
getUtilityLayer(): Konva.Layer | undefined;
|
|
361
365
|
getInstanceRecursive(instance: Konva.Node, filterInstanceType?: string[]): Konva.Node;
|
|
362
366
|
initStage(): void;
|
|
367
|
+
getContainerNodes(): WeaveElementInstance[];
|
|
363
368
|
}
|
|
364
369
|
|
|
365
370
|
//#endregion
|
|
@@ -403,9 +408,11 @@ declare class Weave extends Emittery {
|
|
|
403
408
|
getStageManager(): WeaveStageManager;
|
|
404
409
|
getStage(): Konva.Stage;
|
|
405
410
|
getMainLayer(): Konva.Layer | undefined;
|
|
411
|
+
getUtilityLayer(): Konva.Layer | undefined;
|
|
406
412
|
setStage(stage: Konva.Stage): void;
|
|
407
413
|
getStageConfiguration(): StageConfig;
|
|
408
414
|
getInstanceRecursive(instance: Konva.Node, filterInstanceType?: string[]): Konva.Node;
|
|
415
|
+
getContainerNodes(): WeaveElementInstance[];
|
|
409
416
|
getRegisterManager(): WeaveRegisterManager;
|
|
410
417
|
getPlugins(): Record<string, WeavePlugin>;
|
|
411
418
|
getPlugin<T>(pluginName: string): T;
|
|
@@ -446,6 +453,7 @@ declare class Weave extends Emittery {
|
|
|
446
453
|
bringToFront(node: WeaveElementInstance): void;
|
|
447
454
|
group(nodes: WeaveStateElement[]): void;
|
|
448
455
|
unGroup(group: WeaveStateElement): void;
|
|
456
|
+
pointIntersectsContainerElement(point?: Vector2d): Konva.Node | undefined;
|
|
449
457
|
getMousePointer(point?: Vector2d): WeaveMousePointInfo;
|
|
450
458
|
getMousePointerRelativeToContainer(container: Konva.Group | Konva.Layer): WeaveMousePointInfoSimple;
|
|
451
459
|
nodesToGroupSerialized(instancesToClone: Konva.Node[]): WeaveSerializedGroup;
|
package/dist/sdk.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Konva from "konva";
|
|
2
2
|
import "konva/lib/types";
|
|
3
|
-
import { WEAVE_EXPORT_BACKGROUND_COLOR, WEAVE_EXPORT_FILE_FORMAT, WEAVE_EXPORT_FORMATS, WEAVE_INSTANCE_STATUS, WEAVE_NODE_LAYER_ID, WEAVE_NODE_POSITION } from "@inditextech/weave-types";
|
|
3
|
+
import { WEAVE_EXPORT_BACKGROUND_COLOR, WEAVE_EXPORT_FILE_FORMAT, WEAVE_EXPORT_FORMATS, WEAVE_INSTANCE_STATUS, WEAVE_NODE_CUSTOM_EVENTS, WEAVE_NODE_LAYER_ID, WEAVE_NODE_POSITION, WEAVE_UTILITY_LAYER_ID } from "@inditextech/weave-types";
|
|
4
4
|
import { getYjsDoc, getYjsValue, observeDeep, syncedStore } from "@syncedstore/core";
|
|
5
5
|
import { Doc, UndoManager } from "yjs";
|
|
6
6
|
import React from "react";
|
|
@@ -16286,6 +16286,40 @@ var WeaveNode = class {
|
|
|
16286
16286
|
if (selectionPlugin.getSelectedNodes().length === 1 && selectionPlugin.getSelectedNodes()[0].getAttrs().id === ele.getAttrs().id) selected = true;
|
|
16287
16287
|
return selected;
|
|
16288
16288
|
}
|
|
16289
|
+
clearContainerTargets() {
|
|
16290
|
+
const getContainers = this.instance.getContainerNodes();
|
|
16291
|
+
for (const container of getContainers) container.fire(WEAVE_NODE_CUSTOM_EVENTS.onTargetLeave, { bubbles: true });
|
|
16292
|
+
}
|
|
16293
|
+
checkIfOverContainer(node) {
|
|
16294
|
+
const nodesIntersected = this.instance.pointIntersectsContainerElement();
|
|
16295
|
+
let nodeActualContainer = node.getParent();
|
|
16296
|
+
if (nodeActualContainer?.getAttrs().nodeId) nodeActualContainer = this.instance.getStage().findOne(`#${nodeActualContainer.getAttrs().nodeId}`);
|
|
16297
|
+
let layerToMove = void 0;
|
|
16298
|
+
if (!node.getAttrs().containerId && nodesIntersected && nodeActualContainer?.getAttrs().id !== nodesIntersected.getAttrs().id) layerToMove = nodesIntersected;
|
|
16299
|
+
return layerToMove;
|
|
16300
|
+
}
|
|
16301
|
+
moveNodeToContainer(node) {
|
|
16302
|
+
const nodesIntersected = this.instance.pointIntersectsContainerElement();
|
|
16303
|
+
let nodeActualContainer = node.getParent();
|
|
16304
|
+
if (nodeActualContainer?.getAttrs().nodeId) nodeActualContainer = this.instance.getStage().findOne(`#${nodeActualContainer.getAttrs().nodeId}`);
|
|
16305
|
+
let layerToMove = void 0;
|
|
16306
|
+
if (!node.getAttrs().containerId && nodesIntersected && nodeActualContainer?.getAttrs().id !== nodesIntersected.getAttrs().id) layerToMove = nodesIntersected;
|
|
16307
|
+
if (!nodesIntersected && nodeActualContainer?.getAttrs().id !== WEAVE_NODE_LAYER_ID) layerToMove = this.instance.getMainLayer();
|
|
16308
|
+
if (layerToMove) {
|
|
16309
|
+
const nodePos = node.getAbsolutePosition();
|
|
16310
|
+
const nodeRotation = node.getAbsoluteRotation();
|
|
16311
|
+
node.moveTo(layerToMove);
|
|
16312
|
+
node.setAbsolutePosition(nodePos);
|
|
16313
|
+
node.rotation(nodeRotation);
|
|
16314
|
+
node.x(node.x() - (layerToMove.getAttrs().containerOffsetX ?? 0));
|
|
16315
|
+
node.y(node.y() - (layerToMove.getAttrs().containerOffsetY ?? 0));
|
|
16316
|
+
const nodeHandler = this.instance.getNodeHandler(node.getAttrs().nodeType);
|
|
16317
|
+
const actualNode = nodeHandler.serialize(node);
|
|
16318
|
+
this.instance.removeNode(actualNode);
|
|
16319
|
+
this.instance.addNode(actualNode, layerToMove?.getAttrs().id);
|
|
16320
|
+
}
|
|
16321
|
+
return layerToMove;
|
|
16322
|
+
}
|
|
16289
16323
|
setupDefaultNodeEvents(node) {
|
|
16290
16324
|
this.previousPointer = null;
|
|
16291
16325
|
this.instance.addEventListener("onNodesChange", () => {
|
|
@@ -16303,14 +16337,18 @@ var WeaveNode = class {
|
|
|
16303
16337
|
});
|
|
16304
16338
|
node.on("dragmove", (e) => {
|
|
16305
16339
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16340
|
+
this.clearContainerTargets();
|
|
16341
|
+
const layerToMove = this.checkIfOverContainer(e.target);
|
|
16342
|
+
if (layerToMove) layerToMove.fire(WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, { bubbles: true });
|
|
16306
16343
|
this.instance.updateNode(this.serialize(node));
|
|
16307
|
-
e.cancelBubble = true;
|
|
16308
16344
|
}
|
|
16309
16345
|
});
|
|
16310
16346
|
node.on("dragend", (e) => {
|
|
16311
16347
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16348
|
+
this.clearContainerTargets();
|
|
16349
|
+
const layerToMove = this.moveNodeToContainer(e.target);
|
|
16350
|
+
if (layerToMove) return;
|
|
16312
16351
|
this.instance.updateNode(this.serialize(node));
|
|
16313
|
-
e.cancelBubble = true;
|
|
16314
16352
|
}
|
|
16315
16353
|
});
|
|
16316
16354
|
this.previousPointer = null;
|
|
@@ -16960,6 +16998,27 @@ var WeaveTargetingManager = class {
|
|
|
16960
16998
|
this.logger = this.instance.getChildLogger("targeting-manager");
|
|
16961
16999
|
this.logger.debug("Targeting manager created");
|
|
16962
17000
|
}
|
|
17001
|
+
pointIntersectsContainerElement(point) {
|
|
17002
|
+
const stage = this.instance.getStage();
|
|
17003
|
+
const relativeMousePointer = point ? point : stage.getPointerPosition() ?? {
|
|
17004
|
+
x: 0,
|
|
17005
|
+
y: 0
|
|
17006
|
+
};
|
|
17007
|
+
const intersections = this.instance.getMainLayer()?.getAllIntersections(relativeMousePointer);
|
|
17008
|
+
let intersectedNode = void 0;
|
|
17009
|
+
if (intersections) for (const node of intersections) {
|
|
17010
|
+
if (node.getAttrs().nodeId) {
|
|
17011
|
+
const parent = stage.findOne(`#${node.getAttrs().nodeId}`);
|
|
17012
|
+
intersectedNode = parent;
|
|
17013
|
+
break;
|
|
17014
|
+
}
|
|
17015
|
+
if (node.getAttrs().containerId) {
|
|
17016
|
+
intersectedNode = node;
|
|
17017
|
+
break;
|
|
17018
|
+
}
|
|
17019
|
+
}
|
|
17020
|
+
return intersectedNode;
|
|
17021
|
+
}
|
|
16963
17022
|
getMousePointer(point) {
|
|
16964
17023
|
this.logger.debug({ point }, "getMousePointer");
|
|
16965
17024
|
const stage = this.instance.getStage();
|
|
@@ -17431,6 +17490,17 @@ var WeaveStateManager = class {
|
|
|
17431
17490
|
});
|
|
17432
17491
|
return found;
|
|
17433
17492
|
}
|
|
17493
|
+
getContainerNodes(tree) {
|
|
17494
|
+
const found = [];
|
|
17495
|
+
if (tree.props.containerId) {
|
|
17496
|
+
found.push(tree);
|
|
17497
|
+
return found;
|
|
17498
|
+
}
|
|
17499
|
+
if (tree.props?.children && tree.props.children.length > 0) tree.props.children.some((child) => {
|
|
17500
|
+
found.push(...this.getContainerNodes(child));
|
|
17501
|
+
});
|
|
17502
|
+
return found;
|
|
17503
|
+
}
|
|
17434
17504
|
getNode(nodeKey) {
|
|
17435
17505
|
const state = this.instance.getStore().getState().weave;
|
|
17436
17506
|
if ((0, import_lodash.isEmpty)(state)) return {
|
|
@@ -17699,7 +17769,7 @@ var WeaveRegisterManager = class {
|
|
|
17699
17769
|
|
|
17700
17770
|
//#endregion
|
|
17701
17771
|
//#region package.json
|
|
17702
|
-
var version = "0.
|
|
17772
|
+
var version = "0.4.0";
|
|
17703
17773
|
|
|
17704
17774
|
//#endregion
|
|
17705
17775
|
//#region src/managers/setup.ts
|
|
@@ -17771,6 +17841,10 @@ var WeaveStageManager = class {
|
|
|
17771
17841
|
const stage = this.getStage();
|
|
17772
17842
|
return stage.findOne(`#${WEAVE_NODE_LAYER_ID}`);
|
|
17773
17843
|
}
|
|
17844
|
+
getUtilityLayer() {
|
|
17845
|
+
const stage = this.getStage();
|
|
17846
|
+
return stage.findOne(`#${WEAVE_UTILITY_LAYER_ID}`);
|
|
17847
|
+
}
|
|
17774
17848
|
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
17775
17849
|
const attributes = instance.getAttrs();
|
|
17776
17850
|
if (instance.getParent() && instance.getParent()?.getAttrs().nodeType && ![
|
|
@@ -17794,6 +17868,11 @@ var WeaveStageManager = class {
|
|
|
17794
17868
|
stage.draw();
|
|
17795
17869
|
this.setStage(stage);
|
|
17796
17870
|
}
|
|
17871
|
+
getContainerNodes() {
|
|
17872
|
+
return this.instance.getMainLayer()?.find((node) => {
|
|
17873
|
+
return node.getAttrs().containerId;
|
|
17874
|
+
});
|
|
17875
|
+
}
|
|
17797
17876
|
};
|
|
17798
17877
|
|
|
17799
17878
|
//#endregion
|
|
@@ -18153,6 +18232,9 @@ var Weave = class extends Emittery {
|
|
|
18153
18232
|
getMainLayer() {
|
|
18154
18233
|
return this.stageManager.getMainLayer();
|
|
18155
18234
|
}
|
|
18235
|
+
getUtilityLayer() {
|
|
18236
|
+
return this.stageManager.getUtilityLayer();
|
|
18237
|
+
}
|
|
18156
18238
|
setStage(stage) {
|
|
18157
18239
|
this.stageManager.setStage(stage);
|
|
18158
18240
|
}
|
|
@@ -18162,6 +18244,9 @@ var Weave = class extends Emittery {
|
|
|
18162
18244
|
getInstanceRecursive(instance, filterInstanceType = []) {
|
|
18163
18245
|
return this.stageManager.getInstanceRecursive(instance, filterInstanceType);
|
|
18164
18246
|
}
|
|
18247
|
+
getContainerNodes() {
|
|
18248
|
+
return this.stageManager.getContainerNodes();
|
|
18249
|
+
}
|
|
18165
18250
|
getRegisterManager() {
|
|
18166
18251
|
return this.registerManager;
|
|
18167
18252
|
}
|
|
@@ -18282,6 +18367,9 @@ var Weave = class extends Emittery {
|
|
|
18282
18367
|
unGroup(group) {
|
|
18283
18368
|
this.groupsManager.unGroup(group);
|
|
18284
18369
|
}
|
|
18370
|
+
pointIntersectsContainerElement(point) {
|
|
18371
|
+
return this.targetingManager.pointIntersectsContainerElement(point);
|
|
18372
|
+
}
|
|
18285
18373
|
getMousePointer(point) {
|
|
18286
18374
|
return this.targetingManager.getMousePointer(point);
|
|
18287
18375
|
}
|
|
@@ -19327,6 +19415,9 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19327
19415
|
const frame = new Konva.Group({
|
|
19328
19416
|
...frameParams,
|
|
19329
19417
|
containerId: `${id}-group-internal`,
|
|
19418
|
+
containerOffsetX: 0,
|
|
19419
|
+
containerOffsetY: titleHeight + strokeWidth,
|
|
19420
|
+
isTarget: false,
|
|
19330
19421
|
width: frameWidth + strokeWidth * 2,
|
|
19331
19422
|
height: frameHeight + titleHeight + strokeWidth * 2,
|
|
19332
19423
|
fill: "#ffffffff",
|
|
@@ -19382,6 +19473,20 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19382
19473
|
});
|
|
19383
19474
|
frame.add(frameInternal);
|
|
19384
19475
|
this.setupDefaultNodeEvents(frame);
|
|
19476
|
+
frame.on(WEAVE_NODE_CUSTOM_EVENTS.onTargetLeave, () => {
|
|
19477
|
+
background.setAttrs({
|
|
19478
|
+
stroke: "#000000ff",
|
|
19479
|
+
strokeWidth: 2,
|
|
19480
|
+
fill: "#ffffffff"
|
|
19481
|
+
});
|
|
19482
|
+
});
|
|
19483
|
+
frame.on(WEAVE_NODE_CUSTOM_EVENTS.onTargetEnter, () => {
|
|
19484
|
+
background.setAttrs({
|
|
19485
|
+
stroke: "#ff6863ff",
|
|
19486
|
+
strokeWidth: 2,
|
|
19487
|
+
fill: "#ecececff"
|
|
19488
|
+
});
|
|
19489
|
+
});
|
|
19385
19490
|
return frame;
|
|
19386
19491
|
}
|
|
19387
19492
|
onUpdate(nodeInstance, nextProps) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"bump:snapshot": "npm version $npm_package_version.$(date \"+%s\")",
|
|
27
27
|
"bundle:analyze": "vite-bundle-visualizer",
|
|
28
28
|
"check": "echo \"Monorepo test script\" && exit 0",
|
|
29
|
-
"dev": "
|
|
29
|
+
"dev": "tsdown --watch",
|
|
30
30
|
"dev:test": "vitest --passWithNoTests --coverage",
|
|
31
31
|
"dist:tag": "npm dist-tag add \"$(jq -r .name package.json)@$(jq -r .version package.json)\" \"$PR_TAG\" --registry=\"$NPM_PUBLISHING_REGISTRY\" --verbose",
|
|
32
32
|
"format": "npm run lint -- --quiet --fix --fix-type layout",
|
|
@@ -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.4.0",
|
|
47
47
|
"@syncedstore/core": "0.6.0",
|
|
48
48
|
"canvas": "3.1.0",
|
|
49
49
|
"konva": "9.3.20",
|