@tmagic/stage 1.3.2 → 1.3.4

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.
@@ -736,15 +736,15 @@ class MoveableOptionsManager extends EventEmitter {
736
736
  /**
737
737
  * 设置有哪些元素要辅助对齐
738
738
  * @param selectedElList 选中的元素列表,需要排除在对齐元素之外
739
- * @param allElList 全部元素列表
740
739
  */
741
- setElementGuidelines(selectedElList, allElList) {
740
+ setElementGuidelines(selectedElList) {
742
741
  this.elementGuidelines.forEach((node) => {
743
742
  node.remove();
744
743
  });
745
744
  this.elementGuidelines = [];
745
+ const elementGuidelines = this.getCustomizeOptions()?.elementGuidelines || Array.from(selectedElList[0]?.parentElement?.children || []);
746
746
  if (this.mode === Mode.ABSOLUTE) {
747
- this.container.append(this.createGuidelineElements(selectedElList, allElList));
747
+ this.container.append(this.createGuidelineElements(selectedElList, elementGuidelines));
748
748
  }
749
749
  }
750
750
  /**
@@ -861,10 +861,18 @@ class MoveableOptionsManager extends EventEmitter {
861
861
  */
862
862
  createGuidelineElements(selectedElList, allElList) {
863
863
  const frame = globalThis.document.createDocumentFragment();
864
- for (const node of allElList) {
865
- const { width, height } = node.getBoundingClientRect();
864
+ for (const element of allElList) {
865
+ let node = element.element || element;
866
+ if (!node || typeof node === "string")
867
+ continue;
868
+ if (typeof node === "function") {
869
+ node = node();
870
+ }
866
871
  if (this.isInElementList(node, selectedElList))
867
872
  continue;
873
+ const { width, height } = node.getBoundingClientRect();
874
+ if (!width || !height)
875
+ continue;
868
876
  const { left, top } = getOffset(node);
869
877
  const elementGuideline = globalThis.document.createElement("div");
870
878
  elementGuideline.style.cssText = `position: absolute;width: ${width}px;height: ${height}px;top: ${top}px;left: ${left}px`;
@@ -973,8 +981,7 @@ class StageDragResize extends MoveableOptionsManager {
973
981
  this.mode = getMode(el);
974
982
  this.dragResizeHelper.updateShadowEl(el);
975
983
  this.dragResizeHelper.setMode(this.mode);
976
- const elementGuidelines = Array.from(this.target?.parentElement?.children || []);
977
- this.setElementGuidelines([this.target], elementGuidelines);
984
+ this.setElementGuidelines([this.target]);
978
985
  return this.getOptions(false, {
979
986
  target: this.dragResizeHelper.getShadowEl()
980
987
  });
@@ -1242,8 +1249,7 @@ class StageMultiDragResize extends MoveableOptionsManager {
1242
1249
  this.mode = getMode(els[0]);
1243
1250
  this.targetList = els;
1244
1251
  this.dragResizeHelper.updateGroup(els);
1245
- const elementGuidelines = Array.from(this.targetList[0].parentElement?.children || []);
1246
- this.setElementGuidelines(this.targetList, elementGuidelines);
1252
+ this.setElementGuidelines(this.targetList);
1247
1253
  this.moveableForMulti?.destroy();
1248
1254
  this.dragResizeHelper.clear();
1249
1255
  this.moveableForMulti = new Moveable(
@@ -1635,7 +1641,8 @@ class ActionManager extends EventEmitter {
1635
1641
  targetElId: this.selectedEl?.id,
1636
1642
  targetEls: this.selectedElList,
1637
1643
  targetElIds: this.selectedElList?.map((item) => item.id),
1638
- isMulti
1644
+ isMulti,
1645
+ document: this.getRenderDocument()
1639
1646
  };
1640
1647
  return options(cfg);
1641
1648
  }