@univerjs/sheets-formula-ui 0.4.2 → 0.5.0-alpha.0

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 (88) hide show
  1. package/lib/cjs/index.js +9 -7
  2. package/lib/cjs/locale/en-US.js +40 -0
  3. package/lib/cjs/locale/fa-IR.js +40 -0
  4. package/lib/cjs/locale/ru-RU.js +40 -0
  5. package/lib/cjs/locale/vi-VN.js +37 -0
  6. package/lib/cjs/locale/zh-CN.js +38 -0
  7. package/lib/cjs/locale/zh-TW.js +38 -0
  8. package/lib/es/index.js +3317 -2424
  9. package/lib/es/locale/en-US.js +7684 -0
  10. package/lib/es/locale/fa-IR.js +7684 -0
  11. package/lib/es/locale/ru-RU.js +7683 -0
  12. package/lib/es/locale/vi-VN.js +7467 -0
  13. package/lib/es/locale/zh-CN.js +7661 -0
  14. package/lib/es/locale/zh-TW.js +7661 -0
  15. package/lib/index.css +1 -1
  16. package/lib/types/controllers/config.schema.d.ts +1 -1
  17. package/lib/types/controllers/formula-editor-show.controller.d.ts +4 -3
  18. package/lib/types/index.d.ts +1 -0
  19. package/lib/types/locale/en-US.d.ts +344 -156
  20. package/lib/types/locale/fa-IR.d.ts +344 -156
  21. package/lib/types/locale/function-list/compatibility/en-US.d.ts +106 -30
  22. package/lib/types/locale/function-list/compatibility/ja-JP.d.ts +106 -30
  23. package/lib/types/locale/function-list/compatibility/vi-VN.d.ts +106 -30
  24. package/lib/types/locale/function-list/compatibility/zh-CN.d.ts +106 -30
  25. package/lib/types/locale/function-list/compatibility/zh-TW.d.ts +106 -30
  26. package/lib/types/locale/function-list/lookup/en-US.d.ts +1 -5
  27. package/lib/types/locale/function-list/lookup/ja-JP.d.ts +1 -5
  28. package/lib/types/locale/function-list/lookup/vi-VN.d.ts +14 -0
  29. package/lib/types/locale/function-list/lookup/zh-CN.d.ts +1 -5
  30. package/lib/types/locale/function-list/lookup/zh-TW.d.ts +1 -5
  31. package/lib/types/locale/function-list/statistical/en-US.d.ts +173 -93
  32. package/lib/types/locale/function-list/statistical/ja-JP.d.ts +173 -93
  33. package/lib/types/locale/function-list/statistical/vi-VN.d.ts +983 -57
  34. package/lib/types/locale/function-list/statistical/zh-CN.d.ts +173 -93
  35. package/lib/types/locale/function-list/statistical/zh-TW.d.ts +173 -93
  36. package/lib/types/locale/function-list/text/en-US.d.ts +64 -28
  37. package/lib/types/locale/function-list/text/ja-JP.d.ts +64 -28
  38. package/lib/types/locale/function-list/text/ru-RU.d.ts +220 -106
  39. package/lib/types/locale/function-list/text/vi-VN.d.ts +124 -14
  40. package/lib/types/locale/function-list/text/zh-CN.d.ts +64 -28
  41. package/lib/types/locale/function-list/text/zh-TW.d.ts +64 -28
  42. package/lib/types/locale/ru-RU.d.ts +500 -234
  43. package/lib/types/locale/vi-VN.d.ts +1231 -105
  44. package/lib/types/locale/zh-CN.d.ts +344 -156
  45. package/lib/types/locale/zh-TW.d.ts +344 -156
  46. package/lib/types/sheets-formula-ui.plugin.d.ts +0 -1
  47. package/lib/types/views/formula-editor/help-function/HelpFunction.d.ts +11 -0
  48. package/lib/types/views/formula-editor/hooks/useFormulaDescribe.d.ts +7 -0
  49. package/lib/types/views/formula-editor/hooks/useFormulaSearch.d.ts +12 -0
  50. package/lib/types/views/formula-editor/hooks/useResizeScrollObserver.d.ts +18 -0
  51. package/lib/types/views/formula-editor/hooks/useSelectionAdd.d.ts +19 -0
  52. package/lib/types/views/formula-editor/hooks/useSheetSelectionChange.d.ts +3 -0
  53. package/lib/types/views/formula-editor/hooks/useStateRef.d.ts +18 -0
  54. package/lib/types/views/formula-editor/hooks/useVerify.d.ts +2 -0
  55. package/lib/types/views/formula-editor/index.d.ts +17 -0
  56. package/lib/types/views/formula-editor/search-function/SearchFunction.d.ts +12 -0
  57. package/lib/types/{controllers/utils/__tests__/ref-range-formula.spec.d.ts → views/formula-editor/utils/getFormulaText.d.ts} +1 -1
  58. package/lib/types/views/range-selector/hooks/useEmitChange.d.ts +3 -0
  59. package/lib/types/views/range-selector/hooks/useFirstHighlightDoc.d.ts +3 -0
  60. package/lib/types/views/range-selector/hooks/useFocus.d.ts +2 -0
  61. package/lib/types/views/range-selector/hooks/useFormulaToken.d.ts +2 -4
  62. package/lib/types/views/range-selector/hooks/useHighlight.d.ts +4 -2
  63. package/lib/types/views/range-selector/hooks/useLeftAndRightArrow.d.ts +2 -0
  64. package/lib/types/views/range-selector/hooks/useOnlyOneRange.d.ts +16 -0
  65. package/lib/types/views/range-selector/hooks/useRefactorEffect.d.ts +1 -1
  66. package/lib/types/{controllers/utils/__tests__/offset-formula-data.spec.d.ts → views/range-selector/hooks/useRefocus.d.ts} +1 -1
  67. package/lib/types/views/range-selector/hooks/useResetSelection.d.ts +16 -0
  68. package/lib/types/views/range-selector/hooks/useSheetSelectionChange.d.ts +1 -1
  69. package/lib/types/views/range-selector/hooks/useSwitchSheet.d.ts +16 -0
  70. package/lib/types/views/range-selector/hooks/useVerify.d.ts +2 -2
  71. package/lib/types/views/range-selector/index.d.ts +1 -5
  72. package/lib/types/views/range-selector/utils/unitRangesToText.d.ts +1 -1
  73. package/lib/umd/index.js +9 -7
  74. package/lib/umd/locale/en-US.js +40 -0
  75. package/lib/umd/locale/fa-IR.js +40 -0
  76. package/lib/umd/locale/ru-RU.js +40 -0
  77. package/lib/umd/locale/vi-VN.js +37 -0
  78. package/lib/umd/locale/zh-CN.js +38 -0
  79. package/lib/umd/locale/zh-TW.js +38 -0
  80. package/package.json +35 -27
  81. package/lib/locale/en-US.json +0 -11054
  82. package/lib/locale/fa-IR.json +0 -11054
  83. package/lib/locale/ru-RU.json +0 -10969
  84. package/lib/locale/vi-VN.json +0 -9678
  85. package/lib/locale/zh-CN.json +0 -11054
  86. package/lib/locale/zh-TW.json +0 -11054
  87. package/lib/types/controllers/utils/offset-formula-data.d.ts +0 -15
  88. package/lib/types/controllers/utils/ref-range-formula.d.ts +0 -71
