@tmagic/editor 1.3.0-beta.8 → 1.3.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.
@@ -8824,11 +8824,6 @@
8824
8824
  return;
8825
8825
  stage.setZoom(zoom2);
8826
8826
  });
8827
- vue.watch(root, (root2) => {
8828
- if (runtime && root2) {
8829
- runtime.updateRootConfig?.(lodashEs.cloneDeep(vue.toRaw(root2)));
8830
- }
8831
- });
8832
8827
  vue.watch(page, (page2) => {
8833
8828
  if (runtime && page2) {
8834
8829
  runtime.updatePageId?.(page2.id);
@@ -8837,6 +8832,12 @@
8837
8832
  });
8838
8833
  }
8839
8834
  });
8835
+ const rootChangeHandler = (root2) => {
8836
+ if (runtime && root2) {
8837
+ runtime.updateRootConfig?.(lodashEs.cloneDeep(vue.toRaw(root2)));
8838
+ }
8839
+ };
8840
+ services?.editorService.on("root-change", rootChangeHandler);
8840
8841
  const resizeObserver = new ResizeObserver((entries) => {
8841
8842
  for (const { contentRect } of entries) {
8842
8843
  services?.uiService.set("stageContainerRect", {
@@ -8856,6 +8857,7 @@
8856
8857
  resizeObserver.disconnect();
8857
8858
  services?.editorService.set("stage", null);
8858
8859
  services?.keybindingService.unregisteEl("stage");
8860
+ services?.editorService.off("root-change", rootChangeHandler);
8859
8861
  });
8860
8862
  const parseDSL = getConfig("parseDSL");
8861
8863
  const contextmenuHandler = (e) => {
@@ -10204,23 +10206,6 @@
10204
10206
  depService.addTarget(createDataSourceCondTarget(ds.id));
10205
10207
  };
10206
10208
  const rootChangeHandler = async (value, preValue) => {
10207
- const nodeId = editorService.get("node")?.id || props.defaultSelected;
10208
- let node;
10209
- if (nodeId) {
10210
- node = editorService.getNodeById(nodeId);
10211
- }
10212
- if (node && node !== value) {
10213
- await editorService.select(node.id);
10214
- } else if (value?.items?.length) {
10215
- await editorService.select(value.items[0]);
10216
- } else if (value?.id) {
10217
- editorService.set("nodes", [value]);
10218
- editorService.set("parent", null);
10219
- editorService.set("page", null);
10220
- }
10221
- if (vue.toRaw(value) !== vue.toRaw(preValue)) {
10222
- emit("update:modelValue", value);
10223
- }
10224
10209
  if (!value)
10225
10210
  return;
10226
10211
  value.codeBlocks = value.codeBlocks || {};
@@ -10234,12 +10219,29 @@
10234
10219
  value.dataSources.forEach((ds) => {
10235
10220
  initDataSourceDepTarget(ds);
10236
10221
  });
10237
- if (value && Array.isArray(value.items)) {
10222
+ if (Array.isArray(value.items)) {
10238
10223
  depService.collect(value.items, true);
10239
10224
  } else {
10240
10225
  depService.clear();
10241
10226
  delete value.dataSourceDeps;
10242
10227
  }
10228
+ const nodeId = editorService.get("node")?.id || props.defaultSelected;
10229
+ let node;
10230
+ if (nodeId) {
10231
+ node = editorService.getNodeById(nodeId);
10232
+ }
10233
+ if (node && node !== value) {
10234
+ await editorService.select(node.id);
10235
+ } else if (value.items?.length) {
10236
+ await editorService.select(value.items[0]);
10237
+ } else if (value.id) {
10238
+ editorService.set("nodes", [value]);
10239
+ editorService.set("parent", null);
10240
+ editorService.set("page", null);
10241
+ }
10242
+ if (vue.toRaw(value) !== vue.toRaw(preValue)) {
10243
+ emit("update:modelValue", value);
10244
+ }
10243
10245
  };
10244
10246
  const nodeAddHandler = (nodes) => {
10245
10247
  depService.collect(nodes);