@univerjs/sheets-formula 0.2.11 → 0.2.12

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
@@ -2,13 +2,13 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
5
- import { Disposable, ObjectMatrix, Dimension, OnLifecycle, LifecycleStages, Inject, IUniverInstanceService, CellValueType, ThemeService, ICommandService, isFormulaString, isFormulaId, Tools, Direction, UniverInstanceType, Injector, DEFAULT_EMPTY_DOCUMENT_VALUE, toDisposable, ColorKit, Rectangle, ILogService, CommandType, createIdentifier, IContextService, isRealNum, getCellValueType, useDependency, LocaleService, useInjector, FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, connectInjector, throttle, cellToRange, RANGE_TYPE, DisposableCollection, Optional, isICellData, RxDisposable, FORMULA_EDITOR_ACTIVATED, FOCUSING_EDITOR_INPUT_FORMULA, getCellInfoInMergeData, AbsoluteRefType, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, Plugin, DependentOn } from "@univerjs/core";
5
+ import { Disposable, ObjectMatrix, Dimension, OnLifecycle, LifecycleStages, Inject, IUniverInstanceService, CellValueType, ThemeService, ICommandService, isFormulaString, isFormulaId, Tools, Direction, UniverInstanceType, Injector, DEFAULT_EMPTY_DOCUMENT_VALUE, toDisposable, ColorKit, Rectangle, ILogService, CommandType, createIdentifier, IContextService, isRealNum, getCellValueType, useDependency, LocaleService, useInjector, IConfigService, FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, connectInjector, throttle, cellToRange, RANGE_TYPE, DisposableCollection, Optional, isICellData, RxDisposable, FORMULA_EDITOR_ACTIVATED, FOCUSING_EDITOR_INPUT_FORMULA, getCellInfoInMergeData, AbsoluteRefType, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, Plugin, DependentOn } from "@univerjs/core";
6
6
  import { IRPCChannelService, fromModule, toModule } from "@univerjs/rpc";
