microboard-temp 0.4.33 → 0.4.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/browser.js +94 -68
- package/dist/cjs/index.js +94 -68
- package/dist/cjs/node.js +94 -68
- package/dist/esm/browser.js +94 -68
- package/dist/esm/index.js +94 -68
- package/dist/esm/node.js +94 -68
- package/dist/types/Items/BaseItem/BaseItem.d.ts +12 -0
- package/dist/types/Items/BaseItem/BaseItemOperation.d.ts +7 -0
- package/dist/types/Items/Frame/Frame.d.ts +1 -9
- package/package.json +1 -1
package/dist/cjs/browser.js
CHANGED
|
@@ -19649,6 +19649,8 @@ class BaseItem extends Mbr {
|
|
|
19649
19649
|
transformation;
|
|
19650
19650
|
linkTo;
|
|
19651
19651
|
parent = "Board";
|
|
19652
|
+
children = null;
|
|
19653
|
+
canBeNested = true;
|
|
19652
19654
|
transformationRenderBlock = undefined;
|
|
19653
19655
|
board;
|
|
19654
19656
|
id;
|
|
@@ -19680,6 +19682,87 @@ class BaseItem extends Mbr {
|
|
|
19680
19682
|
this.getRichText()?.setId(id);
|
|
19681
19683
|
return this;
|
|
19682
19684
|
}
|
|
19685
|
+
addChildItems(children) {
|
|
19686
|
+
if (!this.children) {
|
|
19687
|
+
return;
|
|
19688
|
+
}
|
|
19689
|
+
const childrenIds = children.map((child) => {
|
|
19690
|
+
child.parent = this.getId();
|
|
19691
|
+
return child.getId();
|
|
19692
|
+
});
|
|
19693
|
+
this.updateChildren([...this.children, ...childrenIds]);
|
|
19694
|
+
}
|
|
19695
|
+
removeChildItems(children) {
|
|
19696
|
+
if (!this.children) {
|
|
19697
|
+
return;
|
|
19698
|
+
}
|
|
19699
|
+
const newChildren = Array.isArray(children) ? children : [children];
|
|
19700
|
+
const childrenIds = newChildren.map((child) => {
|
|
19701
|
+
child.parent = "Board";
|
|
19702
|
+
return child.getId();
|
|
19703
|
+
});
|
|
19704
|
+
this.updateChildren(this.children.filter((child) => !childrenIds.includes(child)));
|
|
19705
|
+
}
|
|
19706
|
+
emitNesting(children) {
|
|
19707
|
+
const itemsToAdd = [];
|
|
19708
|
+
const itemsToRemove = [];
|
|
19709
|
+
children.forEach((child) => {
|
|
19710
|
+
if (this.handleNesting(child)) {
|
|
19711
|
+
itemsToAdd.push(child);
|
|
19712
|
+
} else {
|
|
19713
|
+
itemsToRemove.push(child);
|
|
19714
|
+
}
|
|
19715
|
+
});
|
|
19716
|
+
this.addChildItems(itemsToAdd);
|
|
19717
|
+
this.removeChildItems(itemsToRemove);
|
|
19718
|
+
}
|
|
19719
|
+
updateChildren(children) {
|
|
19720
|
+
this.emit({
|
|
19721
|
+
class: this.itemType,
|
|
19722
|
+
method: "updateChildren",
|
|
19723
|
+
item: [this.getId()],
|
|
19724
|
+
newData: { children },
|
|
19725
|
+
prevData: { children: this.children }
|
|
19726
|
+
});
|
|
19727
|
+
}
|
|
19728
|
+
handleNesting(item, options) {
|
|
19729
|
+
const isItem = "itemType" in item;
|
|
19730
|
+
const itemMbr = isItem ? item.getMbr() : item;
|
|
19731
|
+
if (item instanceof BaseItem && !item.canBeNested) {
|
|
19732
|
+
return false;
|
|
19733
|
+
}
|
|
19734
|
+
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
19735
|
+
return false;
|
|
19736
|
+
}
|
|
19737
|
+
const mbr = this.getMbr().copy();
|
|
19738
|
+
if (item.isEnclosedOrCrossedBy(mbr)) {
|
|
19739
|
+
if (mbr.isInside(itemMbr.getCenter())) {
|
|
19740
|
+
if (!options || !options.onlyForOut) {
|
|
19741
|
+
return true;
|
|
19742
|
+
}
|
|
19743
|
+
}
|
|
19744
|
+
}
|
|
19745
|
+
return false;
|
|
19746
|
+
}
|
|
19747
|
+
applyUpdateChildren(children) {
|
|
19748
|
+
if (!this.children) {
|
|
19749
|
+
return;
|
|
19750
|
+
}
|
|
19751
|
+
children.forEach((child) => {
|
|
19752
|
+
if (this.parent !== child && this.getId() !== child) {
|
|
19753
|
+
const foundItem = this.board.items.getById(child);
|
|
19754
|
+
if (!this.children.includes(child) && foundItem) {
|
|
19755
|
+
foundItem.parent = this.getId();
|
|
19756
|
+
}
|
|
19757
|
+
}
|
|
19758
|
+
});
|
|
19759
|
+
this.children = children;
|
|
19760
|
+
this.updateMbr();
|
|
19761
|
+
this.subject.publish(this);
|
|
19762
|
+
}
|
|
19763
|
+
updateMbr() {
|
|
19764
|
+
return;
|
|
19765
|
+
}
|
|
19683
19766
|
getLinkTo() {
|
|
19684
19767
|
return this.linkTo.link;
|
|
19685
19768
|
}
|
|
@@ -19729,6 +19812,12 @@ class BaseItem extends Mbr {
|
|
|
19729
19812
|
case "LinkTo":
|
|
19730
19813
|
this.linkTo.apply(op);
|
|
19731
19814
|
break;
|
|
19815
|
+
case this.itemType:
|
|
19816
|
+
op = op;
|
|
19817
|
+
switch (op.method) {
|
|
19818
|
+
case "updateChildren":
|
|
19819
|
+
this.applyUpdateChildren(op.newData.children);
|
|
19820
|
+
}
|
|
19732
19821
|
}
|
|
19733
19822
|
}
|
|
19734
19823
|
addOnRemoveCallback(cb) {
|
|
@@ -38352,6 +38441,7 @@ class Frame extends BaseItem {
|
|
|
38352
38441
|
linkTo;
|
|
38353
38442
|
text;
|
|
38354
38443
|
canChangeRatio = true;
|
|
38444
|
+
canBeNested = false;
|
|
38355
38445
|
newShape = null;
|
|
38356
38446
|
transformationRenderBlock = undefined;
|
|
38357
38447
|
constructor(board, getItemById, id = "", name = "", shapeType = defaultFrameData.shapeType, backgroundColor = defaultFrameData.backgroundColor, backgroundOpacity = defaultFrameData.backgroundOpacity, borderColor = defaultFrameData.borderColor, borderOpacity = defaultFrameData.borderOpacity, borderStyle = defaultFrameData.borderStyle, borderWidth = defaultFrameData.borderWidth) {
|
|
@@ -38390,42 +38480,6 @@ class Frame extends BaseItem {
|
|
|
38390
38480
|
this.board = board;
|
|
38391
38481
|
return this;
|
|
38392
38482
|
}
|
|
38393
|
-
emitAddChild(children) {
|
|
38394
|
-
const childrenIds = children.map((child) => {
|
|
38395
|
-
child.parent = this.getId();
|
|
38396
|
-
return child.getId();
|
|
38397
|
-
});
|
|
38398
|
-
this.addChild(childrenIds);
|
|
38399
|
-
}
|
|
38400
|
-
emitRemoveChild(children) {
|
|
38401
|
-
const newChildren = Array.isArray(children) ? children : [children];
|
|
38402
|
-
const childrenIds = newChildren.map((child) => {
|
|
38403
|
-
child.parent = "Board";
|
|
38404
|
-
return child.getId();
|
|
38405
|
-
});
|
|
38406
|
-
this.removeChild(childrenIds);
|
|
38407
|
-
}
|
|
38408
|
-
emitNesting(children) {
|
|
38409
|
-
const itemsToAdd = [];
|
|
38410
|
-
const itemsToRemove = [];
|
|
38411
|
-
children.forEach((child) => {
|
|
38412
|
-
if (this.handleNesting(child)) {
|
|
38413
|
-
itemsToAdd.push(child);
|
|
38414
|
-
} else {
|
|
38415
|
-
itemsToRemove.push(child);
|
|
38416
|
-
}
|
|
38417
|
-
});
|
|
38418
|
-
this.emitAddChild(itemsToAdd);
|
|
38419
|
-
this.emitRemoveChild(itemsToRemove);
|
|
38420
|
-
}
|
|
38421
|
-
addChild(childId) {
|
|
38422
|
-
this.emit({
|
|
38423
|
-
class: "Frame",
|
|
38424
|
-
method: "addChild",
|
|
38425
|
-
item: [this.getId()],
|
|
38426
|
-
childId
|
|
38427
|
-
});
|
|
38428
|
-
}
|
|
38429
38483
|
applyAddChild(childId, noWarn = false) {
|
|
38430
38484
|
const children = Array.isArray(childId) ? childId : [childId];
|
|
38431
38485
|
children.forEach((child) => {
|
|
@@ -38446,36 +38500,9 @@ class Frame extends BaseItem {
|
|
|
38446
38500
|
this.children = this.children.filter((currChild) => !childId.includes(currChild));
|
|
38447
38501
|
this.subject.publish(this);
|
|
38448
38502
|
}
|
|
38449
|
-
removeChild(childId) {
|
|
38450
|
-
this.emit({
|
|
38451
|
-
class: "Frame",
|
|
38452
|
-
method: "removeChild",
|
|
38453
|
-
item: [this.getId()],
|
|
38454
|
-
childId
|
|
38455
|
-
});
|
|
38456
|
-
}
|
|
38457
38503
|
getLinkTo() {
|
|
38458
38504
|
return this.linkTo.link;
|
|
38459
38505
|
}
|
|
38460
|
-
handleNesting(item, options) {
|
|
38461
|
-
const isItem = "itemType" in item;
|
|
38462
|
-
const itemMbr = isItem ? item.getMbr() : item;
|
|
38463
|
-
if (item instanceof Frame) {
|
|
38464
|
-
return false;
|
|
38465
|
-
}
|
|
38466
|
-
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
38467
|
-
return false;
|
|
38468
|
-
}
|
|
38469
|
-
const frameMbr = this.getMbr().copy();
|
|
38470
|
-
if (item.isEnclosedOrCrossedBy(frameMbr)) {
|
|
38471
|
-
if (frameMbr.isInside(itemMbr.getCenter())) {
|
|
38472
|
-
if (!options || !options.onlyForOut) {
|
|
38473
|
-
return true;
|
|
38474
|
-
}
|
|
38475
|
-
}
|
|
38476
|
-
}
|
|
38477
|
-
return false;
|
|
38478
|
-
}
|
|
38479
38506
|
initPath() {
|
|
38480
38507
|
this.path = Frames[this.shapeType].path.copy();
|
|
38481
38508
|
this.textContainer = Frames[this.shapeType].textBounds.copy();
|
|
@@ -50429,7 +50456,7 @@ class BoardSelection {
|
|
|
50429
50456
|
if (isParentFrame && isRemoveChildFromFrame) {
|
|
50430
50457
|
parentFrame.emitRemoveChild([val.item]);
|
|
50431
50458
|
}
|
|
50432
|
-
val.nested.
|
|
50459
|
+
val.nested.addChildItems([val.item]);
|
|
50433
50460
|
} else if (val.item.parent !== "Board") {
|
|
50434
50461
|
if (isParentFrame) {
|
|
50435
50462
|
parentFrame.emitRemoveChild([val.item]);
|
|
@@ -50573,8 +50600,7 @@ class BoardSelection {
|
|
|
50573
50600
|
class: "Shape",
|
|
50574
50601
|
method: "setBorderWidth",
|
|
50575
50602
|
item: [],
|
|
50576
|
-
|
|
50577
|
-
newData: { width: width2 }
|
|
50603
|
+
newData: { borderWidth: width2 }
|
|
50578
50604
|
};
|
|
50579
50605
|
const operations2 = {};
|
|
50580
50606
|
this.items.list().forEach((item) => {
|
|
@@ -52120,7 +52146,7 @@ class SpatialIndex {
|
|
|
52120
52146
|
remove(item) {
|
|
52121
52147
|
if (item instanceof Frame) {
|
|
52122
52148
|
const newItems = item.getChildrenIds().map((childId) => this.getById(childId)).filter((child) => child !== undefined);
|
|
52123
|
-
item.
|
|
52149
|
+
item.removeChildItems(newItems);
|
|
52124
52150
|
}
|
|
52125
52151
|
if (item.parent !== "Board") {
|
|
52126
52152
|
const parentFrame = this.items.getById(item.parent);
|
|
@@ -53199,7 +53225,7 @@ class Board {
|
|
|
53199
53225
|
}
|
|
53200
53226
|
});
|
|
53201
53227
|
framesMap.forEach((items2, frame) => {
|
|
53202
|
-
frame.
|
|
53228
|
+
frame.addChildItems(items2);
|
|
53203
53229
|
});
|
|
53204
53230
|
}
|
|
53205
53231
|
createItem(id, data) {
|
package/dist/cjs/index.js
CHANGED
|
@@ -19649,6 +19649,8 @@ class BaseItem extends Mbr {
|
|
|
19649
19649
|
transformation;
|
|
19650
19650
|
linkTo;
|
|
19651
19651
|
parent = "Board";
|
|
19652
|
+
children = null;
|
|
19653
|
+
canBeNested = true;
|
|
19652
19654
|
transformationRenderBlock = undefined;
|
|
19653
19655
|
board;
|
|
19654
19656
|
id;
|
|
@@ -19680,6 +19682,87 @@ class BaseItem extends Mbr {
|
|
|
19680
19682
|
this.getRichText()?.setId(id);
|
|
19681
19683
|
return this;
|
|
19682
19684
|
}
|
|
19685
|
+
addChildItems(children) {
|
|
19686
|
+
if (!this.children) {
|
|
19687
|
+
return;
|
|
19688
|
+
}
|
|
19689
|
+
const childrenIds = children.map((child) => {
|
|
19690
|
+
child.parent = this.getId();
|
|
19691
|
+
return child.getId();
|
|
19692
|
+
});
|
|
19693
|
+
this.updateChildren([...this.children, ...childrenIds]);
|
|
19694
|
+
}
|
|
19695
|
+
removeChildItems(children) {
|
|
19696
|
+
if (!this.children) {
|
|
19697
|
+
return;
|
|
19698
|
+
}
|
|
19699
|
+
const newChildren = Array.isArray(children) ? children : [children];
|
|
19700
|
+
const childrenIds = newChildren.map((child) => {
|
|
19701
|
+
child.parent = "Board";
|
|
19702
|
+
return child.getId();
|
|
19703
|
+
});
|
|
19704
|
+
this.updateChildren(this.children.filter((child) => !childrenIds.includes(child)));
|
|
19705
|
+
}
|
|
19706
|
+
emitNesting(children) {
|
|
19707
|
+
const itemsToAdd = [];
|
|
19708
|
+
const itemsToRemove = [];
|
|
19709
|
+
children.forEach((child) => {
|
|
19710
|
+
if (this.handleNesting(child)) {
|
|
19711
|
+
itemsToAdd.push(child);
|
|
19712
|
+
} else {
|
|
19713
|
+
itemsToRemove.push(child);
|
|
19714
|
+
}
|
|
19715
|
+
});
|
|
19716
|
+
this.addChildItems(itemsToAdd);
|
|
19717
|
+
this.removeChildItems(itemsToRemove);
|
|
19718
|
+
}
|
|
19719
|
+
updateChildren(children) {
|
|
19720
|
+
this.emit({
|
|
19721
|
+
class: this.itemType,
|
|
19722
|
+
method: "updateChildren",
|
|
19723
|
+
item: [this.getId()],
|
|
19724
|
+
newData: { children },
|
|
19725
|
+
prevData: { children: this.children }
|
|
19726
|
+
});
|
|
19727
|
+
}
|
|
19728
|
+
handleNesting(item, options) {
|
|
19729
|
+
const isItem = "itemType" in item;
|
|
19730
|
+
const itemMbr = isItem ? item.getMbr() : item;
|
|
19731
|
+
if (item instanceof BaseItem && !item.canBeNested) {
|
|
19732
|
+
return false;
|
|
19733
|
+
}
|
|
19734
|
+
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
19735
|
+
return false;
|
|
19736
|
+
}
|
|
19737
|
+
const mbr = this.getMbr().copy();
|
|
19738
|
+
if (item.isEnclosedOrCrossedBy(mbr)) {
|
|
19739
|
+
if (mbr.isInside(itemMbr.getCenter())) {
|
|
19740
|
+
if (!options || !options.onlyForOut) {
|
|
19741
|
+
return true;
|
|
19742
|
+
}
|
|
19743
|
+
}
|
|
19744
|
+
}
|
|
19745
|
+
return false;
|
|
19746
|
+
}
|
|
19747
|
+
applyUpdateChildren(children) {
|
|
19748
|
+
if (!this.children) {
|
|
19749
|
+
return;
|
|
19750
|
+
}
|
|
19751
|
+
children.forEach((child) => {
|
|
19752
|
+
if (this.parent !== child && this.getId() !== child) {
|
|
19753
|
+
const foundItem = this.board.items.getById(child);
|
|
19754
|
+
if (!this.children.includes(child) && foundItem) {
|
|
19755
|
+
foundItem.parent = this.getId();
|
|
19756
|
+
}
|
|
19757
|
+
}
|
|
19758
|
+
});
|
|
19759
|
+
this.children = children;
|
|
19760
|
+
this.updateMbr();
|
|
19761
|
+
this.subject.publish(this);
|
|
19762
|
+
}
|
|
19763
|
+
updateMbr() {
|
|
19764
|
+
return;
|
|
19765
|
+
}
|
|
19683
19766
|
getLinkTo() {
|
|
19684
19767
|
return this.linkTo.link;
|
|
19685
19768
|
}
|
|
@@ -19729,6 +19812,12 @@ class BaseItem extends Mbr {
|
|
|
19729
19812
|
case "LinkTo":
|
|
19730
19813
|
this.linkTo.apply(op);
|
|
19731
19814
|
break;
|
|
19815
|
+
case this.itemType:
|
|
19816
|
+
op = op;
|
|
19817
|
+
switch (op.method) {
|
|
19818
|
+
case "updateChildren":
|
|
19819
|
+
this.applyUpdateChildren(op.newData.children);
|
|
19820
|
+
}
|
|
19732
19821
|
}
|
|
19733
19822
|
}
|
|
19734
19823
|
addOnRemoveCallback(cb) {
|
|
@@ -38352,6 +38441,7 @@ class Frame extends BaseItem {
|
|
|
38352
38441
|
linkTo;
|
|
38353
38442
|
text;
|
|
38354
38443
|
canChangeRatio = true;
|
|
38444
|
+
canBeNested = false;
|
|
38355
38445
|
newShape = null;
|
|
38356
38446
|
transformationRenderBlock = undefined;
|
|
38357
38447
|
constructor(board, getItemById, id = "", name = "", shapeType = defaultFrameData.shapeType, backgroundColor = defaultFrameData.backgroundColor, backgroundOpacity = defaultFrameData.backgroundOpacity, borderColor = defaultFrameData.borderColor, borderOpacity = defaultFrameData.borderOpacity, borderStyle = defaultFrameData.borderStyle, borderWidth = defaultFrameData.borderWidth) {
|
|
@@ -38390,42 +38480,6 @@ class Frame extends BaseItem {
|
|
|
38390
38480
|
this.board = board;
|
|
38391
38481
|
return this;
|
|
38392
38482
|
}
|
|
38393
|
-
emitAddChild(children) {
|
|
38394
|
-
const childrenIds = children.map((child) => {
|
|
38395
|
-
child.parent = this.getId();
|
|
38396
|
-
return child.getId();
|
|
38397
|
-
});
|
|
38398
|
-
this.addChild(childrenIds);
|
|
38399
|
-
}
|
|
38400
|
-
emitRemoveChild(children) {
|
|
38401
|
-
const newChildren = Array.isArray(children) ? children : [children];
|
|
38402
|
-
const childrenIds = newChildren.map((child) => {
|
|
38403
|
-
child.parent = "Board";
|
|
38404
|
-
return child.getId();
|
|
38405
|
-
});
|
|
38406
|
-
this.removeChild(childrenIds);
|
|
38407
|
-
}
|
|
38408
|
-
emitNesting(children) {
|
|
38409
|
-
const itemsToAdd = [];
|
|
38410
|
-
const itemsToRemove = [];
|
|
38411
|
-
children.forEach((child) => {
|
|
38412
|
-
if (this.handleNesting(child)) {
|
|
38413
|
-
itemsToAdd.push(child);
|
|
38414
|
-
} else {
|
|
38415
|
-
itemsToRemove.push(child);
|
|
38416
|
-
}
|
|
38417
|
-
});
|
|
38418
|
-
this.emitAddChild(itemsToAdd);
|
|
38419
|
-
this.emitRemoveChild(itemsToRemove);
|
|
38420
|
-
}
|
|
38421
|
-
addChild(childId) {
|
|
38422
|
-
this.emit({
|
|
38423
|
-
class: "Frame",
|
|
38424
|
-
method: "addChild",
|
|
38425
|
-
item: [this.getId()],
|
|
38426
|
-
childId
|
|
38427
|
-
});
|
|
38428
|
-
}
|
|
38429
38483
|
applyAddChild(childId, noWarn = false) {
|
|
38430
38484
|
const children = Array.isArray(childId) ? childId : [childId];
|
|
38431
38485
|
children.forEach((child) => {
|
|
@@ -38446,36 +38500,9 @@ class Frame extends BaseItem {
|
|
|
38446
38500
|
this.children = this.children.filter((currChild) => !childId.includes(currChild));
|
|
38447
38501
|
this.subject.publish(this);
|
|
38448
38502
|
}
|
|
38449
|
-
removeChild(childId) {
|
|
38450
|
-
this.emit({
|
|
38451
|
-
class: "Frame",
|
|
38452
|
-
method: "removeChild",
|
|
38453
|
-
item: [this.getId()],
|
|
38454
|
-
childId
|
|
38455
|
-
});
|
|
38456
|
-
}
|
|
38457
38503
|
getLinkTo() {
|
|
38458
38504
|
return this.linkTo.link;
|
|
38459
38505
|
}
|
|
38460
|
-
handleNesting(item, options) {
|
|
38461
|
-
const isItem = "itemType" in item;
|
|
38462
|
-
const itemMbr = isItem ? item.getMbr() : item;
|
|
38463
|
-
if (item instanceof Frame) {
|
|
38464
|
-
return false;
|
|
38465
|
-
}
|
|
38466
|
-
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
38467
|
-
return false;
|
|
38468
|
-
}
|
|
38469
|
-
const frameMbr = this.getMbr().copy();
|
|
38470
|
-
if (item.isEnclosedOrCrossedBy(frameMbr)) {
|
|
38471
|
-
if (frameMbr.isInside(itemMbr.getCenter())) {
|
|
38472
|
-
if (!options || !options.onlyForOut) {
|
|
38473
|
-
return true;
|
|
38474
|
-
}
|
|
38475
|
-
}
|
|
38476
|
-
}
|
|
38477
|
-
return false;
|
|
38478
|
-
}
|
|
38479
38506
|
initPath() {
|
|
38480
38507
|
this.path = Frames[this.shapeType].path.copy();
|
|
38481
38508
|
this.textContainer = Frames[this.shapeType].textBounds.copy();
|
|
@@ -50429,7 +50456,7 @@ class BoardSelection {
|
|
|
50429
50456
|
if (isParentFrame && isRemoveChildFromFrame) {
|
|
50430
50457
|
parentFrame.emitRemoveChild([val.item]);
|
|
50431
50458
|
}
|
|
50432
|
-
val.nested.
|
|
50459
|
+
val.nested.addChildItems([val.item]);
|
|
50433
50460
|
} else if (val.item.parent !== "Board") {
|
|
50434
50461
|
if (isParentFrame) {
|
|
50435
50462
|
parentFrame.emitRemoveChild([val.item]);
|
|
@@ -50573,8 +50600,7 @@ class BoardSelection {
|
|
|
50573
50600
|
class: "Shape",
|
|
50574
50601
|
method: "setBorderWidth",
|
|
50575
50602
|
item: [],
|
|
50576
|
-
|
|
50577
|
-
newData: { width: width2 }
|
|
50603
|
+
newData: { borderWidth: width2 }
|
|
50578
50604
|
};
|
|
50579
50605
|
const operations2 = {};
|
|
50580
50606
|
this.items.list().forEach((item) => {
|
|
@@ -52120,7 +52146,7 @@ class SpatialIndex {
|
|
|
52120
52146
|
remove(item) {
|
|
52121
52147
|
if (item instanceof Frame) {
|
|
52122
52148
|
const newItems = item.getChildrenIds().map((childId) => this.getById(childId)).filter((child) => child !== undefined);
|
|
52123
|
-
item.
|
|
52149
|
+
item.removeChildItems(newItems);
|
|
52124
52150
|
}
|
|
52125
52151
|
if (item.parent !== "Board") {
|
|
52126
52152
|
const parentFrame = this.items.getById(item.parent);
|
|
@@ -53199,7 +53225,7 @@ class Board {
|
|
|
53199
53225
|
}
|
|
53200
53226
|
});
|
|
53201
53227
|
framesMap.forEach((items2, frame) => {
|
|
53202
|
-
frame.
|
|
53228
|
+
frame.addChildItems(items2);
|
|
53203
53229
|
});
|
|
53204
53230
|
}
|
|
53205
53231
|
createItem(id, data) {
|
package/dist/cjs/node.js
CHANGED
|
@@ -22188,6 +22188,8 @@ class BaseItem extends Mbr {
|
|
|
22188
22188
|
transformation;
|
|
22189
22189
|
linkTo;
|
|
22190
22190
|
parent = "Board";
|
|
22191
|
+
children = null;
|
|
22192
|
+
canBeNested = true;
|
|
22191
22193
|
transformationRenderBlock = undefined;
|
|
22192
22194
|
board;
|
|
22193
22195
|
id;
|
|
@@ -22219,6 +22221,87 @@ class BaseItem extends Mbr {
|
|
|
22219
22221
|
this.getRichText()?.setId(id);
|
|
22220
22222
|
return this;
|
|
22221
22223
|
}
|
|
22224
|
+
addChildItems(children) {
|
|
22225
|
+
if (!this.children) {
|
|
22226
|
+
return;
|
|
22227
|
+
}
|
|
22228
|
+
const childrenIds = children.map((child) => {
|
|
22229
|
+
child.parent = this.getId();
|
|
22230
|
+
return child.getId();
|
|
22231
|
+
});
|
|
22232
|
+
this.updateChildren([...this.children, ...childrenIds]);
|
|
22233
|
+
}
|
|
22234
|
+
removeChildItems(children) {
|
|
22235
|
+
if (!this.children) {
|
|
22236
|
+
return;
|
|
22237
|
+
}
|
|
22238
|
+
const newChildren = Array.isArray(children) ? children : [children];
|
|
22239
|
+
const childrenIds = newChildren.map((child) => {
|
|
22240
|
+
child.parent = "Board";
|
|
22241
|
+
return child.getId();
|
|
22242
|
+
});
|
|
22243
|
+
this.updateChildren(this.children.filter((child) => !childrenIds.includes(child)));
|
|
22244
|
+
}
|
|
22245
|
+
emitNesting(children) {
|
|
22246
|
+
const itemsToAdd = [];
|
|
22247
|
+
const itemsToRemove = [];
|
|
22248
|
+
children.forEach((child) => {
|
|
22249
|
+
if (this.handleNesting(child)) {
|
|
22250
|
+
itemsToAdd.push(child);
|
|
22251
|
+
} else {
|
|
22252
|
+
itemsToRemove.push(child);
|
|
22253
|
+
}
|
|
22254
|
+
});
|
|
22255
|
+
this.addChildItems(itemsToAdd);
|
|
22256
|
+
this.removeChildItems(itemsToRemove);
|
|
22257
|
+
}
|
|
22258
|
+
updateChildren(children) {
|
|
22259
|
+
this.emit({
|
|
22260
|
+
class: this.itemType,
|
|
22261
|
+
method: "updateChildren",
|
|
22262
|
+
item: [this.getId()],
|
|
22263
|
+
newData: { children },
|
|
22264
|
+
prevData: { children: this.children }
|
|
22265
|
+
});
|
|
22266
|
+
}
|
|
22267
|
+
handleNesting(item, options) {
|
|
22268
|
+
const isItem = "itemType" in item;
|
|
22269
|
+
const itemMbr = isItem ? item.getMbr() : item;
|
|
22270
|
+
if (item instanceof BaseItem && !item.canBeNested) {
|
|
22271
|
+
return false;
|
|
22272
|
+
}
|
|
22273
|
+
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
22274
|
+
return false;
|
|
22275
|
+
}
|
|
22276
|
+
const mbr = this.getMbr().copy();
|
|
22277
|
+
if (item.isEnclosedOrCrossedBy(mbr)) {
|
|
22278
|
+
if (mbr.isInside(itemMbr.getCenter())) {
|
|
22279
|
+
if (!options || !options.onlyForOut) {
|
|
22280
|
+
return true;
|
|
22281
|
+
}
|
|
22282
|
+
}
|
|
22283
|
+
}
|
|
22284
|
+
return false;
|
|
22285
|
+
}
|
|
22286
|
+
applyUpdateChildren(children) {
|
|
22287
|
+
if (!this.children) {
|
|
22288
|
+
return;
|
|
22289
|
+
}
|
|
22290
|
+
children.forEach((child) => {
|
|
22291
|
+
if (this.parent !== child && this.getId() !== child) {
|
|
22292
|
+
const foundItem = this.board.items.getById(child);
|
|
22293
|
+
if (!this.children.includes(child) && foundItem) {
|
|
22294
|
+
foundItem.parent = this.getId();
|
|
22295
|
+
}
|
|
22296
|
+
}
|
|
22297
|
+
});
|
|
22298
|
+
this.children = children;
|
|
22299
|
+
this.updateMbr();
|
|
22300
|
+
this.subject.publish(this);
|
|
22301
|
+
}
|
|
22302
|
+
updateMbr() {
|
|
22303
|
+
return;
|
|
22304
|
+
}
|
|
22222
22305
|
getLinkTo() {
|
|
22223
22306
|
return this.linkTo.link;
|
|
22224
22307
|
}
|
|
@@ -22268,6 +22351,12 @@ class BaseItem extends Mbr {
|
|
|
22268
22351
|
case "LinkTo":
|
|
22269
22352
|
this.linkTo.apply(op);
|
|
22270
22353
|
break;
|
|
22354
|
+
case this.itemType:
|
|
22355
|
+
op = op;
|
|
22356
|
+
switch (op.method) {
|
|
22357
|
+
case "updateChildren":
|
|
22358
|
+
this.applyUpdateChildren(op.newData.children);
|
|
22359
|
+
}
|
|
22271
22360
|
}
|
|
22272
22361
|
}
|
|
22273
22362
|
addOnRemoveCallback(cb) {
|
|
@@ -40892,6 +40981,7 @@ class Frame extends BaseItem {
|
|
|
40892
40981
|
linkTo;
|
|
40893
40982
|
text;
|
|
40894
40983
|
canChangeRatio = true;
|
|
40984
|
+
canBeNested = false;
|
|
40895
40985
|
newShape = null;
|
|
40896
40986
|
transformationRenderBlock = undefined;
|
|
40897
40987
|
constructor(board, getItemById, id = "", name = "", shapeType = defaultFrameData.shapeType, backgroundColor = defaultFrameData.backgroundColor, backgroundOpacity = defaultFrameData.backgroundOpacity, borderColor = defaultFrameData.borderColor, borderOpacity = defaultFrameData.borderOpacity, borderStyle = defaultFrameData.borderStyle, borderWidth = defaultFrameData.borderWidth) {
|
|
@@ -40930,42 +41020,6 @@ class Frame extends BaseItem {
|
|
|
40930
41020
|
this.board = board;
|
|
40931
41021
|
return this;
|
|
40932
41022
|
}
|
|
40933
|
-
emitAddChild(children) {
|
|
40934
|
-
const childrenIds = children.map((child) => {
|
|
40935
|
-
child.parent = this.getId();
|
|
40936
|
-
return child.getId();
|
|
40937
|
-
});
|
|
40938
|
-
this.addChild(childrenIds);
|
|
40939
|
-
}
|
|
40940
|
-
emitRemoveChild(children) {
|
|
40941
|
-
const newChildren = Array.isArray(children) ? children : [children];
|
|
40942
|
-
const childrenIds = newChildren.map((child) => {
|
|
40943
|
-
child.parent = "Board";
|
|
40944
|
-
return child.getId();
|
|
40945
|
-
});
|
|
40946
|
-
this.removeChild(childrenIds);
|
|
40947
|
-
}
|
|
40948
|
-
emitNesting(children) {
|
|
40949
|
-
const itemsToAdd = [];
|
|
40950
|
-
const itemsToRemove = [];
|
|
40951
|
-
children.forEach((child) => {
|
|
40952
|
-
if (this.handleNesting(child)) {
|
|
40953
|
-
itemsToAdd.push(child);
|
|
40954
|
-
} else {
|
|
40955
|
-
itemsToRemove.push(child);
|
|
40956
|
-
}
|
|
40957
|
-
});
|
|
40958
|
-
this.emitAddChild(itemsToAdd);
|
|
40959
|
-
this.emitRemoveChild(itemsToRemove);
|
|
40960
|
-
}
|
|
40961
|
-
addChild(childId) {
|
|
40962
|
-
this.emit({
|
|
40963
|
-
class: "Frame",
|
|
40964
|
-
method: "addChild",
|
|
40965
|
-
item: [this.getId()],
|
|
40966
|
-
childId
|
|
40967
|
-
});
|
|
40968
|
-
}
|
|
40969
41023
|
applyAddChild(childId, noWarn = false) {
|
|
40970
41024
|
const children = Array.isArray(childId) ? childId : [childId];
|
|
40971
41025
|
children.forEach((child) => {
|
|
@@ -40986,36 +41040,9 @@ class Frame extends BaseItem {
|
|
|
40986
41040
|
this.children = this.children.filter((currChild) => !childId.includes(currChild));
|
|
40987
41041
|
this.subject.publish(this);
|
|
40988
41042
|
}
|
|
40989
|
-
removeChild(childId) {
|
|
40990
|
-
this.emit({
|
|
40991
|
-
class: "Frame",
|
|
40992
|
-
method: "removeChild",
|
|
40993
|
-
item: [this.getId()],
|
|
40994
|
-
childId
|
|
40995
|
-
});
|
|
40996
|
-
}
|
|
40997
41043
|
getLinkTo() {
|
|
40998
41044
|
return this.linkTo.link;
|
|
40999
41045
|
}
|
|
41000
|
-
handleNesting(item, options) {
|
|
41001
|
-
const isItem = "itemType" in item;
|
|
41002
|
-
const itemMbr = isItem ? item.getMbr() : item;
|
|
41003
|
-
if (item instanceof Frame) {
|
|
41004
|
-
return false;
|
|
41005
|
-
}
|
|
41006
|
-
if (options?.cancelIfChild && isItem && item.parent !== "Board") {
|
|
41007
|
-
return false;
|
|
41008
|
-
}
|
|
41009
|
-
const frameMbr = this.getMbr().copy();
|
|
41010
|
-
if (item.isEnclosedOrCrossedBy(frameMbr)) {
|
|
41011
|
-
if (frameMbr.isInside(itemMbr.getCenter())) {
|
|
41012
|
-
if (!options || !options.onlyForOut) {
|
|
41013
|
-
return true;
|
|
41014
|
-
}
|
|
41015
|
-
}
|
|
41016
|
-
}
|
|
41017
|
-
return false;
|
|
41018
|
-
}
|
|
41019
41046
|
initPath() {
|
|
41020
41047
|
this.path = Frames[this.shapeType].path.copy();
|
|
41021
41048
|
this.textContainer = Frames[this.shapeType].textBounds.copy();
|
|
@@ -52969,7 +52996,7 @@ class BoardSelection {
|
|
|
52969
52996
|
if (isParentFrame && isRemoveChildFromFrame) {
|
|
52970
52997
|
parentFrame.emitRemoveChild([val.item]);
|
|
52971
52998
|
}
|
|
52972
|
-
val.nested.
|
|
52999
|
+
val.nested.addChildItems([val.item]);
|
|
52973
53000
|
} else if (val.item.parent !== "Board") {
|
|
52974
53001
|
if (isParentFrame) {
|
|
52975
53002
|
parentFrame.emitRemoveChild([val.item]);
|
|
@@ -53113,8 +53140,7 @@ class BoardSelection {
|
|
|
53113
53140
|
class: "Shape",
|
|
53114
53141
|
method: "setBorderWidth",
|
|
53115
53142
|
item: [],
|
|
53116
|
-
|
|
53117
|
-
newData: { width: width2 }
|
|
53143
|
+
newData: { borderWidth: width2 }
|
|
53118
53144
|
};
|
|
53119
53145
|
const operations2 = {};
|
|
53120
53146
|
this.items.list().forEach((item) => {
|
|
@@ -54593,7 +54619,7 @@ class SpatialIndex {
|
|
|
54593
54619
|
remove(item) {
|
|
54594
54620
|
if (item instanceof Frame) {
|
|
54595
54621
|
const newItems = item.getChildrenIds().map((childId) => this.getById(childId)).filter((child) => child !== undefined);
|
|
54596
|
-
item.
|
|
54622
|
+
item.removeChildItems(newItems);
|
|
54597
54623
|
}
|
|
54598
54624
|
if (item.parent !== "Board") {
|
|
54599
54625
|
const parentFrame = this.items.getById(item.parent);
|
|
@@ -55672,7 +55698,7 @@ class Board {
|
|
|
55672
55698
|
}
|
|
55673
55699
|
});
|
|
55674
55700
|
framesMap.forEach((items2, frame) => {
|
|
55675
|
-
frame.
|
|
55701
|
+
frame.addChildItems(items2);
|
|
55676
55702
|
});
|
|
55677
55703
|
}
|
|
55678
55704
|
createItem(id, data) {
|