package/lib/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value;var __name=(target,value)=>__defProp(target,"name",{value,configurable:!0});var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!="symbol"?key+"":key,value);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const core=require("@univerjs/core"),sheetsUi=require("@univerjs/sheets-ui"),engineFormula=require("@univerjs/engine-formula"),rxjs=require("rxjs"),docsUi=require("@univerjs/docs-ui"),sheets=require("@univerjs/sheets"),sheetsFormula=require("@univerjs/sheets-formula"),ui=require("@univerjs/ui"),require$$0=require("react"),design=require("@univerjs/design"),engineRender=require("@univerjs/engine-render"),docs=require("@univerjs/docs"),operators=require("rxjs/operators"),SheetOnlyPasteFormulaCommand={id:"sheet.command.paste-formula",type:core.CommandType.COMMAND,handler:__name(async accessor=>accessor.get(core.ICommandService).executeCommand(sheetsUi.SheetPasteCommand.id,{value:sheetsUi.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA}),"handler")},SelectEditorFormulaOperation={id:"formula-ui.operation.select-editor-formula",type:core.CommandType.OPERATION,handler:__name((accessor,params)=>!0,"handler")};var __defProp$9=Object.defineProperty,__getOwnPropDesc$9=Object.getOwnPropertyDescriptor,__decorateClass$9=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$9(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$9(target,key,result),result},"__decorateClass$9"),__decorateParam$9=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$9");const FORMULA_PROMPT_ACTIVATED="FORMULA_PROMPT_ACTIVATED",IFormulaPromptService=core.createIdentifier("formula-ui.prompt-service");var _a;let FormulaPromptService=(_a=class{constructor(_contextService){__publicField(this,"_search$",new rxjs.Subject);__publicField(this,"_help$",new rxjs.Subject);__publicField(this,"_navigate$",new rxjs.Subject);__publicField(this,"_accept$",new rxjs.Subject);__publicField(this,"_acceptFormulaName$",new rxjs.Subject);__publicField(this,"search$",this._search$.asObservable());__publicField(this,"help$",this._help$.asObservable());__publicField(this,"navigate$",this._navigate$.asObservable());__publicField(this,"accept$",this._accept$.asObservable());__publicField(this,"acceptFormulaName$",this._acceptFormulaName$.asObservable());__publicField(this,"_searching",!1);__publicField(this,"_helping",!1);__publicField(this,"_sequenceNodes",[]);__publicField(this,"_isLockedOnSelectionChangeRefString",!1);__publicField(this,"_isLockedOnSelectionInsertRefString",!1);this._contextService=_contextService}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(param){this._contextService.setContextValue(FORMULA_PROMPT_ACTIVATED,param.visible),this._searching=param.visible,this._search$.next(param)}isSearching(){return this._searching}help(param){this._helping=param.visible,this._help$.next(param)}isHelping(){return this._helping}navigate(param){this._navigate$.next(param)}accept(param){this._accept$.next(param)}acceptFormulaName(param){this._acceptFormulaName$.next(param)}getSequenceNodes(){return[...this._sequenceNodes]}setSequenceNodes(nodes){this._sequenceNodes=nodes}clearSequenceNodes(){this._sequenceNodes=[]}getCurrentSequenceNode(strIndex){return this._sequenceNodes[this.getCurrentSequenceNodeIndex(strIndex)]}getCurrentSequenceNodeByIndex(nodeIndex){return this._sequenceNodes[nodeIndex]}getCurrentSequenceNodeIndex(strIndex){let nodeIndex=0;const firstNode=this._sequenceNodes[0];for(let i=0,len=this._sequenceNodes.length;i<len;i++){const node=this._sequenceNodes[i];if(typeof node=="string")nodeIndex++;else{const{endIndex}=node;nodeIndex=endIndex}if(strIndex<=nodeIndex)return typeof firstNode=="string"&&strIndex!==0?i+1:i}return this._sequenceNodes.length}updateSequenceRef(nodeIndex,refString){const node=this._sequenceNodes[nodeIndex];if(typeof node=="string"||node.nodeType!==engineFormula.sequenceNodeType.REFERENCE)return;const difference=refString.length-node.token.length,newNode={...node};newNode.token=refString,newNode.endIndex+=difference,this._sequenceNodes[nodeIndex]=newNode;for(let i=nodeIndex+1,len=this._sequenceNodes.length;i<len;i++){const node2=this._sequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=difference,newNode2.endIndex+=difference,this._sequenceNodes[i]=newNode2}}insertSequenceRef(index,refString){const refStringCount=refString.length,nodeIndex=this.getCurrentSequenceNodeIndex(index);this._sequenceNodes.splice(nodeIndex,0,{token:refString,startIndex:index,endIndex:index+refStringCount-1,nodeType:engineFormula.sequenceNodeType.REFERENCE});for(let i=nodeIndex+1,len=this._sequenceNodes.length;i<len;i++){const node=this._sequenceNodes[i];if(typeof node=="string")continue;const newNode={...node};newNode.startIndex+=refStringCount,newNode.endIndex+=refStringCount,this._sequenceNodes[i]=newNode}}insertSequenceString(index,content){const nodeIndex=this.getCurrentSequenceNodeIndex(index),str=content.split("");this._sequenceNodes.splice(nodeIndex,0,...str);const contentCount=str.length;for(let i=nodeIndex+contentCount,len=this._sequenceNodes.length;i<len;i++){const node=this._sequenceNodes[i];if(typeof node=="string")continue;const newNode={...node};newNode.startIndex+=contentCount,newNode.endIndex+=contentCount,this._sequenceNodes[i]=newNode}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}},__name(_a,"FormulaPromptService"),_a);FormulaPromptService=__decorateClass$9([__decorateParam$9(0,core.IContextService)],FormulaPromptService);const HelpFunctionOperation={id:"formula-ui.operation.help-function",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>(accessor.get(IFormulaPromptService).help(params),!0),"handler")},InsertFunctionOperation={id:"formula-ui.operation.insert-function",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>{var _a11,_b;const selectionManagerService=accessor.get(sheets.SheetsSelectionsService),editorService=accessor.get(docsUi.IEditorService),currentSelections=selectionManagerService.getCurrentSelections();if(!currentSelections||!currentSelections.length)return!1;const target=sheets.getSheetCommandTarget(accessor.get(core.IUniverInstanceService));if(!target)return!1;const{worksheet,unitId,subUnitId}=target,cellMatrix=worksheet.getCellMatrix(),{value}=params,commandService=accessor.get(core.ICommandService),list=[];let editRange=null,editRow=0,editColumn=0,editFormulaRangeString="";if(currentSelections.length===1&&(isSingleCell(currentSelections[0].range)||isMultiRowsColumnsRange(currentSelections[0].range))){const{range,primary}=currentSelections[0],row=(_a11=primary==null?void 0:primary.actualRow)!=null?_a11:range.startRow,column=(_b=primary==null?void 0:primary.actualColumn)!=null?_b:range.startColumn;editRange=range,editRow=row,editColumn=column;const refRange=findRefRange(cellMatrix,row,column);refRange&&(editFormulaRangeString=engineFormula.serializeRange(refRange))}else currentSelections.some(selection=>{var _a12,_b2;const{range,primary}=selection,row=(_a12=primary==null?void 0:primary.actualRow)!=null?_a12:range.startRow,column=(_b2=primary==null?void 0:primary.actualColumn)!=null?_b2:range.startColumn,refRange=findRefRange(cellMatrix,row,column);if(!refRange)return editRange=range,editRow=row,editColumn=column,!0;const rangeString=engineFormula.serializeRange(refRange),formulaString=`=${value}(${rangeString})`;return list.push({range,primary:{row,column},formula:formulaString}),!1});if(editRange){const destRange=sheets.getCellAtRowCol(editRow,editColumn,worksheet),resultRange={range:core.Rectangle.clone(editRange),primary:{startRow:destRange.startRow,startColumn:destRange.startColumn,endRow:destRange.endRow,endColumn:destRange.endColumn,actualRow:editRow,actualColumn:editColumn,isMerged:destRange.isMerged,isMergedMainCell:destRange.startRow===editRow&&destRange.startColumn===editColumn}},setSelectionParams={unitId,subUnitId,selections:[resultRange]};await commandService.executeCommand(sheets.SetSelectionsOperation.id,setSelectionParams),setTimeout(()=>{editorService.setFormula(`=${value}(${editFormulaRangeString}`)},0)}return list.length===0?!1:commandService.executeCommand(sheetsFormula.InsertFunctionCommand.id,{list})},"handler")};function findRefRange(cellMatrix,row,column){const startRow=findStartRow(cellMatrix,row,column);if(startRow!==row)return{startRow,endRow:row-1,startColumn:column,endColumn:column};const startColumn=findStartColumn(cellMatrix,row,column);return startColumn!==column?{startRow:row,endRow:row,startColumn,endColumn:column-1}:null}__name(findRefRange,"findRefRange");function findStartRow(cellMatrix,row,column){let isFirstNumber=!1;if(row===0)return row;for(let r2=row-1;r2>=0;r2--){const cell=cellMatrix.getValue(r2,column);if(isNumberCell(cell)&&!isFirstNumber){if(r2===0)return 0;isFirstNumber=!0}else{if(isFirstNumber&&!isNumberCell(cell))return r2+1;if(isFirstNumber&&r2===0)return 0}}return row}__name(findStartRow,"findStartRow");function findStartColumn(cellMatrix,row,column){let isFirstNumber=!1;if(column===0)return column;for(let c=column-1;c>=0;c--){const cell=cellMatrix.getValue(row,c);if(isNumberCell(cell)&&!isFirstNumber){if(c===0)return 0;isFirstNumber=!0}else{if(isFirstNumber&&!isNumberCell(cell))return c+1;if(isFirstNumber&&c===0)return 0}}return column}__name(findStartColumn,"findStartColumn");function isNumberCell(cell){if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return!1;const data=body.dataStream,newDataStream=data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data;return core.isRealNum(newDataStream)}return cell&&(cell.t===core.CellValueType.NUMBER||core.getCellValueType(cell)===core.CellValueType.NUMBER)}__name(isNumberCell,"isNumberCell");function isSingleCell(range){return range.startRow===range.endRow&&range.startColumn===range.endColumn}__name(isSingleCell,"isSingleCell");function isMultiRowsColumnsRange(range){return range.startRow!==range.endRow&&range.startColumn!==range.endColumn}__name(isMultiRowsColumnsRange,"isMultiRowsColumnsRange");const FORMULA_UI_PLUGIN_NAME="SHEET_FORMULA_UI_PLUGIN",MORE_FUNCTIONS_COMPONENT=`${FORMULA_UI_PLUGIN_NAME}_MORE_FUNCTIONS_COMPONENT`,MoreFunctionsOperation={id:"formula-ui.operation.more-functions",type:core.CommandType.OPERATION,handler:__name(async accessor=>(accessor.get(ui.ISidebarService).open({header:{title:"formula.insert.tooltip"},children:{label:MORE_FUNCTIONS_COMPONENT}}),!0),"handler")},ReferenceAbsoluteOperation={id:"formula-ui.operation.change-ref-to-absolute",type:core.CommandType.OPERATION,handler:__name(async accessor=>!0,"handler")},SearchFunctionOperation={id:"formula-ui.operation.search-function",type:core.CommandType.OPERATION,handler:__name(async(accessor,params)=>(accessor.get(IFormulaPromptService).search(params),!0),"handler")};var jsxRuntime={exports:{}},reactJsxRuntime_production_min={};/**
1
+ "use strict";var dn=Object.defineProperty;var fn=(r,e,t)=>e in r?dn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var W=(r,e,t)=>fn(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),P=require("@univerjs/sheets-ui"),R=require("@univerjs/engine-formula"),V=require("rxjs"),J=require("@univerjs/docs-ui"),$=require("@univerjs/sheets"),ge=require("@univerjs/sheets-formula"),F=require("@univerjs/ui"),g=require("react"),oe=require("@univerjs/design"),K=require("@univerjs/engine-render"),$e=require("@univerjs/docs"),Ue=require("rxjs/operators"),Ze={id:"sheet.command.paste-formula",type:c.CommandType.COMMAND,handler:async r=>r.get(c.ICommandService).executeCommand(P.SheetPasteCommand.id,{value:P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA})},Ie={id:"formula-ui.operation.select-editor-formula",type:c.CommandType.OPERATION,handler:(r,e)=>!0};var hn=Object.defineProperty,mn=Object.getOwnPropertyDescriptor,Sn=(r,e,t,n)=>{for(var o=n>1?void 0:n?mn(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&hn(e,t,o),o},gn=(r,e)=>(t,n)=>e(t,n,r);const Mt="FORMULA_PROMPT_ACTIVATED",xe=c.createIdentifier("formula-ui.prompt-service");let dt=class{constructor(r){W(this,"_search$",new V.Subject);W(this,"_help$",new V.Subject);W(this,"_navigate$",new V.Subject);W(this,"_accept$",new V.Subject);W(this,"_acceptFormulaName$",new V.Subject);W(this,"search$",this._search$.asObservable());W(this,"help$",this._help$.asObservable());W(this,"navigate$",this._navigate$.asObservable());W(this,"accept$",this._accept$.asObservable());W(this,"acceptFormulaName$",this._acceptFormulaName$.asObservable());W(this,"_searching",!1);W(this,"_helping",!1);W(this,"_sequenceNodes",[]);W(this,"_isLockedOnSelectionChangeRefString",!1);W(this,"_isLockedOnSelectionInsertRefString",!1);this._contextService=r}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(r){this._contextService.setContextValue(Mt,r.visible),this._searching=r.visible,this._search$.next(r)}isSearching(){return this._searching}help(r){this._helping=r.visible,this._help$.next(r)}isHelping(){return this._helping}navigate(r){this._navigate$.next(r)}accept(r){this._accept$.next(r)}acceptFormulaName(r){this._acceptFormulaName$.next(r)}getSequenceNodes(){return[...this._sequenceNodes]}setSequenceNodes(r){this._sequenceNodes=r}clearSequenceNodes(){this._sequenceNodes=[]}getCurrentSequenceNode(r){return this._sequenceNodes[this.getCurrentSequenceNodeIndex(r)]}getCurrentSequenceNodeByIndex(r){return this._sequenceNodes[r]}getCurrentSequenceNodeIndex(r){let e=0;const t=this._sequenceNodes[0];for(let n=0,o=this._sequenceNodes.length;n<o;n++){const s=this._sequenceNodes[n];if(typeof s=="string")e++;else{const{endIndex:i}=s;e=i}if(r<=e)return typeof t=="string"&&r!==0?n+1:n}return this._sequenceNodes.length}updateSequenceRef(r,e){const t=this._sequenceNodes[r];if(typeof t=="string"||t.nodeType!==R.sequenceNodeType.REFERENCE)return;const n=e.length-t.token.length,o={...t};o.token=e,o.endIndex+=n,this._sequenceNodes[r]=o;for(let s=r+1,i=this._sequenceNodes.length;s<i;s++){const a=this._sequenceNodes[s];if(typeof a=="string")continue;const l={...a};l.startIndex+=n,l.endIndex+=n,this._sequenceNodes[s]=l}}insertSequenceRef(r,e){const t=e.length,n=this.getCurrentSequenceNodeIndex(r);this._sequenceNodes.splice(n,0,{token:e,startIndex:r,endIndex:r+t-1,nodeType:R.sequenceNodeType.REFERENCE});for(let o=n+1,s=this._sequenceNodes.length;o<s;o++){const i=this._sequenceNodes[o];if(typeof i=="string")continue;const a={...i};a.startIndex+=t,a.endIndex+=t,this._sequenceNodes[o]=a}}insertSequenceString(r,e){const t=this.getCurrentSequenceNodeIndex(r),n=e.split("");this._sequenceNodes.splice(t,0,...n);const o=n.length;for(let s=t+o,i=this._sequenceNodes.length;s<i;s++){const a=this._sequenceNodes[s];if(typeof a=="string")continue;const l={...a};l.startIndex+=o,l.endIndex+=o,this._sequenceNodes[s]=l}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};dt=Sn([gn(0,c.IContextService)],dt);const je={id:"formula-ui.operation.help-function",type:c.CommandType.OPERATION,handler:async(r,e)=>(r.get(xe).help(e),!0)},Xe={id:"formula-ui.operation.insert-function",type:c.CommandType.OPERATION,handler:async(r,e)=>{var _,C;const t=r.get($.SheetsSelectionsService),n=r.get(J.IEditorService),o=t.getCurrentSelections();if(!o||!o.length)return!1;const s=$.getSheetCommandTarget(r.get(c.IUniverInstanceService));if(!s)return!1;const{worksheet:i,unitId:a,subUnitId:l}=s,d=i.getCellMatrix(),{value:h}=e,f=r.get(c.ICommandService),u=[];let p=null,S=0,I=0,m="";if(o.length===1&&(_n(o[0].range)||Cn(o[0].range))){const{range:y,primary:E}=o[0],x=(_=E==null?void 0:E.actualRow)!=null?_:y.startRow,b=(C=E==null?void 0:E.actualColumn)!=null?C:y.startColumn;p=y,S=x,I=b;const T=It(d,x,b);T&&(m=R.serializeRange(T))}else o.some(y=>{var D,U;const{range:E,primary:x}=y,b=(D=x==null?void 0:x.actualRow)!=null?D:E.startRow,T=(U=x==null?void 0:x.actualColumn)!=null?U:E.startColumn,O=It(d,b,T);if(!O)return p=E,S=b,I=T,!0;const N=R.serializeRange(O),L=`=${h}(${N})`;return u.push({range:E,primary:{row:b,column:T},formula:L}),!1});if(p){const y=$.getCellAtRowCol(S,I,i),E={range:c.Rectangle.clone(p),primary:{startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn,actualRow:S,actualColumn:I,isMerged:y.isMerged,isMergedMainCell:y.startRow===S&&y.startColumn===I}},x={unitId:a,subUnitId:l,selections:[E]};await f.executeCommand($.SetSelectionsOperation.id,x),setTimeout(()=>{n.setFormula(`=${h}(${m}`)},0)}return u.length===0?!1:f.executeCommand(ge.InsertFunctionCommand.id,{list:u})}};function It(r,e,t){const n=pn(r,e,t);if(n!==e)return{startRow:n,endRow:e-1,startColumn:t,endColumn:t};const o=vn(r,e,t);return o!==t?{startRow:e,endRow:e,startColumn:o,endColumn:t-1}:null}function pn(r,e,t){let n=!1;if(e===0)return e;for(let o=e-1;o>=0;o--){const s=r.getValue(o,t);if(He(s)&&!n){if(o===0)return 0;n=!0}else{if(n&&!He(s))return o+1;if(n&&o===0)return 0}}return e}function vn(r,e,t){let n=!1;if(t===0)return t;for(let o=t-1;o>=0;o--){const s=r.getValue(e,o);if(He(s)&&!n){if(o===0)return 0;n=!0}else{if(n&&!He(s))return o+1;if(n&&o===0)return 0}}return t}function He(r){if(r!=null&&r.p){const e=r==null?void 0:r.p.body;if(e==null)return!1;const t=e.dataStream,o=t.substring(t.length-2,t.length)===c.DEFAULT_EMPTY_DOCUMENT_VALUE?t.substring(0,t.length-2):t;return c.isRealNum(o)}return r&&(r.t===c.CellValueType.NUMBER||c.getCellValueType(r)===c.CellValueType.NUMBER)}function _n(r){return r.startRow===r.endRow&&r.startColumn===r.endColumn}function Cn(r){return r.startRow!==r.endRow&&r.startColumn!==r.endColumn}const Ot="SHEET_FORMULA_UI_PLUGIN",At=`${Ot}_MORE_FUNCTIONS_COMPONENT`,Qe={id:"formula-ui.operation.more-functions",type:c.CommandType.OPERATION,handler:async r=>(r.get(F.ISidebarService).open({header:{title:"formula.insert.tooltip"},children:{label:At}}),!0)},Je={id:"formula-ui.operation.change-ref-to-absolute",type:c.CommandType.OPERATION,handler:async r=>!0},We={id:"formula-ui.operation.search-function",type:c.CommandType.OPERATION,handler:async(r,e)=>(r.get(xe).search(e),!0)};var Dt={exports:{}},et={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,9 +6,11 @@
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
- */var f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q");reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a11){var key=_a11[0],value=_a11[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a11,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a11=node.children)===null||_a11===void 0)&&_a11.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$6={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$6}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$5={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$5}))});CloseSingle.displayName="CloseSingle";var element$4={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DeleteSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"delete-single",ref,icon:element$4}))});DeleteSingle.displayName="DeleteSingle";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DetailsSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"details-single",ref,icon:element$3}))});DetailsSingle.displayName="DetailsSingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},IncreaseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"increase-single",ref,icon:element$2}))});IncreaseSingle.displayName="IncreaseSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element$1}))});MoreSingle.displayName="MoreSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6185 12.4423C12.5907 12.2749 12.7773 12.15 12.9343 12.2308L15.4242 13.5126C15.6102 13.6084 15.5544 13.8745 15.3439 13.8955L14.2456 14.184L13.4521 15.1286C13.3495 15.2939 13.085 15.2463 13.0534 15.0568L12.6185 12.4423Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1 3.6C1 2.16406 2.16406 1 3.6 1H12.3C13.7359 1 14.9 2.16406 14.9 3.6V5.81156C14.9003 5.81881 14.9004 5.82609 14.9004 5.8334C14.9004 5.84071 14.9003 5.84799 14.9 5.85524V10.045C14.9003 10.0522 14.9004 10.0595 14.9004 10.0668C14.9004 10.3982 14.6318 10.6668 14.3004 10.6668H11.1668C10.8907 10.6668 10.6668 10.8907 10.6668 11.1668V14.3C10.6668 14.6314 10.3982 14.9 10.0668 14.9L10.05 14.8998L3.6 14.9C2.16406 14.9 1 13.7359 1 12.3V3.6ZM13.2 5.2334C13.4761 5.2334 13.7 5.00954 13.7 4.7334V3.6C13.7 2.8268 13.0732 2.2 12.3 2.2H11.1668C10.8907 2.2 10.6668 2.42386 10.6668 2.7V4.7334C10.6668 5.00954 10.8907 5.2334 11.1668 5.2334H13.2ZM10.6668 6.9334C10.6668 6.65726 10.8907 6.4334 11.1668 6.4334H13.2C13.4761 6.4334 13.7 6.65726 13.7 6.9334V8.9668C13.7 9.24294 13.4761 9.4668 13.2 9.4668H11.1668C10.8907 9.4668 10.6668 9.24294 10.6668 8.9668V6.9334ZM8.9668 5.2334C9.24294 5.2334 9.4668 5.00954 9.4668 4.7334V2.7C9.4668 2.42386 9.24294 2.2 8.9668 2.2H6.9334C6.65726 2.2 6.4334 2.42386 6.4334 2.7V4.7334C6.4334 5.00954 6.65726 5.2334 6.9334 5.2334L8.9668 5.2334ZM6.4334 6.9334C6.4334 6.65726 6.65726 6.4334 6.9334 6.4334L8.9668 6.4334C9.24294 6.4334 9.4668 6.65726 9.4668 6.9334V8.9668C9.4668 9.24294 9.24294 9.4668 8.9668 9.4668L6.9334 9.4668C6.65726 9.4668 6.4334 9.24294 6.4334 8.9668V6.9334ZM4.7334 5.2334C5.00954 5.2334 5.2334 5.00954 5.2334 4.7334V2.7C5.2334 2.42386 5.00954 2.2 4.7334 2.2H3.6C2.8268 2.2 2.2 2.8268 2.2 3.6V4.7334C2.2 5.00954 2.42386 5.2334 2.7 5.2334H4.7334ZM2.2 6.9334C2.2 6.65726 2.42386 6.4334 2.7 6.4334H4.7334C5.00954 6.4334 5.2334 6.65725 5.2334 6.9334V8.9668C5.2334 9.24294 5.00954 9.4668 4.7334 9.4668H2.7C2.42386 9.4668 2.2 9.24294 2.2 8.9668V6.9334ZM5.2334 11.1668C5.2334 10.8907 5.00954 10.6668 4.7334 10.6668H2.7C2.42386 10.6668 2.2 10.8907 2.2 11.1668V12.3C2.2 13.0732 2.8268 13.7 3.6 13.7H4.7334C5.00954 13.7 5.2334 13.4761 5.2334 13.2V11.1668ZM9.4668 11.1668C9.4668 10.8907 9.24294 10.6668 8.9668 10.6668H6.9334C6.65726 10.6668 6.4334 10.8907 6.4334 11.1668V13.2C6.4334 13.4761 6.65726 13.7 6.9334 13.7H8.9668C9.24294 13.7 9.4668 13.4761 9.4668 13.2V11.1668Z",fillRule:"evenodd",clipRule:"evenodd"}}]},SelectRangeSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"select-range-single",ref,icon:element}))});SelectRangeSingle.displayName="SelectRangeSingle";function r(e){var t,f2,n2="";if(typeof e=="string"||typeof e=="number")n2+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f2=r(e[t]))&&(n2&&(n2+=" "),n2+=f2)}else for(f2 in e)e[f2]&&(n2&&(n2+=" "),n2+=f2);return n2}__name(r,"r");function clsx(){for(var e,t,f2=0,n2="",o=arguments.length;f2<o;f2++)(e=arguments[f2])&&(t=r(e))&&(n2&&(n2+=" "),n2+=t);return n2}__name(clsx,"clsx");var __defProp$8=Object.defineProperty,__getOwnPropDesc$8=Object.getOwnPropertyDescriptor,__decorateClass$8=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$8(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$8(target,key,result),result},"__decorateClass$8"),__decorateParam$8=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$8"),_a2;exports.RefSelectionsRenderService=(_a2=class extends sheetsUi.BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,sheetSkeletonManagerService,_refSelectionsService){super(injector,themeService,shortcutService,sheetSkeletonManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_eventDisposables");this._context=_context,this._refSelectionsService=_refSelectionsService,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(getDefaultRefSelectionStyle(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(enabled){this._remainLastEnabled=enabled}setSkipLastEnabled(enabled){this._skipLastEnabled=enabled}clearLastSelection(){const last=this._selectionControls[this._selectionControls.length-1];last&&(last.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),core.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var _a11;(_a11=this._eventDisposables)==null||_a11.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const sheetObject=this._getSheetObject(),{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context,listenerDisposables=new core.DisposableCollection;return listenerDisposables.add(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation()})),listenerDisposables.add(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=sheetsUi.getAllSelection(skeleton),selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const dispose=scene.onPointerUp$.subscribeEvent(()=>{dispose.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});evt.button!==2&&state.stopPropagation()})),listenerDisposables}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_END)}))}_updateSelections(selectionDataWithStyleList,type){const sheetId=this._context.unit.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._workbookSelections.setSelections(sheetId,selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle)),type)}_initSelectionChangeListener(){this.disposeWithMe(rxjs.merge(this._workbookSelections.selectionMoveEnd$,this._workbookSelections.selectionSet$).subscribe(selectionsWithStyles=>{this._reset();for(const selectionWithStyle of selectionsWithStyles){const selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return;const{skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==skeleton.worksheet.getSheetId()&&this._reset(),this._changeRuntime(skeleton,scene,viewportMain);const currentSelections=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(currentSelections||[])}))}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>sheetsUi.attachSelectionWithCoord(selectionWithStyle,this._skeleton));this.updateControlForCurrentByRangeData(selections)}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return sheetsUi.getSheetObject(this._context.unit,this._context)}},__name(_a2,"RefSelectionsRenderService"),_a2);exports.RefSelectionsRenderService=__decorateClass$8([__decorateParam$8(1,core.Inject(core.Injector)),__decorateParam$8(2,core.Inject(core.ThemeService)),__decorateParam$8(3,ui.IShortcutService),__decorateParam$8(4,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$8(5,sheets.IRefSelectionsService)],exports.RefSelectionsRenderService);function getDefaultRefSelectionStyle(themeService){const style=sheets.getNormalSelectionStyle(themeService);return style.hasAutoFill=!1,style.hasRowHeader=!1,style.hasColumnHeader=!1,style.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},style}__name(getDefaultRefSelectionStyle,"getDefaultRefSelectionStyle");const useEditorInput=__name((unitId,rangeString,editor)=>{const render2=core.useDependency(engineRender.IRenderManagerService).getRenderById(unitId),refSelectionsRenderService=render2==null?void 0:render2.with(exports.RefSelectionsRenderService);require$$0.useEffect(()=>{if(editor&&refSelectionsRenderService){const d=editor.input$.subscribe(e=>{e.content===engineFormula.matchToken.COMMA?refSelectionsRenderService.setSkipLastEnabled(!0):refSelectionsRenderService.setSkipLastEnabled(!1)});return()=>{d.unsubscribe()}}},[editor,refSelectionsRenderService]),require$$0.useEffect(()=>{refSelectionsRenderService&&(rangeString.endsWith(engineFormula.matchToken.COMMA)||refSelectionsRenderService.setSkipLastEnabled(!1))},[rangeString,refSelectionsRenderService])},"useEditorInput"),useFormulaToken=__name(text=>{const lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder),[sequenceNodes,sequenceNodesSet]=require$$0.useState([]);return require$$0.useEffect(()=>{var _a11;sequenceNodesSet((_a11=lexerTreeBuilder.sequenceNodesBuilder(text))!=null?_a11:[])},[text]),{sequenceNodes,sequenceNodesSet}},"useFormulaToken");function useSheetHighlight(isNeed,unitId,subUnitId,refSelections){const univerInstanceService=core.useDependency(core.IUniverInstanceService),themeService=core.useDependency(core.ThemeService),refSelectionsService=core.useDependency(sheets.IRefSelectionsService),render2=core.useDependency(engineRender.IRenderManagerService).getRenderById(unitId),refSelectionsRenderService=render2==null?void 0:render2.with(exports.RefSelectionsRenderService),sheetSkeletonManagerService=render2==null?void 0:render2.with(sheetsUi.SheetSkeletonManagerService),[ranges,rangesSet]=require$$0.useState([]);require$$0.useEffect(()=>{const workbook=univerInstanceService.getUnit(unitId),worksheet=workbook==null?void 0:workbook.getActiveSheet(),selectionWithStyle=[];if(!workbook||!worksheet||!isNeed){rangesSet(selectionWithStyle);return}const currentSheetId=worksheet==null?void 0:worksheet.getSheetId(),getSheetIdByName=__name(name=>{var _a11;return(_a11=workbook==null?void 0:workbook.getSheetBySheetName(name))==null?void 0:_a11.getSheetId()},"getSheetIdByName");for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,unitRangeName=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=unitRangeName;if(refUnitId&&unitId!==refUnitId)continue;const refSheetId=getSheetIdByName(sheetName);if(refSheetId&&refSheetId!==currentSheetId)continue;const range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());selectionWithStyle.push({range,primary:void 0,style:getFormulaRefSelectionStyle$1(themeService,themeColor,refIndex.toString())})}rangesSet(selectionWithStyle)},[unitId,subUnitId,refSelections,isNeed]),require$$0.useEffect(()=>{const skeleton=sheetSkeletonManagerService==null?void 0:sheetSkeletonManagerService.getCurrentSkeleton();if(skeleton){const allControls=(refSelectionsRenderService==null?void 0:refSelectionsRenderService.getSelectionControls())||[];allControls.length===ranges.length?allControls.forEach((control,index)=>{const selection=ranges[index],primaryCell=skeleton.getCellByIndex(selection.range.startRow,selection.range.startColumn);control.updateRange(sheetsUi.attachRangeWithCoord(skeleton,selection.range),primaryCell),control.updateStyle(selection.style)}):refSelectionsService.setSelections(ranges)}},[ranges,sheetSkeletonManagerService]),require$$0.useEffect(()=>()=>{refSelectionsService.setSelections([])},[])}__name(useSheetHighlight,"useSheetHighlight");function useDocHight(editorId,sequenceNodes){const editorService=core.useDependency(docsUi.IEditorService),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),colorMap=useColor(),[ranges,rangesSet]=require$$0.useState([]);return require$$0.useEffect(()=>{const editor=editorService.getEditor(editorId);if(!editor)return;const data=editor.getDocumentData();if(!data||!data.body)return;const cloneBody={dataStream:"",...data.body};if(sequenceNodes==null||sequenceNodes.length===0)cloneBody.textRuns=[],cloneBody.dataStream=`\r
10
- `,rangesSet([]);else{const{textRuns,refSelections}=buildTextRuns(descriptionService,colorMap,sequenceNodes);cloneBody.textRuns=textRuns;const text=sequenceNodes.reduce((pre,cur)=>typeof cur=="string"?`${pre}${cur}`:`${pre}${cur.token}`,"");cloneBody.dataStream=`${text}\r
11
- `,rangesSet(refSelections)}const selection=editor.getSelectionRanges(),cloneData={...data,body:cloneBody};editor.setDocumentData(cloneData,selection)},[editorId,sequenceNodes,colorMap]),ranges}__name(useDocHight,"useDocHight");function useColor(){const style=core.useDependency(core.ThemeService).getCurrentTheme();return require$$0.useMemo(()=>{const formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],numberColor=style.hyacinth700,stringColor=style.verdancy800;return{formulaRefColors,numberColor,stringColor}},[style])}__name(useColor,"useColor");function buildTextRuns(descriptionService,colorMap,sequenceNodes){const{formulaRefColors,numberColor,stringColor}=colorMap,textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"){const theLastItem=textRuns[textRuns.length-1],start=theLastItem?theLastItem.ed:0,end=start+node.length;textRuns.push({st:start,ed:end});continue}if(descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%formulaRefColors.length;themeColor=formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=numberColor:(nodeType===engineFormula.sequenceNodeType.STRING||nodeType===engineFormula.sequenceNodeType.ARRAY)&&(themeColor=stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex,ed:endIndex+1,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}__name(buildTextRuns,"buildTextRuns");function getFormulaRefSelectionStyle$1(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle$1,"getFormulaRefSelectionStyle$1");const useRefactorEffect=__name((isNeed,unitId,isOnlyOneRange)=>{const renderManagerService=core.useDependency(engineRender.IRenderManagerService),univerInstanceService=core.useDependency(core.IUniverInstanceService),contextService=core.useDependency(core.IContextService),editorBridgeService=core.useDependency(sheetsUi.IEditorBridgeService),sheetsSelectionsService=core.useDependency(sheets.SheetsSelectionsService),contextMenuService=core.useDependency(ui.IContextMenuService),render2=renderManagerService.getRenderById(unitId),refSelectionsRenderService=render2==null?void 0:render2.with(exports.RefSelectionsRenderService);require$$0.useEffect(()=>{if(isNeed){const d1=refSelectionsRenderService==null?void 0:refSelectionsRenderService.enableSelectionChanging();return contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),editorBridgeService.enableForceKeepVisible(),()=>{d1==null||d1.dispose(),contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),editorBridgeService.disableForceKeepVisible()}}},[isNeed]),require$$0.useLayoutEffect(()=>{if(isNeed){const workbook=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),sheet=workbook==null?void 0:workbook.getActiveSheet(),selections=[...sheetsSelectionsService.getCurrentSelections()];return()=>{const workbook2=univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),currentSheet=workbook2==null?void 0:workbook2.getActiveSheet();currentSheet&&currentSheet===sheet&&sheetsSelectionsService.setSelections(selections)}}},[isNeed]),require$$0.useEffect(()=>{if(isNeed)return contextMenuService.disable(),()=>{contextMenuService.enable()}},[isNeed]),require$$0.useEffect(()=>{isNeed&&(refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!1))},[isNeed]),require$$0.useEffect(()=>{isOnlyOneRange?refSelectionsRenderService==null||refSelectionsRenderService.setRemainLastEnabled(!1):refSelectionsRenderService==null||refSelectionsRenderService.setRemainLastEnabled(!0)},[isOnlyOneRange])},"useRefactorEffect"),useResize=__name(editor=>{const resize=__name(()=>{if(editor){const{scene,mainComponent}=editor.render,docSkeletonManagerService=editor.render.with(docs.DocSkeletonManagerService),{width,height}=editor.getBoundingClientRect();docSkeletonManagerService.getViewModel().getDataModel().updateDocumentDataPageSize(1/0),scene.transformByState({width,height}),mainComponent==null||mainComponent.resize(width,height)}},"resize"),checkScrollBar=require$$0.useMemo(()=>core.debounce(()=>{var _a11;if(!editor)return;const skeleton=editor.render.with(docs.DocSkeletonManagerService).getSkeleton(),{scene,mainComponent}=editor.render,viewportMain=scene.getViewport(docsUi.VIEWPORT_KEY.VIEW_MAIN),{actualWidth}=skeleton.getActualSize(),{width,height}=editor.getBoundingClientRect();let scrollBar=viewportMain==null?void 0:viewportMain.getScrollBar();const contentWidth=Math.max(actualWidth,width),contentHeight=height;scene.transformByState({width:contentWidth,height:contentHeight}),mainComponent==null||mainComponent.resize(contentWidth,contentHeight),actualWidth>width?scrollBar==null?viewportMain&&new engineRender.ScrollBar(viewportMain,{barSize:8,enableVertical:!1}):viewportMain==null||viewportMain.resetCanvasSizeAndUpdateScroll():(scrollBar=null,viewportMain==null||viewportMain.scrollToBarPos({x:0,y:0}),(_a11=viewportMain==null?void 0:viewportMain.getScrollBar())==null||_a11.dispose())},30),[editor]);return require$$0.useEffect(()=>{if(editor){const time=setTimeout(()=>{resize(),checkScrollBar()},500);return()=>{clearTimeout(time)}}},[editor]),require$$0.useEffect(()=>{if(editor){const d=editor.input$.subscribe(()=>{checkScrollBar()});return()=>{d.unsubscribe()}}},[editor]),{resize,checkScrollBar}},"useResize"),isComma=__name(e=>typeof e=="string"?e===engineFormula.matchToken.COMMA:!1,"isComma"),isReference=__name(e=>{if(typeof e=="object")return e.nodeType===engineFormula.sequenceNodeType.REFERENCE},"isReference"),filterReferenceNode=__name(nodes=>nodes.filter(node=>isComma(node)||isReference(node)),"filterReferenceNode"),rangePreProcess=__name(range=>{if(range.endColumn<range.startColumn){const end=range.endColumn;range.endColumn=range.startColumn,range.startColumn=end}if(range.endRow<range.startRow){const end=range.endRow;range.endRow=range.startRow,range.startRow=end}return range},"rangePreProcess"),sequenceNodeToText=__name(sequenceNode=>sequenceNode.map(item=>typeof item=="string"?item:item.token).join(""),"sequenceNodeToText");function getSheetNameById(univerInstanceService,unitId,sheetId){var _a11,_b;return((_b=(_a11=univerInstanceService.getUnit(unitId))==null?void 0:_a11.getSheetBySheetId(sheetId))==null?void 0:_b.getName())||""}__name(getSheetNameById,"getSheetNameById");const unitRangesToText=__name((ranges,isSupportAcrossSheet=!1)=>isSupportAcrossSheet?ranges.map(item=>item.sheetName!==""?engineFormula.serializeRangeWithSheet(item.sheetName,item.range):engineFormula.serializeRange(item.range)):ranges.map(item=>engineFormula.serializeRange(item.range)),"unitRangesToText"),useSheetSelectionChange=__name((isNeed,unitId,_subUnitId,sequenceNodes,isSupportAcrossSheet,isOnlyOneRange,handleRangeChange)=>{const renderManagerService=core.useDependency(engineRender.IRenderManagerService),univerInstanceService=core.useDependency(core.IUniverInstanceService),isScalingRef=require$$0.useRef(!1),debounceReset=require$$0.useMemo(()=>core.debounce(()=>{isScalingRef.current=!1},300),[]),setIsScaling=__name(()=>{isScalingRef.current=!0,debounceReset()},"setIsScaling"),render2=renderManagerService.getRenderById(unitId),refSelectionsRenderService=render2==null?void 0:render2.with(exports.RefSelectionsRenderService),oldFilterReferenceNodes=require$$0.useRef([]),filterReferenceNodes=require$$0.useMemo(()=>{const newFilterReferenceNodes=filterReferenceNode(sequenceNodes),old=oldFilterReferenceNodes.current;return newFilterReferenceNodes.length===old.length?(old.splice(0),old.push(...newFilterReferenceNodes),old):newFilterReferenceNodes},[sequenceNodes]);oldFilterReferenceNodes.current=filterReferenceNodes,require$$0.useEffect(()=>{if(isNeed&&refSelectionsRenderService){let isFirst=!0;const handleSelectionsChange=__name(selections=>{var _a11;if(isFirst){isFirst=!1;return}const cloneSelectionList=[...selections],workbook=univerInstanceService.getUnit(unitId),currentSheetName=((_a11=workbook==null?void 0:workbook.getActiveSheet())==null?void 0:_a11.getName())||"",newSequenceNodes=filterReferenceNodes.map((node,index)=>{if(typeof node=="string"){if(!filterReferenceNodes[index-1])return null;const nextItem=filterReferenceNodes[index+1];return isComma(node)&&(isComma(nextItem)||index===filterReferenceNodes.length-1)?null:node}else if(node.nodeType===engineFormula.sequenceNodeType.REFERENCE){const unitRange=engineFormula.deserializeRangeWithSheet(node.token);unitRange.unitId=unitRange.unitId===""?unitId:unitRange.unitId,unitRange.sheetName=unitRange.sheetName===""?currentSheetName:unitRange.sheetName;const{unitId:rangeUnitId,sheetName:rangeSubName}=unitRange;if(isOnlyOneRange&&(rangeUnitId!==unitId||currentSheetName!==rangeSubName))return null;if(rangeUnitId===unitId&&currentSheetName===rangeSubName){const currentSelection=cloneSelectionList.shift();if(currentSelection&&getSheetNameById(univerInstanceService,unitId,currentSelection.rangeWithCoord.sheetId||"")===rangeSubName){const cloneNode={...node};return rangePreProcess(currentSelection.rangeWithCoord),isSupportAcrossSheet?cloneNode.token=engineFormula.serializeRangeWithSheet(currentSheetName,currentSelection.rangeWithCoord):cloneNode.token=engineFormula.serializeRange(currentSelection.rangeWithCoord),cloneNode}}return node}return null}).filter(e=>!!e),theLast=unitRangesToText(cloneSelectionList.map(e=>{var _a12,_b,_c;return{range:e.rangeWithCoord,unitId:(_a12=e.rangeWithCoord.unitId)!=null?_a12:"",sheetName:getSheetNameById(univerInstanceService,(_b=e.rangeWithCoord.unitId)!=null?_b:"",(_c=e.rangeWithCoord.sheetId)!=null?_c:"")}}),isSupportAcrossSheet).join(engineFormula.matchToken.COMMA),thePre=sequenceNodeToText(newSequenceNodes),result=`${thePre}${thePre&&theLast?engineFormula.matchToken.COMMA:""}${theLast}`,isScaling=isScalingRef.current;handleRangeChange(result,isScaling?-1:result.length)},"handleSelectionsChange"),d1=refSelectionsRenderService.selectionMoveEnd$.subscribe(selections=>{handleSelectionsChange(selections)}),d2=refSelectionsRenderService.selectionMoving$.pipe(operators.throttleTime(50)).subscribe(selections=>{handleSelectionsChange(selections)});return()=>{d1.unsubscribe(),d2.unsubscribe()}}},[isNeed,filterReferenceNodes,refSelectionsRenderService,isSupportAcrossSheet,isOnlyOneRange]),require$$0.useEffect(()=>{if(isNeed&&refSelectionsRenderService){const disposableCollection=new core.DisposableCollection,handleSequenceNodeReplace=__name((token,index)=>{var _a11;let currentIndex=0,offset=0,isFinish=!1;const workbook=univerInstanceService.getUnit(unitId),currentSheetName=((_a11=workbook==null?void 0:workbook.getActiveSheet())==null?void 0:_a11.getName())||"",newSequenceNodes=filterReferenceNodes.map(node=>{if(typeof node=="string")return isFinish||(offset+=node.length),node;if(node.nodeType===engineFormula.sequenceNodeType.REFERENCE){isFinish||(offset+=node.token.length);const unitRange=engineFormula.deserializeRangeWithSheet(token);if(unitRange.unitId=unitRange.unitId===""?unitId:unitRange.unitId,unitRange.sheetName=unitRange.sheetName===""?currentSheetName:unitRange.sheetName,currentIndex===index){isFinish=!0;const cloneNode={...node,token};return isSupportAcrossSheet?cloneNode.token=engineFormula.serializeRangeWithSheet(unitRange.sheetName,unitRange.range):cloneNode.token=engineFormula.serializeRange(unitRange.range),currentIndex++,cloneNode}return currentIndex++,node}return node}),result=sequenceNodeToText(newSequenceNodes);handleRangeChange(result,offset||-1)},"handleSequenceNodeReplace");let time=0;const dispose=refSelectionsRenderService.selectionMoveEnd$.subscribe(()=>{time=setTimeout(()=>{refSelectionsRenderService.getSelectionControls().forEach((control,index)=>{disposableCollection.add(control.selectionScaling$.subscribe(e=>{const rangeText=engineFormula.serializeRange(e);handleSequenceNodeReplace(rangeText,index),setIsScaling()})),disposableCollection.add(control.selectionMoving$.pipe(rxjs.map(e=>engineFormula.serializeRange(e)),rxjs.distinctUntilChanged()).subscribe(rangeText=>{handleSequenceNodeReplace(rangeText,index),setIsScaling()}))})},30)});return()=>{dispose.unsubscribe(),disposableCollection.dispose(),clearTimeout(time)}}},[isNeed,refSelectionsRenderService,filterReferenceNodes])},"useSheetSelectionChange"),verifyRange=__name(sequenceNodes=>!sequenceNodes.some(item=>{if(typeof item=="string"){if(item!==engineFormula.matchToken.COMMA)return!0}else if(item.nodeType!==engineFormula.sequenceNodeType.REFERENCE)return!0;return!1}),"verifyRange"),useVerify=__name((onVerify,sequenceNodes)=>{const isInitRender=require$$0.useRef(!0);require$$0.useEffect(()=>{const time=setTimeout(()=>{isInitRender.current=!1},500);return()=>{clearTimeout(time)}}),require$$0.useEffect(()=>{if(!isInitRender.current&&onVerify){const result=verifyRange(sequenceNodes);onVerify(result,sequenceNodeToText(sequenceNodes))}},[sequenceNodes,onVerify])},"useVerify"),sheetRangeSelectorTextWrap="univer-sheet-range-selector-text-wrap",sheetRangeSelectorPlaceholder="univer-sheet-range-selector-placeholder",sheetRangeSelectorError="univer-sheet-range-selector-error",sheetRangeSelectorErrorWrap="univer-sheet-range-selector-error-wrap",sheetRangeSelectorText="univer-sheet-range-selector-text",sheetRangeSelectorActive="univer-sheet-range-selector-active",sheetRangeSelectorIcon="univer-sheet-range-selector-icon",sheetRangeSelectorDialogItem="univer-sheet-range-selector-dialog-item",sheetRangeSelectorDialogItemDelete="univer-sheet-range-selector-dialog-item-delete",styles$6={sheetRangeSelectorTextWrap,sheetRangeSelectorPlaceholder,sheetRangeSelectorError,sheetRangeSelectorErrorWrap,sheetRangeSelectorText,sheetRangeSelectorActive,sheetRangeSelectorIcon,sheetRangeSelectorDialogItem,sheetRangeSelectorDialogItemDelete},noopFunction=__name(()=>{},"noopFunction");function RangeSelector(props){const{initValue,unitId,subUnitId,errorText,placeholder,actions,onChange=noopFunction,onVerify=noopFunction,onRangeSelectorDialogVisibleChange=noopFunction,onBlur=noopFunction,isFocus:_isFocus=!0,isOnlyOneRange=!1,isSupportAcrossSheet=!1}=props,editorService=core.useDependency(docsUi.IEditorService),localeService=core.useDependency(core.LocaleService),commandService=core.useDependency(core.ICommandService),lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder),rangeSelectorWrapRef=require$$0.useRef(null),[rangeDialogVisible,rangeDialogVisibleSet]=require$$0.useState(!1),[isFocus,isFocusSet]=require$$0.useState(_isFocus),editorId=require$$0.useMemo(()=>core.createInternalEditorID(`${sheetsUi.RANGE_SELECTOR_SYMBOLS}-${core.generateRandomId(4)}`),[]),[editor,editorSet]=require$$0.useState(),containerRef=require$$0.useRef(null),[rangeString,rangeStringSet]=require$$0.useState(()=>typeof initValue=="string"?initValue:unitRangesToText(initValue,isSupportAcrossSheet).join(engineFormula.matchToken.COMMA));actions&&(actions.handleOutClick=(e,cb)=>{if(rangeSelectorWrapRef.current){const isContain=rangeSelectorWrapRef.current.contains(e.target);cb(isContain)}});const ranges=require$$0.useMemo(()=>rangeString.split(engineFormula.matchToken.COMMA).filter(e=>!!e).map(text=>engineFormula.deserializeRangeWithSheet(text)),[rangeString]),isError=require$$0.useMemo(()=>errorText!==void 0,[errorText]),handleInputDebounce=require$$0.useMemo(()=>core.debounce(text=>{const nodes=lexerTreeBuilder.sequenceNodesBuilder(text);if(nodes){if(verifyRange(nodes)){const preNodes=nodes.map(node=>{if(typeof node=="string")return node;if(node.nodeType===engineFormula.sequenceNodeType.REFERENCE){const unitRange=engineFormula.deserializeRangeWithSheet(node.token);unitRange.range=rangePreProcess(unitRange.range),isSupportAcrossSheet||(unitRange.sheetName="",unitRange.unitId=""),node.token=unitRangesToText([unitRange],isSupportAcrossSheet)[0]}return node}),result=sequenceNodeToText(preNodes);onChange(result)}}else rangeStringSet("")},30),[isSupportAcrossSheet]),handleConfirm=__name(ranges2=>{const text=unitRangesToText(ranges2,isSupportAcrossSheet).join(engineFormula.matchToken.COMMA);rangeStringSet(text),onChange(text),rangeDialogVisibleSet(!1),onRangeSelectorDialogVisibleChange(!1)},"handleConfirm"),handleClose=__name(()=>{rangeDialogVisibleSet(!1),onRangeSelectorDialogVisibleChange(!1)},"handleClose"),handleOpenModal=__name(()=>{isError||(rangeDialogVisibleSet(!0),onRangeSelectorDialogVisibleChange(!0))},"handleOpenModal"),focus=require$$0.useMemo(()=>{let time=0;return()=>{clearTimeout(time),editor&&(time=setTimeout(()=>{editor.focus()},30))}},[editor]),{checkScrollBar}=useResize(editor),handleSheetSelectionChange=require$$0.useMemo(()=>(text,offset)=>{rangeStringSet(text),onChange(text),focus(),offset!==-1&&setTimeout(()=>{const range={startOffset:offset,endOffset:offset};editor==null||editor.setSelectionRanges([range]);const docBackScrollRenderController=editor==null?void 0:editor.render.with(docsUi.DocBackScrollRenderController);docBackScrollRenderController==null||docBackScrollRenderController.scrollToRange({...range,collapsed:!0})},50),checkScrollBar()},[editor]),{sequenceNodes,sequenceNodesSet}=useFormulaToken(rangeString),sheetHighlightRanges=useDocHight(editorId,sequenceNodes);return useSheetHighlight(!rangeDialogVisible&&isFocus,unitId,subUnitId,sheetHighlightRanges),useSheetSelectionChange(!rangeDialogVisible&&isFocus,unitId,subUnitId,sequenceNodes,isSupportAcrossSheet,isOnlyOneRange,handleSheetSelectionChange),useRefactorEffect(!rangeDialogVisible&&isFocus,unitId,isOnlyOneRange),useEditorInput(unitId,rangeString,editor),useVerify(onVerify,sequenceNodes),require$$0.useEffect(()=>{if(editor){const dispose=editor.input$.subscribe(e=>{var _a11,_b;const text=((_b=(_a11=e.data.body)==null?void 0:_a11.dataStream)!=null?_b:"").replaceAll(/\n|\r/g,"").replaceAll(/,{2,}/g,",").replaceAll(/(^,)/g,"");rangeStringSet(text),handleInputDebounce(text)});return()=>{dispose.unsubscribe()}}},[editor]),require$$0.useEffect(()=>{const d1=commandService.beforeCommandExecuted(info=>{info.id===sheets.SetWorksheetActiveOperation.id&&!isSupportAcrossSheet&&(isFocusSet(!1),onBlur(),sequenceNodesSet(pre=>[...pre]))}),d2=commandService.onCommandExecuted(info=>{info.id===sheetsUi.SetCellEditVisibleOperation.id&&(rangeDialogVisibleSet(!1),onRangeSelectorDialogVisibleChange(!1),isFocusSet(!1),onBlur())});return()=>{d1.dispose(),d2.dispose()}},[isSupportAcrossSheet]),require$$0.useEffect(()=>{isFocusSet(_isFocus)},[_isFocus]),require$$0.useEffect(()=>{if(editor&&rangeDialogVisible){editor.blur();const d=editor.focus$.subscribe(()=>{editor.blur()});return()=>{d.unsubscribe()}}},[editor,rangeDialogVisible]),require$$0.useLayoutEffect(()=>{let dispose;if(containerRef.current){dispose=editorService.register({autofocus:!0,editorUnitId:editorId,isSingle:!0,initialSnapshot:{id:editorId,body:{dataStream:`\r
12
- `},documentStyle:{}}},containerRef.current);const editor2=editorService.getEditor(editorId);editorSet(editor2)}return()=>{dispose==null||dispose.dispose()}},[containerRef.current]),jsxRuntimeExports.jsxs("div",{className:styles$6.sheetRangeSelector,ref:rangeSelectorWrapRef,children:[jsxRuntimeExports.jsxs("div",{className:clsx(styles$6.sheetRangeSelectorTextWrap,{[styles$6.sheetRangeSelectorActive]:isFocus&&!isError,[styles$6.sheetRangeSelectorError]:isError}),children:[jsxRuntimeExports.jsx("div",{className:styles$6.sheetRangeSelectorText,ref:containerRef}),jsxRuntimeExports.jsx(design.Tooltip,{title:localeService.t("rangeSelector.buttonTooltip"),placement:"bottom",children:jsxRuntimeExports.jsx(SelectRangeSingle,{className:styles$6.sheetRangeSelectorIcon,onClick:handleOpenModal})}),errorText!==void 0?jsxRuntimeExports.jsx("div",{className:styles$6.sheetRangeSelectorErrorWrap,children:errorText}):null,placeholder!==void 0&&!rangeString?jsxRuntimeExports.jsx("div",{className:styles$6.sheetRangeSelectorPlaceholder,children:placeholder}):null]}),rangeDialogVisible&&jsxRuntimeExports.jsx(RangeSelectorDialog,{handleConfirm,handleClose,unitId,subUnitId,initValue:ranges,visible:rangeDialogVisible,isOnlyOneRange,isSupportAcrossSheet})]})}__name(RangeSelector,"RangeSelector");function RangeSelectorDialog(props){const{handleConfirm,handleClose:_handleClose,visible,initValue,unitId,subUnitId,isOnlyOneRange,isSupportAcrossSheet}=props,localeService=core.useDependency(core.LocaleService),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),lexerTreeBuilder=core.useDependency(engineFormula.LexerTreeBuilder),render2=core.useDependency(engineRender.IRenderManagerService).getRenderById(unitId),refSelectionsRenderService=render2==null?void 0:render2.with(exports.RefSelectionsRenderService),[ranges,rangesSet]=require$$0.useState(()=>{if(isOnlyOneRange){const firstRange=initValue[0];return firstRange?unitRangesToText([firstRange],isSupportAcrossSheet):[""]}return unitRangesToText(initValue,isSupportAcrossSheet)}),[focusIndex,focusIndexSet]=require$$0.useState(()=>ranges.length-1),colorMap=useColor(),rangeText=require$$0.useMemo(()=>ranges.join(engineFormula.matchToken.COMMA),[ranges]),{sequenceNodes,sequenceNodesSet}=useFormulaToken(rangeText),refSelections=require$$0.useMemo(()=>buildTextRuns(descriptionService,colorMap,sequenceNodes).refSelections,[sequenceNodes]),handleClose=__name(()=>{sequenceNodesSet([]),setTimeout(()=>{_handleClose()},30)},"handleClose"),handleRangeInput=__name((index,value)=>{value?refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!1):refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!0),rangesSet(v=>{const result=[...v];return result[index]=value,result})},"handleRangeInput"),handleRangeRemove=__name(index=>{refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!1),rangesSet(v=>{if(v.length===1)return v;const result=[];return v.forEach((r2,i)=>{index!==i&&result.push(r2)}),result})},"handleRangeRemove"),handleRangeAdd=__name(()=>{refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!0),rangesSet(v=>(v.push(""),focusIndexSet(v.length-1),[...v]))},"handleRangeAdd"),handleSheetSelectionChange=require$$0.useCallback(rangeText2=>{var _a11;refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!1);const ranges2=rangeText2.split(engineFormula.matchToken.COMMA).filter(e=>!!e);rangesSet(isOnlyOneRange?[(_a11=ranges2[0])!=null?_a11:""]:ranges2)},[focusIndex,isOnlyOneRange]);return useSheetHighlight(visible,unitId,subUnitId,refSelections),useSheetSelectionChange(focusIndex>=0,unitId,subUnitId,sequenceNodes,isSupportAcrossSheet,isOnlyOneRange,handleSheetSelectionChange),useRefactorEffect(focusIndex>=0,unitId,isOnlyOneRange),require$$0.useEffect(()=>{(ranges.length===0||ranges.length===1&&!ranges[0])&&(refSelectionsRenderService==null||refSelectionsRenderService.setSkipLastEnabled(!0))},[ranges]),jsxRuntimeExports.jsx(design.Dialog,{width:"328px",visible,title:localeService.t("rangeSelector.title"),draggable:!0,closeIcon:jsxRuntimeExports.jsx(CloseSingle,{}),footer:jsxRuntimeExports.jsxs("footer",{children:[jsxRuntimeExports.jsx(design.Button,{onClick:handleClose,children:localeService.t("rangeSelector.cancel")}),jsxRuntimeExports.jsx(design.Button,{style:{marginLeft:10},onClick:__name(()=>handleConfirm(ranges.filter(text=>{const nodes=lexerTreeBuilder.sequenceNodesBuilder(text);return nodes&&nodes.length===1&&typeof nodes[0]!="string"&&nodes[0].nodeType===engineFormula.sequenceNodeType.REFERENCE}).map(text=>engineFormula.deserializeRangeWithSheet(text)).map(unitRange=>({...unitRange,range:rangePreProcess(unitRange.range)}))),"onClick"),type:"primary",children:localeService.t("rangeSelector.confirm")})]}),onClose:handleClose,children:jsxRuntimeExports.jsxs("div",{className:styles$6.sheetRangeSelectorDialog,children:[ranges.map((text,index)=>jsxRuntimeExports.jsxs("div",{className:styles$6.sheetRangeSelectorDialogItem,children:[jsxRuntimeExports.jsx(design.Input,{affixWrapperStyle:{width:"100%"},placeholder:localeService.t("rangeSelector.placeHolder"),onFocus:__name(()=>focusIndexSet(index),"onFocus"),value:text,onChange:__name(value=>handleRangeInput(index,value),"onChange")},`input_${index}`),ranges.length>1&&!isOnlyOneRange&&jsxRuntimeExports.jsx(DeleteSingle,{className:styles$6.sheetRangeSelectorDialogItemDelete,onClick:__name(()=>handleRangeRemove(index),"onClick")})]},index)),!isOnlyOneRange&&jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs(design.Button,{type:"link",size:"small",onClick:handleRangeAdd,children:[jsxRuntimeExports.jsx(IncreaseSingle,{}),jsxRuntimeExports.jsx("span",{children:localeService.t("rangeSelector.addAnotherRange")})]})})]})})}__name(RangeSelectorDialog,"RangeSelectorDialog");const PLUGIN_CONFIG_KEY_BASE="sheets-formula.base.config",defaultPluginBaseConfig={};function whenEditorStandalone(contextService){return contextService.getContextValue(core.FOCUSING_DOC)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR)&&contextService.getContextValue(core.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE)}__name(whenEditorStandalone,"whenEditorStandalone");function extractFormulaError(cell,isArrayFormulaCell=!1){return!isArrayFormulaCell&&!(core.isFormulaString(cell==null?void 0:cell.f)||core.isFormulaId(cell==null?void 0:cell.si))?null:typeof(cell==null?void 0:cell.v)=="string"&&engineFormula.ERROR_TYPE_SET.has(cell.v)?cell.v:null}__name(extractFormulaError,"extractFormulaError");var __defProp$7=Object.defineProperty,__getOwnPropDesc$7=Object.getOwnPropertyDescriptor,__decorateClass$7=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$7(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$7(target,key,result),result},"__decorateClass$7"),__decorateParam$7=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$7");const ALERT_KEY="SHEET_FORMULA_ALERT",ErrorTypeToMessageMap={[engineFormula.ErrorType.DIV_BY_ZERO]:"divByZero",[engineFormula.ErrorType.NAME]:"name",[engineFormula.ErrorType.VALUE]:"value",[engineFormula.ErrorType.NUM]:"num",[engineFormula.ErrorType.NA]:"na",[engineFormula.ErrorType.CYCLE]:"cycle",[engineFormula.ErrorType.REF]:"ref",[engineFormula.ErrorType.SPILL]:"spill",[engineFormula.ErrorType.CALC]:"calc",[engineFormula.ErrorType.ERROR]:"error",[engineFormula.ErrorType.CONNECT]:"connect",[engineFormula.ErrorType.NULL]:"null"};var _a3;let FormulaAlertRenderController=(_a3=class extends core.Disposable{constructor(_context,_hoverManagerService,_cellAlertManagerService,_localeService,_formulaDataModel,_zenZoneService){super(),this._context=_context,this._hoverManagerService=_hoverManagerService,this._cellAlertManagerService=_cellAlertManagerService,this._localeService=_localeService,this._formulaDataModel=_formulaDataModel,this._zenZoneService=_zenZoneService,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(cellPos=>{var _a11,_b,_c,_d,_e;if(cellPos){const worksheet=this._context.unit.getActiveSheet();if(!worksheet)return;const cellData=worksheet.getCell(cellPos.location.row,cellPos.location.col),arrayFormulaCellData=(_d=(_c=(_b=(_a11=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:_a11[cellPos.location.unitId])==null?void 0:_b[cellPos.location.subUnitId])==null?void 0:_c[cellPos.location.row])==null?void 0:_d[cellPos.location.col];if(core.isICellData(cellData)){const errorType=extractFormulaError(cellData,!!arrayFormulaCellData);if(!errorType)return;const currentAlert=this._cellAlertManagerService.currentAlert.get(ALERT_KEY),currentLoc=(_e=currentAlert==null?void 0:currentAlert.alert)==null?void 0:_e.location;if(currentLoc&&currentLoc.row===cellPos.location.row&&currentLoc.col===cellPos.location.col&&currentLoc.subUnitId===cellPos.location.subUnitId&&currentLoc.unitId===cellPos.location.unitId)return;this._cellAlertManagerService.showAlert({type:sheetsUi.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${ErrorTypeToMessageMap[errorType]}`),location:cellPos.location,width:200,height:74,key:ALERT_KEY});return}}this._cellAlertManagerService.removeAlert(ALERT_KEY)}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(visible=>{visible&&this._cellAlertManagerService.removeAlert(ALERT_KEY)}))}},__name(_a3,"FormulaAlertRenderController"),_a3);FormulaAlertRenderController=__decorateClass$7([__decorateParam$7(1,core.Inject(sheetsUi.HoverManagerService)),__decorateParam$7(2,core.Inject(sheetsUi.CellAlertManagerService)),__decorateParam$7(3,core.Inject(core.LocaleService)),__decorateParam$7(4,core.Inject(engineFormula.FormulaDataModel)),__decorateParam$7(5,ui.IZenZoneService)],FormulaAlertRenderController);var __defProp$6=Object.defineProperty,__getOwnPropDesc$6=Object.getOwnPropertyDescriptor,__decorateClass$6=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$6(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$6(target,key,result),result},"__decorateClass$6"),__decorateParam$6=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$6"),_a4;let FormulaAutoFillController=(_a4=class extends core.Disposable{constructor(_autoFillService,_lexerTreeBuilder){super(),this._autoFillService=_autoFillService,this._lexerTreeBuilder=_lexerTreeBuilder,this._registerAutoFill()}_registerAutoFill(){const formulaRule={type:sheetsUi.DATA_TYPE.FORMULA,priority:1001,match:__name(cellData=>core.isFormulaString(cellData==null?void 0:cellData.f)||core.isFormulaId(cellData==null?void 0:cellData.si),"match"),isContinue:__name((prev,cur)=>prev.type===sheetsUi.DATA_TYPE.FORMULA,"isContinue"),applyFunctions:{[sheetsUi.APPLY_TYPE.COPY]:(dataWithIndex,len,direction,copyDataPiece)=>{const{data,index}=dataWithIndex;return this._fillCopyFormula(data,len,direction,index,copyDataPiece)}}};this._autoFillService.registerRule(formulaRule)}_fillCopyFormula(data,len,direction,index,copyDataPiece){var _a11,_b;const step=getDataLength(copyDataPiece),applyData=[],formulaIdMap=new Map;for(let i=1;i<=len;i++){const index2=(i-1)%data.length,d=core.Tools.deepClone(data[index2]);if(d){const originalFormula=((_a11=data[index2])==null?void 0:_a11.f)||"",originalFormulaId=((_b=data[index2])==null?void 0:_b.si)||"",checkFormula=core.isFormulaString(originalFormula);if(core.isFormulaId(originalFormulaId))d.si=originalFormulaId,d.f=null,d.v=null,d.p=null,d.t=null,direction===core.Direction.DOWN||direction===core.Direction.RIGHT?applyData.push(d):applyData.unshift(d);else if(checkFormula){let formulaId=formulaIdMap.get(index2);if(formulaId)d.si=formulaId,d.f=null,d.v=null,d.p=null,d.t=null;else{formulaId=core.Tools.generateRandomId(6),formulaIdMap.set(index2,formulaId);const{offsetX,offsetY}=directionToOffset(step,direction),shiftedFormula=this._lexerTreeBuilder.moveFormulaRefOffset(originalFormula,offsetX,offsetY);d.si=formulaId,d.f=shiftedFormula,d.v=null,d.p=null,d.t=null}direction===core.Direction.DOWN||direction===core.Direction.RIGHT?applyData.push(d):applyData.unshift(d)}}}return applyData}},__name(_a4,"FormulaAutoFillController"),_a4);FormulaAutoFillController=__decorateClass$6([__decorateParam$6(0,sheetsUi.IAutoFillService),__decorateParam$6(1,core.Inject(engineFormula.LexerTreeBuilder))],FormulaAutoFillController);function directionToOffset(step,direction){let offsetX=0,offsetY=0;switch(direction){case core.Direction.UP:offsetY=-step;break;case core.Direction.RIGHT:offsetX=step;break;case core.Direction.DOWN:offsetY=step;break;case core.Direction.LEFT:offsetX=-step;break}return{offsetX,offsetY}}__name(directionToOffset,"directionToOffset");function getDataLength(copyDataPiece){let length=0;for(const t in copyDataPiece)copyDataPiece[t].forEach(item=>{length+=item.data.length});return length}__name(getDataLength,"getDataLength");var __defProp$5=Object.defineProperty,__getOwnPropDesc$5=Object.getOwnPropertyDescriptor,__decorateClass$5=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$5(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$5(target,key,result),result},"__decorateClass$5"),__decorateParam$5=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$5");const DEFAULT_PASTE_FORMULA="default-paste-formula";var _a5;let FormulaClipboardController=(_a5=class extends core.Disposable{constructor(_currentUniverSheet,_lexerTreeBuilder,_sheetClipboardService,_injector,_formulaDataModel){super(),this._currentUniverSheet=_currentUniverSheet,this._lexerTreeBuilder=_lexerTreeBuilder,this._sheetClipboardService=_sheetClipboardService,this._injector=_injector,this._formulaDataModel=_formulaDataModel,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:sheetsUi.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:__name((pasteFrom,pasteTo,data,payload)=>this._onPasteCells(pasteFrom,pasteTo,data,payload,!0),"onPasteCells")}}_pasteWithFormulaHook(){return{id:DEFAULT_PASTE_FORMULA,priority:10,onPasteCells:__name((pasteFrom,pasteTo,data,payload)=>this._onPasteCells(pasteFrom,pasteTo,data,payload,!1),"onPasteCells")}}_onPasteCells(pasteFrom,pasteTo,data,payload,isSpecialPaste){var _a11;if([sheetsUi.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,sheetsUi.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(payload.pasteType))return{undos:[],redos:[]};const workbook=this._currentUniverSheet.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),unitId=pasteTo.unitId||workbook.getUnitId(),subUnitId=pasteTo.subUnitId||((_a11=workbook.getActiveSheet())==null?void 0:_a11.getSheetId());if(!unitId||!subUnitId)return{undos:[],redos:[]};const pastedRange=pasteTo.range,matrix=data,copyInfo={copyType:payload.copyType||sheetsUi.COPY_TYPE.COPY,copyRange:pasteFrom==null?void 0:pasteFrom.range,pasteType:payload.pasteType};return this._injector.invoke(accessor=>getSetCellFormulaMutations(unitId,subUnitId,pastedRange,matrix,accessor,copyInfo,this._lexerTreeBuilder,this._formulaDataModel,isSpecialPaste,pasteFrom))}},__name(_a5,"FormulaClipboardController"),_a5);FormulaClipboardController=__decorateClass$5([__decorateParam$5(0,core.IUniverInstanceService),__decorateParam$5(1,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$5(2,sheetsUi.ISheetClipboardService),__decorateParam$5(3,core.Inject(core.Injector)),__decorateParam$5(4,core.Inject(engineFormula.FormulaDataModel))],FormulaClipboardController);function getSetCellFormulaMutations(unitId,subUnitId,range,matrix,accessor,copyInfo,lexerTreeBuilder,formulaDataModel,isSpecialPaste=!1,pasteFrom){const redoMutationsInfo=[],undoMutationsInfo=[],valueMatrix=getValueMatrix(unitId,subUnitId,range,matrix,copyInfo,lexerTreeBuilder,formulaDataModel,pasteFrom),setValuesMutation={unitId,subUnitId,cellValue:valueMatrix.getData()};redoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:setValuesMutation});const undoSetValuesMutation=sheets.SetRangeValuesUndoMutationFactory(accessor,setValuesMutation);return undoMutationsInfo.push({id:sheets.SetRangeValuesMutation.id,params:undoSetValuesMutation}),{undos:undoMutationsInfo,redos:redoMutationsInfo}}__name(getSetCellFormulaMutations,"getSetCellFormulaMutations");function getValueMatrix(unitId,subUnitId,range,matrix,copyInfo,lexerTreeBuilder,formulaDataModel,pasteFrom){return pasteFrom?copyInfo.pasteType===sheetsUi.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?getSpecialPasteValueValueMatrix(unitId,subUnitId,range,matrix,formulaDataModel,pasteFrom):copyInfo.pasteType===sheetsUi.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)}__name(getValueMatrix,"getValueMatrix");function getValueMatrixOfPasteFromIsNull(unitId,subUnitId,range,matrix,formulaDataModel){var _a11,_b;const valueMatrix=new core.ObjectMatrix,formulaData=(_b=(_a11=formulaDataModel.getFormulaData())==null?void 0:_a11[unitId])==null?void 0:_b[subUnitId];return matrix.forValue((row,col,value)=>{var _a12;const toRow=range.rows[row],toCol=range.cols[col],valueObject={};core.isFormulaString(value.v)?(valueObject.v=null,valueObject.f=`${value.v}`,valueObject.si=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)):(_a12=formulaData==null?void 0:formulaData[toRow])!=null&&_a12[toCol]&&(valueObject.v=value.v,valueObject.f=null,valueObject.si=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject))}),valueMatrix}__name(getValueMatrixOfPasteFromIsNull,"getValueMatrixOfPasteFromIsNull");function getSpecialPasteValueValueMatrix(unitId,subUnitId,range,matrix,formulaDataModel,pasteFrom){var _a11,_b,_c,_d;const valueMatrix=new core.ObjectMatrix,arrayFormulaCellData=(_b=(_a11=formulaDataModel.getArrayFormulaCellData())==null?void 0:_a11[pasteFrom.unitId])==null?void 0:_b[pasteFrom.subUnitId],formulaData=(_d=(_c=formulaDataModel.getFormulaData())==null?void 0:_c[unitId])==null?void 0:_d[subUnitId];return matrix.forValue((row,col,value)=>{var _a12,_b2;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={};if(core.isFormulaString(value.f)||core.isFormulaId(value.si))valueObject.v=value.v,valueObject.f=null,valueObject.si=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject);else if((_a12=arrayFormulaCellData==null?void 0:arrayFormulaCellData[fromRow])!=null&&_a12[fromCol]){const cell=arrayFormulaCellData[fromRow][fromCol];valueObject.v=cell.v,valueObject.f=null,valueObject.si=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)}else if((_b2=formulaData==null?void 0:formulaData[toRow])!=null&&_b2[toCol]){if(valueObject.v=value.v,valueObject.f=null,valueObject.si=null,valueObject.p=null,value.p){const richText=getCellRichText(value);richText&&(valueObject.v=richText)}valueMatrix.setValue(toRow,toCol,valueObject)}}),valueMatrix}__name(getSpecialPasteValueValueMatrix,"getSpecialPasteValueValueMatrix");function getSpecialPasteFormulaValueMatrix(unitId,subUnitId,range,matrix,lexerTreeBuilder,formulaDataModel,pasteFrom){const valueMatrix=new core.ObjectMatrix,formulaIdMap=new Map;return matrix.forValue((row,col,value)=>{const toRow=range.rows[row],toCol=range.cols[col],valueObject={};if(core.isFormulaId(value.si)){if(pasteFrom.unitId!==unitId||pasteFrom.subUnitId!==subUnitId){const formulaString=formulaDataModel.getFormulaStringByCell(pasteFrom.range.rows[row%pasteFrom.range.rows.length],pasteFrom.range.cols[col%pasteFrom.range.cols.length],pasteFrom.subUnitId,pasteFrom.unitId),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);valueObject.si=null,valueObject.f=shiftedFormula}else valueObject.si=value.si,valueObject.f=null;valueObject.v=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)}else if(core.isFormulaString(value.f)){const index=`${row%pasteFrom.range.rows.length}_${col%pasteFrom.range.cols.length}`;let formulaId=formulaIdMap.get(index);if(formulaId)valueObject.si=formulaId,valueObject.f=null;else{formulaId=core.Tools.generateRandomId(6),formulaIdMap.set(index,formulaId);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);valueObject.si=formulaId,valueObject.f=shiftedFormula}valueObject.v=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)}else{if(valueObject.v=value.v,valueObject.f=null,valueObject.si=null,valueObject.p=null,value.p){const richText=getCellRichText(value);richText&&(valueObject.v=richText)}valueMatrix.setValue(toRow,toCol,valueObject)}}),valueMatrix}__name(getSpecialPasteFormulaValueMatrix,"getSpecialPasteFormulaValueMatrix");function getDefaultPasteValueMatrix(unitId,subUnitId,range,matrix,lexerTreeBuilder,formulaDataModel,pasteFrom){var _a11,_b;const valueMatrix=new core.ObjectMatrix,formulaIdMap=new Map,formulaData=(_b=(_a11=formulaDataModel.getFormulaData())==null?void 0:_a11[unitId])==null?void 0:_b[subUnitId];return matrix.forValue((row,col,value)=>{var _a12;const toRow=range.rows[row],toCol=range.cols[col],valueObject={};if(core.isFormulaId(value.si)){if(pasteFrom.unitId!==unitId||pasteFrom.subUnitId!==subUnitId){const formulaString=formulaDataModel.getFormulaStringByCell(pasteFrom.range.rows[row%pasteFrom.range.rows.length],pasteFrom.range.cols[col%pasteFrom.range.cols.length],pasteFrom.subUnitId,pasteFrom.unitId),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);valueObject.si=null,valueObject.f=shiftedFormula}else valueObject.si=value.si,valueObject.f=null;valueObject.v=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)}else if(core.isFormulaString(value.f)){const index=`${row%pasteFrom.range.rows.length}_${col%pasteFrom.range.cols.length}`;let formulaId=formulaIdMap.get(index);if(formulaId)valueObject.si=formulaId,valueObject.f=null;else{formulaId=core.Tools.generateRandomId(6),formulaIdMap.set(index,formulaId);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);valueObject.si=formulaId,valueObject.f=shiftedFormula}valueObject.v=null,valueObject.p=null,valueMatrix.setValue(toRow,toCol,valueObject)}else(_a12=formulaData==null?void 0:formulaData[toRow])!=null&&_a12[toCol]&&(valueObject.v=value.v,valueObject.f=null,valueObject.si=null,valueObject.p=value.p,valueMatrix.setValue(toRow,toCol,valueObject))}),valueMatrix}__name(getDefaultPasteValueMatrix,"getDefaultPasteValueMatrix");function getCellRichText(cell){if(cell!=null&&cell.p){const body=cell==null?void 0:cell.p.body;if(body==null)return;const data=body.dataStream;return data.substring(data.length-2,data.length)===core.DEFAULT_EMPTY_DOCUMENT_VALUE?data.substring(0,data.length-2):data}}__name(getCellRichText,"getCellRichText");var __defProp$4=Object.defineProperty,__getOwnPropDesc$4=Object.getOwnPropertyDescriptor,__decorateClass$4=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$4(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$4(target,key,result),result},"__decorateClass$4"),__decorateParam$4=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$4"),_a6;let FormulaEditorShowController=(_a6=class extends core.Disposable{constructor(_context,_editorBridgeService,_formulaDataModel,_themeService,_renderManagerService,_sheetSkeletonManagerService,_commandService,_logService){super();__publicField(this,"_previousShape");__publicField(this,"_skeleton");this._context=_context,this._editorBridgeService=_editorBridgeService,this._formulaDataModel=_formulaDataModel,this._themeService=_themeService,this._renderManagerService=_renderManagerService,this._sheetSkeletonManagerService=_sheetSkeletonManagerService,this._commandService=_commandService,this._logService=_logService,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{var _a11,_b;if(param==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton}=param,prevSheetId=(_b=(_a11=this._skeleton)==null?void 0:_a11.worksheet)==null?void 0:_b.getSheetId();if(this._changeRuntime(skeleton),prevSheetId!==skeleton.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId,sheetId}=param;this._updateArrayFormulaRangeShape(unitId,sheetId)}}}))}_changeRuntime(skeleton){this._skeleton=skeleton}_initInterceptorEditorStart(){this.disposeWithMe(core.toDisposable(this._editorBridgeService.interceptor.intercept(this._editorBridgeService.interceptor.getInterceptPoints().BEFORE_CELL_EDIT,{handler:__name((value,context,next)=>{var _a11,_b,_c,_d;const{row,col,unitId,subUnitId,worksheet}=context,arrayFormulaMatrixRange=this._formulaDataModel.getArrayFormulaRange(),arrayFormulaMatrixCell=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),value==null)return next(value);let cellInfo=null;const formulaString=this._formulaDataModel.getFormulaStringByCell(row,col,subUnitId,unitId);if(formulaString!==null&&(cellInfo={f:formulaString}),value.v!=null&&value.v!==""&&((_c=(_b=(_a11=arrayFormulaMatrixCell[unitId])==null?void 0:_a11[subUnitId])==null?void 0:_b[row])==null?void 0:_c[col])==null)return cellInfo?{...value,...cellInfo}:next(value);const matrixRange=(_d=arrayFormulaMatrixRange==null?void 0:arrayFormulaMatrixRange[unitId])==null?void 0:_d[subUnitId];return matrixRange!=null&&(cellInfo=this._displayArrayFormulaRangeShape(matrixRange,row,col,unitId,subUnitId,worksheet,cellInfo)),cellInfo?{...value,...cellInfo}:next(value)},"handler")})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((command,options)=>{(command.id===engineFormula.SetFormulaCalculationResultMutation.id||command.id===engineFormula.SetArrayFormulaDataMutation.id&&options&&options.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(command=>{sheets.SetWorksheetRowAutoHeightMutation.id===command.id&&requestIdleCallback(()=>{const params=command.params,{unitId,subUnitId,rowsAutoHeightInfo}=params;this._refreshArrayFormulaRangeShapeByRow(unitId,subUnitId,rowsAutoHeightInfo)})}))}_displayArrayFormulaRangeShape(matrixRange,row,col,unitId,subUnitId,worksheet,cellInfo){return new core.ObjectMatrix(matrixRange).forValue((rowIndex,columnIndex,range)=>{if(range==null)return!0;const{startRow,startColumn,endRow,endColumn}=range;if(rowIndex===row&&columnIndex===col)return this._createArrayFormulaRangeShape(range,unitId),!1;if(row>=startRow&&row<=endRow&&col>=startColumn&&col<=endColumn){const mainCellValue=worksheet.getCell(startRow,startColumn);if((mainCellValue==null?void 0:mainCellValue.v)===engineFormula.ErrorType.SPILL)return;const formulaDataItem=this._formulaDataModel.getFormulaDataItem(rowIndex,columnIndex,subUnitId,unitId);return formulaDataItem==null||formulaDataItem.f==null?!0:(cellInfo==null&&(cellInfo={f:formulaDataItem.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(range,unitId),!1)}}),cellInfo}_createArrayFormulaRangeShape(arrayRange,unitId){const styleSheet=this._themeService.getCurrentTheme(),fill=new core.ColorKit(styleSheet.colorWhite).setAlpha(0).toString(),style={strokeWidth:1,stroke:styleSheet.hyacinth700,fill,widgets:{},hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1},renderUnit=this._renderManagerService.getRenderById(unitId);if(!renderUnit)return;const{scene}=renderUnit,{rangeWithCoord,primaryWithCoord}=renderUnit.with(sheetsUi.ISheetSelectionRenderService).attachSelectionWithCoord({range:arrayRange,primary:null,style}),skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!scene||!skeleton)return;const{rowHeaderWidth,columnHeaderHeight}=skeleton,control=new sheetsUi.SelectionShape(scene,sheetsUi.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,!1);control.update(rangeWithCoord,rowHeaderWidth,columnHeaderHeight,style,primaryWithCoord),control.setEvent(!1),this._previousShape=control}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(unitId,_range){if(this._previousShape){const{startRow,endRow,startColumn,endColumn}=this._previousShape.getRange(),range={startRow,endRow,startColumn,endColumn};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(range,unitId)}}_checkCurrentSheet(unitId,subUnitId){const skeleton=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!skeleton)return!1;const worksheet=skeleton.worksheet;return worksheet?worksheet.unitId===unitId&&worksheet.getSheetId()===subUnitId:!1}_updateArrayFormulaRangeShape(unitId,subUnitId){this._checkCurrentSheet(unitId,subUnitId)&&this._previousShape&&this._refreshArrayFormulaRangeShape(unitId)}_refreshArrayFormulaRangeShapeByRow(unitId,subUnitId,rowAutoHeightInfo){if(!this._checkCurrentSheet(unitId,subUnitId)||!this._previousShape)return;const{startRow:shapeStartRow,endRow:shapeEndRow,startColumn:shapeStartColumn,endColumn:shapeEndColumn}=this._previousShape.getRange();for(let i=0;i<rowAutoHeightInfo.length;i++){const{row}=rowAutoHeightInfo[i];if(shapeStartRow>=row){const shapeRange={startRow:shapeStartRow,endRow:shapeEndRow,startColumn:shapeStartColumn,endColumn:shapeEndColumn};this._refreshArrayFormulaRangeShape(unitId,shapeRange);break}}}},__name(_a6,"FormulaEditorShowController"),_a6);FormulaEditorShowController=__decorateClass$4([__decorateParam$4(1,core.Inject(sheetsUi.IEditorBridgeService)),__decorateParam$4(2,core.Inject(engineFormula.FormulaDataModel)),__decorateParam$4(3,core.Inject(core.ThemeService)),__decorateParam$4(4,engineRender.IRenderManagerService),__decorateParam$4(5,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$4(6,core.ICommandService),__decorateParam$4(7,core.ILogService)],FormulaEditorShowController);var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");const FORMULA_ERROR_MARK={tl:{size:6,color:"#409f11"}};var _a7;let FormulaRenderManagerController=(_a7=class extends core.RxDisposable{constructor(_sheetInterceptorService,_formulaDataModel){super(),this._sheetInterceptorService=_sheetInterceptorService,this._formulaDataModel=_formulaDataModel,this.disposeWithMe(this._sheetInterceptorService.intercept(sheets.INTERCEPTOR_POINT.CELL_CONTENT,{effect:core.InterceptorEffectEnum.Style,handler:__name((cell,pos,next)=>{var _a11,_b,_c,_d;const arrayFormulaCellData=(_d=(_c=(_b=(_a11=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:_a11[pos.unitId])==null?void 0:_b[pos.subUnitId])==null?void 0:_c[pos.row])==null?void 0:_d[pos.col];return extractFormulaError(cell,!!arrayFormulaCellData)?next({...cell,markers:{...cell==null?void 0:cell.markers,...FORMULA_ERROR_MARK}}):next(cell)},"handler"),priority:10}))}},__name(_a7,"FormulaRenderManagerController"),_a7);FormulaRenderManagerController=__decorateClass$3([__decorateParam$3(0,core.Inject(sheets.SheetInterceptorService)),__decorateParam$3(1,core.Inject(engineFormula.FormulaDataModel))],FormulaRenderManagerController);function FormulaProgressBar(){const triggerCalculationController=core.useDependency(sheetsFormula.TriggerCalculationController),commandService=core.useDependency(core.ICommandService),progress=core.useObservable(triggerCalculationController.progress$),terminateCalculation=require$$0.useCallback(()=>{commandService.executeCommand(engineFormula.SetFormulaCalculationStopMutation.id)},[commandService]),clearProgress=require$$0.useCallback(()=>{triggerCalculationController.clearProgress()},[triggerCalculationController]);return jsxRuntimeExports.jsx(ui.ProgressBar,{progress,onTerminate:terminateCalculation,onClearProgress:clearProgress})}__name(FormulaProgressBar,"FormulaProgressBar");function getFunctionTypeValues(enumObj,localeService){return Object.keys(enumObj).filter(key=>isNaN(Number(key))&&key!=="DefinedName").map(key=>({label:localeService.t(`formula.functionType.${key.toLocaleLowerCase()}`),value:`${enumObj[key]}`}))}__name(getFunctionTypeValues,"getFunctionTypeValues");function generateParam(param){if(!param.require&&!param.repeat)return`[${param.name}]`;if(param.require&&!param.repeat)return param.name;if(!param.require&&param.repeat)return`[${param.name},...]`;if(param.require&&param.repeat)return`${param.name},...`}__name(generateParam,"generateParam");const useResizeScrollObserver=__name((callback,delay=100)=>{require$$0.useEffect(()=>{let throttleTimeout=null;const throttledCallback=__name(()=>{throttleTimeout===null&&(throttleTimeout=window.setTimeout(()=>{callback(),throttleTimeout=null},delay))},"throttledCallback");return window.addEventListener("scroll",throttledCallback),window.addEventListener("resize",throttledCallback),()=>{throttleTimeout!==null&&clearTimeout(throttleTimeout),window.removeEventListener("scroll",throttledCallback),window.removeEventListener("resize",throttledCallback)}},[callback,delay])},"useResizeScrollObserver"),formulaHelpFunction="univer-formula-help-function",formulaHelpFunctionTitle="univer-formula-help-function-title",formulaHelpFunctionTitleIcons="univer-formula-help-function-title-icons",formulaHelpFunctionTitleIcon="univer-formula-help-function-title-icon",formulaHelpFunctionContent="univer-formula-help-function-content",formulaHelpFunctionContentInner="univer-formula-help-function-content-inner",formulaHelpFunctionContentParams="univer-formula-help-function-content-params",formulaHelpFunctionContentParamsTitle="univer-formula-help-function-content-params-title",formulaHelpFunctionContentParamsDetail="univer-formula-help-function-content-params-detail",formulaHelpFunctionActive="univer-formula-help-function-active",formulaHelpDecorator="univer-formula-help-decorator",formulaHelpParam="univer-formula-help-param",formulaHelpParamPrefix="univer-formula-help-param-prefix",formulaHelpParamItem="univer-formula-help-param-item",formulaHelpParamActive="univer-formula-help-param-active",styles$5={formulaHelpFunction,formulaHelpFunctionTitle,formulaHelpFunctionTitleIcons,formulaHelpFunctionTitleIcon,formulaHelpFunctionContent,formulaHelpFunctionContentInner,formulaHelpFunctionContentParams,formulaHelpFunctionContentParamsTitle,formulaHelpFunctionContentParamsDetail,formulaHelpFunctionActive,formulaHelpDecorator,formulaHelpParam,formulaHelpParamPrefix,formulaHelpParamItem,formulaHelpParamActive};function HelpFunction(){const[visible,setVisible]=require$$0.useState(!1),[contentVisible,setContentVisible]=require$$0.useState(!0),[helpVisible,setHelpVisible]=require$$0.useState(!0),[paramIndex,setParamIndex]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[decoratorPosition,setDecoratorPosition]=require$$0.useState({left:0,top:0}),[functionInfo,setFunctionInfo]=require$$0.useState(null),promptService=core.useDependency(IFormulaPromptService),localeService=core.useDependency(core.LocaleService),required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional"),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService),sidebarService=core.useDependency(ui.ISidebarService),injector=core.useInjector();useResizeScrollObserver(updatePosition),require$$0.useEffect(()=>{const subscription=promptService.help$.subscribe(params=>{const{visible:visible2,paramIndex:paramIndex2,functionInfo:functionInfo2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;functionInfo2.description===""&&functionInfo2.functionParameter.length===0||(setOffset([left,top+height]),setParamIndex(paramIndex2),setFunctionInfo(functionInfo2),setDecoratorPosition({left,top}),setVisible(visible2))}),sidebarSubscription=sidebarService.scrollEvent$.pipe(rxjs.throttleTime(100)).subscribe(updatePosition);return()=>{subscription==null||subscription.unsubscribe(),sidebarSubscription.unsubscribe()}},[]);function updatePosition(){if(!helpVisible)return;const position=getPosition();if(position==null)return;const{left,top,height}=position;setOffset([left,top+height])}__name(updatePosition,"updatePosition");function getPosition(){const documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleSwitchActive(paramIndex2){setParamIndex(paramIndex2)}__name(handleSwitchActive,"handleSwitchActive");function handleClose(){setHelpVisible(!helpVisible),injector.get(ui.ILayoutService).focus()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:helpVisible?jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:functionInfo?jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunction,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitle,children:[jsxRuntimeExports.jsx(Help,{prefix:functionInfo.functionName,value:functionInfo.functionParameter,active:paramIndex,onClick:handleSwitchActive}),jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitleIcons,children:[jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,style:{transform:contentVisible?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:__name(()=>setContentVisible(!contentVisible),"onClick"),children:jsxRuntimeExports.jsx(MoreSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContent,style:{height:contentVisible?"unset":0,padding:contentVisible?"revert-layer":0},children:jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentInner,children:[jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpAbstract"),value:functionInfo.description}),functionInfo&&functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(Params,{className:paramIndex===i?styles$5.formulaHelpFunctionActive:"",title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}):visible?jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpDecorator,onClick:__name(()=>setHelpVisible(!helpVisible),"onClick"),style:{left:decoratorPosition.left-24,top:decoratorPosition.top},children:jsxRuntimeExports.jsx(DetailsSingle,{})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})}__name(HelpFunction,"HelpFunction");const Params=__name(props=>jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$5.formulaHelpFunctionContentParamsTitle} ${props.className}`,children:props.title}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContentParamsDetail,children:props.value})]}),"Params"),Help=__name(props=>{const{prefix,value,active,onClick}=props;return jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpParam,children:[jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamPrefix,children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamItem,children:[jsxRuntimeExports.jsx("span",{className:active===i?styles$5.formulaHelpFunctionActive:styles$5.formulaHelpParamActive,onClick:__name(()=>onClick(i),"onClick"),children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})},"Help"),formulaSearchFunction="univer-formula-search-function",formulaSearchFunctionItem="univer-formula-search-function-item",formulaSearchFunctionItemName="univer-formula-search-function-item-name",formulaSearchFunctionItemNameLight="univer-formula-search-function-item-name-light",formulaSearchFunctionItemDesc="univer-formula-search-function-item-desc",formulaSearchFunctionItemActive="univer-formula-search-function-item-active",styles$4={formulaSearchFunction,formulaSearchFunctionItem,formulaSearchFunctionItemName,formulaSearchFunctionItemNameLight,formulaSearchFunctionItemDesc,formulaSearchFunctionItemActive};function SearchFunction(){const[visible,setVisible]=require$$0.useState(!1),[active,setActive]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[searchList,setSearchList]=require$$0.useState([]),[searchText,setSearchText]=require$$0.useState(""),ulRef=require$$0.useRef(null),promptService=core.useDependency(IFormulaPromptService),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService);require$$0.useEffect(()=>{let updatedSearchList=[],updatedActive=0;const subscribeSearch=promptService.search$.subscribe(params=>{const{visible:visible2,searchText:searchText2,searchList:searchList2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;setSearchText(searchText2),setSearchList(searchList2),updatedSearchList=searchList2,setOffset([left,top+height]),setVisible(visible2),setActive(0),updatedActive=0}),subscribeNavigate=promptService.navigate$.subscribe(params=>{const{direction}=params;if(direction===core.Direction.UP){let nextActive=updatedActive-1;nextActive=nextActive<0?updatedSearchList.length-1:nextActive,setActive(nextActive),updatedActive=nextActive}else if(direction===core.Direction.DOWN){let nextActive=updatedActive+1;nextActive=nextActive>=updatedSearchList.length?0:nextActive,setActive(nextActive),updatedActive=nextActive}scrollToVisible(updatedActive)}),subscribeAccept=promptService.accept$.subscribe(params=>{const functionName=updatedSearchList[updatedActive].name;promptService.acceptFormulaName(functionName)});return()=>{subscribeSearch==null||subscribeSearch.unsubscribe(),subscribeNavigate==null||subscribeNavigate.unsubscribe(),subscribeAccept==null||subscribeAccept.unsubscribe()}},[]);function getPosition(){const editorUnitId=univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleLiMouseEnter(index){setActive(index)}__name(handleLiMouseEnter,"handleLiMouseEnter");function handleLiMouseLeave(){setActive(-1)}__name(handleLiMouseLeave,"handleLiMouseLeave");function scrollToVisible(liIndex){var _a11;const liElement=(_a11=ulRef.current)==null?void 0:_a11.querySelectorAll(`.${styles$4.formulaSearchFunctionItem}`)[liIndex];if(!liElement)return;const ulElement=liElement.parentNode;if(!ulElement)return;const ulTop=ulElement.getBoundingClientRect().top,ulHeight=ulElement.offsetHeight,liRect=liElement.getBoundingClientRect(),liTop=liRect.top,liHeight=liRect.height;if(liTop>=0&&liTop>ulTop&&liTop-ulTop+liHeight<=ulHeight)return;const scrollTo=liElement.offsetTop-(ulHeight-liHeight)/2;ulElement.scrollTo({top:scrollTo,behavior:"smooth"})}return __name(scrollToVisible,"scrollToVisible"),searchList.length>0&&jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("ul",{className:styles$4.formulaSearchFunction,ref:ulRef,children:searchList.map((item,index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles$4.formulaSearchFunctionItem} ${styles$4.formulaSearchFunctionItemActive}`:styles$4.formulaSearchFunctionItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>promptService.acceptFormulaName(item.name),"onClick"),children:[jsxRuntimeExports.jsxs("span",{className:styles$4.formulaSearchFunctionItemName,children:[jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemNameLight,children:item.name.substring(0,searchText.length)}),jsxRuntimeExports.jsx("span",{children:item.name.slice(searchText.length)})]}),jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemDesc,children:item.desc})]},index))})})}__name(SearchFunction,"SearchFunction");function RenderFormulaPromptContent(){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SearchFunction,{}),jsxRuntimeExports.jsx(HelpFunction,{})]})}__name(RenderFormulaPromptContent,"RenderFormulaPromptContent");const formulaMoreFunctions="univer-formula-more-functions",formulaMoreFunctionsOperation="univer-formula-more-functions-operation",styles$3={formulaMoreFunctions,formulaMoreFunctionsOperation};function FunctionHelp(props){const{prefix,value}=props;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("span",{children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})}__name(FunctionHelp,"FunctionHelp");const formulaFunctionParams="univer-formula-function-params",formulaFunctionParamsTitle="univer-formula-function-params-title",formulaFunctionParamsDetail="univer-formula-function-params-detail",styles$2={formulaFunctionParams,formulaFunctionParamsTitle,formulaFunctionParamsDetail};function FunctionParams(props){const{className,value,title}=props;return jsxRuntimeExports.jsxs("div",{className:styles$2.formulaFunctionParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$2.formulaFunctionParamsTitle} ${className}`,children:title}),jsxRuntimeExports.jsx("div",{className:styles$2.formulaFunctionParamsDetail,children:value})]})}__name(FunctionParams,"FunctionParams");const formulaInputParamsList="univer-formula-input-params-list",formulaInputParamsListItemName="univer-formula-input-params-list-item-name",formulaInputParamsListItemSelector="univer-formula-input-params-list-item-selector",styles$1={formulaInputParamsList,formulaInputParamsListItemName,formulaInputParamsListItemSelector};function InputParams(props){const{functionInfo,onChange}=props;if(!functionInfo)return null;require$$0.useState([]);const[functionParameter,setFunctionParameter]=require$$0.useState(functionInfo.functionParameter),[activeIndex,setActiveIndex]=require$$0.useState(-1);return jsxRuntimeExports.jsxs("div",{className:styles$1.formulaInputParams,children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsList,children:functionParameter.map((item,i)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemName,children:item.name}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemSelector})]},i))}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsInfo,children:jsxRuntimeExports.jsx(FunctionParams,{title:activeIndex===-1?jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionParameter}):functionParameter[activeIndex].name,value:activeIndex===-1?functionInfo.description:functionParameter[activeIndex].detail})})]})}__name(InputParams,"InputParams");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={formulaSelectFunctionSelect,formulaSelectFunctionResult,formulaSelectFunctionResultItem,formulaSelectFunctionResultItemNameLight,formulaSelectFunctionResultItemSelected,formulaSelectFunctionResultItemActive,formulaSelectFunctionContent};function SelectFunction(props){const{onChange}=props,allTypeValue="-1",[searchText,setSearchText]=require$$0.useState(""),[selectList,setSelectList]=require$$0.useState([]),[active,setActive]=require$$0.useState(0),[typeSelected,setTypeSelected]=require$$0.useState(allTypeValue),[nameSelected,setNameSelected]=require$$0.useState(0),[functionInfo,setFunctionInfo]=require$$0.useState(null),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),localeService=core.useDependency(core.LocaleService),sidebarService=core.useDependency(ui.ISidebarService),sidebarOptions=core.useObservable(sidebarService.sidebarOptions$),options=getFunctionTypeValues(engineFormula.FunctionType,localeService);options.unshift({label:localeService.t("formula.moreFunctions.allFunctions"),value:allTypeValue});const required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional");require$$0.useEffect(()=>{handleSelectChange(allTypeValue)},[]),require$$0.useEffect(()=>{setCurrentFunctionInfo(0)},[selectList]),require$$0.useEffect(()=>{sidebarOptions!=null&&sidebarOptions.visible&&(setSearchText(""),setSelectList([]),setActive(0),setTypeSelected(allTypeValue),setNameSelected(0),setFunctionInfo(null),handleSelectChange(allTypeValue))},[sidebarOptions]);const highlightSearchText=__name(text=>{if(searchText.trim()==="")return text;const regex=new RegExp(`(${searchText.toLocaleUpperCase()})`);return text.split(regex).filter(Boolean).map((part,index)=>part.match(regex)?jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemNameLight,children:part},index):part)},"highlightSearchText"),setCurrentFunctionInfo=__name(selectedIndex=>{if(selectList.length===0){setFunctionInfo(null);return}setNameSelected(selectedIndex);const functionInfo2=descriptionService.getFunctionInfo(selectList[selectedIndex].name);if(!functionInfo2){setFunctionInfo(null);return}setFunctionInfo(functionInfo2),onChange(functionInfo2)},"setCurrentFunctionInfo");function handleSelectChange(value){setTypeSelected(value);const selectList2=descriptionService.getSearchListByType(+value);setSelectList(selectList2)}__name(handleSelectChange,"handleSelectChange");function handleSearchInputChange(value){setSearchText(value);const selectList2=descriptionService.getSearchListByName(value);setSelectList(selectList2)}__name(handleSearchInputChange,"handleSearchInputChange");function handleSelectListKeyDown(e){if(e.stopPropagation(),e.key==="ArrowDown"){const nextActive=active+1;setActive(nextActive===selectList.length?0:nextActive)}else if(e.key==="ArrowUp"){const nextActive=active-1;setActive(nextActive===-1?selectList.length-1:nextActive)}else e.key==="Enter"&&setCurrentFunctionInfo(active)}__name(handleSelectListKeyDown,"handleSelectListKeyDown");const handleLiMouseEnter=__name(index=>{setActive(index)},"handleLiMouseEnter"),handleLiMouseLeave=__name(()=>{setActive(-1)},"handleLiMouseLeave");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionSelect,children:[jsxRuntimeExports.jsx(design.Select,{value:typeSelected,options,onChange:handleSelectChange}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:handleSelectListKeyDown,value:searchText,onChange:handleSearchInputChange,size:"large",allowClear:!0})]}),jsxRuntimeExports.jsx("ul",{className:styles.formulaSelectFunctionResult,onKeyDown:handleSelectListKeyDown,tabIndex:-1,children:selectList.map(({name},index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles.formulaSelectFunctionResultItem} ${styles.formulaSelectFunctionResultItemActive}`:styles.formulaSelectFunctionResultItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>setCurrentFunctionInfo(index),"onClick"),children:[nameSelected===index&&jsxRuntimeExports.jsx(CheckMarkSingle,{className:styles.formulaSelectFunctionResultItemSelected}),jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemName,children:highlightSearchText(name)})]},index))}),functionInfo&&jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionContent,children:[jsxRuntimeExports.jsx(FunctionParams,{title:functionInfo.functionName,value:functionInfo.description}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.moreFunctions.syntax"),value:jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionInfo.functionParameter})}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(FunctionParams,{title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})]})}__name(SelectFunction,"SelectFunction");function MoreFunctions(){const workbook=sheetsUi.useActiveWorkbook(),[selectFunction,setSelectFunction]=require$$0.useState(!0),[inputParams,setInputParams]=require$$0.useState(!1),[functionInfo,setFunctionInfo]=require$$0.useState(null),localeService=core.useDependency(core.LocaleService),editorService=core.useDependency(docsUi.IEditorService);function handleClickNextPrev(){setSelectFunction(!selectFunction),setInputParams(!inputParams)}__name(handleClickNextPrev,"handleClickNextPrev");function handleConfirm(){editorService.setFormula(`=${functionInfo==null?void 0:functionInfo.functionName}(`)}return __name(handleConfirm,"handleConfirm"),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctions,children:[selectFunction&&jsxRuntimeExports.jsx(SelectFunction,{onChange:setFunctionInfo}),inputParams&&jsxRuntimeExports.jsx(InputParams,{functionInfo,onChange:__name(()=>{},"onChange")}),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctionsOperation,children:[inputParams&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.next")}),inputParams&&jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.prev")}),selectFunction&&!!workbook&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:localeService.t("formula.moreFunctions.confirm")})]})]})}__name(MoreFunctions,"MoreFunctions");function InsertFunctionMenuItemFactory(accessor){return{id:InsertFunctionOperation.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:ui.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(InsertFunctionMenuItemFactory,"InsertFunctionMenuItemFactory");function MoreFunctionsMenuItemFactory(accessor){return{id:MoreFunctionsOperation.id,title:"formula.insert.more",type:ui.MenuItemType.BUTTON}}__name(MoreFunctionsMenuItemFactory,"MoreFunctionsMenuItemFactory");function menuClipboardDisabledObservable(injector){return injector.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook&&injector.get(ui.IClipboardInterfaceService)?new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard)):rxjs.of(!0)))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function PasteFormulaMenuItemFactory(accessor){return{id:SheetOnlyPasteFormulaCommand.id,type:ui.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteFormulaMenuItemFactory,"PasteFormulaMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[InsertFunctionOperation.id]:{order:1,menuItemFactory:InsertFunctionMenuItemFactory,[MoreFunctionsOperation.id]:{order:1,menuItemFactory:MoreFunctionsMenuItemFactory}}},[sheetsUi.PASTE_SPECIAL_MENU_ID]:{[SheetOnlyPasteFormulaCommand.id]:{order:4,menuItemFactory:PasteFormulaMenuItemFactory}}},META_KEY_CTRL_AND_SHIFT="meta_key_ctrl_And_Shift",PROMPT_SELECTION_KEYCODE_ARROW_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],PROMPT_SELECTION_KEYCODE_LIST=[...PROMPT_SELECTION_KEYCODE_ARROW_LIST,ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ESC];function promptSelectionShortcutItem(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode}});return shortcutList}__name(promptSelectionShortcutItem,"promptSelectionShortcutItem");function promptSelectionShortcutItemShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.SHIFT}});return shortcutList}__name(promptSelectionShortcutItemShift,"promptSelectionShortcutItemShift");function promptSelectionShortcutItemCtrl(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.CTRL_COMMAND}});return shortcutList}__name(promptSelectionShortcutItemCtrl,"promptSelectionShortcutItemCtrl");function promptSelectionShortcutItemCtrlAndShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:META_KEY_CTRL_AND_SHIFT}});return shortcutList}__name(promptSelectionShortcutItemCtrlAndShift,"promptSelectionShortcutItemCtrlAndShift");const ChangeRefToAbsoluteShortcut={id:ReferenceAbsoluteOperation.id,binding:ui.KeyCode.F4,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions")};function singleEditorPromptSelectionShortcutItem(){const shortcutList=[];for(const keycode of[ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP])shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorStandalone(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isSingleEditor:!0}});return shortcutList}__name(singleEditorPromptSelectionShortcutItem,"singleEditorPromptSelectionShortcutItem");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a8;let FormulaUIController=(_a8=class extends core.Disposable{constructor(_injector,_menuManagerService,_commandService,_shortcutService,_uiPartsService,_renderManagerService,_componentManager){super(),this._injector=_injector,this._menuManagerService=_menuManagerService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._uiPartsService=_uiPartsService,this._renderManagerService=_renderManagerService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(menuSchema)}_registerCommands(){[SheetOnlyPasteFormulaCommand,InsertFunctionOperation,MoreFunctionsOperation,SearchFunctionOperation,HelpFunctionOperation,SelectEditorFormulaOperation,ReferenceAbsoluteOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerShortcuts(){[...promptSelectionShortcutItem(),...promptSelectionShortcutItemShift(),...promptSelectionShortcutItemCtrl(),...promptSelectionShortcutItemCtrlAndShift(),...singleEditorPromptSelectionShortcutItem(),ChangeRefToAbsoluteShortcut].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderFormulaPromptContent,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent(sheetsUi.SheetsUIPart.FORMULA_AUX,()=>core.connectInjector(FormulaProgressBar,this._injector))),this._componentManager.register(MORE_FUNCTIONS_COMPONENT,MoreFunctions)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[FormulaEditorShowController]))}},__name(_a8,"FormulaUIController"),_a8);FormulaUIController=__decorateClass$2([__decorateParam$2(0,core.Inject(core.Injector)),__decorateParam$2(1,ui.IMenuManagerService),__decorateParam$2(2,core.ICommandService),__decorateParam$2(3,ui.IShortcutService),__decorateParam$2(4,ui.IUIPartsService),__decorateParam$2(5,engineRender.IRenderManagerService),__decorateParam$2(6,core.Inject(ui.ComponentManager))],FormulaUIController);function getFormulaRefSelectionStyle(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle,"getFormulaRefSelectionStyle");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const sheetEditorUnitIds=[core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];var _a9;let PromptController=(_a9=class extends core.Disposable{constructor(_commandService,_contextService,_editorBridgeService,_formulaPromptService,_lexerTreeBuilder,_renderManagerService,_themeService,_sheetsSelectionsService,_refSelectionsService,_univerInstanceService,_descriptionService,_docSelectionManagerService,_contextMenuService,_editorService,_layoutService){super();__publicField(this,"_listenInputCache",new Set);__publicField(this,"_formulaRefColors",[]);__publicField(this,"_previousSequenceNodes");__publicField(this,"_previousRangesCount",0);__publicField(this,"_previousInsertRefStringIndex");__publicField(this,"_currentInsertRefStringIndex",-1);__publicField(this,"_arrowMoveActionState",0);__publicField(this,"_isSelectionMovingRefSelections",[]);__publicField(this,"_stringColor","");__publicField(this,"_numberColor","");__publicField(this,"_insertSelections",[]);__publicField(this,"_inputPanelState",0);__publicField(this,"_userCursorMove",!1);__publicField(this,"_previousEditorUnitId");__publicField(this,"_existsSequenceNode",!1);__publicField(this,"_currentlyWorkingRefRenderer",null);__publicField(this,"_selectionsChangeDisposables");__publicField(this,"_isSelectingMode",!1);this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._formulaPromptService=_formulaPromptService,this._lexerTreeBuilder=_lexerTreeBuilder,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._sheetsSelectionsService=_sheetsSelectionsService,this._refSelectionsService=_refSelectionsService,this._univerInstanceService=_univerInstanceService,this._descriptionService=_descriptionService,this._docSelectionManagerService=_docSelectionManagerService,this._contextMenuService=_contextMenuService,this._editorService=_editorService,this._layoutService=_layoutService,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(core.UniverInstanceType.UNIVER_SHEET).map(renderer=>renderer.with(exports.RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const style=this._themeService.getCurrentTheme();this._formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],this._numberColor=style.hyacinth700,this._stringColor=style.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.pipe(rxjs.filter(item=>!sheetsUi.isRangeSelector(item.unitId))).subscribe(params=>{var _a11;if((params==null?void 0:params.unitId)==null)return;const editor=this._editorService.getEditor(params.unitId);if(!editor||editor.onlyInputContent()||editor.isSheetEditor()&&!this._isFormulaEditorActivated()||editor.params.scrollBar)return;const onlyInputRange=editor.onlyInputRange();(_a11=params==null?void 0:params.options)!=null&&_a11.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(onlyInputRange),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!onlyInputRange&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const arrows=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT,ui.KeyCode.CTRL,ui.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{var _a11;const unitId=documentDataModel==null?void 0:documentDataModel.getUnitId();if(unitId==null||sheetsUi.isRangeSelector(unitId)||this._listenInputCache.has(unitId)||this._editorService.getEditor(unitId)==null)return;const docSelectionRenderService=(_a11=this._renderManagerService.getRenderById(unitId))==null?void 0:_a11.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&this.disposeWithMe(docSelectionRenderService.onInputBefore$.subscribe(param=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const event=param==null?void 0:param.event;event&&(arrows.includes(event.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),event.which!==ui.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(unitId)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(rxjs.distinctUntilKeyChanged("visible")).subscribe(visibleParam=>{visibleParam.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(core.FORMULA_EDITOR_ACTIVATED).pipe(rxjs.distinctUntilChanged()).subscribe(activated=>{activated||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{if(documentDataModel==null)return;const editorId=documentDataModel.getUnitId();sheetsUi.isRangeSelector(editorId)||!this._editorService.isEditor(editorId)||this._previousEditorUnitId===editorId||this._editorService.isSheetEditor(editorId)||(this._closeRangePrompt(editorId),this._previousEditorUnitId=editorId)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(editorId){this._insertSelections=[],this._refSelectionsService.clear(),editorId&&this._editorService.isSheetEditor(editorId)&&this._updateEditorModel(`\r
13
- `,[]),this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel()}_initSelectionsEndListener(){const d=new core.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(selections=>{if(d.dispose(),selections.length===0)return;this._allSelectionRenderServices.map(s=>s.getSelectionControls()).flat().forEach(c=>{c.disableHelperSelection(),d.add(c.selectionMoving$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionScaling$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionMoved$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange())),d.add(c.selectionScaled$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange()))})}))}_updateSelecting(selectionsWithStyles,performInsertion=!1){if(selectionsWithStyles.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(selectionsWithStyles),performInsertion)){const currentSelection=selectionsWithStyles[selectionsWithStyles.length-1];this._insertControlSelectionReplace(currentSelection)}}_enableRefSelectionsRenderService(){const d=this._selectionsChangeDisposables=new core.DisposableCollection;this._allSelectionRenderServices.forEach(renderer=>{d.add(renderer.enableSelectionChanging()),d.add(renderer.selectionMoving$.subscribe(selections=>{this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)))})),d.add(renderer.selectionMoveStart$.subscribe(selections=>{const performInsertion=this._checkClearingLastSelection(renderer);this._currentlyWorkingRefRenderer=renderer,this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)),performInsertion)}))})}_checkClearingLastSelection(renderer){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==renderer?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var _a11;(_a11=this._selectionsChangeDisposables)==null||_a11.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(selections){const currentSelection=selections[selections.length-1];if(this._resetSequenceNodes(selections.length),(selections.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(currentSelection);else{let insertNodes=this._formulaPromptService.getSequenceNodes();const char=this._getCurrentChar();insertNodes.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!engineFormula.matchRefDrawToken(char)&&this._focusIsOnlyRange(selections.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,engineFormula.matchToken.COMMA),insertNodes=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=core.Tools.deepClone(insertNodes),this._formulaPromptService.setSequenceNodes(insertNodes);const refString=this._generateRefString(currentSelection);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=selections.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(formulaString=>{const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,lastSequenceNodes=this._formulaPromptService.getSequenceNodes(),nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(startOffset-2),node=lastSequenceNodes[nodeIndex];if(node==null||typeof node=="string"){this._hideFunctionPanel();return}const difference=formulaString.length-node.token.length,newNode={...node};newNode.token=formulaString,newNode.endIndex+=difference,lastSequenceNodes[nodeIndex]=newNode;const isDefinedName=this._descriptionService.hasDefinedNameDescription(formulaString),isFormulaDefinedName=this._descriptionService.isFormulaDefinedName(formulaString),formulaStringCount=formulaString.length+1,mustAddBracket=!isDefinedName||isFormulaDefinedName;mustAddBracket&&lastSequenceNodes.splice(nodeIndex+1,0,engineFormula.matchToken.OPEN_BRACKET);for(let i=nodeIndex+2,len=lastSequenceNodes.length;i<len;i++){const node2=lastSequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=formulaStringCount,newNode2.endIndex+=formulaStringCount,lastSequenceNodes[i]=newNode2}let selectionIndex=newNode.endIndex+1;mustAddBracket&&(selectionIndex+=1),this._syncToEditor(lastSequenceNodes,selectionIndex,void 0,!0,!1)}))}_changeFunctionPanelState(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,currentSequenceNode=this._formulaPromptService.getCurrentSequenceNode(startOffset-2);if(currentSequenceNode==null){this._hideFunctionPanel();return}if(typeof currentSequenceNode!="string"&&currentSequenceNode.nodeType===engineFormula.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(currentSequenceNode.token.trim())){const token=currentSequenceNode.token.toUpperCase();if(this._inputPanelState===1){const searchList=this._descriptionService.getSearchListByNameFirstLetter(token);if(this._hideFunctionPanel(),searchList==null||searchList.length===0)return;this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!0,searchText:token,searchList})}else this._changeHelpFunctionPanelState(token,-1);return}const config=this._getCurrentBodyDataStreamAndOffset(),functionAndParameter=this._lexerTreeBuilder.getFunctionAndParameter((config==null?void 0:config.dataStream)||"",startOffset-1+((config==null?void 0:config.offset)||0));if(!functionAndParameter){this._hideFunctionPanel();return}const{functionName,paramIndex}=functionAndParameter;this._changeHelpFunctionPanelState(functionName.toUpperCase(),paramIndex)}_changeHelpFunctionPanelState(token,paramIndex){const functionInfo=this._descriptionService.getFunctionInfo(token);this._hideFunctionPanel(),functionInfo!=null&&this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!0,paramIndex,functionInfo})}_hideFunctionPanel(){this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!1,searchText:""}),this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(isOnlyInputRangeEditor=!1){if(isOnlyInputRangeEditor){this._enterSelectingMode();return}const char=this._getCurrentChar(),dataStream=this._getCurrentDataStream();(dataStream==null?void 0:dataStream.substring(0,1))==="="&&char&&engineFormula.matchRefDrawToken(char)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,config=this._getCurrentBodyDataStreamAndOffset();return config==null||startOffset==null?void 0:config.dataStream[startOffset-1+config.offset]}_getCurrentDataStream(){const config=this._getCurrentBodyDataStreamAndOffset();return config==null?void 0:config.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var _a11,_b;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!(documentModel!=null&&documentModel.getBody()))return;const unitId=documentModel.getUnitId(),editor=this._editorService.getEditor(unitId),dataStream=(_b=(_a11=documentModel.getBody())==null?void 0:_a11.dataStream)!=null?_b:"";return!editor||!editor.onlyInputRange()?{dataStream,offset:0}:{dataStream:engineFormula.compareToken.EQUALS+dataStream,offset:1}}_getFormulaAndCellEditorBody(unitIds){return unitIds.map(unitId=>{const dataModel=this._univerInstanceService.getUniverDocInstance(unitId);return dataModel==null?void 0:dataModel.getBody()})}_editorModelUnitIds(){const unitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(unitId)&&!this._editorService.isSheetEditor(unitId)?[unitId]:sheetEditorUnitIds}_contextSwitch(){const config=this._getCurrentBodyDataStreamAndOffset();if(config&&core.isFormulaString(config.dataStream)){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(config.dataStream)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes);const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange;this._currentInsertRefStringIndex=startOffset-1+config.offset;return}this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const sequenceNodes=this._formulaPromptService.getSequenceNodes(),unitIds=this._editorModelUnitIds(),bodyList=this._getFormulaAndCellEditorBody(unitIds).filter(b=>!!b);if(this._refSelectionsService.clear(),sequenceNodes==null||sequenceNodes.length===0)this._existsSequenceNode=!1,bodyList.forEach(body=>body.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);bodyList.forEach(body=>body.textRuns=textRuns),this._allSelectionRenderServices.forEach(r2=>this._refreshSelectionForReference(r2,refSelections))}this._refreshFormulaAndCellEditor(unitIds)}_buildTextRuns(sequenceNodes){var _a11;const textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;const offset=((_a11=this._getCurrentBodyDataStreamAndOffset())==null?void 0:_a11.offset)||0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||this._descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%this._formulaRefColors.length;themeColor=this._formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=this._numberColor:nodeType===engineFormula.sequenceNodeType.STRING?themeColor=this._stringColor:nodeType===engineFormula.sequenceNodeType.ARRAY&&(themeColor=this._stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex+1-offset,ed:endIndex+2-offset,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}_exceedCurrentRange(range,rowCount,columnCount){const{startRow,startColumn}=range;return startRow>rowCount-1||startColumn>columnCount-1}_refreshSelectionForReference(refSelectionRenderService,refSelections){const{unitId,sheetId}=this._editorBridgeService.getEditCellState(),{unitId:selfUnitId,sheetId:selfSheetId}=this._getCurrentUnitIdAndSheetId(),isSelfSheet=sheetId===selfSheetId,worksheet=this._univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId);let lastRange=null;const selectionWithStyle=[];for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,gridRange=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=gridRange,range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());if(refUnitId!=null&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(!isSelfSheet&&refSheetId!==selfSheetId||isSelfSheet&&sheetName.length!==0&&refSheetId!==sheetId||this._exceedCurrentRange(range,worksheet.getRowCount(),worksheet.getColumnCount()))continue;const lastRangeCopy=this._getPrimary(range,themeColor,refIndex);if(lastRangeCopy){lastRange=lastRangeCopy;continue}const primary=sheets.getPrimaryForRange(range,worksheet);!core.Rectangle.equals(primary,range)&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.startRow=primary.startRow,range.endRow=primary.endRow,range.startColumn=primary.startColumn,range.endColumn=primary.endColumn),selectionWithStyle.push({range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())})}lastRange&&selectionWithStyle.push(lastRange),selectionWithStyle.length&&this._refSelectionsService.addSelections(unitId,sheetId,selectionWithStyle)}_getPrimary(range,themeColor,refIndex){var _a11;const primary=(_a11=this._insertSelections.find(selection=>{const{startRow,startColumn,endRow,endColumn}=selection.range;return startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn}))==null?void 0:_a11.primary;if(primary==null)return;const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;return(isMerged||isMergedMainCell)&&mergeStartRow===range.startRow&&mergeStartColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.endRow=mergeEndRow,range.endColumn=mergeEndColumn),{range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())}}_getSheetIdByName(unitId,sheetName){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return(_a11=workbook==null?void 0:workbook.getSheetBySheetName(engineFormula.normalizeSheetName(sheetName)))==null?void 0:_a11.getSheetId()}_getSheetNameById(unitId,sheetId){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return((_a11=workbook==null?void 0:workbook.getSheetBySheetId(sheetId))==null?void 0:_a11.getName())||""}_getCurrentUnitIdAndSheetId(){var _a11,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),skeleton=(_b=(_a11=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a11.with(sheetsUi.SheetSkeletonManagerService))==null?void 0:_b.getCurrentSkeleton();return{unitId:workbook.getUnitId(),sheetId:(worksheet==null?void 0:worksheet.getSheetId())||"",skeleton}}_getEditorOpenedForSheet(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor?{openUnitId:editor.getOpenForSheetUnitId(),openSheetId:editor.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(currentSelection){let refUnitId="",refSheetName="";const{unitId,sheetId}=currentSelection.range,{openUnitId,openSheetId}=this._getEditorOpenedForSheet();unitId!==openUnitId&&unitId&&(refUnitId=unitId),sheetId!==openSheetId&&unitId&&sheetId&&(refSheetName=this._getSheetNameById(unitId,sheetId));const{range,primary}=currentSelection;let{startRow,endRow,startColumn,endColumn}=range;const{startAbsoluteRefType,endAbsoluteRefType,rangeType}=range;if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}return engineFormula.serializeRangeToRefString({sheetName:refSheetName,unitId:refUnitId,range:{startRow,endRow,startColumn,endColumn,rangeType,startAbsoluteRefType,endAbsoluteRefType}})}_syncToEditor(sequenceNodes,textSelectionOffset,editorUnitId,canUndo=!0,fromSelection=!0){let dataStream=engineFormula.generateStringWithSequence(sequenceNodes);const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);this._isSelectionMovingRefSelections=refSelections,this._allSelectionRenderServices.forEach(r2=>this._updateRefSelectionStyle(r2,this._isSelectionMovingRefSelections));const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;this._currentInsertRefStringIndex=textSelectionOffset,editorUnitId==null&&(editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const editor=this._editorService.getEditor(editorUnitId);editor!=null&&editor.isSingleChoice()?(dataStream=dataStream.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let formulaString=dataStream,offset=1;(!editor||!editor.onlyInputRange())&&(formulaString=`${engineFormula.compareToken.EQUALS}${dataStream}`,offset=0);const{collapsed,style}=activeRange;canUndo?(this._commandService.executeCommand(docsUi.ReplaceContentCommand.id,{unitId:editorUnitId,body:{dataStream:formulaString,textRuns},textRanges:[{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,collapsed,style}],segmentId:null,options:{fromSelection}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})):(this._updateEditorModel(`${formulaString}\r
14
- `,textRuns),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})),this._layoutService.focus()}_fitEditorSize(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();this._editorService.isEditor(editorUnitId)&&!this._editorService.isSheetEditor(editorUnitId)||this._commandService.executeCommand(ui.SetEditorResizeOperation.id,{unitId:editorUnitId})}_updateEditorModel(dataStream,textRuns){var _a11;const documentDataModel=this._univerInstanceService.getCurrentUniverDocInstance(),editorUnitId=documentDataModel.getUnitId();if(!this._editorService.isEditor(editorUnitId))return;const docViewModel=(_a11=this._renderManagerService.getRenderById(editorUnitId))==null?void 0:_a11.with(docs.DocSkeletonManagerService).getViewModel();if(docViewModel==null||documentDataModel==null)return;const snapshot=documentDataModel==null?void 0:documentDataModel.getSnapshot();if(snapshot==null)return;const newBody={dataStream,textRuns};snapshot.body=newBody,docViewModel.reset(documentDataModel)}_insertControlSelectionReplace(currentSelection){this._previousSequenceNodes==null&&(this._previousSequenceNodes=this._formulaPromptService.getSequenceNodes()),this._previousInsertRefStringIndex==null&&(this._previousInsertRefStringIndex=this._currentInsertRefStringIndex);const insertNodes=core.Tools.deepClone(this._previousSequenceNodes);if(insertNodes==null)return;const refString=this._generateRefString(currentSelection);this._formulaPromptService.setSequenceNodes(insertNodes),this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._syncToEditor(insertNodes,this._previousInsertRefStringIndex+refString.length);const selectionDatas=this._selectionRenderService.getSelectionDataWithStyle();this._insertSelections=[],selectionDatas.forEach(currentSelection2=>{const range=sheets.convertSelectionDataToRange(currentSelection2);this._insertSelections.push(range)})}_focusIsOnlyRange(selectionCount){const currentEditor=this._editorService.getFocusEditor();return!currentEditor||!currentEditor.onlyInputRange()||this._existsSequenceNode||selectionCount>1||this._previousSequenceNodes!=null&&this._previousSequenceNodes.length>0?!0:(this._previousInsertRefStringIndex!=null&&(this._previousInsertRefStringIndex+=1),!1)}_resetSequenceNodes(selectionCount){const currentEditor=this._editorService.getFocusEditor();currentEditor&&currentEditor.onlyInputRange()&&(selectionCount>1||this._existsSequenceNode&&(this._formulaPromptService.clearSequenceNodes(),this._previousRangesCount=0,this._existsSequenceNode=!1))}_updateRefSelectionStyle(refSelectionRenderService,refSelections){const controls=refSelectionRenderService.getSelectionControls(),[unitId,sheetId]=refSelectionRenderService.getLocation(),matchedControls=new Set;for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{refIndex,themeColor,token}=refSelection,rangeWithSheet=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range}=rangeWithSheet;if(!refUnitId&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(refSheetId&&refSheetId!==sheetId)continue;const control=controls.find(c=>{const{startRow,startColumn,endRow,endColumn,rangeType}=c.getRange();return rangeType===core.RANGE_TYPE.COLUMN&&startColumn===range.startColumn&&endColumn===range.endColumn||rangeType===core.RANGE_TYPE.ROW&&startRow===range.startRow&&endRow===range.endRow||startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn});if(control){const style=getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString());control.updateStyle(style),matchedControls.add(control)}}}_onSelectionControlChange(toRange,selectionControl){var _a11;const{skeleton}=this._getCurrentUnitIdAndSheetId();this._formulaPromptService.enableLockedSelectionChange();const id=(_a11=selectionControl.currentStyle)==null?void 0:_a11.id;if(!id||!core.Tools.isStringNumber(id))return;let{startRow,endRow,startColumn,endColumn}=toRange;const primary=skeleton?skeleton.worksheet.getCellInfoInMergeData(startRow,startColumn):{actualRow:startRow,actualColumn:startColumn,isMergedMainCell:!1,isMerged:!1,endRow:startRow,endColumn:startColumn,startRow,startColumn};if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}const nodeIndex=Number(id),currentNode=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);if(!currentNode)return;let refType={startAbsoluteRefType:core.AbsoluteRefType.NONE};if(typeof currentNode!="string"){const token=currentNode.token;refType=engineFormula.getAbsoluteRefTypeWitString(token),refType.endAbsoluteRefType==null&&(refType.endAbsoluteRefType=refType.startAbsoluteRefType)}const unitId=skeleton==null?void 0:skeleton.worksheet.getUnitId(),sheetId=skeleton==null?void 0:skeleton.worksheet.getSheetId(),refString=this._generateRefString({range:{startRow:Math.min(startRow,endRow),endRow:Math.max(startRow,endRow),startColumn:Math.min(startColumn,endColumn),endColumn:Math.max(startColumn,endColumn),...refType,sheetId,unitId},primary,style:null});this._formulaPromptService.updateSequenceRef(nodeIndex,refString);const sequenceNodes=this._formulaPromptService.getSequenceNodes(),node=sequenceNodes[nodeIndex];typeof node!="string"&&(this._syncToEditor(sequenceNodes,node.endIndex+1),selectionControl.update(toRange,void 0,void 0,void 0,this._selectionRenderService.attachPrimaryWithCoord(primary)))}_refreshFormulaAndCellEditor(unitIds){var _a11;for(const unitId of unitIds){const editorObject=sheetsUi.getEditorObject(unitId,this._renderManagerService),documentComponent=editorObject==null?void 0:editorObject.document;documentComponent!=null&&((_a11=documentComponent.getSkeleton())==null||_a11.calculate(),documentComponent.makeDirty())}}_cursorStateListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._arrowMoveActionState=1,this._inputPanelState=3}))}_pressEnter(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressTab(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressEsc(params){const{keycode}=params,focusEditor=this._editorService.getFocusEditor();(!focusEditor||(focusEditor==null?void 0:focusEditor.isSheetEditor())===!0)&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressArrowKey(params){const{keycode,metaKey}=params;let direction=core.Direction.DOWN;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_LEFT?direction=core.Direction.LEFT:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),metaKey===ui.MetaKeys.CTRL_COMMAND?this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):metaKey===ui.MetaKeys.SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction}):metaKey===META_KEY_CTRL_AND_SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction})}_commandExecutedListener(){const updateCommandList=[SelectEditorFormulaOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===ReferenceAbsoluteOperation.id)this._changeRefString();else if(updateCommandList.includes(command.id)){const params=command.params,{keycode,isSingleEditor=!1}=params;if(keycode===ui.KeyCode.ENTER){this._pressEnter(params);return}if(keycode===ui.KeyCode.TAB){this._pressTab(params);return}if(keycode===ui.KeyCode.ESC){this._pressEsc(params);return}if(this._formulaPromptService.isSearching()){if(keycode===ui.KeyCode.ARROW_DOWN){this._formulaPromptService.navigate({direction:core.Direction.DOWN});return}if(keycode===ui.KeyCode.ARROW_UP){this._formulaPromptService.navigate({direction:core.Direction.UP});return}}if(isSingleEditor===!0)return;if(this._arrowMoveActionState===1){this._moveInEditor(keycode);return}if(this._arrowMoveActionState===4){this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""});return}if(this._arrowMoveActionState===2&&(this._arrowMoveActionState=3),this._refSelectionsService.getCurrentSelections().length===0){const selectionData=this._sheetsSelectionsService.getCurrentLastSelection();if(selectionData!=null){const selectionDataNew=core.Tools.deepClone(selectionData);this._refSelectionsService.addSelections([selectionDataNew])}}this._pressArrowKey(params);const selectionWithStyles=this._refSelectionsService.getCurrentSelections(),currentSelection=selectionWithStyles[selectionWithStyles.length-1];this._insertControlSelectionReplace(currentSelection),this._highlightFormula()}}))}_moveInEditor(keycode){if(keycode==null)return;let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),this._commandService.executeCommand(docsUi.MoveCursorOperation.id,{direction})}_userMouseListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent==null?void 0:documentComponent.onPointerDown$.subscribeEvent(()=>{this._userCursorMove=!0}))}_inputFormulaListener(){this.disposeWithMe(this._editorService.inputFormula$.subscribe(param=>{const{formulaString,editorUnitId}=param;if(formulaString.substring(0,1)!==engineFormula.compareToken.EQUALS)return;const{unitId}=this._getCurrentUnitIdAndSheetId();this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId});const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(formulaString)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes),this._syncToEditor(lastSequenceNodes,formulaString.length-1,editorUnitId,!0,!1)}))}_changeRefString(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,strIndex=startOffset-2,nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(strIndex),node=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);if(node==null||typeof node=="string"||node.nodeType!==engineFormula.sequenceNodeType.REFERENCE)return;const tokenArray=node.token.split("!");let token=node.token;tokenArray.length>1&&(token=tokenArray[tokenArray.length-1]);let unitIDAndSheetName="";for(let i=0,len=tokenArray.length;i<len-1;i++)unitIDAndSheetName+=tokenArray[i];let finalToken=token;if(token.indexOf(engineFormula.matchToken.COLON)>-1)if(!this._userCursorMove)finalToken=this._changeRangeRef(token);else{const refStringSplit=token.split(engineFormula.matchToken.COLON),prefix=refStringSplit[0],suffix=refStringSplit[1];strIndex-node.startIndex<=prefix.length?finalToken=this._changeSingleRef(prefix)+engineFormula.matchToken.COLON+suffix:finalToken=prefix+engineFormula.matchToken.COLON+this._changeSingleRef(suffix)}else finalToken=this._changeSingleRef(token);finalToken=unitIDAndSheetName+finalToken;const difference=finalToken.length-node.token.length;this._formulaPromptService.updateSequenceRef(nodeIndex,finalToken),this._syncToEditor(this._formulaPromptService.getSequenceNodes(),strIndex+difference+1)}_changeRangeRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range;let resultToken="";return range.startAbsoluteRefType===core.AbsoluteRefType.NONE||range.startAbsoluteRefType==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_changeSingleRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range,type=range.startAbsoluteRefType;let resultToken="";return type===core.AbsoluteRefType.NONE||type==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):type===core.AbsoluteRefType.ALL?(range.startAbsoluteRefType=core.AbsoluteRefType.ROW,range.endAbsoluteRefType=core.AbsoluteRefType.ROW):type===core.AbsoluteRefType.ROW?(range.startAbsoluteRefType=core.AbsoluteRefType.COLUMN,range.endAbsoluteRefType=core.AbsoluteRefType.COLUMN):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_getEditorObject(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor==null?void 0:editor.render}_isFormulaEditorActivated(){return this._editorBridgeService.isVisible().visible===!0||this._contextService.getContextValue(core.FORMULA_EDITOR_ACTIVATED)}_isSheetOrFormulaEditor(editor){return editor.isSheetEditor()||editor.isFormulaEditor()}},__name(_a9,"PromptController"),_a9);PromptController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,core.IContextService),__decorateParam$1(2,core.Inject(sheetsUi.IEditorBridgeService)),__decorateParam$1(3,core.Inject(IFormulaPromptService)),__decorateParam$1(4,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$1(5,engineRender.IRenderManagerService),__decorateParam$1(6,core.Inject(core.ThemeService)),__decorateParam$1(7,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(8,sheets.IRefSelectionsService),__decorateParam$1(9,core.IUniverInstanceService),__decorateParam$1(10,core.Inject(sheetsFormula.IDescriptionService)),__decorateParam$1(11,core.Inject(docs.DocSelectionManagerService)),__decorateParam$1(12,ui.IContextMenuService),__decorateParam$1(13,docsUi.IEditorService),__decorateParam$1(14,ui.ILayoutService)],PromptController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField"),_a10;exports.UniverSheetsFormulaUIPlugin=(_a10=class extends core.Plugin{constructor(_config=defaultPluginBaseConfig,_injector,_renderManagerService,_configService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY_BASE,rest)}onStarting(){const j=this._injector;[[IFormulaPromptService,{useClass:FormulaPromptService}],[FormulaUIController],[FormulaAutoFillController],[FormulaClipboardController],[FormulaEditorShowController],[FormulaRenderManagerController],[PromptController]].forEach(dependency=>j.add(dependency))}onReady(){this._injector.get(FormulaUIController)}onRendered(){[[exports.RefSelectionsRenderService],[FormulaAlertRenderController]].forEach(dep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,dep))}),this._injector.get(FormulaClipboardController),this._injector.get(FormulaRenderManagerController),this._injector.get(ui.ComponentManager).register(sheetsUi.RANGE_SELECTOR_COMPONENT_KEY,RangeSelector)}onSteady(){this._injector.get(FormulaAutoFillController),this._injector.get(PromptController)}},__name(_a10,"UniverSheetsFormulaUIPlugin"),_a10);__publicField2(exports.UniverSheetsFormulaUIPlugin,"pluginName",FORMULA_UI_PLUGIN_NAME);__publicField2(exports.UniverSheetsFormulaUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=__decorateClass([core.DependentOn(engineFormula.UniverFormulaEnginePlugin,sheetsFormula.UniverSheetsFormulaPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IConfigService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=FORMULA_PROMPT_ACTIVATED;exports.HelpFunctionOperation=HelpFunctionOperation;exports.InsertFunctionOperation=InsertFunctionOperation;exports.MoreFunctionsOperation=MoreFunctionsOperation;exports.RangeSelector=RangeSelector;exports.ReferenceAbsoluteOperation=ReferenceAbsoluteOperation;exports.SearchFunctionOperation=SearchFunctionOperation;exports.SelectEditorFormulaOperation=SelectEditorFormulaOperation;exports.SheetOnlyPasteFormulaCommand=SheetOnlyPasteFormulaCommand;
9
+ */var Rn=g,In=Symbol.for("react.element"),En=Symbol.for("react.fragment"),yn=Object.prototype.hasOwnProperty,Tn=Rn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,bn={key:!0,ref:!0,__self:!0,__source:!0};function Pt(r,e,t){var n,o={},s=null,i=null;t!==void 0&&(s=""+t),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(i=e.ref);for(n in e)yn.call(e,n)&&!bn.hasOwnProperty(n)&&(o[n]=e[n]);if(r&&r.defaultProps)for(n in e=r.defaultProps,e)o[n]===void 0&&(o[n]=e[n]);return{$$typeof:In,type:r,key:s,ref:i,props:o,_owner:Tn.current}}et.Fragment=En;et.jsx=Pt;et.jsxs=Pt;Dt.exports=et;var v=Dt.exports,le=function(){return le=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},le.apply(this,arguments)},Nn=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(r,n[o])&&(t[n[o]]=r[n[o]]);return t},Ee=g.forwardRef(function(r,e){var t=r.icon,n=r.id,o=r.className,s=r.extend,i=Nn(r,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(n," ").concat(o||"").trim(),l=g.useRef("_".concat(Mn()));return Lt(t,"".concat(n),{defIds:t.defIds,idSuffix:l.current},le({ref:e,className:a},i),s)});function Lt(r,e,t,n,o){return g.createElement(r.tag,le(le({key:e},Fn(r,t,o)),n),(xn(r,t).children||[]).map(function(s,i){return Lt(s,"".concat(e,"-").concat(r.tag,"-").concat(i),t,void 0,o)}))}function Fn(r,e,t){var n=le({},r.attrs);t!=null&&t.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=t.colorChannel1);var o=e.defIds;return!o||o.length===0||(r.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+e.idSuffix),Object.entries(n).forEach(function(s){var i=s[0],a=s[1];typeof a=="string"&&(n[i]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),n}function xn(r,e){var t,n=e.defIds;return!n||n.length===0?r:r.tag==="defs"&&(!((t=r.children)===null||t===void 0)&&t.length)?le(le({},r),{children:r.children.map(function(o){return typeof o.attrs.id=="string"&&n&&n.indexOf(o.attrs.id)>-1?le(le({},o),{attrs:le(le({},o.attrs),{id:o.attrs.id+e.idSuffix})}):o})}):r}function Mn(){return Math.random().toString(36).substring(2,8)}Ee.displayName="UniverIcon";var On={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},wt=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"check-mark-single",ref:e,icon:On}))});wt.displayName="CheckMarkSingle";var An={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},tt=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"close-single",ref:e,icon:An}))});tt.displayName="CloseSingle";var Dn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},kt=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"delete-single",ref:e,icon:Dn}))});kt.displayName="DeleteSingle";var Pn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Ut=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"details-single",ref:e,icon:Pn}))});Ut.displayName="DetailsSingle";var Ln={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},$t=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"increase-single",ref:e,icon:Ln}))});$t.displayName="IncreaseSingle";var wn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},mt=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"more-single",ref:e,icon:wn}))});mt.displayName="MoreSingle";var kn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6185 12.4423C12.5907 12.2749 12.7773 12.15 12.9343 12.2308L15.4242 13.5126C15.6102 13.6084 15.5544 13.8745 15.3439 13.8955L14.2456 14.184L13.4521 15.1286C13.3495 15.2939 13.085 15.2463 13.0534 15.0568L12.6185 12.4423Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1 3.6C1 2.16406 2.16406 1 3.6 1H12.3C13.7359 1 14.9 2.16406 14.9 3.6V5.81156C14.9003 5.81881 14.9004 5.82609 14.9004 5.8334C14.9004 5.84071 14.9003 5.84799 14.9 5.85524V10.045C14.9003 10.0522 14.9004 10.0595 14.9004 10.0668C14.9004 10.3982 14.6318 10.6668 14.3004 10.6668H11.1668C10.8907 10.6668 10.6668 10.8907 10.6668 11.1668V14.3C10.6668 14.6314 10.3982 14.9 10.0668 14.9L10.05 14.8998L3.6 14.9C2.16406 14.9 1 13.7359 1 12.3V3.6ZM13.2 5.2334C13.4761 5.2334 13.7 5.00954 13.7 4.7334V3.6C13.7 2.8268 13.0732 2.2 12.3 2.2H11.1668C10.8907 2.2 10.6668 2.42386 10.6668 2.7V4.7334C10.6668 5.00954 10.8907 5.2334 11.1668 5.2334H13.2ZM10.6668 6.9334C10.6668 6.65726 10.8907 6.4334 11.1668 6.4334H13.2C13.4761 6.4334 13.7 6.65726 13.7 6.9334V8.9668C13.7 9.24294 13.4761 9.4668 13.2 9.4668H11.1668C10.8907 9.4668 10.6668 9.24294 10.6668 8.9668V6.9334ZM8.9668 5.2334C9.24294 5.2334 9.4668 5.00954 9.4668 4.7334V2.7C9.4668 2.42386 9.24294 2.2 8.9668 2.2H6.9334C6.65726 2.2 6.4334 2.42386 6.4334 2.7V4.7334C6.4334 5.00954 6.65726 5.2334 6.9334 5.2334L8.9668 5.2334ZM6.4334 6.9334C6.4334 6.65726 6.65726 6.4334 6.9334 6.4334L8.9668 6.4334C9.24294 6.4334 9.4668 6.65726 9.4668 6.9334V8.9668C9.4668 9.24294 9.24294 9.4668 8.9668 9.4668L6.9334 9.4668C6.65726 9.4668 6.4334 9.24294 6.4334 8.9668V6.9334ZM4.7334 5.2334C5.00954 5.2334 5.2334 5.00954 5.2334 4.7334V2.7C5.2334 2.42386 5.00954 2.2 4.7334 2.2H3.6C2.8268 2.2 2.2 2.8268 2.2 3.6V4.7334C2.2 5.00954 2.42386 5.2334 2.7 5.2334H4.7334ZM2.2 6.9334C2.2 6.65726 2.42386 6.4334 2.7 6.4334H4.7334C5.00954 6.4334 5.2334 6.65725 5.2334 6.9334V8.9668C5.2334 9.24294 5.00954 9.4668 4.7334 9.4668H2.7C2.42386 9.4668 2.2 9.24294 2.2 8.9668V6.9334ZM5.2334 11.1668C5.2334 10.8907 5.00954 10.6668 4.7334 10.6668H2.7C2.42386 10.6668 2.2 10.8907 2.2 11.1668V12.3C2.2 13.0732 2.8268 13.7 3.6 13.7H4.7334C5.00954 13.7 5.2334 13.4761 5.2334 13.2V11.1668ZM9.4668 11.1668C9.4668 10.8907 9.24294 10.6668 8.9668 10.6668H6.9334C6.65726 10.6668 6.4334 10.8907 6.4334 11.1668V13.2C6.4334 13.4761 6.65726 13.7 6.9334 13.7H8.9668C9.24294 13.7 9.4668 13.4761 9.4668 13.2V11.1668Z",fillRule:"evenodd",clipRule:"evenodd"}}]},jt=g.forwardRef(function(r,e){return g.createElement(Ee,Object.assign({},r,{id:"select-range-single",ref:e,icon:kn}))});jt.displayName="SelectRangeSingle";function Ht(r){var e,t,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r)){var o=r.length;for(e=0;e<o;e++)r[e]&&(t=Ht(r[e]))&&(n&&(n+=" "),n+=t)}else for(t in r)r[t]&&(n&&(n+=" "),n+=t);return n}function Wt(){for(var r,e,t=0,n="",o=arguments.length;t<o;t++)(r=arguments[t])&&(e=Ht(r))&&(n&&(n+=" "),n+=e);return n}var Un=Object.defineProperty,$n=Object.getOwnPropertyDescriptor,jn=(r,e,t,n)=>{for(var o=n>1?void 0:n?$n(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Un(e,t,o),o},Oe=(r,e)=>(t,n)=>e(t,n,r);exports.RefSelectionsRenderService=class extends P.BaseSelectionRenderService{constructor(t,n,o,s,i,a){super(n,o,s,i);W(this,"_workbookSelections");W(this,"_eventDisposables");this._context=t,this._refSelectionsService=a,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(Hn(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(t){this._remainLastEnabled=t}setSkipLastEnabled(t){this._skipLastEnabled=t}clearLastSelection(){const t=this._selectionControls[this._selectionControls.length-1];t&&(t.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),c.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var t;(t=this._eventDisposables)==null||t.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const t=this._getSheetObject(),{spreadsheetRowHeader:n,spreadsheetColumnHeader:o,spreadsheet:s,spreadsheetLeftTopPlaceholder:i}=t,{scene:a}=this._context,l=new c.DisposableCollection;return l.add(s==null?void 0:s.onPointerDown$.subscribeEvent((d,h)=>{this._onPointerDown(d,s.zIndex+1,c.RANGE_TYPE.NORMAL,this._getActiveViewport(d)),d.button!==2&&h.stopPropagation()})),l.add(n==null?void 0:n.onPointerDown$.subscribeEvent((d,h)=>{const f=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:u}=P.getCoordByOffset(d.offsetX,d.offsetY,a,f);P.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),u,c.RANGE_TYPE.ROW)||(this._onPointerDown(d,(s.zIndex||1)+1,c.RANGE_TYPE.ROW,this._getActiveViewport(d),K.ScrollTimerType.Y),d.button!==2&&h.stopPropagation())})),l.add(o==null?void 0:o.onPointerDown$.subscribeEvent((d,h)=>{const f=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:u}=P.getCoordByOffset(d.offsetX,d.offsetY,a,f);P.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),u,c.RANGE_TYPE.COLUMN)||(this._onPointerDown(d,(s.zIndex||1)+1,c.RANGE_TYPE.COLUMN,this._getActiveViewport(d),K.ScrollTimerType.X),d.button!==2&&h.stopPropagation())})),l.add(i==null?void 0:i.onPointerDown$.subscribeEvent((d,h)=>{this._reset();const f=this._sheetSkeletonManagerService.getCurrent().skeleton,u=P.getAllSelection(f),p=this.attachSelectionWithCoord(u);this._addSelectionControlBySelectionData(p),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const S=a.onPointerUp$.subscribeEvent(()=>{S.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});d.button!==2&&h.stopPropagation()})),l}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVE_END)}))}_updateSelections(t,n){const s=this._context.unit.getActiveSheet().getSheetId();t.length!==0&&this._workbookSelections.setSelections(s,t.map(i=>$.convertSelectionDataToRange(i)),n)}_initSelectionChangeListener(){this.disposeWithMe(V.merge(this._workbookSelections.selectionMoveEnd$,this._workbookSelections.selectionSet$).subscribe(t=>{this._reset();for(const n of t){const o=this.attachSelectionWithCoord(n);this._addSelectionControlBySelectionData(o)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(!t)return;const{skeleton:n}=t,{scene:o}=this._context,s=o.getViewport(K.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==n.worksheet.getSheetId()&&this._reset(),this._changeRuntime(n,o,s);const i=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(i||[])}))}_refreshSelectionControl(t){const n=t.map(o=>P.attachSelectionWithCoord(o,this._skeleton));this.updateControlForCurrentByRangeData(n)}_getActiveViewport(t){const n=this._getSheetObject();return n==null?void 0:n.scene.getActiveViewportByCoord(K.Vector2.FromArray([t.offsetX,t.offsetY]))}_getSheetObject(){return P.getSheetObject(this._context.unit,this._context)}};exports.RefSelectionsRenderService=jn([Oe(1,c.Inject(c.Injector)),Oe(2,c.Inject(c.ThemeService)),Oe(3,F.IShortcutService),Oe(4,c.Inject(P.SheetSkeletonManagerService)),Oe(5,$.IRefSelectionsService)],exports.RefSelectionsRenderService);function Hn(r){const e=$.getNormalSelectionStyle(r);return e.hasAutoFill=!1,e.hasRowHeader=!1,e.hasColumnHeader=!1,e.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},e}const Wn=(r,e,t)=>{const o=c.useDependency(K.IRenderManagerService).getRenderById(r),s=o==null?void 0:o.with(exports.RefSelectionsRenderService);g.useEffect(()=>{if(t&&s){const i=t.input$.subscribe(a=>{a.content===R.matchToken.COMMA?s.setSkipLastEnabled(!0):s.setSkipLastEnabled(!1)});return()=>{i.unsubscribe()}}},[t,s]),g.useEffect(()=>{s&&(e.endsWith(R.matchToken.COMMA)||s.setSkipLastEnabled(!1))},[e,s])},Se=r=>r.map(e=>typeof e=="string"?e:e.token).join(""),Bt=(r,e,t)=>{const n=g.useRef(!1);return g.useEffect(()=>{if(t){const s=t.input$.subscribe(()=>{n.current=!0});return()=>{s.unsubscribe()}}},[t]),g.useEffect(()=>{if(n.current&&r){n.current=!1;const s=Se(r);e(s)}},[r]),()=>n.current=!0},nt=()=>{const r=c.useDependency(R.LexerTreeBuilder);return t=>r.sequenceNodesBuilder(t)||[]},Vt=(r,e,t,n,o,s)=>{const i=nt(),a=g.useRef(!0);g.useEffect(()=>{var l,d;if(s){if(a.current){const h=i(r);if(h.length){const f=n(s,h);t&&o(f)}else{const f=s.getDocumentData(),p={dataStream:(d=(l=f.body)==null?void 0:l.dataStream)!=null?d:`${e}\r
10
+ `,...f.body};s.setDocumentData({...f,body:p})}a.current=!1}else if(t){const h=i(r),f=n(s,h);o(f)}}},[s,t])},qt=r=>g.useMemo(()=>()=>{var t,n;if(r){r.focus();const o=[...r.getSelectionRanges()];if(o.length&&r.setSelectionRanges(o),!o.length){const s=(n=(t=r.getDocumentData().body)==null?void 0:t.dataStream)!=null?n:`\r
11
+ `,i=Math.max(s.length-2,0);r.setSelectionRanges([{startOffset:i,endOffset:i}])}}},[r]);function St(r){const e=c.useDependency(c.IUniverInstanceService),t=c.useDependency(c.ThemeService),n=c.useDependency($.IRefSelectionsService),s=c.useDependency(K.IRenderManagerService).getRenderById(r),i=s==null?void 0:s.with(exports.RefSelectionsRenderService),a=s==null?void 0:s.with(P.SheetSkeletonManagerService);return d=>{const h=e.getUnit(r),f=h==null?void 0:h.getActiveSheet(),u=[];if(!h||!f){n.setSelections(u);return}const p=f==null?void 0:f.getSheetId(),S=m=>{var _;return(_=h==null?void 0:h.getSheetBySheetName(m))==null?void 0:_.getSheetId()};for(let m=0,_=d.length;m<_;m++){const C=d[m],{themeColor:y,token:E,refIndex:x}=C,b=R.deserializeRangeWithSheet(E),{unitId:T,sheetName:O,range:N}=b;if(T&&r!==T)continue;const L=S(O);if(L&&L!==p)continue;const D=$.setEndForRange(N,f.getRowCount(),f.getColumnCount());u.push({range:D,primary:null,style:Bn(t,y,x.toString())})}const I=a==null?void 0:a.getCurrentSkeleton();if(I){const m=(i==null?void 0:i.getSelectionControls())||[];m.length===u.length?m.forEach((_,C)=>{const y=u[C];_.updateRange(P.attachRangeWithCoord(I,y.range),null),_.updateStyle(y.style)}):n.setSelections(u)}}}function Kt(r=""){const e=c.useDependency(ge.IDescriptionService),t=zt(),n=g.useMemo(()=>r.length,[r]);return(s,i,a=!0)=>{const l=s.getDocumentData();if(!l)return[];if(!l.body)return[];const h={dataStream:"",...l.body};if(i==null||i.length===0){h.textRuns=[];const f={...l,body:h};return s.setDocumentData(f),[]}else{const{textRuns:f,refSelections:u}=Yt(e,t,i);n&&f.forEach(m=>{m.ed=m.ed+n,m.st=m.st+n}),h.textRuns=f;const p=i.reduce((m,_)=>typeof _=="string"?`${m}${_}`:`${m}${_.token}`,"");h.dataStream=`${r}${p}\r
12
+ `;let S;if(a){S=s.getSelectionRanges();const m=h.dataStream.length-2+n;S.forEach(_=>{_.startOffset=Math.max(0,Math.min(_.startOffset,m)),_.endOffset=Math.max(0,Math.min(_.endOffset,m))})}const I={...l,body:h};return s.setDocumentData(I,S),u}}}function zt(){const e=c.useDependency(c.ThemeService).getCurrentTheme();return g.useMemo(()=>{const n=[e.loopColor1,e.loopColor2,e.loopColor3,e.loopColor4,e.loopColor5,e.loopColor6,e.loopColor7,e.loopColor8,e.loopColor9,e.loopColor10,e.loopColor11,e.loopColor12],o=e.hyacinth700,s=e.verdancy800;return{formulaRefColors:n,numberColor:o,stringColor:s}},[e])}function Yt(r,e,t){const{formulaRefColors:n,numberColor:o,stringColor:s}=e,i=[],a=[],l=new Map;let d=0;for(let h=0,f=t.length;h<f;h++){const u=t[h];if(typeof u=="string"){const C=i[i.length-1],y=C?C.ed:0,E=y+u.length;i.push({st:y,ed:E});continue}if(r.hasDefinedNameDescription(u.token.trim()))continue;const{startIndex:p,endIndex:S,nodeType:I,token:m}=u;let _="";if(I===R.sequenceNodeType.REFERENCE){if(l.has(m))_=l.get(m);else{const C=d%n.length;_=n[C],l.set(m,_),d++}a.push({refIndex:h,themeColor:_,token:m})}else I===R.sequenceNodeType.NUMBER?_=o:(I===R.sequenceNodeType.STRING||I===R.sequenceNodeType.ARRAY)&&(_=s);_&&_.length>0&&i.push({st:p,ed:S+1,ts:{cl:{rgb:_}}})}return{textRuns:i,refSelections:a}}function Bn(r,e,t){const n=r.getCurrentTheme(),o=new c.ColorKit(e).setAlpha(.05).toRgbString();return{id:t,strokeWidth:1,stroke:e,fill:o,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:n.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}const Gt=(r,e)=>{const t=c.useDependency(c.ICommandService),n=c.useDependency(F.IShortcutService);g.useEffect(()=>{if(!e||!r)return;const s=`sheet.formula-embedding-editor.${e.getEditorId()}`,i=new c.DisposableCollection,a=l=>{var h;const d=e.getSelectionRanges();if(d.length===1){const f=d[0];switch(l){case F.KeyCode.ARROW_LEFT:{const u=Math.max(f.startOffset-1,0);e.setSelectionRanges([{startOffset:u,endOffset:u}]);break}case F.KeyCode.ARROW_RIGHT:{const u=(((h=e.getDocumentData().body)==null?void 0:h.dataStream)||",,").length-2,p=Math.min(f.endOffset+1,u);e.setSelectionRanges([{startOffset:p,endOffset:p}]);break}}}};return i.add(t.registerCommand({id:s,type:c.CommandType.OPERATION,handler(l,d){const{keyCode:h}=d;a(h)}})),[F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT,F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP].map(l=>({id:s,binding:l,preconditions:()=>!0,priority:900,staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keyCode:l}})).forEach(l=>{i.add(n.registerShortcut(l))}),()=>{i.dispose()}},[e,r])},Zt=(r,e)=>{const n=c.useDependency(K.IRenderManagerService).getRenderById(r),o=n==null?void 0:n.with(exports.RefSelectionsRenderService);g.useEffect(()=>{o&&(e?o==null||o.setRemainLastEnabled(!1):o==null||o.setRemainLastEnabled(!0))},[e,o])},gt=(r,e)=>{const t=c.useDependency(K.IRenderManagerService),n=c.useDependency(c.IContextService),o=c.useDependency(F.IContextMenuService),s=c.useDependency($.IRefSelectionsService),i=t.getRenderById(e),a=i==null?void 0:i.with(exports.RefSelectionsRenderService);g.useLayoutEffect(()=>{if(r){const l=a==null?void 0:a.enableSelectionChanging();return n.setContextValue($.DISABLE_NORMAL_SELECTIONS,!0),n.setContextValue(c.EDITOR_ACTIVATED,!0),()=>{n.setContextValue(c.EDITOR_ACTIVATED,!1),n.setContextValue($.DISABLE_NORMAL_SELECTIONS,!1),l==null||l.dispose()}}},[r]),g.useLayoutEffect(()=>{if(r)return()=>{s.clear()}},[r]),g.useEffect(()=>{if(r)return o.disable(),()=>{o.enable()}},[r]),g.useEffect(()=>{r&&(a==null||a.setSkipLastEnabled(!1))},[r])},Xt=()=>{g.useEffect(()=>()=>{},[])},Qt=r=>{const e=c.useDependency(c.IUniverInstanceService),t=c.useDependency($.SheetsSelectionsService);return g.useMemo(()=>{if(r){const o=e.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),s=o==null?void 0:o.getActiveSheet(),i=[...t.getCurrentSelections()];return()=>{const a=e.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),l=a==null?void 0:a.getActiveSheet();l&&l===s&&t.setSelections(i)}}return()=>{}},[r])},Jt=r=>{const e=()=>{if(r){const{scene:n,mainComponent:o}=r.render,s=r.render.with($e.DocSkeletonManagerService),{width:i,height:a}=r.getBoundingClientRect();s.getViewModel().getDataModel().updateDocumentDataPageSize(1/0),n.transformByState({width:i,height:a}),o==null||o.resize(i,a)}},t=g.useMemo(()=>c.debounce(()=>{var S;if(!r)return;const o=r.render.with($e.DocSkeletonManagerService).getSkeleton(),{scene:s,mainComponent:i}=r.render,a=s.getViewport(J.VIEWPORT_KEY.VIEW_MAIN),{actualWidth:l}=o.getActualSize(),{width:d,height:h}=r.getBoundingClientRect();let f=a==null?void 0:a.getScrollBar();const u=Math.max(l,d),p=h;s.transformByState({width:u,height:p}),i==null||i.resize(u,p),l>d?f==null?a&&new K.ScrollBar(a,{barSize:8,enableVertical:!1}):a==null||a.resetCanvasSizeAndUpdateScroll():(f=null,a==null||a.scrollToBarPos({x:0,y:0}),(S=a==null?void 0:a.getScrollBar())==null||S.dispose())},30),[r]);return g.useEffect(()=>{if(r){const n=setTimeout(()=>{e(),t()},500);return()=>{clearTimeout(n)}}},[r]),g.useEffect(()=>{if(r){const n=r.input$.subscribe(()=>{t()});return()=>{n.unsubscribe()}}},[r]),{resize:e,checkScrollBar:t}},ft=r=>typeof r=="string"?r===R.matchToken.COMMA:!1,Vn=r=>{if(typeof r=="object")return r.nodeType===R.sequenceNodeType.REFERENCE},qn=r=>r.filter(e=>ft(e)||Vn(e)),pt=r=>{if(r.endColumn<r.startColumn){const e=r.endColumn;r.endColumn=r.startColumn,r.startColumn=e}if(r.endRow<r.startRow){const e=r.endRow;r.endRow=r.startRow,r.startRow=e}return r};function Et(r,e,t){var n,o;return((o=(n=r.getUnit(e))==null?void 0:n.getSheetBySheetId(t))==null?void 0:o.getName())||""}const fe=(r,e=!1)=>e?r.map(t=>t.sheetName!==""?R.serializeRangeWithSheet(t.sheetName,t.range):R.serializeRange(t.range)):r.map(t=>R.serializeRange(t.range)),en=(r,e,t,n,o,s,i)=>{const a=c.useDependency(K.IRenderManagerService),l=c.useDependency(c.IUniverInstanceService),d=g.useRef(!1),h=a.getRenderById(e),f=h==null?void 0:h.with(exports.RefSelectionsRenderService),u=g.useRef([]),p=g.useMemo(()=>{const I=qn(n),m=u.current;return I.length===m.length?(m.splice(0),m.push(...I),m):I},[n]);u.current=p;const S=g.useRef();g.useEffect(()=>{if(r&&f){let I=!0;const m=(y,E)=>{var A;if(I||d.current){I=!1;return}const x=[...y],b=l.getUnit(e),T=((A=b==null?void 0:b.getActiveSheet())==null?void 0:A.getName())||"",O=p.map((M,B)=>{if(typeof M=="string"){if(!p[B-1])return null;const k=p[B+1];return ft(M)&&(ft(k)||B===p.length-1)?null:M}else if(M.nodeType===R.sequenceNodeType.REFERENCE){const w=R.deserializeRangeWithSheet(M.token);w.unitId=w.unitId===""?e:w.unitId,w.sheetName=w.sheetName===""?T:w.sheetName;const{unitId:k,sheetName:j}=w;if(s&&(k!==e||T!==j))return null;if(k===e&&T===j){const H=x.shift();if(H&&Et(l,e,H.rangeWithCoord.sheetId||"")===j){const Z={...M};return pt(H.rangeWithCoord),o?Z.token=R.serializeRangeWithSheet(T,H.rangeWithCoord):Z.token=R.serializeRange(H.rangeWithCoord),Z}}return M}return null}).filter(M=>!!M),N=fe(x.map(M=>{var B,w,k;return{range:M.rangeWithCoord,unitId:(B=M.rangeWithCoord.unitId)!=null?B:"",sheetName:Et(l,(w=M.rangeWithCoord.unitId)!=null?w:"",(k=M.rangeWithCoord.sheetId)!=null?k:"")}}),o).join(R.matchToken.COMMA),L=Se(O),D=`${L}${L&&N?R.matchToken.COMMA:""}${N}`,U=d.current;i(D,U?-1:D.length,E)},_=f.selectionMoveEnd$.subscribe(y=>{if(m(y,!0),d.current=!1,S.current){const{result:E,offset:x}=S.current;i(E,x,!0),S.current=void 0}}),C=f.selectionMoving$.pipe(Ue.throttleTime(50)).subscribe(y=>{m(y,!1)});return()=>{_.unsubscribe(),C.unsubscribe()}}},[r,p,f,o,s,i]),g.useEffect(()=>{if(r&&f){const I=new c.DisposableCollection,m=(y,E)=>{var U;let x=0,b=0,T=!1;const O=l.getUnit(e),N=((U=O==null?void 0:O.getActiveSheet())==null?void 0:U.getName())||"",L=p.map(A=>{if(typeof A=="string")return T||(b+=A.length),A;if(A.nodeType===R.sequenceNodeType.REFERENCE){const M=R.deserializeRangeWithSheet(y);if(M.unitId=M.unitId===""?e:M.unitId,M.sheetName=M.sheetName===""?N:M.sheetName,x===E){T=!0;const B={...A,token:y};return o?B.token=R.serializeRangeWithSheet(M.sheetName,M.range):B.token=R.serializeRange(M.range),x++,b+=B.token.length,B}return x++,T||(b+=A.token.length),A}return A}),D=Se(L);S.current={result:D,offset:b},i(D,-1,!1)};let _=0;const C=f.selectionMoveEnd$.subscribe(()=>{_=setTimeout(()=>{I.dispose(),f.getSelectionControls().forEach((E,x)=>{I.add(V.merge(E.selectionMoving$,E.selectionScaling$).pipe(V.map(b=>R.serializeRange(b)),V.distinctUntilChanged()).subscribe(b=>{d.current=!0,m(b,x)}))})},30)});return()=>{C.unsubscribe(),I.dispose(),clearTimeout(_)}}},[r,f,p,i])},vt=(r,e,t,n,o,s)=>{const i=c.useDependency(c.ICommandService),a=c.useDependency(J.IEditorService),d=c.useDependency(K.IRenderManagerService).getRenderById(e),h=d==null?void 0:d.with(exports.RefSelectionsRenderService);g.useEffect(()=>{if(r&&h)if(t){const f=i.onCommandExecuted(u=>{if(u.id===$.SetWorksheetActiveOperation.id){const p=h.getSelectionControls().length;for(let S=1;S<=p;S++)h.clearLastSelection();setTimeout(()=>{s()},30)}});return()=>{f.dispose()}}else{const f=i.beforeCommandExecuted(u=>{if(u.id===$.SetWorksheetActiveOperation.id){n(!1),o(),s();const p=a.getEditor(c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);p==null||p.focus()}});return()=>{f.dispose()}}},[r,h])},tn=r=>!r.some(t=>{if(typeof t=="string"){if(t!==R.matchToken.COMMA)return!0}else if(t.nodeType!==R.sequenceNodeType.REFERENCE)return!0;return!1}),Kn=(r,e,t)=>{const n=g.useRef(!0);g.useEffect(()=>{if(r){const o=setTimeout(()=>{n.current=!1},500);return()=>{clearTimeout(o)}}},[r]),g.useEffect(()=>{if(!n.current&&e){const o=tn(t);e(o,Se(t))}},[t,e])},zn="univer-sheet-range-selector-text-wrap",Yn="univer-sheet-range-selector-placeholder",Gn="univer-sheet-range-selector-error",Zn="univer-sheet-range-selector-error-wrap",Xn="univer-sheet-range-selector-text",Qn="univer-sheet-range-selector-active",Jn="univer-sheet-range-selector-icon",er="univer-sheet-range-selector-dialog-item",tr="univer-sheet-range-selector-dialog-item-delete",ue={sheetRangeSelectorTextWrap:zn,sheetRangeSelectorPlaceholder:Yn,sheetRangeSelectorError:Gn,sheetRangeSelectorErrorWrap:Zn,sheetRangeSelectorText:Xn,sheetRangeSelectorActive:Qn,sheetRangeSelectorIcon:Jn,sheetRangeSelectorDialogItem:er,sheetRangeSelectorDialogItemDelete:tr},Ae=()=>{};function nn(r){const{initValue:e,unitId:t,subUnitId:n,errorText:o,placeholder:s,actions:i,onChange:a=Ae,onVerify:l=Ae,onRangeSelectorDialogVisibleChange:d=Ae,onBlur:h=Ae,onFocus:f=Ae,isFocus:u=!0,isOnlyOneRange:p=!1,isSupportAcrossSheet:S=!1}=r,I=c.useDependency(J.IEditorService),m=c.useDependency(c.LocaleService),_=c.useDependency(c.ICommandService),C=c.useDependency(R.LexerTreeBuilder),y=g.useRef(null),[E,x]=g.useState(!1),[b,T]=g.useState(u),O=g.useMemo(()=>c.createInternalEditorID(`${P.RANGE_SELECTOR_SYMBOLS}-${c.generateRandomId(4)}`),[]),[N,L]=g.useState(),D=g.useRef(null),U=g.useMemo(()=>!E&&b,[E,b]),[A,M]=g.useState(()=>typeof e=="string"?e:fe(e,S).join(R.matchToken.COMMA));i&&(i.handleOutClick=(q,Y)=>{y.current&&!E&&!y.current.contains(q.target)&&Y()});const B=g.useMemo(()=>A.split(R.matchToken.COMMA).filter(q=>!!q).map(q=>R.deserializeRangeWithSheet(q)),[A]),w=g.useMemo(()=>o!==void 0,[o]),k=Qt(!E&&b),j=g.useMemo(()=>q=>{const Y=C.sequenceNodesBuilder(q);if(Y){if(tn(Y)){const he=Y.map(be=>{if(typeof be=="string")return be;if(be.nodeType===R.sequenceNodeType.REFERENCE){const Rt={...be},Me=R.deserializeRangeWithSheet(be.token);return Me.range=pt(Me.range),S||(Me.sheetName="",Me.unitId=""),Rt.token=fe([Me],S)[0],Rt}return be}),_e=Se(he);a(_e)}}else M("")},[S]),H=qt(N);g.useLayoutEffect(()=>{if(u){const q=setTimeout(()=>{T(u),u&&H()},30);return()=>{clearTimeout(q)}}else k(),T(u),N==null||N.blur()},[u,H]);const{checkScrollBar:Z}=Jt(N),ce=nt(),ae=g.useMemo(()=>ce(A),[A]),de=Kt(),X=St(t),te=(q,Y=!0)=>{if(!N)return;const ve=ce(q),he=de(N,ve,Y);X(he)},ie=Bt(ae,j,N),pe=g.useMemo(()=>(q,Y,ve)=>{te(q),M(q),ie(),ve&&(H(),Y!==-1&&setTimeout(()=>{const he={startOffset:Y,endOffset:Y};N==null||N.setSelectionRanges([he]);const _e=N==null?void 0:N.render.with(J.DocBackScrollRenderController);_e==null||_e.scrollToRange({...he,collapsed:!0})},50),Z())},[N]);en(U,t,n,ae,S,p,pe),gt(U,t),Zt(t,p),Wn(t,A,N),Kn(U,l,ae),Gt(U,N),Xt(),vt(U,t,S,T,h,()=>{U&&te(A)}),g.useEffect(()=>{if(N){const q=N.input$.pipe(V.throttleTime(100)).subscribe(Y=>{var he,_e;const ve=((_e=(he=Y.data.body)==null?void 0:he.dataStream)!=null?_e:"").replaceAll(/\n|\r/g,"").replaceAll(/,{2,}/g,",").replaceAll(/(^,)/g,"");te(ve,!1),M(ve),ie()});return()=>{q.unsubscribe()}}},[N]),g.useEffect(()=>{const q=_.onCommandExecuted(Y=>{Y.id===P.SetCellEditVisibleOperation.id&&(x(!1),d(!1),T(!1),h())});return()=>{q.dispose()}},[S]),g.useLayoutEffect(()=>{let q;if(D.current){q=I.register({autofocus:!0,editorUnitId:O,isSingle:!0,initialSnapshot:{id:O,body:{dataStream:`\r
13
+ `},documentStyle:{}}},D.current);const Y=I.getEditor(O);L(Y)}return()=>{q==null||q.dispose()}},[]),Vt(A,"",b,de,X,N);const z=()=>{setTimeout(()=>{f(),H(),T(!0)},30)},G=q=>{const Y=fe(q,S).join(R.matchToken.COMMA);te(Y),ie(),M(Y),x(!1),d(!1),setTimeout(()=>{N==null||N.setSelectionRanges([{startOffset:Y.length,endOffset:Y.length}])},30)},ne=()=>{x(!1),d(!1),setTimeout(H,30)},se=()=>{w||(H(),setTimeout(()=>{x(!0),d(!0)},30))};return v.jsxs("div",{className:ue.sheetRangeSelector,ref:y,children:[v.jsxs("div",{className:Wt(ue.sheetRangeSelectorTextWrap,{[ue.sheetRangeSelectorActive]:b&&!w,[ue.sheetRangeSelectorError]:w}),children:[v.jsx("div",{className:ue.sheetRangeSelectorText,ref:D,onMouseUp:z}),v.jsx(oe.Tooltip,{title:m.t("rangeSelector.buttonTooltip"),placement:"bottom",children:v.jsx(jt,{className:ue.sheetRangeSelectorIcon,onClick:se})}),o!==void 0?v.jsx("div",{className:ue.sheetRangeSelectorErrorWrap,children:o}):null,s!==void 0&&!A?v.jsx("div",{className:ue.sheetRangeSelectorPlaceholder,children:s}):null]}),E&&v.jsx(nr,{editorId:O,handleConfirm:G,handleClose:ne,unitId:t,subUnitId:n,initValue:B,visible:E,isOnlyOneRange:p,isSupportAcrossSheet:S})]})}function nr(r){const{editorId:e,handleConfirm:t,handleClose:n,visible:o,initValue:s,unitId:i,subUnitId:a,isOnlyOneRange:l,isSupportAcrossSheet:d}=r,h=c.useDependency(c.LocaleService),f=c.useDependency(J.IEditorService),u=c.useDependency(ge.IDescriptionService),p=c.useDependency(R.LexerTreeBuilder),I=c.useDependency(K.IRenderManagerService).getRenderById(i),m=I==null?void 0:I.with(exports.RefSelectionsRenderService),[_,C]=g.useState(()=>{if(l){const w=s[0];return w?fe([w],d):[""]}return fe(s,d)}),[y,E]=g.useState(()=>_.length-1),x=zt(),b=g.useMemo(()=>_.join(R.matchToken.COMMA),[_]),T=nt(),O=g.useMemo(()=>T(b),[b]),N=g.useMemo(()=>Yt(u,x,O).refSelections,[O]),L=()=>{C([]),setTimeout(()=>{n()},30)},D=(w,k)=>{k?m==null||m.setSkipLastEnabled(!1):m==null||m.setSkipLastEnabled(!0),C(j=>{const H=[...j];return H[w]=k,H})},U=w=>{m==null||m.setSkipLastEnabled(!1),C(k=>{if(k.length===1)return k;const j=[];return k.forEach((H,Z)=>{w!==Z&&j.push(H)}),j})},A=()=>{m==null||m.setSkipLastEnabled(!0),C(w=>(w.push(""),E(w.length-1),[...w]))},M=g.useCallback(w=>{var j;m==null||m.setSkipLastEnabled(!1);const k=w.split(R.matchToken.COMMA).filter(H=>!!H);C(l?[(j=k[0])!=null?j:""]:k)},[y,l]),B=St(i);return en(y>=0,i,a,O,d,l,M),gt(y>=0,i),Zt(i,l),vt(y>=0,i,d,V.noop,V.noop,()=>B(N)),g.useEffect(()=>{B(N)},[N]),g.useEffect(()=>{(_.length===0||_.length===1&&!_[0])&&(m==null||m.setSkipLastEnabled(!0))},[_]),g.useEffect(()=>{const w=f.focusStyle$.pipe(V.filter(k=>!!k&&c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY!==k)).subscribe(k=>{k!==e&&L()});return()=>{w.unsubscribe()}},[f,e]),v.jsx(oe.Dialog,{width:"328px",visible:o,title:h.t("rangeSelector.title"),draggable:!0,closeIcon:v.jsx(tt,{}),footer:v.jsxs("footer",{children:[v.jsx(oe.Button,{onClick:L,children:h.t("rangeSelector.cancel")}),v.jsx(oe.Button,{style:{marginLeft:10},onClick:()=>t(_.filter(w=>{const k=p.sequenceNodesBuilder(w);return k&&k.length===1&&typeof k[0]!="string"&&k[0].nodeType===R.sequenceNodeType.REFERENCE}).map(w=>R.deserializeRangeWithSheet(w)).map(w=>({...w,range:pt(w.range)}))),type:"primary",children:h.t("rangeSelector.confirm")})]}),onClose:L,children:v.jsxs("div",{className:ue.sheetRangeSelectorDialog,children:[_.map((w,k)=>v.jsxs("div",{className:ue.sheetRangeSelectorDialogItem,children:[v.jsx(oe.Input,{affixWrapperStyle:{width:"100%"},placeholder:h.t("rangeSelector.placeHolder"),onFocus:()=>E(k),value:w,onChange:j=>D(k,j)},`input_${k}`),_.length>1&&!l&&v.jsx(kt,{className:ue.sheetRangeSelectorDialogItemDelete,onClick:()=>U(k)})]},k)),!l&&v.jsx("div",{children:v.jsxs(oe.Button,{type:"link",size:"small",onClick:A,children:[v.jsx($t,{}),v.jsx("span",{children:h.t("rangeSelector.addAnotherRange")})]})})]})})}function rr(r,e){return Object.keys(r).filter(t=>isNaN(Number(t))&&t!=="DefinedName").map(t=>({label:e.t(`formula.functionType.${t.toLocaleLowerCase()}`),value:`${r[t]}`}))}function _t(r){if(!r.require&&!r.repeat)return`[${r.name}]`;if(r.require&&!r.repeat)return r.name;if(!r.require&&r.repeat)return`[${r.name},...]`;if(r.require&&r.repeat)return`${r.name},...`}const or=(r,e=100)=>{g.useEffect(()=>{let t=null;const n=()=>{t===null&&(t=window.setTimeout(()=>{r(),t=null},e))};return window.addEventListener("scroll",n),window.addEventListener("resize",n),()=>{t!==null&&clearTimeout(t),window.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[r,e])},sr="univer-formula-help-function",ir="univer-formula-help-function-title",cr="univer-formula-help-function-title-icons",ar="univer-formula-help-function-title-icon",lr="univer-formula-help-function-content",ur="univer-formula-help-function-content-inner",dr="univer-formula-help-function-content-params",fr="univer-formula-help-function-content-params-title",hr="univer-formula-help-function-content-params-detail",mr="univer-formula-help-function-active",Sr="univer-formula-help-decorator",gr="univer-formula-help-param",pr="univer-formula-help-param-prefix",vr="univer-formula-help-param-item",_r="univer-formula-help-param-active",ee={formulaHelpFunction:sr,formulaHelpFunctionTitle:ir,formulaHelpFunctionTitleIcons:cr,formulaHelpFunctionTitleIcon:ar,formulaHelpFunctionContent:lr,formulaHelpFunctionContentInner:ur,formulaHelpFunctionContentParams:dr,formulaHelpFunctionContentParamsTitle:fr,formulaHelpFunctionContentParamsDetail:hr,formulaHelpFunctionActive:mr,formulaHelpDecorator:Sr,formulaHelpParam:gr,formulaHelpParamPrefix:pr,formulaHelpParamItem:vr,formulaHelpParamActive:_r},yt=()=>{};function Cr(r){const{functionInfo:e,paramIndex:t,editorId:n,onParamsSwitch:o=yt,onClose:s=yt}=r,i=c.useDependency(J.IEditorService),a=c.useDependency(F.ISidebarService),l=g.useMemo(()=>!!e&&t>=0,[e,t]),[d,h]=g.useState(!0),[f,u]=g.useState([0,0]),p=c.useDependency(c.LocaleService),S=p.t("formula.prompt.required"),I=p.t("formula.prompt.optional");or(m),g.useEffect(()=>{const C=a.scrollEvent$.pipe(V.throttleTime(100)).subscribe(m);return()=>{C.unsubscribe()}},[]),g.useEffect(()=>{const C=i.getEditor(n);if(!C)return;const y=C.getBoundingClientRect(),{left:E,top:x,height:b}=y;u([E,x+b])},[e,t,n]);function m(){const C=i.getEditor(n);if(!C)return;const y=C.getBoundingClientRect(),{left:E,top:x,height:b}=y;return u([E,x+b]),y}function _(C){o&&o(C)}return v.jsx(oe.Popup,{visible:l,offset:f,children:e?v.jsxs("div",{className:ee.formulaHelpFunction,children:[v.jsxs("div",{className:ee.formulaHelpFunctionTitle,children:[v.jsx(Rr,{prefix:e.functionName,value:e.functionParameter,active:t,onClick:_}),v.jsxs("div",{className:ee.formulaHelpFunctionTitleIcons,children:[v.jsx("div",{className:ee.formulaHelpFunctionTitleIcon,style:{transform:d?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>h(!d),children:v.jsx(mt,{})}),v.jsx("div",{className:ee.formulaHelpFunctionTitleIcon,onClick:s,children:v.jsx(tt,{})})]})]}),v.jsx("div",{className:ee.formulaHelpFunctionContent,style:{height:d?"unset":0,padding:d?"revert-layer":0},children:v.jsxs("div",{className:ee.formulaHelpFunctionContentInner,children:[v.jsx(ot,{title:p.t("formula.prompt.helpExample"),value:`${e.functionName}(${e.functionParameter.map(C=>C.example).join(",")})`}),v.jsx(ot,{title:p.t("formula.prompt.helpAbstract"),value:e.description}),e&&e.functionParameter&&e.functionParameter.map((C,y)=>v.jsx(ot,{className:t===y?ee.formulaHelpFunctionActive:"",title:C.name,value:`${C.require?S:I} ${C.detail}`},y))]})})]}):v.jsx(v.Fragment,{})})}const ot=r=>v.jsxs("div",{className:ee.formulaHelpFunctionContentParams,children:[v.jsx("div",{className:`${ee.formulaHelpFunctionContentParamsTitle} ${r.className}`,children:r.title}),v.jsx("div",{className:ee.formulaHelpFunctionContentParamsDetail,children:r.value})]}),Rr=r=>{const{prefix:e,value:t,active:n,onClick:o}=r;return v.jsxs("div",{className:ee.formulaHelpParam,children:[v.jsxs("span",{className:ee.formulaHelpParamPrefix,children:[e,"("]}),t&&t.map((s,i)=>v.jsxs("span",{className:ee.formulaHelpParamItem,children:[v.jsx("span",{className:n===i?ee.formulaHelpFunctionActive:ee.formulaHelpParamActive,onClick:()=>o(i),children:_t(s)}),i===t.length-1?"":","]},i)),")"]})},Fe=r=>{const e=g.useRef();return e.current=r,e},Ir=(r,e,t)=>{const n=c.useDependency(ge.IDescriptionService),o=c.useDependency(R.LexerTreeBuilder),[s,i]=g.useState(),[a,l]=g.useState(-1),[d,h]=g.useState(!0),f=Fe(d),u=g.useRef(e);u.current=e;const p=()=>{i(void 0),l(-1),h(!1)};return g.useEffect(()=>{if(t&&r){const S=t.selectionChange$.pipe(V.debounceTime(50)).subscribe(m=>{if(m.textRanges.length===1){const[_]=m.textRanges;if(_.collapsed&&f.current){const C=o.getFunctionAndParameter(u.current,_.startOffset-1);if(C){const{functionName:y,paramIndex:E}=C,x=n.getFunctionInfo(y);i(x),l(E);return}}}i(void 0),l(-1)}),I=t.selectionChange$.pipe(V.filter(m=>m.isEditing),V.filter(m=>m.textRanges.length===1),V.map(m=>m.textRanges[0].startOffset),V.distinctUntilChanged()).subscribe(()=>{h(!0)});return()=>{S.unsubscribe(),I.unsubscribe()}}},[t,r]),g.useEffect(()=>{r||p()},[r]),{functionInfo:s,paramIndex:a,reset:p}},Be=(r,e,t=!0)=>{let n=-1;return r.reduce((o,s,i)=>{if(o.isFinish)return o;const a=o.currentIndex;if(typeof s!="string")o.currentIndex+=s.token.length;else{const l=s.length;o.currentIndex+=l}return(t?o.currentIndex===e:e>a&&e<=o.currentIndex)&&(n=i,o.isFinish=!0),o},{currentIndex:0,isFinish:!1}),n},Er=(r,e=[],t)=>{const n=c.useDependency(ge.IDescriptionService),[o,s]=g.useState([]),[i,a]=g.useState(""),l=g.useRef(-1),d=Fe({nodes:e}),h=()=>{s([]),a(""),l.current=-1};return g.useEffect(()=>{if(t&&r){const u=t.input$.pipe(V.debounceTime(300)).subscribe(()=>{const p=t.getSelectionRanges();if(p.length===1){const S=d.current.nodes,I=p[0];if(I.collapsed){const m=Be(S,I.startOffset-1,!1);l.current=m;const _=S[m];if(_&&typeof _!="string"&&_.nodeType===R.sequenceNodeType.FUNCTION){l.current=m;const C=_.token,y=n.getSearchListByNameFirstLetter(C);s(y),a(C);return}}}l.current=-1,a(""),s(S=>S!=null&&S.length?[]:S)});return()=>{u.unsubscribe()}}},[t,r]),g.useEffect(()=>{r||h()},[r]),{searchList:o,searchText:i,handlerFormulaReplace:u=>{const p=[...d.current.nodes];if(l.current!==-1){const S=p.splice(l.current+1),I=p.pop()||"";let m=(typeof I=="string"?I.length:I.token.length)-u.length;return p.push(u),S[0]!==R.matchToken.OPEN_BRACKET&&(p.push(R.matchToken.OPEN_BRACKET),m--),{text:Se([...p,...S]),offset:m}}},reset:h}},yr=r=>r.reduce((e,t)=>typeof t=="string"?e+t.length:e+t.token.length,0),Tr=(r,e=300)=>{let t=r,n=0;const o=()=>t,s=a=>{clearTimeout(n),t=a};function i(){clearTimeout(n),n=setTimeout(()=>{t=r},e)}return{getValue:o,setValue:s,reset:i}},Ct=[R.compareToken.EQUALS,R.compareToken.GREATER_THAN,R.compareToken.GREATER_THAN_OR_EQUAL,R.compareToken.LESS_THAN,R.compareToken.LESS_THAN_OR_EQUAL,R.compareToken.NOT_EQUAL,R.operatorToken.CONCATENATE,R.operatorToken.DIVIDED,R.operatorToken.MINUS,R.operatorToken.MULTIPLY,R.operatorToken.PLUS,R.operatorToken.POWER,R.matchToken.COMMA],Tt=[...Ct,R.matchToken.COLON,R.matchToken.OPEN_BRACKET],br=[...Ct,R.matchToken.CLOSE_BRACKET],st=r=>typeof r=="string"?r:r.token,Nr=(r,e,t)=>{const o=c.useDependency(K.IRenderManagerService).getRenderById(r),s=o==null?void 0:o.with(exports.RefSelectionsRenderService),i=g.useRef(!1),a=Fe(e),l=g.useMemo(()=>Tr(!1,300),[]),d=f=>{s&&s.setSkipLastEnabled(f),i.current=f},h=()=>i.current;return g.useEffect(()=>{if(t&&s){const f=t.input$.subscribe(p=>{const S=p.content;S.length===1&&Tt.includes(S)?(d(!0),l.setValue(!0),l.reset()):(d(!1),l.setValue(!1))}),u=t.selectionChange$.pipe(V.debounceTime(100)).subscribe(p=>{if(l.getValue())return;const S=p.textRanges;if(!S.length)return;if(S.length!==1){d(!1);return}const I=S[0];if(!I.collapsed){d(!1);return}const m=a.current;if(!m.length){d(!0);return}const _=I.startOffset-1;if(_===0){const T=Be(m,1,!1),O=m[T]||"",N=st(O);if(Ct.includes(N)){d(!0);return}}const C=Be(m,_,!1),y=m[C];if(!y){d(!1);return}const E=m[C+1]||"",x=st(E),b=st(y);Tt.includes(b)&&(!E||br.includes(x))?d(!0):d(!1)});return s.selectionMoveEnd$.subscribe(()=>{Promise.resolve().then(()=>{d(!1)})}),()=>{f.unsubscribe(),u.unsubscribe()}}},[t,s]),{setIsAddSelection:d,getIsNeedAddSelection:h,isLockSelectionEvent:l}},Fr=()=>{},xr=(r,e,t,n,o,s,i=Fr)=>{const a=c.useDependency(K.IRenderManagerService),l=c.useDependency(c.IUniverInstanceService),d=Fe(n),{getIsNeedAddSelection:h}=Nr(e,n,s),f=l.getUnit(e),u=E=>{var x,b;return(b=(x=f==null?void 0:f.getSheetBySheetId(E))==null?void 0:x.getName())!=null?b:""},p=g.useMemo(()=>u(t),[t]),S=c.useObservable(f==null?void 0:f.activeSheet$),I=Fe({activeSheet:S,sheetName:p}),m=a.getRenderById(e),_=m==null?void 0:m.with(exports.RefSelectionsRenderService),C=g.useRef(!1),y=g.useRef();g.useEffect(()=>{if(_&&r){let E=!0;const x=T=>{var U,A,M,B,w,k;if(E||C.current){E=!1;return}const O=s==null?void 0:s.getSelectionRanges();if((O==null?void 0:O.length)!==1)return;const L=O[0].startOffset-1,D=[...d.current];if(h())if(L!==0){const j=Be(D,L,!1);if(j===-1&&D.length)return;const H=T[T.length-1],Z=D.splice(j+1),ce=(U=H.rangeWithCoord.sheetId)!=null?U:t,ae={range:H.rangeWithCoord,unitId:(A=H.rangeWithCoord.unitId)!=null?A:e,sheetName:u(ce)},X=fe([ae],o&&ce!==t);D.push({token:X[0],nodeType:R.sequenceNodeType.REFERENCE});const te=[...D,...Z],ie=Se(te);i(ie,yr(D),!0)}else{const j=T[T.length-1],H=(M=j.rangeWithCoord.sheetId)!=null?M:t,Z={range:j.rangeWithCoord,unitId:(B=j.rangeWithCoord.unitId)!=null?B:e,sheetName:u(H)},ae=fe([Z],o&&H!==t);D.unshift({token:ae[0],nodeType:R.sequenceNodeType.REFERENCE});const de=Se(D);i(de,ae[0].length,!0)}else{let j=0;const H=D.map(X=>{var te,ie,pe;if(typeof X=="string")return X;if(X.nodeType===R.sequenceNodeType.REFERENCE){const z=R.deserializeRangeWithSheet(X.token);if(z.sheetName||(z.sheetName=p),o&&((te=I.current.activeSheet)==null?void 0:te.getName())!==z.sheetName)return X.token;const G=T[j];if(j++,!G)return"";const ne=(ie=G.rangeWithCoord.sheetId)!=null?ie:t,se={range:G.rangeWithCoord,unitId:(pe=G.rangeWithCoord.unitId)!=null?pe:e,sheetName:u(ne)};return fe([se],o)[0]}return X.token}).join(""),Z=[];for(let X=j;X<=T.length-1;X++){const te=T[X],ie=(w=te.rangeWithCoord.sheetId)!=null?w:t,pe={range:te.rangeWithCoord,unitId:(k=te.rangeWithCoord.unitId)!=null?k:e,sheetName:u(ie)},G=fe([pe],o&&ie!==t);Z.push(G[0])}const ce=D[D.length-1],ae=ce&&(typeof ce=="string"?!1:ce.nodeType===R.sequenceNodeType.REFERENCE),de=`${H}${Z.length&&ae?",":""}${Z.join(",")}`;i(de,de.length,!0)}},b=_.selectionMoveEnd$.subscribe(T=>{if(x(T),C.current=!1,y.current){const{result:O,offset:N}=y.current;i(O,N||-1,!0),y.current=void 0}});return()=>{b.unsubscribe()}}},[_,s,o,r]),g.useEffect(()=>{if(r&&_&&s){const E=new c.DisposableCollection,x=(O,N)=>{let L=0,D=0,U=!1;const{sheetName:A}=I.current,M=d.current.map(w=>{var k;if(typeof w=="string")return U||(D+=w.length),w;if(w.nodeType===R.sequenceNodeType.REFERENCE){const j=R.deserializeRangeWithSheet(w.token);if(j.unitId||(j.unitId=e),j.sheetName||(j.sheetName=A),o&&((k=I.current.activeSheet)==null?void 0:k.getName())!==j.sheetName)return U||(D+=w.token.length),w;if(L===N){U=!0;const H={...w,token:O};return o&&j.sheetName!==A?H.token=R.serializeRangeWithSheet(j.sheetName,R.deserializeRangeWithSheet(O).range):H.token=O,D+=H.token.length,L++,H}return U||(D+=w.token.length),L++,w}return U||(D+=w.token.length),w}),B=Se(M);i(B,-1,!1),y.current={result:B,offset:D}},b=()=>{E.dispose(),_.getSelectionControls().forEach((N,L)=>{E.add(V.merge(N.selectionMoving$,N.selectionScaling$).pipe(Ue.map(D=>R.serializeRange(D)),Ue.distinctUntilChanged()).subscribe(D=>{C.current=!0,x(D,L)}))})},T=V.merge(s.input$,_.selectionMoveEnd$).pipe(Ue.debounceTime(50)).subscribe(()=>{b()});return()=>{T.unsubscribe(),E.dispose()}}},[r,_,s])},Mr=(r,e,t)=>{const n=c.useDependency(R.LexerTreeBuilder),o=g.useRef(!0);g.useEffect(()=>{if(r){const s=setTimeout(()=>{o.current=!1},500);return()=>{clearTimeout(s)}}},[r]),g.useEffect(()=>{if(!o.current&&e){const s=n.checkIfAddBracket(t);e(s===0&&t.startsWith(R.operatorToken.EQUALS),`${t}`)}},[t,e])},Or="univer-sheet-embedding-formula-editor-active",Ar="univer-sheet-embedding-formula-editor-wrap",Dr="univer-sheet-embedding-formula-editor-text",Pr="univer-sheet-embedding-formula-editor-error-wrap",Lr="univer-sheet-embedding-formula-editor-error",Ne={sheetEmbeddingFormulaEditorActive:Or,sheetEmbeddingFormulaEditorWrap:Ar,sheetEmbeddingFormulaEditorText:Dr,sheetEmbeddingFormulaEditorErrorWrap:Pr,sheetEmbeddingFormulaEditorError:Lr},wr="univer-formula-search-function",kr="univer-formula-search-function-item",Ur="univer-formula-search-function-item-name",$r="univer-formula-search-function-item-name-light",jr="univer-formula-search-function-item-desc",Hr="univer-formula-search-function-item-active",Ce={formulaSearchFunction:wr,formulaSearchFunctionItem:kr,formulaSearchFunctionItemName:Ur,formulaSearchFunctionItemNameLight:$r,formulaSearchFunctionItemDesc:jr,formulaSearchFunctionItemActive:Hr},Wr=()=>{},Br=g.forwardRef(Vr);function Vr(r,e){const{searchText:t,searchList:n,onSelect:o,editorId:s,onClose:i=Wr}=r,a=c.useDependency(J.IEditorService),l=c.useDependency(F.IShortcutService),d=c.useDependency(c.ICommandService),h=g.useMemo(()=>!!n.length,[n]),f=g.useRef(),[u,p]=g.useState(0),[S,I]=g.useState([0,0]),m=g.useRef(!1),_=Fe({searchList:n,active:u}),C=a.getEditor(s);g.useEffect(()=>{const T=a.getEditor(s),O=T==null?void 0:T.getBoundingClientRect();if(O==null)return;const{left:N,top:L,height:D}=O;I([N,L+D]),p(0)},[t,n]);function y(T){m.current&&p(T)}function E(){m.current&&p(-1)}g.useEffect(()=>{if(!n.length)return;const T=`sheet.formula-embedding-editor.search_function.${s}`,O=new c.DisposableCollection,N=L=>{const{searchList:D,active:U}=_.current;switch(L){case F.KeyCode.ARROW_UP:{p(A=>{const M=Math.max(0,A-1);return x(M),M});break}case F.KeyCode.ARROW_DOWN:{p(A=>{const M=Math.min(D.length-1,A+1);return x(M),M});break}case F.KeyCode.TAB:case F.KeyCode.ENTER:{const A=D[U];o(A.name);break}case F.KeyCode.ESC:{o("");break}}};return O.add(d.registerCommand({id:T,type:c.CommandType.OPERATION,handler(L,D){const{keyCode:U}=D;N(U)}})),[F.KeyCode.ARROW_UP,F.KeyCode.ARROW_DOWN,F.KeyCode.ENTER,F.KeyCode.ESC,F.KeyCode.TAB].map(L=>({id:T,binding:L,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keyCode:L}})).forEach(L=>{O.add(l.registerShortcut(L))}),()=>{O.dispose()}},[n]);function x(T){var k;const O=(k=f.current)==null?void 0:k.querySelectorAll(`.${Ce.formulaSearchFunctionItem}`)[T];if(!O)return;const N=O.parentNode;if(!N)return;const D=N.getBoundingClientRect().top,U=N.offsetHeight,A=O.getBoundingClientRect(),M=A.top,B=A.height;if(M>=0&&M>D&&M-D+B<=U)return;const w=O.offsetTop-(U-B)/2;N.scrollTo({top:w,behavior:"smooth"})}const b=g.useMemo(()=>{let T="";return()=>{clearTimeout(T),m.current=!0,T=setTimeout(()=>{m.current=!1},300)}},[]);return n.length>0&&v.jsx(oe.Popup,{visible:h,offset:S,children:v.jsx("ul",{className:Ce.formulaSearchFunction,ref:T=>{f.current=T,e&&(e.current=T)},children:n.map((T,O)=>v.jsxs("li",{className:u===O?`${Ce.formulaSearchFunctionItem} ${Ce.formulaSearchFunctionItemActive}`:Ce.formulaSearchFunctionItem,onMouseEnter:()=>y(O),onMouseLeave:E,onMouseMove:b,onClick:()=>{o(T.name),C&&C.focus()},children:[v.jsxs("span",{className:Ce.formulaSearchFunctionItemName,children:[v.jsx("span",{className:Ce.formulaSearchFunctionItemNameLight,children:T.name.substring(0,t.length)}),v.jsx("span",{children:T.name.slice(t.length)})]}),v.jsx("span",{className:Ce.formulaSearchFunctionItemDesc,children:T.desc})]},O))})})}const bt=r=>r.startsWith(R.operatorToken.EQUALS)?r.slice(1):"",it=()=>{};function rn(r){const{errorText:e,initValue:t,unitId:n,subUnitId:o,isFocus:s=!0,isSupportAcrossSheet:i=!1,onFocus:a=it,onBlur:l=it,onChange:d,onVerify:h,actions:f}=r,u=c.useDependency(J.IEditorService),p=g.useRef(null),[S,I]=g.useState(()=>t.startsWith(R.operatorToken.EQUALS)?t:"");f&&(f.handleOutClick=(z,G)=>{p.current&&!p.current.contains(z.target)&&G()});const m=g.useMemo(()=>bt(S),[S]),_=g.useRef(null),[C,y]=g.useState(),[E,x]=g.useState(s),b=g.useRef(null),T=g.useMemo(()=>c.createInternalEditorID(`${P.EMBEDDING_FORMULA_EDITOR}-${c.generateRandomId(4)}`),[]),O=g.useMemo(()=>e!==void 0,[e]),N=nt(),L=g.useMemo(()=>N(m),[m]),D=Bt(L,z=>{d(`=${z}`)},C),U=Kt("="),A=St(n),M=(z,G=!0)=>{if(!C)return;const ne=N(z),se=U(C,ne,G);A(se)};Mr(E,h,S);const B=qt(C),w=Qt(E);g.useLayoutEffect(()=>{if(s){const z=setTimeout(()=>{x(s),s&&B()},30);return()=>{clearTimeout(z)}}else w(),x(s)},[s,B]);const{checkScrollBar:k}=Jt(C);gt(E,n),Gt(E,C),xr(E,n,o,L,i,C,(z,G,ne)=>{const se=`=${z}`;D(),I(se),M(z),ne&&(B(),G!==-1&&setTimeout(()=>{const q={startOffset:G+1,endOffset:G+1};C==null||C.setSelectionRanges([q]);const Y=C==null?void 0:C.render.with(J.DocBackScrollRenderController);Y==null||Y.scrollToRange({...q,collapsed:!0})},50),k())}),Xt(),vt(E,n,i,x,l,it);const{searchList:H,searchText:Z,handlerFormulaReplace:ce,reset:ae}=Er(E,L,C),{functionInfo:de,paramIndex:X,reset:te}=Ir(E,S,C);g.useEffect(()=>{if(C){const z=C.input$.subscribe(G=>{var se,q;const ne=((q=(se=G.data.body)==null?void 0:se.dataStream)!=null?q:"").replaceAll(/\n|\r/g,"");D(),I(ne),M(bt(ne),!1)});return()=>{z.unsubscribe()}}},[C]),Vt(m,"=",E,U,A,C),g.useLayoutEffect(()=>{let z;if(b.current){z=u.register({autofocus:!0,editorUnitId:T,isSingle:!0,initialSnapshot:{id:T,body:{dataStream:`${t}\r
14
+ `},documentStyle:{}}},b.current);const G=u.getEditor(T);y(G)}return()=>{z==null||z.dispose()}},[]);const ie=z=>{const G=ce(z);if(G){I(`=${G.text}`);const ne=C==null?void 0:C.getSelectionRanges();if(ne&&ne.length===1){const se=ne[0];if(se.collapsed){const q=G.offset;setTimeout(()=>{C==null||C.setSelectionRanges([{startOffset:se.startOffset-q,endOffset:se.endOffset-q}])},30)}}ae(),B(),M(G.text)}},pe=()=>{setTimeout(()=>{x(!0),a(),B()},30)};return v.jsxs("div",{className:Ne.sheetEmbeddingFormulaEditor,children:[v.jsxs("div",{className:Wt(Ne.sheetEmbeddingFormulaEditorWrap,{[Ne.sheetEmbeddingFormulaEditorActive]:E,[Ne.sheetEmbeddingFormulaEditorError]:O}),ref:p,children:[v.jsx("div",{className:Ne.sheetEmbeddingFormulaEditorText,ref:b,onMouseUp:pe}),e!==void 0?v.jsx("div",{className:Ne.sheetEmbeddingFormulaEditorErrorWrap,children:e}):null]}),v.jsx(Cr,{editorId:T,paramIndex:X,functionInfo:de,onClose:()=>{te(),B()}}),v.jsx(Br,{searchText:Z,editorId:T,searchList:H,onSelect:ie,ref:_})]})}const qr="sheets-formula-ui.base.config",Kr={};function zr(r){return r.getContextValue(c.FOCUSING_DOC)&&r.getContextValue(c.FOCUSING_UNIVER_EDITOR)&&r.getContextValue(c.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE)}function on(r,e=!1){return!e&&!(c.isFormulaString(r==null?void 0:r.f)||c.isFormulaId(r==null?void 0:r.si))?null:typeof(r==null?void 0:r.v)=="string"&&R.ERROR_TYPE_SET.has(r.v)?r.v:null}var Yr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,Zr=(r,e,t,n)=>{for(var o=n>1?void 0:n?Gr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Yr(e,t,o),o},De=(r,e)=>(t,n)=>e(t,n,r);const ke="SHEET_FORMULA_ALERT",Xr={[R.ErrorType.DIV_BY_ZERO]:"divByZero",[R.ErrorType.NAME]:"name",[R.ErrorType.VALUE]:"value",[R.ErrorType.NUM]:"num",[R.ErrorType.NA]:"na",[R.ErrorType.CYCLE]:"cycle",[R.ErrorType.REF]:"ref",[R.ErrorType.SPILL]:"spill",[R.ErrorType.CALC]:"calc",[R.ErrorType.ERROR]:"error",[R.ErrorType.CONNECT]:"connect",[R.ErrorType.NULL]:"null"};let ht=class extends c.Disposable{constructor(r,e,t,n,o,s){super(),this._context=r,this._hoverManagerService=e,this._cellAlertManagerService=t,this._localeService=n,this._formulaDataModel=o,this._zenZoneService=s,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.subscribe(r=>{var e,t,n,o,s;if(r){const a=this._context.unit.getActiveSheet();if(!a)return;const l=a.getCell(r.location.row,r.location.col),d=(o=(n=(t=(e=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:e[r.location.unitId])==null?void 0:t[r.location.subUnitId])==null?void 0:n[r.location.row])==null?void 0:o[r.location.col];if(c.isICellData(l)){const h=on(l,!!d);if(!h)return;const f=this._cellAlertManagerService.currentAlert.get(ke),u=(s=f==null?void 0:f.alert)==null?void 0:s.location;if(u&&u.row===r.location.row&&u.col===r.location.col&&u.subUnitId===r.location.subUnitId&&u.unitId===r.location.unitId)return;this._cellAlertManagerService.showAlert({type:P.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${Xr[h]}`),location:r.location,width:200,height:74,key:ke});return}}this._cellAlertManagerService.removeAlert(ke)}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(r=>{r&&this._cellAlertManagerService.removeAlert(ke)}))}};ht=Zr([De(1,c.Inject(P.HoverManagerService)),De(2,c.Inject(P.CellAlertManagerService)),De(3,c.Inject(c.LocaleService)),De(4,c.Inject(R.FormulaDataModel)),De(5,F.IZenZoneService)],ht);var Qr=Object.defineProperty,Jr=Object.getOwnPropertyDescriptor,eo=(r,e,t,n)=>{for(var o=n>1?void 0:n?Jr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Qr(e,t,o),o},Nt=(r,e)=>(t,n)=>e(t,n,r);let Ve=class extends c.Disposable{constructor(r,e){super(),this._autoFillService=r,this._lexerTreeBuilder=e,this._registerAutoFill()}_registerAutoFill(){const r={type:P.DATA_TYPE.FORMULA,priority:1001,match:e=>c.isFormulaString(e==null?void 0:e.f)||c.isFormulaId(e==null?void 0:e.si),isContinue:(e,t)=>e.type===P.DATA_TYPE.FORMULA,applyFunctions:{[P.APPLY_TYPE.COPY]:(e,t,n,o)=>{const{data:s,index:i}=e;return this._fillCopyFormula(s,t,n,i,o)}}};this._autoFillService.registerRule(r)}_fillCopyFormula(r,e,t,n,o){var l,d;const s=no(o),i=[],a=new Map;for(let h=1;h<=e;h++){const f=(h-1)%r.length,u=c.Tools.deepClone(r[f]);if(u){const p=((l=r[f])==null?void 0:l.f)||"",S=((d=r[f])==null?void 0:d.si)||"",I=c.isFormulaString(p);if(c.isFormulaId(S))u.si=S,u.f=null,u.v=null,u.p=null,u.t=null,t===c.Direction.DOWN||t===c.Direction.RIGHT?i.push(u):i.unshift(u);else if(I){let _=a.get(f);if(_)u.si=_,u.f=null,u.v=null,u.p=null,u.t=null;else{_=c.Tools.generateRandomId(6),a.set(f,_);const{offsetX:C,offsetY:y}=to(s,t),E=this._lexerTreeBuilder.moveFormulaRefOffset(p,C,y);u.si=_,u.f=E,u.v=null,u.p=null,u.t=null}t===c.Direction.DOWN||t===c.Direction.RIGHT?i.push(u):i.unshift(u)}}}return i}};Ve=eo([Nt(0,P.IAutoFillService),Nt(1,c.Inject(R.LexerTreeBuilder))],Ve);function to(r,e){let t=0,n=0;switch(e){case c.Direction.UP:n=-r;break;case c.Direction.RIGHT:t=r;break;case c.Direction.DOWN:n=r;break;case c.Direction.LEFT:t=-r;break}return{offsetX:t,offsetY:n}}function no(r){let e=0;for(const t in r)r[t].forEach(n=>{e+=n.data.length});return e}var ro=Object.defineProperty,oo=Object.getOwnPropertyDescriptor,so=(r,e,t,n)=>{for(var o=n>1?void 0:n?oo(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&ro(e,t,o),o},Pe=(r,e)=>(t,n)=>e(t,n,r);const io="default-paste-formula";let qe=class extends c.Disposable{constructor(r,e,t,n,o){super(),this._currentUniverSheet=r,this._lexerTreeBuilder=e,this._sheetClipboardService=t,this._injector=n,this._formulaDataModel=o,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:(r,e,t,n)=>this._onPasteCells(r,e,t,n,!0)}}_pasteWithFormulaHook(){return{id:io,priority:10,onPasteCells:(r,e,t,n)=>this._onPasteCells(r,e,t,n,!1)}}_onPasteCells(r,e,t,n,o){var f;if([P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(n.pasteType))return{undos:[],redos:[]};const s=this._currentUniverSheet.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),i=e.unitId||s.getUnitId(),a=e.subUnitId||((f=s.getActiveSheet())==null?void 0:f.getSheetId());if(!i||!a)return{undos:[],redos:[]};const l=e.range,d=t,h={copyType:n.copyType||P.COPY_TYPE.COPY,copyRange:r==null?void 0:r.range,pasteType:n.pasteType};return this._injector.invoke(u=>co(i,a,l,d,u,h,this._lexerTreeBuilder,this._formulaDataModel,o,r))}};qe=so([Pe(0,c.IUniverInstanceService),Pe(1,c.Inject(R.LexerTreeBuilder)),Pe(2,P.ISheetClipboardService),Pe(3,c.Inject(c.Injector)),Pe(4,c.Inject(R.FormulaDataModel))],qe);function co(r,e,t,n,o,s,i,a,l=!1,d){const h=[],f=[],u=ao(r,e,t,n,s,i,a,d),p={unitId:r,subUnitId:e,cellValue:u.getData()};h.push({id:$.SetRangeValuesMutation.id,params:p});const S=$.SetRangeValuesUndoMutationFactory(o,p);return f.push({id:$.SetRangeValuesMutation.id,params:S}),{undos:f,redos:h}}function ao(r,e,t,n,o,s,i,a){return a?o.pasteType===P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?uo(r,e,t,n,i,a):o.pasteType===P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?fo(r,e,t,n,s,i,a):ho(r,e,t,n,s,i,a):lo(r,e,t,n,i)}function lo(r,e,t,n,o){var a,l;const s=new c.ObjectMatrix,i=(l=(a=o.getFormulaData())==null?void 0:a[r])==null?void 0:l[e];return n.forValue((d,h,f)=>{var I;const u=t.rows[d],p=t.cols[h],S={};c.isFormulaString(f.v)?(S.v=null,S.f=`${f.v}`,S.si=null,S.p=null,s.setValue(u,p,S)):(I=i==null?void 0:i[u])!=null&&I[p]&&(S.v=f.v,S.f=null,S.si=null,S.p=null,s.setValue(u,p,S))}),s}function uo(r,e,t,n,o,s){var d,h,f,u;const i=new c.ObjectMatrix,a=(h=(d=o.getArrayFormulaCellData())==null?void 0:d[s.unitId])==null?void 0:h[s.subUnitId],l=(u=(f=o.getFormulaData())==null?void 0:f[r])==null?void 0:u[e];return n.forValue((p,S,I)=>{var x,b;const m=s.range.rows[p%s.range.rows.length],_=s.range.cols[S%s.range.cols.length],C=t.rows[p],y=t.cols[S],E={};if(c.isFormulaString(I.f)||c.isFormulaId(I.si))E.v=I.v,E.f=null,E.si=null,E.p=null,i.setValue(C,y,E);else if((x=a==null?void 0:a[m])!=null&&x[_]){const T=a[m][_];E.v=T.v,E.f=null,E.si=null,E.p=null,i.setValue(C,y,E)}else if((b=l==null?void 0:l[C])!=null&&b[y]){if(E.v=I.v,E.f=null,E.si=null,E.p=null,I.p){const T=sn(I);T&&(E.v=T)}i.setValue(C,y,E)}}),i}function fo(r,e,t,n,o,s,i){const a=new c.ObjectMatrix,l=new Map;return n.forValue((d,h,f)=>{const u=t.rows[d],p=t.cols[h],S={};if(c.isFormulaId(f.si)){if(i.unitId!==r||i.subUnitId!==e){const I=s.getFormulaStringByCell(i.range.rows[d%i.range.rows.length],i.range.cols[h%i.range.cols.length],i.subUnitId,i.unitId),m=t.cols[h]-i.range.cols[h%i.range.cols.length],_=t.rows[d]-i.range.rows[d%i.range.rows.length],C=o.moveFormulaRefOffset(I||"",m,_);S.si=null,S.f=C}else S.si=f.si,S.f=null;S.v=null,S.p=null,a.setValue(u,p,S)}else if(c.isFormulaString(f.f)){const I=`${d%i.range.rows.length}_${h%i.range.cols.length}`;let m=l.get(I);if(m)S.si=m,S.f=null;else{m=c.Tools.generateRandomId(6),l.set(I,m);const _=t.cols[h]-i.range.cols[h%i.range.cols.length],C=t.rows[d]-i.range.rows[d%i.range.rows.length],y=o.moveFormulaRefOffset(f.f||"",_,C);S.si=m,S.f=y}S.v=null,S.p=null,a.setValue(u,p,S)}else{if(S.v=f.v,S.f=null,S.si=null,S.p=null,f.p){const I=sn(f);I&&(S.v=I)}a.setValue(u,p,S)}}),a}function ho(r,e,t,n,o,s,i){var h,f;const a=new c.ObjectMatrix,l=new Map,d=(f=(h=s.getFormulaData())==null?void 0:h[r])==null?void 0:f[e];return n.forValue((u,p,S)=>{var C;const I=t.rows[u],m=t.cols[p],_={};if(c.isFormulaId(S.si)){if(i.unitId!==r||i.subUnitId!==e){const y=s.getFormulaStringByCell(i.range.rows[u%i.range.rows.length],i.range.cols[p%i.range.cols.length],i.subUnitId,i.unitId),E=t.cols[p]-i.range.cols[p%i.range.cols.length],x=t.rows[u]-i.range.rows[u%i.range.rows.length],b=o.moveFormulaRefOffset(y||"",E,x);_.si=null,_.f=b}else _.si=S.si,_.f=null;_.v=null,_.p=null,a.setValue(I,m,_)}else if(c.isFormulaString(S.f)){const y=`${u%i.range.rows.length}_${p%i.range.cols.length}`;let E=l.get(y);if(E)_.si=E,_.f=null;else{E=c.Tools.generateRandomId(6),l.set(y,E);const x=t.cols[p]-i.range.cols[p%i.range.cols.length],b=t.rows[u]-i.range.rows[u%i.range.rows.length],T=o.moveFormulaRefOffset(S.f||"",x,b);_.si=E,_.f=T}_.v=null,_.p=null,a.setValue(I,m,_)}else(C=d==null?void 0:d[I])!=null&&C[m]&&(_.v=S.v,_.f=null,_.si=null,_.p=S.p,a.setValue(I,m,_))}),a}function sn(r){if(r!=null&&r.p){const e=r==null?void 0:r.p.body;if(e==null)return;const t=e.dataStream;return t.substring(t.length-2,t.length)===c.DEFAULT_EMPTY_DOCUMENT_VALUE?t.substring(0,t.length-2):t}}var mo=Object.defineProperty,So=Object.getOwnPropertyDescriptor,go=(r,e,t,n)=>{for(var o=n>1?void 0:n?So(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&mo(e,t,o),o},ye=(r,e)=>(t,n)=>e(t,n,r);let Ke=class extends c.Disposable{constructor(e,t,n,o,s,i,a,l){super();W(this,"_previousShape");W(this,"_skeleton");this._context=e,this._sheetInterceptorService=t,this._formulaDataModel=n,this._themeService=o,this._renderManagerService=s,this._sheetSkeletonManagerService=i,this._commandService=a,this._logService=l,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var t,n;if(e==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton:o}=e,s=(n=(t=this._skeleton)==null?void 0:t.worksheet)==null?void 0:n.getSheetId();if(this._changeRuntime(o),s!==o.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId:i,sheetId:a}=e;this._updateArrayFormulaRangeShape(i,a)}}}))}_changeRuntime(e){this._skeleton=e}_initInterceptorEditorStart(){this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept($.BEFORE_CELL_EDIT,{handler:(e,t,n)=>{var S,I,m,_;const{row:o,col:s,unitId:i,subUnitId:a,worksheet:l}=t,d=this._formulaDataModel.getArrayFormulaRange(),h=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),e==null)return n(e);let f=null;const u=this._formulaDataModel.getFormulaStringByCell(o,s,a,i);if(u!==null&&(f={f:u}),e.v!=null&&e.v!==""&&((m=(I=(S=h[i])==null?void 0:S[a])==null?void 0:I[o])==null?void 0:m[s])==null)return f?{...e,...f}:n(e);const p=(_=d==null?void 0:d[i])==null?void 0:_[a];return p!=null&&(f=this._displayArrayFormulaRangeShape(p,o,s,i,a,l,f)),f?{...e,...f}:n(e)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{(e.id===R.SetFormulaCalculationResultMutation.id||e.id===R.SetArrayFormulaDataMutation.id&&t&&t.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{$.SetWorksheetRowAutoHeightMutation.id===e.id&&requestIdleCallback(()=>{const t=e.params,{unitId:n,subUnitId:o,rowsAutoHeightInfo:s}=t;this._refreshArrayFormulaRangeShapeByRow(n,o,s)})}))}_displayArrayFormulaRangeShape(e,t,n,o,s,i,a){return new c.ObjectMatrix(e).forValue((l,d,h)=>{if(h==null)return!0;const{startRow:f,startColumn:u,endRow:p,endColumn:S}=h;if(l===t&&d===n)return this._createArrayFormulaRangeShape(h,o),!1;if(t>=f&&t<=p&&n>=u&&n<=S){const I=i.getCell(f,u);if((I==null?void 0:I.v)===R.ErrorType.SPILL)return;const m=this._formulaDataModel.getFormulaDataItem(l,d,s,o);return m==null||m.f==null?!0:(a==null&&(a={f:m.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(h,o),!1)}}),a}_createArrayFormulaRangeShape(e,t){const n=this._themeService.getCurrentTheme(),o=new c.ColorKit(n.colorWhite).setAlpha(0).toString(),s={strokeWidth:1,stroke:n.hyacinth700,fill:o,widgets:{},hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1},i=this._renderManagerService.getRenderById(t);if(!i)return;const{scene:a}=i,{rangeWithCoord:l,primaryWithCoord:d}=i.with(P.ISheetSelectionRenderService).attachSelectionWithCoord({range:e,primary:null,style:s}),h=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!a||!h)return;const{rowHeaderWidth:f,columnHeaderHeight:u}=h,p=new P.SelectionShape(a,P.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,!1);p.update(l,f,u,s,d),p.setEvent(!1),this._previousShape=p}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(e,t){if(this._previousShape){const{startRow:n,endRow:o,startColumn:s,endColumn:i}=this._previousShape.getRange(),a={startRow:n,endRow:o,startColumn:s,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(a,e)}}_checkCurrentSheet(e,t){const n=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n)return!1;const o=n.worksheet;return o?o.unitId===e&&o.getSheetId()===t:!1}_updateArrayFormulaRangeShape(e,t){this._checkCurrentSheet(e,t)&&this._previousShape&&this._refreshArrayFormulaRangeShape(e)}_refreshArrayFormulaRangeShapeByRow(e,t,n){if(!this._checkCurrentSheet(e,t)||!this._previousShape)return;const{startRow:o,endRow:s,startColumn:i,endColumn:a}=this._previousShape.getRange();for(let l=0;l<n.length;l++){const{row:d}=n[l];if(o>=d){const h={startRow:o,endRow:s,startColumn:i,endColumn:a};this._refreshArrayFormulaRangeShape(e,h);break}}}};Ke=go([ye(1,c.Inject($.SheetInterceptorService)),ye(2,c.Inject(R.FormulaDataModel)),ye(3,c.Inject(c.ThemeService)),ye(4,K.IRenderManagerService),ye(5,c.Inject(P.SheetSkeletonManagerService)),ye(6,c.ICommandService),ye(7,c.ILogService)],Ke);var po=Object.defineProperty,vo=Object.getOwnPropertyDescriptor,_o=(r,e,t,n)=>{for(var o=n>1?void 0:n?vo(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&po(e,t,o),o},Ft=(r,e)=>(t,n)=>e(t,n,r);const Co={tl:{size:6,color:"#409f11"}};let ze=class extends c.RxDisposable{constructor(r,e){super(),this._sheetInterceptorService=r,this._formulaDataModel=e,this.disposeWithMe(this._sheetInterceptorService.intercept($.INTERCEPTOR_POINT.CELL_CONTENT,{effect:c.InterceptorEffectEnum.Style,handler:(t,n,o)=>{var a,l,d,h;const s=(h=(d=(l=(a=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:a[n.unitId])==null?void 0:l[n.subUnitId])==null?void 0:d[n.row])==null?void 0:h[n.col];return on(t,!!s)?o({...t,markers:{...t==null?void 0:t.markers,...Co}}):o(t)},priority:10}))}};ze=_o([Ft(0,c.Inject($.SheetInterceptorService)),Ft(1,c.Inject(R.FormulaDataModel))],ze);function Ro(){const r=c.useDependency(ge.TriggerCalculationController),e=c.useDependency(c.ICommandService),t=c.useObservable(r.progress$),n=g.useCallback(()=>{e.executeCommand(R.SetFormulaCalculationStopMutation.id)},[e]),o=g.useCallback(()=>{r.clearProgress()},[r]);return v.jsx(F.ProgressBar,{progress:t,onTerminate:n,onClearProgress:o})}const Io=(r,e=100)=>{g.useEffect(()=>{let t=null;const n=()=>{t===null&&(t=window.setTimeout(()=>{r(),t=null},e))};return window.addEventListener("scroll",n),window.addEventListener("resize",n),()=>{t!==null&&clearTimeout(t),window.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[r,e])},Eo="univer-formula-help-function",yo="univer-formula-help-function-title",To="univer-formula-help-function-title-icons",bo="univer-formula-help-function-title-icon",No="univer-formula-help-function-content",Fo="univer-formula-help-function-content-inner",xo="univer-formula-help-function-content-params",Mo="univer-formula-help-function-content-params-title",Oo="univer-formula-help-function-content-params-detail",Ao="univer-formula-help-function-active",Do="univer-formula-help-decorator",Po="univer-formula-help-param",Lo="univer-formula-help-param-prefix",wo="univer-formula-help-param-item",ko="univer-formula-help-param-active",Q={formulaHelpFunction:Eo,formulaHelpFunctionTitle:yo,formulaHelpFunctionTitleIcons:To,formulaHelpFunctionTitleIcon:bo,formulaHelpFunctionContent:No,formulaHelpFunctionContentInner:Fo,formulaHelpFunctionContentParams:xo,formulaHelpFunctionContentParamsTitle:Mo,formulaHelpFunctionContentParamsDetail:Oo,formulaHelpFunctionActive:Ao,formulaHelpDecorator:Do,formulaHelpParam:Po,formulaHelpParamPrefix:Lo,formulaHelpParamItem:wo,formulaHelpParamActive:ko};function Uo(){const[r,e]=g.useState(!1),[t,n]=g.useState(!0),[o,s]=g.useState(!0),[i,a]=g.useState(0),[l,d]=g.useState([0,0]),[h,f]=g.useState({left:0,top:0}),[u,p]=g.useState(null),S=c.useDependency(xe),I=c.useDependency(c.LocaleService),m=I.t("formula.prompt.required"),_=I.t("formula.prompt.optional"),C=c.useDependency(c.IUniverInstanceService),y=c.useDependency(J.IEditorService),E=c.useDependency(F.ISidebarService),x=c.useInjector();Io(b),g.useEffect(()=>{const L=S.help$.subscribe(U=>{const{visible:A,paramIndex:M,functionInfo:B}=U;if(!A){e(A);return}const w=T();if(w==null)return;const{left:k,top:j,height:H}=w;B.description===""&&B.functionParameter.length===0||(d([k,j+H]),a(M),p(B),f({left:k,top:j}),e(A))}),D=E.scrollEvent$.pipe(V.throttleTime(100)).subscribe(b);return()=>{L==null||L.unsubscribe(),D.unsubscribe()}},[]);function b(){if(!o)return;const L=T();if(L==null)return;const{left:D,top:U,height:A}=L;d([D,U+A])}function T(){const L=C.getCurrentUniverDocInstance();if(!L)return;const D=L.getUnitId();if(!y.isEditor(D))return;const U=y.getEditor(D);return U==null?void 0:U.getBoundingClientRect()}function O(L){a(L)}function N(){s(!o),x.get(F.ILayoutService).focus()}return v.jsx(v.Fragment,{children:o?v.jsx(oe.Popup,{visible:r,offset:l,children:u?v.jsxs("div",{className:Q.formulaHelpFunction,children:[v.jsxs("div",{className:Q.formulaHelpFunctionTitle,children:[v.jsx($o,{prefix:u.functionName,value:u.functionParameter,active:i,onClick:O}),v.jsxs("div",{className:Q.formulaHelpFunctionTitleIcons,children:[v.jsx("div",{className:Q.formulaHelpFunctionTitleIcon,style:{transform:t?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>n(!t),children:v.jsx(mt,{})}),v.jsx("div",{className:Q.formulaHelpFunctionTitleIcon,onClick:N,children:v.jsx(tt,{})})]})]}),v.jsx("div",{className:Q.formulaHelpFunctionContent,style:{height:t?"unset":0,padding:t?"revert-layer":0},children:v.jsxs("div",{className:Q.formulaHelpFunctionContentInner,children:[v.jsx(ct,{title:I.t("formula.prompt.helpExample"),value:`${u.functionName}(${u.functionParameter.map(L=>L.example).join(",")})`}),v.jsx(ct,{title:I.t("formula.prompt.helpAbstract"),value:u.description}),u&&u.functionParameter&&u.functionParameter.map((L,D)=>v.jsx(ct,{className:i===D?Q.formulaHelpFunctionActive:"",title:L.name,value:`${L.require?m:_} ${L.detail}`},D))]})})]}):v.jsx(v.Fragment,{})}):r?v.jsx("div",{className:Q.formulaHelpDecorator,onClick:()=>s(!o),style:{left:h.left-24,top:h.top},children:v.jsx(Ut,{})}):v.jsx(v.Fragment,{})})}const ct=r=>v.jsxs("div",{className:Q.formulaHelpFunctionContentParams,children:[v.jsx("div",{className:`${Q.formulaHelpFunctionContentParamsTitle} ${r.className}`,children:r.title}),v.jsx("div",{className:Q.formulaHelpFunctionContentParamsDetail,children:r.value})]}),$o=r=>{const{prefix:e,value:t,active:n,onClick:o}=r;return v.jsxs("div",{className:Q.formulaHelpParam,children:[v.jsxs("span",{className:Q.formulaHelpParamPrefix,children:[e,"("]}),t&&t.map((s,i)=>v.jsxs("span",{className:Q.formulaHelpParamItem,children:[v.jsx("span",{className:n===i?Q.formulaHelpFunctionActive:Q.formulaHelpParamActive,onClick:()=>o(i),children:_t(s)}),i===t.length-1?"":","]},i)),")"]})},jo="univer-formula-search-function",Ho="univer-formula-search-function-item",Wo="univer-formula-search-function-item-name",Bo="univer-formula-search-function-item-name-light",Vo="univer-formula-search-function-item-desc",qo="univer-formula-search-function-item-active",Re={formulaSearchFunction:jo,formulaSearchFunctionItem:Ho,formulaSearchFunctionItemName:Wo,formulaSearchFunctionItemNameLight:Bo,formulaSearchFunctionItemDesc:Vo,formulaSearchFunctionItemActive:qo};function Ko(){const[r,e]=g.useState(!1),[t,n]=g.useState(0),[o,s]=g.useState([0,0]),[i,a]=g.useState([]),[l,d]=g.useState(""),h=g.useRef(null),f=c.useDependency(xe),u=c.useDependency(c.IUniverInstanceService),p=c.useDependency(J.IEditorService);g.useEffect(()=>{let C=[],y=0;const E=f.search$.subscribe(T=>{const{visible:O,searchText:N,searchList:L}=T;if(!O){e(O);return}const D=S();if(D==null)return;const{left:U,top:A,height:M}=D;d(N),a(L),C=L,s([U,A+M]),e(O),n(0),y=0}),x=f.navigate$.subscribe(T=>{const{direction:O}=T;if(O===c.Direction.UP){let N=y-1;N=N<0?C.length-1:N,n(N),y=N}else if(O===c.Direction.DOWN){let N=y+1;N=N>=C.length?0:N,n(N),y=N}_(y)}),b=f.accept$.subscribe(T=>{const O=C[y].name;f.acceptFormulaName(O)});return()=>{E==null||E.unsubscribe(),x==null||x.unsubscribe(),b==null||b.unsubscribe()}},[]);function S(){const y=u.getCurrentUniverDocInstance().getUnitId();if(!p.isEditor(y))return;const E=p.getEditor(y);return E==null?void 0:E.getBoundingClientRect()}function I(C){n(C)}function m(){n(-1)}function _(C){var U;const y=(U=h.current)==null?void 0:U.querySelectorAll(`.${Re.formulaSearchFunctionItem}`)[C];if(!y)return;const E=y.parentNode;if(!E)return;const b=E.getBoundingClientRect().top,T=E.offsetHeight,O=y.getBoundingClientRect(),N=O.top,L=O.height;if(N>=0&&N>b&&N-b+L<=T)return;const D=y.offsetTop-(T-L)/2;E.scrollTo({top:D,behavior:"smooth"})}return i.length>0&&v.jsx(oe.Popup,{visible:r,offset:o,children:v.jsx("ul",{className:Re.formulaSearchFunction,ref:h,children:i.map((C,y)=>v.jsxs("li",{className:t===y?`${Re.formulaSearchFunctionItem} ${Re.formulaSearchFunctionItemActive}`:Re.formulaSearchFunctionItem,onMouseEnter:()=>I(y),onMouseLeave:m,onClick:()=>f.acceptFormulaName(C.name),children:[v.jsxs("span",{className:Re.formulaSearchFunctionItemName,children:[v.jsx("span",{className:Re.formulaSearchFunctionItemNameLight,children:C.name.substring(0,l.length)}),v.jsx("span",{children:C.name.slice(l.length)})]}),v.jsx("span",{className:Re.formulaSearchFunctionItemDesc,children:C.desc})]},y))})})}function zo(){return v.jsxs(v.Fragment,{children:[v.jsx(Ko,{}),v.jsx(Uo,{})]})}const Yo="univer-formula-more-functions",Go="univer-formula-more-functions-operation",xt={formulaMoreFunctions:Yo,formulaMoreFunctionsOperation:Go};function cn(r){const{prefix:e,value:t}=r;return v.jsxs("div",{children:[v.jsxs("span",{children:[e,"("]}),t&&t.map((n,o)=>v.jsxs("span",{children:[v.jsx("span",{children:_t(n)}),o===t.length-1?"":","]},o)),")"]})}const Zo="univer-formula-function-params",Xo="univer-formula-function-params-title",Qo="univer-formula-function-params-detail",at={formulaFunctionParams:Zo,formulaFunctionParamsTitle:Xo,formulaFunctionParamsDetail:Qo};function we(r){const{className:e,value:t,title:n}=r;return v.jsxs("div",{className:at.formulaFunctionParams,children:[v.jsx("div",{className:`${at.formulaFunctionParamsTitle} ${e}`,children:n}),v.jsx("div",{className:at.formulaFunctionParamsDetail,children:t})]})}const Jo="univer-formula-input-params-list",es="univer-formula-input-params-list-item-name",ts="univer-formula-input-params-list-item-selector",Le={formulaInputParamsList:Jo,formulaInputParamsListItemName:es,formulaInputParamsListItemSelector:ts};function ns(r){const{functionInfo:e,onChange:t}=r;if(!e)return null;g.useState([]);const[n,o]=g.useState(e.functionParameter),[s,i]=g.useState(-1);return v.jsxs("div",{className:Le.formulaInputParams,children:[v.jsx("div",{className:Le.formulaInputParamsList,children:n.map((a,l)=>v.jsxs("div",{children:[v.jsx("div",{className:Le.formulaInputParamsListItemName,children:a.name}),v.jsx("div",{className:Le.formulaInputParamsListItemSelector})]},l))}),v.jsx("div",{className:Le.formulaInputParamsInfo,children:v.jsx(we,{title:s===-1?v.jsx(cn,{prefix:e.functionName,value:n}):n[s].name,value:s===-1?e.description:n[s].detail})})]})}const rs="univer-formula-select-function-select",os="univer-formula-select-function-result",ss="univer-formula-select-function-result-item",is="univer-formula-select-function-result-item-name-light",cs="univer-formula-select-function-result-item-selected",as="univer-formula-select-function-result-item-active",ls="univer-formula-select-function-content",me={formulaSelectFunctionSelect:rs,formulaSelectFunctionResult:os,formulaSelectFunctionResultItem:ss,formulaSelectFunctionResultItemNameLight:is,formulaSelectFunctionResultItemSelected:cs,formulaSelectFunctionResultItemActive:as,formulaSelectFunctionContent:ls};function us(r){const{onChange:e}=r,t="-1",[n,o]=g.useState(""),[s,i]=g.useState([]),[a,l]=g.useState(0),[d,h]=g.useState(t),[f,u]=g.useState(0),[p,S]=g.useState(null),I=c.useDependency(ge.IDescriptionService),m=c.useDependency(c.LocaleService),_=c.useDependency(F.ISidebarService),C=c.useObservable(_.sidebarOptions$),y=rr(R.FunctionType,m);y.unshift({label:m.t("formula.moreFunctions.allFunctions"),value:t});const E=m.t("formula.prompt.required"),x=m.t("formula.prompt.optional");g.useEffect(()=>{O(t)},[]),g.useEffect(()=>{T(0)},[s]),g.useEffect(()=>{C!=null&&C.visible&&(o(""),i([]),l(0),h(t),u(0),S(null),O(t))},[C]);const b=A=>{if(n.trim()==="")return A;const M=new RegExp(`(${n.toLocaleUpperCase()})`);return A.split(M).filter(Boolean).map((w,k)=>w.match(M)?v.jsx("span",{className:me.formulaSelectFunctionResultItemNameLight,children:w},k):w)},T=A=>{if(s.length===0){S(null);return}u(A);const M=I.getFunctionInfo(s[A].name);if(!M){S(null);return}S(M),e(M)};function O(A){h(A);const M=I.getSearchListByType(+A);i(M)}function N(A){o(A);const M=I.getSearchListByName(A);i(M)}function L(A){if(A.stopPropagation(),A.key==="ArrowDown"){const M=a+1;l(M===s.length?0:M)}else if(A.key==="ArrowUp"){const M=a-1;l(M===-1?s.length-1:M)}else A.key==="Enter"&&T(a)}const D=A=>{l(A)},U=()=>{l(-1)};return v.jsxs("div",{children:[v.jsxs("div",{className:me.formulaSelectFunctionSelect,children:[v.jsx(oe.Select,{value:d,options:y,onChange:O}),v.jsx(oe.Input,{placeholder:m.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:L,value:n,onChange:N,size:"large",allowClear:!0})]}),v.jsx("ul",{className:me.formulaSelectFunctionResult,onKeyDown:L,tabIndex:-1,children:s.map(({name:A},M)=>v.jsxs("li",{className:a===M?`${me.formulaSelectFunctionResultItem} ${me.formulaSelectFunctionResultItemActive}`:me.formulaSelectFunctionResultItem,onMouseEnter:()=>D(M),onMouseLeave:U,onClick:()=>T(M),children:[f===M&&v.jsx(wt,{className:me.formulaSelectFunctionResultItemSelected}),v.jsx("span",{className:me.formulaSelectFunctionResultItemName,children:b(A)})]},M))}),p&&v.jsxs("div",{className:me.formulaSelectFunctionContent,children:[v.jsx(we,{title:p.functionName,value:p.description}),v.jsx(we,{title:m.t("formula.moreFunctions.syntax"),value:v.jsx(cn,{prefix:p.functionName,value:p.functionParameter})}),v.jsx(we,{title:m.t("formula.prompt.helpExample"),value:`${p.functionName}(${p.functionParameter.map(A=>A.example).join(",")})`}),p.functionParameter&&p.functionParameter.map((A,M)=>v.jsx(we,{title:A.name,value:`${A.require?E:x} ${A.detail}`},M))]})]})}function ds(){const r=P.useActiveWorkbook(),[e,t]=g.useState(!0),[n,o]=g.useState(!1),[s,i]=g.useState(null),a=c.useDependency(c.LocaleService),l=c.useDependency(J.IEditorService);function d(){t(!e),o(!n)}function h(){l.setFormula(`=${s==null?void 0:s.functionName}(`)}return v.jsxs("div",{className:xt.formulaMoreFunctions,children:[e&&v.jsx(us,{onChange:i}),n&&v.jsx(ns,{functionInfo:s,onChange:()=>{}}),v.jsxs("div",{className:xt.formulaMoreFunctionsOperation,children:[n&&v.jsx(oe.Button,{type:"primary",size:"small",onClick:d,children:a.t("formula.moreFunctions.next")}),n&&v.jsx(oe.Button,{size:"small",onClick:d,children:a.t("formula.moreFunctions.prev")}),e&&!!r&&v.jsx(oe.Button,{type:"primary",size:"small",onClick:h,children:a.t("formula.moreFunctions.confirm")})]})]})}function fs(r){return{id:Xe.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:F.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:F.getMenuHiddenObservable(r,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(r,{workbookTypes:[$.WorkbookEditablePermission],worksheetTypes:[$.WorksheetEditPermission,$.WorksheetSetCellValuePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint]})}}function hs(r){return{id:Qe.id,title:"formula.insert.more",type:F.MenuItemType.BUTTON}}function ms(r){return r.get(c.IUniverInstanceService).getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).pipe(V.switchMap(n=>n&&r.get(F.IClipboardInterfaceService)?new V.Observable(s=>s.next(!r.get(F.IClipboardInterfaceService).supportClipboard)):V.of(!0)))}function Ss(r){return{id:Ze.id,type:F.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:ms(r).pipe(V.combineLatestWith(P.getCurrentRangeDisable$(r,{workbookTypes:[$.WorkbookEditablePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint],worksheetTypes:[$.WorksheetSetCellValuePermission,$.WorksheetEditPermission]})),V.map(([e,t])=>e||t))}}const gs={[F.RibbonStartGroup.FORMULAS_INSERT]:{[Xe.id]:{order:1,menuItemFactory:fs,[Qe.id]:{order:1,menuItemFactory:hs}}},[P.PASTE_SPECIAL_MENU_ID]:{[Ze.id]:{order:4,menuItemFactory:Ss}}},an="meta_key_ctrl_And_Shift",rt=[F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP,F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT],ps=[...rt,F.KeyCode.ENTER,F.KeyCode.TAB,F.KeyCode.ESC];function vs(){const r=[];for(const e of ps)r.push({id:Ie.id,binding:e,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keycode:e}});return r}function _s(){const r=[];for(const e of rt)r.push({id:Ie.id,binding:e|F.MetaKeys.SHIFT,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keycode:e,metaKey:F.MetaKeys.SHIFT}});return r}function Cs(){const r=[];for(const e of rt)r.push({id:Ie.id,binding:e|F.MetaKeys.CTRL_COMMAND,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keycode:e,metaKey:F.MetaKeys.CTRL_COMMAND}});return r}function Rs(){const r=[];for(const e of rt)r.push({id:Ie.id,binding:e|F.MetaKeys.SHIFT|F.MetaKeys.CTRL_COMMAND,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keycode:e,metaKey:an}});return r}const Is={id:Je.id,binding:F.KeyCode.F4,preconditions:r=>P.whenFormulaEditorActivated(r)};function Es(){const r=[];for(const e of[F.KeyCode.ENTER,F.KeyCode.TAB,F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP])r.push({id:Ie.id,binding:e,preconditions:t=>zr(t),staticParameters:{eventType:K.DeviceInputEventType.Keyboard,keycode:e,isSingleEditor:!0}});return r}var ys=Object.defineProperty,Ts=Object.getOwnPropertyDescriptor,bs=(r,e,t,n)=>{for(var o=n>1?void 0:n?Ts(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&ys(e,t,o),o},Te=(r,e)=>(t,n)=>e(t,n,r);let Ye=class extends c.Disposable{constructor(r,e,t,n,o,s,i){super(),this._injector=r,this._menuManagerService=e,this._commandService=t,this._shortcutService=n,this._uiPartsService=o,this._renderManagerService=s,this._componentManager=i,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(gs)}_registerCommands(){[Ze,Xe,Qe,We,je,Ie,Je].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r)))}_registerShortcuts(){[...vs(),..._s(),...Cs(),...Rs(),...Es(),Is].forEach(r=>{this.disposeWithMe(this._shortcutService.registerShortcut(r))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(F.BuiltInUIPart.CONTENT,()=>c.connectInjector(zo,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent(P.SheetsUIPart.FORMULA_AUX,()=>c.connectInjector(Ro,this._injector))),this._componentManager.register(At,ds)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,[Ke]))}};Ye=bs([Te(0,c.Inject(c.Injector)),Te(1,F.IMenuManagerService),Te(2,c.ICommandService),Te(3,F.IShortcutService),Te(4,F.IUIPartsService),Te(5,K.IRenderManagerService),Te(6,c.Inject(F.ComponentManager))],Ye);function lt(r,e,t){const n=r.getCurrentTheme(),o=new c.ColorKit(e).setAlpha(.05).toRgbString();return{id:t,strokeWidth:1,stroke:e,fill:o,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:n.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}var Ns=Object.defineProperty,Fs=Object.getOwnPropertyDescriptor,xs=(r,e,t,n)=>{for(var o=n>1?void 0:n?Fs(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Ns(e,t,o),o},re=(r,e)=>(t,n)=>e(t,n,r);const Ms=[c.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];let Ge=class extends c.Disposable{constructor(e,t,n,o,s,i,a,l,d,h,f,u,p,S,I){super();W(this,"_listenInputCache",new Set);W(this,"_formulaRefColors",[]);W(this,"_previousSequenceNodes");W(this,"_previousRangesCount",0);W(this,"_previousInsertRefStringIndex");W(this,"_currentInsertRefStringIndex",-1);W(this,"_arrowMoveActionState",0);W(this,"_isSelectionMovingRefSelections",[]);W(this,"_stringColor","");W(this,"_numberColor","");W(this,"_insertSelections",[]);W(this,"_inputPanelState",0);W(this,"_userCursorMove",!1);W(this,"_previousEditorUnitId");W(this,"_existsSequenceNode",!1);W(this,"_currentlyWorkingRefRenderer",null);W(this,"_selectionsChangeDisposables");W(this,"_isSelectingMode",!1);this._commandService=e,this._contextService=t,this._editorBridgeService=n,this._formulaPromptService=o,this._lexerTreeBuilder=s,this._renderManagerService=i,this._themeService=a,this._sheetsSelectionsService=l,this._refSelectionsService=d,this._univerInstanceService=h,this._descriptionService=f,this._docSelectionManagerService=u,this._contextMenuService=p,this._editorService=S,this._layoutService=I,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(c.UniverInstanceType.UNIVER_SHEET).map(e=>e.with(exports.RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const e=this._themeService.getCurrentTheme();this._formulaRefColors=[e.loopColor1,e.loopColor2,e.loopColor3,e.loopColor4,e.loopColor5,e.loopColor6,e.loopColor7,e.loopColor8,e.loopColor9,e.loopColor10,e.loopColor11,e.loopColor12],this._numberColor=e.hyacinth700,this._stringColor=e.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.pipe(V.filter(e=>!P.isRangeSelector(e.unitId)&&!P.isEmbeddingFormulaEditor(e.unitId))).subscribe(e=>{var o;if((e==null?void 0:e.unitId)==null)return;const t=this._editorService.getEditor(e.unitId);if(!t||t.onlyInputContent()||t.isSheetEditor()&&!this._isFormulaEditorActivated()||t.params.scrollBar)return;const n=t.onlyInputRange();(o=e==null?void 0:e.options)!=null&&o.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(n),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!n&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const e=[F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP,F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT,F.KeyCode.CTRL,F.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(V.filter(t=>{const n=(t==null?void 0:t.getUnitId())||"";return!P.isRangeSelector(n)&&!P.isEmbeddingFormulaEditor(n)})).subscribe(t=>{var i;const n=t==null?void 0:t.getUnitId();if(n==null||this._listenInputCache.has(n)||this._editorService.getEditor(n)==null)return;const s=(i=this._renderManagerService.getRenderById(n))==null?void 0:i.with(J.DocSelectionRenderService);s&&this.disposeWithMe(s.onInputBefore$.subscribe(a=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const l=a==null?void 0:a.event;l&&(e.includes(l.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),l.which!==F.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(n)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(V.distinctUntilKeyChanged("visible")).subscribe(e=>{e.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(c.FORMULA_EDITOR_ACTIVATED).pipe(V.distinctUntilChanged()).subscribe(e=>{e||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(V.filter(e=>{const t=(e==null?void 0:e.getUnitId())||"";return!P.isRangeSelector(t)&&!P.isEmbeddingFormulaEditor(t)})).subscribe(e=>{if(e==null)return;const t=e.getUnitId();!this._editorService.isEditor(t)||this._previousEditorUnitId===t||this._editorService.isSheetEditor(t)||(this._closeRangePrompt(t),this._previousEditorUnitId=t)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(e){var n;const t=e||((n=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId())||"";P.isRangeSelector(t)||P.isEmbeddingFormulaEditor(t)||t===c.DOCS_ZEN_EDITOR_UNIT_ID_KEY||(this._insertSelections=[],this._refSelectionsService.clear(),e&&this._editorService.isSheetEditor(e)&&this._updateEditorModel(`\r
15
+ `,[]),this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue($.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel())}_initSelectionsEndListener(){const e=new c.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(t=>{var s;if(e.dispose(),t.length===0)return;const n=((s=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:s.getUnitId())||"";if(P.isRangeSelector(n)||P.isEmbeddingFormulaEditor(n))return;this._allSelectionRenderServices.map(i=>i.getSelectionControls()).flat().forEach(i=>{i.disableHelperSelection(),e.add(V.merge(i.selectionMoving$,i.selectionScaling$).subscribe(a=>{var d;const l=((d=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:d.getUnitId())||"";if(P.isRangeSelector(l)||P.isEmbeddingFormulaEditor(l)){e.dispose(),this._formulaPromptService.disableLockedSelectionChange();return}this._onSelectionControlChange(a,i)})),e.add(V.merge(i.selectionMoved$,i.selectionScaled$).subscribe(()=>{this._formulaPromptService.disableLockedSelectionChange()}))})}))}_updateSelecting(e,t=!1){if(e.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(e),t)){const n=e[e.length-1];this._insertControlSelectionReplace(n)}}_enableRefSelectionsRenderService(){const e=this._selectionsChangeDisposables=new c.DisposableCollection;this._allSelectionRenderServices.forEach(t=>{e.add(t.enableSelectionChanging()),e.add(t.selectionMoving$.subscribe(n=>{this._updateSelecting(n.map(o=>$.convertSelectionDataToRange(o)))})),e.add(t.selectionMoveStart$.subscribe(n=>{const o=this._checkClearingLastSelection(t);this._currentlyWorkingRefRenderer=t,this._updateSelecting(n.map(s=>$.convertSelectionDataToRange(s)),o)}))})}_checkClearingLastSelection(e){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==e?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var e;(e=this._selectionsChangeDisposables)==null||e.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(e){const t=e[e.length-1];if(this._resetSequenceNodes(e.length),(e.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(t);else{let n=this._formulaPromptService.getSequenceNodes();const o=this._getCurrentChar();n.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!R.matchRefDrawToken(o)&&this._focusIsOnlyRange(e.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,R.matchToken.COMMA),n=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=c.Tools.deepClone(n),this._formulaPromptService.setSequenceNodes(n);const s=this._generateRefString(t);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,s),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=e.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(e=>{const t=this._docSelectionManagerService.getActiveTextRange();if(t==null){this._hideFunctionPanel();return}const{startOffset:n}=t,o=this._formulaPromptService.getSequenceNodes(),s=this._formulaPromptService.getCurrentSequenceNodeIndex(n-2),i=o[s];if(i==null||typeof i=="string"){this._hideFunctionPanel();return}const a=e.length-i.token.length,l={...i};l.token=e,l.endIndex+=a,o[s]=l;const d=this._descriptionService.hasDefinedNameDescription(e),h=this._descriptionService.isFormulaDefinedName(e),f=e.length+1,u=!d||h;u&&o.splice(s+1,0,R.matchToken.OPEN_BRACKET);for(let S=s+2,I=o.length;S<I;S++){const m=o[S];if(typeof m=="string")continue;const _={...m};_.startIndex+=f,_.endIndex+=f,o[S]=_}let p=l.endIndex+1;u&&(p+=1),this._syncToEditor(o,p,void 0,!0,!1)}))}_changeFunctionPanelState(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null){this._hideFunctionPanel();return}const{startOffset:t}=e,n=this._formulaPromptService.getCurrentSequenceNode(t-2);if(n==null){this._hideFunctionPanel();return}if(typeof n!="string"&&n.nodeType===R.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(n.token.trim())){const l=n.token.toUpperCase();if(this._inputPanelState===1){const d=this._descriptionService.getSearchListByNameFirstLetter(l);if(this._hideFunctionPanel(),d==null||d.length===0)return;this._commandService.executeCommand(We.id,{visible:!0,searchText:l,searchList:d})}else this._changeHelpFunctionPanelState(l,-1);return}const o=this._getCurrentBodyDataStreamAndOffset(),s=this._lexerTreeBuilder.getFunctionAndParameter((o==null?void 0:o.dataStream)||"",t-1+((o==null?void 0:o.offset)||0));if(!s){this._hideFunctionPanel();return}const{functionName:i,paramIndex:a}=s;this._changeHelpFunctionPanelState(i.toUpperCase(),a)}_changeHelpFunctionPanelState(e,t){const n=this._descriptionService.getFunctionInfo(e);this._hideFunctionPanel(),n!=null&&this._commandService.executeCommand(je.id,{visible:!0,paramIndex:t,functionInfo:n})}_hideFunctionPanel(){this._commandService.executeCommand(We.id,{visible:!1,searchText:""}),this._commandService.executeCommand(je.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(e=!1){if(e){this._enterSelectingMode();return}const t=this._getCurrentChar(),n=this._getCurrentDataStream();(n==null?void 0:n.substring(0,1))==="="&&t&&R.matchRefDrawToken(t)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null)return;const{startOffset:t}=e,n=this._getCurrentBodyDataStreamAndOffset();return n==null||t==null?void 0:n.dataStream[t-1+n.offset]}_getCurrentDataStream(){const e=this._getCurrentBodyDataStreamAndOffset();return e==null?void 0:e.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var s,i;const e=this._univerInstanceService.getCurrentUniverDocInstance();if(!(e!=null&&e.getBody()))return;const t=e.getUnitId(),n=this._editorService.getEditor(t),o=(i=(s=e.getBody())==null?void 0:s.dataStream)!=null?i:"";return!n||!n.onlyInputRange()?{dataStream:o,offset:0}:{dataStream:R.compareToken.EQUALS+o,offset:1}}_getFormulaAndCellEditorBody(e){return e.map(t=>{const n=this._univerInstanceService.getUniverDocInstance(t);return n==null?void 0:n.getBody()})}_editorModelUnitIds(){const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(t)&&!this._editorService.isSheetEditor(t)?[t]:Ms}_contextSwitch(){const e=this._getCurrentBodyDataStreamAndOffset();if(e&&c.isFormulaString(e.dataStream)){this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue($.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const t=this._lexerTreeBuilder.sequenceNodesBuilder(e.dataStream)||[];this._formulaPromptService.setSequenceNodes(t);const n=this._docSelectionManagerService.getActiveTextRange();if(n==null)return;const{startOffset:o}=n;this._currentInsertRefStringIndex=o-1+e.offset;return}this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue($.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const e=this._formulaPromptService.getSequenceNodes(),t=this._editorModelUnitIds(),n=this._getFormulaAndCellEditorBody(t).filter(o=>!!o);if(this._refSelectionsService.clear(),e==null||e.length===0)this._existsSequenceNode=!1,n.forEach(o=>o.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns:o,refSelections:s}=this._buildTextRuns(e);n.forEach(i=>i.textRuns=o),this._allSelectionRenderServices.forEach(i=>this._refreshSelectionForReference(i,s))}this._refreshFormulaAndCellEditor(t)}_buildTextRuns(e){var a;const t=[],n=[],o=new Map;let s=0;const i=((a=this._getCurrentBodyDataStreamAndOffset())==null?void 0:a.offset)||0;for(let l=0,d=e.length;l<d;l++){const h=e[l];if(typeof h=="string"||this._descriptionService.hasDefinedNameDescription(h.token.trim()))continue;const{startIndex:f,endIndex:u,nodeType:p,token:S}=h;let I="";if(p===R.sequenceNodeType.REFERENCE){if(o.has(S))I=o.get(S);else{const m=s%this._formulaRefColors.length;I=this._formulaRefColors[m],o.set(S,I),s++}n.push({refIndex:l,themeColor:I,token:S})}else p===R.sequenceNodeType.NUMBER?I=this._numberColor:p===R.sequenceNodeType.STRING?I=this._stringColor:p===R.sequenceNodeType.ARRAY&&(I=this._stringColor);I&&I.length>0&&t.push({st:f+1-i,ed:u+2-i,ts:{cl:{rgb:I}}})}return{textRuns:t,refSelections:n}}_exceedCurrentRange(e,t,n){const{startRow:o,startColumn:s}=e;return o>t-1||s>n-1}_refreshSelectionForReference(e,t){const{unitId:n,sheetId:o}=this._editorBridgeService.getEditCellState(),{unitId:s,sheetId:i}=this._getCurrentUnitIdAndSheetId(),a=o===i,d=this._univerInstanceService.getUniverSheetInstance(n).getSheetBySheetId(o);let h=null;const f=[];for(let u=0,p=t.length;u<p;u++){const S=t[u],{themeColor:I,token:m,refIndex:_}=S,C=R.deserializeRangeWithSheet(m),{unitId:y,sheetName:E,range:x}=C,b=$.setEndForRange(x,d.getRowCount(),d.getColumnCount());if(y!=null&&y.length>0&&n!==y)continue;const T=this._getSheetIdByName(n,E.trim());if(!a&&T!==i||a&&E.length!==0&&T!==o||this._exceedCurrentRange(b,d.getRowCount(),d.getColumnCount()))continue;const O=this._getPrimary(b,I,_);if(O){h=O;continue}const N=$.getPrimaryForRange(b,d);!c.Rectangle.equals(N,b)&&b.startRow===b.endRow&&b.startColumn===b.endColumn&&(b.startRow=N.startRow,b.endRow=N.endRow,b.startColumn=N.startColumn,b.endColumn=N.endColumn),f.push({range:b,primary:N,style:lt(this._themeService,I,_.toString())})}h&&f.push(h),f.length&&this._refSelectionsService.addSelections(n,o,f)}_getPrimary(e,t,n){var f;const o=(f=this._insertSelections.find(u=>{const{startRow:p,startColumn:S,endRow:I,endColumn:m}=u.range;return p===e.startRow&&S===e.startColumn&&I===e.endRow&&m===e.endColumn||p===e.startRow&&S===e.startColumn&&e.startRow===e.endRow&&e.startColumn===e.endColumn}))==null?void 0:f.primary;if(o==null)return;const{isMerged:s,isMergedMainCell:i,startRow:a,endRow:l,startColumn:d,endColumn:h}=o;return(s||i)&&a===e.startRow&&d===e.startColumn&&e.startRow===e.endRow&&e.startColumn===e.endColumn&&(e.endRow=l,e.endColumn=h),{range:e,primary:o,style:lt(this._themeService,t,n.toString())}}_getSheetIdByName(e,t){var o;const n=this._univerInstanceService.getUniverSheetInstance(e);return(o=n==null?void 0:n.getSheetBySheetName(R.normalizeSheetName(t)))==null?void 0:o.getSheetId()}_getSheetNameById(e,t){var s;const n=this._univerInstanceService.getUniverSheetInstance(e);return((s=n==null?void 0:n.getSheetBySheetId(t))==null?void 0:s.getName())||""}_getCurrentUnitIdAndSheetId(){var o,s;const e=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),n=(s=(o=this._renderManagerService.getRenderById(e.getUnitId()))==null?void 0:o.with(P.SheetSkeletonManagerService))==null?void 0:s.getCurrentSkeleton();return{unitId:e.getUnitId(),sheetId:(t==null?void 0:t.getSheetId())||"",skeleton:n}}_getEditorOpenedForSheet(){const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),n=this._editorService.getEditor(t);return n?{openUnitId:n.getOpenForSheetUnitId(),openSheetId:n.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(e){let t="",n="";const{unitId:o,sheetId:s}=e.range,{openUnitId:i,openSheetId:a}=this._getEditorOpenedForSheet();o!==i&&o&&(t=o),s!==a&&o&&s&&(n=this._getSheetNameById(o,s));const{range:l,primary:d}=e;let{startRow:h,endRow:f,startColumn:u,endColumn:p}=l;const{startAbsoluteRefType:S,endAbsoluteRefType:I,rangeType:m}=l;if(d){const{isMerged:_,isMergedMainCell:C,startRow:y,endRow:E,startColumn:x,endColumn:b}=d;(_||C)&&y===h&&x===u&&E===f&&b===p&&(h=y,u=x,f=y,p=x)}return R.serializeRangeToRefString({sheetName:n,unitId:t,range:{startRow:h,endRow:f,startColumn:u,endColumn:p,rangeType:m,startAbsoluteRefType:S,endAbsoluteRefType:I}})}_syncToEditor(e,t,n,o=!0,s=!0){let i=R.generateStringWithSequence(e);const{textRuns:a,refSelections:l}=this._buildTextRuns(e);this._isSelectionMovingRefSelections=l,this._allSelectionRenderServices.forEach(I=>this._updateRefSelectionStyle(I,this._isSelectionMovingRefSelections));const d=this._docSelectionManagerService.getActiveTextRange();if(d==null)return;this._currentInsertRefStringIndex=t,n==null&&(n=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const h=this._editorService.getEditor(n);h!=null&&h.isSingleChoice()?(i=i.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let f=i,u=1;(!h||!h.onlyInputRange())&&(f=`${R.compareToken.EQUALS}${i}`,u=0);const{collapsed:p,style:S}=d;o?(this._commandService.executeCommand(J.ReplaceContentCommand.id,{unitId:n,body:{dataStream:f,textRuns:a},textRanges:[{startOffset:t+1-u,endOffset:t+1-u,collapsed:p,style:S}],segmentId:null,options:{fromSelection:s}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:t+1-u,endOffset:t+1-u,style:S}],!0,{fromSelection:s})):(this._updateEditorModel(`${f}\r
16
+ `,a),this._docSelectionManagerService.replaceTextRanges([{startOffset:t+1-u,endOffset:t+1-u,style:S}],!0,{fromSelection:s})),this._layoutService.focus()}_fitEditorSize(){const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();this._editorService.isEditor(t)&&!this._editorService.isSheetEditor(t)||this._commandService.executeCommand(F.SetEditorResizeOperation.id,{unitId:t})}_updateEditorModel(e,t){var l;const n=this._univerInstanceService.getCurrentUniverDocInstance(),o=n.getUnitId();if(!this._editorService.isEditor(o))return;const s=(l=this._renderManagerService.getRenderById(o))==null?void 0:l.with($e.DocSkeletonManagerService).getViewModel();if(s==null||n==null)return;const i=n==null?void 0:n.getSnapshot();if(i==null)return;const a={dataStream:e,textRuns:t};i.body=a,s.reset(n)}_insertControlSelectionReplace(e){this._previousSequenceNodes==null&&(this._previousSequenceNodes=this._formulaPromptService.getSequenceNodes()),this._previousInsertRefStringIndex==null&&(this._previousInsertRefStringIndex=this._currentInsertRefStringIndex);const t=c.Tools.deepClone(this._previousSequenceNodes);if(t==null)return;const n=this._generateRefString(e);this._formulaPromptService.setSequenceNodes(t),this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,n),this._syncToEditor(t,this._previousInsertRefStringIndex+n.length);const o=this._selectionRenderService.getSelectionDataWithStyle();this._insertSelections=[],o.forEach(s=>{const i=$.convertSelectionDataToRange(s);this._insertSelections.push(i)})}_focusIsOnlyRange(e){const t=this._editorService.getFocusEditor();return!t||!t.onlyInputRange()||this._existsSequenceNode||e>1||this._previousSequenceNodes!=null&&this._previousSequenceNodes.length>0?!0:(this._previousInsertRefStringIndex!=null&&(this._previousInsertRefStringIndex+=1),!1)}_resetSequenceNodes(e){const t=this._editorService.getFocusEditor();t&&t.onlyInputRange()&&(e>1||this._existsSequenceNode&&(this._formulaPromptService.clearSequenceNodes(),this._previousRangesCount=0,this._existsSequenceNode=!1))}_updateRefSelectionStyle(e,t){const n=e.getSelectionControls(),[o,s]=e.getLocation(),i=new Set;for(let a=0,l=t.length;a<l;a++){const d=t[a],{refIndex:h,themeColor:f,token:u}=d,p=R.deserializeRangeWithSheet(u),{unitId:S,sheetName:I,range:m}=p;if(!S&&S.length>0&&o!==S)continue;const _=this._getSheetIdByName(o,I.trim());if(_&&_!==s)continue;const C=n.find(y=>{const{startRow:E,startColumn:x,endRow:b,endColumn:T,rangeType:O}=y.getRange();return O===c.RANGE_TYPE.COLUMN&&x===m.startColumn&&T===m.endColumn||O===c.RANGE_TYPE.ROW&&E===m.startRow&&b===m.endRow||E===m.startRow&&x===m.startColumn&&b===m.endRow&&T===m.endColumn||E===m.startRow&&x===m.startColumn&&m.startRow===m.endRow&&m.startColumn===m.endColumn});if(C){const y=lt(this._themeService,f,h.toString());C.updateStyle(y),i.add(C)}}}_onSelectionControlChange(e,t){var C;const{skeleton:n}=this._getCurrentUnitIdAndSheetId();this._formulaPromptService.enableLockedSelectionChange();const o=(C=t.currentStyle)==null?void 0:C.id;if(!o||!c.Tools.isStringNumber(o))return;let{startRow:s,endRow:i,startColumn:a,endColumn:l}=e;const d=n?n.worksheet.getCellInfoInMergeData(s,a):{actualRow:s,actualColumn:a,isMergedMainCell:!1,isMerged:!1,endRow:s,endColumn:a,startRow:s,startColumn:a};if(d){const{isMerged:y,isMergedMainCell:E,startRow:x,endRow:b,startColumn:T,endColumn:O}=d;(y||E)&&x===s&&T===a&&b===i&&O===l&&(s=x,a=T,i=x,l=T)}const h=Number(o),f=this._formulaPromptService.getCurrentSequenceNodeByIndex(h);if(!f)return;let u={startAbsoluteRefType:c.AbsoluteRefType.NONE};if(typeof f!="string"){const y=f.token;u=R.getAbsoluteRefTypeWitString(y),u.endAbsoluteRefType==null&&(u.endAbsoluteRefType=u.startAbsoluteRefType)}const p=n==null?void 0:n.worksheet.getUnitId(),S=n==null?void 0:n.worksheet.getSheetId(),I=this._generateRefString({range:{startRow:Math.min(s,i),endRow:Math.max(s,i),startColumn:Math.min(a,l),endColumn:Math.max(a,l),...u,sheetId:S,unitId:p},primary:d,style:null});this._formulaPromptService.updateSequenceRef(h,I);const m=this._formulaPromptService.getSequenceNodes(),_=m[h];typeof _!="string"&&(this._syncToEditor(m,_.endIndex+1),t.update(e,void 0,void 0,void 0,this._selectionRenderService.attachPrimaryWithCoord(d)))}_refreshFormulaAndCellEditor(e){var t;for(const n of e){const o=P.getEditorObject(n,this._renderManagerService),s=o==null?void 0:o.document;s!=null&&((t=s.getSkeleton())==null||t.calculate(),s.makeDirty())}}_cursorStateListener(){const e=this._getEditorObject();if(e==null)return;const{mainComponent:t}=e;t&&this.disposeWithMe(t.onPointerDown$.subscribeEvent(()=>{this._arrowMoveActionState=1,this._inputPanelState=3}))}_pressEnter(e){const{keycode:t,isSingleEditor:n=!1}=e;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}n!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:K.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressTab(e){const{keycode:t,isSingleEditor:n=!1}=e;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}n!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:K.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressEsc(e){const{keycode:t}=e,n=this._editorService.getFocusEditor();(!n||(n==null?void 0:n.isSheetEditor())===!0)&&this._editorBridgeService.changeVisible({visible:!1,eventType:K.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressArrowKey(e){const{keycode:t,metaKey:n}=e;let o=c.Direction.DOWN;t===F.KeyCode.ARROW_DOWN?o=c.Direction.DOWN:t===F.KeyCode.ARROW_UP?o=c.Direction.UP:t===F.KeyCode.ARROW_LEFT?o=c.Direction.LEFT:t===F.KeyCode.ARROW_RIGHT&&(o=c.Direction.RIGHT),n===F.MetaKeys.CTRL_COMMAND?this._commandService.executeCommand(P.MoveSelectionCommand.id,{direction:o,jumpOver:P.JumpOver.moveGap}):n===F.MetaKeys.SHIFT?this._commandService.executeCommand(P.ExpandSelectionCommand.id,{direction:o}):n===an?this._commandService.executeCommand(P.ExpandSelectionCommand.id,{direction:o,jumpOver:P.JumpOver.moveGap}):this._commandService.executeCommand(P.MoveSelectionCommand.id,{direction:o})}_commandExecutedListener(){const e=[Ie.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{const n=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC),o=(n==null?void 0:n.getUnitId())||"";if(!(P.isRangeSelector(o)||P.isEmbeddingFormulaEditor(o))){if(t.id===Je.id)this._changeRefString();else if(e.includes(t.id)){const s=t.params,{keycode:i,isSingleEditor:a=!1}=s;if(i===F.KeyCode.ENTER){this._pressEnter(s);return}if(i===F.KeyCode.TAB){this._pressTab(s);return}if(i===F.KeyCode.ESC){this._pressEsc(s);return}if(this._formulaPromptService.isSearching()){if(i===F.KeyCode.ARROW_DOWN){this._formulaPromptService.navigate({direction:c.Direction.DOWN});return}if(i===F.KeyCode.ARROW_UP){this._formulaPromptService.navigate({direction:c.Direction.UP});return}}if(a===!0)return;if(this._arrowMoveActionState===1){this._moveInEditor(i);return}if(this._arrowMoveActionState===4){this._editorBridgeService.changeVisible({visible:!1,eventType:K.DeviceInputEventType.Keyboard,keycode:i,unitId:""});return}if(this._arrowMoveActionState===2&&(this._arrowMoveActionState=3),this._refSelectionsService.getCurrentSelections().length===0){const f=this._sheetsSelectionsService.getCurrentLastSelection();if(f!=null){const u=c.Tools.deepClone(f);this._refSelectionsService.addSelections([u])}}this._pressArrowKey(s);const d=this._refSelectionsService.getCurrentSelections(),h=d[d.length-1];this._insertControlSelectionReplace(h),this._highlightFormula()}}}))}_moveInEditor(e){if(e==null)return;let t=c.Direction.LEFT;e===F.KeyCode.ARROW_DOWN?t=c.Direction.DOWN:e===F.KeyCode.ARROW_UP?t=c.Direction.UP:e===F.KeyCode.ARROW_RIGHT&&(t=c.Direction.RIGHT),this._commandService.executeCommand(J.MoveCursorOperation.id,{direction:t})}_userMouseListener(){const e=this._getEditorObject();if(e==null)return;const{mainComponent:t}=e;t&&this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent(()=>{this._userCursorMove=!0}))}_inputFormulaListener(){this.disposeWithMe(this._editorService.inputFormula$.subscribe(e=>{const{formulaString:t,editorUnitId:n}=e;if(t.substring(0,1)!==R.compareToken.EQUALS)return;const{unitId:o}=this._getCurrentUnitIdAndSheetId();this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:K.DeviceInputEventType.Dblclick,unitId:o});const i=this._lexerTreeBuilder.sequenceNodesBuilder(t)||[];this._formulaPromptService.setSequenceNodes(i),this._syncToEditor(i,t.length-1,n,!0,!1)}))}_changeRefString(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null)return;const{startOffset:t}=e,n=t-2,o=this._formulaPromptService.getCurrentSequenceNodeIndex(n),s=this._formulaPromptService.getCurrentSequenceNodeByIndex(o);if(s==null||typeof s=="string"||s.nodeType!==R.sequenceNodeType.REFERENCE)return;const i=s.token.split("!");let a=s.token;i.length>1&&(a=i[i.length-1]);let l="";for(let f=0,u=i.length;f<u-1;f++)l+=i[f];let d=a;if(a.indexOf(R.matchToken.COLON)>-1)if(!this._userCursorMove)d=this._changeRangeRef(a);else{const f=a.split(R.matchToken.COLON),u=f[0],p=f[1];n-s.startIndex<=u.length?d=this._changeSingleRef(u)+R.matchToken.COLON+p:d=u+R.matchToken.COLON+this._changeSingleRef(p)}else d=this._changeSingleRef(a);d=l+d;const h=d.length-s.token.length;this._formulaPromptService.updateSequenceRef(o,d),this._syncToEditor(this._formulaPromptService.getSequenceNodes(),n+h+1)}_changeRangeRef(e){const t=R.deserializeRangeWithSheet(e).range;let n="";return t.startAbsoluteRefType===c.AbsoluteRefType.NONE||t.startAbsoluteRefType==null?(t.startAbsoluteRefType=c.AbsoluteRefType.ALL,t.endAbsoluteRefType=c.AbsoluteRefType.ALL):(t.startAbsoluteRefType=c.AbsoluteRefType.NONE,t.endAbsoluteRefType=c.AbsoluteRefType.NONE),n=R.serializeRange(t),n}_changeSingleRef(e){const t=R.deserializeRangeWithSheet(e).range,n=t.startAbsoluteRefType;let o="";return n===c.AbsoluteRefType.NONE||n==null?(t.startAbsoluteRefType=c.AbsoluteRefType.ALL,t.endAbsoluteRefType=c.AbsoluteRefType.ALL):n===c.AbsoluteRefType.ALL?(t.startAbsoluteRefType=c.AbsoluteRefType.ROW,t.endAbsoluteRefType=c.AbsoluteRefType.ROW):n===c.AbsoluteRefType.ROW?(t.startAbsoluteRefType=c.AbsoluteRefType.COLUMN,t.endAbsoluteRefType=c.AbsoluteRefType.COLUMN):(t.startAbsoluteRefType=c.AbsoluteRefType.NONE,t.endAbsoluteRefType=c.AbsoluteRefType.NONE),o=R.serializeRange(t),o}_getEditorObject(){const e=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),t=this._editorService.getEditor(e);return t==null?void 0:t.render}_isFormulaEditorActivated(){return this._editorBridgeService.isVisible().visible===!0||this._contextService.getContextValue(c.FORMULA_EDITOR_ACTIVATED)}_isSheetOrFormulaEditor(e){return e.isSheetEditor()||e.isFormulaEditor()}};Ge=xs([re(0,c.ICommandService),re(1,c.IContextService),re(2,c.Inject(P.IEditorBridgeService)),re(3,c.Inject(xe)),re(4,c.Inject(R.LexerTreeBuilder)),re(5,K.IRenderManagerService),re(6,c.Inject(c.ThemeService)),re(7,c.Inject($.SheetsSelectionsService)),re(8,$.IRefSelectionsService),re(9,c.IUniverInstanceService),re(10,c.Inject(ge.IDescriptionService)),re(11,c.Inject($e.DocSelectionManagerService)),re(12,F.IContextMenuService),re(13,J.IEditorService),re(14,F.ILayoutService)],Ge);var ln=Object.defineProperty,Os=Object.getOwnPropertyDescriptor,As=(r,e,t)=>e in r?ln(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ds=(r,e,t,n)=>{for(var o=n>1?void 0:n?Os(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&ln(e,t,o),o},ut=(r,e)=>(t,n)=>e(t,n,r),un=(r,e,t)=>As(r,typeof e!="symbol"?e+"":e,t);exports.UniverSheetsFormulaUIPlugin=class extends c.Plugin{constructor(e=Kr,t,n,o){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=o;const{menu:s,...i}=this._config;s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(qr,i)}onStarting(){const e=this._injector;[[xe,{useClass:dt}],[Ye],[Ve],[qe],[Ke],[ze],[Ge]].forEach(n=>e.add(n))}onRendered(){[[exports.RefSelectionsRenderService],[ht]].forEach(t=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,t))}),c.touchDependencies(this._injector,[[Ye],[qe],[ze]]);const e=this._injector.get(F.ComponentManager);e.register(P.RANGE_SELECTOR_COMPONENT_KEY,nn),e.register(P.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY,rn)}onSteady(){this._injector.get(Ve),this._injector.get(Ge)}};un(exports.UniverSheetsFormulaUIPlugin,"pluginName",Ot);un(exports.UniverSheetsFormulaUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=Ds([c.DependentOn(R.UniverFormulaEnginePlugin,ge.UniverSheetsFormulaPlugin),ut(1,c.Inject(c.Injector)),ut(2,K.IRenderManagerService),ut(3,c.IConfigService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=Mt;exports.FormulaEditor=rn;exports.HelpFunctionOperation=je;exports.InsertFunctionOperation=Xe;exports.MoreFunctionsOperation=Qe;exports.RangeSelector=nn;exports.ReferenceAbsoluteOperation=Je;exports.SearchFunctionOperation=We;exports.SelectEditorFormulaOperation=Ie;exports.SheetOnlyPasteFormulaCommand=Ze;