@dckj-npm/dc-material 0.1.370 → 0.1.371

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.
@@ -1029,20 +1029,32 @@ const TeletextListMeta: IPublicTypeComponentMetadata = {
1029
1029
  return cached // undefined 仅在缓存为空(全新组件首次初始化)时出现,属正常情况
1030
1030
  },
1031
1031
  /**
1032
- * 自定义 setValue:用户每次编辑 dataList 条目时即时更新 WeakMap 缓存。
1033
- * 这是保证缓存与用户实际数据保持同步的关键——之前缓存只在
1034
- * imgWidth/imgHeight/imagePlacement.setValue 中写入,用户直接编辑 dataList
1035
- * 时缓存一直停留在初始默认值,导致 margin 修改时从缓存取出默认图数组。
1032
+ * 自定义 setValue:用户每次编辑 dataList 条目时,先更新 WeakMap 缓存,
1033
+ * 再通过 node.setPropValue 将值持久化到 schema。
1034
+ *
1035
+ * ⚠️ 此引擎中 extraProps.setValue 完全接管写入逻辑,引擎不会自动持久化:
1036
+ * 若不在此处显式调用 setPropValue,用户编辑的数据将只存于内存缓存,
1037
+ * 页面刷新后丢失,同时 imgWidth/imgHeight.setValue 的快照–还原机制也因
1038
+ * props.getPropValue('dataList') 返回 undefined 而失效,导致还原跳过,
1039
+ * 进而触发引擎 initDefaultValue,画布回退默认图。
1040
+ *
1041
+ * 写入顺序:先缓存(供 initialValue/getValue 兜底),再写 schema(持久化)。
1042
+ * 写入 schema 会触发引擎对 settings 的重评估,但此时 schema 已有值,
1043
+ * initialValue 不会被调用,不会产生循环。
1036
1044
  */
1037
1045
  setValue: (target: any, value: any) => {
1038
1046
  const node = target?.node
1039
1047
  if (!node) return
1040
1048
  if (value !== undefined) {
1049
+ // 先写缓存,确保重评估期间 getValue 可从缓存返回有效值
1041
1050
  _nodeDataListCache.set(node, value)
1051
+ // 再持久化到 schema(引擎不会自动写入,必须显式调用)
1052
+ target.getProps?.()?.setPropValue?.('dataList', value)
1042
1053
  } else {
1043
1054
  // clearValue 场景(value = undefined):清空缓存,使下次 initDefaultValue
1044
1055
  // 可正常返回默认数组(仅用于组件被显式清除数据的情况)
1045
1056
  _nodeDataListCache.delete(node)
1057
+ target.getProps?.()?.setPropValue?.('dataList', undefined)
1046
1058
  }
1047
1059
  },
1048
1060
  },
@@ -117,7 +117,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
117
117
  packageName = '@dckj-npm/dc-material';
118
118
  }
119
119
  if (version === void 0) {
120
- version = '0.1.370';
120
+ version = '0.1.371';
121
121
  }
