@univerjs/sheets-formula 0.5.0 → 0.5.1

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.
package/lib/es/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  var Fa = Object.defineProperty;
2
2
  var Ba = (n, e, a) => e in n ? Fa(n, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : n[e] = a;
3
3
  var w = (n, e, a) => Ba(n, typeof e != "symbol" ? e + "" : e, a);
4
- import { CommandType as ia, ICommandService as pe, ObjectMatrix as X, Tools as Ie, Rectangle as Ce, cellToRange as ra, Direction as Ge, isFormulaString as De, isFormulaId as oa, getIntersectRange as ve, RANGE_TYPE as Y, Inject as W, Disposable as te, UniverInstanceType as ee, IUniverInstanceService as xe, LifecycleService as va, LocaleService as bt, ILogService as Va, IConfigService as _e, Injector as et, createIdentifier as Ot, toDisposable as Oe, moveRangeByOffset as Tt, DisposableCollection as Et, AbsoluteRefType as He, Optional as Ga, Dimension as Ft, InterceptorEffectEnum as Ha, CellValueType as Bt, DependentOn as ua, Plugin as ma, touchDependencies as ye, isNodeEnv as vt } from "@univerjs/core";
4
+ import { CommandType as ia, ICommandService as pe, ObjectMatrix as X, Tools as Ie, Rectangle as Ce, cellToRange as ra, Direction as He, isFormulaString as De, isFormulaId as oa, getIntersectRange as Ve, RANGE_TYPE as Y, Inject as W, Disposable as te, UniverInstanceType as ee, IUniverInstanceService as xe, LifecycleService as va, LocaleService as bt, ILogService as Va, IConfigService as _e, Injector as tt, createIdentifier as Ot, toDisposable as Oe, moveRangeByOffset as Tt, DisposableCollection as Et, AbsoluteRefType as Ye, Optional as Ga, Dimension as Ft, InterceptorEffectEnum as Ha, CellValueType as Bt, DependentOn as ua, Plugin as ma, touchDependencies as ye, isNodeEnv as vt } from "@univerjs/core";
5
5
  import { SetRangeValuesCommand as Ya, SetRangeValuesMutation as ie, handleMoveRange as fa, EffectRefRangId as G, runRefRangeMutations as H, handleMoveRows as ca, handleMoveCols as la, handleInsertRow as sa, handleInsertCol as pa, handleIRemoveRow as da, handleIRemoveCol as La, handleDeleteRangeMoveLeft as Pa, handleDeleteRangeMoveUp as Ta, handleInsertRangeMoveDown as Ea, handleInsertRangeMoveRight as Ia, RemoveDefinedNameCommand as Na, SetDefinedNameCommand as Ra, RemoveSheetCommand as Xa, SetWorksheetNameCommand as wa, DeleteRangeMoveLeftCommand as Wa, DeleteRangeMoveUpCommand as Ka, RemoveColCommand as Qa, RemoveRowCommand as ka, InsertRangeMoveDownCommand as $a, InsertRangeMoveRightCommand as ja, InsertColCommand as za, InsertRowCommand as Za, MoveColsCommand as Ja, MoveRowsCommand as en, MoveRangeCommand as tn, SheetInterceptorService as Mt, SetStyleCommand as xt, SetBorderCommand as Aa, ClearSelectionFormatCommand as Sa, RemoveSheetMutation as It, InsertSheetMutation as Nt, RefRangeService as an, handleDefaultRangeChangeWithEffectRefCommands as Vt, getSeparateEffectedRangesOnCommand as nn, handleCommonDefaultRangeChangeWithEffectRefCommands as rn, MoveRangeMutation as Gt, MoveRowsMutation as Ht, MoveColsMutation as Yt, ReorderRangeMutation as Xt, RemoveRowMutation as wt, RemoveColMutation as Wt, InsertColMutation as Kt, InsertRowMutation as Qt, INTERCEPTOR_POINT as on, SetWorksheetActiveOperation as un, UniverSheetsPlugin as mn } from "@univerjs/sheets";
6
- import { sequenceNodeType as J, deserializeRangeWithSheetWithCache as se, serializeRangeToRefString as tt, ErrorType as j, LexerTreeBuilder as _t, generateStringWithSequence as Ye, SetDefinedNameMutation as Me, IDefinedNamesService as qt, SetFormulaCalculationResultMutation as fn, RemoveOtherFormulaMutation as cn, IActiveDirtyManagerService as yt, SetOtherFormulaMutation as ln, FormulaDataModel as at, SetFormulaCalculationStartMutation as Ae, SetFormulaCalculationStopMutation as kt, SetFormulaCalculationNotificationMutation as sn, FormulaExecuteStageType as ot, FormulaExecutedStateType as Ne, SetFormulaDataMutation as ge, SetArrayFormulaDataMutation as Rt, initSheetFormulaData as $t, FUNCTION_NAMES_ARRAY as jt, FunctionType as t, FUNCTION_NAMES_COMPATIBILITY as _, FUNCTION_NAMES_CUBE as ce, FUNCTION_NAMES_DATABASE as $, FUNCTION_NAMES_DATE as B, FUNCTION_NAMES_ENGINEERING as A, FUNCTION_NAMES_FINANCIAL as C, FUNCTION_NAMES_INFORMATION as v, FUNCTION_NAMES_LOGICAL as K, FUNCTION_NAMES_LOOKUP as q, FUNCTION_NAMES_MATH as T, FUNCTION_NAMES_STATISTICAL as l, FUNCTION_NAMES_TEXT as D, FUNCTION_NAMES_WEB as ut, isReferenceStrings as pn, functionArray as dn, functionCompatibility as Ln, functionCube as Pn, functionDatabase as Tn, functionDate as En, functionEngineering as In, functionFinancial as Nn, functionInformation as Rn, functionLogical as An, functionLookup as Sn, functionMath as Cn, functionMeta as Dn, functionStatistical as bn, functionText as On, functionUniver as Mn, functionWeb as xn, IFunctionService as gt, serializeRangeWithSpreadsheet as zt, serializeRangeWithSheet as Zt, serializeRange as Jt, CustomFunction as Ca, RemoveDefinedNameMutation as At, stripErrorMargin as _n, UniverFormulaEnginePlugin as Da } from "@univerjs/engine-formula";
6
+ import { sequenceNodeType as J, deserializeRangeWithSheetWithCache as se, serializeRangeToRefString as at, ErrorType as j, LexerTreeBuilder as _t, generateStringWithSequence as Xe, SetDefinedNameMutation as Me, IDefinedNamesService as qt, SetFormulaCalculationResultMutation as fn, RemoveOtherFormulaMutation as cn, IActiveDirtyManagerService as yt, SetOtherFormulaMutation as ln, FormulaDataModel as nt, SetFormulaCalculationStartMutation as Ae, SetFormulaCalculationStopMutation as kt, SetFormulaCalculationNotificationMutation as sn, FormulaExecuteStageType as ge, FormulaExecutedStateType as Ne, SetFormulaDataMutation as he, SetArrayFormulaDataMutation as Rt, initSheetFormulaData as $t, FUNCTION_NAMES_ARRAY as jt, FunctionType as t, FUNCTION_NAMES_COMPATIBILITY as _, FUNCTION_NAMES_CUBE as ce, FUNCTION_NAMES_DATABASE as $, FUNCTION_NAMES_DATE as B, FUNCTION_NAMES_ENGINEERING as A, FUNCTION_NAMES_FINANCIAL as C, FUNCTION_NAMES_INFORMATION as v, FUNCTION_NAMES_LOGICAL as K, FUNCTION_NAMES_LOOKUP as q, FUNCTION_NAMES_MATH as T, FUNCTION_NAMES_STATISTICAL as l, FUNCTION_NAMES_TEXT as D, FUNCTION_NAMES_WEB as ut, isReferenceStrings as pn, functionArray as dn, functionCompatibility as Ln, functionCube as Pn, functionDatabase as Tn, functionDate as En, functionEngineering as In, functionFinancial as Nn, functionInformation as Rn, functionLogical as An, functionLookup as Sn, functionMath as Cn, functionMeta as Dn, functionStatistical as bn, functionText as On, functionUniver as Mn, functionWeb as xn, IFunctionService as gt, serializeRangeWithSpreadsheet as zt, serializeRangeWithSheet as Zt, serializeRange as Jt, CustomFunction as Ca, RemoveDefinedNameMutation as At, stripErrorMargin as _n, UniverFormulaEnginePlugin as Da } from "@univerjs/engine-formula";
7
7
  import { Subject as ea, BehaviorSubject as ba, bufferWhen as qn, filter as ta, map as yn } from "rxjs";
8
8
  import { IRPCChannelService as Oa, fromModule as gn, toModule as hn } from "@univerjs/rpc";
9
9
  const Un = {
@@ -29,7 +29,7 @@ const Un = {
29
29
  };
30
30
  return i.executeCommand(Ya.id, o);
31
31
  }
32
- }, Ve = {
32
+ }, Ge = {
33
33
  type: ia.MUTATION,
34
34
  id: "sheet.mutation.data-validation-formula-mark-dirty",
35
35
  handler() {
@@ -77,7 +77,7 @@ function Vn(n, e) {
77
77
  if (f.forValue((c, N, R) => {
78
78
  if (R == null)
79
79
  return !0;
80
- const P = nt(R);
80
+ const P = it(R);
81
81
  P !== null && (p.setValue(c, N, P), d.setValue(c, N, s.getValue(c, N)));
82
82
  }), p.getSizeOf() === 0)
83
83
  return;
@@ -279,7 +279,7 @@ function $n(n, e) {
279
279
  const a = sa(
280
280
  {
281
281
  id: G.InsertRowCommandId,
282
- params: { range: n, unitId: "", subUnitId: "", direction: Ge.DOWN }
282
+ params: { range: n, unitId: "", subUnitId: "", direction: He.DOWN }
283
283
  },
284
284
  e
285
285
  );
@@ -289,7 +289,7 @@ function jn(n, e) {
289
289
  const a = pa(
290
290
  {
291
291
  id: G.InsertColCommandId,
292
- params: { range: n, unitId: "", subUnitId: "", direction: Ge.RIGHT }
292
+ params: { range: n, unitId: "", subUnitId: "", direction: He.RIGHT }
293
293
  },
294
294
  e
295
295
  );
@@ -358,7 +358,7 @@ function ai(n, e) {
358
358
  function ni(n, e, a) {
359
359
  const i = new X({});
360
360
  return n.forEach((r) => {
361
- const { oldCell: o, newCell: u } = r, { startRow: m, startColumn: f } = o, s = a.getValue(m, f) || e.getValue(m, f), p = nt(s);
361
+ const { oldCell: o, newCell: u } = r, { startRow: m, startColumn: f } = o, s = a.getValue(m, f) || e.getValue(m, f), p = it(s);
362
362
  if (i.setValue(m, f, { f: null, si: null }), u) {
363
363
  const { startRow: d, startColumn: L } = u;
364
364
  i.setValue(d, L, p);
@@ -368,7 +368,7 @@ function ni(n, e, a) {
368
368
  function ii(n, e) {
369
369
  const a = new X({});
370
370
  return n.reverse().forEach((i) => {
371
- const { oldCell: r, newCell: o } = i, { startRow: u, startColumn: m } = r, f = e.getValue(u, m), s = nt(f);
371
+ const { oldCell: r, newCell: o } = i, { startRow: u, startColumn: m } = r, f = e.getValue(u, m), s = it(f);
372
372
  if (o) {
373
373
  const { startRow: p, startColumn: d } = o;
374
374
  a.setValue(p, d, { f: null, si: null });
@@ -376,7 +376,7 @@ function ii(n, e) {
376
376
  a.setValue(u, m, s);
377
377
  }), a.getMatrix();
378
378
  }
379
- function nt(n) {
379
+ function it(n) {
380
380
  if (n == null)
381
381
  return;
382
382
  const { f: e, si: a, x: i = 0, y: r = 0 } = n, o = De(e), u = oa(a);
@@ -391,7 +391,7 @@ function nt(n) {
391
391
  function ri(n) {
392
392
  const e = new X({});
393
393
  return new X(n).forValue((i, r, o) => {
394
- const u = nt(o);
394
+ const u = it(o);
395
395
  u && e.setValue(i, r, u);
396
396
  }), e.getMatrix();
397
397
  }
@@ -418,7 +418,7 @@ function _a(n, e, a = 0, i = 0) {
418
418
  const { token: f } = m, s = se(f), { range: p, sheetName: d, unitId: L } = s, E = Ce.moveOffset(p, a, i);
419
419
  r.push({
420
420
  ...m,
421
- token: tt({
421
+ token: at({
422
422
  range: E,
423
423
  unitId: L,
424
424
  sheetName: d
@@ -450,7 +450,7 @@ function qa(n, e, a, i) {
450
450
  if (r === y.MoveRange) {
451
451
  if (f == null || s == null)
452
452
  return;
453
- const R = ct(c, f), P = ve(c, f);
453
+ const R = ct(c, f), P = Ve(c, f);
454
454
  if (P == null || R !== 4)
455
455
  return;
456
456
  const O = fa(
@@ -464,7 +464,7 @@ function qa(n, e, a, i) {
464
464
  if (f == null || s == null)
465
465
  return;
466
466
  const R = ct(c, f);
467
- let P = ve(c, f);
467
+ let P = Ve(c, f);
468
468
  if (P == null && (f.endRow < c.startRow && s.endRow < c.startRow || f.startRow > c.endRow && s.startRow > c.endRow))
469
469
  return;
470
470
  P == null && (P = {
@@ -485,7 +485,7 @@ function qa(n, e, a, i) {
485
485
  if (f == null || s == null)
486
486
  return;
487
487
  const R = ct(c, f);
488
- let P = ve(c, f);
488
+ let P = Ve(c, f);
489
489
  if (P == null && (f.endColumn < c.startColumn && s.endColumn < c.startColumn || f.startColumn > c.endColumn && s.startColumn > c.endColumn))
490
490
  return;
491
491
  P == null && (P = {
@@ -508,7 +508,7 @@ function qa(n, e, a, i) {
508
508
  const R = sa(
509
509
  {
510
510
  id: G.InsertRowCommandId,
511
- params: { range: m, unitId: "", subUnitId: "", direction: Ge.DOWN }
511
+ params: { range: m, unitId: "", subUnitId: "", direction: He.DOWN }
512
512
  },
513
513
  c
514
514
  ), P = H(R, c);
@@ -522,7 +522,7 @@ function qa(n, e, a, i) {
522
522
  const R = pa(
523
523
  {
524
524
  id: G.InsertColCommandId,
525
- params: { range: m, unitId: "", subUnitId: "", direction: Ge.RIGHT }
525
+ params: { range: m, unitId: "", subUnitId: "", direction: He.RIGHT }
526
526
  },
527
527
  c
528
528
  ), P = H(R, c);
@@ -619,7 +619,7 @@ function qa(n, e, a, i) {
619
619
  }
620
620
  }
621
621
  if (N != null)
622
- return tt({
622
+ return at({
623
623
  range: N,
624
624
  sheetName: E,
625
625
  unitId: L
@@ -991,8 +991,8 @@ var Ri = Object.defineProperty, Ai = Object.getOwnPropertyDescriptor, Si = (n, e
991
991
  for (var r = i > 1 ? void 0 : i ? Ai(e, a) : e, o = n.length - 1, u; o >= 0; o--)
992
992
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
993
993
  return i && r && Ri(e, a, r), r;
994
- }, he = (n, e) => (a, i) => e(a, i, n);
995
- let Xe = class extends te {
994
+ }, Ue = (n, e) => (a, i) => e(a, i, n);
995
+ let we = class extends te {
996
996
  constructor(n, e, a, i) {
997
997
  super(), this._definedNamesService = n, this._univerInstanceService = e, this._sheetInterceptorService = a, this._lexerTreeBuilder = i, this._initialize();
998
998
  }
@@ -1061,7 +1061,7 @@ let Xe = class extends te {
1061
1061
  } = e;
1062
1062
  if (b == null || x == null || x.length === 0 || k !== x)
1063
1063
  continue;
1064
- V = tt({
1064
+ V = at({
1065
1065
  range: F,
1066
1066
  sheetName: b,
1067
1067
  unitId: g
@@ -1080,7 +1080,7 @@ let Xe = class extends te {
1080
1080
  }
1081
1081
  if (!d)
1082
1082
  return !0;
1083
- const E = Ye(_a(p, L)), I = {
1083
+ const E = Xe(_a(p, L)), I = {
1084
1084
  id: Me.id,
1085
1085
  params: {
1086
1086
  unitId: i,
@@ -1108,18 +1108,18 @@ let Xe = class extends te {
1108
1108
  return ((o = this._definedNamesService.getWorksheetByRef(e, i)) == null ? void 0 : o.getSheetId()) === a ? j.REF : null;
1109
1109
  }
1110
1110
  };
1111
- Xe = Si([
1112
- he(0, qt),
1113
- he(1, xe),
1114
- he(2, W(Mt)),
1115
- he(3, W(_t))
1116
- ], Xe);
1111
+ we = Si([
1112
+ Ue(0, qt),
1113
+ Ue(1, xe),
1114
+ Ue(2, W(Mt)),
1115
+ Ue(3, W(_t))
1116
+ ], we);
1117
1117
  var Se = /* @__PURE__ */ ((n) => (n[n.NOT_REGISTER = 1] = "NOT_REGISTER", n[n.SUCCESS = 2] = "SUCCESS", n[n.WAIT = 3] = "WAIT", n[n.ERROR = 4] = "ERROR", n))(Se || {}), Ci = Object.defineProperty, Di = Object.getOwnPropertyDescriptor, bi = (n, e, a, i) => {
1118
1118
  for (var r = i > 1 ? void 0 : i ? Di(e, a) : e, o = n.length - 1, u; o >= 0; o--)
1119
1119
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
1120
1120
  return i && r && Ci(e, a, r), r;
1121
1121
  }, lt = (n, e) => (a, i) => e(a, i, n);
1122
- let we = class extends te {
1122
+ let We = class extends te {
1123
1123
  constructor(e, a, i) {
1124
1124
  super();
1125
1125
  w(this, "_formulaCacheMap", /* @__PURE__ */ new Map());
@@ -1145,9 +1145,9 @@ let we = class extends te {
1145
1145
  }
1146
1146
  _initFormulaRegister() {
1147
1147
  this._activeDirtyManagerService.register(
1148
- Ve.id,
1148
+ Ge.id,
1149
1149
  {
1150
- commandId: Ve.id,
1150
+ commandId: Ge.id,
1151
1151
  getDirtyData(a) {
1152
1152
  return {
1153
1153
  dirtyUnitOtherFormulaMap: a.params
@@ -1171,7 +1171,7 @@ let we = class extends te {
1171
1171
  };
1172
1172
  this._commandService.executeCommand(ln.id, s).then(() => {
1173
1173
  this._commandService.executeCommand(
1174
- Ve.id,
1174
+ Ge.id,
1175
1175
  { [i]: { [r]: { [u]: !0 } } }
1176
1176
  );
1177
1177
  });
@@ -1251,12 +1251,12 @@ let we = class extends te {
1251
1251
  return this._ensureCacheMap(e, a).get(i);
1252
1252
  }
1253
1253
  };
1254
- we = bi([
1254
+ We = bi([
1255
1255
  lt(0, pe),
1256
1256
  lt(1, yt),
1257
1257
  lt(2, W(va))
1258
- ], we);
1259
- const it = "sheets-formula.base.config";
1258
+ ], We);
1259
+ const rt = "sheets-formula.base.config";
1260
1260
  var ne = /* @__PURE__ */ ((n) => (n[n.FORCED = 0] = "FORCED", n[n.WHEN_EMPTY = 1] = "WHEN_EMPTY", n[n.NO_CALCULATION = 2] = "NO_CALCULATION", n))(ne || {});
1261
1261
  const Oi = {}, Mi = "sheets-formula.remote.config", xi = {};
1262
1262
  var _i = Object.defineProperty, qi = Object.getOwnPropertyDescriptor, yi = (n, e, a, i) => {
@@ -1293,7 +1293,7 @@ let be = class extends te {
1293
1293
  w(this, "_progress$", new ba(aa));
1294
1294
  w(this, "progress$", this._progress$.asObservable());
1295
1295
  this._commandService = e, this._activeDirtyManagerService = a, this._logService = i, this._configService = r, this._formulaDataModel = o, this._localeService = u, this._registerOtherFormulaService = m;
1296
- const f = this._configService.getConfig(it);
1296
+ const f = this._configService.getConfig(rt);
1297
1297
  this._calculationMode = (s = f == null ? void 0 : f.initialFormulaComputing) != null ? s : ne.WHEN_EMPTY, this._commandExecutedListener(), this._initialExecuteFormulaProcessListener(), this._initialExecuteFormula();
1298
1298
  }
1299
1299
  _emitProgress(e) {
@@ -1416,11 +1416,7 @@ let be = class extends te {
1416
1416
  this._commandService.onCommandExecuted((i) => {
1417
1417
  if (i.id === Ae.id) {
1418
1418
  const { forceCalculation: o = !1 } = i.params;
1419
- if (o && (this._forceCalculating = !0), this._calculationMode === ne.NO_CALCULATION)
1420
- return;
1421
- a === 0 && (this._startExecutionTime = performance.now()), a++, e !== null && (clearTimeout(e), e = null), e = setTimeout(() => {
1422
- e = null, this._startProgress();
1423
- }, 1e3);
1419
+ o && (this._forceCalculating = !0);
1424
1420
  } else i.id === kt.id && this.clearProgress();
1425
1421
  if (i.id !== sn.id)
1426
1422
  return;
@@ -1429,17 +1425,23 @@ let be = class extends te {
1429
1425
  const {
1430
1426
  stage: o
1431
1427
  } = r.stageInfo;
1432
- if (o === ot.CURRENTLY_CALCULATING) {
1428
+ if (o === ge.START) {
1429
+ if (this._calculationMode === ne.NO_CALCULATION)
1430
+ return;
1431
+ a === 0 && (this._startExecutionTime = performance.now()), a++, e !== null && (clearTimeout(e), e = null), e = setTimeout(() => {
1432
+ e = null, this._startProgress();
1433
+ }, 1e3);
1434
+ } else if (o === ge.CURRENTLY_CALCULATING) {
1433
1435
  if (this._executionInProgressParams = r.stageInfo, e === null) {
1434
1436
  const u = this._localeService.t("formula.progress.calculating");
1435
1437
  this._calculateProgress(u);
1436
1438
  }
1437
- } else if (o === ot.START_DEPENDENCY_ARRAY_FORMULA) {
1439
+ } else if (o === ge.START_DEPENDENCY_ARRAY_FORMULA) {
1438
1440
  if (this._executionInProgressParams = r.stageInfo, e === null) {
1439
1441
  const u = this._localeService.t("formula.progress.array-analysis");
1440
1442
  this._calculateProgress(u);
1441
1443
  }
1442
- } else if (o === ot.CURRENTLY_CALCULATING_ARRAY_FORMULA && (this._executionInProgressParams = r.stageInfo, e === null)) {
1444
+ } else if (o === ge.CURRENTLY_CALCULATING_ARRAY_FORMULA && (this._executionInProgressParams = r.stageInfo, e === null)) {
1443
1445
  const u = this._localeService.t("formula.progress.array-calculation");
1444
1446
  this._calculateProgress(u);
1445
1447
  }
@@ -1504,16 +1506,16 @@ be = yi([
1504
1506
  le(1, yt),
1505
1507
  le(2, Va),
1506
1508
  le(3, _e),
1507
- le(4, W(at)),
1509
+ le(4, W(nt)),
1508
1510
  le(5, W(bt)),
1509
- le(6, W(we))
1511
+ le(6, W(We))
1510
1512
  ], be);
1511
1513
  var gi = Object.defineProperty, hi = Object.getOwnPropertyDescriptor, Ui = (n, e, a, i) => {
1512
1514
  for (var r = i > 1 ? void 0 : i ? hi(e, a) : e, o = n.length - 1, u; o >= 0; o--)
1513
1515
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
1514
1516
  return i && r && gi(e, a, r), r;
1515
1517
  }, me = (n, e) => (a, i) => e(a, i, n);
1516
- let We = class extends te {
1518
+ let Ke = class extends te {
1517
1519
  constructor(n, e, a, i, r, o, u, m) {
1518
1520
  super(), this._univerInstanceService = n, this._commandService = e, this._lexerTreeBuilder = a, this._formulaDataModel = i, this._sheetInterceptorService = r, this._definedNamesService = o, this._configService = u, this._injector = m, this._commandExecutedListener();
1519
1521
  }
@@ -1521,18 +1523,22 @@ let We = class extends te {
1521
1523
  this.disposeWithMe(this._sheetInterceptorService.interceptCommand({
1522
1524
  getMutations: (n) => this._getUpdateFormula(n)
1523
1525
  })), this.disposeWithMe(
1524
- this._commandService.onCommandExecuted((n, e) => {
1526
+ this._commandService.onCommandExecuted((n) => {
1525
1527
  if (n.params)
1526
- if (n.id === ie.id) {
1527
- const a = n.params;
1528
- if (e && e.onlyLocal === !0 || a.trigger === xt.id || a.trigger === Aa.id || a.trigger === Sa.id)
1529
- return;
1530
- this._handleSetRangeValuesMutation(a);
1531
- } else if (n.id === It.id) {
1532
- const { subUnitId: a, unitId: i } = n.params;
1533
- this._handleWorkbookDisposed(i, a);
1528
+ if (n.id === It.id) {
1529
+ const { subUnitId: e, unitId: a } = n.params;
1530
+ this._handleWorkbookDisposed(a, e);
1534
1531
  } else n.id === Nt.id && this._handleInsertSheetMutation(n.params);
1535
1532
  })
1533
+ ), this.disposeWithMe(
1534
+ this._commandService.beforeCommandExecuted((n, e) => {
1535
+ if (n.id === ie.id) {
1536
+ const a = n.params;
1537
+ if (e && e.onlyLocal === !0 || a.trigger === xt.id || a.trigger === Aa.id || a.trigger === Sa.id)
1538
+ return;
1539
+ this._handleSetRangeValuesMutation(a);
1540
+ }
1541
+ })
1536
1542
  ), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitAdded$(ee.UNIVER_SHEET).subscribe((n) => this._handleWorkbookAdded(n))), this.disposeWithMe(this._univerInstanceService.getTypeOfUnitDisposed$(ee.UNIVER_SHEET).pipe(yn((n) => n.getUnitId())).subscribe((n) => this._handleWorkbookDisposed(n)));
1537
1543
  }
1538
1544
  _handleSetRangeValuesMutation(n) {
@@ -1556,7 +1562,7 @@ let We = class extends te {
1556
1562
  fromFormula: !0
1557
1563
  }
1558
1564
  ), this._formulaDataModel.updateArrayFormulaCellData(a, e, i), this._formulaDataModel.updateArrayFormulaRange(a, e, i), this._commandService.executeCommand(
1559
- ge.id,
1565
+ he.id,
1560
1566
  {
1561
1567
  formulaData: o
1562
1568
  },
@@ -1579,7 +1585,7 @@ let We = class extends te {
1579
1585
  _handleWorkbookDisposed(n, e) {
1580
1586
  const a = this._formulaDataModel.getFormulaData(), i = mt(a, n, e), r = this._formulaDataModel.getArrayFormulaRange(), o = mt(r, n, e), u = this._formulaDataModel.getArrayFormulaCellData(), m = mt(u, n, e);
1581
1587
  i && this._commandService.executeCommand(
1582
- ge.id,
1588
+ he.id,
1583
1589
  {
1584
1590
  formulaData: i
1585
1591
  },
@@ -1600,7 +1606,7 @@ let We = class extends te {
1600
1606
  _handleInsertSheetMutation(n) {
1601
1607
  const { sheet: e, unitId: a } = n, i = this._formulaDataModel.getFormulaData(), { id: r, cellData: o } = e, u = new X(o), m = $t(i, a, r, u);
1602
1608
  this._commandService.executeCommand(
1603
- ge.id,
1609
+ he.id,
1604
1610
  {
1605
1611
  formulaData: m
1606
1612
  },
@@ -1611,13 +1617,13 @@ let We = class extends te {
1611
1617
  }
1612
1618
  _handleWorkbookAdded(n) {
1613
1619
  var f;
1614
- const e = this._formulaDataModel.getFormulaData(), a = n.getUnitId(), i = { [a]: {} };
1620
+ const e = {}, a = n.getUnitId(), i = { [a]: {} };
1615
1621
  n.getSheets().forEach((s) => {
1616
1622
  var E;
1617
1623
  const p = s.getCellMatrix(), d = s.getSheetId(), L = $t(e, a, d, p);
1618
1624
  i[a][d] = (E = L[a]) == null ? void 0 : E[d];
1619
- }), this._commandService.executeCommand(ge.id, { formulaData: i }, { onlyLocal: !0 });
1620
- const o = this._configService.getConfig(it), u = (f = o == null ? void 0 : o.initialFormulaComputing) != null ? f : ne.WHEN_EMPTY, m = this._getDiryDataByCalculationMode(u);
1625
+ }), this._commandService.executeCommand(he.id, { formulaData: i }, { onlyLocal: !0 });
1626
+ const o = this._configService.getConfig(rt), u = (f = o == null ? void 0 : o.initialFormulaComputing) != null ? f : ne.WHEN_EMPTY, m = this._getDiryDataByCalculationMode(u);
1621
1627
  this._commandService.executeCommand(Ae.id, m, { onlyLocal: !0 });
1622
1628
  }
1623
1629
  _getDiryDataByCalculationMode(n) {
@@ -1724,7 +1730,7 @@ let We = class extends te {
1724
1730
  } = a;
1725
1731
  if (fe == null || z == null || z.length === 0 || Pe !== z)
1726
1732
  continue;
1727
- ue = tt({
1733
+ ue = at({
1728
1734
  range: ae,
1729
1735
  sheetName: fe,
1730
1736
  unitId: Q
@@ -1753,7 +1759,7 @@ let We = class extends te {
1753
1759
  return !0;
1754
1760
  const F = _a(P, M, c, N);
1755
1761
  d.setValue(L, E, {
1756
- f: `=${Ye(F)}`
1762
+ f: `=${Xe(F)}`
1757
1763
  });
1758
1764
  }), o[u] && (o[u][s] = d.getData());
1759
1765
  }
@@ -1761,16 +1767,16 @@ let We = class extends te {
1761
1767
  return { newFormulaData: o };
1762
1768
  }
1763
1769
  };
1764
- We = Ui([
1770
+ Ke = Ui([
1765
1771
  me(0, xe),
1766
1772
  me(1, pe),
1767
1773
  me(2, W(_t)),
1768
- me(3, W(at)),
1774
+ me(3, W(nt)),
1769
1775
  me(4, W(Mt)),
1770
1776
  me(5, qt),
1771
1777
  me(6, _e),
1772
- me(7, W(et))
1773
- ], We);
1778
+ me(7, W(tt))
1779
+ ], Ke);
1774
1780
  const Fi = [
1775
1781
  {
1776
1782
  functionName: jt.ARRAY_CONSTRAIN,
@@ -15145,7 +15151,7 @@ let St = class {
15145
15151
  ...On,
15146
15152
  ...Mn,
15147
15153
  ...xn
15148
- ].map((r) => r[1]), e = zi.filter((r) => n.includes(r.functionName)), a = this._configService.getConfig(it);
15154
+ ].map((r) => r[1]), e = zi.filter((r) => n.includes(r.functionName)), a = this._configService.getConfig(rt);
15149
15155
  this._descriptions = e.concat((i = a == null ? void 0 : a.description) != null ? i : []);
15150
15156
  }
15151
15157
  _registerDescriptions() {
@@ -15174,7 +15180,7 @@ var ar = Object.defineProperty, nr = Object.getOwnPropertyDescriptor, ir = (n, e
15174
15180
  for (var r = i > 1 ? void 0 : i ? nr(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15175
15181
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15176
15182
  return i && r && ar(e, a, r), r;
15177
- }, Ue = (n, e) => (a, i) => e(a, i, n);
15183
+ }, Fe = (n, e) => (a, i) => e(a, i, n);
15178
15184
  function na(n, e, a, i) {
15179
15185
  const r = n.sequenceNodesBuilder(e);
15180
15186
  if (r == null)
@@ -15186,7 +15192,7 @@ function na(n, e, a, i) {
15186
15192
  continue;
15187
15193
  const { token: s } = f, p = se(s), { sheetName: d, unitId: L } = p;
15188
15194
  let E = p.range;
15189
- E.startAbsoluteRefType === He.ALL && E.endAbsoluteRefType === He.ALL || (E = Tt(E, a, i), o.push({
15195
+ E.startAbsoluteRefType === Ye.ALL && E.endAbsoluteRefType === Ye.ALL || (E = Tt(E, a, i), o.push({
15190
15196
  unitId: L,
15191
15197
  sheetName: d,
15192
15198
  range: E
@@ -15221,7 +15227,7 @@ let Ct = class extends te {
15221
15227
  } else
15222
15228
  return p;
15223
15229
  });
15224
- return s ? `=${Ye(s)}` : "";
15230
+ return s ? `=${Xe(s)}` : "";
15225
15231
  }
15226
15232
  registerFormula(n, e, a, i) {
15227
15233
  const r = /* @__PURE__ */ new Map(), o = this._lexerTreeBuilder.sequenceNodesBuilder(a), u = new Et(), m = (f) => {
@@ -15243,7 +15249,7 @@ let Ct = class extends te {
15243
15249
  };
15244
15250
  } else
15245
15251
  return S;
15246
- }), I = E && Ye(E);
15252
+ }), I = E && Xe(E);
15247
15253
  return i(`=${I}`);
15248
15254
  };
15249
15255
  return o == null || o.forEach((f) => {
@@ -15266,7 +15272,7 @@ let Ct = class extends te {
15266
15272
  return r == null || r.forEach((u) => {
15267
15273
  if (typeof u == "object" && u.nodeType === J.REFERENCE) {
15268
15274
  const m = se(u.token), { range: f, unitId: s, sheetName: p } = m;
15269
- if (f.startAbsoluteRefType === He.ALL && f.endAbsoluteRefType === He.ALL)
15275
+ if (f.startAbsoluteRefType === Ye.ALL && f.endAbsoluteRefType === Ye.ALL)
15270
15276
  return;
15271
15277
  const d = this._univerInstanceService.getUnit(s || n), L = p ? d == null ? void 0 : d.getSheetBySheetName(p) : d == null ? void 0 : d.getSheetBySheetId(e);
15272
15278
  if (!L)
@@ -15293,7 +15299,7 @@ let Ct = class extends te {
15293
15299
  if (I === E.unitId && S === E.subUnitId) {
15294
15300
  const N = [], R = c[0].startRow, P = c[0].startColumn, O = R - s, M = P - p;
15295
15301
  for (const F of E.ranges) {
15296
- const U = c.map((g) => ve(F, g)).filter(Boolean);
15302
+ const U = c.map((g) => Ve(F, g)).filter(Boolean);
15297
15303
  U.length > 0 && N.push(...U);
15298
15304
  }
15299
15305
  N.length > 0 && L.push(
@@ -15375,10 +15381,10 @@ let Ct = class extends te {
15375
15381
  }
15376
15382
  };
15377
15383
  Ct = ir([
15378
- Ue(0, W(an)),
15379
- Ue(1, W(_t)),
15380
- Ue(2, xe),
15381
- Ue(3, W(et))
15384
+ Fe(0, W(an)),
15385
+ Fe(1, W(_t)),
15386
+ Fe(2, xe),
15387
+ Fe(3, W(tt))
15382
15388
  ], Ct);
15383
15389
  var rr = Object.defineProperty, or = Object.getOwnPropertyDescriptor, ur = (n, e, a, i) => {
15384
15390
  for (var r = i > 1 ? void 0 : i ? or(e, a) : e, o = n.length - 1, u; o >= 0; o--)
@@ -15386,7 +15392,7 @@ var rr = Object.defineProperty, or = Object.getOwnPropertyDescriptor, ur = (n, e
15386
15392
  return i && r && rr(e, a, r), r;
15387
15393
  }, mr = (n, e) => (a, i) => e(a, i, n);
15388
15394
  const Ut = "sheets-formula.remote-register-function.service", ga = Ot(Ut);
15389
- let Ke = class {
15395
+ let Qe = class {
15390
15396
  constructor(n) {
15391
15397
  this._functionService = n;
15392
15398
  }
@@ -15398,9 +15404,9 @@ let Ke = class {
15398
15404
  this._functionService.unregisterDescriptions(...n);
15399
15405
  }
15400
15406
  };
15401
- Ke = ur([
15407
+ Qe = ur([
15402
15408
  mr(0, gt)
15403
- ], Ke);
15409
+ ], Qe);
15404
15410
  function fr(n, e) {
15405
15411
  const a = new Ca(e), i = new Function(`return ${n}`)();
15406
15412
  return a.calculateCustom = i, a;
@@ -15409,7 +15415,7 @@ var cr = Object.defineProperty, lr = Object.getOwnPropertyDescriptor, sr = (n, e
15409
15415
  for (var r = i > 1 ? void 0 : i ? lr(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15410
15416
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15411
15417
  return i && r && cr(e, a, r), r;
15412
- }, Fe = (n, e) => (a, i) => e(a, i, n);
15418
+ }, Be = (n, e) => (a, i) => e(a, i, n);
15413
15419
  const pr = Ot(
15414
15420
  "sheets-formula.register-function-service"
15415
15421
  );
@@ -15448,10 +15454,10 @@ let Dt = class extends te {
15448
15454
  }
15449
15455
  };
15450
15456
  Dt = sr([
15451
- Fe(0, W(bt)),
15452
- Fe(1, W(ht)),
15453
- Fe(2, gt),
15454
- Fe(3, Ga(ga))
15457
+ Be(0, W(bt)),
15458
+ Be(1, W(ht)),
15459
+ Be(2, gt),
15460
+ Be(3, Ga(ga))
15455
15461
  ], Dt);
15456
15462
  const dr = "SHEETS_FORMULA_PLUGIN";
15457
15463
  var Lr = Object.defineProperty, Pr = Object.getOwnPropertyDescriptor, Tr = (n, e, a, i) => {
@@ -15459,7 +15465,7 @@ var Lr = Object.defineProperty, Pr = Object.getOwnPropertyDescriptor, Tr = (n, e
15459
15465
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15460
15466
  return i && r && Lr(e, a, r), r;
15461
15467
  }, dt = (n, e) => (a, i) => e(a, i, n);
15462
- let Qe = class extends te {
15468
+ let ke = class extends te {
15463
15469
  constructor(n, e, a) {
15464
15470
  super(), this._activeDirtyManagerService = n, this._univerInstanceService = e, this._formulaDataModel = a, this._initialize();
15465
15471
  }
@@ -15735,17 +15741,17 @@ let Qe = class extends te {
15735
15741
  return i;
15736
15742
  }
15737
15743
  };
15738
- Qe = Tr([
15744
+ ke = Tr([
15739
15745
  dt(0, yt),
15740
15746
  dt(1, xe),
15741
- dt(2, W(at))
15742
- ], Qe);
15747
+ dt(2, W(nt))
15748
+ ], ke);
15743
15749
  var Er = Object.defineProperty, Ir = Object.getOwnPropertyDescriptor, Nr = (n, e, a, i) => {
15744
15750
  for (var r = i > 1 ? void 0 : i ? Ir(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15745
15751
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15746
15752
  return i && r && Er(e, a, r), r;
15747
15753
  }, Lt = (n, e) => (a, i) => e(a, i, n);
15748
- let ke = class extends te {
15754
+ let $e = class extends te {
15749
15755
  constructor(n, e, a) {
15750
15756
  super(), this._commandService = n, this._sheetInterceptorService = e, this._formulaDataModel = a, this._initialize();
15751
15757
  }
@@ -15791,18 +15797,18 @@ let ke = class extends te {
15791
15797
  );
15792
15798
  }
15793
15799
  };
15794
- ke = Nr([
15800
+ $e = Nr([
15795
15801
  Lt(0, pe),
15796
15802
  Lt(1, W(Mt)),
15797
- Lt(2, W(at))
15798
- ], ke);
15803
+ Lt(2, W(nt))
15804
+ ], $e);
15799
15805
  var Rr = Object.defineProperty, Ar = Object.getOwnPropertyDescriptor, Sr = (n, e, a, i) => {
15800
15806
  for (var r = i > 1 ? void 0 : i ? Ar(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15801
15807
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15802
15808
  return i && r && Rr(e, a, r), r;
15803
- }, Be = (n, e) => (a, i) => e(a, i, n);
15809
+ }, ve = (n, e) => (a, i) => e(a, i, n);
15804
15810
  const Pt = "AllDefaultWorkbook";
15805
- let $e = class extends te {
15811
+ let je = class extends te {
15806
15812
  constructor(e, a, i, r) {
15807
15813
  super();
15808
15814
  w(this, "_preUnitId", null);
@@ -15914,72 +15920,72 @@ let $e = class extends te {
15914
15920
  }), this._descriptionService.unregisterDescriptions(r);
15915
15921
  }
15916
15922
  };
15917
- $e = Sr([
15918
- Be(0, ht),
15919
- Be(1, qt),
15920
- Be(2, xe),
15921
- Be(3, pe)
15922
- ], $e);
15923
+ je = Sr([
15924
+ ve(0, ht),
15925
+ ve(1, qt),
15926
+ ve(2, xe),
15927
+ ve(3, pe)
15928
+ ], je);
15923
15929
  var Cr = Object.defineProperty, Dr = Object.getOwnPropertyDescriptor, br = (n, e, a, i) => {
15924
15930
  for (var r = i > 1 ? void 0 : i ? Dr(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15925
15931
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15926
15932
  return i && r && Cr(e, a, r), r;
15927
15933
  }, Or = (n, e) => (a, i) => e(a, i, n);
15928
- let je = class extends te {
15934
+ let ze = class extends te {
15929
15935
  constructor(n) {
15930
15936
  super(), this._commandService = n, [
15931
15937
  Un,
15932
- Ve
15938
+ Ge
15933
15939
  ].forEach((e) => this._commandService.registerCommand(e));
15934
15940
  }
15935
15941
  };
15936
- je = br([
15942
+ ze = br([
15937
15943
  Or(0, pe)
15938
- ], je);
15944
+ ], ze);
15939
15945
  var ha = Object.defineProperty, Mr = Object.getOwnPropertyDescriptor, xr = (n, e, a) => e in n ? ha(n, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : n[e] = a, Ua = (n, e, a, i) => {
15940
15946
  for (var r = i > 1 ? void 0 : i ? Mr(e, a) : e, o = n.length - 1, u; o >= 0; o--)
15941
15947
  (u = n[o]) && (r = (i ? u(e, a, r) : u(r)) || r);
15942
15948
  return i && r && ha(e, a, r), r;
15943
- }, ze = (n, e) => (a, i) => e(a, i, n), rt = (n, e, a) => xr(n, typeof e != "symbol" ? e + "" : e, a);
15944
- let Ze = class extends ma {
15949
+ }, Ze = (n, e) => (a, i) => e(a, i, n), ot = (n, e, a) => xr(n, typeof e != "symbol" ? e + "" : e, a);
15950
+ let Je = class extends ma {
15945
15951
  constructor(n = xi, e, a) {
15946
15952
  super(), this._config = n, this._injector = e, this._configService = a;
15947
15953
  const { ...i } = this._config;
15948
15954
  this._configService.setConfig(Mi, i);
15949
15955
  }
15950
15956
  onStarting() {
15951
- this._injector.add([Ke]), this._injector.get(Oa).registerChannel(
15957
+ this._injector.add([Qe]), this._injector.get(Oa).registerChannel(
15952
15958
  Ut,
15953
- gn(this._injector.get(Ke))
15959
+ gn(this._injector.get(Qe))
15954
15960
  );
15955
15961
  }
15956
15962
  };
15957
- rt(Ze, "pluginName", "SHEET_FORMULA_REMOTE_PLUGIN");
15958
- rt(Ze, "type", ee.UNIVER_SHEET);
15959
- Ze = Ua([
15963
+ ot(Je, "pluginName", "SHEET_FORMULA_REMOTE_PLUGIN");
15964
+ ot(Je, "type", ee.UNIVER_SHEET);
15965
+ Je = Ua([
15960
15966
  ua(Da),
15961
- ze(1, W(et)),
15962
- ze(2, _e)
15963
- ], Ze);
15964
- let Je = class extends ma {
15967
+ Ze(1, W(tt)),
15968
+ Ze(2, _e)
15969
+ ], Je);
15970
+ let et = class extends ma {
15965
15971
  constructor(n = Oi, e, a) {
15966
15972
  super(), this._config = n, this._injector = e, this._configService = a;
15967
15973
  const { ...i } = this._config;
15968
- this._configService.setConfig(it, i);
15974
+ this._configService.setConfig(rt, i);
15969
15975
  }
15970
15976
  onStarting() {
15971
15977
  const n = this._injector, e = [
15972
15978
  [pr, { useClass: Dt }],
15973
15979
  [ht, { useClass: St }],
15974
- [je],
15980
+ [ze],
15975
15981
  [Ct],
15976
- [we],
15977
- [ke],
15978
- [be],
15979
15982
  [We],
15980
- [Qe],
15981
15983
  [$e],
15982
- [Xe]
15984
+ [be],
15985
+ [Ke],
15986
+ [ke],
15987
+ [je],
15988
+ [we]
15983
15989
  ];
15984
15990
  if (this._config.notExecuteFormula) {
15985
15991
  const a = n.get(Oa);
@@ -15991,30 +15997,30 @@ let Je = class extends ma {
15991
15997
  }
15992
15998
  onReady() {
15993
15999
  ye(this._injector, [
15994
- [je],
15995
- [Qe],
16000
+ [ze],
15996
16001
  [ke],
15997
- [We],
15998
- [Xe]
16002
+ [$e],
16003
+ [Ke],
16004
+ [we]
15999
16005
  ]), vt() && ye(this._injector, [
16000
16006
  [be]
16001
16007
  ]);
16002
16008
  }
16003
16009
  onRendered() {
16004
16010
  ye(this._injector, [
16005
- [$e]
16011
+ [je]
16006
16012
  ]), vt() || ye(this._injector, [
16007
16013
  [be]
16008
16014
  ]);
16009
16015
  }
16010
16016
  };
16011
- rt(Je, "pluginName", dr);
16012
- rt(Je, "type", ee.UNIVER_SHEET);
16013
- Je = Ua([
16017
+ ot(et, "pluginName", dr);
16018
+ ot(et, "type", ee.UNIVER_SHEET);
16019
+ et = Ua([
16014
16020
  ua(Da, mn),
16015
- ze(1, W(et)),
16016
- ze(2, _e)
16017
- ], Je);
16021
+ Ze(1, W(tt)),
16022
+ Ze(2, _e)
16023
+ ], et);
16018
16024
  export {
16019
16025
  ne as CalculationMode,
16020
16026
  St as DescriptionService,
@@ -16023,14 +16029,14 @@ export {
16023
16029
  pr as IRegisterFunctionService,
16024
16030
  ga as IRemoteRegisterFunctionService,
16025
16031
  Un as InsertFunctionCommand,
16026
- Ve as OtherFormulaMarkDirty,
16027
- it as PLUGIN_CONFIG_KEY_BASE,
16032
+ Ge as OtherFormulaMarkDirty,
16033
+ rt as PLUGIN_CONFIG_KEY_BASE,
16028
16034
  Dt as RegisterFunctionService,
16029
- we as RegisterOtherFormulaService,
16030
- Ke as RemoteRegisterFunctionService,
16035
+ We as RegisterOtherFormulaService,
16036
+ Qe as RemoteRegisterFunctionService,
16031
16037
  be as TriggerCalculationController,
16032
- Ze as UniverRemoteSheetsFormulaPlugin,
16033
- Je as UniverSheetsFormulaPlugin,
16034
- Xe as UpdateDefinedNameController,
16035
- We as UpdateFormulaController
16038
+ Je as UniverRemoteSheetsFormulaPlugin,
16039
+ et as UniverSheetsFormulaPlugin,
16040
+ we as UpdateDefinedNameController,
16041
+ Ke as UpdateFormulaController
16036
16042
  };