@inditextech/weave-sdk 0.5.0 → 0.7.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 +155 -60
- package/dist/sdk.d.cts +22 -4
- package/dist/sdk.d.ts +22 -4
- package/dist/sdk.js +153 -61
- package/package.json +2 -2
package/dist/sdk.cjs
CHANGED
|
@@ -15793,6 +15793,14 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15793
15793
|
const layer = new konva.default.Layer({ id: this.getLayerName() });
|
|
15794
15794
|
stage.add(layer);
|
|
15795
15795
|
}
|
|
15796
|
+
isSelecting() {
|
|
15797
|
+
return this.instance.getActiveAction() === "selectionTool";
|
|
15798
|
+
}
|
|
15799
|
+
isNodeSelected(ele) {
|
|
15800
|
+
let selected = false;
|
|
15801
|
+
if (this.getSelectedNodes().length === 1 && this.getSelectedNodes()[0].getAttrs().id === ele.getAttrs().id) selected = true;
|
|
15802
|
+
return selected;
|
|
15803
|
+
}
|
|
15796
15804
|
onInit() {
|
|
15797
15805
|
const stage = this.instance.getStage();
|
|
15798
15806
|
const selectionLayer = this.getLayer();
|
|
@@ -15812,6 +15820,21 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15812
15820
|
...this.config.transformer
|
|
15813
15821
|
});
|
|
15814
15822
|
selectionLayer?.add(tr);
|
|
15823
|
+
tr.on("transform", (e) => {
|
|
15824
|
+
const node = e.target;
|
|
15825
|
+
const nodesSnappingPlugin = this.instance.getPlugin("nodesSnapping");
|
|
15826
|
+
if (nodesSnappingPlugin && this.isSelecting() && this.isNodeSelected(node)) nodesSnappingPlugin.evaluateGuidelines(e);
|
|
15827
|
+
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
15828
|
+
const nodeHandler = this.instance.getNodeHandler(node.getAttrs().nodeType);
|
|
15829
|
+
this.instance.updateNode(nodeHandler.serialize(node));
|
|
15830
|
+
e.cancelBubble = true;
|
|
15831
|
+
}
|
|
15832
|
+
});
|
|
15833
|
+
tr.on("transformend", (e) => {
|
|
15834
|
+
const node = e.target;
|
|
15835
|
+
const nodesSnappingPlugin = this.instance.getPlugin("nodesSnapping");
|
|
15836
|
+
if (nodesSnappingPlugin && this.isSelecting() && this.isNodeSelected(node)) nodesSnappingPlugin.cleanupEvaluateGuidelines();
|
|
15837
|
+
});
|
|
15815
15838
|
tr.on("mouseenter", (e) => {
|
|
15816
15839
|
const stage$1 = this.instance.getStage();
|
|
15817
15840
|
stage$1.container().style.cursor = "grab";
|
|
@@ -16342,12 +16365,6 @@ var WeaveNode = class {
|
|
|
16342
16365
|
}
|
|
16343
16366
|
node.draggable(false);
|
|
16344
16367
|
});
|
|
16345
|
-
node.on("transform", (e) => {
|
|
16346
|
-
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16347
|
-
this.instance.updateNode(this.serialize(node));
|
|
16348
|
-
e.cancelBubble = true;
|
|
16349
|
-
}
|
|
16350
|
-
});
|
|
16351
16368
|
node.on("dragmove", (e) => {
|
|
16352
16369
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16353
16370
|
this.clearContainerTargets();
|
|
@@ -17789,7 +17806,7 @@ var WeaveRegisterManager = class {
|
|
|
17789
17806
|
|
|
17790
17807
|
//#endregion
|
|
17791
17808
|
//#region package.json
|
|
17792
|
-
var version = "0.
|
|
17809
|
+
var version = "0.7.0";
|
|
17793
17810
|
|
|
17794
17811
|
//#endregion
|
|
17795
17812
|
//#region src/managers/setup.ts
|
|
@@ -18941,6 +18958,7 @@ var WeaveImageToolAction = class extends WeaveAction {
|
|
|
18941
18958
|
imageURL: this.imageURL,
|
|
18942
18959
|
stroke: "#000000ff",
|
|
18943
18960
|
strokeWidth: 0,
|
|
18961
|
+
strokeScaleEnabled: false,
|
|
18944
18962
|
imageInfo: {
|
|
18945
18963
|
width: this.preloadImgs[this.imageId].width,
|
|
18946
18964
|
height: this.preloadImgs[this.imageId].height
|
|
@@ -19554,6 +19572,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19554
19572
|
width: props.frameWidth,
|
|
19555
19573
|
stroke: props.borderColor,
|
|
19556
19574
|
strokeWidth: props.borderWidth,
|
|
19575
|
+
strokeScaleEnabled: false,
|
|
19557
19576
|
height: props.frameHeight,
|
|
19558
19577
|
fill: "#ffffffff",
|
|
19559
19578
|
draggable: false
|
|
@@ -19571,6 +19590,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19571
19590
|
text: props.title,
|
|
19572
19591
|
stroke: "#000000ff",
|
|
19573
19592
|
strokeWidth: 1,
|
|
19593
|
+
strokeScaleEnabled: false,
|
|
19574
19594
|
listening: false,
|
|
19575
19595
|
draggable: false
|
|
19576
19596
|
});
|
|
@@ -19584,6 +19604,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19584
19604
|
height: props.frameHeight,
|
|
19585
19605
|
draggable: false,
|
|
19586
19606
|
stroke: "transparent",
|
|
19607
|
+
strokeScaleEnabled: false,
|
|
19587
19608
|
borderWidth: props.borderWidth,
|
|
19588
19609
|
clipX: 0,
|
|
19589
19610
|
clipY: 0,
|
|
@@ -20162,6 +20183,7 @@ var WeaveRectangleToolAction = class extends WeaveAction {
|
|
|
20162
20183
|
const nodeHandler = this.instance.getNodeHandler("rectangle");
|
|
20163
20184
|
const node = nodeHandler.create(this.rectId, {
|
|
20164
20185
|
...this.props,
|
|
20186
|
+
strokeScaleEnabled: false,
|
|
20165
20187
|
x: this.clickPoint?.x ?? 0,
|
|
20166
20188
|
y: this.clickPoint?.y ?? 0,
|
|
20167
20189
|
width: 0,
|
|
@@ -20326,6 +20348,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20326
20348
|
const nodeHandler = this.instance.getNodeHandler("line");
|
|
20327
20349
|
const node = nodeHandler.create(this.lineId, {
|
|
20328
20350
|
...this.props,
|
|
20351
|
+
strokeScaleEnabled: false,
|
|
20329
20352
|
x: this.clickPoint?.x ?? 0,
|
|
20330
20353
|
y: this.clickPoint?.y ?? 0,
|
|
20331
20354
|
points: [0, 0]
|
|
@@ -20335,6 +20358,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20335
20358
|
x: this.clickPoint?.x ?? 0,
|
|
20336
20359
|
y: this.clickPoint?.y ?? 0,
|
|
20337
20360
|
radius: 5 / stage.scaleX(),
|
|
20361
|
+
strokeScaleEnabled: false,
|
|
20338
20362
|
stroke: "#cccccc",
|
|
20339
20363
|
strokeWidth: 0,
|
|
20340
20364
|
fill: "#cccccc"
|
|
@@ -20351,6 +20375,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20351
20375
|
x: this.clickPoint?.x ?? 0,
|
|
20352
20376
|
y: this.clickPoint?.y ?? 0,
|
|
20353
20377
|
radius: 5 / stage.scaleX(),
|
|
20378
|
+
strokeScaleEnabled: false,
|
|
20354
20379
|
stroke: "#cccccc",
|
|
20355
20380
|
strokeWidth: 0,
|
|
20356
20381
|
fill: "#cccccc"
|
|
@@ -20543,6 +20568,7 @@ var WeaveBrushToolAction = class extends WeaveAction {
|
|
|
20543
20568
|
const nodeHandler = this.instance.getNodeHandler("line");
|
|
20544
20569
|
const node = nodeHandler.create(this.strokeId, {
|
|
20545
20570
|
...this.props,
|
|
20571
|
+
strokeScaleEnabled: false,
|
|
20546
20572
|
x: this.clickPoint?.x ?? 0,
|
|
20547
20573
|
y: this.clickPoint?.y ?? 0,
|
|
20548
20574
|
points: [0, 0]
|
|
@@ -20688,6 +20714,7 @@ var WeaveTextToolAction = class extends WeaveAction {
|
|
|
20688
20714
|
strokeEnabled: false,
|
|
20689
20715
|
stroke: "#000000ff",
|
|
20690
20716
|
strokeWidth: 1,
|
|
20717
|
+
strokeScaleEnabled: false,
|
|
20691
20718
|
align: "left",
|
|
20692
20719
|
verticalAlign: "top",
|
|
20693
20720
|
opacity: 1,
|
|
@@ -21616,6 +21643,13 @@ var WeaveStageDropAreaPlugin = class extends WeavePlugin {
|
|
|
21616
21643
|
//#region src/plugins/nodes-snapping/constants.ts
|
|
21617
21644
|
const WEAVE_NODES_SNAPPING_KEY = "nodesSnapping";
|
|
21618
21645
|
const GUIDE_LINE_NAME = "guide-line";
|
|
21646
|
+
const GUIDE_LINE_DEFAULT_CONFIG = {
|
|
21647
|
+
stroke: "rgb(0, 161, 255)",
|
|
21648
|
+
strokeWidth: 1,
|
|
21649
|
+
dash: [4, 6]
|
|
21650
|
+
};
|
|
21651
|
+
const GUIDE_LINE_DRAG_SNAPPING_THRESHOLD = 10;
|
|
21652
|
+
const GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD = 10;
|
|
21619
21653
|
const GUIDE_ORIENTATION = {
|
|
21620
21654
|
["HORIZONTAL"]: "H",
|
|
21621
21655
|
["VERTICAL"]: "V"
|
|
@@ -21629,9 +21663,12 @@ const NODE_SNAP = {
|
|
|
21629
21663
|
//#endregion
|
|
21630
21664
|
//#region src/plugins/nodes-snapping/nodes-snapping.ts
|
|
21631
21665
|
var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
21632
|
-
constructor() {
|
|
21666
|
+
constructor(params) {
|
|
21633
21667
|
super();
|
|
21634
|
-
|
|
21668
|
+
const { config } = params ?? {};
|
|
21669
|
+
this.guideLineConfig = config?.guideLine ?? GUIDE_LINE_DEFAULT_CONFIG;
|
|
21670
|
+
this.dragSnappingThreshold = config?.dragSnappingThreshold ?? GUIDE_LINE_DRAG_SNAPPING_THRESHOLD;
|
|
21671
|
+
this.transformSnappingThreshold = config?.transformSnappingThreshold ?? GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD;
|
|
21635
21672
|
this.enabled = true;
|
|
21636
21673
|
}
|
|
21637
21674
|
getName() {
|
|
@@ -21643,42 +21680,76 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21643
21680
|
setEnabled(enabled) {
|
|
21644
21681
|
this.enabled = enabled;
|
|
21645
21682
|
}
|
|
21646
|
-
|
|
21647
|
-
const stage = this.instance.getStage();
|
|
21683
|
+
evaluateGuidelines(e) {
|
|
21648
21684
|
const mainLayer = this.instance.getMainLayer();
|
|
21649
|
-
if (
|
|
21650
|
-
|
|
21651
|
-
|
|
21652
|
-
|
|
21653
|
-
|
|
21654
|
-
|
|
21655
|
-
|
|
21656
|
-
|
|
21657
|
-
|
|
21658
|
-
|
|
21659
|
-
|
|
21660
|
-
|
|
21661
|
-
|
|
21662
|
-
|
|
21685
|
+
if (!this.enabled) return;
|
|
21686
|
+
if (!mainLayer) return;
|
|
21687
|
+
let node = void 0;
|
|
21688
|
+
if (e.type === "dragmove" && e.target instanceof konva.default.Transformer) {
|
|
21689
|
+
const actualTarget = e.target;
|
|
21690
|
+
node = actualTarget.getNodes()[0];
|
|
21691
|
+
}
|
|
21692
|
+
if (e.type === "transform") node = e.target;
|
|
21693
|
+
if (typeof node === "undefined") return;
|
|
21694
|
+
mainLayer.find(`.${GUIDE_LINE_NAME}`).forEach((l) => l.destroy());
|
|
21695
|
+
const lineGuideStops = this.getLineGuideStops(node);
|
|
21696
|
+
const itemBounds = this.getObjectSnappingEdges(node);
|
|
21697
|
+
const guides = this.getGuides(lineGuideStops, itemBounds, e.type);
|
|
21698
|
+
if (!guides.length) return;
|
|
21699
|
+
this.drawGuides(guides);
|
|
21700
|
+
if (e.type === "dragmove") {
|
|
21701
|
+
const absPos = node.absolutePosition();
|
|
21702
|
+
guides.forEach((lg) => {
|
|
21703
|
+
switch (lg.orientation) {
|
|
21704
|
+
case GUIDE_ORIENTATION.VERTICAL: {
|
|
21705
|
+
absPos.x = lg.lineGuide + lg.offset;
|
|
21706
|
+
break;
|
|
21707
|
+
}
|
|
21708
|
+
case GUIDE_ORIENTATION.HORIZONTAL: {
|
|
21709
|
+
absPos.y = lg.lineGuide + lg.offset;
|
|
21710
|
+
break;
|
|
21711
|
+
}
|
|
21712
|
+
}
|
|
21713
|
+
});
|
|
21714
|
+
node.absolutePosition(absPos);
|
|
21715
|
+
}
|
|
21716
|
+
if (e.type === "transform") {
|
|
21717
|
+
const nodesSelectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
21718
|
+
if (nodesSelectionPlugin) {
|
|
21719
|
+
const transformer = nodesSelectionPlugin.getTransformer();
|
|
21720
|
+
transformer.anchorDragBoundFunc((_, newAbsPos) => {
|
|
21721
|
+
const finalPos = { ...newAbsPos };
|
|
21663
21722
|
guides.forEach((lg) => {
|
|
21664
21723
|
switch (lg.orientation) {
|
|
21665
21724
|
case GUIDE_ORIENTATION.VERTICAL: {
|
|
21666
|
-
|
|
21725
|
+
const distX = Math.sqrt(Math.pow(newAbsPos.x - lg.lineGuide, 2));
|
|
21726
|
+
if (distX < this.transformSnappingThreshold) finalPos.x = lg.lineGuide;
|
|
21667
21727
|
break;
|
|
21668
21728
|
}
|
|
21669
21729
|
case GUIDE_ORIENTATION.HORIZONTAL: {
|
|
21670
|
-
|
|
21730
|
+
const distY = Math.sqrt(Math.pow(newAbsPos.y - lg.lineGuide, 2));
|
|
21731
|
+
if (distY < this.transformSnappingThreshold) finalPos.y = lg.lineGuide;
|
|
21671
21732
|
break;
|
|
21672
21733
|
}
|
|
21673
21734
|
}
|
|
21674
21735
|
});
|
|
21675
|
-
|
|
21676
|
-
}
|
|
21677
|
-
}
|
|
21678
|
-
|
|
21679
|
-
|
|
21680
|
-
|
|
21681
|
-
|
|
21736
|
+
return finalPos;
|
|
21737
|
+
});
|
|
21738
|
+
}
|
|
21739
|
+
}
|
|
21740
|
+
}
|
|
21741
|
+
cleanupEvaluateGuidelines() {
|
|
21742
|
+
const mainLayer = this.instance.getMainLayer();
|
|
21743
|
+
if (!this.enabled) return;
|
|
21744
|
+
if (!mainLayer) return;
|
|
21745
|
+
mainLayer.find(`.${GUIDE_LINE_NAME}`).forEach((l) => l.destroy());
|
|
21746
|
+
}
|
|
21747
|
+
initEvents() {
|
|
21748
|
+
const stage = this.instance.getStage();
|
|
21749
|
+
const mainLayer = this.instance.getMainLayer();
|
|
21750
|
+
if (mainLayer) {
|
|
21751
|
+
stage.on("dragmove", this.evaluateGuidelines.bind(this));
|
|
21752
|
+
stage.on("dragend", this.cleanupEvaluateGuidelines.bind(this));
|
|
21682
21753
|
}
|
|
21683
21754
|
}
|
|
21684
21755
|
getLineGuideStops(skipShape) {
|
|
@@ -21715,7 +21786,7 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21715
21786
|
getObjectSnappingEdges(node) {
|
|
21716
21787
|
const box = node.getClientRect();
|
|
21717
21788
|
const absPos = node.absolutePosition();
|
|
21718
|
-
|
|
21789
|
+
const snappingEdges = {
|
|
21719
21790
|
vertical: [
|
|
21720
21791
|
{
|
|
21721
21792
|
guide: Math.round(box.x),
|
|
@@ -21751,14 +21822,15 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21751
21822
|
}
|
|
21752
21823
|
]
|
|
21753
21824
|
};
|
|
21825
|
+
return snappingEdges;
|
|
21754
21826
|
}
|
|
21755
|
-
getGuides(lineGuideStops, itemBounds) {
|
|
21827
|
+
getGuides(lineGuideStops, itemBounds, type) {
|
|
21756
21828
|
const resultV = [];
|
|
21757
21829
|
const resultH = [];
|
|
21758
21830
|
lineGuideStops.vertical.forEach((lineGuide) => {
|
|
21759
21831
|
itemBounds.vertical.forEach((itemBound) => {
|
|
21760
21832
|
const diff = Math.abs(lineGuide - itemBound.guide);
|
|
21761
|
-
if (diff < this.
|
|
21833
|
+
if (diff < this.dragSnappingThreshold) resultV.push({
|
|
21762
21834
|
lineGuide,
|
|
21763
21835
|
diff,
|
|
21764
21836
|
snap: itemBound.snap,
|
|
@@ -21769,7 +21841,7 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21769
21841
|
lineGuideStops.horizontal.forEach((lineGuide) => {
|
|
21770
21842
|
itemBounds.horizontal.forEach((itemBound) => {
|
|
21771
21843
|
const diff = Math.abs(lineGuide - itemBound.guide);
|
|
21772
|
-
if (diff < this.
|
|
21844
|
+
if (diff < this.dragSnappingThreshold) resultH.push({
|
|
21773
21845
|
lineGuide,
|
|
21774
21846
|
diff,
|
|
21775
21847
|
snap: itemBound.snap,
|
|
@@ -21778,20 +21850,40 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21778
21850
|
});
|
|
21779
21851
|
});
|
|
21780
21852
|
const guides = [];
|
|
21781
|
-
|
|
21782
|
-
|
|
21783
|
-
|
|
21784
|
-
|
|
21785
|
-
|
|
21786
|
-
|
|
21787
|
-
|
|
21788
|
-
|
|
21789
|
-
|
|
21790
|
-
|
|
21791
|
-
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21853
|
+
if (type === "dragmove") {
|
|
21854
|
+
const minV = resultV.sort((a, b) => a.diff - b.diff)[0];
|
|
21855
|
+
const minH = resultH.sort((a, b) => a.diff - b.diff)[0];
|
|
21856
|
+
if (minV) guides.push({
|
|
21857
|
+
lineGuide: minV.lineGuide,
|
|
21858
|
+
offset: minV.offset,
|
|
21859
|
+
orientation: GUIDE_ORIENTATION.VERTICAL,
|
|
21860
|
+
snap: minV.snap
|
|
21861
|
+
});
|
|
21862
|
+
if (minH) guides.push({
|
|
21863
|
+
lineGuide: minH.lineGuide,
|
|
21864
|
+
offset: minH.offset,
|
|
21865
|
+
orientation: GUIDE_ORIENTATION.HORIZONTAL,
|
|
21866
|
+
snap: minH.snap
|
|
21867
|
+
});
|
|
21868
|
+
}
|
|
21869
|
+
if (type === "transform") {
|
|
21870
|
+
resultV.forEach((v) => {
|
|
21871
|
+
guides.push({
|
|
21872
|
+
lineGuide: v.lineGuide,
|
|
21873
|
+
offset: v.offset,
|
|
21874
|
+
orientation: GUIDE_ORIENTATION.VERTICAL,
|
|
21875
|
+
snap: v.snap
|
|
21876
|
+
});
|
|
21877
|
+
});
|
|
21878
|
+
resultH.forEach((h) => {
|
|
21879
|
+
guides.push({
|
|
21880
|
+
lineGuide: h.lineGuide,
|
|
21881
|
+
offset: h.offset,
|
|
21882
|
+
orientation: GUIDE_ORIENTATION.HORIZONTAL,
|
|
21883
|
+
snap: h.snap
|
|
21884
|
+
});
|
|
21885
|
+
});
|
|
21886
|
+
}
|
|
21795
21887
|
return guides;
|
|
21796
21888
|
}
|
|
21797
21889
|
drawGuides(guides) {
|
|
@@ -21800,16 +21892,16 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21800
21892
|
if (mainLayer) guides.forEach((lg) => {
|
|
21801
21893
|
if (lg.orientation === GUIDE_ORIENTATION.HORIZONTAL) {
|
|
21802
21894
|
const line = new konva.default.Line({
|
|
21895
|
+
...this.guideLineConfig,
|
|
21896
|
+
strokeWidth: (this.guideLineConfig.strokeWidth ?? GUIDE_LINE_DEFAULT_CONFIG.strokeWidth) / stage.scaleX(),
|
|
21897
|
+
dash: this.guideLineConfig.dash?.map((e) => e / stage.scaleX()),
|
|
21803
21898
|
points: [
|
|
21804
21899
|
-6e3,
|
|
21805
21900
|
0,
|
|
21806
21901
|
6e3,
|
|
21807
21902
|
0
|
|
21808
21903
|
],
|
|
21809
|
-
|
|
21810
|
-
strokeWidth: 1 / stage.scaleX(),
|
|
21811
|
-
name: GUIDE_LINE_NAME,
|
|
21812
|
-
dash: [4 / stage.scaleX(), 6 / stage.scaleX()]
|
|
21904
|
+
name: GUIDE_LINE_NAME
|
|
21813
21905
|
});
|
|
21814
21906
|
mainLayer.add(line);
|
|
21815
21907
|
line.absolutePosition({
|
|
@@ -21819,16 +21911,16 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21819
21911
|
}
|
|
21820
21912
|
if (lg.orientation === GUIDE_ORIENTATION.VERTICAL) {
|
|
21821
21913
|
const line = new konva.default.Line({
|
|
21914
|
+
...this.guideLineConfig,
|
|
21915
|
+
strokeWidth: (this.guideLineConfig.strokeWidth ?? GUIDE_LINE_DEFAULT_CONFIG.strokeWidth) / stage.scaleX(),
|
|
21916
|
+
dash: this.guideLineConfig.dash?.map((e) => e / stage.scaleX()),
|
|
21822
21917
|
points: [
|
|
21823
21918
|
0,
|
|
21824
21919
|
-6e3,
|
|
21825
21920
|
0,
|
|
21826
21921
|
6e3
|
|
21827
21922
|
],
|
|
21828
|
-
|
|
21829
|
-
strokeWidth: 1 / stage.scaleX(),
|
|
21830
|
-
name: GUIDE_LINE_NAME,
|
|
21831
|
-
dash: [4 / stage.scaleX(), 6 / stage.scaleX()]
|
|
21923
|
+
name: GUIDE_LINE_NAME
|
|
21832
21924
|
});
|
|
21833
21925
|
mainLayer.add(line);
|
|
21834
21926
|
line.absolutePosition({
|
|
@@ -21851,7 +21943,10 @@ exports.BRUSH_TOOL_STATE = BRUSH_TOOL_STATE
|
|
|
21851
21943
|
exports.COPY_PASTE_NODES_PLUGIN_STATE = COPY_PASTE_NODES_PLUGIN_STATE
|
|
21852
21944
|
exports.FRAME_TOOL_ACTION_NAME = FRAME_TOOL_ACTION_NAME
|
|
21853
21945
|
exports.FRAME_TOOL_STATE = FRAME_TOOL_STATE
|
|
21946
|
+
exports.GUIDE_LINE_DEFAULT_CONFIG = GUIDE_LINE_DEFAULT_CONFIG
|
|
21947
|
+
exports.GUIDE_LINE_DRAG_SNAPPING_THRESHOLD = GUIDE_LINE_DRAG_SNAPPING_THRESHOLD
|
|
21854
21948
|
exports.GUIDE_LINE_NAME = GUIDE_LINE_NAME
|
|
21949
|
+
exports.GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD = GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD
|
|
21855
21950
|
exports.GUIDE_ORIENTATION = GUIDE_ORIENTATION
|
|
21856
21951
|
exports.IMAGE_TOOL_STATE = IMAGE_TOOL_STATE
|
|
21857
21952
|
exports.MOVE_TOOL_ACTION_NAME = MOVE_TOOL_ACTION_NAME
|
package/dist/sdk.d.cts
CHANGED
|
@@ -5,6 +5,7 @@ import pino, { Logger } from "pino";
|
|
|
5
5
|
import * as Y from "yjs";
|
|
6
6
|
import { Doc } from "yjs";
|
|
7
7
|
import { StageConfig } from "konva/lib/Stage";
|
|
8
|
+
import { KonvaEventObject } from "konva/lib/Node";
|
|
8
9
|
|
|
9
10
|
//#region ../types/dist/types.d.ts
|
|
10
11
|
declare const WEAVE_INSTANCE_STATUS: {
|
|
@@ -255,6 +256,8 @@ declare class WeaveNodesSelectionPlugin extends WeavePlugin {
|
|
|
255
256
|
getName(): string;
|
|
256
257
|
getLayerName(): string;
|
|
257
258
|
initLayer(): void;
|
|
259
|
+
isSelecting(): boolean;
|
|
260
|
+
isNodeSelected(ele: Konva.Node): boolean;
|
|
258
261
|
onInit(): void;
|
|
259
262
|
private getLayer;
|
|
260
263
|
private triggerSelectedNodesEvent;
|
|
@@ -1462,6 +1465,9 @@ declare class WeaveCopyPasteNodesPlugin extends WeavePlugin {
|
|
|
1462
1465
|
//#region src/plugins/nodes-snapping/constants.d.ts
|
|
1463
1466
|
declare const WEAVE_NODES_SNAPPING_KEY = "nodesSnapping";
|
|
1464
1467
|
declare const GUIDE_LINE_NAME = "guide-line";
|
|
1468
|
+
declare const GUIDE_LINE_DEFAULT_CONFIG: Required<Pick<Konva.LineConfig, "stroke" | "strokeWidth" | "dash">>;
|
|
1469
|
+
declare const GUIDE_LINE_DRAG_SNAPPING_THRESHOLD = 10;
|
|
1470
|
+
declare const GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD = 10;
|
|
1465
1471
|
declare const GUIDE_ORIENTATION: {
|
|
1466
1472
|
readonly "HORIZONTAL": "H";
|
|
1467
1473
|
readonly "VERTICAL": "V";
|
|
@@ -1503,24 +1509,36 @@ type Guide = {
|
|
|
1503
1509
|
orientation: GuideOrientation;
|
|
1504
1510
|
snap: NodeSnap;
|
|
1505
1511
|
};
|
|
1512
|
+
type WeaveNodesSnappingPluginConfig = {
|
|
1513
|
+
guideLine: Konva.LineConfig;
|
|
1514
|
+
dragSnappingThreshold: number;
|
|
1515
|
+
transformSnappingThreshold: number;
|
|
1516
|
+
};
|
|
1517
|
+
type WeaveNodesSnappingPluginParams = {
|
|
1518
|
+
config?: WeaveNodesSnappingPluginConfig;
|
|
1519
|
+
};
|
|
1506
1520
|
|
|
1507
1521
|
//#endregion
|
|
1508
1522
|
//#region src/plugins/nodes-snapping/nodes-snapping.d.ts
|
|
1509
1523
|
declare class WeaveNodesSnappingPlugin extends WeavePlugin {
|
|
1510
|
-
private
|
|
1524
|
+
private guideLineConfig;
|
|
1525
|
+
private dragSnappingThreshold;
|
|
1526
|
+
private transformSnappingThreshold;
|
|
1511
1527
|
onRender: undefined;
|
|
1512
|
-
constructor();
|
|
1528
|
+
constructor(params?: Partial<WeaveNodesSnappingPluginParams>);
|
|
1513
1529
|
getName(): string;
|
|
1514
1530
|
onInit(): void;
|
|
1515
1531
|
setEnabled(enabled: boolean): void;
|
|
1532
|
+
evaluateGuidelines(e: KonvaEventObject<any>): void;
|
|
1533
|
+
cleanupEvaluateGuidelines(): void;
|
|
1516
1534
|
private initEvents;
|
|
1517
1535
|
getLineGuideStops(skipShape: Konva.Node): LineGuideStop;
|
|
1518
1536
|
getObjectSnappingEdges(node: Konva.Node): NodeSnappingEdges;
|
|
1519
|
-
getGuides(lineGuideStops: LineGuideStop, itemBounds: NodeSnappingEdges): Guide[];
|
|
1537
|
+
getGuides(lineGuideStops: LineGuideStop, itemBounds: NodeSnappingEdges, type: string): Guide[];
|
|
1520
1538
|
drawGuides(guides: Guide[]): void;
|
|
1521
1539
|
enable(): void;
|
|
1522
1540
|
disable(): void;
|
|
1523
1541
|
}
|
|
1524
1542
|
|
|
1525
1543
|
//#endregion
|
|
1526
|
-
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_NAME, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_STATE, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, TextSerializable, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveActionCallbacks, WeaveActionPropsChangeCallback, WeaveBrushToolAction, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveBrushToolCallbacks, WeaveConnectedUserInfoKey, WeaveConnectedUsersChangeCallback, WeaveConnectedUsersChanged, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginCallbacks, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesCanCopyChangeCallback, WeaveCopyPasteNodesCanPasteChangeCallback, WeaveCopyPasteNodesOnCopyCallback, WeaveCopyPasteNodesOnPasteCallback, WeaveCopyPasteNodesOnPasteExternalCallback, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginCallbacks, WeaveCopyPasteNodesPluginParams, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveExportNodeActionParams, WeaveExportNodeToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeSizes, WeaveFrameNodeSizesInfo, WeaveFrameNodeSizesKeys, WeaveFrameNodeSizesOrientation, WeaveFrameNodeSizesOrientationKeys, WeaveFrameToolAction, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolCallbacks, WeaveFrameToolProps, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImageToolActionCallbacks, WeaveImageToolActionOnAddImageCallback, WeaveImageToolActionOnEndLoadImageCallback, WeaveImageToolActionOnStartLoadImageCallback, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionChangeCallback, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginCallbacks, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginParams, WeaveNodesSelectionStageSelectionCallback, WeaveNodesSnappingPlugin, WeaveOnNodeMenuCallback, WeavePasteModel, WeavePenToolAction, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePenToolCallbacks, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRectangleToolCallbacks, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginCallbacks, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropAreaPluginCallbacks, WeaveStageDropAreaPluginParams, WeaveStageDropCallback, WeaveStageDropUploadFileCallback, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomOnZoomChangeCallback, WeaveStageZoomPlugin, WeaveStageZoomPluginCallbacks, WeaveStageZoomPluginConfig, WeaveStageZoomPluginParams, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, resetScale };
|
|
1544
|
+
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_STATE, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, TextSerializable, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveActionCallbacks, WeaveActionPropsChangeCallback, WeaveBrushToolAction, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveBrushToolCallbacks, WeaveConnectedUserInfoKey, WeaveConnectedUsersChangeCallback, WeaveConnectedUsersChanged, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginCallbacks, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesCanCopyChangeCallback, WeaveCopyPasteNodesCanPasteChangeCallback, WeaveCopyPasteNodesOnCopyCallback, WeaveCopyPasteNodesOnPasteCallback, WeaveCopyPasteNodesOnPasteExternalCallback, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginCallbacks, WeaveCopyPasteNodesPluginParams, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveExportNodeActionParams, WeaveExportNodeToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeSizes, WeaveFrameNodeSizesInfo, WeaveFrameNodeSizesKeys, WeaveFrameNodeSizesOrientation, WeaveFrameNodeSizesOrientationKeys, WeaveFrameToolAction, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolCallbacks, WeaveFrameToolProps, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImageToolActionCallbacks, WeaveImageToolActionOnAddImageCallback, WeaveImageToolActionOnEndLoadImageCallback, WeaveImageToolActionOnStartLoadImageCallback, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionChangeCallback, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginCallbacks, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginParams, WeaveNodesSelectionStageSelectionCallback, WeaveNodesSnappingPlugin, WeaveNodesSnappingPluginConfig, WeaveNodesSnappingPluginParams, WeaveOnNodeMenuCallback, WeavePasteModel, WeavePenToolAction, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePenToolCallbacks, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRectangleToolCallbacks, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginCallbacks, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropAreaPluginCallbacks, WeaveStageDropAreaPluginParams, WeaveStageDropCallback, WeaveStageDropUploadFileCallback, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomOnZoomChangeCallback, WeaveStageZoomPlugin, WeaveStageZoomPluginCallbacks, WeaveStageZoomPluginConfig, WeaveStageZoomPluginParams, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, resetScale };
|
package/dist/sdk.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { Doc } from "yjs";
|
|
|
5
5
|
import Emittery from "emittery";
|
|
6
6
|
import pino, { Logger } from "pino";
|
|
7
7
|
import { StageConfig } from "konva/lib/Stage";
|
|
8
|
+
import { KonvaEventObject } from "konva/lib/Node";
|
|
8
9
|
|
|
9
10
|
//#region ../types/dist/types.d.ts
|
|
10
11
|
declare const WEAVE_INSTANCE_STATUS: {
|
|
@@ -255,6 +256,8 @@ declare class WeaveNodesSelectionPlugin extends WeavePlugin {
|
|
|
255
256
|
getName(): string;
|
|
256
257
|
getLayerName(): string;
|
|
257
258
|
initLayer(): void;
|
|
259
|
+
isSelecting(): boolean;
|
|
260
|
+
isNodeSelected(ele: Konva.Node): boolean;
|
|
258
261
|
onInit(): void;
|
|
259
262
|
private getLayer;
|
|
260
263
|
private triggerSelectedNodesEvent;
|
|
@@ -1462,6 +1465,9 @@ declare class WeaveCopyPasteNodesPlugin extends WeavePlugin {
|
|
|
1462
1465
|
//#region src/plugins/nodes-snapping/constants.d.ts
|
|
1463
1466
|
declare const WEAVE_NODES_SNAPPING_KEY = "nodesSnapping";
|
|
1464
1467
|
declare const GUIDE_LINE_NAME = "guide-line";
|
|
1468
|
+
declare const GUIDE_LINE_DEFAULT_CONFIG: Required<Pick<Konva.LineConfig, "stroke" | "strokeWidth" | "dash">>;
|
|
1469
|
+
declare const GUIDE_LINE_DRAG_SNAPPING_THRESHOLD = 10;
|
|
1470
|
+
declare const GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD = 10;
|
|
1465
1471
|
declare const GUIDE_ORIENTATION: {
|
|
1466
1472
|
readonly "HORIZONTAL": "H";
|
|
1467
1473
|
readonly "VERTICAL": "V";
|
|
@@ -1503,24 +1509,36 @@ type Guide = {
|
|
|
1503
1509
|
orientation: GuideOrientation;
|
|
1504
1510
|
snap: NodeSnap;
|
|
1505
1511
|
};
|
|
1512
|
+
type WeaveNodesSnappingPluginConfig = {
|
|
1513
|
+
guideLine: Konva.LineConfig;
|
|
1514
|
+
dragSnappingThreshold: number;
|
|
1515
|
+
transformSnappingThreshold: number;
|
|
1516
|
+
};
|
|
1517
|
+
type WeaveNodesSnappingPluginParams = {
|
|
1518
|
+
config?: WeaveNodesSnappingPluginConfig;
|
|
1519
|
+
};
|
|
1506
1520
|
|
|
1507
1521
|
//#endregion
|
|
1508
1522
|
//#region src/plugins/nodes-snapping/nodes-snapping.d.ts
|
|
1509
1523
|
declare class WeaveNodesSnappingPlugin extends WeavePlugin {
|
|
1510
|
-
private
|
|
1524
|
+
private guideLineConfig;
|
|
1525
|
+
private dragSnappingThreshold;
|
|
1526
|
+
private transformSnappingThreshold;
|
|
1511
1527
|
onRender: undefined;
|
|
1512
|
-
constructor();
|
|
1528
|
+
constructor(params?: Partial<WeaveNodesSnappingPluginParams>);
|
|
1513
1529
|
getName(): string;
|
|
1514
1530
|
onInit(): void;
|
|
1515
1531
|
setEnabled(enabled: boolean): void;
|
|
1532
|
+
evaluateGuidelines(e: KonvaEventObject<any>): void;
|
|
1533
|
+
cleanupEvaluateGuidelines(): void;
|
|
1516
1534
|
private initEvents;
|
|
1517
1535
|
getLineGuideStops(skipShape: Konva.Node): LineGuideStop;
|
|
1518
1536
|
getObjectSnappingEdges(node: Konva.Node): NodeSnappingEdges;
|
|
1519
|
-
getGuides(lineGuideStops: LineGuideStop, itemBounds: NodeSnappingEdges): Guide[];
|
|
1537
|
+
getGuides(lineGuideStops: LineGuideStop, itemBounds: NodeSnappingEdges, type: string): Guide[];
|
|
1520
1538
|
drawGuides(guides: Guide[]): void;
|
|
1521
1539
|
enable(): void;
|
|
1522
1540
|
disable(): void;
|
|
1523
1541
|
}
|
|
1524
1542
|
|
|
1525
1543
|
//#endregion
|
|
1526
|
-
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_NAME, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_STATE, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, TextSerializable, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveActionCallbacks, WeaveActionPropsChangeCallback, WeaveBrushToolAction, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveBrushToolCallbacks, WeaveConnectedUserInfoKey, WeaveConnectedUsersChangeCallback, WeaveConnectedUsersChanged, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginCallbacks, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesCanCopyChangeCallback, WeaveCopyPasteNodesCanPasteChangeCallback, WeaveCopyPasteNodesOnCopyCallback, WeaveCopyPasteNodesOnPasteCallback, WeaveCopyPasteNodesOnPasteExternalCallback, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginCallbacks, WeaveCopyPasteNodesPluginParams, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveExportNodeActionParams, WeaveExportNodeToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeSizes, WeaveFrameNodeSizesInfo, WeaveFrameNodeSizesKeys, WeaveFrameNodeSizesOrientation, WeaveFrameNodeSizesOrientationKeys, WeaveFrameToolAction, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolCallbacks, WeaveFrameToolProps, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImageToolActionCallbacks, WeaveImageToolActionOnAddImageCallback, WeaveImageToolActionOnEndLoadImageCallback, WeaveImageToolActionOnStartLoadImageCallback, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionChangeCallback, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginCallbacks, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginParams, WeaveNodesSelectionStageSelectionCallback, WeaveNodesSnappingPlugin, WeaveOnNodeMenuCallback, WeavePasteModel, WeavePenToolAction, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePenToolCallbacks, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRectangleToolCallbacks, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginCallbacks, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropAreaPluginCallbacks, WeaveStageDropAreaPluginParams, WeaveStageDropCallback, WeaveStageDropUploadFileCallback, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomOnZoomChangeCallback, WeaveStageZoomPlugin, WeaveStageZoomPluginCallbacks, WeaveStageZoomPluginConfig, WeaveStageZoomPluginParams, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, resetScale };
|
|
1544
|
+
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, Guide, GuideOrientation, GuideOrientationKeys, IMAGE_TOOL_STATE, ImageProps, LineGuide, LineGuideStop, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, NodeSnap, NodeSnapKeys, NodeSnappingEdge, NodeSnappingEdges, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, TextSerializable, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveActionCallbacks, WeaveActionPropsChangeCallback, WeaveBrushToolAction, WeaveBrushToolActionState, WeaveBrushToolActionStateKeys, WeaveBrushToolCallbacks, WeaveConnectedUserInfoKey, WeaveConnectedUsersChangeCallback, WeaveConnectedUsersChanged, WeaveConnectedUsersPlugin, WeaveConnectedUsersPluginCallbacks, WeaveConnectedUsersPluginConfig, WeaveConnectedUsersPluginParams, WeaveContextMenuPlugin, WeaveCopyPasteNodesCanCopyChangeCallback, WeaveCopyPasteNodesCanPasteChangeCallback, WeaveCopyPasteNodesOnCopyCallback, WeaveCopyPasteNodesOnPasteCallback, WeaveCopyPasteNodesOnPasteExternalCallback, WeaveCopyPasteNodesPlugin, WeaveCopyPasteNodesPluginCallbacks, WeaveCopyPasteNodesPluginParams, WeaveCopyPasteNodesPluginState, WeaveCopyPasteNodesPluginStateKeys, WeaveExportNodeActionParams, WeaveExportNodeToolAction, WeaveExportStageActionParams, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToScreenToolActionParams, WeaveFitToSelectionToolAction, WeaveFitToSelectionToolActionParams, WeaveFrameAttributes, WeaveFrameNode, WeaveFrameNodeSizes, WeaveFrameNodeSizesInfo, WeaveFrameNodeSizesKeys, WeaveFrameNodeSizesOrientation, WeaveFrameNodeSizesOrientationKeys, WeaveFrameToolAction, WeaveFrameToolActionState, WeaveFrameToolActionStateKeys, WeaveFrameToolActionTriggerParams, WeaveFrameToolCallbacks, WeaveFrameToolProps, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveImageToolActionCallbacks, WeaveImageToolActionOnAddImageCallback, WeaveImageToolActionOnEndLoadImageCallback, WeaveImageToolActionOnStartLoadImageCallback, WeaveImageToolActionState, WeaveImageToolActionStateKeys, WeaveImageToolActionTriggerParams, WeaveImageToolActionTriggerReturn, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveMoveToolActionState, WeaveMoveToolActionStateKeys, WeaveNode, WeaveNodesSelectionChangeCallback, WeaveNodesSelectionPlugin, WeaveNodesSelectionPluginCallbacks, WeaveNodesSelectionPluginConfig, WeaveNodesSelectionPluginParams, WeaveNodesSelectionStageSelectionCallback, WeaveNodesSnappingPlugin, WeaveNodesSnappingPluginConfig, WeaveNodesSnappingPluginParams, WeaveOnNodeMenuCallback, WeavePasteModel, WeavePenToolAction, WeavePenToolActionState, WeavePenToolActionStateKeys, WeavePenToolCallbacks, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveRectangleToolActionState, WeaveRectangleToolActionStateKeys, WeaveRectangleToolCallbacks, WeaveSelectionToolAction, WeaveSelectionToolActionState, WeaveSelectionToolActionStateKeys, WeaveStageContextMenuPluginCallbacks, WeaveStageContextMenuPluginConfig, WeaveStageContextMenuPluginParams, WeaveStageDropAreaPlugin, WeaveStageDropAreaPluginCallbacks, WeaveStageDropAreaPluginParams, WeaveStageDropCallback, WeaveStageDropUploadFileCallback, WeaveStageGridPlugin, WeaveStageGridPluginConfig, WeaveStageGridPluginParams, WeaveStageGridType, WeaveStageGridTypeKeys, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomChanged, WeaveStageZoomOnZoomChangeCallback, WeaveStageZoomPlugin, WeaveStageZoomPluginCallbacks, WeaveStageZoomPluginConfig, WeaveStageZoomPluginParams, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveTextToolActionState, WeaveTextToolActionStateKeys, WeaveToPasteNode, WeaveUserPointer, WeaveUserPointerKey, WeaveUsersPointersPlugin, WeaveUsersPointersPluginConfig, WeaveUsersPointersPluginParams, WeaveZoomInToolAction, WeaveZoomInToolActionParams, WeaveZoomOutToolAction, WeaveZoomOutToolActionParams, resetScale };
|
package/dist/sdk.js
CHANGED
|
@@ -15793,6 +15793,14 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15793
15793
|
const layer = new Konva.Layer({ id: this.getLayerName() });
|
|
15794
15794
|
stage.add(layer);
|
|
15795
15795
|
}
|
|
15796
|
+
isSelecting() {
|
|
15797
|
+
return this.instance.getActiveAction() === "selectionTool";
|
|
15798
|
+
}
|
|
15799
|
+
isNodeSelected(ele) {
|
|
15800
|
+
let selected = false;
|
|
15801
|
+
if (this.getSelectedNodes().length === 1 && this.getSelectedNodes()[0].getAttrs().id === ele.getAttrs().id) selected = true;
|
|
15802
|
+
return selected;
|
|
15803
|
+
}
|
|
15796
15804
|
onInit() {
|
|
15797
15805
|
const stage = this.instance.getStage();
|
|
15798
15806
|
const selectionLayer = this.getLayer();
|
|
@@ -15812,6 +15820,21 @@ var WeaveNodesSelectionPlugin = class extends WeavePlugin {
|
|
|
15812
15820
|
...this.config.transformer
|
|
15813
15821
|
});
|
|
15814
15822
|
selectionLayer?.add(tr);
|
|
15823
|
+
tr.on("transform", (e) => {
|
|
15824
|
+
const node = e.target;
|
|
15825
|
+
const nodesSnappingPlugin = this.instance.getPlugin("nodesSnapping");
|
|
15826
|
+
if (nodesSnappingPlugin && this.isSelecting() && this.isNodeSelected(node)) nodesSnappingPlugin.evaluateGuidelines(e);
|
|
15827
|
+
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
15828
|
+
const nodeHandler = this.instance.getNodeHandler(node.getAttrs().nodeType);
|
|
15829
|
+
this.instance.updateNode(nodeHandler.serialize(node));
|
|
15830
|
+
e.cancelBubble = true;
|
|
15831
|
+
}
|
|
15832
|
+
});
|
|
15833
|
+
tr.on("transformend", (e) => {
|
|
15834
|
+
const node = e.target;
|
|
15835
|
+
const nodesSnappingPlugin = this.instance.getPlugin("nodesSnapping");
|
|
15836
|
+
if (nodesSnappingPlugin && this.isSelecting() && this.isNodeSelected(node)) nodesSnappingPlugin.cleanupEvaluateGuidelines();
|
|
15837
|
+
});
|
|
15815
15838
|
tr.on("mouseenter", (e) => {
|
|
15816
15839
|
const stage$1 = this.instance.getStage();
|
|
15817
15840
|
stage$1.container().style.cursor = "grab";
|
|
@@ -16342,12 +16365,6 @@ var WeaveNode = class {
|
|
|
16342
16365
|
}
|
|
16343
16366
|
node.draggable(false);
|
|
16344
16367
|
});
|
|
16345
|
-
node.on("transform", (e) => {
|
|
16346
|
-
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16347
|
-
this.instance.updateNode(this.serialize(node));
|
|
16348
|
-
e.cancelBubble = true;
|
|
16349
|
-
}
|
|
16350
|
-
});
|
|
16351
16368
|
node.on("dragmove", (e) => {
|
|
16352
16369
|
if (this.isSelecting() && this.isNodeSelected(node)) {
|
|
16353
16370
|
this.clearContainerTargets();
|
|
@@ -17789,7 +17806,7 @@ var WeaveRegisterManager = class {
|
|
|
17789
17806
|
|
|
17790
17807
|
//#endregion
|
|
17791
17808
|
//#region package.json
|
|
17792
|
-
var version = "0.
|
|
17809
|
+
var version = "0.7.0";
|
|
17793
17810
|
|
|
17794
17811
|
//#endregion
|
|
17795
17812
|
//#region src/managers/setup.ts
|
|
@@ -18941,6 +18958,7 @@ var WeaveImageToolAction = class extends WeaveAction {
|
|
|
18941
18958
|
imageURL: this.imageURL,
|
|
18942
18959
|
stroke: "#000000ff",
|
|
18943
18960
|
strokeWidth: 0,
|
|
18961
|
+
strokeScaleEnabled: false,
|
|
18944
18962
|
imageInfo: {
|
|
18945
18963
|
width: this.preloadImgs[this.imageId].width,
|
|
18946
18964
|
height: this.preloadImgs[this.imageId].height
|
|
@@ -19554,6 +19572,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19554
19572
|
width: props.frameWidth,
|
|
19555
19573
|
stroke: props.borderColor,
|
|
19556
19574
|
strokeWidth: props.borderWidth,
|
|
19575
|
+
strokeScaleEnabled: false,
|
|
19557
19576
|
height: props.frameHeight,
|
|
19558
19577
|
fill: "#ffffffff",
|
|
19559
19578
|
draggable: false
|
|
@@ -19571,6 +19590,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19571
19590
|
text: props.title,
|
|
19572
19591
|
stroke: "#000000ff",
|
|
19573
19592
|
strokeWidth: 1,
|
|
19593
|
+
strokeScaleEnabled: false,
|
|
19574
19594
|
listening: false,
|
|
19575
19595
|
draggable: false
|
|
19576
19596
|
});
|
|
@@ -19584,6 +19604,7 @@ var WeaveFrameNode = class extends WeaveNode {
|
|
|
19584
19604
|
height: props.frameHeight,
|
|
19585
19605
|
draggable: false,
|
|
19586
19606
|
stroke: "transparent",
|
|
19607
|
+
strokeScaleEnabled: false,
|
|
19587
19608
|
borderWidth: props.borderWidth,
|
|
19588
19609
|
clipX: 0,
|
|
19589
19610
|
clipY: 0,
|
|
@@ -20162,6 +20183,7 @@ var WeaveRectangleToolAction = class extends WeaveAction {
|
|
|
20162
20183
|
const nodeHandler = this.instance.getNodeHandler("rectangle");
|
|
20163
20184
|
const node = nodeHandler.create(this.rectId, {
|
|
20164
20185
|
...this.props,
|
|
20186
|
+
strokeScaleEnabled: false,
|
|
20165
20187
|
x: this.clickPoint?.x ?? 0,
|
|
20166
20188
|
y: this.clickPoint?.y ?? 0,
|
|
20167
20189
|
width: 0,
|
|
@@ -20326,6 +20348,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20326
20348
|
const nodeHandler = this.instance.getNodeHandler("line");
|
|
20327
20349
|
const node = nodeHandler.create(this.lineId, {
|
|
20328
20350
|
...this.props,
|
|
20351
|
+
strokeScaleEnabled: false,
|
|
20329
20352
|
x: this.clickPoint?.x ?? 0,
|
|
20330
20353
|
y: this.clickPoint?.y ?? 0,
|
|
20331
20354
|
points: [0, 0]
|
|
@@ -20335,6 +20358,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20335
20358
|
x: this.clickPoint?.x ?? 0,
|
|
20336
20359
|
y: this.clickPoint?.y ?? 0,
|
|
20337
20360
|
radius: 5 / stage.scaleX(),
|
|
20361
|
+
strokeScaleEnabled: false,
|
|
20338
20362
|
stroke: "#cccccc",
|
|
20339
20363
|
strokeWidth: 0,
|
|
20340
20364
|
fill: "#cccccc"
|
|
@@ -20351,6 +20375,7 @@ var WeavePenToolAction = class extends WeaveAction {
|
|
|
20351
20375
|
x: this.clickPoint?.x ?? 0,
|
|
20352
20376
|
y: this.clickPoint?.y ?? 0,
|
|
20353
20377
|
radius: 5 / stage.scaleX(),
|
|
20378
|
+
strokeScaleEnabled: false,
|
|
20354
20379
|
stroke: "#cccccc",
|
|
20355
20380
|
strokeWidth: 0,
|
|
20356
20381
|
fill: "#cccccc"
|
|
@@ -20543,6 +20568,7 @@ var WeaveBrushToolAction = class extends WeaveAction {
|
|
|
20543
20568
|
const nodeHandler = this.instance.getNodeHandler("line");
|
|
20544
20569
|
const node = nodeHandler.create(this.strokeId, {
|
|
20545
20570
|
...this.props,
|
|
20571
|
+
strokeScaleEnabled: false,
|
|
20546
20572
|
x: this.clickPoint?.x ?? 0,
|
|
20547
20573
|
y: this.clickPoint?.y ?? 0,
|
|
20548
20574
|
points: [0, 0]
|
|
@@ -20688,6 +20714,7 @@ var WeaveTextToolAction = class extends WeaveAction {
|
|
|
20688
20714
|
strokeEnabled: false,
|
|
20689
20715
|
stroke: "#000000ff",
|
|
20690
20716
|
strokeWidth: 1,
|
|
20717
|
+
strokeScaleEnabled: false,
|
|
20691
20718
|
align: "left",
|
|
20692
20719
|
verticalAlign: "top",
|
|
20693
20720
|
opacity: 1,
|
|
@@ -21616,6 +21643,13 @@ var WeaveStageDropAreaPlugin = class extends WeavePlugin {
|
|
|
21616
21643
|
//#region src/plugins/nodes-snapping/constants.ts
|
|
21617
21644
|
const WEAVE_NODES_SNAPPING_KEY = "nodesSnapping";
|
|
21618
21645
|
const GUIDE_LINE_NAME = "guide-line";
|
|
21646
|
+
const GUIDE_LINE_DEFAULT_CONFIG = {
|
|
21647
|
+
stroke: "rgb(0, 161, 255)",
|
|
21648
|
+
strokeWidth: 1,
|
|
21649
|
+
dash: [4, 6]
|
|
21650
|
+
};
|
|
21651
|
+
const GUIDE_LINE_DRAG_SNAPPING_THRESHOLD = 10;
|
|
21652
|
+
const GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD = 10;
|
|
21619
21653
|
const GUIDE_ORIENTATION = {
|
|
21620
21654
|
["HORIZONTAL"]: "H",
|
|
21621
21655
|
["VERTICAL"]: "V"
|
|
@@ -21629,9 +21663,12 @@ const NODE_SNAP = {
|
|
|
21629
21663
|
//#endregion
|
|
21630
21664
|
//#region src/plugins/nodes-snapping/nodes-snapping.ts
|
|
21631
21665
|
var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
21632
|
-
constructor() {
|
|
21666
|
+
constructor(params) {
|
|
21633
21667
|
super();
|
|
21634
|
-
|
|
21668
|
+
const { config } = params ?? {};
|
|
21669
|
+
this.guideLineConfig = config?.guideLine ?? GUIDE_LINE_DEFAULT_CONFIG;
|
|
21670
|
+
this.dragSnappingThreshold = config?.dragSnappingThreshold ?? GUIDE_LINE_DRAG_SNAPPING_THRESHOLD;
|
|
21671
|
+
this.transformSnappingThreshold = config?.transformSnappingThreshold ?? GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD;
|
|
21635
21672
|
this.enabled = true;
|
|
21636
21673
|
}
|
|
21637
21674
|
getName() {
|
|
@@ -21643,42 +21680,76 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21643
21680
|
setEnabled(enabled) {
|
|
21644
21681
|
this.enabled = enabled;
|
|
21645
21682
|
}
|
|
21646
|
-
|
|
21647
|
-
const stage = this.instance.getStage();
|
|
21683
|
+
evaluateGuidelines(e) {
|
|
21648
21684
|
const mainLayer = this.instance.getMainLayer();
|
|
21649
|
-
if (
|
|
21650
|
-
|
|
21651
|
-
|
|
21652
|
-
|
|
21653
|
-
|
|
21654
|
-
|
|
21655
|
-
|
|
21656
|
-
|
|
21657
|
-
|
|
21658
|
-
|
|
21659
|
-
|
|
21660
|
-
|
|
21661
|
-
|
|
21662
|
-
|
|
21685
|
+
if (!this.enabled) return;
|
|
21686
|
+
if (!mainLayer) return;
|
|
21687
|
+
let node = void 0;
|
|
21688
|
+
if (e.type === "dragmove" && e.target instanceof Konva.Transformer) {
|
|
21689
|
+
const actualTarget = e.target;
|
|
21690
|
+
node = actualTarget.getNodes()[0];
|
|
21691
|
+
}
|
|
21692
|
+
if (e.type === "transform") node = e.target;
|
|
21693
|
+
if (typeof node === "undefined") return;
|
|
21694
|
+
mainLayer.find(`.${GUIDE_LINE_NAME}`).forEach((l) => l.destroy());
|
|
21695
|
+
const lineGuideStops = this.getLineGuideStops(node);
|
|
21696
|
+
const itemBounds = this.getObjectSnappingEdges(node);
|
|
21697
|
+
const guides = this.getGuides(lineGuideStops, itemBounds, e.type);
|
|
21698
|
+
if (!guides.length) return;
|
|
21699
|
+
this.drawGuides(guides);
|
|
21700
|
+
if (e.type === "dragmove") {
|
|
21701
|
+
const absPos = node.absolutePosition();
|
|
21702
|
+
guides.forEach((lg) => {
|
|
21703
|
+
switch (lg.orientation) {
|
|
21704
|
+
case GUIDE_ORIENTATION.VERTICAL: {
|
|
21705
|
+
absPos.x = lg.lineGuide + lg.offset;
|
|
21706
|
+
break;
|
|
21707
|
+
}
|
|
21708
|
+
case GUIDE_ORIENTATION.HORIZONTAL: {
|
|
21709
|
+
absPos.y = lg.lineGuide + lg.offset;
|
|
21710
|
+
break;
|
|
21711
|
+
}
|
|
21712
|
+
}
|
|
21713
|
+
});
|
|
21714
|
+
node.absolutePosition(absPos);
|
|
21715
|
+
}
|
|
21716
|
+
if (e.type === "transform") {
|
|
21717
|
+
const nodesSelectionPlugin = this.instance.getPlugin("nodesSelection");
|
|
21718
|
+
if (nodesSelectionPlugin) {
|
|
21719
|
+
const transformer = nodesSelectionPlugin.getTransformer();
|
|
21720
|
+
transformer.anchorDragBoundFunc((_, newAbsPos) => {
|
|
21721
|
+
const finalPos = { ...newAbsPos };
|
|
21663
21722
|
guides.forEach((lg) => {
|
|
21664
21723
|
switch (lg.orientation) {
|
|
21665
21724
|
case GUIDE_ORIENTATION.VERTICAL: {
|
|
21666
|
-
|
|
21725
|
+
const distX = Math.sqrt(Math.pow(newAbsPos.x - lg.lineGuide, 2));
|
|
21726
|
+
if (distX < this.transformSnappingThreshold) finalPos.x = lg.lineGuide;
|
|
21667
21727
|
break;
|
|
21668
21728
|
}
|
|
21669
21729
|
case GUIDE_ORIENTATION.HORIZONTAL: {
|
|
21670
|
-
|
|
21730
|
+
const distY = Math.sqrt(Math.pow(newAbsPos.y - lg.lineGuide, 2));
|
|
21731
|
+
if (distY < this.transformSnappingThreshold) finalPos.y = lg.lineGuide;
|
|
21671
21732
|
break;
|
|
21672
21733
|
}
|
|
21673
21734
|
}
|
|
21674
21735
|
});
|
|
21675
|
-
|
|
21676
|
-
}
|
|
21677
|
-
}
|
|
21678
|
-
|
|
21679
|
-
|
|
21680
|
-
|
|
21681
|
-
|
|
21736
|
+
return finalPos;
|
|
21737
|
+
});
|
|
21738
|
+
}
|
|
21739
|
+
}
|
|
21740
|
+
}
|
|
21741
|
+
cleanupEvaluateGuidelines() {
|
|
21742
|
+
const mainLayer = this.instance.getMainLayer();
|
|
21743
|
+
if (!this.enabled) return;
|
|
21744
|
+
if (!mainLayer) return;
|
|
21745
|
+
mainLayer.find(`.${GUIDE_LINE_NAME}`).forEach((l) => l.destroy());
|
|
21746
|
+
}
|
|
21747
|
+
initEvents() {
|
|
21748
|
+
const stage = this.instance.getStage();
|
|
21749
|
+
const mainLayer = this.instance.getMainLayer();
|
|
21750
|
+
if (mainLayer) {
|
|
21751
|
+
stage.on("dragmove", this.evaluateGuidelines.bind(this));
|
|
21752
|
+
stage.on("dragend", this.cleanupEvaluateGuidelines.bind(this));
|
|
21682
21753
|
}
|
|
21683
21754
|
}
|
|
21684
21755
|
getLineGuideStops(skipShape) {
|
|
@@ -21715,7 +21786,7 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21715
21786
|
getObjectSnappingEdges(node) {
|
|
21716
21787
|
const box = node.getClientRect();
|
|
21717
21788
|
const absPos = node.absolutePosition();
|
|
21718
|
-
|
|
21789
|
+
const snappingEdges = {
|
|
21719
21790
|
vertical: [
|
|
21720
21791
|
{
|
|
21721
21792
|
guide: Math.round(box.x),
|
|
@@ -21751,14 +21822,15 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21751
21822
|
}
|
|
21752
21823
|
]
|
|
21753
21824
|
};
|
|
21825
|
+
return snappingEdges;
|
|
21754
21826
|
}
|
|
21755
|
-
getGuides(lineGuideStops, itemBounds) {
|
|
21827
|
+
getGuides(lineGuideStops, itemBounds, type) {
|
|
21756
21828
|
const resultV = [];
|
|
21757
21829
|
const resultH = [];
|
|
21758
21830
|
lineGuideStops.vertical.forEach((lineGuide) => {
|
|
21759
21831
|
itemBounds.vertical.forEach((itemBound) => {
|
|
21760
21832
|
const diff = Math.abs(lineGuide - itemBound.guide);
|
|
21761
|
-
if (diff < this.
|
|
21833
|
+
if (diff < this.dragSnappingThreshold) resultV.push({
|
|
21762
21834
|
lineGuide,
|
|
21763
21835
|
diff,
|
|
21764
21836
|
snap: itemBound.snap,
|
|
@@ -21769,7 +21841,7 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21769
21841
|
lineGuideStops.horizontal.forEach((lineGuide) => {
|
|
21770
21842
|
itemBounds.horizontal.forEach((itemBound) => {
|
|
21771
21843
|
const diff = Math.abs(lineGuide - itemBound.guide);
|
|
21772
|
-
if (diff < this.
|
|
21844
|
+
if (diff < this.dragSnappingThreshold) resultH.push({
|
|
21773
21845
|
lineGuide,
|
|
21774
21846
|
diff,
|
|
21775
21847
|
snap: itemBound.snap,
|
|
@@ -21778,20 +21850,40 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21778
21850
|
});
|
|
21779
21851
|
});
|
|
21780
21852
|
const guides = [];
|
|
21781
|
-
|
|
21782
|
-
|
|
21783
|
-
|
|
21784
|
-
|
|
21785
|
-
|
|
21786
|
-
|
|
21787
|
-
|
|
21788
|
-
|
|
21789
|
-
|
|
21790
|
-
|
|
21791
|
-
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21853
|
+
if (type === "dragmove") {
|
|
21854
|
+
const minV = resultV.sort((a, b) => a.diff - b.diff)[0];
|
|
21855
|
+
const minH = resultH.sort((a, b) => a.diff - b.diff)[0];
|
|
21856
|
+
if (minV) guides.push({
|
|
21857
|
+
lineGuide: minV.lineGuide,
|
|
21858
|
+
offset: minV.offset,
|
|
21859
|
+
orientation: GUIDE_ORIENTATION.VERTICAL,
|
|
21860
|
+
snap: minV.snap
|
|
21861
|
+
});
|
|
21862
|
+
if (minH) guides.push({
|
|
21863
|
+
lineGuide: minH.lineGuide,
|
|
21864
|
+
offset: minH.offset,
|
|
21865
|
+
orientation: GUIDE_ORIENTATION.HORIZONTAL,
|
|
21866
|
+
snap: minH.snap
|
|
21867
|
+
});
|
|
21868
|
+
}
|
|
21869
|
+
if (type === "transform") {
|
|
21870
|
+
resultV.forEach((v) => {
|
|
21871
|
+
guides.push({
|
|
21872
|
+
lineGuide: v.lineGuide,
|
|
21873
|
+
offset: v.offset,
|
|
21874
|
+
orientation: GUIDE_ORIENTATION.VERTICAL,
|
|
21875
|
+
snap: v.snap
|
|
21876
|
+
});
|
|
21877
|
+
});
|
|
21878
|
+
resultH.forEach((h) => {
|
|
21879
|
+
guides.push({
|
|
21880
|
+
lineGuide: h.lineGuide,
|
|
21881
|
+
offset: h.offset,
|
|
21882
|
+
orientation: GUIDE_ORIENTATION.HORIZONTAL,
|
|
21883
|
+
snap: h.snap
|
|
21884
|
+
});
|
|
21885
|
+
});
|
|
21886
|
+
}
|
|
21795
21887
|
return guides;
|
|
21796
21888
|
}
|
|
21797
21889
|
drawGuides(guides) {
|
|
@@ -21800,16 +21892,16 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21800
21892
|
if (mainLayer) guides.forEach((lg) => {
|
|
21801
21893
|
if (lg.orientation === GUIDE_ORIENTATION.HORIZONTAL) {
|
|
21802
21894
|
const line = new Konva.Line({
|
|
21895
|
+
...this.guideLineConfig,
|
|
21896
|
+
strokeWidth: (this.guideLineConfig.strokeWidth ?? GUIDE_LINE_DEFAULT_CONFIG.strokeWidth) / stage.scaleX(),
|
|
21897
|
+
dash: this.guideLineConfig.dash?.map((e) => e / stage.scaleX()),
|
|
21803
21898
|
points: [
|
|
21804
21899
|
-6e3,
|
|
21805
21900
|
0,
|
|
21806
21901
|
6e3,
|
|
21807
21902
|
0
|
|
21808
21903
|
],
|
|
21809
|
-
|
|
21810
|
-
strokeWidth: 1 / stage.scaleX(),
|
|
21811
|
-
name: GUIDE_LINE_NAME,
|
|
21812
|
-
dash: [4 / stage.scaleX(), 6 / stage.scaleX()]
|
|
21904
|
+
name: GUIDE_LINE_NAME
|
|
21813
21905
|
});
|
|
21814
21906
|
mainLayer.add(line);
|
|
21815
21907
|
line.absolutePosition({
|
|
@@ -21819,16 +21911,16 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21819
21911
|
}
|
|
21820
21912
|
if (lg.orientation === GUIDE_ORIENTATION.VERTICAL) {
|
|
21821
21913
|
const line = new Konva.Line({
|
|
21914
|
+
...this.guideLineConfig,
|
|
21915
|
+
strokeWidth: (this.guideLineConfig.strokeWidth ?? GUIDE_LINE_DEFAULT_CONFIG.strokeWidth) / stage.scaleX(),
|
|
21916
|
+
dash: this.guideLineConfig.dash?.map((e) => e / stage.scaleX()),
|
|
21822
21917
|
points: [
|
|
21823
21918
|
0,
|
|
21824
21919
|
-6e3,
|
|
21825
21920
|
0,
|
|
21826
21921
|
6e3
|
|
21827
21922
|
],
|
|
21828
|
-
|
|
21829
|
-
strokeWidth: 1 / stage.scaleX(),
|
|
21830
|
-
name: GUIDE_LINE_NAME,
|
|
21831
|
-
dash: [4 / stage.scaleX(), 6 / stage.scaleX()]
|
|
21923
|
+
name: GUIDE_LINE_NAME
|
|
21832
21924
|
});
|
|
21833
21925
|
mainLayer.add(line);
|
|
21834
21926
|
line.absolutePosition({
|
|
@@ -21847,4 +21939,4 @@ var WeaveNodesSnappingPlugin = class extends WeavePlugin {
|
|
|
21847
21939
|
};
|
|
21848
21940
|
|
|
21849
21941
|
//#endregion
|
|
21850
|
-
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_NAME, GUIDE_ORIENTATION, IMAGE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveBrushToolAction, WeaveConnectedUsersPlugin, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveExportNodeToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveNode, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveZoomInToolAction, WeaveZoomOutToolAction, resetScale };
|
|
21942
|
+
export { BRUSH_TOOL_STATE, COPY_PASTE_NODES_PLUGIN_STATE, FRAME_TOOL_ACTION_NAME, FRAME_TOOL_STATE, GUIDE_LINE_DEFAULT_CONFIG, GUIDE_LINE_DRAG_SNAPPING_THRESHOLD, GUIDE_LINE_NAME, GUIDE_LINE_TRANSFORM_SNAPPING_THRESHOLD, GUIDE_ORIENTATION, IMAGE_TOOL_STATE, MOVE_TOOL_ACTION_NAME, MOVE_TOOL_STATE, NODE_SNAP, PEN_TOOL_STATE, RECTANGLE_TOOL_ACTION_NAME, RECTANGLE_TOOL_STATE, SELECTION_TOOL_ACTION_NAME, SELECTION_TOOL_STATE, TEXT_TOOL_STATE, WEAVE_COPY_PASTE_NODES_KEY, WEAVE_FRAME_NODE_DEFAULT_PROPS, WEAVE_FRAME_NODE_SIZES, WEAVE_FRAME_NODE_SIZES_MULTIPLIER, WEAVE_FRAME_NODE_SIZES_ORIENTATION, WEAVE_FRAME_NODE_SIZES_TYPES, WEAVE_FRAME_NODE_TYPE, WEAVE_GRID_DEFAULT_COLOR, WEAVE_GRID_DEFAULT_ORIGIN_COLOR, WEAVE_GRID_DEFAULT_SIZE, WEAVE_GRID_DEFAULT_TYPE, WEAVE_GRID_LAYER_ID, WEAVE_GRID_TYPES, WEAVE_NODES_SELECTION_KEY, WEAVE_NODES_SELECTION_LAYER_ID, WEAVE_NODES_SNAPPING_KEY, WEAVE_STAGE_GRID_KEY, Weave, WeaveAction, WeaveBrushToolAction, WeaveConnectedUsersPlugin, WeaveContextMenuPlugin, WeaveCopyPasteNodesPlugin, WeaveExportNodeToolAction, WeaveExportStageToolAction, WeaveFitToScreenToolAction, WeaveFitToSelectionToolAction, WeaveFrameNode, WeaveFrameToolAction, WeaveGroupNode, WeaveImageNode, WeaveImageToolAction, WeaveLayerNode, WeaveLineNode, WeaveMoveToolAction, WeaveNode, WeaveNodesSelectionPlugin, WeaveNodesSnappingPlugin, WeavePenToolAction, WeavePlugin, WeaveRectangleNode, WeaveRectangleToolAction, WeaveSelectionToolAction, WeaveStageDropAreaPlugin, WeaveStageGridPlugin, WeaveStageNode, WeaveStagePanningPlugin, WeaveStageResizePlugin, WeaveStageZoomPlugin, WeaveStore, WeaveTextNode, WeaveTextToolAction, WeaveUsersPointersPlugin, WeaveZoomInToolAction, WeaveZoomOutToolAction, resetScale };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inditextech/weave-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.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.7.0",
|
|
47
47
|
"@syncedstore/core": "0.6.0",
|
|
48
48
|
"canvas": "3.1.0",
|
|
49
49
|
"konva": "9.3.20",
|