@gct-paas/excel 0.1.39-beta.48 → 0.1.39-beta.49

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.
Files changed (89) hide show
  1. package/dist/{BaseComponent-CkMnlfWd.js → BaseComponent-C1h429zs.js} +2 -2
  2. package/dist/{VueVideoPlayer-CsiWnQT8.js → VueVideoPlayer-Ca23ED7v.js} +2 -2
  3. package/dist/{align-editor-CRjMBiv1.js → align-editor-6c2LC6xc.js} +1 -1
  4. package/dist/{barcode-design-BNIpxEzc.js → barcode-design-C_xO0jor.js} +2 -2
  5. package/dist/base/index.es.js +109 -62
  6. package/dist/{diagonal-design-6V7cgcn8.js → diagonal-design-BFxBAG3i.js} +2 -2
  7. package/dist/{dynamic-table-action-BP2qzgdK.js → dynamic-table-action-DFabTKVv.js} +103 -81
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DTkBFPUl.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang--M6ES58_.js} +382 -368
  9. package/dist/{edit.utils-CXmmCnxE-Be_Jj92u.js → edit.utils-CXmmCnxE-CW2WVjJi.js} +1 -1
  10. package/dist/{exceljs.min-U1z8AVud.js → exceljs.min-vOmepi6j.js} +2 -2
  11. package/dist/{font-editor-CSzJYS59.js → font-editor-CNA-69tk.js} +3 -3
  12. package/dist/{image-design-CjDaoN6i.js → image-design-DAMqKfR4.js} +2 -2
  13. package/dist/{index-Tipg-sO8.js → index-2SkzLFoC.js} +2 -2
  14. package/dist/{index-DCo1rBlu.js → index-5B4uB3JL.js} +2 -2
  15. package/dist/{index-CAeGCpqZ.js → index-6CT_4Jha.js} +1 -1
  16. package/dist/{index-KGWuZtk7.js → index-B-wN9cvQ.js} +2 -2
  17. package/dist/{index-BJh9up1X.js → index-BEVtkZps.js} +1 -1
  18. package/dist/{index-YkLm0Y3J.js → index-BH2VaJgM.js} +3 -3
  19. package/dist/{index-CNRHbj9w.js → index-BJ7AkCbB.js} +2 -2
  20. package/dist/{index-Bv0fTe8J.js → index-BJFbn7eK.js} +3 -3
  21. package/dist/{index-Kqrb380-.js → index-BV8-rI9q.js} +3 -3
  22. package/dist/{index-DvdGxeYk.js → index-BVR1UCrj.js} +2 -2
  23. package/dist/{index-CpkuDCgX.js → index-BVYi3rfK.js} +3 -3
  24. package/dist/{index-Cl-nmu1E.js → index-Bnn8D9vx.js} +1 -1
  25. package/dist/{index-OPfmMfF_.js → index-Bq_rp1rw.js} +2 -2
  26. package/dist/{index-CySEm8X9.js → index-BrB6jgrE.js} +2 -2
  27. package/dist/{index-BJJhezsz.js → index-BxIQyIEM.js} +2 -2
  28. package/dist/{index-DrzUn5zx.js → index-CHQfSnNJ.js} +1 -1
  29. package/dist/{index-DnQudjER.js → index-CSHFxbHp.js} +2 -2
  30. package/dist/{index-DqfszGp-.js → index-Ce9iZFsC.js} +2 -2
  31. package/dist/{index-BB53z_-a.js → index-ChioR7wt.js} +2 -2
  32. package/dist/{index-GaM0ytTB.js → index-Cxjc25sU.js} +3 -3
  33. package/dist/{index-DhqQJJs2.js → index-D-dP3cGJ.js} +2 -2
  34. package/dist/{index-B3YLauBl.js → index-D1bnU20t.js} +2 -2
  35. package/dist/{index-CUGjf_Fd.js → index-DAVD3o_T.js} +2 -2
  36. package/dist/{index-CbuzkPgj.js → index-DNNqAs8a.js} +44 -44
  37. package/dist/{index-C1Ew74_3.js → index-DOyoMEXD.js} +1 -1
  38. package/dist/{index-DzTuqBBO.js → index-DRu1a_M6.js} +2 -2
  39. package/dist/{index-yFn4abw6.js → index-DZ_chfLG.js} +4 -4
  40. package/dist/{index-xYZbueZ3.js → index-DjHFRe8n.js} +3 -3
  41. package/dist/{index-BcC37bc7.js → index-DloaUH4l.js} +2 -2
  42. package/dist/{index-CMBdCQdv.js → index-Es4YDRo8.js} +1 -1
  43. package/dist/{index-BTYJa5FX.js → index-LgYJM2d4.js} +1 -1
  44. package/dist/{index-DGEWt4fq.js → index-ZSXgrukM.js} +1 -1
  45. package/dist/{index-DXJ2ZLjB.js → index-h65oY0wv.js} +1 -1
  46. package/dist/{index-e2fj0ZUQ.js → index-vYnnD6AY.js} +1 -1
  47. package/dist/{index-D3hjkCfG.js → index-zmFqYyCW.js} +2 -2
  48. package/dist/index.es.js +2 -2
  49. package/dist/{mb-render-C7bYBZNr.js → mb-render-HYBbL4je.js} +1 -1
  50. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-Bj9EoXh1.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-NbLtIf54.js} +1 -1
  51. package/dist/{pagination-design-76z2fn1w.js → pagination-design-C33n_knS.js} +2 -2
  52. package/dist/paper-widget-design-BSEiISrR.js +4 -0
  53. package/dist/{print-runtime-instance-DY_6z5Uq.js → print-runtime-instance-DKxmOdjq.js} +1 -1
  54. package/dist/{print-snapshot-renderer-CqQ4eP1O.js → print-snapshot-renderer-DplvMCOJ.js} +3 -3
  55. package/dist/{qrcode-design-U0jIXrqb.js → qrcode-design-CSsYRa59.js} +1 -1
  56. package/dist/{revo-grid.entry-BORGM9ol.js → revo-grid.entry-Be97ST99.js} +1 -1
  57. package/dist/{revogr-attribution_7.entry-Bbt9xrbj.js → revogr-attribution_7.entry-DY55EHUK.js} +3 -3
  58. package/dist/{revogr-clipboard_3.entry-BALlsgGo.js → revogr-clipboard_3.entry-BBOcVxnm.js} +2 -2
  59. package/dist/{revogr-data_4.entry-C5gCRtZO.js → revogr-data_4.entry-BbfKmCSr.js} +2 -2
  60. package/dist/{revogr-filter-panel.entry-0bOrAEF0.js → revogr-filter-panel.entry-CQgUZAYK.js} +1 -1
  61. package/dist/seal-design-C1pRzFqT.js +4 -0
  62. package/dist/{serialnumber-design-DqpV7rjc.js → serialnumber-design-B_Vr6PTs.js} +1 -1
  63. package/dist/shared/index.es.js +6 -6
  64. package/dist/{single-field-drop-DbtML4gi.js → single-field-drop-DDCsNS3W.js} +2 -2
  65. package/dist/{size-editor-BwDIwzDh.js → size-editor-BQqwHGX-.js} +1 -1
  66. package/dist/src/nocode-base/src/runtime/formula-utils.d.ts +2 -0
  67. package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
  68. package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
  69. package/dist/{sub-table-factory-yVCjr6FI.js → sub-table-factory-BpyB5OlC.js} +2 -2
  70. package/dist/{text-design-dXb2-ItC.js → text-design-6ExcVDYW.js} +2 -2
  71. package/dist/{throttle-Cpk1LoGk-DEt1jg2L.js → throttle-Cpk1LoGk-Bg_Bed1e.js} +1 -1
  72. package/dist/{timediff-design-DDss5fNj.js → timediff-design-BEVJAK71.js} +1 -1
  73. package/dist/{trace-like-wrapper-Buykmr-D.js → trace-like-wrapper-CBpVK8U6.js} +2 -2
  74. package/dist/{value-editor.vue_vue_type_style_index_0_lang-61EKSPm5.js → value-editor.vue_vue_type_style_index_0_lang-mSchVPf0.js} +2 -2
  75. package/dist/web-render/index.es.js +3 -3
  76. package/dist/{widget-barcode-CxZ9Ttpq.js → widget-barcode-BMA-mWsJ.js} +4 -4
  77. package/dist/{widget-diagonal-CdgIjqi5.js → widget-diagonal-DA3UW7np.js} +3 -3
  78. package/dist/{widget-image-DbxFfFj0.js → widget-image-aDBxxk8w.js} +5 -5
  79. package/dist/{widget-line-CLlxgXXK.js → widget-line-BxocSAh7.js} +2 -2
  80. package/dist/{widget-pagination-BVVkO_wj.js → widget-pagination-Colzk2mT.js} +5 -5
  81. package/dist/{widget-power-BO7U8ObS.js → widget-power-Cbet700Q.js} +3 -3
  82. package/dist/{widget-qrcode-BzgEPny7.js → widget-qrcode-DgjnrEVt.js} +3 -3
  83. package/dist/{widget-rangelimit-Bl3SsD07.js → widget-rangelimit-B9vhV0nA.js} +3 -3
  84. package/dist/{widget-serialnumber-DfZfCGyk.js → widget-serialnumber-D8EJ1fV-.js} +1 -1
  85. package/dist/{widget-text-BmuYvZG5.js → widget-text-D-vER3xP.js} +5 -5
  86. package/dist/{widget-timediff-hOTu4X-j.js → widget-timediff-gbfqYExJ.js} +2 -2
  87. package/package.json +1 -1
  88. package/dist/paper-widget-design-DUDTSxnG.js +0 -4
  89. package/dist/seal-design-Dw48cvB6.js +0 -4
