@gct-paas/excel 0.1.40-beta.27 → 0.1.40-beta.28

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 (90) hide show
  1. package/dist/{BaseComponent-B0s9C7u7.js → BaseComponent-EzX32ZdY.js} +2 -2
  2. package/dist/{VueVideoPlayer-BCGJs86_.js → VueVideoPlayer-BuuQaqyI.js} +2 -2
  3. package/dist/{align-editor-DBWdbAV_.js → align-editor-DWHHVeY1.js} +1 -1
  4. package/dist/{barcode-design-YdLnj4EK.js → barcode-design-B0WcJSEI.js} +2 -2
  5. package/dist/base/index.es.js +109 -62
  6. package/dist/{diagonal-design-vCovyGwZ.js → diagonal-design-D6uOJZmP.js} +2 -2
  7. package/dist/{dynamic-table-action-9oc6dkLz.js → dynamic-table-action-D-ub6KoK.js} +106 -84
  8. package/dist/{dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js → dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js} +385 -371
  9. package/dist/{edit.utils-CXmmCnxE-BvWz-8bv.js → edit.utils-CXmmCnxE-CXdATd1V.js} +1 -1
  10. package/dist/excel.css +29 -20
  11. package/dist/{exceljs.min-Dp6PAQE9.js → exceljs.min-BXhhaToT.js} +2 -2
  12. package/dist/{font-editor-gcStnuue.js → font-editor-_HTdKFX6.js} +3 -3
  13. package/dist/{image-design-DJ3VRU2t.js → image-design-4Ee8rZqa.js} +2 -2
  14. package/dist/{index-agcLaGBj.js → index-7AmrbQlC.js} +2 -2
  15. package/dist/{index-DXqsUrWV.js → index-8ZnBcx1k.js} +3 -3
  16. package/dist/{index-Ck06j4gn.js → index-B4LuUmbW.js} +2 -2
  17. package/dist/{index-BHTcJLrz.js → index-BCCIwSnM.js} +1 -1
  18. package/dist/{index-y3jt4BZe.js → index-BHJxBByd.js} +1 -1
  19. package/dist/{index-sWtzbaDv.js → index-BLf1U1A9.js} +3 -3
  20. package/dist/{index-CFvLIeFl.js → index-BYq7x5n6.js} +1 -1
  21. package/dist/{index-DnsZjDDh.js → index-B_DPnVrC.js} +2 -2
  22. package/dist/{index-D3ZQLjrQ.js → index-Bbyb-owd.js} +2 -2
  23. package/dist/{index-B5AUi6i3.js → index-BlMiHVOC.js} +1 -1
  24. package/dist/{index-D6eANpFX.js → index-BnOOLcX1.js} +2 -2
  25. package/dist/{index-Avrz1-1F.js → index-Bnt54Sc6.js} +2 -2
  26. package/dist/{index-CtEUzXVk.js → index-CH_C9ijO.js} +2 -2
  27. package/dist/{index-7WwJSlNN.js → index-CMdXdyvs.js} +2 -2
  28. package/dist/{index-CzUGIYOv.js → index-CQ0_Kx1_.js} +2 -2
  29. package/dist/{index-Mg-zrcwn.js → index-Cb7Fh_E2.js} +2 -2
  30. package/dist/{index-D90UOUAU.js → index-CtVFTmHZ.js} +3 -3
  31. package/dist/{index-CFTsMiRR.js → index-D3KiKYMR.js} +1 -1
  32. package/dist/{index-BaCa0TgP.js → index-D87CVHA-.js} +2 -2
  33. package/dist/{index-AmKjgww5.js → index-DM0OEvdI.js} +1 -1
  34. package/dist/{index-Dzl5Ukft.js → index-DPTR_QJn.js} +1 -1
  35. package/dist/{index-cOcBl2Ga.js → index-DVzaxa5k.js} +2 -2
  36. package/dist/{index-DIodi5gH.js → index-DcXbL-0o.js} +4 -4
  37. package/dist/{index-iYYd2oH1.js → index-Dn0qfALy.js} +3 -3
  38. package/dist/{index-Cl-QMM1R.js → index-Dnz3YPDV.js} +2 -2
  39. package/dist/{index-DPP4WDPc.js → index-DoWp9uDw.js} +2 -2
  40. package/dist/{index-BCeR77y-.js → index-Dstr-PNj.js} +2 -2
  41. package/dist/{index-BsmHcJs3.js → index-DzqaKW6e.js} +2 -2
  42. package/dist/{index-2mRh7iFw.js → index-GoAXo3fT.js} +224 -180
  43. package/dist/{index-gWEP20xe.js → index-Jy2tofdo.js} +3 -3
  44. package/dist/{index-BYf9Fudx.js → index-KRo2-iQv.js} +3 -3
  45. package/dist/{index-COOampHb.js → index-KuhYPy5i.js} +1 -1
  46. package/dist/{index-CLLc5Ob2.js → index-YlEOHde0.js} +1 -1
  47. package/dist/{index-D9j3S6qI.js → index-toqlO_-B.js} +1 -1
  48. package/dist/index.es.js +2 -2
  49. package/dist/{online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-B79l8Vcj.js → online-form-model-select.vue_vue_type_script_setup_true_name_online-form-model-select_lang-DAAF0eOB.js} +1 -1
  50. package/dist/{pagination-design-BZZcBbIF.js → pagination-design-DANnqQdI.js} +2 -2
  51. package/dist/paper-widget-design-BrE7Bb4V.js +4 -0
  52. package/dist/{print-runtime-instance-CV0WcU-Z.js → print-runtime-instance-PabaORE2.js} +1 -1
  53. package/dist/{print-snapshot-renderer-hHd4ThE0.js → print-snapshot-renderer-DQr2G7Hv.js} +3 -3
  54. package/dist/{qrcode-design-C8d7cE3K.js → qrcode-design-BEA1JchI.js} +1 -1
  55. package/dist/{revo-grid.entry-DSnc_nH1.js → revo-grid.entry-Bj-4xHie.js} +1 -1
  56. package/dist/{revogr-attribution_7.entry-D67ci-yw.js → revogr-attribution_7.entry-NvaozwYj.js} +3 -3
  57. package/dist/{revogr-clipboard_3.entry-C9h0dhAb.js → revogr-clipboard_3.entry-CkRbECsx.js} +2 -2
  58. package/dist/{revogr-data_4.entry-DuuRVRex.js → revogr-data_4.entry-Dbbd8Mpz.js} +2 -2
  59. package/dist/{revogr-filter-panel.entry-BeIaYORN.js → revogr-filter-panel.entry-lcMbXUNb.js} +1 -1
  60. package/dist/seal-design-CX-ZxOn3.js +4 -0
  61. package/dist/{serialnumber-design-wyJY14Fx.js → serialnumber-design-B608oYcy.js} +1 -1
  62. package/dist/shared/index.es.js +6 -6
  63. package/dist/{single-field-drop-CA6EtCtR.js → single-field-drop-CkUP3H7u.js} +2 -2
  64. package/dist/{size-editor-lAn0ECzs.js → size-editor-Bl-lUcdU.js} +1 -1
  65. package/dist/src/nocode-base/src/runtime/formula-utils.d.ts +2 -0
  66. package/dist/src/nocode-base/src/runtime/runtime-form-state-store.d.ts +6 -2
  67. package/dist/src/nocode-base/src/runtime/table-row-identity.d.ts +2 -0
  68. package/dist/src/nocode-base/src/types/common/base.d.ts +2 -2
  69. package/dist/src/online-form/src/views/designer/hooks/useSpreadSheet.d.ts +2 -1
  70. package/dist/src/online-form/src/views/designer/types/index.d.ts +3 -1
  71. package/dist/{sub-table-factory-CwbQEPJq.js → sub-table-factory-GzYKYE9t.js} +2 -2
  72. package/dist/{text-design-Bv4PfeOW.js → text-design-V3TQuLps.js} +2 -2
  73. package/dist/{throttle-Cpk1LoGk-BaXaGrUw.js → throttle-Cpk1LoGk-CFMeLNb-.js} +1 -1
  74. package/dist/{timediff-design-CxT_O6R8.js → timediff-design-DRum3zZt.js} +1 -1
  75. package/dist/{trace-like-wrapper-CGe5K_FN.js → trace-like-wrapper-D1Gzs1mF.js} +2 -2
  76. package/dist/{value-editor.vue_vue_type_style_index_0_lang-CQTuzWX2.js → value-editor.vue_vue_type_style_index_0_lang-DoOuCca5.js} +2 -2
  77. package/dist/{widget-barcode-C83yiwNl.js → widget-barcode-CNrl2NxY.js} +4 -4
  78. package/dist/{widget-diagonal-C-zD-MLy.js → widget-diagonal-CqjD1SwW.js} +3 -3
  79. package/dist/{widget-image-DIcnWHn7.js → widget-image-Xjl5W2Fp.js} +4 -4
  80. package/dist/{widget-line-BnMezWy-.js → widget-line-BUVVnwrU.js} +2 -2
  81. package/dist/{widget-pagination-QWM1Nmlo.js → widget-pagination-DjMXWioI.js} +5 -5
  82. package/dist/{widget-power-DnqxPUmW.js → widget-power-Dck9H8a9.js} +3 -3
  83. package/dist/{widget-qrcode-PBnm6ehD.js → widget-qrcode-Cu8BwE24.js} +3 -3
  84. package/dist/{widget-rangelimit-CDyYKHeg.js → widget-rangelimit-DLxebCKf.js} +3 -3
  85. package/dist/{widget-serialnumber-BwS-Ac9h.js → widget-serialnumber-DecFCGS0.js} +1 -1
  86. package/dist/{widget-text-COW-IQ1P.js → widget-text-DV3yKKsx.js} +5 -5
  87. package/dist/{widget-timediff-RpQcMPpb.js → widget-timediff-BIwewJ39.js} +2 -2
  88. package/package.json +1 -1
  89. package/dist/paper-widget-design-Coh8v5mV.js +0 -4
  90. package/dist/seal-design-DfKie-Qg.js +0 -4