122
122
  if (basicLibraryVersion === void 0) {
123
123
  basicLibraryVersion = {
@@ -953,20 +953,34 @@ var TeletextListMeta = {
953
953
  return cached; // undefined 仅在缓存为空(全新组件首次初始化)时出现,属正常情况
954
954
  },
955
955
  /**
956
- * 自定义 setValue:用户每次编辑 dataList 条目时即时更新 WeakMap 缓存。
957
- * 这是保证缓存与用户实际数据保持同步的关键——之前缓存只在
958
- * imgWidth/imgHeight/imagePlacement.setValue 中写入,用户直接编辑 dataList
959
- * 时缓存一直停留在初始默认值,导致 margin 修改时从缓存取出默认图数组。
956
+ * 自定义 setValue:用户每次编辑 dataList 条目时,先更新 WeakMap 缓存,
957
+ * 再通过 node.setPropValue 将值持久化到 schema。
958
+ *
959
+ * ⚠️ 此引擎中 extraProps.setValue 完全接管写入逻辑,引擎不会自动持久化:
960
+ * 若不在此处显式调用 setPropValue,用户编辑的数据将只存于内存缓存,
961
+ * 页面刷新后丢失,同时 imgWidth/imgHeight.setValue 的快照–还原机制也因
962
+ * props.getPropValue('dataList') 返回 undefined 而失效,导致还原跳过,
963
+ * 进而触发引擎 initDefaultValue,画布回退默认图。
964
+ *
965
+ * 写入顺序:先缓存(供 initialValue/getValue 兜底),再写 schema(持久化)。
966
+ * 写入 schema 会触发引擎对 settings 的重评估,但此时 schema 已有值,
967
+ * initialValue 不会被调用,不会产生循环。
960
968
  */
961
969
  setValue: function setValue(target, value) {
962
970
  var node = target === null || target === void 0 ? void 0 : target.node;
963
971
  if (!node) return;
964
972
  if (value !== undefined) {
973
+ var _target$getProps10, _target$getProps10$ca, _target$getProps10$ca2;
974
+ // 先写缓存,确保重评估期间 getValue 可从缓存返回有效值
965
975
  _nodeDataListCache.set(node, value);
976
+ // 再持久化到 schema(引擎不会自动写入,必须显式调用)
977
+ (_target$getProps10 = target.getProps) === null || _target$getProps10 === void 0 ? void 0 : (_target$getProps10$ca = _target$getProps10.call(target)) === null || _target$getProps10$ca === void 0 ? void 0 : (_target$getProps10$ca2 = _target$getProps10$ca.setPropValue) === null || _target$getProps10$ca2 === void 0 ? void 0 : _target$getProps10$ca2.call(_target$getProps10$ca, 'dataList', value);
966
978
  } else {
979
+ var _target$getProps11, _target$getProps11$ca, _target$getProps11$ca2;
967
980
  // clearValue 场景(value = undefined):清空缓存,使下次 initDefaultValue
968
981
  // 可正常返回默认数组(仅用于组件被显式清除数据的情况)
969
982
  _nodeDataListCache["delete"](node);
983
+ (_target$getProps11 = target.getProps) === null || _target$getProps11 === void 0 ? void 0 : (_target$getProps11$ca = _target$getProps11.call(target)) === null || _target$getProps11$ca === void 0 ? void 0 : (_target$getProps11$ca2 = _target$getProps11$ca.setPropValue) === null || _target$getProps11$ca2 === void 0 ? void 0 : _target$getProps11$ca2.call(_target$getProps11$ca, 'dataList', undefined);
970
984
  }
971
985
  }
972
986
  }
@@ -122,7 +122,7 @@ function fillRealVersion(meta, packageName, version, basicLibraryVersion) {
122
122
  packageName = '@dckj-npm/dc-material';
123
123
  }
124
124
  if (version === void 0) {
125
- version = '0.1.370';
125
+ version = '0.1.371';
126
126
  }
127
127
  if (basicLibraryVersion === void 0) {
128
128
  basicLibraryVersion = {
@@ -958,20 +958,34 @@ var TeletextListMeta = {
958
958
  return cached; // undefined 仅在缓存为空(全新组件首次初始化)时出现,属正常情况
959
959
  },
960
960
  /**
961
- * 自定义 setValue:用户每次编辑 dataList 条目时即时更新 WeakMap 缓存。
962
- * 这是保证缓存与用户实际数据保持同步的关键——之前缓存只在
963
- * imgWidth/imgHeight/imagePlacement.setValue 中写入,用户直接编辑 dataList
964
- * 时缓存一直停留在初始默认值,导致 margin 修改时从缓存取出默认图数组。
961
+ * 自定义 setValue:用户每次编辑 dataList 条目时,先更新 WeakMap 缓存,
962
+ * 再通过 node.setPropValue 将值持久化到 schema。
963
+ *
964
+ * ⚠️ 此引擎中 extraProps.setValue 完全接管写入逻辑,引擎不会自动持久化:
965
+ * 若不在此处显式调用 setPropValue,用户编辑的数据将只存于内存缓存,
966
+ * 页面刷新后丢失,同时 imgWidth/imgHeight.setValue 的快照–还原机制也因
967
+ * props.getPropValue('dataList') 返回 undefined 而失效,导致还原跳过,
968
+ * 进而触发引擎 initDefaultValue,画布回退默认图。
969
+ *
970
+ * 写入顺序:先缓存(供 initialValue/getValue 兜底),再写 schema(持久化)。
971
+ * 写入 schema 会触发引擎对 settings 的重评估,但此时 schema 已有值,
972
+ * initialValue 不会被调用,不会产生循环。
965
973
  */
966
974
  setValue: function setValue(target, value) {
967
975
  var node = target === null || target === void 0 ? void 0 : target.node;
968
976
  if (!node) return;
969
977
  if (value !== undefined) {
978
+ var _target$getProps10, _target$getProps10$ca, _target$getProps10$ca2;
979
+ // 先写缓存,确保重评估期间 getValue 可从缓存返回有效值
970
980
  _nodeDataListCache.set(node, value);
981
+ // 再持久化到 schema(引擎不会自动写入,必须显式调用)
982
+ (_target$getProps10 = target.getProps) === null || _target$getProps10 === void 0 ? void 0 : (_target$getProps10$ca = _target$getProps10.call(target)) === null || _target$getProps10$ca === void 0 ? void 0 : (_target$getProps10$ca2 = _target$getProps10$ca.setPropValue) === null || _target$getProps10$ca2 === void 0 ? void 0 : _target$getProps10$ca2.call(_target$getProps10$ca, 'dataList', value);
971
983
  } else {
984
+ var _target$getProps11, _target$getProps11$ca, _target$getProps11$ca2;
972
985
  // clearValue 场景(value = undefined):清空缓存,使下次 initDefaultValue
973
986
  // 可正常返回默认数组(仅用于组件被显式清除数据的情况)
974
987
  _nodeDataListCache["delete"](node);
988
+ (_target$getProps11 = target.getProps) === null || _target$getProps11 === void 0 ? void 0 : (_target$getProps11$ca = _target$getProps11.call(target)) === null || _target$getProps11$ca === void 0 ? void 0 : (_target$getProps11$ca2 = _target$getProps11$ca.setPropValue) === null || _target$getProps11$ca2 === void 0 ? void 0 : _target$getProps11$ca2.call(_target$getProps11$ca, 'dataList', undefined);
975
989
  }
976
990
  }
977
991
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dckj-npm/dc-material",
3
- "version": "0.1.370",
3
+ "version": "0.1.371",
4
4
  "description": "dc低代码物料",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -114,10 +114,10 @@
114
114
  },
115
115
  "componentConfig": {
116
116
  "isComponentLibrary": true,
117
- "materialSchema": "https://unpkg.com/@dckj-npm/dc-material@0.1.370/build/lowcode/assets-prod.json"
117
+ "materialSchema": "https://unpkg.com/@dckj-npm/dc-material@0.1.371/build/lowcode/assets-prod.json"
118
118
  },
119
119
  "lcMeta": {
120
120
  "type": "component"
121
121
  },
122
- "homepage": "https://unpkg.com/@dckj-npm/dc-material@0.1.370/build/index.html"
122
+ "homepage": "https://unpkg.com/@dckj-npm/dc-material@0.1.371/build/index.html"
123
123
  }