7
7
  import { SetDefinedNameMutation, RemoveDefinedNameMutation, FormulaDataModel, IActiveDirtyManagerService, IDefinedNamesService, SetArrayFormulaDataMutation, stripErrorMargin, LexerTreeBuilder, SetFormulaCalculationResultMutation, ErrorType, sequenceNodeType, serializeRange, FUNCTION_NAMES_COMPATIBILITY, FunctionType, FUNCTION_NAMES_CUBE, FUNCTION_NAMES_DATABASE, FUNCTION_NAMES_DATE, FUNCTION_NAMES_ENGINEERING, FUNCTION_NAMES_FINANCIAL, FUNCTION_NAMES_INFORMATION, FUNCTION_NAMES_LOGICAL, FUNCTION_NAMES_LOOKUP, FUNCTION_NAMES_MATH, FUNCTION_NAMES_STATISTICAL, FUNCTION_NAMES_TEXT, FUNCTION_NAMES_WEB, isReferenceStrings, functionArray, functionCompatibility, functionCube, functionDatabase, functionDate, functionEngineering, functionFinancial, functionInformation, functionLogical, functionLookup, functionMath, functionMeta, functionStatistical, functionText, functionUniver, functionWeb, IFunctionService, ERROR_TYPE_SET, SetFormulaCalculationStartMutation, SetFormulaCalculationStopMutation, SetFormulaCalculationNotificationMutation, FormulaExecuteStageType, FormulaExecutedStateType, SetFormulaDataMutation, initSheetFormulaData, deserializeRangeWithSheet, serializeRangeToRefString, generateStringWithSequence, CustomFunction, serializeRangeWithSpreadsheet, serializeRangeWithSheet, SetOtherFormulaMutation, RemoveOtherFormulaMutation, matchRefDrawToken, matchToken, compareToken, normalizeSheetName, getAbsoluteRefTypeWitString, UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
8
8
  import { IRenderManagerService, ITextSelectionRenderManager, DeviceInputEventType, ScrollTimerType, SHEET_VIEWPORT_KEY, Vector2 } from "@univerjs/engine-render";
9
9
  import { SetRangeValuesMutation, SetStyleCommand, MoveRangeMutation, MoveRowsMutation, MoveColsMutation, ReorderRangeMutation, RemoveRowMutation, RemoveColMutation, RemoveSheetMutation, InsertSheetMutation, SetDefinedNameCommand, INTERCEPTOR_POINT, SheetInterceptorService, SetRangeValuesUndoMutationFactory, SetWorksheetRowHeightMutation, SetWorksheetColWidthMutation, SetColHiddenMutation, SetColVisibleMutation, SetRowHiddenMutation, SetRowVisibleMutation, SetWorksheetRowAutoHeightMutation, SetRangeValuesCommand, SheetsSelectionsService, getSheetCommandTarget, getCellAtRowCol, SetSelectionsOperation, WorkbookEditablePermission, WorksheetEditPermission, WorksheetSetCellValuePermission, RangeProtectionPermissionEditPoint, SetBorderCommand, ClearSelectionFormatCommand, INumfmtService, handleMoveRange, EffectRefRangId, runRefRangeMutations, handleMoveRows, handleMoveCols, handleInsertRow, handleInsertCol, handleIRemoveRow, handleIRemoveCol, handleDeleteRangeMoveLeft, handleDeleteRangeMoveUp, handleInsertRangeMoveDown, handleInsertRangeMoveRight, RemoveSheetCommand, SetWorksheetNameCommand, DeleteRangeMoveLeftCommand, DeleteRangeMoveUpCommand, RemoveColCommand, RemoveRowCommand, InsertRangeMoveDownCommand, InsertRangeMoveRightCommand, InsertColCommand, InsertRowCommand, MoveColsCommand, MoveRowsCommand, MoveRangeCommand, SetWorksheetActiveOperation, InsertDefinedNameCommand, RemoveDefinedNameCommand, RefRangeService, handleDefaultRangeChangeWithEffectRefCommands, SelectionMoveType, convertSelectionDataToRange, getNormalSelectionStyle, IRefSelectionsService, DISABLE_NORMAL_SELECTIONS, setEndForRange, getPrimaryForRange, RefSelectionsService } from "@univerjs/sheets";
10
- import { DATA_TYPE, APPLY_TYPE, IAutoFillService, PREDEFINED_HOOK_NAME, COPY_TYPE, ISheetClipboardService, ISheetSelectionRenderService, SelectionShape, SELECTION_SHAPE_DEPTH, IEditorBridgeService, SheetSkeletonManagerService, SheetPasteCommand, useActiveWorkbook, getCurrentRangeDisable$, PASTE_SPECIAL_MENU_ID, whenFormulaEditorActivated, CellAlertType, HoverManagerService, CellAlertManagerService, BaseSelectionRenderService, getCoordByOffset, checkInHeaderRanges, getAllSelection, attachSelectionWithCoord, getSheetObject, getEditorObject, MoveSelectionCommand, JumpOver, ExpandSelectionCommand } from "@univerjs/sheets-ui";
11
- import { IEditorService, ISidebarService, MenuGroup, MenuItemType, MenuPosition, getMenuHiddenObservable, IClipboardInterfaceService, KeyCode, MetaKeys, ComponentManager, BuiltInUIPart, IMenuService, IShortcutService, IUIPartsService, IProgressService, UNI_DISABLE_CHANGING_FOCUS_KEY, SetEditorResizeOperation, IContextMenuService } from "@univerjs/ui";
10
+ import { DATA_TYPE, APPLY_TYPE, IAutoFillService, PREDEFINED_HOOK_NAME, COPY_TYPE, ISheetClipboardService, ISheetSelectionRenderService, SelectionShape, SELECTION_SHAPE_DEPTH, IEditorBridgeService, SheetSkeletonManagerService, SheetPasteCommand, useActiveWorkbook, whenFormulaEditorActivated, getCurrentRangeDisable$, PASTE_SPECIAL_MENU_ID, CellAlertType, HoverManagerService, CellAlertManagerService, BaseSelectionRenderService, getCoordByOffset, checkInHeaderRanges, getAllSelection, attachSelectionWithCoord, getSheetObject, getEditorObject, MoveSelectionCommand, JumpOver, ExpandSelectionCommand } from "@univerjs/sheets-ui";
11
+ import { IEditorService, ISidebarService, KeyCode, MetaKeys, MenuItemType, getMenuHiddenObservable, IClipboardInterfaceService, RibbonStartGroup, BuiltInUIPart, ComponentManager, IMenuManagerService, IShortcutService, IUIPartsService, IProgressService, UNI_DISABLE_CHANGING_FOCUS_KEY, SetEditorResizeOperation, IContextMenuService } from "@univerjs/ui";
12
12
  import { Subject, throttleTime, combineLatestWith, map, switchMap, of, Observable, merge, filter, bufferTime, distinctUntilKeyChanged, distinctUntilChanged } from "rxjs";
13
13
  import require$$0, { forwardRef, useRef, createElement, useEffect, useState } from "react";
14
14
  import { Popup, Select, Input, Button } from "@univerjs/design";
@@ -424,21 +424,23 @@ let FormulaClipboardController = (_a4 = class extends Disposable {
424
424
  }
425
425
  _onPasteCells(pasteFrom, pasteTo, data, payload, isSpecialPaste) {
426
426
  var _a23;
427
- const pasteType = payload.pasteType;
428
- if (pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE || pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT || pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH)
427
+ if ([PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT, PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(payload.pasteType))
429
428
  return {
430
429
  undos: [],
431
430
  redos: []
432
431
  };
433
- const copyInfo = {
432
+ const workbook = this._currentUniverSheet.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET), unitId = pasteTo.unitId || workbook.getUnitId(), subUnitId = pasteTo.subUnitId || ((_a23 = workbook.getActiveSheet()) == null ? void 0 : _a23.getSheetId());
433
+ if (!unitId || !subUnitId)
434
+ return {
435
+ undos: [],
436
+ redos: []
437
+ };
438
+ const pastedRange = pasteTo.range, matrix = data, copyInfo = {
434
439
  copyType: payload.copyType || COPY_TYPE.COPY,
435
440
  copyRange: pasteFrom == null ? void 0 : pasteFrom.range,
436
441
  pasteType: payload.pasteType
437
- }, pastedRange = pasteTo.range, matrix = data, workbook = this._currentUniverSheet.getCurrentUnitForType(UniverInstanceType.UNIVER_SHEET), unitId = pasteTo.unitId || workbook.getUnitId(), subUnitId = pasteTo.subUnitId || ((_a23 = workbook.getActiveSheet()) == null ? void 0 : _a23.getSheetId());
438
- return !unitId || !subUnitId ? {
439
- undos: [],
440
- redos: []
441
- } : this._injector.invoke((accessor) => getSetCellFormulaMutations(
442
+ };
443
+ return this._injector.invoke((accessor) => getSetCellFormulaMutations(
442
444
  unitId,
443
445
  subUnitId,
444
446
  pastedRange,
@@ -461,43 +463,7 @@ FormulaClipboardController = __decorateClass$g([
461
463
  __decorateParam$g(4, Inject(FormulaDataModel))
462
464
  ], FormulaClipboardController);
463
465
  function getSetCellFormulaMutations(unitId, subUnitId, range, matrix, accessor, copyInfo, lexerTreeBuilder, formulaDataModel, isSpecialPaste = !1, pasteFrom) {
464
- const redoMutationsInfo = [], undoMutationsInfo = [], valueMatrix = new ObjectMatrix(), formulaIdMap = /* @__PURE__ */ new Map();
465
- let copyRowLength = 0, copyColumnLength = 0;
466
- if (copyInfo && copyInfo.copyRange) {
467
- const { copyType, copyRange } = copyInfo;
468
- copyType === COPY_TYPE.COPY && copyRange && (copyRowLength = copyRange.rows.length, copyColumnLength = copyRange.cols.length);
469
- }
470
- matrix.forValue((row, col, value) => {
471
- var _a23, _b, _c, _d;
472
- const originalFormula = value.f || "", originalFormulaId = value.si || "";
473
- let valueObject = {};
474
- if (isSpecialPaste && (valueObject = Tools.deepClone(value), valueObject.s = null), !(!copyRowLength || !copyColumnLength)) {
475
- if (isFormulaId(originalFormulaId)) {
476
- const { unitId: pasteFromUnitId = "", subUnitId: pasteFromSubUnitId = "", range: pasteFromRange } = pasteFrom || {};
477
- if ((pasteFromUnitId && unitId !== pasteFromUnitId || pasteFromSubUnitId && subUnitId !== pasteFromSubUnitId) && (pasteFromRange != null && pasteFromRange.rows) && (pasteFromRange != null && pasteFromRange.cols)) {
478
- const formulaString = formulaDataModel.getFormulaStringByCell(pasteFromRange.rows[row], pasteFromRange.cols[col], pasteFromSubUnitId, pasteFromUnitId), rowIndex = row % copyRowLength, colIndex = col % copyColumnLength, copyX = copyInfo != null && copyInfo.copyRange ? (_a23 = copyInfo == null ? void 0 : copyInfo.copyRange) == null ? void 0 : _a23.cols[colIndex] : colIndex, copyY = copyInfo != null && copyInfo.copyRange ? (_b = copyInfo == null ? void 0 : copyInfo.copyRange) == null ? void 0 : _b.rows[rowIndex] : rowIndex, offsetX = range.cols[col] - copyX, offsetY = range.rows[row] - copyY, shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(formulaString || "", offsetX, offsetY);
479
- valueObject.si = null, valueObject.f = shiftedFormula, valueObject.v = null, valueObject.p = null;
480
- } else
481
- valueObject.si = originalFormulaId, valueObject.f = null, valueObject.v = null, valueObject.p = null;
482
- } else if (isFormulaString(originalFormula)) {
483
- const rowIndex = row % copyRowLength, colIndex = col % copyColumnLength, index = `${rowIndex}_${colIndex}`;
484
- let formulaId = formulaIdMap.get(index);
485
- if (formulaId)
486
- valueObject.si = formulaId, valueObject.f = null, valueObject.v = null, valueObject.p = null;
487
- else {
488
- formulaId = Tools.generateRandomId(6), formulaIdMap.set(index, formulaId);
489
- const copyX = copyInfo != null && copyInfo.copyRange ? (_c = copyInfo == null ? void 0 : copyInfo.copyRange) == null ? void 0 : _c.cols[colIndex] : colIndex, copyY = copyInfo != null && copyInfo.copyRange ? (_d = copyInfo == null ? void 0 : copyInfo.copyRange) == null ? void 0 : _d.rows[rowIndex] : rowIndex, offsetX = range.cols[col] - copyX, offsetY = range.rows[row] - copyY, shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(originalFormula, offsetX, offsetY);
490
- valueObject.si = formulaId, valueObject.f = shiftedFormula, valueObject.v = null, valueObject.p = null;
491
- }
492
- }
493
- if (copyInfo.pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA && value.p) {
494
- const richText = getCellRichText(value);
495
- richText && (valueObject.p = null, valueObject.v = richText);
496
- }
497
- valueMatrix.setValue(range.rows[row], range.cols[col], valueObject);
498
- }
499
- });
500
- const setValuesMutation = {
466
+ const redoMutationsInfo = [], undoMutationsInfo = [], valueMatrix = getValueMatrix(unitId, subUnitId, range, matrix, copyInfo, lexerTreeBuilder, formulaDataModel, pasteFrom), setValuesMutation = {
501
467
  unitId,
502
468
  subUnitId,
503
469
  cellValue: valueMatrix.getData()
@@ -519,6 +485,111 @@ function getSetCellFormulaMutations(unitId, subUnitId, range, matrix, accessor,
519
485
  };
520
486
  }
521
487
  __name(getSetCellFormulaMutations, "getSetCellFormulaMutations");
488
+ function getValueMatrix(unitId, subUnitId, range, matrix, copyInfo, lexerTreeBuilder, formulaDataModel, pasteFrom) {
489
+ return pasteFrom ? copyInfo.pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE ? getSpecialPasteValueValueMatrix(unitId, subUnitId, range, matrix, formulaDataModel, pasteFrom) : copyInfo.pasteType === PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA ? getSpecialPasteFormulaValueMatrix(unitId, subUnitId, range, matrix, lexerTreeBuilder, formulaDataModel, pasteFrom) : getDefaultPasteValueMatrix(unitId, subUnitId, range, matrix, lexerTreeBuilder, formulaDataModel, pasteFrom) : getValueMatrixOfPasteFromIsNull(unitId, subUnitId, range, matrix, formulaDataModel);
490
+ }
491
+ __name(getValueMatrix, "getValueMatrix");
492
+ function getValueMatrixOfPasteFromIsNull(unitId, subUnitId, range, matrix, formulaDataModel) {
493
+ var _a23, _b;
494
+ const valueMatrix = new ObjectMatrix(), formulaData = (_b = (_a23 = formulaDataModel.getFormulaData()) == null ? void 0 : _a23[unitId]) == null ? void 0 : _b[subUnitId];
495
+ return matrix.forValue((row, col, value) => {
496
+ var _a24;
497
+ const toRow = range.rows[row], toCol = range.cols[col], valueObject = {};
498
+ isFormulaString(value.v) ? (valueObject.v = null, valueObject.f = `${value.v}`, valueObject.si = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject)) : (_a24 = formulaData == null ? void 0 : formulaData[toRow]) != null && _a24[toCol] && (valueObject.v = value.v, valueObject.f = null, valueObject.si = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject));
499
+ }), valueMatrix;
500
+ }
501
+ __name(getValueMatrixOfPasteFromIsNull, "getValueMatrixOfPasteFromIsNull");
502
+ function getSpecialPasteValueValueMatrix(unitId, subUnitId, range, matrix, formulaDataModel, pasteFrom) {
503
+ var _a23, _b, _c, _d;
504
+ const valueMatrix = new ObjectMatrix(), arrayFormulaCellData = (_b = (_a23 = formulaDataModel.getArrayFormulaCellData()) == null ? void 0 : _a23[pasteFrom.unitId]) == null ? void 0 : _b[pasteFrom.subUnitId], formulaData = (_d = (_c = formulaDataModel.getFormulaData()) == null ? void 0 : _c[unitId]) == null ? void 0 : _d[subUnitId];
505
+ return matrix.forValue((row, col, value) => {
506
+ var _a24, _b2;
507
+ const fromRow = pasteFrom.range.rows[row % pasteFrom.range.rows.length], fromCol = pasteFrom.range.cols[col % pasteFrom.range.cols.length], toRow = range.rows[row], toCol = range.cols[col], valueObject = {};
508
+ if (isFormulaString(value.f) || isFormulaId(value.si))
509
+ valueObject.v = value.v, valueObject.f = null, valueObject.si = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
510
+ else if ((_a24 = arrayFormulaCellData == null ? void 0 : arrayFormulaCellData[fromRow]) != null && _a24[fromCol]) {
511
+ const cell = arrayFormulaCellData[fromRow][fromCol];
512
+ valueObject.v = cell.v, valueObject.f = null, valueObject.si = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
513
+ } else if ((_b2 = formulaData == null ? void 0 : formulaData[toRow]) != null && _b2[toCol]) {
514
+ if (valueObject.v = value.v, valueObject.f = null, valueObject.si = null, valueObject.p = null, value.p) {
515
+ const richText = getCellRichText(value);
516
+ richText && (valueObject.v = richText);
517
+ }
518
+ valueMatrix.setValue(toRow, toCol, valueObject);
519
+ }
520
+ }), valueMatrix;
521
+ }
522
+ __name(getSpecialPasteValueValueMatrix, "getSpecialPasteValueValueMatrix");
523
+ function getSpecialPasteFormulaValueMatrix(unitId, subUnitId, range, matrix, lexerTreeBuilder, formulaDataModel, pasteFrom) {
524
+ const valueMatrix = new ObjectMatrix(), formulaIdMap = /* @__PURE__ */ new Map();
525
+ return matrix.forValue((row, col, value) => {
526
+ const toRow = range.rows[row], toCol = range.cols[col], valueObject = {};
527
+ if (isFormulaId(value.si)) {
528
+ if (pasteFrom.unitId !== unitId || pasteFrom.subUnitId !== subUnitId) {
529
+ const formulaString = formulaDataModel.getFormulaStringByCell(
530
+ pasteFrom.range.rows[row % pasteFrom.range.rows.length],
531
+ pasteFrom.range.cols[col % pasteFrom.range.cols.length],
532
+ pasteFrom.subUnitId,
533
+ pasteFrom.unitId
534
+ ), offsetX = range.cols[col] - pasteFrom.range.cols[col % pasteFrom.range.cols.length], offsetY = range.rows[row] - pasteFrom.range.rows[row % pasteFrom.range.rows.length], shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(formulaString || "", offsetX, offsetY);
535
+ valueObject.si = null, valueObject.f = shiftedFormula;
536
+ } else
537
+ valueObject.si = value.si, valueObject.f = null;
538
+ valueObject.v = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
539
+ } else if (isFormulaString(value.f)) {
540
+ const index = `${row % pasteFrom.range.rows.length}_${col % pasteFrom.range.cols.length}`;
541
+ let formulaId = formulaIdMap.get(index);
542
+ if (formulaId)
543
+ valueObject.si = formulaId, valueObject.f = null;
544
+ else {
545
+ formulaId = Tools.generateRandomId(6), formulaIdMap.set(index, formulaId);
546
+ const offsetX = range.cols[col] - pasteFrom.range.cols[col % pasteFrom.range.cols.length], offsetY = range.rows[row] - pasteFrom.range.rows[row % pasteFrom.range.rows.length], shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(value.f || "", offsetX, offsetY);
547
+ valueObject.si = formulaId, valueObject.f = shiftedFormula;
548
+ }
549
+ valueObject.v = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
550
+ } else {
551
+ if (valueObject.v = value.v, valueObject.f = null, valueObject.si = null, valueObject.p = null, value.p) {
552
+ const richText = getCellRichText(value);
553
+ richText && (valueObject.v = richText);
554
+ }
555
+ valueMatrix.setValue(toRow, toCol, valueObject);
556
+ }
557
+ }), valueMatrix;
558
+ }
559
+ __name(getSpecialPasteFormulaValueMatrix, "getSpecialPasteFormulaValueMatrix");
560
+ function getDefaultPasteValueMatrix(unitId, subUnitId, range, matrix, lexerTreeBuilder, formulaDataModel, pasteFrom) {
561
+ var _a23, _b;
562
+ const valueMatrix = new ObjectMatrix(), formulaIdMap = /* @__PURE__ */ new Map(), formulaData = (_b = (_a23 = formulaDataModel.getFormulaData()) == null ? void 0 : _a23[unitId]) == null ? void 0 : _b[subUnitId];
563
+ return matrix.forValue((row, col, value) => {
564
+ var _a24;
565
+ const toRow = range.rows[row], toCol = range.cols[col], valueObject = {};
566
+ if (isFormulaId(value.si)) {
567
+ if (pasteFrom.unitId !== unitId || pasteFrom.subUnitId !== subUnitId) {
568
+ const formulaString = formulaDataModel.getFormulaStringByCell(
569
+ pasteFrom.range.rows[row % pasteFrom.range.rows.length],
570
+ pasteFrom.range.cols[col % pasteFrom.range.cols.length],
571
+ pasteFrom.subUnitId,
572
+ pasteFrom.unitId
573
+ ), offsetX = range.cols[col] - pasteFrom.range.cols[col % pasteFrom.range.cols.length], offsetY = range.rows[row] - pasteFrom.range.rows[row % pasteFrom.range.rows.length], shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(formulaString || "", offsetX, offsetY);
574
+ valueObject.si = null, valueObject.f = shiftedFormula;
575
+ } else
576
+ valueObject.si = value.si, valueObject.f = null;
577
+ valueObject.v = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
578
+ } else if (isFormulaString(value.f)) {
579
+ const index = `${row % pasteFrom.range.rows.length}_${col % pasteFrom.range.cols.length}`;
580
+ let formulaId = formulaIdMap.get(index);
581
+ if (formulaId)
582
+ valueObject.si = formulaId, valueObject.f = null;
583
+ else {
584
+ formulaId = Tools.generateRandomId(6), formulaIdMap.set(index, formulaId);
585
+ const offsetX = range.cols[col] - pasteFrom.range.cols[col % pasteFrom.range.cols.length], offsetY = range.rows[row] - pasteFrom.range.rows[row % pasteFrom.range.rows.length], shiftedFormula = lexerTreeBuilder.moveFormulaRefOffset(value.f || "", offsetX, offsetY);
586
+ valueObject.si = formulaId, valueObject.f = shiftedFormula;
587
+ }
588
+ valueObject.v = null, valueObject.p = null, valueMatrix.setValue(toRow, toCol, valueObject);
589
+ } else (_a24 = formulaData == null ? void 0 : formulaData[toRow]) != null && _a24[toCol] && (valueObject.v = value.v, valueObject.f = null, valueObject.si = null, valueObject.p = value.p, valueMatrix.setValue(toRow, toCol, valueObject));
590
+ }), valueMatrix;
591
+ }
592
+ __name(getDefaultPasteValueMatrix, "getDefaultPasteValueMatrix");
522
593
  function getCellRichText(cell) {
523
594
  if (cell != null && cell.p) {
524
595
  const body = cell == null ? void 0 : cell.p.body;
@@ -1531,7 +1602,7 @@ function InputParams(props) {
1531
1602
  ] });
1532
1603
  }
1533
1604
  __name(InputParams, "InputParams");
1534
- const FUNCTION_LIST_ARRAY = [], FUNCTION_LIST_COMPATIBILITY = [
1605
+ const PLUGIN_CONFIG_KEY_BASE = "sheets-formula.base.config", defaultPluginBaseConfig = {}, PLUGIN_CONFIG_KEY_REMOTE = "sheets-formula.remote.config", defaultPluginRemoteConfig = {}, PLUGIN_CONFIG_KEY_MOBILE = "sheets-formula.mobile.config", defaultPluginMobileConfig = {}, FUNCTION_LIST_ARRAY = [], FUNCTION_LIST_COMPATIBILITY = [
1535
1606
  {
1536
1607
  functionName: FUNCTION_NAMES_COMPATIBILITY.BETADIST,
1537
1608
  functionType: FunctionType.Compatibility,
@@ -6739,16 +6810,9 @@ const FUNCTION_LIST_ARRAY = [], FUNCTION_LIST_COMPATIBILITY = [
6739
6810
  abstract: "formula.functionList.ISFORMULA.abstract",
6740
6811
  functionParameter: [
6741
6812
  {
6742
- name: "formula.functionList.ISFORMULA.functionParameter.number1.name",
6743
- detail: "formula.functionList.ISFORMULA.functionParameter.number1.detail",
6744
- example: "A1:A20",
6745
- require: 1,
6746
- repeat: 0
6747
- },
6748
- {
6749
- name: "formula.functionList.ISFORMULA.functionParameter.number2.name",
6750
- detail: "formula.functionList.ISFORMULA.functionParameter.number2.detail",
6751
- example: "A1:A20",
6813
+ name: "formula.functionList.ISFORMULA.functionParameter.reference.name",
6814
+ detail: "formula.functionList.ISFORMULA.functionParameter.reference.detail",
6815
+ example: "A1",
6752
6816
  require: 1,
6753
6817
  repeat: 0
6754
6818
  }
@@ -6888,16 +6952,9 @@ const FUNCTION_LIST_ARRAY = [], FUNCTION_LIST_COMPATIBILITY = [
6888
6952
  abstract: "formula.functionList.N.abstract",
6889
6953
  functionParameter: [
6890
6954
  {
6891
- name: "formula.functionList.N.functionParameter.number1.name",
6892
- detail: "formula.functionList.N.functionParameter.number1.detail",
6893
- example: "A1:A20",
6894
- require: 1,
6895
- repeat: 0
6896
- },
6897
- {
6898
- name: "formula.functionList.N.functionParameter.number2.name",
6899
- detail: "formula.functionList.N.functionParameter.number2.detail",
6900
- example: "A1:A20",
6955
+ name: "formula.functionList.N.functionParameter.value.name",
6956
+ detail: "formula.functionList.N.functionParameter.value.detail",
6957
+ example: "7",
6901
6958
  require: 1,
6902
6959
  repeat: 0
6903
6960
  }
@@ -6908,22 +6965,7 @@ const FUNCTION_LIST_ARRAY = [], FUNCTION_LIST_COMPATIBILITY = [
6908
6965
  functionType: FunctionType.Information,
6909
6966
  description: "formula.functionList.NA.description",
6910
6967
  abstract: "formula.functionList.NA.abstract",
6911
- functionParameter: [
6912
- {
6913
- name: "formula.functionList.NA.functionParameter.number1.name",
6914
- detail: "formula.functionList.NA.functionParameter.number1.detail",
6915
- example: "A1:A20",
6916
- require: 1,
6917
- repeat: 0
6918
- },
6919
- {
6920
- name: "formula.functionList.NA.functionParameter.number2.name",
6921
- detail: "formula.functionList.NA.functionParameter.number2.detail",
6922
- example: "A1:A20",
6923
- require: 1,
6924
- repeat: 0
6925
- }
6926
- ]
6968
+ functionParameter: []
6927
6969
  },
6928
6970
  {
6929
6971
  functionName: FUNCTION_NAMES_INFORMATION.SHEET,
@@ -13793,9 +13835,9 @@ var __defProp$d = Object.defineProperty, __getOwnPropDesc$d = Object.getOwnPrope
13793
13835
  const IDescriptionService = createIdentifier("formula-ui.description-service");
13794
13836
  var _a7;
13795
13837
  let DescriptionService = (_a7 = class {
13796
- constructor(_description = [], _functionService, _localeService) {
13838
+ constructor(_functionService, _localeService, _configService) {
13797
13839
  __publicField(this, "_descriptions", []);
13798
- this._description = _description, this._functionService = _functionService, this._localeService = _localeService, this._initialize();
13840
+ this._functionService = _functionService, this._localeService = _localeService, this._configService = _configService, this._initialize();
13799
13841
  }
13800
13842
  dispose() {
13801
13843
  this._localeService.localeChanged$.complete();
@@ -13858,6 +13900,7 @@ let DescriptionService = (_a7 = class {
13858
13900
  }), this._initDescription(), this._registerDescriptions();
13859
13901
  }
13860
13902
  _initDescription() {
13903
+ var _a23;
13861
13904
  const functions = [
13862
13905
  ...functionArray,
13863
13906
  ...functionCompatibility,
@@ -13875,8 +13918,8 @@ let DescriptionService = (_a7 = class {
13875
13918
  ...functionText,
13876
13919
  ...functionUniver,
13877
13920
  ...functionWeb
13878
- ].map((item) => item[1]), filterFunctionList = FUNCTION_LIST.filter((item) => functions.includes(item.functionName));
13879
- this._descriptions = filterFunctionList.concat(this._description);
13921
+ ].map((item) => item[1]), filterFunctionList = FUNCTION_LIST.filter((item) => functions.includes(item.functionName)), config = this._configService.getConfig(PLUGIN_CONFIG_KEY_BASE);
13922
+ this._descriptions = filterFunctionList.concat((_a23 = config == null ? void 0 : config.description) != null ? _a23 : []);
13880
13923
  }
13881
13924
  _registerDescriptions() {
13882
13925
  const localeService = this._localeService, functionListLocale = this._descriptions.map((functionInfo) => ({
@@ -13896,8 +13939,9 @@ let DescriptionService = (_a7 = class {
13896
13939
  }
13897
13940
  }, __name(_a7, "DescriptionService"), _a7);
13898
13941
  DescriptionService = __decorateClass$d([
13899
- __decorateParam$d(1, IFunctionService),
13900
- __decorateParam$d(2, Inject(LocaleService))
13942
+ __decorateParam$d(0, IFunctionService),
13943
+ __decorateParam$d(1, Inject(LocaleService)),
13944
+ __decorateParam$d(2, IConfigService)
13901
13945
  ], DescriptionService);
13902
13946
  const formulaSelectFunctionSelect = "univer-formula-select-function-select", formulaSelectFunctionResult = "univer-formula-select-function-result", formulaSelectFunctionResultItem = "univer-formula-select-function-result-item", formulaSelectFunctionResultItemNameLight = "univer-formula-select-function-result-item-name-light", formulaSelectFunctionResultItemSelected = "univer-formula-select-function-result-item-selected", formulaSelectFunctionResultItemActive = "univer-formula-select-function-result-item-active", formulaSelectFunctionContent = "univer-formula-select-function-content", styles = {
13903
13947
  formulaSelectFunctionSelect,
@@ -14048,76 +14092,7 @@ const OtherFormulaMarkDirty = {
14048
14092
  handler() {
14049
14093
  return !0;
14050
14094
  }
14051
- };
14052
- function InsertFunctionMenuItemFactory(accessor) {
14053
- return {
14054
- id: InsertFunctionOperation.id,
14055
- icon: "FunctionSingle",
14056
- tooltip: "formula.insert.tooltip",
14057
- group: MenuGroup.TOOLBAR_FORMULAS_INSERT,
14058
- type: MenuItemType.SELECTOR,
14059
- positions: [MenuPosition.TOOLBAR_START],
14060
- selections: [
14061
- {
14062
- label: "SUM",
14063
- value: "SUM",
14064
- icon: "SumSingle"
14065
- },
14066
- {
14067
- label: "AVERAGE",
14068
- value: "AVERAGE",
14069
- icon: "AvgSingle"
14070
- },
14071
- {
14072
- label: "COUNT",
14073
- value: "COUNT",
14074
- icon: "CntSingle"
14075
- },
14076
- {
14077
- label: "MAX",
14078
- value: "MAX",
14079
- icon: "MaxSingle"
14080
- },
14081
- {
14082
- label: "MIN",
14083
- value: "MIN",
14084
- icon: "MinSingle"
14085
- }
14086
- ],
14087
- hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET),
14088
- disabled$: getCurrentRangeDisable$(accessor, { workbookTypes: [WorkbookEditablePermission], worksheetTypes: [WorksheetEditPermission, WorksheetSetCellValuePermission], rangeTypes: [RangeProtectionPermissionEditPoint] })
14089
- };
14090
- }
14091
- __name(InsertFunctionMenuItemFactory, "InsertFunctionMenuItemFactory");
14092
- function MoreFunctionsMenuItemFactory(accessor) {
14093
- return {
14094
- id: MoreFunctionsOperation.id,
14095
- title: "formula.insert.more",
14096
- positions: InsertFunctionOperation.id,
14097
- type: MenuItemType.BUTTON
14098
- };
14099
- }
14100
- __name(MoreFunctionsMenuItemFactory, "MoreFunctionsMenuItemFactory");
14101
- function menuClipboardDisabledObservable(injector) {
14102
- return injector.get(IUniverInstanceService).getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(
14103
- switchMap((workbook) => workbook ? injector.get(IClipboardInterfaceService) ? new Observable((subscriber) => subscriber.next(!injector.get(IClipboardInterfaceService).supportClipboard)) : of(!0) : of(!0))
14104
- );
14105
- }
14106
- __name(menuClipboardDisabledObservable, "menuClipboardDisabledObservable");
14107
- function PasteFormulaMenuItemFactory(accessor) {
14108
- return {
14109
- id: SheetOnlyPasteFormulaCommand.id,
14110
- type: MenuItemType.BUTTON,
14111
- title: "formula.operation.pasteFormula",
14112
- positions: [PASTE_SPECIAL_MENU_ID],
14113
- disabled$: menuClipboardDisabledObservable(accessor).pipe(
14114
- combineLatestWith(getCurrentRangeDisable$(accessor, { workbookTypes: [WorkbookEditablePermission], rangeTypes: [RangeProtectionPermissionEditPoint], worksheetTypes: [WorksheetSetCellValuePermission, WorksheetEditPermission] })),
14115
- map(([d1, d2]) => d1 || d2)
14116
- )
14117
- };
14118
- }
14119
- __name(PasteFormulaMenuItemFactory, "PasteFormulaMenuItemFactory");
14120
- const META_KEY_CTRL_AND_SHIFT = "meta_key_ctrl_And_Shift";
14095
+ }, META_KEY_CTRL_AND_SHIFT = "meta_key_ctrl_And_Shift";
14121
14096
  function whenEditorStandalone(contextService) {
14122
14097
  return contextService.getContextValue(FOCUSING_DOC) && contextService.getContextValue(FOCUSING_UNIVER_EDITOR) && contextService.getContextValue(FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE);
14123
14098
  }
@@ -14216,27 +14191,102 @@ function singleEditorPromptSelectionShortcutItem() {
14216
14191
  return shortcutList;
14217
14192
  }
14218
14193
  __name(singleEditorPromptSelectionShortcutItem, "singleEditorPromptSelectionShortcutItem");
14194
+ function InsertFunctionMenuItemFactory(accessor) {
14195
+ return {
14196
+ id: InsertFunctionOperation.id,
14197
+ icon: "FunctionSingle",
14198
+ tooltip: "formula.insert.tooltip",
14199
+ type: MenuItemType.SELECTOR,
14200
+ selections: [
14201
+ {
14202
+ label: "SUM",
14203
+ value: "SUM",
14204
+ icon: "SumSingle"
14205
+ },
14206
+ {
14207
+ label: "AVERAGE",
14208
+ value: "AVERAGE",
14209
+ icon: "AvgSingle"
14210
+ },
14211
+ {
14212
+ label: "COUNT",
14213
+ value: "COUNT",
14214
+ icon: "CntSingle"
14215
+ },
14216
+ {
14217
+ label: "MAX",
14218
+ value: "MAX",
14219
+ icon: "MaxSingle"
14220
+ },
14221
+ {
14222
+ label: "MIN",
14223
+ value: "MIN",
14224
+ icon: "MinSingle"
14225
+ }
14226
+ ],
14227
+ hidden$: getMenuHiddenObservable(accessor, UniverInstanceType.UNIVER_SHEET),
14228
+ disabled$: getCurrentRangeDisable$(accessor, { workbookTypes: [WorkbookEditablePermission], worksheetTypes: [WorksheetEditPermission, WorksheetSetCellValuePermission], rangeTypes: [RangeProtectionPermissionEditPoint] })
14229
+ };
14230
+ }
14231
+ __name(InsertFunctionMenuItemFactory, "InsertFunctionMenuItemFactory");
14232
+ function MoreFunctionsMenuItemFactory(accessor) {
14233
+ return {
14234
+ id: MoreFunctionsOperation.id,
14235
+ title: "formula.insert.more",
14236
+ type: MenuItemType.BUTTON
14237
+ };
14238
+ }
14239
+ __name(MoreFunctionsMenuItemFactory, "MoreFunctionsMenuItemFactory");
14240
+ function menuClipboardDisabledObservable(injector) {
14241
+ return injector.get(IUniverInstanceService).getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(
14242
+ switchMap((workbook) => workbook ? injector.get(IClipboardInterfaceService) ? new Observable((subscriber) => subscriber.next(!injector.get(IClipboardInterfaceService).supportClipboard)) : of(!0) : of(!0))
14243
+ );
14244
+ }
14245
+ __name(menuClipboardDisabledObservable, "menuClipboardDisabledObservable");
14246
+ function PasteFormulaMenuItemFactory(accessor) {
14247
+ return {
14248
+ id: SheetOnlyPasteFormulaCommand.id,
14249
+ type: MenuItemType.BUTTON,
14250
+ title: "formula.operation.pasteFormula",
14251
+ disabled$: menuClipboardDisabledObservable(accessor).pipe(
14252
+ combineLatestWith(getCurrentRangeDisable$(accessor, { workbookTypes: [WorkbookEditablePermission], rangeTypes: [RangeProtectionPermissionEditPoint], worksheetTypes: [WorksheetSetCellValuePermission, WorksheetEditPermission] })),
14253
+ map(([d1, d2]) => d1 || d2)
14254
+ )
14255
+ };
14256
+ }
14257
+ __name(PasteFormulaMenuItemFactory, "PasteFormulaMenuItemFactory");
14258
+ const menuSchema = {
14259
+ [RibbonStartGroup.FORMULAS_INSERT]: {
14260
+ [InsertFunctionOperation.id]: {
14261
+ order: 1,
14262
+ menuItemFactory: InsertFunctionMenuItemFactory,
14263
+ [MoreFunctionsOperation.id]: {
14264
+ order: 1,
14265
+ menuItemFactory: MoreFunctionsMenuItemFactory
14266
+ }
14267
+ }
14268
+ },
14269
+ [PASTE_SPECIAL_MENU_ID]: {
14270
+ [SheetOnlyPasteFormulaCommand.id]: {
14271
+ order: 4,
14272
+ menuItemFactory: PasteFormulaMenuItemFactory
14273
+ }
14274
+ }
14275
+ };
14219
14276
  var __defProp$c = Object.defineProperty, __getOwnPropDesc$c = Object.getOwnPropertyDescriptor, __decorateClass$c = /* @__PURE__ */ __name((decorators, target, key, kind) => {
14220
14277
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
14221
14278
  (decorator = decorators[i]) && (result = (kind ? decorator(target, key, result) : decorator(result)) || result);
14222
14279
  return kind && result && __defProp$c(target, key, result), result;
14223
- }, "__decorateClass$c"), __decorateParam$c = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$c");
14224
- const DefaultSheetFormulaConfig = {};
14225
- var _a8;
14280
+ }, "__decorateClass$c"), __decorateParam$c = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam$c"), _a8;
14226
14281
  let FormulaUIController = (_a8 = class extends Disposable {
14227
- constructor(_config, _injector, _menuService, _commandService, _shortcutService, _uiPartsService, _renderManagerService, _componentManager) {
14228
- super(), this._config = _config, this._injector = _injector, this._menuService = _menuService, this._commandService = _commandService, this._shortcutService = _shortcutService, this._uiPartsService = _uiPartsService, this._renderManagerService = _renderManagerService, this._componentManager = _componentManager, this._initialize();
14282
+ constructor(_injector, _menuManagerService, _commandService, _shortcutService, _uiPartsService, _renderManagerService, _componentManager) {
14283
+ super(), this._injector = _injector, this._menuManagerService = _menuManagerService, this._commandService = _commandService, this._shortcutService = _shortcutService, this._uiPartsService = _uiPartsService, this._renderManagerService = _renderManagerService, this._componentManager = _componentManager, this._initialize();
14229
14284
  }
14230
14285
  _initialize() {
14231
14286
  this._registerCommands(), this._registerMenus(), this._registerShortcuts(), this._registerComponents(), this._registerRenderModules();
14232
14287
  }
14233
14288
  _registerMenus() {
14234
- const { menu = {} } = this._config;
14235
- [InsertFunctionMenuItemFactory, MoreFunctionsMenuItemFactory, PasteFormulaMenuItemFactory].forEach(
14236
- (factory) => {
14237
- this.disposeWithMe(this._menuService.addMenuItem(this._injector.invoke(factory), menu));
14238
- }
14239
- );
14289
+ this._menuManagerService.mergeMenu(menuSchema);
14240
14290
  }
14241
14291
  _registerCommands() {
14242
14292
  [
@@ -14274,13 +14324,13 @@ let FormulaUIController = (_a8 = class extends Disposable {
14274
14324
  }, __name(_a8, "FormulaUIController"), _a8);
14275
14325
  FormulaUIController = __decorateClass$c([
14276
14326
  OnLifecycle(LifecycleStages.Ready, FormulaUIController),
14277
- __decorateParam$c(1, Inject(Injector)),
14278
- __decorateParam$c(2, IMenuService),
14279
- __decorateParam$c(3, ICommandService),
14280
- __decorateParam$c(4, IShortcutService),
14281
- __decorateParam$c(5, IUIPartsService),
14282
- __decorateParam$c(6, IRenderManagerService),
14283
- __decorateParam$c(7, Inject(ComponentManager))
14327
+ __decorateParam$c(0, Inject(Injector)),
14328
+ __decorateParam$c(1, IMenuManagerService),
14329
+ __decorateParam$c(2, ICommandService),
14330
+ __decorateParam$c(3, IShortcutService),
14331
+ __decorateParam$c(4, IUIPartsService),
14332
+ __decorateParam$c(5, IRenderManagerService),
14333
+ __decorateParam$c(6, Inject(ComponentManager))
14284
14334
  ], FormulaUIController);
14285
14335
  var __defProp$b = Object.defineProperty, __getOwnPropDesc$b = Object.getOwnPropertyDescriptor, __decorateClass$b = /* @__PURE__ */ __name((decorators, target, key, kind) => {
14286
14336
  for (var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target, i = decorators.length - 1, decorator; i >= 0; i--)
@@ -17150,8 +17200,10 @@ var __defProp2 = Object.defineProperty, __getOwnPropDesc = Object.getOwnProperty
17150
17200
  return kind && result && __defProp2(target, key, result), result;
17151
17201
  }, "__decorateClass"), __decorateParam = /* @__PURE__ */ __name((index, decorator) => (target, key) => decorator(target, key, index), "__decorateParam"), __publicField2 = /* @__PURE__ */ __name((obj, key, value) => __defNormalProp2(obj, typeof key != "symbol" ? key + "" : key, value), "__publicField"), _a20;
17152
17202
  let UniverRemoteSheetsFormulaPlugin = (_a20 = class extends Plugin {
17153
- constructor(_config = {}, _injector) {
17154
- super(), this._config = _config, this._injector = _injector;
17203
+ constructor(_config = defaultPluginRemoteConfig, _injector, _configService) {
17204
+ super(), this._config = _config, this._injector = _injector, this._configService = _configService;
17205
+ const { ...rest } = this._config;
17206
+ this._configService.setConfig(PLUGIN_CONFIG_KEY_REMOTE, rest);
17155
17207
  }
17156
17208
  onStarting() {
17157
17209
  this._injector.add([RemoteRegisterFunctionService]), this._injector.get(IRPCChannelService).registerChannel(
@@ -17164,25 +17216,25 @@ __publicField2(UniverRemoteSheetsFormulaPlugin, "pluginName", "SHEETS_FORMULA_RE
17164
17216
  __publicField2(UniverRemoteSheetsFormulaPlugin, "type", UniverInstanceType.UNIVER_SHEET);
17165
17217
  UniverRemoteSheetsFormulaPlugin = __decorateClass([
17166
17218
  DependentOn(UniverFormulaEnginePlugin),
17167
- __decorateParam(1, Inject(Injector))
17219
+ __decorateParam(1, Inject(Injector)),
17220
+ __decorateParam(2, IConfigService)
17168
17221
  ], UniverRemoteSheetsFormulaPlugin);
17169
17222
  var _a21;
17170
17223
  let UniverSheetsFormulaPlugin = (_a21 = class extends Plugin {
17171
- constructor(_config = {}, _injector, _renderManagerService) {
17172
- super(), this._config = _config, this._injector = _injector, this._renderManagerService = _renderManagerService, this._config = Tools.deepMerge({}, DefaultSheetFormulaConfig, this._config);
17224
+ constructor(_config = defaultPluginBaseConfig, _injector, _renderManagerService, _configService) {
17225
+ super(), this._config = _config, this._injector = _injector, this._renderManagerService = _renderManagerService, this._configService = _configService;
17226
+ const { menu, ...rest } = this._config;
17227
+ menu && this._configService.setConfig("menu", menu, { merge: !0 }), this._configService.setConfig(PLUGIN_CONFIG_KEY_BASE, rest);
17173
17228
  }
17174
17229
  onStarting() {
17175
17230
  const j = this._injector, dependencies = [
17176
17231
  [IFormulaPromptService, { useClass: FormulaPromptService }],
17177
17232
  [IRefSelectionsService, { useClass: RefSelectionsService }],
17178
- [IDescriptionService, { useFactory: /* @__PURE__ */ __name(() => {
17179
- var _a23;
17180
- return j.createInstance(DescriptionService, (_a23 = this._config) == null ? void 0 : _a23.description);
17181
- }, "useFactory") }],
17233
+ [IDescriptionService, { useClass: DescriptionService }],
17182
17234
  [IRegisterFunctionService, { useClass: RegisterFunctionService }],
17183
17235
  [FormulaRefRangeService],
17184
17236
  [RegisterOtherFormulaService],
17185
- [FormulaUIController, { useFactory: /* @__PURE__ */ __name(() => j.createInstance(FormulaUIController, this._config), "useFactory") }],
17237
+ [FormulaUIController],
17186
17238
  [FormulaAutoFillController],
17187
17239
  [FormulaClipboardController],
17188
17240
  [ArrayFormulaDisplayController],
@@ -17216,12 +17268,15 @@ __publicField2(UniverSheetsFormulaPlugin, "type", UniverInstanceType.UNIVER_SHEE
17216
17268
  UniverSheetsFormulaPlugin = __decorateClass([
17217
17269
  DependentOn(UniverFormulaEnginePlugin),
17218
17270
  __decorateParam(1, Inject(Injector)),
17219
- __decorateParam(2, IRenderManagerService)
17271
+ __decorateParam(2, IRenderManagerService),
17272
+ __decorateParam(3, IConfigService)
17220
17273
  ], UniverSheetsFormulaPlugin);
17221
17274
  var _a22;
17222
17275
  let UniverSheetsFormulaMobilePlugin = (_a22 = class extends Plugin {
17223
- constructor(_config = {}, _injector) {
17224
- super(), this._config = _config, this._injector = _injector, this._config = Tools.deepMerge({}, DefaultSheetFormulaConfig, this._config);
17276
+ constructor(_config = defaultPluginMobileConfig, _injector, _configService) {
17277
+ super(), this._config = _config, this._injector = _injector, this._configService = _configService;
17278
+ const { menu, ...rest } = this._config;
17279
+ menu && this._configService.setConfig("menu", menu, { merge: !0 }), this._configService.setConfig(PLUGIN_CONFIG_KEY_MOBILE, rest);
17225
17280
  }
17226
17281
  onStarting() {
17227
17282
  this._init();
@@ -17230,15 +17285,7 @@ let UniverSheetsFormulaMobilePlugin = (_a22 = class extends Plugin {
17230
17285
  [
17231
17286
  // services
17232
17287
  [IFormulaPromptService, { useClass: FormulaPromptService }],
17233
- [
17234
- IDescriptionService,
17235
- {
17236
- useFactory: /* @__PURE__ */ __name(() => {
17237
- var _a23;
17238
- return this._injector.createInstance(DescriptionService, (_a23 = this._config) == null ? void 0 : _a23.description);
17239
- }, "useFactory")
17240
- }
17241
- ],
17288
+ [IDescriptionService, { useClass: DescriptionService }],
17242
17289
  [IRegisterFunctionService, { useClass: RegisterFunctionService }],
17243
17290
  [FormulaRefRangeService],
17244
17291
  [RegisterOtherFormulaService],
@@ -17253,7 +17300,8 @@ let UniverSheetsFormulaMobilePlugin = (_a22 = class extends Plugin {
17253
17300
  }
17254
17301
  }, __name(_a22, "UniverSheetsFormulaMobilePlugin"), __publicField(_a22, "pluginName", FORMULA_UI_PLUGIN_NAME), __publicField(_a22, "type", UniverInstanceType.UNIVER_SHEET), _a22);
17255
17302
  UniverSheetsFormulaMobilePlugin = __decorateClass([
17256
- __decorateParam(1, Inject(Injector))
17303
+ __decorateParam(1, Inject(Injector)),
17304
+ __decorateParam(2, IConfigService)
17257
17305
  ], UniverSheetsFormulaMobilePlugin);
17258
17306
  export {
17259
17307
  DescriptionService,