@@ -1,10 +1,10 @@
1
1
  import { reactive, toRaw, computed, watch, onScopeDispose, inject, h, shallowReactive, markRaw, ref, toRef, nextTick, provide, defineComponent, openBlock, createElementBlock, mergeProps, unref, createElementVNode, normalizeClass, renderSlot, createCommentVNode, createVNode, toDisplayString, Fragment, renderList, onUnmounted, isVNode, onMounted, onBeforeMount, resolveComponent, createBlock, withCtx, createTextVNode } from "vue";
2
- import { af as CellWidgetViewState, F as FIELD_TYPE, b5 as RenderModeEnum, X as FormTypeEnum, bt as BpmnNodeTypeEnum, ci as getFieldPlaceholder, bJ as MobileFillTypeEnum, C as ComponentTypeEnum, bd as findRuntimeTableRow, aT as renderUtils, _ as PlatformEnum, E as api, bm as uuid2, bT as calcUtils, bX as ensureTableRowKeys, bQ as bindRuntimeTableColumns, bc as getRowId, cj as FRONT_ROW_KEY, ca as isTableRowKeyMatch, au as RangeCompareOp, at as RangeValidateMode, bU as decodeTableCellRowKey, bW as ensureFrontRowKey, a$ as getParseRuleInfo, aC as transformUtils, aV as materialCheck, aW as getLotLockedReason, aX as validateReinspectionDate, bg as FormulaRuleFieldKeyEnum, f as SubTableType, b0 as getParseRuleValue, H as CreateType, be as findRuntimeParentRow, aF as Dependency_ENUM, aE as ASSIGNMENTSTRATEGY_ENUM, bx as commonUtils, aJ as DeviceLink, a7 as _export_sfc, c4 as getRenderedRuntimeTableCell, y as CellType, ck as resetTableRowIdentity, J as useModal, cl as q, cm as QUICK_FILL_ALLOWED_FIELDS, cn as groupFixedTableRows, co as processQuickFillRows, cp as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang-DTkBFPUl.js";
2
+ import { cg as splitRuntimeDataPath, af as CellWidgetViewState, F as FIELD_TYPE, b5 as RenderModeEnum, X as FormTypeEnum, bt as BpmnNodeTypeEnum, cj as getFieldPlaceholder, bJ as MobileFillTypeEnum, C as ComponentTypeEnum, bd as findRuntimeTableRow, aT as renderUtils, _ as PlatformEnum, E as api, bm as uuid2, bT as calcUtils, bX as ensureTableRowKeys, bQ as bindRuntimeTableColumns, bc as getRowId, ck as FRONT_ROW_KEY, ca as isTableRowKeyMatch, au as RangeCompareOp, at as RangeValidateMode, bU as decodeTableCellRowKey, bW as ensureFrontRowKey, a$ as getParseRuleInfo, aC as transformUtils, aV as materialCheck, aW as getLotLockedReason, aX as validateReinspectionDate, bg as FormulaRuleFieldKeyEnum, f as SubTableType, b0 as getParseRuleValue, H as CreateType, be as findRuntimeParentRow, aF as Dependency_ENUM, aE as ASSIGNMENTSTRATEGY_ENUM, bx as commonUtils, aJ as DeviceLink, a7 as _export_sfc, c4 as getRenderedRuntimeTableCell, y as CellType, cl as resetTableRowIdentity, J as useModal, cm as q, cn as QUICK_FILL_ALLOWED_FIELDS, co as groupFixedTableRows, cp as processQuickFillRows, cq as getIsGroupEmpty } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_53d7e66c_lang--M6ES58_.js";
3
3
  import dayjs from "dayjs";
4
4
  import { cloneDeep, isEmpty, isNil, pickBy, mergeWith, omit, last, pick, merge } from "lodash-es";
5
5
  import { a as useNamespace, I as Icon } from "./AntdIcon-DCIaV352.js";
6
6
  import { Modal, message } from "ant-design-vue";
7
- import { u as useFormModel } from "./mb-render-C7bYBZNr.js";
7
+ import { u as useFormModel } from "./mb-render-HYBbL4je.js";
8
8
  var MaterialConsumptionPatternEnum = /* @__PURE__ */ ((MaterialConsumptionPatternEnum2) => {
9
9
  MaterialConsumptionPatternEnum2["RECORD"] = "record";
10
10
  MaterialConsumptionPatternEnum2["BOM"] = "bom";
@@ -42,8 +42,8 @@ function getRuntimeDependencyOutputKey(widgetId, type4, rowPath) {
42
42
  return JSON.stringify([widgetId, type4, rowPath]);
43
43
  }
44
44
  function pathMatches(source, changedPath, structureOnly = false) {
45
- const expected = source.split(".");
46
- const changed = changedPath.split(".");
45
+ const expected = splitRuntimeDataPath(source);
46
+ const changed = splitRuntimeDataPath(changedPath);
47
47
  if (structureOnly && changed.length > expected.length) return false;
48
48
  return expected.slice(0, Math.min(expected.length, changed.length)).every((part, index) => part === "*" || part === changed[index]);
49
49
  }
@@ -147,7 +147,8 @@ class RuntimeDependencyService {
147
147
  schedule(change) {
148
148
  if (this.disposed) return;
149
149
  const labelsOnly = change.paths.length > 0 && change.paths.every((path) => path.endsWith("_lb_"));
150
- if (change.source === "restore" && !labelsOnly) change = { ...change, paths: ["*"] };
150
+ if (change.source === "restore" && change.restoreScope !== "fields" && !labelsOnly)
151
+ change = { ...change, paths: ["*"] };
151
152
  this.effects.forEach((effect) => {
152
153
  if (this.matches(effect, change.paths)) this.cancelExecution(effect.id);
153
154
  });
@@ -1511,7 +1512,7 @@ class RuntimeFormStateStore {
1511
1512
  reactiveState;
1512
1513
  /** 每次成功提交一批变更递增一次,保存和提交用它判断快照是否过期。 */
1513
1514
  revision = 0;
1514
- /** 是否存在尚未保存的变更;restore 来源不会把实例标记为脏。 */
1515
+ /** 是否存在尚未保存的变更;数据恢复及保存回填不会把实例标记为脏。 */
1515
1516
  dirty = false;
1516
1517
  /** 当前嵌套事务深度;只有最外层事务结束时才递增 revision 并通知订阅方。 */
1517
1518
  mutationDepth = 0;
@@ -1519,6 +1520,7 @@ class RuntimeFormStateStore {
1519
1520
  pendingPaths = /* @__PURE__ */ new Set();
1520
1521
  /** 最外层事务的变更来源,嵌套写入沿用该来源。 */
1521
1522
  pendingSource = "system";
1523
+ pendingRestoreScope;
1522
1524
  /** 联动、分页失效、自动保存等实例服务登记的变更监听器。 */
1523
1525
  subscribers = /* @__PURE__ */ new Set();
1524
1526
  /** 用户主动修改过的业务路径,供公式和自动填充执行“不覆盖用户输入”策略。 */
@@ -1670,10 +1672,12 @@ class RuntimeFormStateStore {
1670
1672
  /**
1671
1673
  * 保存后只回填后端身份元数据,不能用仅含 id_/front_row_key_ 的数组覆盖当前业务行。
1672
1674
  * 二维内置复合键可通过原始子行键匹配保存前的本地行。
1675
+ * 保存回填只通知实际变化的字段,不作为整份数据恢复触发全部赋值规则。
1673
1676
  */
1674
1677
  patchSavedMetadata(values) {
1675
- const paths = Object.keys(values);
1676
- this.mutate(paths, "restore", () => this.mergeSavedMetadata(this.reactiveState, values));
1678
+ this.transaction("restore", () => this.mergeSavedMetadata(this.state, values), {
1679
+ restoreScope: "fields"
1680
+ });
1677
1681
  }
1678
1682
  /**
1679
1683
  * 用新对象整体替换实例数据,删除旧对象中多余的顶层字段。
@@ -1682,20 +1686,23 @@ class RuntimeFormStateStore {
1682
1686
  replace(values, source = "restore") {
1683
1687
  const paths = /* @__PURE__ */ new Set([...Object.keys(this.reactiveState), ...Object.keys(values)]);
1684
1688
  this.mutate(Array.from(paths), source, () => {
1689
+ this.userModifiedPaths.clear();
1685
1690
  Object.keys(this.reactiveState).forEach((key) => delete this.reactiveState[key]);
1686
1691
  this.assignValues(this.reactiveState, values);
1687
1692
  normalizeEmptyReferenceLabels(this.reactiveState);
1688
1693
  });
1689
- this.userModifiedPaths.clear();
1690
1694
  if (source === "restore") this.dirty = false;
1691
1695
  }
1692
1696
  /**
1693
1697
  * 将多次深层写入合并成一次变更提交。
1694
1698
  * 嵌套事务只累计路径,最外层 finally 统一递增 revision 并通知订阅方。
1695
1699
  */
1696
- transaction(source, callback) {
1700
+ transaction(source, callback, options) {
1697
1701
  const outermost = this.mutationDepth === 0;
1698
- if (outermost) this.pendingSource = source;
1702
+ if (outermost) {
1703
+ this.pendingSource = source;
1704
+ this.pendingRestoreScope = source === "restore" ? options?.restoreScope : void 0;
1705
+ }
1699
1706
  this.mutationDepth += 1;
1700
1707
  try {
1701
1708
  return callback(this.state);
@@ -1705,7 +1712,9 @@ class RuntimeFormStateStore {
1705
1712
  const paths = Array.from(this.pendingPaths);
1706
1713
  this.pendingPaths.clear();
1707
1714
  const pendingSource = this.pendingSource;
1715
+ const restoreScope = this.pendingRestoreScope;
1708
1716
  this.pendingSource = "system";
1717
+ this.pendingRestoreScope = void 0;
1709
1718
  try {
1710
1719
  if (paths.some(
1711
1720
  (path) => this.tableRelations.some(
@@ -1718,7 +1727,7 @@ class RuntimeFormStateStore {
1718
1727
  });
1719
1728
  }
1720
1729
  } finally {
1721
- if (paths.length) this.commit(paths, pendingSource);
1730
+ if (paths.length) this.commit(paths, pendingSource, restoreScope);
1722
1731
  }
1723
1732
  }
1724
1733
  }
@@ -1768,10 +1777,15 @@ class RuntimeFormStateStore {
1768
1777
  this.userModifiedPaths.clear();
1769
1778
  }
1770
1779
  /** 提交当前事务积累的路径,更新版本和脏状态,然后同步通知实例服务。 */
1771
- commit(paths, source) {
1780
+ commit(paths, source, restoreScope) {
1772
1781
  this.revision += 1;
1773
1782
  if (source !== "restore") this.dirty = true;
1774
- const change = { revision: this.revision, paths, source };
1783
+ const change = {
1784
+ revision: this.revision,
1785
+ paths,
1786
+ source,
1787
+ ...restoreScope ? { restoreScope } : {}
1788
+ };
1775
1789
  this.subscribers.forEach((subscriber) => subscriber(change));
1776
1790
  }
1777
1791
  /** 如果值是 Store 创建的 scoped view,返回它实际包装的 Vue 响应式目标。 */
@@ -1823,7 +1837,8 @@ class RuntimeFormStateStore {
1823
1837
  if (!target || typeof target !== "object" || Array.isArray(target)) return incoming;
1824
1838
  Object.entries(incoming).forEach(([key, value]) => {
1825
1839
  const childPath = path ? `${path}.${key}` : key;
1826
- target[key] = this.mergeSavedMetadata(target[key], value, childPath);
1840
+ const merged = this.mergeSavedMetadata(target[key], value, childPath);
1841
+ this.setObjectField(target, key, merged, "restore");
1827
1842
  });
1828
1843
  return target;
1829
1844
  }
@@ -3195,7 +3210,7 @@ const getParseFormulaVarInfos = (expr) => {
3195
3210
  parseInfos: rowArgs.map((curr) => parseFormulaVar(curr))
3196
3211
  };
3197
3212
  };
3198
- const calculateFormula = async (expr, formData, instanceFormState) => {
3213
+ const resolveFormulaData = (expr, formData, instanceFormState) => {
3199
3214
  const rowArgs = identify(expr);
3200
3215
  const formulaData = isEmpty(rowArgs) ? {} : rowArgs.reduce((total, curr) => {
3201
3216
  const parseInfo = parseFormulaVar(curr);
@@ -3205,8 +3220,9 @@ const calculateFormula = async (expr, formData, instanceFormState) => {
3205
3220
  );
3206
3221
  return total;
3207
3222
  }, {});
3208
- return calculate$1(expr, formulaData);
3223
+ return formulaData;
3209
3224
  };
3225
+ const calculateFormula = async (expr, formData, instanceFormState) => calculate$1(expr, resolveFormulaData(expr, formData, instanceFormState));
3210
3226
  const isEmptyValue = (value) => {
3211
3227
  return value === void 0 || value === null || typeof value === "string" && value.trim() === "" || Array.isArray(value) && value.length === 0;
3212
3228
  };
@@ -3897,8 +3913,8 @@ class RuntimeValidationService {
3897
3913
  }
3898
3914
  function matchesPattern(pattern4, path) {
3899
3915
  if (!pattern4.includes("*")) return pattern4 === path;
3900
- const expected = pattern4.split(".");
3901
- const actual = path.split(".");
3916
+ const expected = splitRuntimeDataPath(pattern4);
3917
+ const actual = splitRuntimeDataPath(path);
3902
3918
  return expected.length === actual.length && expected.every((part, index) => part === "*" || part === actual[index]);
3903
3919
  }
3904
3920
  class RuntimeFieldRegistry {
@@ -7950,7 +7966,11 @@ function useDependency(widget, props) {
7950
7966
  );
7951
7967
  if (!controlledFormData.value._OPCT) {
7952
7968
  const store = formStateStore.value;
7953
- store.setObjectField(controlledFormData.value, "_OPCT", { _DICT: {} }, "restore");
7969
+ store.transaction(
7970
+ "restore",
7971
+ () => store.setObjectField(controlledFormData.value, "_OPCT", { _DICT: {} }, "restore"),
7972
+ { restoreScope: "fields" }
7973
+ );
7954
7974
  }
7955
7975
  const formRowData = toRef(() => {
7956
7976
  if (isFieldModel) {
@@ -7976,6 +7996,7 @@ function useDependency(widget, props) {
7976
7996
  if (!store) throw new Error("字段组件缺少实例级 FormStateStore");
7977
7997
  const row = store.createScopedView(formRowData.value, formRowPath.value);
7978
7998
  const path = store.getFieldPath(row, targetFieldId);
7999
+ if (assignment_expression) store.markUserModified(path);
7979
8000
  store.setObjectField(row, targetFieldId, val, "user", path);
7980
8001
  if (assignment_expression && strategy === ASSIGNMENTSTRATEGY_ENUM.notCovered && commonUtils.isEmptyValue(val)) {
7981
8002
  store.clearUserModified(path);
@@ -10956,7 +10977,7 @@ export {
10956
10977
  registerFormulaFuncs as Z,
10957
10978
  moveSealValue as _,
10958
10979
  MAX_RUNTIME_SHEET_TITLE_LENGTH as a,
10959
- getInsertSubMenu as a$,
10980
+ resolveScanFillData as a$,
10960
10981
  DynamicTableAction as a0,
10961
10982
  _sfc_main$5 as a1,
10962
10983
  getRuntimeDataFieldId as a2,
@@ -10967,67 +10988,68 @@ export {
10967
10988
  isAttachFieldActive as a7,
10968
10989
  getRuntimeDependencyOutputKey as a8,
10969
10990
  isRowAddedInCurrentFormChange as a9,
10970
- RuntimePersistenceCoordinator as aA,
10971
- RuntimeValidationService as aB,
10972
- SubTableCore as aC,
10973
- buildFormChangeDisplayRows as aD,
10974
- convertV1Runtime as aE,
10975
- detailsHaveFormChangeRowOps as aF,
10976
- extractFormChangeRowDetails as aG,
10977
- getFormChangeRowKey as aH,
10978
- getFormChangeRowOp as aI,
10979
- getSubTableQuickFillInfo as aJ,
10980
- isAnnLocationSelected as aK,
10981
- isBlank as aL,
10982
- isFormChangeGhostRow as aM,
10983
- normalizeHistoricalFieldConfig as aN,
10984
- pickObjectFieldKeys as aO,
10985
- recordSubtableRowAdd as aP,
10986
- recordSubtableRowDelete as aQ,
10987
- relocateDeletedRowsToEnd as aR,
10988
- resolveAnnotationFieldLocation as aS,
10989
- resolveFormChangeRowUi as aT,
10990
- resolveRowFormChangeMark as aU,
10991
- setSelectMobileTdId as aV,
10992
- stripLegacyFormConfigFromPaper as aW,
10993
- SubTableActionMenuTypeEnum as aX,
10994
- getMenuByAction as aY,
10995
- SubTableActionEnum as aZ,
10996
- resolveScanFillData as a_,
10997
- MaterialConsumeTableController as aa,
10998
- setFormulaParamsConfig as ab,
10999
- normalizeRuntime as ac,
11000
- initializeSealFields as ad,
11001
- RuntimeSheetService as ae,
11002
- validateObjectBomQtyOnSubmit as af,
11003
- areValidationCommentsEqual as ag,
11004
- closeValidatorPopovers as ah,
11005
- enrichFormChangeRowDetails as ai,
11006
- useMaterialBalance as aj,
11007
- collectFormChangeFieldLocations as ak,
11008
- nextFormChangeRowViewHistoryId as al,
11009
- DeviceConnector as am,
11010
- DocumentLoading as an,
11011
- DynamicQuickFillModal as ao,
11012
- FixedQuickFillModal as ap,
11013
- FormTmplConfigController as aq,
11014
- LEGACY_RUNTIME_FORM_CONFIG_KEYS as ar,
11015
- LEGACY_RUNTIME_SHEET_ID as as,
11016
- LEGACY_RUNTIME_SHEET_TITLE as at,
11017
- MCDataUtil as au,
11018
- OCR_MODEL_PRECISION_ENUM_KEY as av,
11019
- RuntimeAsyncTaskCoordinator as aw,
11020
- RuntimeDependencyService as ax,
11021
- RuntimeFieldRegistry as ay,
11022
- RuntimeInstanceEventBus as az,
10991
+ RuntimeInstanceEventBus as aA,
10992
+ RuntimePersistenceCoordinator as aB,
10993
+ RuntimeValidationService as aC,
10994
+ SubTableCore as aD,
10995
+ buildFormChangeDisplayRows as aE,
10996
+ convertV1Runtime as aF,
10997
+ detailsHaveFormChangeRowOps as aG,
10998
+ extractFormChangeRowDetails as aH,
10999
+ getFormChangeRowKey as aI,
11000
+ getFormChangeRowOp as aJ,
11001
+ getSubTableQuickFillInfo as aK,
11002
+ isAnnLocationSelected as aL,
11003
+ isBlank as aM,
11004
+ isFormChangeGhostRow as aN,
11005
+ normalizeHistoricalFieldConfig as aO,
11006
+ pickObjectFieldKeys as aP,
11007
+ recordSubtableRowAdd as aQ,
11008
+ recordSubtableRowDelete as aR,
11009
+ relocateDeletedRowsToEnd as aS,
11010
+ resolveAnnotationFieldLocation as aT,
11011
+ resolveFormChangeRowUi as aU,
11012
+ resolveRowFormChangeMark as aV,
11013
+ setSelectMobileTdId as aW,
11014
+ stripLegacyFormConfigFromPaper as aX,
11015
+ SubTableActionMenuTypeEnum as aY,
11016
+ getMenuByAction as aZ,
11017
+ SubTableActionEnum as a_,
11018
+ resolveFormulaData as aa,
11019
+ MaterialConsumeTableController as ab,
11020
+ setFormulaParamsConfig as ac,
11021
+ normalizeRuntime as ad,
11022
+ initializeSealFields as ae,
11023
+ RuntimeSheetService as af,
11024
+ validateObjectBomQtyOnSubmit as ag,
11025
+ areValidationCommentsEqual as ah,
11026
+ closeValidatorPopovers as ai,
11027
+ enrichFormChangeRowDetails as aj,
11028
+ useMaterialBalance as ak,
11029
+ collectFormChangeFieldLocations as al,
11030
+ nextFormChangeRowViewHistoryId as am,
11031
+ DeviceConnector as an,
11032
+ DocumentLoading as ao,
11033
+ DynamicQuickFillModal as ap,
11034
+ FixedQuickFillModal as aq,
11035
+ FormTmplConfigController as ar,
11036
+ LEGACY_RUNTIME_FORM_CONFIG_KEYS as as,
11037
+ LEGACY_RUNTIME_SHEET_ID as at,
11038
+ LEGACY_RUNTIME_SHEET_TITLE as au,
11039
+ MCDataUtil as av,
11040
+ OCR_MODEL_PRECISION_ENUM_KEY as aw,
11041
+ RuntimeAsyncTaskCoordinator as ax,
11042
+ RuntimeDependencyService as ay,
11043
+ RuntimeFieldRegistry as az,
11023
11044
  MULTI_SHEET_SCHEMA_VERSION as b,
11024
- resolveScanAdjustType as b0,
11025
- resolveScanQty as b1,
11026
- toDateOnly as b2,
11027
- hasSubtableBusinessData as b3,
11028
- getCopySubMenu as b4,
11029
- resolveScanParsedValue as b5,
11030
- isProductBatchEmptyRow as b6,
11045
+ getInsertSubMenu as b0,
11046
+ resolveScanAdjustType as b1,
11047
+ resolveScanQty as b2,
11048
+ toDateOnly as b3,
11049
+ hasSubtableBusinessData as b4,
11050
+ getCopySubMenu as b5,
11051
+ resolveScanParsedValue as b6,
11052
+ isProductBatchEmptyRow as b7,
11031
11053
  getParseFormulaVarInfos as c,
11032
11054
  createRuntimeDocumentV2 as d,
11033
11055
  clampSealPosition as e,