@@ -1,6 +1,6 @@
1
- import { i as normalizeFieldWidth } from "./dynamic-table-action-9oc6dkLz.js";
1
+ import { i as normalizeFieldWidth } from "./dynamic-table-action-D-ub6KoK.js";
2
2
  import { get, pick } from "lodash-es";
3
- import { F as FIELD_TYPE } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
3
+ import { F as FIELD_TYPE } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
4
4
  import { f as fontStyleAttrs } from "./config.enum-B8UZQTON.js";
5
5
  const DESIGNER_DEFAULT_TYPES = /* @__PURE__ */ new Set([
6
6
  FIELD_TYPE.DEVICE,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, toRaw, shallowRef, computed, ref, readonly, onMounted, watch, normalizeClass, onBeforeUnmount, h as h$1, watchEffect, unref, createVNode, reactive } from "vue";
2
- import { W as commonjsGlobal, X as getDefaultExportFromCjs } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
3
- import { G as require$$0 } from "./index-2mRh7iFw.js";
2
+ import { W as commonjsGlobal, X as getDefaultExportFromCjs } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
3
+ import { G as require$$0 } from "./index-GoAXo3fT.js";
4
4
  var window_1;
5
5
  var hasRequiredWindow;
6
6
  function requireWindow() {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, computed, resolveComponent, openBlock, createElementBlock, Fragment, renderList, normalizeClass, createVNode, withCtx, createElementVNode, createTextVNode, toDisplayString } from "vue";
2
- import { ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
2
+ import { ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
3
3
  const _hoisted_1 = { class: "align-group-box" };
4
4
  const _hoisted_2 = ["onClick"];
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, ref, computed, watch, openBlock, createElementBlock, normalizeStyle, normalizeClass, createElementVNode, toDisplayString, createCommentVNode } from "vue";
2
2
  import { pick } from "lodash-es";
3
- import { u as useSpreadSheet, h as useModelFields, l as loadBwip } from "./index-2mRh7iFw.js";
4
- import { Y as PaperWidgeValueType, ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
3
+ import { u as useSpreadSheet, h as useModelFields, l as loadBwip } from "./index-GoAXo3fT.js";
4
+ import { Y as PaperWidgeValueType, ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
5
5
  import "dayjs";
6
6
  import "@gct-paas/form-base";
7
7
  import "ant-design-vue";
@@ -1,12 +1,12 @@
1
- import { p as api, a4 as PlatformEnum, by as getRuntimeDataFieldId, F as FIELD_TYPE, bz as listRuntimeFieldRows, bm as getRowId, bn as findRuntimeTableRow, bl as parseRuntimeFieldPath, bA as buildRuntimeFieldPath, bo as RenderModeEnum, C as ComponentTypeEnum, aE as findFieldMain, c as getProfileByTableType, d as getBusinessProfileByRefModelType, b as isBusinessSubTableProfile, aA as RangeValidateMode, bB as isAttachFieldActive, aQ as Dependency_ENUM, aP as ASSIGNMENTSTRATEGY_ENUM, bC as fetchHistoryConsume, bD as isBomGranted, b3 as renderUtils, bx as uuid2, bE as parseFrontConfig, aT as CheckDsTypeEnum, aN as transformUtils, bF as DesignerDefaultValues, bG as baseDataUtils, a1 as FormTypeEnum, bH as normalizeToArray, M as getBusinessFieldKey, bI as safeParseArray, bJ as BpmnNodeTypeEnum, bK as mergeByMultiKey, ae as _export_sfc, bL as evaluateInspectionDecisionRule, bM as RuntimeDefaultValueValidation, bN as useNocodeEmitter, bO as commonUtils, aR as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
2
- import { aW, aY, ba, a6, bP, bQ, B, bR, H, am, bS, bT, bU, bk, bV, a$, aF, aX, aU, aV, bW, an, ar, bX, bY, aO, a8, al, aG, aZ, a5, ap, L, bZ, b_, b$, O, t, P, ag, q, Y, K, c0, c1, aB, ab, a7, a9, aa, ac, h, c2, aq, au, ao, c3, c4, c5, c6, aJ, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, bp, ch, ci, b6, cj, bb, bc, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, b5, cu, bd, aK, cv, cw, as, y, a_, cx, cy, bq, b7 } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
3
- import { l as findFieldProfile, a6 as resolveRuntimeFieldProps, a7 as resolveRuntimeFieldState, a8 as assembleRules, S as calculateFormula, a9 as getRuntimeDependencyOutputKey, aa as isRowAddedInCurrentFormChange, g as getParseFormulaVarInfos, z as MaterialConsumptionPatternEnum, ab as MaterialConsumeTableController, ac as setFormulaParamsConfig, ad as normalizeRuntime, Y as createRuntimeInstanceContext, ae as initializeSealFields, X as RuntimeFormStateStore, af as RuntimeSheetService, ag as validateObjectBomQtyOnSubmit, ah as areValidationCommentsEqual, ai as closeValidatorPopovers, aj as enrichFormChangeRowDetails, R as NCB_PROVIDE, Z as RuntimeInstanceRegistry, ak as useMaterialBalance, al as collectFormChangeFieldLocations, am as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-9oc6dkLz.js";
4
- import { an as an2, B as B2, ao as ao2, o, a5 as a52, ap as ap2, a3, aq as aq2, a4, J, ar as ar2, F, as as as2, at, au as au2, av, M, a, a0, aw, a1, d, ax, ay, az, aA, aB as aB2, aC, aD, aE, H as H2, aF as aF2, x, aG as aG2, e, aH, aI, aJ as aJ2, aK as aK2, w, I, aL, aM, aN, aO as aO2, p, K as K2, m, aP, aQ, aR, aS, aT, aU as aU2, aV as aV2, C, y as y2, aW as aW2, E, t as t2, aX as aX2, s, aY as aY2, U, V, u, k, G, W, r, v, T, q as q2, A } from "../dynamic-table-action-9oc6dkLz.js";
1
+ import { p as api, a4 as PlatformEnum, by as getRuntimeDataFieldId, F as FIELD_TYPE, bz as listRuntimeFieldRows, bm as getRowId, bn as findRuntimeTableRow, bl as parseRuntimeFieldPath, bA as buildRuntimeFieldPath, bo as RenderModeEnum, C as ComponentTypeEnum, aE as findFieldMain, c as getProfileByTableType, d as getBusinessProfileByRefModelType, b as isBusinessSubTableProfile, aA as RangeValidateMode, bB as isAttachFieldActive, aQ as Dependency_ENUM, aP as ASSIGNMENTSTRATEGY_ENUM, bC as fetchHistoryConsume, bD as isBomGranted, b3 as renderUtils, bx as uuid2, bE as parseFrontConfig, aT as CheckDsTypeEnum, aN as transformUtils, bF as DesignerDefaultValues, bG as baseDataUtils, a1 as FormTypeEnum, bH as normalizeToArray, M as getBusinessFieldKey, bI as safeParseArray, bJ as BpmnNodeTypeEnum, bK as mergeByMultiKey, ae as _export_sfc, bL as evaluateInspectionDecisionRule, bM as RuntimeDefaultValueValidation, bN as useNocodeEmitter, bO as commonUtils, aR as EntityModelCategoryEnum } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
2
+ import { aW, aY, ba, a6, bP, bQ, B, bR, H, am, bS, bT, bU, bk, bV, a$, aF, aX, aU, aV, bW, an, ar, bX, bY, aO, a8, al, aG, aZ, a5, ap, L, bZ, b_, b$, O, t, P, ag, q, Y, K, c0, c1, aB, ab, a7, a9, aa, ac, h, c2, aq, au, ao, c3, c4, c5, c6, aJ, c7, c8, c9, ca, cb, cc, cd, ce, cf, cg, bp, ch, ci, b6, cj, bb, bc, ck, cl, cm, cn, co, cp, cq, cr, cs, ct, b5, cu, bd, aK, cv, cw, as, y, cx, a_, cy, cz, bq, b7 } from "../dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
3
+ import { l as findFieldProfile, a6 as resolveRuntimeFieldProps, a7 as resolveRuntimeFieldState, a8 as assembleRules, S as calculateFormula, a9 as getRuntimeDependencyOutputKey, aa as isRowAddedInCurrentFormChange, ab as resolveFormulaData, g as getParseFormulaVarInfos, z as MaterialConsumptionPatternEnum, ac as MaterialConsumeTableController, ad as setFormulaParamsConfig, ae as normalizeRuntime, Y as createRuntimeInstanceContext, af as initializeSealFields, X as RuntimeFormStateStore, ag as RuntimeSheetService, ah as validateObjectBomQtyOnSubmit, ai as areValidationCommentsEqual, aj as closeValidatorPopovers, ak as enrichFormChangeRowDetails, R as NCB_PROVIDE, Z as RuntimeInstanceRegistry, al as useMaterialBalance, am as collectFormChangeFieldLocations, an as nextFormChangeRowViewHistoryId } from "../dynamic-table-action-D-ub6KoK.js";
4
+ import { ao as ao2, B as B2, ap as ap2, o, a5 as a52, aq as aq2, a3, ar as ar2, a4, J, as as as2, F, at, au as au2, av, aw, M, a, a0, ax, a1, d, ay, az, aA, aB as aB2, aC, aD, aE, aF as aF2, H as H2, aG as aG2, x, aH, e, aI, aJ as aJ2, aK as aK2, aL, w, I, aM, aN, aO as aO2, aP, p, K as K2, m, aQ, aR, aS, aT, aU as aU2, aV as aV2, aW as aW2, C, y as y2, aX as aX2, E, t as t2, aY as aY2, s, aZ as aZ2, U, V, u, k, G, W, r, v, T, q as q2, A } from "../dynamic-table-action-D-ub6KoK.js";
5
5
  import { toRaw, watch, toRef, computed, defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, shallowRef, markRaw, ref, provide, onUnmounted, reactive, onBeforeUnmount } from "vue";
6
- import { cloneDeep, defaults, isEmpty, merge, get } from "lodash-es";
6
+ import { isEqual, cloneDeep, defaults, isEmpty, merge, get } from "lodash-es";
7
7
  import "dayjs";
8
- import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-CwbQEPJq.js";
9
- import { A as A2, D, M as M2, a as a2, P as P2, b, c, d as d2, e as e2, W as W2, f, g, h as h2 } from "../sub-table-factory-CwbQEPJq.js";
8
+ import { S as SubTableCoreFactory, R as RuntimeInstanceController } from "../sub-table-factory-GzYKYE9t.js";
9
+ import { A as A2, D, M as M2, a as a2, P as P2, b, c, d as d2, e as e2, W as W2, f, g, h as h2 } from "../sub-table-factory-GzYKYE9t.js";
10
10
  import { createDataSourceManager, getLegacyFieldFillTargets, createFieldFillRuntime, buildFieldFillTableRows, buildFieldFillRows, isFieldFillTargetProtected, getFieldFillTable, getFieldFillColumn, buildDataSourceContext } from "@gct-paas/form-base";
11
11
  const InstanceStatusValues = {
12
12
  /** 作废状态 */
@@ -412,7 +412,7 @@ function getSourceFields(record, expression, currentSubtable) {
412
412
  });
413
413
  }
414
414
  function isEmptyValue(value) {
415
- return value === void 0 || value === null || value === "";
415
+ return value === void 0 || value === null || typeof value === "string" && value.trim() === "" || Array.isArray(value) && value.length === 0;
416
416
  }
417
417
  function getRulePaths(record, props, targetFieldId, modelKey, scopeFieldId = targetFieldId) {
418
418
  const subtableField = props.subFieldKey;
@@ -728,13 +728,30 @@ class RuntimeRuleCompiler {
728
728
  const expression = assignment?.expression || props.formulaExpr;
729
729
  if (!expression || !targetFieldId) return;
730
730
  const strategy = assignment?.strategy ?? ASSIGNMENTSTRATEGY_ENUM.alwaysCover;
731
- if (!isLegacyFormula && strategy === ASSIGNMENTSTRATEGY_ENUM.notCoveredForever) {
732
- listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).forEach((target) => {
733
- const row = this.getWritableRow(target.row, props);
734
- if (isEmptyValue(row[targetFieldId])) return;
735
- const path = formState.getFieldPath(row, targetFieldId);
731
+ let assignmentStates = /* @__PURE__ */ new WeakMap();
732
+ const readInputs = (target) => cloneDeep(resolveFormulaData(expression, target.row, formState.state));
733
+ const rememberTarget = (target, inputs) => {
734
+ const row = props.isFieldModel ? target.row._OPCT : target.row;
735
+ const path = formState.getFieldPath(row ?? target.row, targetFieldId);
736
+ assignmentStates.set(toRaw(target.row), { inputs, path });
737
+ if (strategy === ASSIGNMENTSTRATEGY_ENUM.notCoveredForever && !isEmptyValue(row?.[targetFieldId]))
736
738
  formState.markUserModified(path);
737
- });
739
+ };
740
+ const resetAssignmentState = () => {
741
+ assignmentStates = /* @__PURE__ */ new WeakMap();
742
+ listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).forEach(
743
+ (target) => rememberTarget(target, readInputs(target))
744
+ );
745
+ };
746
+ if (!isLegacyFormula) {
747
+ resetAssignmentState();
748
+ this.unregisters.push(
749
+ formState.subscribe((change) => {
750
+ if (change.source !== "restore" || change.restoreScope === "fields" || change.paths.every((path) => path.endsWith("_lb_")))
751
+ return;
752
+ resetAssignmentState();
753
+ })
754
+ );
738
755
  }
739
756
  this.unregisters.push(
740
757
  dependencies.register({
@@ -743,20 +760,42 @@ class RuntimeRuleCompiler {
743
760
  sheetId,
744
761
  sourceFields: getSourceFields(this.record, expression, subFieldKey),
745
762
  structureFields,
746
- run: async (change, execution) => {
763
+ run: async (_change, execution) => {
747
764
  if (this.disposed) return;
748
- if (!isLegacyFormula && change.revision === 0 && change.source === "system") return;
749
765
  if (!this.canWriteFormulas()) return;
750
766
  const results = await Promise.all(
751
767
  listRuntimeFieldRows(this.record, subFieldKey, scopeFieldId).map(async (target) => {
752
768
  const row = this.getWritableRow(target.row, props);
753
769
  const path = formState.getFieldPath(row, targetFieldId);
754
- if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path))
770
+ const inputs = isLegacyFormula ? void 0 : readInputs(target);
771
+ const previous = assignmentStates.get(toRaw(target.row));
772
+ if (!isLegacyFormula) {
773
+ if (!previous) rememberTarget(target);
774
+ else if (previous.path !== path && formState.isUserModified(previous.path)) {
775
+ formState.markUserModified(path);
776
+ formState.clearUserModified(previous.path);
777
+ }
778
+ }
779
+ if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path)) {
780
+ assignmentStates.set(toRaw(target.row), { inputs, path });
781
+ return;
782
+ }
783
+ if (!isLegacyFormula && previous?.inputs && !previous.pending && isEqual(previous.inputs, inputs))
755
784
  return;
756
- const result = await calculateFormula(expression, row, formState.state);
757
- const empty = isEmptyValue(result) || typeof result === "string" && result.trim() === "" || Array.isArray(result) && result.length === 0;
785
+ if (!isLegacyFormula)
786
+ assignmentStates.set(toRaw(target.row), {
787
+ inputs: previous?.inputs,
788
+ path,
789
+ pending: true
790
+ });
791
+ const result = await calculateFormula(
792
+ expression,
793
+ isLegacyFormula ? row : target.row,
794
+ formState.state
795
+ );
796
+ const empty = isEmptyValue(result);
758
797
  const value = isLegacyFormula ? empty ? null : Number(result) : formatDateCompliance(result, props.newSpecificConfig?.mappingType);
759
- return { target, row, path, value };
798
+ return { target, row, path, value, inputs };
760
799
  })
761
800
  );
762
801
  if (!this.canWriteFormulas() || !execution.isCurrent()) return;
@@ -764,7 +803,9 @@ class RuntimeRuleCompiler {
764
803
  "formula",
765
804
  () => results.forEach((result) => {
766
805
  if (!result) return;
767
- const { target, row, path, value } = result;
806
+ const { target, row, path, value, inputs } = result;
807
+ if (!isLegacyFormula)
808
+ assignmentStates.set(toRaw(target.row), { inputs, path });
768
809
  if (!isLegacyFormula && strategy !== ASSIGNMENTSTRATEGY_ENUM.alwaysCover && formState.isUserModified(path))
769
810
  return;
770
811
  if (Object.is(row[targetFieldId], value)) return;
@@ -782,7 +823,12 @@ class RuntimeRuleCompiler {
782
823
  }
783
824
  getWritableRow(row, props) {
784
825
  if (!props.isFieldModel) return row;
785
- if (!row._OPCT) this.record.formState.setObjectField(row, "_OPCT", { _DICT: {} }, "restore");
826
+ if (!row._OPCT)
827
+ this.record.formState.transaction(
828
+ "restore",
829
+ () => this.record.formState.setObjectField(row, "_OPCT", { _DICT: {} }, "restore"),
830
+ { restoreScope: "fields" }
831
+ );
786
832
  return row._OPCT;
787
833
  }
788
834
  /** 公式变更记录也属于实例生命周期,未打开的 Sheet 不再漏记。 */
@@ -3661,7 +3707,7 @@ function filterAnnotationItemsUpToCurrent(items) {
3661
3707
  export {
3662
3708
  aW as AITooltips,
3663
3709
  A2 as AllocateTableCore,
3664
- an2 as BaseFormModelFetcher,
3710
+ ao2 as BaseFormModelFetcher,
3665
3711
  aY as BinarizeMethodOptions,
3666
3712
  ba as BindCmpStyleEnum,
3667
3713
  a6 as BooleanShowMode,
@@ -3683,7 +3729,7 @@ export {
3683
3729
  a$ as DateFormat,
3684
3730
  aF as DecimalDisplayMode,
3685
3731
  aX as DenoiseMethodOptions,
3686
- ao2 as DeviceConnector,
3732
+ ap2 as DeviceConnector,
3687
3733
  aU as DeviceLink,
3688
3734
  o as DeviceLinkTmplUtil,
3689
3735
  aV as DeviceParamsTypeTitle,
@@ -3692,9 +3738,9 @@ export {
3692
3738
  an as DiagonalDirection,
3693
3739
  ar as DiagonalVertex,
3694
3740
  a52 as DocumentLayout,
3695
- ap2 as DocumentLoading,
3741
+ aq2 as DocumentLoading,
3696
3742
  a3 as DocumentPaper,
3697
- aq2 as DynamicQuickFillModal,
3743
+ ar2 as DynamicQuickFillModal,
3698
3744
  a4 as DynamicTableAction,
3699
3745
  bX as EBR_PROVIDE_ENUM,
3700
3746
  bY as EFieldBizTypeEnum,
@@ -3703,18 +3749,18 @@ export {
3703
3749
  a8 as FallbackSignTypeEnum,
3704
3750
  al as FieldSysVarDefaultValueEnum,
3705
3751
  FillingTypeEnum,
3706
- ar2 as FixedQuickFillModal,
3752
+ as2 as FixedQuickFillModal,
3707
3753
  FormAnnotationController,
3708
3754
  F as FormModelController,
3709
3755
  FormTmplBomController,
3710
- as2 as FormTmplConfigController,
3756
+ at as FormTmplConfigController,
3711
3757
  FormTypeEnum,
3712
3758
  aG as ImageDisplayModeEnum,
3713
3759
  InstanceStatusValues,
3714
3760
  aZ as JoinModelTypeEum,
3715
- at as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
3716
- au2 as LEGACY_RUNTIME_SHEET_ID,
3717
- av as LEGACY_RUNTIME_SHEET_TITLE,
3761
+ au2 as LEGACY_RUNTIME_FORM_CONFIG_KEYS,
3762
+ av as LEGACY_RUNTIME_SHEET_ID,
3763
+ aw as LEGACY_RUNTIME_SHEET_TITLE,
3718
3764
  a5 as LabelPosition,
3719
3765
  ap as LineDirection,
3720
3766
  L as LineType,
@@ -3722,7 +3768,7 @@ export {
3722
3768
  M as MAX_RUNTIME_SHEETS,
3723
3769
  a as MAX_RUNTIME_SHEET_TITLE_LENGTH,
3724
3770
  a0 as MBRender,
3725
- aw as MCDataUtil,
3771
+ ax as MCDataUtil,
3726
3772
  a1 as MCRender,
3727
3773
  d as MULTI_SHEET_SCHEMA_VERSION,
3728
3774
  MaterialConsumeTableController,
@@ -3732,7 +3778,7 @@ export {
3732
3778
  a2 as MaterialSubstitutionTableCore,
3733
3779
  b_ as MobileFillTypeEnum,
3734
3780
  NCB_PROVIDE,
3735
- ax as OCR_MODEL_PRECISION_ENUM_KEY,
3781
+ ay as OCR_MODEL_PRECISION_ENUM_KEY,
3736
3782
  b$ as OfficeTypeEnum,
3737
3783
  O as Orientation,
3738
3784
  t as PageSizeEnum,
@@ -3750,17 +3796,17 @@ export {
3750
3796
  aB as RangeCompareOp,
3751
3797
  RangeValidateMode,
3752
3798
  RenderModeEnum,
3753
- ay as RuntimeAsyncTaskCoordinator,
3754
- az as RuntimeDependencyService,
3755
- aA as RuntimeFieldRegistry,
3799
+ az as RuntimeAsyncTaskCoordinator,
3800
+ aA as RuntimeDependencyService,
3801
+ aB2 as RuntimeFieldRegistry,
3756
3802
  RuntimeFormStateStore,
3757
3803
  RuntimeInstanceController,
3758
- aB2 as RuntimeInstanceEventBus,
3804
+ aC as RuntimeInstanceEventBus,
3759
3805
  RuntimeInstanceRegistry,
3760
- aC as RuntimePersistenceCoordinator,
3806
+ aD as RuntimePersistenceCoordinator,
3761
3807
  RuntimeRuleCompiler,
3762
3808
  RuntimeSheetService,
3763
- aD as RuntimeValidationService,
3809
+ aE as RuntimeValidationService,
3764
3810
  ab as SignShowTypeEnum,
3765
3811
  a7 as SignatureImageDirectionEnum,
3766
3812
  a9 as SignatureNumberTypeEnum,
@@ -3768,7 +3814,7 @@ export {
3768
3814
  ac as SignatureTypeEnum,
3769
3815
  d2 as SterilizeBatchTableCore,
3770
3816
  e2 as StocktakeTableCore,
3771
- aE as SubTableCore,
3817
+ aF2 as SubTableCore,
3772
3818
  SubTableCoreFactory,
3773
3819
  h as SubTableType,
3774
3820
  c2 as SummaryApproveHisTypeEnum,
@@ -3786,7 +3832,7 @@ export {
3786
3832
  c5 as bindRuntimeTableColumns,
3787
3833
  c6 as buildDeviceBaseQuery,
3788
3834
  aJ as buildDeviceFilterQuery,
3789
- aF2 as buildFormChangeDisplayRows,
3835
+ aG2 as buildFormChangeDisplayRows,
3790
3836
  x as buildObjectLotExtraQuery,
3791
3837
  buildRuntimeFieldPath,
3792
3838
  c7 as calcFillData,
@@ -3796,16 +3842,16 @@ export {
3796
3842
  collectFormChangeFieldLocations,
3797
3843
  commonUtils,
3798
3844
  convertHistoricalAnnotationLocation,
3799
- aG2 as convertV1Runtime,
3845
+ aH as convertV1Runtime,
3800
3846
  e as createRuntimeDocumentV2,
3801
3847
  createRuntimeInstanceContext,
3802
3848
  c9 as decodeTableCellRowKey,
3803
- aH as detailsHaveFormChangeRowOps,
3849
+ aI as detailsHaveFormChangeRowOps,
3804
3850
  ca as encodeTableCellRowKey,
3805
3851
  enrichFormChangeRowDetails,
3806
3852
  cb as ensureFrontRowKey,
3807
3853
  cc as ensureTableRowKeys,
3808
- aI as extractFormChangeRowDetails,
3854
+ aJ2 as extractFormChangeRowDetails,
3809
3855
  cd as extractKeywordFromQueryData,
3810
3856
  ce as fetchCheckDsDataForTable,
3811
3857
  cf as fetchCustomCheckDsData,
@@ -3820,8 +3866,8 @@ export {
3820
3866
  getAppInfo,
3821
3867
  getBusinessFieldKey,
3822
3868
  ci as getCheckTableSnapshotKey,
3823
- aJ2 as getFormChangeRowKey,
3824
- aK2 as getFormChangeRowOp,
3869
+ aK2 as getFormChangeRowKey,
3870
+ aL as getFormChangeRowOp,
3825
3871
  b6 as getLotLockedReason,
3826
3872
  w as getObjectBomMaterialLotQuery,
3827
3873
  I as getObjectBomProductQuery,
@@ -3833,18 +3879,18 @@ export {
3833
3879
  cl as getRenderedRuntimeTableCell,
3834
3880
  getRuntimeDataFieldId,
3835
3881
  getRuntimeDependencyOutputKey,
3836
- aL as getSubTableQuickFillInfo,
3882
+ aM as getSubTableQuickFillInfo,
3837
3883
  getSuiteKey,
3838
3884
  cm as handleOldConfig,
3839
3885
  cn as hasAnyCheckTableSnapshot,
3840
3886
  co as hasByTableCheckTableSnapshot,
3841
3887
  cp as hasSharedCheckTableSnapshot,
3842
- aM as isAnnLocationSelected,
3843
- aN as isBlank,
3888
+ aN as isAnnLocationSelected,
3889
+ aO2 as isBlank,
3844
3890
  isBomGranted,
3845
3891
  isEdhrSuite,
3846
3892
  isEqmSuite,
3847
- aO2 as isFormChangeGhostRow,
3893
+ aP as isFormChangeGhostRow,
3848
3894
  cq as isMedProSuite,
3849
3895
  isRowAddedInCurrentFormChange,
3850
3896
  cr as isTableRowKeyMatch,
@@ -3856,35 +3902,36 @@ export {
3856
3902
  p as normalizeAIOcrTmpl,
3857
3903
  K2 as normalizeHistoricalAutofillRow,
3858
3904
  m as normalizeHistoricalBusinessRow,
3859
- aP as normalizeHistoricalFieldConfig,
3905
+ aQ as normalizeHistoricalFieldConfig,
3860
3906
  bd as normalizeRefLoaderResult,
3861
3907
  normalizeRuntime,
3862
3908
  parseFrontConfig,
3863
3909
  parseRuntimeFieldPath,
3864
3910
  parseUdi,
3865
- aQ as pickObjectFieldKeys,
3866
- aR as recordSubtableRowAdd,
3867
- aS as recordSubtableRowDelete,
3911
+ aR as pickObjectFieldKeys,
3912
+ aS as recordSubtableRowAdd,
3913
+ aT as recordSubtableRowDelete,
3868
3914
  aK as refUtils,
3869
- aT as relocateDeletedRowsToEnd,
3915
+ aU2 as relocateDeletedRowsToEnd,
3870
3916
  renderUtils,
3871
3917
  cv as requestMedProCheckDsData,
3872
3918
  cw as requestNonMedProCheckDsData,
3873
- aU2 as resolveAnnotationFieldLocation,
3919
+ aV2 as resolveAnnotationFieldLocation,
3874
3920
  as as resolveDiagonalVertex,
3875
3921
  y as resolveFieldRenderComponent,
3876
- aV2 as resolveFormChangeRowUi,
3922
+ aW2 as resolveFormChangeRowUi,
3877
3923
  C as resolveObjectBomEntry,
3878
3924
  y2 as resolveObjectFieldKeys,
3879
- aW2 as resolveRowFormChangeMark,
3925
+ aX2 as resolveRowFormChangeMark,
3880
3926
  resolveUdiQuery,
3881
3927
  E as runWithFillProduct,
3882
3928
  t2 as setSelectAnnotationId,
3883
- aX2 as setSelectMobileTdId,
3929
+ aY2 as setSelectMobileTdId,
3884
3930
  s as setSelectValidatorId,
3931
+ cx as splitRuntimeDataPath,
3885
3932
  a_ as sqlUtils,
3886
- cx as stockCheck,
3887
- aY2 as stripLegacyFormConfigFromPaper,
3933
+ cy as stockCheck,
3934
+ aZ2 as stripLegacyFormConfigFromPaper,
3888
3935
  transformUtils,
3889
3936
  U as useDependency,
3890
3937
  useEbrWikiFactoryV2,
@@ -3894,7 +3941,7 @@ export {
3894
3941
  useMaterialBalance,
3895
3942
  useNocodeEmitter,
3896
3943
  G as useNocodeFormWidget,
3897
- cy as useOnlineFormActionButton,
3944
+ cz as useOnlineFormActionButton,
3898
3945
  bq as useOnlineFormTransformField2Component,
3899
3946
  useRenderPageFactory,
3900
3947
  W as useRuntimeEditorFlusher,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock } from "vue";
2
- import { h as useModelFields, D as Diagonal } from "./index-2mRh7iFw.js";
3
- import { as as resolveDiagonalVertex, ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-CMil2DLD.js";
2
+ import { h as useModelFields, D as Diagonal } from "./index-GoAXo3fT.js";
3
+ import { as as resolveDiagonalVertex, ae as _export_sfc } from "./dynamic-table-action.vue_vue_type_style_index_0_scoped_8710052f_lang-BCLE4joQ.js";
4
4
  import "lodash-es";
5
5
  import "dayjs";
6
6
  import "@gct-paas/form-base";