@univerjs/sheets-formula-ui 0.18.0 → 0.19.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.
- package/lib/cjs/index.js +3 -65
- package/lib/es/index.js +3 -65
- package/lib/index.js +3 -65
- package/lib/types/commands/{operations/editor-formula.operation.d.ts → utils/reference-absolute.d.ts} +5 -10
- package/lib/types/controllers/formula-clipboard.controller.d.ts +1 -1
- package/lib/types/controllers/shortcuts/prompt.shortcut.d.ts +0 -8
- package/lib/types/index.d.ts +0 -1
- package/lib/umd/index.js +3 -65
- package/package.json +14 -14
package/lib/es/index.js
CHANGED
|
@@ -1,65 +1,3 @@
|
|
|
1
|
-
import{BuildTextUtils as e,CellValueType as t,ColorKit as n,CommandType as r,DEFAULT_EMPTY_DOCUMENT_VALUE as i,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as a,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as o,DependentOn as s,Direction as c,Disposable as l,DisposableCollection as u,EDITOR_ACTIVATED as d,FOCUSING_DOC as f,FOCUSING_UNIVER_EDITOR as p,ICommandService as m,IConfigService as h,IContextService as g,ILogService as _,IUniverInstanceService as v,Inject as y,Injector as b,InterceptorEffectEnum as x,LocaleService as S,ObjectMatrix as C,Plugin as w,RANGE_TYPE as T,Range as E,Rectangle as D,RichTextBuilder as O,RxDisposable as ee,ThemeService as te,Tools as ne,UniverInstanceType as k,createIdentifier as re,createInternalEditorID as ie,generateRandomId as ae,getBodySlice as oe,getCellValueType as se,getEmptyCell as ce,isFormulaId as le,isFormulaString as A,isICellData as j,isRealNum as M,merge as ue,registerDependencies as de,toDisposable as fe,touchDependencies as pe}from"@univerjs/core";import{BaseSelectionRenderService as me,COPY_SPECIAL_MENU_ID as he,COPY_TYPE as ge,CellAlertManagerService as N,CellAlertType as _e,EMBEDDING_FORMULA_EDITOR as ve,EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY as ye,ExpandSelectionCommand as be,HoverManagerService as xe,IEditorBridgeService as Se,IMarkSelectionService as Ce,ISheetClipboardService as we,JumpOver as Te,MoveSelectionCommand as Ee,PASTE_SPECIAL_MENU_ID as De,PREDEFINED_HOOK_NAME_COPY as Oe,PREDEFINED_HOOK_NAME_PASTE as ke,RANGE_SELECTOR_COMPONENT_KEY as Ae,SELECTION_SHAPE_DEPTH as je,SelectionControl as Me,SetCellEditVisibleOperation as Ne,SheetPasteCommand as Pe,SheetSkeletonManagerService as Fe,SheetsUIPart as Ie,attachSelectionWithCoord as Le,checkInHeaderRanges as Re,genNormalSelectionStyle as ze,getAllSelection as Be,getCoordByOffset as Ve,getCurrentRangeDisable$ as He,getSheetObject as Ue,menuClipboardDisabledObservable as We,useActiveWorkbook as Ge,whenFormulaEditorActivated as Ke,whenSheetEditorFocused as qe}from"@univerjs/sheets-ui";import{ErrorType as P,FormulaDataModel as Je,FunctionType as F,LexerTreeBuilder as Ye,SetArrayFormulaDataMutation as Xe,SetFormulaCalculationResultMutation as Ze,SetFormulaCalculationStopMutation as Qe,deserializeRangeWithSheet as $e,deserializeRangeWithSheetWithCache as et,extractFormulaError as tt,generateStringWithSequence as nt,isFormulaLexerToken as rt,matchRefDrawToken as it,matchToken as at,operatorToken as ot,sequenceNodeType as I,serializeRange as st,serializeRangeToRefString as ct,serializeRangeWithSheet as lt,serializeRangeWithSpreadsheet as ut}from"@univerjs/engine-formula";import{BehaviorSubject as dt,Subject as ft,combineLatestWith as pt,debounceTime as mt,distinctUntilChanged as ht,filter as gt,map as _t,merge as vt,throttleTime as yt}from"rxjs";import{DocBackScrollRenderController as bt,DocSelectionRenderService as xt,IEditorService as St,MoveCursorOperation as Ct,MoveSelectionOperation as wt,ReplaceTextRunsCommand as Tt,RichTextEditor as Et,useKeyboardEvent as Dt,useResize as Ot}from"@univerjs/docs-ui";import{DeviceInputEventType as kt,IRenderManagerService as At,SHEET_VIEWPORT_KEY as jt,ScrollTimerType as Mt,Vector2 as Nt}from"@univerjs/engine-render";import{BEFORE_CELL_EDIT as Pt,INTERCEPTOR_POINT as Ft,IRefSelectionsService as It,REF_SELECTIONS_ENABLED as Lt,RangeProtectionPermissionEditPoint as Rt,RangeProtectionPermissionViewPoint as zt,ReorderRangeCommand as Bt,SelectionMoveType as Vt,SetRangeValuesMutation as Ht,SetRangeValuesUndoMutationFactory as Ut,SetSelectionsOperation as Wt,SetWorksheetActiveOperation as Gt,SetWorksheetRowAutoHeightMutation as Kt,SheetInterceptorService as qt,SheetsSelectionsService as Jt,WorkbookCopyPermission as Yt,WorkbookEditablePermission as Xt,WorksheetCopyPermission as Zt,WorksheetEditPermission as Qt,WorksheetSetCellValuePermission as $t,convertSelectionDataToRange as en,getCellAtRowCol as tn,getSheetCommandTarget as nn,setEndForRange as rn}from"@univerjs/sheets";import{IDescriptionService as an,ImageFormulaCellInterceptorController as on,InsertFunctionCommand as sn,PLUGIN_CONFIG_KEY_BASE as cn,QuickSumCommand as ln,TriggerCalculationController as un,UniverSheetsFormulaPlugin as dn}from"@univerjs/sheets-formula";import{BuiltInUIPart as fn,ComponentManager as pn,IContextMenuService as mn,IMenuManagerService as hn,IShortcutService as gn,ISidebarService as _n,IUIPartsService as vn,IZenZoneService as yn,KeyCode as L,MenuItemType as bn,MetaKeys as R,ProgressBar as xn,RectPopup as Sn,RibbonFormulasGroup as Cn,connectInjector as wn,getMenuHiddenObservable as Tn,useDependency as z,useEvent as B,useObservable as V,useUpdateEffect as En}from"@univerjs/ui";import{forwardRef as Dn,useCallback as On,useEffect as H,useImperativeHandle as kn,useLayoutEffect as An,useMemo as U,useRef as W,useState as G}from"react";import{Fragment as jn,jsx as K,jsxs as q}from"react/jsx-runtime";import{Button as Mn,Dialog as Nn,Input as Pn,Select as Fn,Tooltip as In,borderClassName as Ln,borderLeftClassName as Rn,borderTopClassName as zn,clsx as J,scrollbarClassName as Bn}from"@univerjs/design";import{CheckMarkIcon as Vn,CloseIcon as Hn,DeleteIcon as Un,IncreaseIcon as Wn,MoreIcon as Gn,SelectRangeIcon as Kn}from"@univerjs/icons";import{DocSelectionManagerService as qn}from"@univerjs/docs";import{debounceTime as Jn}from"rxjs/operators";const Yn={id:`sheet.command.copy-formula-only`,type:r.COMMAND,handler:async e=>e.get(we).copy({copyHookType:Oe.SPECIAL_COPY_FORMULA_ONLY})},Xn={id:`sheet.command.paste-formula`,type:r.COMMAND,handler:async e=>e.get(m).executeCommand(Pe.id,{value:ke.SPECIAL_PASTE_FORMULA})},Zn={id:`formula-ui.operation.select-editor-formula`,type:r.OPERATION,handler:(e,t)=>!0};function Qn(e){"@babel/helpers - typeof";return Qn=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Qn(e)}function $n(e,t){if(Qn(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Qn(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function er(e){var t=$n(e,`string`);return Qn(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=er(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e,t){return function(n,r){t(n,r,e)}}function tr(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const nr=`FORMULA_PROMPT_ACTIVATED`,rr=re(`formula-ui.prompt-service`);let ir=class{constructor(e){this._contextService=e,Y(this,`_search$`,new ft),Y(this,`_help$`,new ft),Y(this,`_navigate$`,new ft),Y(this,`_accept$`,new ft),Y(this,`_acceptFormulaName$`,new ft),Y(this,`search$`,this._search$.asObservable()),Y(this,`help$`,this._help$.asObservable()),Y(this,`navigate$`,this._navigate$.asObservable()),Y(this,`accept$`,this._accept$.asObservable()),Y(this,`acceptFormulaName$`,this._acceptFormulaName$.asObservable()),Y(this,`_searching`,!1),Y(this,`_helping`,!1),Y(this,`_sequenceNodes`,[]),Y(this,`_isLockedOnSelectionChangeRefString`,!1),Y(this,`_isLockedOnSelectionInsertRefString`,!1)}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(e){this._contextService.setContextValue(nr,e.visible),this._searching=e.visible,this._search$.next(e)}isSearching(){return this._searching}help(e){this._helping=e.visible,this._help$.next(e)}isHelping(){return this._helping}navigate(e){this._navigate$.next(e)}accept(e){this._accept$.next(e)}acceptFormulaName(e){this._acceptFormulaName$.next(e)}getSequenceNodes(){return[...this._sequenceNodes]}setSequenceNodes(e){this._sequenceNodes=e}clearSequenceNodes(){this._sequenceNodes=[]}getCurrentSequenceNode(e){return this._sequenceNodes[this.getCurrentSequenceNodeIndex(e)]}getCurrentSequenceNodeByIndex(e){return this._sequenceNodes[e]}getCurrentSequenceNodeIndex(e){let t=0,n=this._sequenceNodes[0];for(let r=0,i=this._sequenceNodes.length;r<i;r++){let i=this._sequenceNodes[r];if(typeof i==`string`)t++;else{let{endIndex:e}=i;t=e}if(e<=t)return typeof n==`string`&&e!==0?r+1:r}return this._sequenceNodes.length}updateSequenceRef(e,t){let n=this._sequenceNodes[e];if(typeof n==`string`||n.nodeType!==I.REFERENCE)return;let r=t.length-n.token.length,i={...n};i.token=t,i.endIndex+=r,this._sequenceNodes[e]=i;for(let t=e+1,n=this._sequenceNodes.length;t<n;t++){let e=this._sequenceNodes[t];if(typeof e==`string`)continue;let n={...e};n.startIndex+=r,n.endIndex+=r,this._sequenceNodes[t]=n}}insertSequenceRef(e,t){let n=t.length,r=this.getCurrentSequenceNodeIndex(e);this._sequenceNodes.splice(r,0,{token:t,startIndex:e,endIndex:e+n-1,nodeType:I.REFERENCE});for(let e=r+1,t=this._sequenceNodes.length;e<t;e++){let t=this._sequenceNodes[e];if(typeof t==`string`)continue;let r={...t};r.startIndex+=n,r.endIndex+=n,this._sequenceNodes[e]=r}}insertSequenceString(e,t){let n=this.getCurrentSequenceNodeIndex(e),r=t.split(``);this._sequenceNodes.splice(n,0,...r);let i=r.length;for(let e=n+i,t=this._sequenceNodes.length;e<t;e++){let t=this._sequenceNodes[e];if(typeof t==`string`)continue;let n={...t};n.startIndex+=i,n.endIndex+=i,this._sequenceNodes[e]=n}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};ir=tr([X(0,g)],ir);const ar={id:`formula-ui.operation.help-function`,type:r.OPERATION,handler:async(e,t)=>(e.get(rr).help(t),!0)},Z={id:`formula-ui.operation.insert-function`,type:r.OPERATION,handler:async(e,t)=>{let n=e.get(Jt),r=e.get(St),i=n.getCurrentSelections();if(!i||!i.length)return!1;let s=nn(e.get(v));if(!s)return!1;let{worksheet:c,unitId:l,subUnitId:u}=s,d=c.getCellMatrix(),{value:f}=t,p=e.get(m);e.get(Se);let h=[],g=[],_=null,y=0,b=0,x=``;if(i.length===1&&(ur(i[0].range)||dr(i[0].range)&&fr(d,i[0].range))){var S,C;let{range:e,primary:t}=i[0],n=(S=t==null?void 0:t.actualRow)==null?e.startRow:S,r=(C=t==null?void 0:t.actualColumn)==null?e.startColumn:C;_=e,y=n,b=r;let a=or(d,n,r);a&&(x=st(a))}else i.some(e=>{let{range:t,primary:n}=e;if(fr(d,t)){var r,i;let e=(r=n==null?void 0:n.actualRow)==null?t.startRow:r,a=(i=n==null?void 0:n.actualColumn)==null?t.startColumn:i,o=or(d,e,a);if(!o)return _=t,y=e,b=a,!0;let s=`=${f}(${st(o)})`;h.push({range:t,primary:{row:e,column:a},formula:s})}else{let{startRow:e,startColumn:n,endRow:r,endColumn:i}=t;if(e===r){let a=pr(d,e,i,c.getColumnCount()-1),o=`=${f}(${st({startRow:e,endRow:r,startColumn:n,endColumn:a===i?i-1:i})})`;g.push({range:t,primary:{row:e,column:a},formula:o})}else{let a=-1;for(let e=n;e<=i;e++){let t=mr(d,e,r,c.getRowCount()-1);a=Math.max(a,t)}let o=a===r?r-1:r;for(let r=n;r<=i;r++){let n=`=${f}(${st({startRow:e,endRow:o,startColumn:r,endColumn:r})})`;g.push({range:t,primary:{row:a,column:r},formula:n})}}}return!1});if(_){let e=tn(y,b,c),t={unitId:l,subUnitId:u,selections:[{range:D.clone(_),primary:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,actualRow:y,actualColumn:b,isMerged:e.isMerged,isMergedMainCell:e.startRow===y&&e.startColumn===b}}]};await p.executeCommand(Wt.id,t);let n=r.getEditor(o),i=r.getEditor(a);p.syncExecuteCommand(Ne.id,{visible:!0,unitId:l,eventType:kt.Dblclick});let s=`=${f}(${x}`;n==null||n.replaceText(s),i==null||i.replaceText(s,!1)}return h.length===0&&g.length===0?!1:p.executeCommand(sn.id,{list:h,listOfRangeHasNumber:g})}};function or(e,t,n){let r=sr(e,t,n);if(r!==t)return{startRow:r,endRow:t-1,startColumn:n,endColumn:n};let i=cr(e,t,n);return i===n?null:{startRow:t,endRow:t,startColumn:i,endColumn:n-1}}function sr(e,t,n){let r=!1;if(t===0)return t;for(let i=t-1;i>=0;i--){let t=e.getValue(i,n);if(lr(t)&&!r){if(i===0)return 0;r=!0}else if(r&&!lr(t))return i+1;else if(r&&i===0)return 0}return t}function cr(e,t,n){let r=!1;if(n===0)return n;for(let i=n-1;i>=0;i--){let n=e.getValue(t,i);if(lr(n)&&!r){if(i===0)return 0;r=!0}else if(r&&!lr(n))return i+1;else if(r&&i===0)return 0}return n}function lr(e){if(e!=null&&e.p){let t=e==null?void 0:e.p.body;if(t==null)return!1;let n=t.dataStream;return M(n.substring(n.length-2,n.length)===i?n.substring(0,n.length-2):n)}return e&&(e.t===t.NUMBER||se(e)===t.NUMBER)}function ur(e){return e.startRow===e.endRow&&e.startColumn===e.endColumn}function dr(e){return e.startRow!==e.endRow&&e.startColumn!==e.endColumn}function fr(e,t){for(let n=t.startRow;n<=t.endRow;n++)for(let r=t.startColumn;r<=t.endColumn;r++)if(lr(e.getValue(n,r)))return!1;return!0}function pr(e,t,n,r){for(let i=n;i<=r;i++)if(!e.getValue(t,i))return i;return r}function mr(e,t,n,r){for(let i=n;i<=r;i++)if(!e.getValue(i,t))return i;return r}const hr=`SHEET_FORMULA_UI_PLUGIN`,gr=`${hr}_MORE_FUNCTIONS_COMPONENT`,Q={id:`formula-ui.operation.more-functions`,type:r.OPERATION,handler:async e=>(e.get(_n).open({header:{title:`formula.insert.tooltip`},children:{label:gr}}),!0)},_r={id:`formula-ui.operation.change-ref-to-absolute`,type:r.OPERATION,handler:async e=>!0},vr={id:`formula-ui.operation.search-function`,type:r.OPERATION,handler:async(e,t)=>(e.get(rr).search(t),!0)};let yr=class extends l{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._formulaDataModel=n,this._lexerTreeBuilder=r,this._initialize()}_initialize(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>e.id===Bt.id?this._reorderFormula(e.params):{redos:[],undos:[]}}))}_reorderFormula(e){let t=[],n=[],{unitId:r,subUnitId:i,range:a,order:o}=e,s=this._univerInstanceService.getUniverSheetInstance(r),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{redos:t,undos:n};let l=c.getCellMatrix(),u=new C,d=new C,f=!1;return E.foreach(a,(e,t)=>{let n=e;o.hasOwnProperty(e)&&(n=o[e]);let a=l.getValue(n,t);if(a!=null&&a.f||a!=null&&a.si){f=!0;let o=this._formulaDataModel.getFormulaStringByCell(n,t,i,r),s=this._lexerTreeBuilder.moveFormulaRefOffset(o,0,e-n),c=ne.deepClone(a);c.f=s,c.si=null,u.setValue(e,t,c)}else u.setValue(e,t,a);d.setValue(e,t,l.getValue(e,t))}),f?(t.push({id:Ht.id,params:{unitId:r,subUnitId:i,cellValue:u.getMatrix()}}),n.push({id:Ht.id,params:{unitId:r,subUnitId:i,cellValue:d.getMatrix()}}),{redos:t,undos:n}):{redos:t,undos:n}}};yr=tr([X(0,y(qt)),X(1,y(v)),X(2,y(Je)),X(3,y(Ye))],yr);var br=`@univerjs/sheets-formula-ui`,xr=`0.18.0`;const Sr=`sheets-formula-ui.base.config`;Symbol(Sr);const Cr={},wr=`SHEET_FORMULA_ALERT`,Tr={[P.DIV_BY_ZERO]:`divByZero`,[P.NAME]:`name`,[P.VALUE]:`value`,[P.NUM]:`num`,[P.NA]:`na`,[P.CYCLE]:`cycle`,[P.REF]:`ref`,[P.SPILL]:`spill`,[P.CALC]:`calc`,[P.ERROR]:`error`,[P.CONNECT]:`connect`,[P.NULL]:`null`};let Er=class extends l{constructor(e,t,n,r,i,a){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=r,this._formulaDataModel=i,this._zenZoneService=a,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(mt(100)).subscribe(e=>{if(e){var t;let r=this._context.unit.getActiveSheet();if(!r)return this._hideAlert();let i=r.getCell(e.location.row,e.location.col),a=(t=this._formulaDataModel.getArrayFormulaCellData())==null||(t=t[e.location.unitId])==null||(t=t[e.location.subUnitId])==null||(t=t[e.location.row])==null?void 0:t[e.location.col];if(j(i)){var n;let t=tt(i,!!a);if(!t){this._hideAlert();return}let r=this._cellAlertManagerService.currentAlert.get(wr),o=r==null||(n=r.alert)==null?void 0:n.location;if(o&&o.row===e.location.row&&o.col===e.location.col&&o.subUnitId===e.location.subUnitId&&o.unitId===e.location.unitId){this._hideAlert();return}this._cellAlertManagerService.showAlert({type:_e.ERROR,title:this._localeService.t(`formula.error.title`),message:this._localeService.t(`formula.error.${Tr[t]}`),location:e.location,width:200,height:74,key:wr});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(wr)}};Er=tr([X(1,y(xe)),X(2,y(N)),X(3,y(S)),X(4,y(Je)),X(5,yn)],Er);let Dr=class extends l{constructor(e,t,n,r,i){super(),this._univerInstanceService=e,this._lexerTreeBuilder=t,this._sheetClipboardService=n,this._injector=r,this._formulaDataModel=i,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._copyFormulaOnlyHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_copyFormulaOnlyHook(){let e=this,t=null;return{id:Oe.SPECIAL_COPY_FORMULA_ONLY,priority:10,onBeforeCopy(n,r){t=e._getWorksheet(n,r)},onCopyCellContent(n,r){if(!t)return``;let i=t.getCellRaw(n,r);return i?A(i.f)?i.f:le(i.si)&&e._formulaDataModel.getFormulaStringByCell(n,r,t.getSheetId(),t.getUnitId())||``:``},onAfterCopy(){t=null},getFilteredOutRows(t,n,r){let i=e._getWorksheet(t,n);if(!i)return[];let{startRow:a,endRow:o}=r,s=[];for(let e=a;e<=o;e++)i.getRowFiltered(e)&&s.push(e);return s},handleMatrixOnCell(n,r,i,a,o,s,c){let l=o.getValue(n,r);if(t&&l&&(A(l.f)||le(l.si))){let o=A(l.f)?l.f:e._formulaDataModel.getFormulaStringByCell(n,r,t.getSheetId(),t.getUnitId());s.setValue(i,a,{...ce(),f:o}),c.setValue(i,a,{...ce(),f:o,displayV:o})}else o.setValue(n,r,ce()),s.setValue(i,a,ce()),c.setValue(i,a,ce())}}}_pasteFormulaHook(){return{id:ke.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:`specialPaste.formula`},onPasteCells:(e,t,n,r)=>this._onPasteCells(e,t,n,r,!0)}}_pasteWithFormulaHook(){return{id:`default-paste-formula`,priority:10,onPasteCells:(e,t,n,r)=>this._onPasteCells(e,t,n,r,!1)}}_getWorkbook(e){return e?this._univerInstanceService.getUnit(e,k.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(k.UNIVER_SHEET)}_getWorksheet(e,t){let n=this._getWorkbook(e);return t?n==null?void 0:n.getSheetBySheetId(t):n==null?void 0:n.getActiveSheet()}_onPasteCells(e,t,n,r,i){var a;if([ke.SPECIAL_PASTE_FORMAT,ke.SPECIAL_PASTE_COL_WIDTH].includes(r.pasteType))return{undos:[],redos:[]};let o=this._getWorkbook(),s=t.unitId||(o==null?void 0:o.getUnitId()),c=t.subUnitId||(o==null||(a=o.getActiveSheet())==null?void 0:a.getSheetId());if(!s||!c)return{undos:[],redos:[]};let l=t.range,u=n,d={copyType:r.copyType||ge.COPY,copyRange:e==null?void 0:e.range,pasteType:r.pasteType};return this._injector.invoke(t=>Or(s,c,l,u,t,d,this._lexerTreeBuilder,this._formulaDataModel,i,e))}};Dr=tr([X(0,v),X(1,y(Ye)),X(2,we),X(3,y(b)),X(4,y(Je))],Dr);function Or(e,t,n,r,i,a,o,s,c=!1,l){let u=[],d=[],f=kr(e,t,n,r,a,o,s,l);if(!f.hasValue())return{undos:[],redos:[]};let p={unitId:e,subUnitId:t,cellValue:f.getData()};u.push({id:Ht.id,params:p});let m=Ut(i,p);return d.push({id:Ht.id,params:m}),{undos:d,redos:u}}function kr(e,t,n,r,i,a,o,s){return s?i.pasteType===ke.SPECIAL_PASTE_VALUE?jr(e,t,n,r,o,s):i.pasteType===ke.SPECIAL_PASTE_FORMULA?Mr(e,t,n,r,a,o,s):Nr(e,t,n,r,i.copyType,a,o,s):Ar(e,t,n,r,o)}function Ar(e,t,n,r,i){let a=new C,o=i.getSheetFormulaData(e,t);return r.forValue((e,t,r)=>{var i;let s=n.rows[e],c=n.cols[t],l={};A(r.v)?(l.v=null,l.f=`${r.v}`,l.si=null,l.p=null,a.setValue(s,c,l)):!(o==null||(i=o[s])==null)&&i[c]&&(l.v=r.v,l.f=null,l.si=null,l.p=null,a.setValue(s,c,l))}),a}function jr(e,t,n,r,i,a){var o;let s=new C,c=(o=i.getArrayFormulaCellData())==null||(o=o[a.unitId])==null?void 0:o[a.subUnitId],l=i.getSheetFormulaData(e,t);return r.forValue((e,t,r)=>{var i,o;let u=a.range.rows[e%a.range.rows.length],d=a.range.cols[t%a.range.cols.length],f=n.rows[e],p=n.cols[t],m={};if(A(r.f)||le(r.si))m.v=r.v,m.f=null,m.si=null,m.p=null,s.setValue(f,p,m);else if(!(c==null||(i=c[u])==null)&&i[d])m.v=c[u][d].v,m.f=null,m.si=null,m.p=null,s.setValue(f,p,m);else if(!(l==null||(o=l[f])==null)&&o[p]){if(m.v=r.v,m.f=null,m.si=null,m.p=null,r.p){let e=Pr(r);e&&(m.v=e)}s.setValue(f,p,m)}}),s}function Mr(e,t,n,r,i,a,o){let s=new C,c=new Map;return r.forValue((r,l,u)=>{let d=n.rows[r],f=n.cols[l],p={};if(le(u.si)){if(o.unitId!==e||o.subUnitId!==t){let e=a.getFormulaStringByCell(o.range.rows[r%o.range.rows.length],o.range.cols[l%o.range.cols.length],o.subUnitId,o.unitId),t=n.cols[l]-o.range.cols[l%o.range.cols.length],s=n.rows[r]-o.range.rows[r%o.range.rows.length],c=i.moveFormulaRefOffset(e||``,t,s);p.si=null,p.f=c}else p.si=u.si,p.f=null;p.v=null,p.p=null,s.setValue(d,f,p)}else if(A(u.f)){let e=`${r%o.range.rows.length}_${l%o.range.cols.length}`,t=c.get(e);if(t)p.si=t,p.f=null;else{t=ae(6),c.set(e,t);let a=n.cols[l]-o.range.cols[l%o.range.cols.length],s=n.rows[r]-o.range.rows[r%o.range.rows.length],d=i.moveFormulaRefOffset(u.f||``,a,s);p.si=t,p.f=d}p.v=null,p.p=null,s.setValue(d,f,p)}else{if(p.v=u.v,p.f=null,p.si=null,p.p=null,u.p){let e=Pr(u);e&&(p.v=e)}s.setValue(d,f,p)}}),s}function Nr(e,t,n,r,i,a,o,s){let c=new C,l=new Map,u=o.getSheetFormulaData(e,t),d=[];return i===ge.CUT?r.forValue((e,t,r)=>{let i=n.rows[e],a=n.cols[t],l={};le(r.si)?(A(r.f)?(d.push(r.si),l.f=r.f,l.si=r.si):d.includes(r.si)?(l.f=null,l.si=r.si):(l.f=o.getFormulaStringByCell(s.range.rows[e%s.range.rows.length],s.range.cols[t%s.range.cols.length],s.subUnitId,s.unitId),l.si=null),l.v=null,l.p=null,c.setValue(i,a,l)):A(r.f)&&(l.f=r.f,l.si=null,l.v=null,l.p=null,c.setValue(i,a,l))}):r.forValue((r,i,d)=>{var f;let p=n.rows[r],m=n.cols[i],h={};if(le(d.si)){if(s.unitId!==e||s.subUnitId!==t){let e=o.getFormulaStringByCell(s.range.rows[r%s.range.rows.length],s.range.cols[i%s.range.cols.length],s.subUnitId,s.unitId),t=n.cols[i]-s.range.cols[i%s.range.cols.length],c=n.rows[r]-s.range.rows[r%s.range.rows.length],l=a.moveFormulaRefOffset(e||``,t,c);h.si=null,h.f=l}else h.si=d.si,h.f=null;h.v=null,h.p=null,c.setValue(p,m,h)}else if(A(d.f)){let e=`${r%s.range.rows.length}_${i%s.range.cols.length}`,t=l.get(e);if(t)h.si=t,h.f=null;else{t=ae(6),l.set(e,t);let o=n.cols[i]-s.range.cols[i%s.range.cols.length],c=n.rows[r]-s.range.rows[r%s.range.rows.length],u=a.moveFormulaRefOffset(d.f||``,o,c);h.si=t,h.f=u}h.v=null,h.p=null,c.setValue(p,m,h)}else !(u==null||(f=u[p])==null)&&f[m]&&(h.v=d.v,h.f=null,h.si=null,h.p=d.p,c.setValue(p,m,h))}),d.length>0&&new C(u).forValue((e,t,r)=>{if(!(s.range.rows.includes(e)&&s.range.cols.includes(t))&&!(n.rows.includes(e)&&n.cols.includes(t))&&d.includes(r==null?void 0:r.si)){let n=o.getFormulaStringByCell(e,t,s.subUnitId,s.unitId);c.setValue(e,t,{f:n,si:null,v:null,p:null})}}),c}function Pr(e){if(e!=null&&e.p){let t=e==null?void 0:e.p.body;if(t==null)return;let n=t.dataStream;return n.substring(n.length-2,n.length)===i?n.substring(0,n.length-2):n}}let Fr=class extends l{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._sheetInterceptorService=t,this._formulaDataModel=n,this._themeService=r,this._renderManagerService=i,this._sheetSkeletonManagerService=a,this._commandService=o,this._logService=s,Y(this,`_previousShape`,void 0),Y(this,`_skeleton`,void 0),this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(e==null)this._logService.debug(`[FormulaEditorShowController]: should not receive currentSkeleton$ as null!`);else{var t;let{skeleton:n}=e,r=(t=this._skeleton)==null||(t=t.worksheet)==null?void 0:t.getSheetId();if(this._changeRuntime(n),r!==n.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{let{unitId:t,sheetId:n}=e;this._updateArrayFormulaRangeShape(t,n)}}}))}_changeRuntime(e){this._skeleton=e}_initInterceptorEditorStart(){this.disposeWithMe(fe(this._sheetInterceptorService.writeCellInterceptor.intercept(Pt,{handler:(e,t,n)=>{var r,i;let{row:a,col:o,unitId:s,subUnitId:c,worksheet:l}=t,u=this._formulaDataModel.getArrayFormulaRange(),d=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),e==null)return n(e);let f=null,p=this._formulaDataModel.getFormulaStringByCell(a,o,c,s);if(p!==null&&(f={f:p}),e.v!=null&&e.v!==``&&((r=d[s])==null||(r=r[c])==null||(r=r[a])==null?void 0:r[o])==null)return f?{...e,...f}:n(e);let m=u==null||(i=u[s])==null?void 0:i[c];return m!=null&&(f=this._displayArrayFormulaRangeShape(m,a,o,s,c,l,f)),f?{...e,...f}:n(e)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{(e.id===Ze.id||e.id===Xe.id&&t&&t.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{Kt.id===e.id&&requestIdleCallback(()=>{let{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e.params;this._refreshArrayFormulaRangeShapeByRow(t,n,r)})}))}_displayArrayFormulaRangeShape(e,t,n,r,i,a,o){return new C(e).forValue((e,i,s)=>{if(s==null)return!0;let{startRow:c,startColumn:l,endRow:u,endColumn:d}=s;if(e===t&&i===n)return this._createArrayFormulaRangeShape(s,r),!1;if(t>=c&&t<=u&&n>=l&&n<=d){let e=a.getCell(c,l);return(e==null?void 0:e.v)===P.SPILL||(e==null?void 0:e.f)==null?void 0:(o==null&&(o={f:e.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(s,r),!1)}}),o}_createArrayFormulaRangeShape(e,t){let r=this._renderManagerService.getRenderById(t),i=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!r||!i)return;let{scene:a}=r;if(!a)return;let o=Le({range:e,primary:null,style:{strokeWidth:1,stroke:this._themeService.getColorFromTheme(`primary.600`),fill:new n(this._themeService.getColorFromTheme(`white`)).setAlpha(0).toString(),widgets:{}}},i),{rowHeaderWidth:s,columnHeaderHeight:c}=i,l=new Me(a,je.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:s,columnHeaderHeight:c});l.updateRangeBySelectionWithCoord(o),l.setEvent(!1),this._previousShape=l}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(e,t){if(this._previousShape){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._previousShape.getRange(),a={startRow:t,endRow:n,startColumn:r,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(a,e)}}_checkCurrentSheet(e,t){let n=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n)return!1;let r=n.worksheet;return r?r.unitId===e&&r.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;let{startRow:r,endRow:i,startColumn:a,endColumn:o}=this._previousShape.getRange();for(let t=0;t<n.length;t++){let{row:s}=n[t];if(r>=s){let t={startRow:r,endRow:i,startColumn:a,endColumn:o};this._refreshArrayFormulaRangeShape(e,t);break}}}};Fr=tr([X(1,y(qt)),X(2,y(Je)),X(3,y(te)),X(4,At),X(5,y(Fe)),X(6,m),X(7,_)],Fr);const Ir={tl:{size:6,color:`#409f11`}};let Lr=class extends ee{constructor(e,t){super(),this._sheetInterceptorService=e,this._formulaDataModel=t,this.disposeWithMe(this._sheetInterceptorService.intercept(Ft.CELL_CONTENT,{effect:x.Style,handler:(e,t,n)=>{var r;let i=(r=this._formulaDataModel.getArrayFormulaCellData())==null||(r=r[t.unitId])==null||(r=r[t.subUnitId])==null||(r=r[t.row])==null?void 0:r[t.col];return!tt(e,!!i)||!e?n(e):(e===t.rawData&&(e={...t.rawData}),e.markers={...e==null?void 0:e.markers,...Ir},n(e))},priority:10}))}};Lr=tr([X(0,y(qt)),X(1,y(Je))],Lr);function Rr(e){let t=[`SUMIF`,`SUM`,`AVERAGE`,`IF`,`COUNT`,`SIN`,`MAX`],n=t.map(e=>({label:{name:e,selectable:!1},value:e}));try{let r=e.get(an),i=t.filter(e=>!!r.getFunctionInfo(e));i.length>0&&(n=i.map(e=>({label:{name:e,selectable:!1},value:e})))}catch{}return{id:`${Z.id}.common`,commandId:Z.id,title:`formula.insert.common`,tooltip:`formula.insert.tooltip`,icon:`FunctionIcon`,type:bn.SELECTOR,selections:n,hidden$:Tn(e,k.UNIVER_SHEET)}}function zr(e,t,n){return function(r){let i=[];try{i=r.get(an).getSearchListByType(e).map(({name:e})=>({label:{name:e,selectable:!1},value:e}))}catch{i=[]}return{id:`${Z.id}.${t}`,commandId:Z.id,title:`formula.functionType.${t}`,tooltip:`formula.insert.tooltip`,icon:n,type:bn.SELECTOR,selections:i,hidden$:Tn(r,k.UNIVER_SHEET)}}}const Br=zr(F.Financial,`financial`),Vr=zr(F.Logical,`logical`),Hr=zr(F.Text,`text`),Ur=zr(F.Date,`date`),Wr=zr(F.Lookup,`lookup`),Gr=zr(F.Math,`math`),Kr=zr(F.Statistical,`statistical`),qr=zr(F.Engineering,`engineering`),Jr=zr(F.Information,`information`),Yr=zr(F.Database,`database`);function Xr(e){return{id:Q.id,title:`formula.moreFunctions.allFunctions`,tooltip:`formula.insert.tooltip`,type:bn.BUTTON,hidden$:Tn(e,k.UNIVER_SHEET),disabled$:He(e,{workbookTypes:[Xt],worksheetTypes:[Qt,$t],rangeTypes:[Rt]})}}function Zr(e){return{id:Yn.id,type:bn.BUTTON,title:`formula.operation.copyFormulaOnly`,disabled$:He(e,{workbookTypes:[Yt],worksheetTypes:[Zt],rangeTypes:[zt]}),hidden$:Tn(e,k.UNIVER_SHEET)}}function Qr(e){return{id:Xn.id,type:bn.BUTTON,title:`formula.operation.pasteFormula`,disabled$:We(e).pipe(pt(He(e,{workbookTypes:[Xt],rangeTypes:[Rt],worksheetTypes:[$t,Qt]})),_t(([e,t])=>e||t)),hidden$:Tn(e,k.UNIVER_SHEET)}}const $r={[Cn.BASIC]:{[`${Z.id}.common`]:{order:0,menuItemFactory:Rr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.financial`]:{order:1,menuItemFactory:Br,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.logical`]:{order:2,menuItemFactory:Vr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.text`]:{order:3,menuItemFactory:Hr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.date`]:{order:4,menuItemFactory:Ur,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.lookup`]:{order:5,menuItemFactory:Wr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.math`]:{order:6,menuItemFactory:Gr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.statistical`]:{order:7,menuItemFactory:Kr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.engineering`]:{order:8,menuItemFactory:qr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.information`]:{order:9,menuItemFactory:Jr,[Q.id]:{order:0,menuItemFactory:Xr}},[`${Z.id}.database`]:{order:10,menuItemFactory:Yr,[Q.id]:{order:0,menuItemFactory:Xr}}},[he]:{[Yn.id]:{order:0,menuItemFactory:Zr}},[De]:{[Xn.id]:{order:4,menuItemFactory:Qr}}};function ei(){let e=z(un),t=z(m);return K(xn,{progress:V(e.progress$),onTerminate:On(()=>{t.executeCommand(Qe.id)},[t]),onClearProgress:On(()=>{e.clearProgress()},[e])})}function ti(e,t){return Object.keys(F).filter(e=>isNaN(Number(e))&&e!==`DefinedName`&&e!==`Table`&&(t||e!==`User`)).map(t=>({label:e.t(`formula.functionType.${t.toLocaleLowerCase()}`),value:`${F[t]}`}))}function ni(e){if(!e.require&&!e.repeat)return`[${e.name}]`;if(e.require&&!e.repeat)return e.name;if(!e.require&&e.repeat)return`[${e.name},...]`;if(e.require&&e.repeat)return`${e.name},...`}function ri(e){let{prefix:t,value:n}=e;return q(`div`,{children:[q(`span`,{children:[t,`(`]}),n&&n.map((e,t)=>q(`span`,{children:[K(`span`,{children:ni(e)}),t===n.length-1?``:`,`]},t)),`)`]})}function ii(e){let{className:t,value:n,title:r}=e;return q(`div`,{className:`univer-mb-2 univer-text-xs`,children:[K(`div`,{className:J(`
|
|
2
|
-
univer-mb-2 univer-font-medium univer-text-gray-500
|
|
3
|
-
dark:!univer-text-gray-300
|
|
4
|
-
`,t),children:r}),K(`div`,{className:`
|
|
5
|
-
univer-break-all univer-text-gray-900
|
|
6
|
-
dark:!univer-text-white
|
|
7
|
-
`,children:n})]})}function ai(e){let{functionInfo:t,onChange:n}=e;if(!t)return null;let[r,i]=G([]),[a,o]=G(t.functionParameter),[s,c]=G(-1);return q(`div`,{children:[K(`div`,{className:J(`univer-h-[364px] univer-overflow-y-auto`,Bn),children:a.map((e,t)=>q(`div`,{children:[K(`div`,{className:`univer-text-sm`,children:e.name}),K(`div`,{className:`univer-mb-2 univer-mt-1`})]},t))}),K(`div`,{className:J(`univer-flex-1 univer-p-3`,Rn),children:K(ii,{title:s===-1?K(ri,{prefix:t.functionName,value:a}):a[s].name,value:s===-1?t.description:a[s].detail})})]})}function oi(e){var t;let n=(t=z(h).getConfig(cn))==null?void 0:t.function,{onChange:r}=e,[i,a]=G(``),[o,s]=G([]),[c,l]=G(0),[u,d]=G(`-1`),[f,p]=G(0),[m,g]=G(null),_=z(an),v=z(S),y=V(z(_n).sidebarOptions$),b=ti(v,!!n).filter(e=>_.getSearchListByType(Number(e.value)).length>0);b.unshift({label:v.t(`formula.moreFunctions.allFunctions`),value:`-1`});let x=v.t(`formula.prompt.required`),C=v.t(`formula.prompt.optional`);H(()=>{E(`-1`)},[]),H(()=>{T(0)},[o]),H(()=>{y!=null&&y.visible&&(a(``),s([]),l(0),d(`-1`),p(0),g(null),E(`-1`))},[y]);let w=e=>{if(i.trim()===``)return e;let t=RegExp(`(${i.toLocaleUpperCase()})`);return e.split(t).filter(Boolean).map((e,n)=>e.match(t)?K(`span`,{className:`univer-text-red-500`,children:e},n):e)},T=e=>{if(o.length===0){g(null),r(null);return}p(e);let t=_.getFunctionInfo(o[e].name);if(!t){g(null),r(null);return}g(t),r(t)};function E(e){d(e),s(_.getSearchListByType(+e))}function D(e){a(e),s(_.getSearchListByName(e))}function O(e){if(e.stopPropagation(),e.key===`ArrowDown`){let e=c+1;l(e===o.length?0:e)}else if(e.key===`ArrowUp`){let e=c-1;l(e===-1?o.length-1:e)}else e.key===`Enter`&&T(c)}let ee=e=>{l(e)},te=()=>{l(-1)};return q(`div`,{children:[q(`div`,{className:`univer-flex univer-items-center univer-justify-between univer-gap-2`,children:[K(Fn,{value:u,options:b,onChange:E}),K(Pn,{placeholder:v.t(`formula.moreFunctions.searchFunctionPlaceholder`),onKeyDown:O,value:i,onChange:D,size:`small`,allowClear:!0})]}),o.length>0&&K(`ul`,{className:J(`
|
|
8
|
-
univer-mb-0 univer-mt-2 univer-box-border univer-max-h-72 univer-w-full univer-select-none
|
|
9
|
-
univer-list-none univer-overflow-y-auto univer-rounded univer-p-3 univer-outline-none
|
|
10
|
-
`,Ln,Bn),onKeyDown:O,tabIndex:-1,children:o.map(({name:e},t)=>q(`li`,{className:J(`
|
|
11
|
-
univer-relative univer-box-border univer-cursor-pointer univer-rounded univer-px-7
|
|
12
|
-
univer-py-1 univer-text-sm univer-text-gray-900 univer-transition-colors
|
|
13
|
-
dark:!univer-text-white
|
|
14
|
-
`,{"univer-bg-gray-200 dark:!univer-bg-gray-600":c===t}),onMouseEnter:()=>ee(t),onMouseLeave:te,onClick:()=>T(t),children:[f===t&&K(Vn,{className:`
|
|
15
|
-
univer-absolute univer-left-1.5 univer-top-1/2 univer-inline-flex
|
|
16
|
-
-univer-translate-y-1/2 univer-text-base univer-text-primary-600
|
|
17
|
-
`}),K(`span`,{className:`univer-block`,children:w(e)})]},t))}),m&&q(`div`,{className:J(`univer-mx-0 univer-my-2 univer-overflow-y-auto`,Bn),children:[K(ii,{title:m.functionName,value:m.description}),K(ii,{title:v.t(`formula.moreFunctions.syntax`),value:K(ri,{prefix:m.functionName,value:m.functionParameter})}),K(ii,{title:v.t(`formula.prompt.helpExample`),value:`${m.functionName}(${m.functionParameter.map(e=>e.example).join(`,`)})`}),m.functionParameter&&m.functionParameter.map(e=>K(ii,{title:e.name,value:`${e.require?x:C} ${e.detail}`},e.name))]})]})}function si(){let e=Ge(),[t,n]=G(!0),[r,i]=G(!1),[s,c]=G(null);z(Se);let l=z(S),u=z(St),d=z(v),f=z(m);function p(){n(!t),i(!r)}function h(){let e=nn(d);if(!e)return;f.executeCommand(Ne.id,{visible:!0,unitId:e.unitId,eventType:kt.Dblclick});let t=u.getEditor(o),n=u.getEditor(a),r=`=${s==null?void 0:s.functionName}(`;t==null||t.replaceText(r),n==null||n.replaceText(r,!1)}return q(`div`,{"data-u-comp":`sheets-formula-functions-panel`,className:`univer-box-border univer-flex univer-h-full univer-flex-col univer-justify-between univer-py-2`,children:[t&&K(oi,{onChange:c}),r&&K(ai,{functionInfo:s,onChange:()=>{}}),q(`div`,{className:`univer-flex univer-justify-end`,children:[r&&K(Mn,{variant:`primary`,onClick:p,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.next`)}),r&&K(Mn,{onClick:p,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.prev`)}),t&&!!e&&K(Mn,{disabled:!s,variant:`primary`,onClick:h,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.confirm`)})]})]})}function ci(e){return e.getContextValue(f)&&e.getContextValue(p)}const li=[L.ARROW_DOWN,L.ARROW_UP,L.ARROW_LEFT,L.ARROW_RIGHT],ui=[...li,L.ENTER,L.TAB,L.ESC];function di(){let e=[];for(let t of ui)e.push({id:Zn.id,binding:t,preconditions:e=>Ke(e),staticParameters:{eventType:kt.Keyboard,keycode:t}});return e}function fi(){let e=[];for(let t of li)e.push({id:Zn.id,binding:t|R.SHIFT,preconditions:e=>Ke(e),staticParameters:{eventType:kt.Keyboard,keycode:t,metaKey:R.SHIFT}});return e}function pi(){let e=[];for(let t of li)e.push({id:Zn.id,binding:t|R.CTRL_COMMAND,preconditions:e=>Ke(e),staticParameters:{eventType:kt.Keyboard,keycode:t,metaKey:R.CTRL_COMMAND}});return e}function mi(){let e=[];for(let t of li)e.push({id:Zn.id,binding:t|R.SHIFT|R.CTRL_COMMAND,preconditions:e=>Ke(e),staticParameters:{eventType:kt.Keyboard,keycode:t,metaKey:`meta_key_ctrl_And_Shift`}});return e}const hi={id:_r.id,binding:L.F4,preconditions:e=>Ke(e)};function gi(){let e=[];for(let t of[L.ENTER,L.TAB,L.ARROW_DOWN,L.ARROW_UP])e.push({id:Zn.id,binding:t,preconditions:e=>ci(e),staticParameters:{eventType:kt.Keyboard,keycode:t,isSingleEditor:!0}});return e}const _i={id:ln.id,binding:R.ALT|L.EQUAL,preconditions:qe,mac:R.CTRL_COMMAND|R.ALT|L.EQUAL,description:`shortcut.sheets-formula-ui.quick-sum`,group:`4_sheet-edit`};let vi=class extends l{constructor(e,t,n,r,i,a,o){super(),this._injector=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._uiPartsService=i,this._renderManagerService=a,this._componentManager=o,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu($r)}_registerCommands(){[Yn,Xn,Z,Q,vr,ar,Zn,_r].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerShortcuts(){[...di(),...fi(),...pi(),...mi(),...gi(),_i,hi].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(Ie.FORMULA_AUX,()=>wn(ei,this._injector))),this._componentManager.register(gr,si)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(k.UNIVER_SHEET,[Fr]))}};vi=tr([X(0,y(b)),X(1,hn),X(2,m),X(3,gn),X(4,vn),X(5,At),X(6,y(pn))],vi);let yi=class extends l{constructor(e,t,n){super(),this._imageFormulaCellInterceptorController=e,this._renderManagerService=t,this._univerInstanceService=n,this._imageFormulaCellInterceptorController.registerRefreshRenderFunction(()=>{let e=this._univerInstanceService.getCurrentUnitOfType(k.UNIVER_SHEET);if(!e)return;let t=this._renderManagerService.getRenderById(e.getUnitId());if(!t)return;t.with(Fe).reCalculate();let n=t.mainComponent;n&&n.makeDirty()})}};yi=tr([X(0,y(on)),X(1,At),X(2,v)],yi);var bi=class{constructor(){Y(this,`_currentSelector$`,new dt(null)),Y(this,`currentSelector$`,this._currentSelector$.asObservable())}showRangeSelectorDialog(e){let t=e.callback,n=new Promise(n=>{e.callback=e=>{n(e),t(e)}});return this._currentSelector$.next(e),n}};let xi=class extends me{constructor(e,t,n,r,i,a,o){super(t,n,r,i,a),this._context=e,this._contextService=a,this._refSelectionsService=o,Y(this,`_workbookSelections`,void 0),Y(this,`_eventDisposables`,void 0),this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(Si(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(e){this._remainLastEnabled=e}setSkipLastEnabled(e){this._skipLastEnabled=e}clearLastSelection(){let e=this._selectionControls[this._selectionControls.length-1];e&&(e.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),fe(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var e;(e=this._eventDisposables)==null||e.dispose(),this._eventDisposables=null}disableSelectionChanging(){this._disableSelectionChanging()}_initCanvasEventListeners(){let{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:n,spreadsheetLeftTopPlaceholder:r}=this._getSheetObject(),{scene:i}=this._context,a=new u;return a.add(n==null?void 0:n.onPointerDown$.subscribeEvent((e,t)=>{this.inRefSelectionMode()&&(this._onPointerDown(e,n.zIndex+1,T.NORMAL,this._getActiveViewport(e)),e.button!==2&&t.stopPropagation())})),a.add(e==null?void 0:e.onPointerDown$.subscribeEvent((e,t)=>{if(!this.inRefSelectionMode())return;let r=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:a}=Ve(e.offsetX,e.offsetY,i,r);Re(this._workbookSelections.getCurrentSelections(),a,T.ROW)||(this._onPointerDown(e,(n.zIndex||1)+1,T.ROW,this._getActiveViewport(e),Mt.Y),e.button!==2&&t.stopPropagation())})),a.add(t==null?void 0:t.onPointerDown$.subscribeEvent((e,t)=>{if(!this.inRefSelectionMode())return;let r=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:a}=Ve(e.offsetX,e.offsetY,i,r);Re(this._workbookSelections.getCurrentSelections(),a,T.COLUMN)||(this._onPointerDown(e,(n.zIndex||1)+1,T.COLUMN,this._getActiveViewport(e),Mt.X),e.button!==2&&t.stopPropagation())})),a.add(r==null?void 0:r.onPointerDown$.subscribeEvent((e,t)=>{if(this._reset(),!this.inRefSelectionMode())return;let n=this._sheetSkeletonManagerService.getCurrent().skeleton,r=Be(n);this._addSelectionControlByModelData(r),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());let a=i.onPointerUp$.subscribeEvent(()=>{a.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});e.button!==2&&t.stopPropagation()})),a}_addSelectionControlByModelData(e){var t;let n=this._skeleton,r=(t=e.style)==null?ze(this._themeService):t,i=this._scene;return e.style=r,this.newSelectionControl(i,n,e)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(e=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(e||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(e=>{this._updateSelections(e,Vt.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(e=>{this._updateSelections(e,Vt.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(e=>{this._updateSelections(e,Vt.MOVE_END)}))}_updateSelections(e,t){let n=this._context.unit.getActiveSheet().getSheetId();e.length!==0&&this._workbookSelections.setSelections(n,e.map(e=>en(e)),t)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var t;if(!e)return;let{skeleton:n}=e,{scene:r}=this._context,i=r.getViewport(jt.VIEW_MAIN);this._skeleton&&((t=this._skeleton.worksheet)==null?void 0:t.getSheetId())!==n.worksheet.getSheetId()&&this._reset(),this._changeRuntime(n,r,i);let a=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(a)}))}_getActiveViewport(e){let t=this._getSheetObject();return t==null?void 0:t.scene.getActiveViewportByCoord(Nt.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return Ue(this._context.unit,this._context)}_onPointerDown(e,t=0,n=T.NORMAL,r,i=Mt.ALL){var a;this._rangeType=n;let o=this._skeleton,s=this._scene;if(!s||!o)return;r&&(this._activeViewport=r);let{offsetX:c,offsetY:l}=e,u=s.getViewport(jt.VIEW_MAIN);if(!u)return;let d=s.getCoordRelativeToViewport(Nt.FromArray([c,l])),{x:f,y:p}=d;this._startViewportPosX=f,this._startViewportPosY=p;let m=s.getScrollXYInfoByViewport(d),{scaleX:h,scaleY:g}=s.getAncestorScale(),_=this._skeleton.getCellByOffset(f,p,h,g,m);if(!_)return;switch(n){case T.NORMAL:break;case T.ROW:_.startColumn=0,_.endColumn=this._skeleton.getColumnCount()-1;break;case T.COLUMN:_.startRow=0,_.endRow=this._skeleton.getRowCount()-1;break;case T.ALL:_.startRow=0,_.startColumn=0,_.endRow=this._skeleton.getRowCount()-1,_.endColumn=this._skeleton.getColumnCount()-1}let v={range:_,primary:_,style:null};(_.isMerged||_.isMergedMainCell)&&(v={range:{..._,startRow:_.startRow,endRow:_.startRow,startColumn:_.startColumn,endColumn:_.startColumn},primary:{..._,actualRow:_.startRow,actualColumn:_.startColumn,startRow:_.startRow,endRow:_.startRow,startColumn:_.startColumn,endColumn:_.startColumn},style:null}),v.range.rangeType=n;let y=Le(v,this._skeleton);this._startRangeWhenPointerDown={...y.rangeWithCoord};let b={...y.rangeWithCoord,rangeType:n},x=this.getActiveSelectionControl(),S=this.getSelectionControls();for(let t of S){if(e.button===2&&D.contains(t.model,b)){x=t;return}if(t.model.isEqual(b)){x=t;break}}this._checkClearPreviousControls(e);let C=x==null?void 0:x.model.currentCell,w=e.shiftKey&&C,E=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;w&&C?this._makeSelectionByTwoCells(C,b,o,n,x):E&&x?x.updateRangeBySelectionWithCoord(y):x=this.newSelectionControl(s,o,v);for(let e=0;e<this.getSelectionControls().length-1;e++)this.getSelectionControls()[e].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),s.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(a=s.getTransformer())==null||a.clearSelectedObjects(),this._setupPointerMoveListener(u,x,n,i,f,p),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(()=>{var e;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(e=this._escapeShortcutDisposable)==null||e.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(e,t,n){let r=this.getSelectionControls().length,{rowHeaderWidth:i,columnHeaderHeight:a}=t,o=new Me(e,r,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:i,columnHeaderHeight:a}),s=Le(n,t);return o.updateRangeBySelectionWithCoord(s),this._selectionControls.push(o),o.setControlExtension({skeleton:t,scene:e,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),o}};xi=tr([X(1,y(b)),X(2,y(te)),X(3,gn),X(4,y(Fe)),X(5,g),X(6,It)],xi);function Si(e){let t=ze(e);return t.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},t}const Ci=(e,t,n=!0)=>{let r=-1;return e.reduce((e,i,a)=>{if(e.isFinish)return e;let o=e.currentIndex;if(typeof i!=`string`)e.currentIndex+=i.token.length;else{let t=i.length;e.currentIndex+=t}return(n?e.currentIndex===t:t>o&&t<=e.currentIndex)&&(r=a,e.isFinish=!0),e},{currentIndex:0,isFinish:!1}),r},wi=(e,t)=>{let n=e[t],r=-1;if(!n||typeof n==`string`||n.nodeType!==I.REFERENCE)return-1;for(let n=0;n<=t;n++){let t=e[n];typeof t!=`string`&&t.nodeType===I.REFERENCE&&r++}return r},Ti=(e,t=100)=>{H(()=>{let n=null,r=()=>{n===null&&(n=window.setTimeout(()=>{e(),n=null},t))};return window.addEventListener(`scroll`,r),window.addEventListener(`resize`,r),()=>{n!==null&&clearTimeout(n),window.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,r)}},[e,t])};function Ei(e,t,n){let r=z(St),i=U(()=>new dt({left:-999,top:-999,right:-999,bottom:-999}),[]),a=z(_n),o=z(v),s=B(()=>{var t;let n=r.getEditor(e);if(!n)return;let a=n.getBoundingClientRect(),{marginTop:o=0,marginBottom:s=0}=n.getDocumentData().documentStyle,c=n.getSkeleton();if(!c)return;let l=(t=c.getSkeletonData())==null?void 0:t.pages[0].height,{left:u,top:d,right:f,bottom:p}=a;d+=o,p=l?d+l:p-s;let m=i.getValue();if(!(m.left===u&&m.top===d&&m.right===f&&m.bottom===p))return i.next({left:u-1,right:f+1,top:d-1,bottom:p+1}),a});return H(()=>{t&&s()},[e,r,o.unitAdded$,s,t,...n==null?[]:n]),Ti(s),H(()=>{let e=a.scrollEvent$.pipe(yt(100)).subscribe(s);return()=>{e.unsubscribe()}},[]),[i,s]}const Di=e=>{let t=W(e);return t.current=e,t},Oi=(e,t,n)=>{let r=z(rr),i=z(an),a=z(Ye),[o,s]=G(),[c,l]=G(-1),[u,d]=G(!0),f=Di(u),p=W(t);p.current=t;let m=()=>{s(void 0),l(-1),d(!1)};return H(()=>{let e=a.sequenceNodesBuilder(t.slice(1));r.setSequenceNodes(e==null?[]:e)},[t]),H(()=>{if(n&&e){let e=n.selectionChange$.pipe(mt(50)).subscribe(e=>{if(e.textRanges.length===1){let[t]=e.textRanges;if(t.collapsed&&f.current){let{startOffset:e}=t,n=r.getCurrentSequenceNodeIndex(e-2),o=r.getCurrentSequenceNodeByIndex(n),c=r.getCurrentSequenceNodeByIndex(n+1);if(o)if(typeof o!=`string`&&o.nodeType===3&&!i.hasDefinedNameDescription(o.token.trim())&&c===at.OPEN_BRACKET){s(i.getFunctionInfo(o.token)),l(-1);return}else{let t=a.getFunctionAndParameter(`${p.current}A`,e-1);if(t){let{functionName:e,paramIndex:n}=t;s(i.getFunctionInfo(e)),l(n);return}}}}s(void 0),l(-1)}),t=n.selectionChange$.pipe(gt(e=>e.textRanges.length===1),_t(e=>e.textRanges[0].startOffset),ht()).subscribe(()=>{d(!0)});return()=>{e.unsubscribe(),t.unsubscribe()}}},[n,e]),H(()=>{e||m()},[e]),{functionInfo:o,paramIndex:c,reset:m}},ki=({onClick:e})=>K(`div`,{className:`
|
|
18
|
-
univer-z-[15] univer-box-border univer-h-[18px] univer-cursor-pointer univer-overflow-visible
|
|
19
|
-
univer-whitespace-nowrap univer-rounded-l univer-border univer-border-r-0 univer-border-gray-600
|
|
20
|
-
univer-bg-primary-600 univer-p-0.5 univer-text-xs univer-font-bold univer-leading-[13px] univer-text-white
|
|
21
|
-
`,onClick:e,children:`?`}),Ai=({className:e,title:t,value:n})=>q(`div`,{className:`univer-my-2`,children:[K(`div`,{className:J(`
|
|
22
|
-
univer-mb-2 univer-text-sm univer-font-medium univer-text-gray-900
|
|
23
|
-
dark:!univer-text-white
|
|
24
|
-
`,e),children:t}),K(`div`,{className:`univer-whitespace-pre-wrap univer-break-words univer-text-xs univer-text-gray-500`,children:n})]}),ji=e=>{let{prefix:t,value:n,active:r,onClick:i}=e;return q(`div`,{children:[q(`span`,{children:[t,`(`]}),n&&n.map((e,t)=>q(`span`,{children:[K(`span`,{className:r===t?`univer-text-primary-500`:``,onClick:()=>i(t),children:ni(e)}),t===n.length-1?``:`,`]},e.name)),`)`]})},Mi=()=>{};function Ni(e){let{onParamsSwitch:t=Mi,onClose:n=Mi,isFocus:r,editor:i,formulaText:a}=e,{functionInfo:o,paramIndex:s,reset:c}=Oi(r,a,i),l=z(Se),u=!V(l.helpFunctionVisible$),[d,f]=G(!1),p=z(S),m=p.t(`formula.prompt.required`),h=p.t(`formula.prompt.optional`),[g]=Ei(i.getEditorId(),!!o,[o,s]);function _(e){t&&t(e)}let v=B(e=>{l.helpFunctionVisible$.next(!e)});return o?u?K(Sn,{portal:!0,anchorRect$:g,direction:`left-center`,children:K(ki,{onClick:()=>v(!1)})},`hidden`):K(Sn,{portal:!0,onClickOutside:()=>c(),anchorRect$:g,direction:`vertical`,children:q(`div`,{className:J(`
|
|
25
|
-
univer-m-0 univer-box-border univer-w-[250px] univer-select-none univer-list-none
|
|
26
|
-
univer-rounded-lg univer-bg-white univer-leading-5 univer-shadow-md univer-outline-none
|
|
27
|
-
dark:!univer-bg-gray-900
|
|
28
|
-
`,Ln),children:[q(`div`,{className:J(`
|
|
29
|
-
univer-box-border univer-flex univer-items-center univer-justify-between univer-px-4
|
|
30
|
-
univer-py-3 univer-text-xs univer-font-medium univer-text-gray-900
|
|
31
|
-
dark:!univer-text-white
|
|
32
|
-
`,zn),style:{overflowWrap:`anywhere`},children:[K(ji,{prefix:o.functionName,value:o.functionParameter,active:s,onClick:_}),q(`div`,{className:`univer-flex`,children:[K(`div`,{className:`
|
|
33
|
-
univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-items-center
|
|
34
|
-
univer-justify-center univer-rounded univer-bg-transparent univer-p-0
|
|
35
|
-
univer-text-xs univer-text-gray-500 univer-outline-none univer-transition-colors
|
|
36
|
-
hover:univer-bg-gray-200
|
|
37
|
-
dark:hover:!univer-bg-gray-600
|
|
38
|
-
`,style:{transform:d?`rotateZ(-90deg)`:`rotateZ(90deg)`},onClick:()=>f(!d),children:K(Gn,{})}),K(`div`,{className:`
|
|
39
|
-
univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-items-center
|
|
40
|
-
univer-justify-center univer-rounded univer-bg-transparent univer-p-0
|
|
41
|
-
univer-text-xs univer-text-gray-600 univer-outline-none univer-transition-colors
|
|
42
|
-
hover:univer-bg-gray-300
|
|
43
|
-
dark:!univer-text-gray-200
|
|
44
|
-
dark:hover:!univer-bg-gray-600
|
|
45
|
-
`,onClick:()=>{v(!0),n()},children:K(Hn,{})})]})]}),K(`div`,{className:J(`
|
|
46
|
-
univer-box-border univer-max-h-[350px] univer-overflow-y-auto univer-px-4 univer-pb-3
|
|
47
|
-
univer-pt-0
|
|
48
|
-
`,Bn),style:{height:d?`unset`:0,padding:d?`revert-layer`:0},children:q(`div`,{className:`univer-mt-3`,children:[K(Ai,{title:p.t(`formula.prompt.helpExample`),value:`${o.functionName}(${o.functionParameter.map(e=>e.example).join(`,`)})`}),K(Ai,{title:p.t(`formula.prompt.helpAbstract`),value:o.description}),o&&o.functionParameter&&o.functionParameter.map((e,t)=>K(Ai,{className:s===t?`univer-text-primary-500`:``,title:e.name,value:`${e.require?m:h} ${e.detail}`},t))]})})]})},`show`):null}const Pi=e=>{let t=z(St);return B(n=>{if(e){t.focus(e.getEditorId());let a=[...e.getSelectionRanges()];if(ne.isDefine(n))e.setSelectionRanges([{startOffset:n,endOffset:n}]);else if(!a.length&&!e.docSelectionRenderService.isOnPointerEvent){var r,i;let t=(r=(i=e.getDocumentData().body)==null?void 0:i.dataStream)==null?`\r
|
|
49
|
-
`:r,n=Math.max(t.length-2,0);e.setSelectionRanges([{startOffset:n,endOffset:n}])}else e.setSelectionRanges(a)}})};function Fi(e){var t,n;let r=e.get(v).getCurrentUniverDocInstance();if(r!=null&&r.getBody())return{dataStream:(t=(n=r.getBody())==null?void 0:n.dataStream)==null?``:t,offset:0}}let $=function(e){return e[e.NOT_SELECT=0]=`NOT_SELECT`,e[e.NEED_ADD=1]=`NEED_ADD`,e[e.CAN_EDIT=2]=`CAN_EDIT`,e[e.EDIT_OTHER_SHEET_REFERENCE=3]=`EDIT_OTHER_SHEET_REFERENCE`,e[e.EDIT_OTHER_WORKBOOK_REFERENCE=4]=`EDIT_OTHER_WORKBOOK_REFERENCE`,e}({});function Ii(e){var t;let{editorId:n,isFocus:r,disableOnClick:i,unitId:a,subUnitId:o}=e,s=z(At),c=z(v),l=s.getRenderById(a),u=s.getRenderById(n),d=u==null?void 0:u.with(xt),f=z(qn),p=z(b),[m,h]=G($.NOT_SELECT),g=z(Ye),_=W(!0),y=l==null?void 0:l.with(xi),x=Di(m),S=c.getUnit(a,k.UNIVER_SHEET),C=S==null?void 0:S.getSheetBySheetId(o),w=B(e=>{y&&y.setSkipLastEnabled(e===$.NEED_ADD||e===$.EDIT_OTHER_SHEET_REFERENCE||e===$.EDIT_OTHER_WORKBOOK_REFERENCE),x.current=e,h(e)}),T=B(()=>{var e,t;let n=c.getCurrentUnitOfType(k.UNIVER_SHEET);if(!n)return;let r=n.getActiveSheet(),i=d==null?void 0:d.getActiveTextRange(),a=i!=null&&i.collapsed?i.startOffset:-1,o=Fi(p);if(!o)return;let s=o==null||(e=o.dataStream)==null?void 0:e.slice(0,-2),l=((t=g.sequenceNodesBuilder(s))==null?[]:t).map(e=>typeof e==`object`?e.nodeType===I.REFERENCE?{...e,range:et(e.token)}:{...e,range:void 0}:e),u=s[a-1],f=s[a],m=l.find(e=>typeof e==`object`&&e.nodeType===I.REFERENCE&&a===e.endIndex+2),h=u&&it(u)&&(!f||rt(f)&&f!==at.OPEN_BRACKET),v=!!m;if((s==null?void 0:s.substring(0,1))===`=`&&(h||v))if(v){var y;if(_.current)return;let{sheetName:e,unitId:t}=m.range,n=(y=c.getCurrentUnitOfType(k.UNIVER_SHEET))==null?void 0:y.getUnitId();t&&t!==n?w($.EDIT_OTHER_WORKBOOK_REFERENCE):!e&&r.getSheetId()===(C==null?void 0:C.getSheetId())||e===r.getName()?w($.CAN_EDIT):w($.EDIT_OTHER_SHEET_REFERENCE)}else _.current=!1,w($.NEED_ADD);else w($.NOT_SELECT)});return H(()=>{let e=f.textSelection$.pipe(gt(e=>e.unitId===n)).subscribe(()=>{T()});return()=>e.unsubscribe()},[T,f.textSelection$,n]),H(()=>{r||(w($.NOT_SELECT),_.current=!0)},[r,w]),H(()=>{var e;if(!i)return;let t=u==null||(e=u.mainComponent)==null?void 0:e.onPointerDown$.subscribeEvent(()=>{w($.NOT_SELECT),_.current=!0});return()=>t==null?void 0:t.unsubscribe()},[i,u==null||(t=u.mainComponent)==null?void 0:t.onPointerDown$,w]),H(()=>{if(!r)return;let e=S==null?void 0:S.activeSheet$.subscribe(()=>{T()}),t=c.getCurrentTypeOfUnit$(k.UNIVER_SHEET).subscribe(()=>{T()});return()=>{e==null||e.unsubscribe(),t==null||t.unsubscribe()}},[T,r,S==null?void 0:S.activeSheet$,c.getCurrentTypeOfUnit$]),{isSelecting:m,isSelectingRef:x}}const Li=()=>{let e=z(Ye);return On(t=>e.sequenceNodesBuilder(t)||[],[e])};function Ri(e,t,r){return{id:r,strokeWidth:1,stroke:t,fill:new n(t).setAlpha(.05).toRgbString(),widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.getColorFromTheme(`white`)}}function zi(e){var t;let{unitId:n,subUnitId:r,currentWorkbook:i,refSelections:a,editor:o,refSelectionsService:s,refSelectionsRenderService:c,sheetSkeletonManagerService:l,themeService:u,univerInstanceService:d}=e,f=i.getUnitId(),p=d.getUnit(n,k.UNIVER_SHEET),m=p==null?void 0:p.getActiveSheet(),h=[];if(!p||!m){s.setSelections(h);return}let g=m.getSheetId(),_=e=>{var t;return p==null||(t=p.getSheetBySheetName(e))==null?void 0:t.getSheetId()};if(!(!(l==null||(t=l.getWorksheetSkeleton(g))==null)&&t.skeleton))return;let v=[];for(let e=0,t=a.length;e<t;e++){let{themeColor:t,token:i,refIndex:o,endIndex:s}=a[e],{unitId:c,sheetName:l,range:d}=$e(i),p=_(l);if(!p&&l||f!==n&&c!==f||c&&c!==f||p&&p!==g||!p&&g!==r)continue;let y=rn(d,m.getRowCount(),m.getColumnCount());y.unitId=n,y.sheetId=g,h.push({range:y,primary:null,style:Ri(u,t,o.toString())}),v.push(s)}if(o){var y;let e=(y=o.getSelectionRanges())==null||(y=y[0])==null?void 0:y.startOffset,t=v.findIndex(t=>t+2===e);t===-1?c==null||c.resetActiveSelectionIndex():c==null||c.setActiveSelectionIndex(t)}return h}function Bi(e,t){let n=z(v),r=z(te),i=z(It),a=z(At),o=V(U(()=>n.getCurrentTypeOfUnit$(k.UNIVER_SHEET),[n])),s=o?a.getRenderById(o.getUnitId()):null,c=s==null?void 0:s.with(xi),l=s==null?void 0:s.with(Fe),u=B((a,o)=>{let s=n.getCurrentUnitOfType(k.UNIVER_SHEET);if(!s||c!=null&&c.selectionMoving)return;let u=zi({unitId:e,subUnitId:t,currentWorkbook:s,refSelections:a,editor:o,refSelectionsService:i,refSelectionsRenderService:c,sheetSkeletonManagerService:l,themeService:r,univerInstanceService:n});u&&(((c==null?void 0:c.getSelectionControls())||[]).length===u.length?c==null||c.resetSelectionsByModelData(u):i.setSelections(u))});return H(()=>()=>{c==null||c.resetActiveSelectionIndex()},[c]),u}function Vi(e=``){let t=z(an),n=Hi(),r=z(m),i=U(()=>e.length,[e]);return B((a,o,s=!0,c)=>{let l=a.getDocumentData(),u=a.getEditorId();if(!l)return[];let d=l.body;if(!d)return[];let f=d.dataStream.slice(0,d.dataStream.length-2),p={dataStream:``,...l.body};if(!f.startsWith(e))return[];if(o==null||o.length===0)return p.textRuns=[],r.syncExecuteCommand(Tt.id,{unitId:u,body:oe(p,0,p.dataStream.length-2)}),[];{let{textRuns:l,refSelections:d}=Ui(t,n,o);i&&l.forEach(e=>{e.ed+=i,e.st+=i}),p.textRuns=[{st:0,ed:1,ts:{fs:11}},...l],p.dataStream=`${e}${o.reduce((e,t)=>typeof t==`string`?`${e}${t}`:`${e}${t.token}`,``)}\r\n`;let f;if(s){f=a.getSelectionRanges();let e=p.dataStream.length-2+i;f.forEach(t=>{t.startOffset=Math.max(0,Math.min(t.startOffset,e)),t.endOffset=Math.max(0,Math.min(t.endOffset,e))})}return r.syncExecuteCommand(Tt.id,{unitId:u,body:oe(p,0,p.dataStream.length-2),textRanges:c==null?f:c}),d}})}function Hi(){let e=z(te);return U(()=>({formulaRefColors:[e.getColorFromTheme(`loop-color.1`),e.getColorFromTheme(`loop-color.2`),e.getColorFromTheme(`loop-color.3`),e.getColorFromTheme(`loop-color.4`),e.getColorFromTheme(`loop-color.5`),e.getColorFromTheme(`loop-color.6`),e.getColorFromTheme(`loop-color.7`),e.getColorFromTheme(`loop-color.8`),e.getColorFromTheme(`loop-color.9`),e.getColorFromTheme(`loop-color.10`),e.getColorFromTheme(`loop-color.11`),e.getColorFromTheme(`loop-color.12`)].map(t=>e.isValidThemeColor(t)?e.getColorFromTheme(t):t),numberColor:e.getColorFromTheme(`blue.700`),stringColor:e.getColorFromTheme(`jiqing.800`),plainTextColor:e.getColorFromTheme(`black`)}),[e.getCurrentTheme()])}function Ui(e,t,n){let{formulaRefColors:r,numberColor:i,stringColor:a,plainTextColor:o}=t,s=[],c=[],l=new Map,u=0;for(let t=0,d=n.length;t<d;t++){let d=n[t];if(typeof d==`string`){let e=s[s.length-1],t=e?e.ed:0,n=t+d.length;s.push({st:t,ed:n,ts:{cl:{rgb:o},fs:11}});continue}if(e.hasDefinedNameDescription(d.token.trim())){s.push({st:d.startIndex,ed:d.endIndex+1,ts:{cl:{rgb:o},fs:11}});continue}let{startIndex:f,endIndex:p,nodeType:m,token:h}=d,g=``;m===I.REFERENCE?(l.has(h)?g=l.get(h):(g=r[u%r.length],l.set(h,g),u++),c.push({refIndex:t,themeColor:g,token:h,startIndex:d.startIndex,endIndex:d.endIndex,index:c.length})):m===I.NUMBER?g=i:(m===I.STRING||m===I.ARRAY)&&(g=a),g&&g.length>0?s.push({st:f,ed:p+1,ts:{cl:{rgb:g},fs:11}}):s.push({st:f,ed:p+1,ts:{cl:{rgb:o},fs:11}})}return{textRuns:s,refSelections:c}}const Wi=(e,t,n,i)=>{let a=z(m),o=z(gn),s=W(t);s.current=t;let l=W(i);l.current=i,H(()=>{if(!n||!e)return;let t=`sheet.formula-embedding-editor.${n.getEditorId()}`,i=new u,d=(e,t)=>{if(l.current){l.current(e,t);return}let n=c.LEFT;e===L.ARROW_DOWN?n=c.DOWN:e===L.ARROW_UP?n=c.UP:e===L.ARROW_RIGHT&&(n=c.RIGHT),t===R.SHIFT?a.executeCommand(wt.id,{direction:n}):a.executeCommand(Ct.id,{direction:n})},f=(e,t)=>{let n=c.DOWN;e===L.ARROW_DOWN?n=c.DOWN:e===L.ARROW_UP?n=c.UP:e===L.ARROW_LEFT?n=c.LEFT:e===L.ARROW_RIGHT&&(n=c.RIGHT),s.current?t===R.CTRL_COMMAND?a.executeCommand(Ee.id,{direction:n,jumpOver:Te.moveGap,extra:`formula-editor`,fromCurrentSelection:s.current===$.NEED_ADD||s.current===$.EDIT_OTHER_SHEET_REFERENCE}):t===R.SHIFT?a.executeCommand(be.id,{direction:n,extra:`formula-editor`}):t===(R.CTRL_COMMAND|R.SHIFT)?a.executeCommand(be.id,{direction:n,jumpOver:Te.moveGap,extra:`formula-editor`}):a.executeCommand(Ee.id,{direction:n,extra:`formula-editor`,fromCurrentSelection:s.current===$.NEED_ADD||s.current===$.EDIT_OTHER_SHEET_REFERENCE}):d(e,t)};return i.add(a.registerCommand({id:t,type:r.OPERATION,handler(e,t){let{keyCode:n,metaKey:r}=t;f(n,r)}})),[{keyCode:L.ARROW_DOWN},{keyCode:L.ARROW_LEFT},{keyCode:L.ARROW_RIGHT},{keyCode:L.ARROW_UP},{keyCode:L.ARROW_DOWN,metaKey:R.SHIFT},{keyCode:L.ARROW_LEFT,metaKey:R.SHIFT},{keyCode:L.ARROW_RIGHT,metaKey:R.SHIFT},{keyCode:L.ARROW_UP,metaKey:R.SHIFT},{keyCode:L.ARROW_DOWN,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_LEFT,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_RIGHT,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_UP,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_DOWN,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_LEFT,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_RIGHT,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_UP,metaKey:R.CTRL_COMMAND|R.SHIFT}].map(({keyCode:e,metaKey:n})=>({id:t,binding:n?e|n:e,preconditions:()=>!0,priority:900,staticParameters:{eventType:kt.Keyboard,keyCode:e,metaKey:n}})).forEach(e=>{i.add(o.registerShortcut(e))}),()=>{i.dispose()}},[a,n,e,o])},Gi=(e,t,n,r,i=!0)=>{var a;let o=z(At),s=z(g),c=z(mn),l=z(It),u=z(v),f=V(U(()=>u.getCurrentTypeOfUnit$(k.UNIVER_SHEET),[u])),p=o.getRenderById((a=f==null?void 0:f.getUnitId())==null?``:a),m=p==null?void 0:p.with(xi);An(()=>{if(e)return s.setContextValue(d,!0),i&&c.disable(),()=>{let e=u.getCurrentUnitOfType(k.UNIVER_DOC);(e==null?void 0:e.getUnitId())===r&&s.setContextValue(d,!1),i&&c.enable(),l.clear()}},[s,e,l,i,r]),An(()=>{if(e&&t){let e=m==null?void 0:m.enableSelectionChanging();return s.setContextValue(Lt,!0),()=>{s.setContextValue(Lt,!1),e==null||e.dispose()}}},[s,e,m,t]),H(()=>{e&&(m==null||m.setSkipLastEnabled(!1))},[e,m])},Ki=(e,t,n)=>{let r=z(v),i=z(Jt);return On(()=>{if(e){let e=[...i.getWorkbookSelections(t).getSelectionsOfWorksheet(n)],a=r.getCurrentUnitForType(k.UNIVER_SHEET),o=a==null?void 0:a.getActiveSheet();(a==null?void 0:a.getUnitId())!==t&&r.setCurrentUnitForType(t),o&&o.getSheetId()===n&&i.setSelections(e)}},[e,i,n,t,r])},qi=e=>e.reduce((e,t)=>typeof t==`string`?e+t.length:e+t.token.length,0),Ji=e=>e.map(e=>typeof e==`string`?e:e.token).join(``),Yi=(e,t=!1,n=``,r=!1)=>!t&&!r?e.map(e=>st(e.range)):e.map(e=>r?ct(e):e.sheetName!==``&&e.sheetName!==n?lt(e.sheetName,e.range):st(e.range)),Xi=e=>{var t,n,r;let{editor:i,lexerTreeBuilder:a}=e,o=i==null?void 0:i.getSelectionRanges();if((o==null?void 0:o.length)!==1)return;let s=o[0].startOffset-1,c=((t=i==null||(n=i.getDocumentData().body)==null?void 0:n.dataStream)==null?`\r
|
|
50
|
-
`:t).slice(0,-2),l=(r=a.sequenceNodesBuilder(c.slice(1)))==null?[]:r,u=Ci(l,s,!1);return{nodeIndex:u,updatingRefIndex:wi(l,u),sequenceNodes:l,offset:s}},Zi=(()=>{}),Qi=(e,t,n,r,i,a,o,s,c,l=Zi)=>{var d;let f=z(At),p=z(v),h=z(m),g=z(qn),_=z(te),y=z(Ye),b=p.getUnit(r),x=B((e,t)=>{var n,r;return(n=(r=p.getUnit(e))==null||(r=r.getSheetBySheetId(t))==null?void 0:r.getName())==null?``:n}),S=U(()=>x(r,i),[x,i,r]),C=V(b==null?void 0:b.activeSheet$),w=Di({activeSheet:C,sheetName:S}),T=V(U(()=>p.getCurrentTypeOfUnit$(k.UNIVER_SHEET),[p])),E=f.getRenderById((d=T==null?void 0:T.getUnitId())==null?``:d),O=E==null?void 0:E.with(xi),ee=E==null?void 0:E.with(Fe),ne=z(It),re=B((e,t,a)=>{let s=Xi({editor:c,lexerTreeBuilder:y});if(!s)return;let{nodeIndex:u,updatingRefIndex:d,sequenceNodes:f,offset:p}=s;if(n.current===$.NEED_ADD)if(p!==0){var m,h,g;if(u===-1&&f.length)return;let n=e[e.length-1],a=f.splice(u+1),s=(m=n.sheetId)==null?i:m,c={range:n,unitId:(h=n.unitId)==null?T.getUnitId():h,sheetName:x((g=n.unitId)==null?T.getUnitId():g,s)},d=s!==i,p=(T==null?void 0:T.getUnitId())!==r,_=Yi([c],o&&(d||p),S,p);f.push({token:_[0],nodeType:I.REFERENCE}),l(Ji([...f,...a]),qi(f),t)}else{var _,v,b;let n=e[e.length-1],a=(_=n.sheetId)==null?i:_,s={range:n,unitId:(v=n.unitId)==null?T.getUnitId():v,sheetName:x((b=n.unitId)==null?T.getUnitId():b,a)},c=a!==i,u=(T==null?void 0:T.getUnitId())!==r,d=Yi([s],o&&(c||u),S,u);f.unshift({token:d[0],nodeType:I.REFERENCE}),l(Ji(f),d[0].length,t)}else if(n.current===$.EDIT_OTHER_SHEET_REFERENCE||n.current===$.EDIT_OTHER_WORKBOOK_REFERENCE){let n=e.pop();if(!n)return;let i=f[u];if(typeof i==`object`&&i.nodeType===I.REFERENCE){let e=i.token;if((T==null?void 0:T.getUnitId())!==r){var E;i.token=ut((E=T==null?void 0:T.getUnitId())==null?``:E,S,n)}else i.token=S===(C==null?void 0:C.getName())?st(n):lt(C.getName(),n);let a=p+(i.token.length-e.length);l(nt(f),a,t)}}else{let n=[...e];if(!a&&d!==-1){let e=n.pop();e&&n.splice(d,0,e)}let s=0,c=f.map(e=>{if(typeof e==`string`)return e;if(e.nodeType===I.REFERENCE){var t,a,c;let u=$e(e.token);if(u.sheetName||(u.sheetName=S),(u.unitId||r)!==(T==null?void 0:T.getUnitId()))return e.token;if(o){var l;if(((l=w.current.activeSheet)==null?void 0:l.getName())!==u.sheetName)return e.token}let d=n[s];if(s++,!d)return``;let f=(t=d.sheetId)==null?i:t,p={range:d,unitId:(a=d.unitId)==null?T.getUnitId():a,sheetName:x((c=d.unitId)==null?T.getUnitId():c,f)},m=(T==null?void 0:T.getUnitId())!==r;return Yi([p],o&&(f!==i||m),S,m)[0]}return e.token}),p=``,m;c.forEach((e,t)=>{p+=e,t===u&&(m=p.length)});let h=[];for(let t=s;t<=e.length-1;t++){var D,O,ee;let n=e[t],a=(D=n.sheetId)==null?i:D,s={range:n,unitId:(O=n.unitId)==null?T.getUnitId():O,sheetName:x((ee=n.unitId)==null?T.getUnitId():ee,a)},c=(T==null?void 0:T.getUnitId())!==r,l=Yi([s],o&&(a!==i||c),S,c);h.push(l[0])}let g=f[f.length-1],_=g&&(typeof g==`string`?!1:g.nodeType===I.REFERENCE),v=`${p}${h.length&&_?`,`:``}${h.join(`,`)}`;l(v,!h.length&&m?m:v.length,t)}});H(()=>{if(O&&e){let e=!0,t=0,n=(n,r)=>{if(e){e=!1,t=n.length;return}let i=n.length>t;r&&(t=n.length),re(n.map(e=>e.rangeWithCoord),r,i)},r=new u;return r.add(O.selectionMoving$.subscribe(e=>{n(e,!1)})),r.add(O.selectionMoveEnd$.subscribe(e=>{n(e,!0)})),()=>{r.dispose()}}},[e,re,O]),H(()=>{if(t&&O&&c){let e=new u,t=()=>{e.dispose(),O.getSelectionControls().forEach((t,n)=>{e.add(t.selectionScaling$.subscribe(e=>{let t=O.getSelectionDataWithStyle().map(e=>e.rangeWithCoord),r=t[n];e.sheetId=r.sheetId,e.unitId=r.unitId,t[n]=e,re(t,!1)})),e.add(t.selectionMoving$.subscribe(e=>{let t=O.getSelectionDataWithStyle().map(e=>e.rangeWithCoord),r=t[n];e.sheetId=r.sheetId,e.unitId=r.unitId,t[n]=e,re(t,!0)}))})},n=vt(c.input$,ne.selectionSet$,O.selectionMoveEnd$).pipe(Jn(50)).subscribe(()=>{t()});return()=>{n.unsubscribe(),e.dispose()}}},[c,t,re,O,ne.selectionSet$]),O==null||O.getSelectionDataWithStyle(),H(()=>{if(s){let e=h.onCommandExecuted(e=>{if(e.id!==Wt.id)return;let t=e.params;if(t.extra===`formula-editor`&&t.selections.length){let e=t.selections[t.selections.length-1];if(e){var r;let{range:i,primary:a}=e;(a!=null&&a.isMergedMainCell||a!=null&&a.isMerged)&&D.contains(a,i)&&(i.startRow=a.startRow,i.endRow=a.startRow,i.startColumn=a.startColumn,i.endColumn=a.startColumn),i.unitId=t.unitId,i.sheetId=t.subUnitId;let o=n.current===$.NEED_ADD,s=((r=O==null?void 0:O.getSelectionDataWithStyle())==null?[]:r).map(e=>e.rangeWithCoord);o?s.push(i):s[s.length-1]=i,re(s,!0)}}});return()=>{e.dispose()}}},[h,c,n,y,s,re,O]),H(()=>{if(!c)return;let e=g.textSelection$.subscribe(e=>{e.unitId===c.getEditorId()&&zi({unitId:r,subUnitId:i,refSelections:a.current,editor:c,refSelectionsService:ne,refSelectionsRenderService:O,sheetSkeletonManagerService:ee,themeService:_,univerInstanceService:p,currentWorkbook:T})});return()=>e.unsubscribe()},[g.textSelection$,c,a,O,ne,ee,i,_,r,p])},$i=(e,t,n,r,i,a)=>{let s=z(m),c=z(St),l=z(At).getRenderById(t),u=z(v),d=l==null?void 0:l.with(xi);H(()=>{if(e&&d)if(n){let e=()=>{let e=d.getSelectionControls().length;for(let t=1;t<=e;t++)d.clearLastSelection();return setTimeout(()=>{a()},30)},t=s.onCommandExecuted(t=>{t.id===Gt.id&&e()}),n=u.getCurrentTypeOfUnit$(k.UNIVER_SHEET).subscribe(t=>{e()});return()=>{t.dispose(),n.unsubscribe()}}else{let e=s.beforeCommandExecuted(e=>{if(e.id===Gt.id){r(!1),i(),a();let e=c.getEditor(o);e==null||e.focus()}});return()=>{e.dispose()}}},[e,d])},ea=(e,t,n)=>{let r=z(Ye),i=W(!0);H(()=>{if(e){let e=setTimeout(()=>{i.current=!1},500);return()=>{clearTimeout(e)}}},[e]),H(()=>{i.current||t&&t(r.checkIfAddBracket(n)===0&&n.startsWith(ot.EQUALS),`${n}`)},[n,t])},ta=(e,t=[],n)=>{let r=z(an),[i,a]=G([]),[o,s]=G(``),c=W(-1),l=Di({nodes:t}),u=()=>{a([]),s(``),c.current=-1};return H(()=>{if(n&&e){let e=n.input$.pipe(mt(300)).subscribe(()=>{let e=n.getSelectionRanges();if(e.length===1){let t=l.current.nodes,n=e[0];if(n.collapsed){let e=Ci(t,n.startOffset-1,!1);c.current=e;let i=t[e];if(i&&typeof i!=`string`&&i.nodeType===I.FUNCTION){c.current=e;let t=i.token;a(r.getSearchListByNameFirstLetter(t)),s(t);return}}}c.current=-1,s(``),a(e=>e!=null&&e.length?[]:e)});return()=>{e.unsubscribe()}}},[n,e]),H(()=>{e||u()},[e]),{searchList:i,searchText:o,handlerFormulaReplace:(e,t)=>{let n=[...l.current.nodes];if(c.current!==-1){let r=n.splice(c.current+1),i=n.pop()||``,a=(typeof i==`string`?i.length:i.token.length)-e.length;return n.push(e),r[0]!==at.OPEN_BRACKET&&t!==F.DefinedName&&(n.push(at.OPEN_BRACKET),a--),{text:Ji([...n,...r]),offset:a}}},reset:u}},na=()=>{},ra=Dn(ia);function ia(e,t){let{isFocus:n,sequenceNodes:i,onSelect:a,editor:o,onClose:s=na}=e,c=o.getEditorId(),l=z(gn),d=z(m),{searchList:f,searchText:p,handlerFormulaReplace:h,reset:g}=ta(n,i,o),_=U(()=>!!f.length,[f]),v=W(void 0),[y,b]=G(0),x=W(!1),[S]=Ei(c,_,[p,f]),C=Di({searchList:f,active:y}),w=(e,t)=>{let n=h(e,t);n&&(g(),a(n))};function T(e){x.current&&b(e)}function E(){x.current&&b(-1)}H(()=>{if(!f.length)return;let e=`sheet.formula-embedding-editor.search_function.${c}`,t=new u,n=e=>{let{searchList:t,active:n}=C.current;switch(e){case L.ARROW_UP:b(e=>{let t=Math.max(0,e-1);return D(t),t});break;case L.ARROW_DOWN:b(e=>{let n=Math.min(t.length-1,e+1);return D(n),n});break;case L.TAB:case L.ENTER:{let e=t[n];w(e.name,e.functionType);break}case L.ESC:g(),s();break}};return t.add(d.registerCommand({id:e,type:r.OPERATION,handler(e,t){let{keyCode:r}=t;n(r)}})),[L.ARROW_UP,L.ARROW_DOWN,L.ENTER,L.ESC,L.TAB].map(t=>({id:e,binding:t,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:kt.Keyboard,keyCode:t}})).forEach(e=>{t.add(l.registerShortcut(e))}),()=>{t.dispose()}},[f]);function D(e){let t=v.current;if(!t)return;let n=t.children[e];if(!n)return;let r=t.getBoundingClientRect().top,i=t.offsetHeight,a=n.getBoundingClientRect(),o=a.top,s=a.height;if(o>=0&&o>r&&o-r+s<=i)return;let c=n.offsetTop-(i-s)/2;t.scrollTo({top:c,behavior:`smooth`})}let O=U(()=>{let e=``;return()=>{clearTimeout(e),x.current=!0,e=setTimeout(()=>{x.current=!1},300)}},[]);return f.length>0&&_&&K(Sn,{portal:!0,anchorRect$:S,direction:`vertical`,children:K(`ul`,{ref:e=>{v.current=e,t&&(t.current=e)},"data-u-comp":`sheets-formula-editor`,className:J(`
|
|
51
|
-
univer-m-0 univer-box-border univer-max-h-[400px] univer-w-[250px] univer-list-none
|
|
52
|
-
univer-overflow-y-auto univer-rounded-lg univer-bg-white univer-p-2 univer-leading-5 univer-shadow-md
|
|
53
|
-
univer-outline-none
|
|
54
|
-
dark:!univer-bg-gray-900
|
|
55
|
-
`,Ln,Bn),children:f.map((e,t)=>q(`li`,{className:J(`
|
|
56
|
-
univer-box-border univer-cursor-pointer univer-rounded univer-px-2 univer-py-1
|
|
57
|
-
univer-text-gray-900 univer-transition-colors
|
|
58
|
-
dark:!univer-text-white
|
|
59
|
-
`,{"univer-bg-gray-200 dark:!univer-bg-gray-600":y===t}),onMouseEnter:()=>T(t),onMouseLeave:E,onMouseMove:O,onClick:()=>{w(e.name,e.functionType),o&&o.focus()},children:[q(`span`,{className:`univer-block univer-truncate univer-text-xs`,children:[K(`span`,{className:`univer-text-red-500`,children:e.name.substring(0,p.length)}),K(`span`,{children:e.name.slice(p.length)})]}),K(`span`,{className:`univer-block univer-text-xs univer-text-gray-400`,children:e.desc})]},e.name))})})}const aa=e=>e.startsWith(ot.EQUALS)?e.slice(1):``,oa=()=>{},sa=Dn((t,n)=>{var r,i,a,o;let{errorText:s,initValue:c,unitId:l,subUnitId:u,isFocus:d=!0,isSupportAcrossSheet:f=!1,onFocus:p=oa,onBlur:m=oa,onChange:g,onVerify:_,className:y,editorId:b,moveCursor:x=!0,onFormulaSelectingChange:S,keyboardEventConfig:C,onMoveInEditor:w,resetSelectionOnBlur:T=!0,autoScrollbar:E=!0,isSingle:D=!0,disableSelectionOnClick:O=!1,autofocus:ee=!0,disableContextMenu:te,style:ne}=t,re=z(St),oe=W(null),se=B(g);kn(n,()=>({isClickOutSide:e=>oe.current?!oe.current.contains(e.target):!1}));let ce=B(S),le=W(null),A=W(void 0),j=A.current,[M,ue]=G(d),de=W(null),fe=U(()=>b==null?ie(`${ve}-${ae(4)}`):b,[]),pe=U(()=>s!==void 0,[s]),me=z(v),he=me.getUnit(fe);V(he==null?void 0:he.change$);let ge=Li(),N=e.transform.getPlainText((r=he==null||(i=he.getBody())==null?void 0:i.dataStream)==null?``:r),_e=Di(N),ye=U(()=>aa(N),[N]),be=U(()=>ge(ye),[ye,ge]),{isSelecting:xe,isSelectingRef:Se}=Ii({unitId:l,subUnitId:u,editorId:fe,isFocus:M,disableOnClick:O}),Ce=W(``),we=z(At).getRenderById(fe),Te=we==null?void 0:we.with(xt),Ee=Te==null?void 0:Te.isFocusing,De=V(U(()=>me.getCurrentTypeOfUnit$(k.UNIVER_DOC),[me])),Oe=(De==null?void 0:De.getUnitId())===fe,ke=W([]),Ae=xe,je=(a=(o=z(h).getConfig(`sheets-formula-ui.base.config`))==null?void 0:o.functionScreenTips)==null?!0:a;En(()=>{se(N)},[N,se]);let Me=Vi(`=`),Ne=Bi(l,u),Pe=B((e,t=!0,n,r)=>{if(!A.current)return;Ce.current=e;let i=e[0]===`=`?e.slice(1):``,a=ge(i),o=a.reduce((e,t)=>typeof t==`object`?`${e}${t.token}`:`${e}${t}`,``),s=Me(A.current,o===i?a:[],t,r);if(ke.current=s,n){let e=r==null?j==null?void 0:j.getSelectionRanges():r;if((e==null?void 0:e.length)!==1)return;let t=wi(a,Ci(a,e[0].startOffset-1,!1));if(t>=0){let e=s.splice(t,1)[0];e&&s.push(e)}Ne(M?s:[],A.current)}});H(()=>{M&&Pe(N,!1,!0)},[M]),H(()=>{if(M){if(Ce.current===N)return;Pe(N,!1,!0)}},[N]),ea(M,_,N);let Fe=Pi(j),Ie=Ki(M,l,u);H(()=>{var e;ce(xe,(e=Te==null?void 0:Te.isFocusing)==null?!0:e)},[ce,xe]),Dt(M,C,j),An(()=>{let e;return de.current&&(e=re.register({autofocus:ee,editorUnitId:fe,initialSnapshot:{id:fe,body:{dataStream:`${c}\r\n`,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[]},documentStyle:{}}},de.current),A.current=re.getEditor(fe),Pe(c,!1,!0)),()=>{e==null||e.dispose()}},[]),An(()=>{d?(ue(d),Fe()):(T&&(j==null||j.blur(),Ie()),ue(d))},[d,j,Fe,Ie,T]);let{checkScrollBar:Le}=Ot(j,D,E);Gi(M,!!(xe&&Oe),l,fe,te),Wi(!!(M&&Ee&&x),Ae,j,w);let Re=B((e,t,n)=>{if(!Ee)return;let r=t===-1?void 0:[{startOffset:t+1,endOffset:t+1,collapsed:!0}];Pe(`=${e}`,!0,n,r),n&&(Fe(),t!==-1&&setTimeout(()=>{let e={startOffset:t+1,endOffset:t+1},n=j==null?void 0:j.render.with(bt);n==null||n.scrollToRange({...e,collapsed:!0})},50),Le())});Qi(M&&!!(xe&&Oe),M,Se,l,u,ke,f,!!Ae,j,Re),$i(M&&!!(xe&&Oe),l,f,ue,m,()=>{Pe(_e.current,!1,!0)});let ze=e=>{if(e){let t=j==null?void 0:j.getSelectionRanges();if(t&&t.length===1){let n=t[0];if(n.collapsed){let t=e.offset;setTimeout(()=>{j==null||j.setSelectionRanges([{startOffset:n.startOffset-t,endOffset:n.endOffset-t}])},30)}}Fe(),Pe(`=${e.text}`)}},Be=()=>{ue(!0),p(),Fe()};return q(`div`,{className:y,children:[K(`div`,{ref:oe,className:J(`
|
|
60
|
-
univer-relative univer-box-border univer-flex univer-size-full univer-items-center
|
|
61
|
-
univer-justify-around univer-gap-2 univer-rounded-none univer-p-0 univer-ring-1
|
|
62
|
-
`,{"univer-ring-primary-500":M,"univer-ring-red-500":pe}),children:K(`div`,{ref:de,className:`univer-relative univer-size-full`,onMouseUp:Be})}),s!==void 0&&K(`div`,{className:`univer-my-1 univer-text-xs univer-text-red-500`,children:s}),je&&j&&ye!==``&&K(Ni,{editor:j,isFocus:M,formulaText:N,onClose:()=>Fe()}),je&&!!j&&K(ra,{isFocus:M,sequenceNodes:be,onSelect:ze,ref:le,editor:j})]})});function ca(e,t,r,i){var a;let o=z(Ye),s=Vi(``),c=V(e==null||(a=e.getDocumentDataModel())==null?void 0:a.change$),[l,d]=G([]),f=z(Ce),p=W(``),m=z(v);return H(()=>{if(!e)return;let t=e.getDocumentDataModel().getPlainText();if(p.current===t)return;p.current=t;let n=o.sequenceNodesBuilder(t);d(n==null?[]:n)},[c,e,o]),H(()=>{if(!e)return;if(!t){var r,a;let t=e.getDocumentData();e.setDocumentData({...t,body:{...t.body,dataStream:(r=(a=t.body)==null?void 0:a.dataStream)==null?``:r,textRuns:[]}});return}let o=s(e,l,!1),c=new u;return o.forEach(e=>{let t=$e(e.token),r=m.getCurrentUnitForType(k.UNIVER_SHEET),a=r==null?void 0:r.getActiveSheet();if(!t.sheetName&&i!==(a==null?void 0:a.getSheetId())||t.sheetName&&(a==null?void 0:a.getName())!==t.sheetName)return;let o=new n(e.themeColor).toRgb(),s=f.addShape({range:t.range,style:{stroke:e.themeColor,fill:`rgba(${o.r}, ${o.g}, ${o.b}, 0.1)`,strokeDash:12},primary:null});s&&c.add(()=>f.removeShape(s))}),()=>{c.dispose()}},[e,t,s,f,l]),{sequenceNodes:l}}function la(e){let t=z(Jt),{supportAcrossSheet:n=!1,keepSheetReference:r=!1,unitId:i,subUnitId:a,onChange:o}=e,s=z(v).getUnit(i,k.UNIVER_SHEET),c=B(o),l=B((e,t)=>{let o=s==null?void 0:s.getActiveSheet();if(!o||!n&&o.getSheetId()!==a||!(e!=null&&e.length))return;let l=r?o.getName():o.getSheetId()===a?``:o.getName();c(e.map(e=>({range:e.range,unitId:i,sheetName:l})),t)});H(()=>{let e=new u;return e.add(t.selectionMoveStart$.subscribe(e=>{l(e,!0)})),e.add(t.selectionMoving$.subscribe(e=>{l(e,!1)})),e.add(t.selectionMoveEnd$.subscribe(e=>{l(e,!1)})),()=>{e.dispose()}},[l,t.selectionMoveEnd$,t.selectionMoveStart$,t.selectionMoving$])}const ua=e=>!e.some(e=>{if(typeof e==`string`){if(e!==at.COMMA)return!0}else if(e.nodeType!==I.REFERENCE)return!0;return!1}),da=e=>{if(e.endColumn<e.startColumn){let t=e.endColumn;e.endColumn=e.startColumn,e.startColumn=t}if(e.endRow<e.startRow){let t=e.endRow;e.endRow=e.startRow,e.startRow=t}return e};function fa(e){let{visible:t,initialValue:n,unitId:r,subUnitId:i,maxRangeCount:a=1/0,supportAcrossSheet:o,keepSheetReference:s,onConfirm:c,onClose:l,onShowBySelection:u}=e,d=z(S),f=z(Ye),[p,m]=G([]),[h,g]=G(0),_=W(null);H(()=>{if(t&&n.length){let e=n.map(e=>e.sheetName?lt(e.sheetName,e.range):st(e.range));m(e),g(e.length-1)}else m([``]),g(0)},[t]);let v=(e,t)=>{let n=[...p];n[e]=t,m(n)},y=()=>{m([...p,``]),g(p.length)},b=e=>{p.splice(e,1),m([...p])};return la({unitId:r,subUnitId:i,supportAcrossSheet:o,keepSheetReference:s,onChange:(e,n)=>{if(!t&&u!=null&&u(e))return;let r=new Set(p),i=e.map(e=>e.sheetName?lt(e.sheetName,e.range):st(e.range)),o=i.filter(e=>!r.has(e));if(!o.length)return;let s=[...p];if(i.length>1){n||s.splice(h,1),s.push(...o);let e=s.slice(0,a);m(e),g(e.length-1),requestAnimationFrame(()=>{var e;(e=_.current)==null||e.scrollTo({top:_.current.scrollHeight})})}else s.splice(h,1,...o),m(s.slice(0,a)),g(h+o.length-1)}}),K(Nn,{width:`328px`,open:t,title:d.t(`rangeSelector.title`),draggable:!0,mask:!1,maskClosable:!1,footer:q(`footer`,{className:`univer-flex univer-gap-2`,children:[K(Mn,{onClick:l,children:d.t(`rangeSelector.cancel`)}),K(Mn,{variant:`primary`,onClick:()=>{c(p.filter(e=>{let t=f.sequenceNodesBuilder(e);return t&&t.length===1&&typeof t[0]!=`string`&&t[0].nodeType===I.REFERENCE}).map(e=>$e(e)).map(e=>({...e,range:da(e.range)})))},children:d.t(`rangeSelector.confirm`)})]}),onClose:l,children:q(`div`,{ref:_,className:J(`-univer-mx-6 univer-max-h-60 univer-overflow-y-auto univer-px-6`,Bn),children:[p.map((e,t)=>q(`div`,{className:`univer-mb-2 univer-flex univer-items-center univer-gap-4`,children:[K(Pn,{className:J(`univer-w-full`,{"univer-border-primary-600":h===t}),placeholder:d.t(`rangeSelector.placeHolder`),onFocus:()=>g(t),value:e,onChange:e=>v(t,e)}),p.length>1&&K(Un,{className:`univer-cursor-pointer`,onClick:()=>b(t)})]},t)),p.length<a&&K(`div`,{children:q(Mn,{variant:`link`,onClick:y,children:[K(Wn,{}),K(`span`,{children:d.t(`rangeSelector.addAnotherRange`)})]})})]})})}function pa(e){return e.split(at.COMMA).filter(e=>!!e).map(e=>$e(e))}function ma(e){return e.map(e=>e.sheetName?lt(e.sheetName,e.range):st(e.range)).join(at.COMMA)}function ha(e){let[t,n]=G(null),{onVerify:r,selectorRef:i,unitId:a,subUnitId:o,maxRangeCount:s,supportAcrossSheet:c,keepSheetReference:l,autoFocus:u,onChange:d,onRangeSelectorDialogVisibleChange:f,onClickOutside:p,onFocusChange:h,forceShowDialogWhenSelectionChanged:g,hideEditor:_,resetRange:v}=e,[y,b]=G(u==null?!1:u),[x,C]=G(!1),[w,T]=G([]),E=z(S),D=z(St),{sequenceNodes:ee}=ca(t,y,a,o),te=Di(ee),ne=z(m),k=B(()=>{t==null||t.setSelectionRanges([]),t==null||t.blur(),D.blur()}),re=B(()=>{var e,n;k(),T(pa((e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e)),C(!0)});return H(()=>{i&&(i.current={get editor(){return t},focus(){D.focus(t.getEditorId())},blur:k,verify:()=>ua(te.current),showDialog:e=>{k(),T(e),C(!0)},hideDialog:()=>{T([]),C(!1)},getValue:()=>{var e,n;return(e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e}})},[k,t,D,i,te]),H(()=>{var e,n;r==null||r(ua(ee),(e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e)},[ee]),H(()=>{f==null||f(x)},[x]),H(()=>{if(x&&v)return()=>{let e={unitId:a,subUnitId:o,selections:v};ne.executeCommand(Wt.id,e)}},[x]),q(jn,{children:[_?null:K(Et,{isSingle:!0,...e,onFocusChange:(e,t)=>{b(e),h==null||h(e,t)},editorRef:n,onClickOutside:()=>{b(!1),k(),p==null||p()},icon:K(In,{title:E.t(`rangeSelector.buttonTooltip`),placement:`bottom`,children:K(Kn,{className:`
|
|
63
|
-
univer-cursor-pointer
|
|
64
|
-
dark:!univer-text-gray-300
|
|
65
|
-
`,onClick:re})})}),K(fa,{initialValue:w,unitId:a,subUnitId:o,visible:x,maxRangeCount:s,onConfirm:e=>{let n=ma(e),r=O.newEmptyData();r.body.dataStream=n,t==null||t.replaceText(n,!1),d==null||d(r,n),C(!1),T([]),requestAnimationFrame(()=>{k()})},onClose:()=>{C(!1),T([])},supportAcrossSheet:c,keepSheetReference:l,onShowBySelection:e=>y||g?(T(e),C(!0),!1):!0})]})}const ga=()=>{var e,t;let n=V(z(bi).currentSelector$),r=W(null);return H(()=>{if(n){var e,t;return(e=r.current)==null||e.showDialog((t=n.initialValue)==null?[]:t),()=>{var e;(e=r.current)==null||e.hideDialog()}}},[n]),K(ha,{unitId:(e=n==null?void 0:n.unitId)==null?``:e,subUnitId:(t=n==null?void 0:n.subUnitId)==null?``:t,hideEditor:!0,selectorRef:r,onChange:(e,t)=>{var r;n==null||n.callback((r=t==null?void 0:t.split(`,`).map(e=>$e(e)))==null?[]:r)}})};let _a=class extends w{constructor(e=Cr,t,n,r,i){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r,this._uiPartsService=i;let{menu:a,...o}=ue(Cr,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(Sr,o,{merge:!0})}onStarting(){de(this._injector,[[rr,{useClass:ir}],[bi],[vi],[Dr],[Fr],[Lr],[yr],[yi]]),this._initUIPart()}onReady(){[[xi]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(k.UNIVER_SHEET,e))})}onRendered(){[[Er]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(k.UNIVER_SHEET,e))}),pe(this._injector,[[vi],[Dr],[Lr],[yi]])}onSteady(){this._injector.get(yr)}_initUIPart(){let e=this._injector.get(pn);this.disposeWithMe(e.register(Ae,ha)),this.disposeWithMe(e.register(ye,sa)),this.disposeWithMe(this._uiPartsService.registerComponent(fn.GLOBAL,()=>wn(ga,this._injector)))}};Y(_a,`pluginName`,hr),Y(_a,`packageName`,br),Y(_a,`version`,xr),Y(_a,`type`,k.UNIVER_SHEET),_a=tr([s(dn),X(1,y(b)),X(2,At),X(3,h),X(4,vn)],_a);export{nr as FORMULA_PROMPT_ACTIVATED,sa as FormulaEditor,yr as FormulaReorderController,bi as GlobalRangeSelectorService,ar as HelpFunctionOperation,Z as InsertFunctionOperation,Q as MoreFunctionsOperation,ha as RangeSelector,xi as RefSelectionsRenderService,_r as ReferenceAbsoluteOperation,vr as SearchFunctionOperation,Zn as SelectEditorFormulaOperation,Yn as SheetCopyFormulaOnlyCommand,Xn as SheetOnlyPasteFormulaCommand,_a as UniverSheetsFormulaUIPlugin};
|
|
1
|
+
import{AbsoluteRefType as e,BuildTextUtils as t,CellValueType as n,ColorKit as r,CommandType as i,DEFAULT_EMPTY_DOCUMENT_VALUE as a,DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY as o,DOCS_NORMAL_EDITOR_UNIT_ID_KEY as s,DependentOn as c,Direction as l,Disposable as u,DisposableCollection as d,EDITOR_ACTIVATED as f,ICommandService as p,IConfigService as m,IContextService as h,ILogService as g,IUniverInstanceService as _,Inject as v,Injector as y,InterceptorEffectEnum as b,LocaleService as x,ObjectMatrix as S,Plugin as C,RANGE_TYPE as w,Range as T,Rectangle as E,RichTextBuilder as D,RxDisposable as O,ThemeService as k,Tools as ee,UniverInstanceType as A,createIdentifier as te,createInternalEditorID as ne,generateRandomId as re,getBodySlice as ie,getCellValueType as ae,getEmptyCell as oe,isFormulaId as se,isFormulaString as ce,isICellData as le,isRealNum as j,merge as M,registerDependencies as ue,toDisposable as de,touchDependencies as fe}from"@univerjs/core";import{BaseSelectionRenderService as pe,COPY_SPECIAL_MENU_ID as me,COPY_TYPE as he,CellAlertManagerService as ge,CellAlertType as N,EMBEDDING_FORMULA_EDITOR as _e,EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY as ve,ExpandSelectionCommand as ye,HoverManagerService as be,IEditorBridgeService as xe,IMarkSelectionService as Se,ISheetClipboardService as Ce,JumpOver as we,MoveSelectionCommand as Te,PASTE_SPECIAL_MENU_ID as Ee,PREDEFINED_HOOK_NAME_COPY as De,PREDEFINED_HOOK_NAME_PASTE as Oe,RANGE_SELECTOR_COMPONENT_KEY as ke,SELECTION_SHAPE_DEPTH as Ae,SelectionControl as je,SetCellEditVisibleOperation as Me,SheetPasteCommand as Ne,SheetSkeletonManagerService as Pe,SheetsUIPart as Fe,attachSelectionWithCoord as Ie,checkInHeaderRanges as Le,genNormalSelectionStyle as Re,getAllSelection as ze,getCoordByOffset as Be,getCurrentRangeDisable$ as Ve,getSheetObject as He,menuClipboardDisabledObservable as Ue,useActiveWorkbook as We,whenSheetEditorActivated as Ge,whenSheetEditorFocused as Ke}from"@univerjs/sheets-ui";import{ErrorType as P,FormulaDataModel as qe,FunctionType as F,LexerTreeBuilder as Je,SetArrayFormulaDataMutation as Ye,SetFormulaCalculationResultMutation as Xe,SetFormulaCalculationStopMutation as Ze,deserializeRangeWithSheet as Qe,deserializeRangeWithSheetWithCache as $e,extractFormulaError as et,generateStringWithSequence as tt,getAbsoluteRefTypeWithSingleString as nt,handleRefStringInfo as rt,isFormulaLexerToken as it,matchRefDrawToken as at,matchToken as ot,operatorToken as st,sequenceNodeType as I,serializeRange as ct,serializeRangeToRefString as lt,serializeRangeWithSheet as ut,serializeRangeWithSpreadsheet as dt}from"@univerjs/engine-formula";import{BehaviorSubject as ft,Subject as pt,combineLatestWith as mt,debounceTime as ht,distinctUntilChanged as gt,filter as _t,map as vt,merge as yt,throttleTime as bt}from"rxjs";import{DocBackScrollRenderController as xt,DocSelectionRenderService as St,IEditorService as Ct,MoveCursorOperation as wt,MoveSelectionOperation as Tt,ReplaceTextRunsCommand as Et,RichTextEditor as Dt,useKeyboardEvent as Ot,useResize as kt}from"@univerjs/docs-ui";import{DeviceInputEventType as At,IRenderManagerService as jt,SHEET_VIEWPORT_KEY as Mt,ScrollTimerType as Nt,Vector2 as Pt}from"@univerjs/engine-render";import{BEFORE_CELL_EDIT as Ft,INTERCEPTOR_POINT as It,IRefSelectionsService as Lt,REF_SELECTIONS_ENABLED as Rt,RangeProtectionPermissionEditPoint as zt,RangeProtectionPermissionViewPoint as Bt,ReorderRangeCommand as Vt,SelectionMoveType as Ht,SetRangeValuesMutation as Ut,SetRangeValuesUndoMutationFactory as Wt,SetSelectionsOperation as Gt,SetWorksheetActiveOperation as Kt,SetWorksheetRowAutoHeightMutation as qt,SheetInterceptorService as Jt,SheetsSelectionsService as Yt,WorkbookCopyPermission as Xt,WorkbookEditablePermission as Zt,WorksheetCopyPermission as Qt,WorksheetEditPermission as $t,WorksheetSetCellValuePermission as en,convertSelectionDataToRange as tn,getCellAtRowCol as nn,getSheetCommandTarget as rn,setEndForRange as an}from"@univerjs/sheets";import{IDescriptionService as on,ImageFormulaCellInterceptorController as sn,InsertFunctionCommand as cn,PLUGIN_CONFIG_KEY_BASE as ln,QuickSumCommand as un,TriggerCalculationController as dn,UniverSheetsFormulaPlugin as fn}from"@univerjs/sheets-formula";import{BuiltInUIPart as pn,ComponentManager as mn,IContextMenuService as hn,IMenuManagerService as gn,IShortcutService as _n,ISidebarService as vn,IUIPartsService as yn,IZenZoneService as bn,KeyCode as L,MenuItemType as xn,MetaKeys as R,ProgressBar as Sn,RectPopup as Cn,RibbonFormulasGroup as wn,connectInjector as Tn,getMenuHiddenObservable as En,useDependency as z,useEvent as B,useObservable as V,useUpdateEffect as Dn}from"@univerjs/ui";import{DocSelectionManagerService as On}from"@univerjs/docs";import{forwardRef as kn,useCallback as An,useEffect as H,useImperativeHandle as jn,useLayoutEffect as Mn,useMemo as U,useRef as W,useState as G}from"react";import{Fragment as Nn,jsx as K,jsxs as q}from"react/jsx-runtime";import{Button as Pn,Dialog as Fn,Input as In,Select as Ln,Tooltip as Rn,borderClassName as zn,borderLeftClassName as Bn,borderTopClassName as Vn,clsx as J,scrollbarClassName as Hn}from"@univerjs/design";import{CheckMarkIcon as Un,CloseIcon as Wn,DeleteIcon as Gn,IncreaseIcon as Kn,MoreIcon as qn,SelectRangeIcon as Jn}from"@univerjs/icons";import{debounceTime as Yn}from"rxjs/operators";const Xn={id:`sheet.command.copy-formula-only`,type:i.COMMAND,handler:async e=>e.get(Ce).copy({copyHookType:De.SPECIAL_COPY_FORMULA_ONLY})},Zn={id:`sheet.command.paste-formula`,type:i.COMMAND,handler:async e=>e.get(p).executeCommand(Ne.id,{value:Oe.SPECIAL_PASTE_FORMULA})};function Qn(e){"@babel/helpers - typeof";return Qn=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Qn(e)}function $n(e,t){if(Qn(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Qn(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function er(e){var t=$n(e,`string`);return Qn(t)==`symbol`?t:t+``}function Y(e,t,n){return(t=er(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e,t){return function(n,r){t(n,r,e)}}function tr(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}const nr=`FORMULA_PROMPT_ACTIVATED`,rr=te(`formula-ui.prompt-service`);let ir=class{constructor(e){this._contextService=e,Y(this,`_search$`,new pt),Y(this,`_help$`,new pt),Y(this,`_navigate$`,new pt),Y(this,`_accept$`,new pt),Y(this,`_acceptFormulaName$`,new pt),Y(this,`search$`,this._search$.asObservable()),Y(this,`help$`,this._help$.asObservable()),Y(this,`navigate$`,this._navigate$.asObservable()),Y(this,`accept$`,this._accept$.asObservable()),Y(this,`acceptFormulaName$`,this._acceptFormulaName$.asObservable()),Y(this,`_searching`,!1),Y(this,`_helping`,!1),Y(this,`_sequenceNodes`,[]),Y(this,`_isLockedOnSelectionChangeRefString`,!1),Y(this,`_isLockedOnSelectionInsertRefString`,!1)}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(e){this._contextService.setContextValue(nr,e.visible),this._searching=e.visible,this._search$.next(e)}isSearching(){return this._searching}help(e){this._helping=e.visible,this._help$.next(e)}isHelping(){return this._helping}navigate(e){this._navigate$.next(e)}accept(e){this._accept$.next(e)}acceptFormulaName(e){this._acceptFormulaName$.next(e)}getSequenceNodes(){return[...this._sequenceNodes]}setSequenceNodes(e){this._sequenceNodes=e}clearSequenceNodes(){this._sequenceNodes=[]}getCurrentSequenceNode(e){return this._sequenceNodes[this.getCurrentSequenceNodeIndex(e)]}getCurrentSequenceNodeByIndex(e){return this._sequenceNodes[e]}getCurrentSequenceNodeIndex(e){let t=0,n=this._sequenceNodes[0];for(let r=0,i=this._sequenceNodes.length;r<i;r++){let i=this._sequenceNodes[r];if(typeof i==`string`)t++;else{let{endIndex:e}=i;t=e}if(e<=t)return typeof n==`string`&&e!==0?r+1:r}return this._sequenceNodes.length}updateSequenceRef(e,t){let n=this._sequenceNodes[e];if(typeof n==`string`||n.nodeType!==I.REFERENCE)return;let r=t.length-n.token.length,i={...n};i.token=t,i.endIndex+=r,this._sequenceNodes[e]=i;for(let t=e+1,n=this._sequenceNodes.length;t<n;t++){let e=this._sequenceNodes[t];if(typeof e==`string`)continue;let n={...e};n.startIndex+=r,n.endIndex+=r,this._sequenceNodes[t]=n}}insertSequenceRef(e,t){let n=t.length,r=this.getCurrentSequenceNodeIndex(e);this._sequenceNodes.splice(r,0,{token:t,startIndex:e,endIndex:e+n-1,nodeType:I.REFERENCE});for(let e=r+1,t=this._sequenceNodes.length;e<t;e++){let t=this._sequenceNodes[e];if(typeof t==`string`)continue;let r={...t};r.startIndex+=n,r.endIndex+=n,this._sequenceNodes[e]=r}}insertSequenceString(e,t){let n=this.getCurrentSequenceNodeIndex(e),r=t.split(``);this._sequenceNodes.splice(n,0,...r);let i=r.length;for(let e=n+i,t=this._sequenceNodes.length;e<t;e++){let t=this._sequenceNodes[e];if(typeof t==`string`)continue;let n={...t};n.startIndex+=i,n.endIndex+=i,this._sequenceNodes[e]=n}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};ir=tr([X(0,h)],ir);const ar={id:`formula-ui.operation.help-function`,type:i.OPERATION,handler:async(e,t)=>(e.get(rr).help(t),!0)},Z={id:`formula-ui.operation.insert-function`,type:i.OPERATION,handler:async(e,t)=>{let n=e.get(Yt),r=e.get(Ct),i=n.getCurrentSelections();if(!i||!i.length)return!1;let a=rn(e.get(_));if(!a)return!1;let{worksheet:c,unitId:l,subUnitId:u}=a,d=c.getCellMatrix(),{value:f}=t,m=e.get(p);e.get(xe);let h=[],g=[],v=null,y=0,b=0,x=``;if(i.length===1&&(ur(i[0].range)||dr(i[0].range)&&fr(d,i[0].range))){var S,C;let{range:e,primary:t}=i[0],n=(S=t==null?void 0:t.actualRow)==null?e.startRow:S,r=(C=t==null?void 0:t.actualColumn)==null?e.startColumn:C;v=e,y=n,b=r;let a=or(d,n,r);a&&(x=ct(a))}else i.some(e=>{let{range:t,primary:n}=e;if(fr(d,t)){var r,i;let e=(r=n==null?void 0:n.actualRow)==null?t.startRow:r,a=(i=n==null?void 0:n.actualColumn)==null?t.startColumn:i,o=or(d,e,a);if(!o)return v=t,y=e,b=a,!0;let s=`=${f}(${ct(o)})`;h.push({range:t,primary:{row:e,column:a},formula:s})}else{let{startRow:e,startColumn:n,endRow:r,endColumn:i}=t;if(e===r){let a=pr(d,e,i,c.getColumnCount()-1),o=`=${f}(${ct({startRow:e,endRow:r,startColumn:n,endColumn:a===i?i-1:i})})`;g.push({range:t,primary:{row:e,column:a},formula:o})}else{let a=-1;for(let e=n;e<=i;e++){let t=mr(d,e,r,c.getRowCount()-1);a=Math.max(a,t)}let o=a===r?r-1:r;for(let r=n;r<=i;r++){let n=`=${f}(${ct({startRow:e,endRow:o,startColumn:r,endColumn:r})})`;g.push({range:t,primary:{row:a,column:r},formula:n})}}}return!1});if(v){let e=nn(y,b,c),t={unitId:l,subUnitId:u,selections:[{range:E.clone(v),primary:{startRow:e.startRow,startColumn:e.startColumn,endRow:e.endRow,endColumn:e.endColumn,actualRow:y,actualColumn:b,isMerged:e.isMerged,isMergedMainCell:e.startRow===y&&e.startColumn===b}}]};await m.executeCommand(Gt.id,t);let n=r.getEditor(s),i=r.getEditor(o);m.syncExecuteCommand(Me.id,{visible:!0,unitId:l,eventType:At.Dblclick});let a=`=${f}(${x}`;n==null||n.replaceText(a),i==null||i.replaceText(a,!1)}return h.length===0&&g.length===0?!1:m.executeCommand(cn.id,{list:h,listOfRangeHasNumber:g})}};function or(e,t,n){let r=sr(e,t,n);if(r!==t)return{startRow:r,endRow:t-1,startColumn:n,endColumn:n};let i=cr(e,t,n);return i===n?null:{startRow:t,endRow:t,startColumn:i,endColumn:n-1}}function sr(e,t,n){let r=!1;if(t===0)return t;for(let i=t-1;i>=0;i--){let t=e.getValue(i,n);if(lr(t)&&!r){if(i===0)return 0;r=!0}else if(r&&!lr(t))return i+1;else if(r&&i===0)return 0}return t}function cr(e,t,n){let r=!1;if(n===0)return n;for(let i=n-1;i>=0;i--){let n=e.getValue(t,i);if(lr(n)&&!r){if(i===0)return 0;r=!0}else if(r&&!lr(n))return i+1;else if(r&&i===0)return 0}return n}function lr(e){if(e!=null&&e.p){let t=e==null?void 0:e.p.body;if(t==null)return!1;let n=t.dataStream;return j(n.substring(n.length-2,n.length)===a?n.substring(0,n.length-2):n)}return e&&(e.t===n.NUMBER||ae(e)===n.NUMBER)}function ur(e){return e.startRow===e.endRow&&e.startColumn===e.endColumn}function dr(e){return e.startRow!==e.endRow&&e.startColumn!==e.endColumn}function fr(e,t){for(let n=t.startRow;n<=t.endRow;n++)for(let r=t.startColumn;r<=t.endColumn;r++)if(lr(e.getValue(n,r)))return!1;return!0}function pr(e,t,n,r){for(let i=n;i<=r;i++)if(!e.getValue(t,i))return i;return r}function mr(e,t,n,r){for(let i=n;i<=r;i++)if(!e.getValue(i,t))return i;return r}const hr=`SHEET_FORMULA_UI_PLUGIN`,gr=`${hr}_MORE_FUNCTIONS_COMPONENT`,Q={id:`formula-ui.operation.more-functions`,type:i.OPERATION,handler:async e=>(e.get(vn).open({header:{title:`formula.insert.tooltip`},children:{label:gr}}),!0)},_r=/^\$?[A-Za-z]+\$?\d+$/;function vr(e,t,n){if(!t.startsWith(`=`)||t.length<=1)return null;let r=e.sequenceNodesBuilder(t);if(!(r!=null&&r.length))return null;let i=Math.min(Math.max(n,0),t.length),a=i-1;if(a<0)return null;let o=r.find(e=>typeof e==`string`||e.nodeType!==I.REFERENCE?!1:a>=e.startIndex&&a<=e.endIndex+1);if(!o||typeof o==`string`)return null;let s=yr(o,a-o.startIndex);return s==null||s.token===o.token?null:{formulaText:`=${tt(r.map(e=>e===o?{...e,token:s.token,endIndex:e.startIndex+s.token.length-1}:e))}`,cursorOffset:Sr(i,o.startIndex+1,o.endIndex+2,s.token.length,s)}}function yr(t,n){let r=$e(t.token);if(r==null)return null;let{range:i}=r;if(i.rangeType===w.ROW||i.rangeType===w.COLUMN)return{token:lt({...r,range:{...i,startAbsoluteRefType:i.startAbsoluteRefType===e.NONE?e.ALL:e.NONE,endAbsoluteRefType:i.endAbsoluteRefType===e.NONE?e.ALL:e.NONE}}),referenceTarget:`both`,previousSeparatorOffset:null,nextSeparatorOffset:null};let{refBody:a}=rt(t.token),o=a.split(`:`),s=o.length===2?t.token.indexOf(`:`):null;if(o.some(e=>!_r.test(e)))return null;let c=o.length===2,l=c?br(t.token,a,n):`start`,u={...i};if(l===`start`||l===`both`){let e=xr(nt(o[0]));u.startAbsoluteRefType=e,c||(u.endAbsoluteRefType=e)}(l===`end`||l===`both`)&&(u.endAbsoluteRefType=xr(nt(o[1])));let d=lt({...r,range:u});return{token:d,referenceTarget:l,previousSeparatorOffset:s,nextSeparatorOffset:o.length===2?d.indexOf(`:`):null}}function br(e,t,n){let r=e.length-t.length+t.indexOf(`:`);return n===r||n===r+1?`both`:n<r?`start`:`end`}function xr(t){switch(t){case e.NONE:return e.ALL;case e.ALL:return e.ROW;case e.ROW:return e.COLUMN;case e.COLUMN:default:return e.NONE}}function Sr(e,t,n,r,i){if(i.referenceTarget===`both`&&i.previousSeparatorOffset!=null&&i.nextSeparatorOffset!=null){let n=t+i.previousSeparatorOffset,r=t+i.nextSeparatorOffset;if(e===n)return r;if(e===n+1)return r+1}if(e<=t)return e;let a=r-(n-t);if(e>=n)return e+a;let o=e-t;return t+Math.min(o,r)}const Cr={id:`formula-ui.operation.change-ref-to-absolute`,type:i.OPERATION,handler:async e=>{var n,r;let i=e.get(Ct),a=e.get(On),c=e.get(Je),l=i.getFocusEditor();if(!l)return!1;let u=l.getEditorId();if(u!==s&&u!==o)return!1;let d=a.getActiveTextRange();if(!d)return!1;let f=vr(c,t.transform.getPlainText((n=(r=l.getDocumentData().body)==null?void 0:r.dataStream)==null?``:n),d.endOffset);return f?(l.replaceText(f.formulaText,[{startOffset:f.cursorOffset,endOffset:f.cursorOffset,collapsed:!0}]),!0):!1}},wr={id:`formula-ui.operation.search-function`,type:i.OPERATION,handler:async(e,t)=>(e.get(rr).search(t),!0)};let Tr=class extends u{constructor(e,t,n,r){super(),this._sheetInterceptorService=e,this._univerInstanceService=t,this._formulaDataModel=n,this._lexerTreeBuilder=r,this._initialize()}_initialize(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>e.id===Vt.id?this._reorderFormula(e.params):{redos:[],undos:[]}}))}_reorderFormula(e){let t=[],n=[],{unitId:r,subUnitId:i,range:a,order:o}=e,s=this._univerInstanceService.getUniverSheetInstance(r),c=s==null?void 0:s.getSheetBySheetId(i);if(!c)return{redos:t,undos:n};let l=c.getCellMatrix(),u=new S,d=new S,f=!1;return T.foreach(a,(e,t)=>{let n=e;o.hasOwnProperty(e)&&(n=o[e]);let a=l.getValue(n,t);if(a!=null&&a.f||a!=null&&a.si){f=!0;let o=this._formulaDataModel.getFormulaStringByCell(n,t,i,r),s=this._lexerTreeBuilder.moveFormulaRefOffset(o,0,e-n),c=ee.deepClone(a);c.f=s,c.si=null,u.setValue(e,t,c)}else u.setValue(e,t,a);d.setValue(e,t,l.getValue(e,t))}),f?(t.push({id:Ut.id,params:{unitId:r,subUnitId:i,cellValue:u.getMatrix()}}),n.push({id:Ut.id,params:{unitId:r,subUnitId:i,cellValue:d.getMatrix()}}),{redos:t,undos:n}):{redos:t,undos:n}}};Tr=tr([X(0,v(Jt)),X(1,v(_)),X(2,v(qe)),X(3,v(Je))],Tr);var Er=`@univerjs/sheets-formula-ui`,Dr=`0.19.0`;const Or=`sheets-formula-ui.base.config`;Symbol(Or);const kr={},Ar=`SHEET_FORMULA_ALERT`,jr={[P.DIV_BY_ZERO]:`divByZero`,[P.NAME]:`name`,[P.VALUE]:`value`,[P.NUM]:`num`,[P.NA]:`na`,[P.CYCLE]:`cycle`,[P.REF]:`ref`,[P.SPILL]:`spill`,[P.CALC]:`calc`,[P.ERROR]:`error`,[P.CONNECT]:`connect`,[P.NULL]:`null`};let Mr=class extends u{constructor(e,t,n,r,i,a){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=r,this._formulaDataModel=i,this._zenZoneService=a,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(ht(100)).subscribe(e=>{if(e){var t;let r=this._context.unit.getActiveSheet();if(!r)return this._hideAlert();let i=r.getCell(e.location.row,e.location.col),a=(t=this._formulaDataModel.getArrayFormulaCellData())==null||(t=t[e.location.unitId])==null||(t=t[e.location.subUnitId])==null||(t=t[e.location.row])==null?void 0:t[e.location.col];if(le(i)){var n;let t=et(i,!!a);if(!t){this._hideAlert();return}let r=this._cellAlertManagerService.currentAlert.get(Ar),o=r==null||(n=r.alert)==null?void 0:n.location;if(o&&o.row===e.location.row&&o.col===e.location.col&&o.subUnitId===e.location.subUnitId&&o.unitId===e.location.unitId){this._hideAlert();return}this._cellAlertManagerService.showAlert({type:N.ERROR,title:this._localeService.t(`formula.error.title`),message:this._localeService.t(`formula.error.${jr[t]}`),location:e.location,width:200,height:74,key:Ar});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(Ar)}};Mr=tr([X(1,v(be)),X(2,v(ge)),X(3,v(x)),X(4,v(qe)),X(5,bn)],Mr);let Nr=class extends u{constructor(e,t,n,r,i){super(),this._univerInstanceService=e,this._lexerTreeBuilder=t,this._sheetClipboardService=n,this._injector=r,this._formulaDataModel=i,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._copyFormulaOnlyHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_copyFormulaOnlyHook(){let e=this,t=null;return{id:De.SPECIAL_COPY_FORMULA_ONLY,priority:10,onBeforeCopy(n,r){t=e._getWorksheet(n,r)},onCopyCellContent(n,r){if(!t)return``;let i=t.getCellRaw(n,r);return i?ce(i.f)?i.f:se(i.si)&&e._formulaDataModel.getFormulaStringByCell(n,r,t.getSheetId(),t.getUnitId())||``:``},onAfterCopy(){t=null},getFilteredOutRows(t,n,r){let i=e._getWorksheet(t,n);if(!i)return[];let{startRow:a,endRow:o}=r,s=[];for(let e=a;e<=o;e++)i.getRowFiltered(e)&&s.push(e);return s},handleMatrixOnCell(n,r,i,a,o,s,c){let l=o.getValue(n,r);if(t&&l&&(ce(l.f)||se(l.si))){let o=ce(l.f)?l.f:e._formulaDataModel.getFormulaStringByCell(n,r,t.getSheetId(),t.getUnitId());s.setValue(i,a,{...oe(),f:o}),c.setValue(i,a,{...oe(),f:o,displayV:o})}else o.setValue(n,r,oe()),s.setValue(i,a,oe()),c.setValue(i,a,oe())}}}_pasteFormulaHook(){return{id:Oe.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:`specialPaste.formula`},onPasteCells:(e,t,n,r)=>this._onPasteCells(e,t,n,r,!0)}}_pasteWithFormulaHook(){return{id:`default-paste-formula`,priority:10,onPasteCells:(e,t,n,r)=>this._onPasteCells(e,t,n,r,!1)}}_getWorkbook(e){return e?this._univerInstanceService.getUnit(e,A.UNIVER_SHEET):this._univerInstanceService.getCurrentUnitOfType(A.UNIVER_SHEET)}_getWorksheet(e,t){let n=this._getWorkbook(e);return t?n==null?void 0:n.getSheetBySheetId(t):n==null?void 0:n.getActiveSheet()}_onPasteCells(e,t,n,r,i){var a;if([Oe.SPECIAL_PASTE_FORMAT,Oe.SPECIAL_PASTE_COL_WIDTH].includes(r.pasteType)||r.copyType===he.CUT&&!i)return{undos:[],redos:[]};let o=this._getWorkbook(),s=t.unitId||(o==null?void 0:o.getUnitId()),c=t.subUnitId||(o==null||(a=o.getActiveSheet())==null?void 0:a.getSheetId());if(!s||!c)return{undos:[],redos:[]};let l=t.range,u=n,d={copyType:r.copyType||he.COPY,copyRange:e==null?void 0:e.range,pasteType:r.pasteType};return this._injector.invoke(t=>Pr(s,c,l,u,t,d,this._lexerTreeBuilder,this._formulaDataModel,i,e))}};Nr=tr([X(0,_),X(1,v(Je)),X(2,Ce),X(3,v(y)),X(4,v(qe))],Nr);function Pr(e,t,n,r,i,a,o,s,c=!1,l){let u=[],d=[],f=Fr(e,t,n,r,a,o,s,l);if(!f.hasValue())return{undos:[],redos:[]};let p={unitId:e,subUnitId:t,cellValue:f.getData()};u.push({id:Ut.id,params:p});let m=Wt(i,p);return d.push({id:Ut.id,params:m}),{undos:d,redos:u}}function Fr(e,t,n,r,i,a,o,s){return s?i.pasteType===Oe.SPECIAL_PASTE_VALUE?Lr(e,t,n,r,o,s):i.pasteType===Oe.SPECIAL_PASTE_FORMULA?Rr(e,t,n,r,a,o,s):zr(e,t,n,r,i.copyType,a,o,s):Ir(e,t,n,r,o)}function Ir(e,t,n,r,i){let a=new S,o=i.getSheetFormulaData(e,t);return r.forValue((e,t,r)=>{var i;let s=n.rows[e],c=n.cols[t],l={};ce(r.v)?(l.v=null,l.f=`${r.v}`,l.si=null,l.p=null,a.setValue(s,c,l)):!(o==null||(i=o[s])==null)&&i[c]&&(l.v=r.v,l.f=null,l.si=null,l.p=null,a.setValue(s,c,l))}),a}function Lr(e,t,n,r,i,a){var o;let s=new S,c=(o=i.getArrayFormulaCellData())==null||(o=o[a.unitId])==null?void 0:o[a.subUnitId],l=i.getSheetFormulaData(e,t);return r.forValue((e,t,r)=>{var i,o;let u=a.range.rows[e%a.range.rows.length],d=a.range.cols[t%a.range.cols.length],f=n.rows[e],p=n.cols[t],m={};if(ce(r.f)||se(r.si))m.v=r.v,m.f=null,m.si=null,m.p=null,s.setValue(f,p,m);else if(!(c==null||(i=c[u])==null)&&i[d])m.v=c[u][d].v,m.f=null,m.si=null,m.p=null,s.setValue(f,p,m);else if(!(l==null||(o=l[f])==null)&&o[p]){if(m.v=r.v,m.f=null,m.si=null,m.p=null,r.p){let e=Br(r);e&&(m.v=e)}s.setValue(f,p,m)}}),s}function Rr(e,t,n,r,i,a,o){let s=new S,c=new Map;return r.forValue((r,l,u)=>{let d=n.rows[r],f=n.cols[l],p={};if(se(u.si)){if(o.unitId!==e||o.subUnitId!==t){let e=a.getFormulaStringByCell(o.range.rows[r%o.range.rows.length],o.range.cols[l%o.range.cols.length],o.subUnitId,o.unitId),t=n.cols[l]-o.range.cols[l%o.range.cols.length],s=n.rows[r]-o.range.rows[r%o.range.rows.length],c=i.moveFormulaRefOffset(e||``,t,s);p.si=null,p.f=c}else p.si=u.si,p.f=null;p.v=null,p.p=null,s.setValue(d,f,p)}else if(ce(u.f)){let e=`${r%o.range.rows.length}_${l%o.range.cols.length}`,t=c.get(e);if(t)p.si=t,p.f=null;else{t=re(6),c.set(e,t);let a=n.cols[l]-o.range.cols[l%o.range.cols.length],s=n.rows[r]-o.range.rows[r%o.range.rows.length],d=i.moveFormulaRefOffset(u.f||``,a,s);p.si=t,p.f=d}p.v=null,p.p=null,s.setValue(d,f,p)}else{if(p.v=u.v,p.f=null,p.si=null,p.p=null,u.p){let e=Br(u);e&&(p.v=e)}s.setValue(d,f,p)}}),s}function zr(e,t,n,r,i,a,o,s){let c=new S,l=new Map,u=o.getSheetFormulaData(e,t),d=[];return i===he.CUT?r.forValue((e,t,r)=>{let i=n.rows[e],a=n.cols[t],l={};se(r.si)?(ce(r.f)?(d.push(r.si),l.f=r.f,l.si=r.si):d.includes(r.si)?(l.f=null,l.si=r.si):(l.f=o.getFormulaStringByCell(s.range.rows[e%s.range.rows.length],s.range.cols[t%s.range.cols.length],s.subUnitId,s.unitId),l.si=null),l.v=null,l.p=null,c.setValue(i,a,l)):ce(r.f)&&(l.f=r.f,l.si=null,l.v=null,l.p=null,c.setValue(i,a,l))}):r.forValue((r,i,d)=>{var f;let p=n.rows[r],m=n.cols[i],h={};if(se(d.si)){if(s.unitId!==e||s.subUnitId!==t){let e=o.getFormulaStringByCell(s.range.rows[r%s.range.rows.length],s.range.cols[i%s.range.cols.length],s.subUnitId,s.unitId),t=n.cols[i]-s.range.cols[i%s.range.cols.length],c=n.rows[r]-s.range.rows[r%s.range.rows.length],l=a.moveFormulaRefOffset(e||``,t,c);h.si=null,h.f=l}else h.si=d.si,h.f=null;h.v=null,h.p=null,c.setValue(p,m,h)}else if(ce(d.f)){let e=`${r%s.range.rows.length}_${i%s.range.cols.length}`,t=l.get(e);if(t)h.si=t,h.f=null;else{t=re(6),l.set(e,t);let o=n.cols[i]-s.range.cols[i%s.range.cols.length],c=n.rows[r]-s.range.rows[r%s.range.rows.length],u=a.moveFormulaRefOffset(d.f||``,o,c);h.si=t,h.f=u}h.v=null,h.p=null,c.setValue(p,m,h)}else !(u==null||(f=u[p])==null)&&f[m]&&(h.v=d.v,h.f=null,h.si=null,h.p=d.p,c.setValue(p,m,h))}),d.length>0&&new S(u).forValue((e,t,r)=>{if(!(s.range.rows.includes(e)&&s.range.cols.includes(t))&&!(n.rows.includes(e)&&n.cols.includes(t))&&d.includes(r==null?void 0:r.si)){let n=o.getFormulaStringByCell(e,t,s.subUnitId,s.unitId);c.setValue(e,t,{f:n,si:null,v:null,p:null})}}),c}function Br(e){if(e!=null&&e.p){let t=e==null?void 0:e.p.body;if(t==null)return;let n=t.dataStream;return n.substring(n.length-2,n.length)===a?n.substring(0,n.length-2):n}}let Vr=class extends u{constructor(e,t,n,r,i,a,o,s){super(),this._context=e,this._sheetInterceptorService=t,this._formulaDataModel=n,this._themeService=r,this._renderManagerService=i,this._sheetSkeletonManagerService=a,this._commandService=o,this._logService=s,Y(this,`_previousShape`,void 0),Y(this,`_skeleton`,void 0),this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{if(e==null)this._logService.debug(`[FormulaEditorShowController]: should not receive currentSkeleton$ as null!`);else{var t;let{skeleton:n}=e,r=(t=this._skeleton)==null||(t=t.worksheet)==null?void 0:t.getSheetId();if(this._changeRuntime(n),r!==n.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{let{unitId:t,sheetId:n}=e;this._updateArrayFormulaRangeShape(t,n)}}}))}_changeRuntime(e){this._skeleton=e}_initInterceptorEditorStart(){this.disposeWithMe(de(this._sheetInterceptorService.writeCellInterceptor.intercept(Ft,{handler:(e,t,n)=>{var r,i;let{row:a,col:o,unitId:s,subUnitId:c,worksheet:l}=t,u=this._formulaDataModel.getArrayFormulaRange(),d=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),e==null)return n(e);let f=null,p=this._formulaDataModel.getFormulaStringByCell(a,o,c,s);if(p!==null&&(f={f:p}),e.v!=null&&e.v!==``&&((r=d[s])==null||(r=r[c])==null||(r=r[a])==null?void 0:r[o])==null)return f?{...e,...f}:n(e);let m=u==null||(i=u[s])==null?void 0:i[c];return m!=null&&(f=this._displayArrayFormulaRangeShape(m,a,o,s,c,l,f)),f?{...e,...f}:n(e)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{(e.id===Xe.id||e.id===Ye.id&&t&&t.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{qt.id===e.id&&requestIdleCallback(()=>{let{unitId:t,subUnitId:n,rowsAutoHeightInfo:r}=e.params;this._refreshArrayFormulaRangeShapeByRow(t,n,r)})}))}_displayArrayFormulaRangeShape(e,t,n,r,i,a,o){return new S(e).forValue((e,i,s)=>{if(s==null)return!0;let{startRow:c,startColumn:l,endRow:u,endColumn:d}=s;if(e===t&&i===n)return this._createArrayFormulaRangeShape(s,r),!1;if(t>=c&&t<=u&&n>=l&&n<=d){let e=a.getCell(c,l);return(e==null?void 0:e.v)===P.SPILL||(e==null?void 0:e.f)==null?void 0:(o==null&&(o={f:e.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(s,r),!1)}}),o}_createArrayFormulaRangeShape(e,t){let n=this._renderManagerService.getRenderById(t),i=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n||!i)return;let{scene:a}=n;if(!a)return;let o=Ie({range:e,primary:null,style:{strokeWidth:1,stroke:this._themeService.getColorFromTheme(`primary.600`),fill:new r(this._themeService.getColorFromTheme(`white`)).setAlpha(0).toString(),widgets:{}}},i),{rowHeaderWidth:s,columnHeaderHeight:c}=i,l=new je(a,Ae.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:s,columnHeaderHeight:c});l.updateRangeBySelectionWithCoord(o),l.setEvent(!1),this._previousShape=l}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(e,t){if(this._previousShape){let{startRow:t,endRow:n,startColumn:r,endColumn:i}=this._previousShape.getRange(),a={startRow:t,endRow:n,startColumn:r,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(a,e)}}_checkCurrentSheet(e,t){let n=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n)return!1;let r=n.worksheet;return r?r.unitId===e&&r.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;let{startRow:r,endRow:i,startColumn:a,endColumn:o}=this._previousShape.getRange();for(let t=0;t<n.length;t++){let{row:s}=n[t];if(r>=s){let t={startRow:r,endRow:i,startColumn:a,endColumn:o};this._refreshArrayFormulaRangeShape(e,t);break}}}};Vr=tr([X(1,v(Jt)),X(2,v(qe)),X(3,v(k)),X(4,jt),X(5,v(Pe)),X(6,p),X(7,g)],Vr);const Hr={tl:{size:6,color:`#409f11`}};let Ur=class extends O{constructor(e,t){super(),this._sheetInterceptorService=e,this._formulaDataModel=t,this.disposeWithMe(this._sheetInterceptorService.intercept(It.CELL_CONTENT,{effect:b.Style,handler:(e,t,n)=>{var r;let i=(r=this._formulaDataModel.getArrayFormulaCellData())==null||(r=r[t.unitId])==null||(r=r[t.subUnitId])==null||(r=r[t.row])==null?void 0:r[t.col];return!et(e,!!i)||!e?n(e):(e===t.rawData&&(e={...t.rawData}),e.markers={...e==null?void 0:e.markers,...Hr},n(e))},priority:10}))}};Ur=tr([X(0,v(Jt)),X(1,v(qe))],Ur);function Wr(e){let t=[`SUMIF`,`SUM`,`AVERAGE`,`IF`,`COUNT`,`SIN`,`MAX`],n=t.map(e=>({label:{name:e,selectable:!1},value:e}));try{let r=e.get(on),i=t.filter(e=>!!r.getFunctionInfo(e));i.length>0&&(n=i.map(e=>({label:{name:e,selectable:!1},value:e})))}catch{}return{id:`${Z.id}.common`,commandId:Z.id,title:`formula.insert.common`,tooltip:`formula.insert.tooltip`,icon:`FunctionIcon`,type:xn.SELECTOR,selections:n,hidden$:En(e,A.UNIVER_SHEET)}}function Gr(e,t,n){return function(r){let i=[];try{i=r.get(on).getSearchListByType(e).map(({name:e})=>({label:{name:e,selectable:!1},value:e}))}catch{i=[]}return{id:`${Z.id}.${t}`,commandId:Z.id,title:`formula.functionType.${t}`,tooltip:`formula.insert.tooltip`,icon:n,type:xn.SELECTOR,selections:i,hidden$:En(r,A.UNIVER_SHEET)}}}const Kr=Gr(F.Financial,`financial`),qr=Gr(F.Logical,`logical`),Jr=Gr(F.Text,`text`),Yr=Gr(F.Date,`date`),Xr=Gr(F.Lookup,`lookup`),Zr=Gr(F.Math,`math`),Qr=Gr(F.Statistical,`statistical`),$r=Gr(F.Engineering,`engineering`),ei=Gr(F.Information,`information`),ti=Gr(F.Database,`database`);function ni(e){return{id:Q.id,title:`formula.moreFunctions.allFunctions`,tooltip:`formula.insert.tooltip`,type:xn.BUTTON,hidden$:En(e,A.UNIVER_SHEET),disabled$:Ve(e,{workbookTypes:[Zt],worksheetTypes:[$t,en],rangeTypes:[zt]})}}function ri(e){return{id:Xn.id,type:xn.BUTTON,title:`formula.operation.copyFormulaOnly`,disabled$:Ve(e,{workbookTypes:[Xt],worksheetTypes:[Qt],rangeTypes:[Bt]}),hidden$:En(e,A.UNIVER_SHEET)}}function ii(e){return{id:Zn.id,type:xn.BUTTON,title:`formula.operation.pasteFormula`,disabled$:Ue(e).pipe(mt(Ve(e,{workbookTypes:[Zt],rangeTypes:[zt],worksheetTypes:[en,$t]})),vt(([e,t])=>e||t)),hidden$:En(e,A.UNIVER_SHEET)}}const ai={[wn.BASIC]:{[`${Z.id}.common`]:{order:0,menuItemFactory:Wr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.financial`]:{order:1,menuItemFactory:Kr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.logical`]:{order:2,menuItemFactory:qr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.text`]:{order:3,menuItemFactory:Jr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.date`]:{order:4,menuItemFactory:Yr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.lookup`]:{order:5,menuItemFactory:Xr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.math`]:{order:6,menuItemFactory:Zr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.statistical`]:{order:7,menuItemFactory:Qr,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.engineering`]:{order:8,menuItemFactory:$r,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.information`]:{order:9,menuItemFactory:ei,[Q.id]:{order:0,menuItemFactory:ni}},[`${Z.id}.database`]:{order:10,menuItemFactory:ti,[Q.id]:{order:0,menuItemFactory:ni}}},[me]:{[Xn.id]:{order:0,menuItemFactory:ri}},[Ee]:{[Zn.id]:{order:4,menuItemFactory:ii}}};function oi(){let e=z(dn),t=z(p);return K(Sn,{progress:V(e.progress$),onTerminate:An(()=>{t.executeCommand(Ze.id)},[t]),onClearProgress:An(()=>{e.clearProgress()},[e])})}function si(e,t){return Object.keys(F).filter(e=>isNaN(Number(e))&&e!==`DefinedName`&&e!==`Table`&&(t||e!==`User`)).map(t=>({label:e.t(`formula.functionType.${t.toLocaleLowerCase()}`),value:`${F[t]}`}))}function ci(e){if(!e.require&&!e.repeat)return`[${e.name}]`;if(e.require&&!e.repeat)return e.name;if(!e.require&&e.repeat)return`[${e.name},...]`;if(e.require&&e.repeat)return`${e.name},...`}function li(e){let{prefix:t,value:n}=e;return q(`div`,{children:[q(`span`,{children:[t,`(`]}),n&&n.map((e,t)=>q(`span`,{children:[K(`span`,{children:ci(e)}),t===n.length-1?``:`,`]},t)),`)`]})}function ui(e){let{className:t,value:n,title:r}=e;return q(`div`,{className:`univer-mb-2 univer-text-xs`,children:[K(`div`,{className:J(`univer-mb-2 univer-font-medium univer-text-gray-500 dark:!univer-text-gray-300`,t),children:r}),K(`div`,{className:`univer-break-all univer-text-gray-900 dark:!univer-text-white`,children:n})]})}function di(e){let{functionInfo:t,onChange:n}=e;if(!t)return null;let[r,i]=G([]),[a,o]=G(t.functionParameter),[s,c]=G(-1);return q(`div`,{children:[K(`div`,{className:J(`univer-h-[364px] univer-overflow-y-auto`,Hn),children:a.map((e,t)=>q(`div`,{children:[K(`div`,{className:`univer-text-sm`,children:e.name}),K(`div`,{className:`univer-mb-2 univer-mt-1`})]},t))}),K(`div`,{className:J(`univer-flex-1 univer-p-3`,Bn),children:K(ui,{title:s===-1?K(li,{prefix:t.functionName,value:a}):a[s].name,value:s===-1?t.description:a[s].detail})})]})}function fi(e){var t;let n=(t=z(m).getConfig(ln))==null?void 0:t.function,{onChange:r}=e,[i,a]=G(``),[o,s]=G([]),[c,l]=G(0),[u,d]=G(`-1`),[f,p]=G(0),[h,g]=G(null),_=z(on),v=z(x),y=V(z(vn).sidebarOptions$),b=si(v,!!n).filter(e=>_.getSearchListByType(Number(e.value)).length>0);b.unshift({label:v.t(`formula.moreFunctions.allFunctions`),value:`-1`});let S=v.t(`formula.prompt.required`),C=v.t(`formula.prompt.optional`);H(()=>{E(`-1`)},[]),H(()=>{T(0)},[o]),H(()=>{y!=null&&y.visible&&(a(``),s([]),l(0),d(`-1`),p(0),g(null),E(`-1`))},[y]);let w=e=>{if(i.trim()===``)return e;let t=RegExp(`(${i.toLocaleUpperCase()})`);return e.split(t).filter(Boolean).map((e,n)=>e.match(t)?K(`span`,{className:`univer-text-red-500`,children:e},n):e)},T=e=>{if(o.length===0){g(null),r(null);return}p(e);let t=_.getFunctionInfo(o[e].name);if(!t){g(null),r(null);return}g(t),r(t)};function E(e){d(e),s(_.getSearchListByType(+e))}function D(e){a(e),s(_.getSearchListByName(e))}function O(e){if(e.stopPropagation(),e.key===`ArrowDown`){let e=c+1;l(e===o.length?0:e)}else if(e.key===`ArrowUp`){let e=c-1;l(e===-1?o.length-1:e)}else e.key===`Enter`&&T(c)}let k=e=>{l(e)},ee=()=>{l(-1)};return q(`div`,{children:[q(`div`,{className:`univer-flex univer-items-center univer-justify-between univer-gap-2`,children:[K(Ln,{value:u,options:b,onChange:E}),K(In,{placeholder:v.t(`formula.moreFunctions.searchFunctionPlaceholder`),onKeyDown:O,value:i,onChange:D,size:`small`,allowClear:!0})]}),o.length>0&&K(`ul`,{className:J(`univer-mb-0 univer-mt-2 univer-box-border univer-max-h-72 univer-w-full univer-select-none univer-list-none univer-overflow-y-auto univer-rounded univer-p-3 univer-outline-none`,zn,Hn),onKeyDown:O,tabIndex:-1,children:o.map(({name:e},t)=>q(`li`,{className:J(`univer-relative univer-box-border univer-cursor-pointer univer-rounded univer-px-7 univer-py-1 univer-text-sm univer-text-gray-900 univer-transition-colors dark:!univer-text-white`,{"univer-bg-gray-200 dark:!univer-bg-gray-600":c===t}),onMouseEnter:()=>k(t),onMouseLeave:ee,onClick:()=>T(t),children:[f===t&&K(Un,{className:`univer-absolute univer-left-1.5 univer-top-1/2 univer-inline-flex -univer-translate-y-1/2 univer-text-base univer-text-primary-600`}),K(`span`,{className:`univer-block`,children:w(e)})]},t))}),h&&q(`div`,{className:J(`univer-mx-0 univer-my-2 univer-overflow-y-auto`,Hn),children:[K(ui,{title:h.functionName,value:h.description}),K(ui,{title:v.t(`formula.moreFunctions.syntax`),value:K(li,{prefix:h.functionName,value:h.functionParameter})}),K(ui,{title:v.t(`formula.prompt.helpExample`),value:`${h.functionName}(${h.functionParameter.map(e=>e.example).join(`,`)})`}),h.functionParameter&&h.functionParameter.map(e=>K(ui,{title:e.name,value:`${e.require?S:C} ${e.detail}`},e.name))]})]})}function pi(){let e=We(),[t,n]=G(!0),[r,i]=G(!1),[a,c]=G(null);z(xe);let l=z(x),u=z(Ct),d=z(_),f=z(p);function m(){n(!t),i(!r)}function h(){let e=rn(d);if(!e)return;f.executeCommand(Me.id,{visible:!0,unitId:e.unitId,eventType:At.Dblclick});let t=u.getEditor(s),n=u.getEditor(o),r=`=${a==null?void 0:a.functionName}(`;t==null||t.replaceText(r),n==null||n.replaceText(r,!1)}return q(`div`,{"data-u-comp":`sheets-formula-functions-panel`,className:`univer-box-border univer-flex univer-h-full univer-flex-col univer-justify-between univer-py-2`,children:[t&&K(fi,{onChange:c}),r&&K(di,{functionInfo:a,onChange:()=>{}}),q(`div`,{className:`univer-flex univer-justify-end`,children:[r&&K(Pn,{variant:`primary`,onClick:m,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.next`)}),r&&K(Pn,{onClick:m,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.prev`)}),t&&!!e&&K(Pn,{disabled:!a,variant:`primary`,onClick:h,className:`univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0`,children:l.t(`formula.moreFunctions.confirm`)})]})]})}const mi={id:Cr.id,binding:L.F4,preconditions:e=>Ge(e)},hi={id:un.id,binding:R.ALT|L.EQUAL,preconditions:Ke,mac:R.CTRL_COMMAND|R.ALT|L.EQUAL,description:`shortcut.sheets-formula-ui.quick-sum`,group:`4_sheet-edit`};let gi=class extends u{constructor(e,t,n,r,i,a,o){super(),this._injector=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=r,this._uiPartsService=i,this._renderManagerService=a,this._componentManager=o,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(ai)}_registerCommands(){[Xn,Zn,Z,Q,wr,ar,Cr].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerShortcuts(){[hi,mi].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(Fe.FORMULA_AUX,()=>Tn(oi,this._injector))),this._componentManager.register(gr,pi)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(A.UNIVER_SHEET,[Vr]))}};gi=tr([X(0,v(y)),X(1,gn),X(2,p),X(3,_n),X(4,yn),X(5,jt),X(6,v(mn))],gi);let _i=class extends u{constructor(e,t,n){super(),this._imageFormulaCellInterceptorController=e,this._renderManagerService=t,this._univerInstanceService=n,this._imageFormulaCellInterceptorController.registerRefreshRenderFunction(()=>{let e=this._univerInstanceService.getCurrentUnitOfType(A.UNIVER_SHEET);if(!e)return;let t=this._renderManagerService.getRenderById(e.getUnitId());if(!t)return;t.with(Pe).reCalculate();let n=t.mainComponent;n&&n.makeDirty()})}};_i=tr([X(0,v(sn)),X(1,jt),X(2,_)],_i);var vi=class{constructor(){Y(this,`_currentSelector$`,new ft(null)),Y(this,`currentSelector$`,this._currentSelector$.asObservable())}showRangeSelectorDialog(e){let t=e.callback,n=new Promise(n=>{e.callback=e=>{n(e),t(e)}});return this._currentSelector$.next(e),n}};let yi=class extends pe{constructor(e,t,n,r,i,a,o){super(t,n,r,i,a),this._context=e,this._contextService=a,this._refSelectionsService=o,Y(this,`_workbookSelections`,void 0),Y(this,`_eventDisposables`,void 0),this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(bi(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(e){this._remainLastEnabled=e}setSkipLastEnabled(e){this._skipLastEnabled=e}clearLastSelection(){let e=this._selectionControls[this._selectionControls.length-1];e&&(e.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),de(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var e;(e=this._eventDisposables)==null||e.dispose(),this._eventDisposables=null}disableSelectionChanging(){this._disableSelectionChanging()}_initCanvasEventListeners(){let{spreadsheetRowHeader:e,spreadsheetColumnHeader:t,spreadsheet:n,spreadsheetLeftTopPlaceholder:r}=this._getSheetObject(),{scene:i}=this._context,a=new d;return a.add(n==null?void 0:n.onPointerDown$.subscribeEvent((e,t)=>{this.inRefSelectionMode()&&(this._onPointerDown(e,n.zIndex+1,w.NORMAL,this._getActiveViewport(e)),e.button!==2&&t.stopPropagation())})),a.add(e==null?void 0:e.onPointerDown$.subscribeEvent((e,t)=>{if(!this.inRefSelectionMode())return;let r=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:a}=Be(e.offsetX,e.offsetY,i,r);Le(this._workbookSelections.getCurrentSelections(),a,w.ROW)||(this._onPointerDown(e,(n.zIndex||1)+1,w.ROW,this._getActiveViewport(e),Nt.Y),e.button!==2&&t.stopPropagation())})),a.add(t==null?void 0:t.onPointerDown$.subscribeEvent((e,t)=>{if(!this.inRefSelectionMode())return;let r=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:a}=Be(e.offsetX,e.offsetY,i,r);Le(this._workbookSelections.getCurrentSelections(),a,w.COLUMN)||(this._onPointerDown(e,(n.zIndex||1)+1,w.COLUMN,this._getActiveViewport(e),Nt.X),e.button!==2&&t.stopPropagation())})),a.add(r==null?void 0:r.onPointerDown$.subscribeEvent((e,t)=>{if(this._reset(),!this.inRefSelectionMode())return;let n=this._sheetSkeletonManagerService.getCurrent().skeleton,r=ze(n);this._addSelectionControlByModelData(r),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());let a=i.onPointerUp$.subscribeEvent(()=>{a.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});e.button!==2&&t.stopPropagation()})),a}_addSelectionControlByModelData(e){var t;let n=this._skeleton,r=(t=e.style)==null?Re(this._themeService):t,i=this._scene;return e.style=r,this.newSelectionControl(i,n,e)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(e=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(e||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(e=>{this._updateSelections(e,Ht.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(e=>{this._updateSelections(e,Ht.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(e=>{this._updateSelections(e,Ht.MOVE_END)}))}_updateSelections(e,t){let n=this._context.unit.getActiveSheet().getSheetId();e.length!==0&&this._workbookSelections.setSelections(n,e.map(e=>tn(e)),t)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var t;if(!e)return;let{skeleton:n}=e,{scene:r}=this._context,i=r.getViewport(Mt.VIEW_MAIN);this._skeleton&&((t=this._skeleton.worksheet)==null?void 0:t.getSheetId())!==n.worksheet.getSheetId()&&this._reset(),this._changeRuntime(n,r,i);let a=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(a)}))}_getActiveViewport(e){let t=this._getSheetObject();return t==null?void 0:t.scene.getActiveViewportByCoord(Pt.FromArray([e.offsetX,e.offsetY]))}_getSheetObject(){return He(this._context.unit,this._context)}_onPointerDown(e,t=0,n=w.NORMAL,r,i=Nt.ALL){var a;this._rangeType=n;let o=this._skeleton,s=this._scene;if(!s||!o)return;r&&(this._activeViewport=r);let{offsetX:c,offsetY:l}=e,u=s.getViewport(Mt.VIEW_MAIN);if(!u)return;let d=s.getCoordRelativeToViewport(Pt.FromArray([c,l])),{x:f,y:p}=d;this._startViewportPosX=f,this._startViewportPosY=p;let m=s.getScrollXYInfoByViewport(d),{scaleX:h,scaleY:g}=s.getAncestorScale(),_=this._skeleton.getCellByOffset(f,p,h,g,m);if(!_)return;switch(n){case w.NORMAL:break;case w.ROW:_.startColumn=0,_.endColumn=this._skeleton.getColumnCount()-1;break;case w.COLUMN:_.startRow=0,_.endRow=this._skeleton.getRowCount()-1;break;case w.ALL:_.startRow=0,_.startColumn=0,_.endRow=this._skeleton.getRowCount()-1,_.endColumn=this._skeleton.getColumnCount()-1}let v={range:_,primary:_,style:null};(_.isMerged||_.isMergedMainCell)&&(v={range:{..._,startRow:_.startRow,endRow:_.startRow,startColumn:_.startColumn,endColumn:_.startColumn},primary:{..._,actualRow:_.startRow,actualColumn:_.startColumn,startRow:_.startRow,endRow:_.startRow,startColumn:_.startColumn,endColumn:_.startColumn},style:null}),v.range.rangeType=n;let y=Ie(v,this._skeleton);this._startRangeWhenPointerDown={...y.rangeWithCoord};let b={...y.rangeWithCoord,rangeType:n},x=this.getActiveSelectionControl(),S=this.getSelectionControls();for(let t of S){if(e.button===2&&E.contains(t.model,b)){x=t;return}if(t.model.isEqual(b)){x=t;break}}this._checkClearPreviousControls(e);let C=x==null?void 0:x.model.currentCell,T=e.shiftKey&&C,D=this._remainLastEnabled&&!e.ctrlKey&&!e.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;T&&C?this._makeSelectionByTwoCells(C,b,o,n,x):D&&x?x.updateRangeBySelectionWithCoord(y):x=this.newSelectionControl(s,o,v);for(let e=0;e<this.getSelectionControls().length-1;e++)this.getSelectionControls()[e].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),s.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(a=s.getTransformer())==null||a.clearSelectedObjects(),this._setupPointerMoveListener(u,x,n,i,f,p),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=s.onPointerUp$.subscribeEvent(()=>{var e;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(e=this._escapeShortcutDisposable)==null||e.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(e,t,n){let r=this.getSelectionControls().length,{rowHeaderWidth:i,columnHeaderHeight:a}=t,o=new je(e,r,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:i,columnHeaderHeight:a}),s=Ie(n,t);return o.updateRangeBySelectionWithCoord(s),this._selectionControls.push(o),o.setControlExtension({skeleton:t,scene:e,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),o}};yi=tr([X(1,v(y)),X(2,v(k)),X(3,_n),X(4,v(Pe)),X(5,h),X(6,Lt)],yi);function bi(e){let t=Re(e);return t.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},t}const xi=(e,t,n=!0)=>{let r=-1;return e.reduce((e,i,a)=>{if(e.isFinish)return e;let o=e.currentIndex;if(typeof i!=`string`)e.currentIndex+=i.token.length;else{let t=i.length;e.currentIndex+=t}return(n?e.currentIndex===t:t>o&&t<=e.currentIndex)&&(r=a,e.isFinish=!0),e},{currentIndex:0,isFinish:!1}),r},Si=(e,t)=>{let n=e[t],r=-1;if(!n||typeof n==`string`||n.nodeType!==I.REFERENCE)return-1;for(let n=0;n<=t;n++){let t=e[n];typeof t!=`string`&&t.nodeType===I.REFERENCE&&r++}return r},Ci=(e,t=100)=>{H(()=>{let n=null,r=()=>{n===null&&(n=window.setTimeout(()=>{e(),n=null},t))};return window.addEventListener(`scroll`,r),window.addEventListener(`resize`,r),()=>{n!==null&&clearTimeout(n),window.removeEventListener(`scroll`,r),window.removeEventListener(`resize`,r)}},[e,t])};function wi(e,t,n){let r=z(Ct),i=U(()=>new ft({left:-999,top:-999,right:-999,bottom:-999}),[]),a=z(vn),o=z(_),s=B(()=>{var t;let n=r.getEditor(e);if(!n)return;let a=n.getBoundingClientRect(),{marginTop:o=0,marginBottom:s=0}=n.getDocumentData().documentStyle,c=n.getSkeleton();if(!c)return;let l=(t=c.getSkeletonData())==null?void 0:t.pages[0].height,{left:u,top:d,right:f,bottom:p}=a;d+=o,p=l?d+l:p-s;let m=i.getValue();if(!(m.left===u&&m.top===d&&m.right===f&&m.bottom===p))return i.next({left:u-1,right:f+1,top:d-1,bottom:p+1}),a});return H(()=>{t&&s()},[e,r,o.unitAdded$,s,t,...n==null?[]:n]),Ci(s),H(()=>{let e=a.scrollEvent$.pipe(bt(100)).subscribe(s);return()=>{e.unsubscribe()}},[]),[i,s]}const Ti=e=>{let t=W(e);return t.current=e,t},Ei=(e,t,n)=>{let r=z(rr),i=z(on),a=z(Je),[o,s]=G(),[c,l]=G(-1),[u,d]=G(!0),f=Ti(u),p=W(t);p.current=t;let m=()=>{s(void 0),l(-1),d(!1)};return H(()=>{let e=a.sequenceNodesBuilder(t.slice(1));r.setSequenceNodes(e==null?[]:e)},[t]),H(()=>{if(n&&e){let e=n.selectionChange$.pipe(ht(50)).subscribe(e=>{if(e.textRanges.length===1){let[t]=e.textRanges;if(t.collapsed&&f.current){let{startOffset:e}=t,n=r.getCurrentSequenceNodeIndex(e-2),o=r.getCurrentSequenceNodeByIndex(n),c=r.getCurrentSequenceNodeByIndex(n+1);if(o)if(typeof o!=`string`&&o.nodeType===3&&!i.hasDefinedNameDescription(o.token.trim())&&c===ot.OPEN_BRACKET){s(i.getFunctionInfo(o.token)),l(-1);return}else{let t=a.getFunctionAndParameter(`${p.current}A`,e-1);if(t){let{functionName:e,paramIndex:n}=t;s(i.getFunctionInfo(e)),l(n);return}}}}s(void 0),l(-1)}),t=n.selectionChange$.pipe(_t(e=>e.textRanges.length===1),vt(e=>e.textRanges[0].startOffset),gt()).subscribe(()=>{d(!0)});return()=>{e.unsubscribe(),t.unsubscribe()}}},[n,e]),H(()=>{e||m()},[e]),{functionInfo:o,paramIndex:c,reset:m}},Di=({onClick:e})=>K(`div`,{className:`univer-z-[15] univer-box-border univer-h-[18px] univer-cursor-pointer univer-overflow-visible univer-whitespace-nowrap univer-rounded-l univer-border univer-border-r-0 univer-border-gray-600 univer-bg-primary-600 univer-p-0.5 univer-text-xs univer-font-bold univer-leading-[13px] univer-text-white`,onClick:e,children:`?`}),Oi=({className:e,title:t,value:n})=>q(`div`,{className:`univer-my-2`,children:[K(`div`,{className:J(`univer-mb-2 univer-text-sm univer-font-medium univer-text-gray-900 dark:!univer-text-white`,e),children:t}),K(`div`,{className:`univer-whitespace-pre-wrap univer-break-words univer-text-xs univer-text-gray-500`,children:n})]}),ki=e=>{let{prefix:t,value:n,active:r,onClick:i}=e;return q(`div`,{children:[q(`span`,{children:[t,`(`]}),n&&n.map((e,t)=>q(`span`,{children:[K(`span`,{className:r===t?`univer-text-primary-500`:``,onClick:()=>i(t),children:ci(e)}),t===n.length-1?``:`,`]},e.name)),`)`]})},Ai=()=>{};function ji(e){let{onParamsSwitch:t=Ai,onClose:n=Ai,isFocus:r,editor:i,formulaText:a}=e,{functionInfo:o,paramIndex:s,reset:c}=Ei(r,a,i),l=z(xe),u=!V(l.helpFunctionVisible$),[d,f]=G(!1),p=z(x),m=p.t(`formula.prompt.required`),h=p.t(`formula.prompt.optional`),[g]=wi(i.getEditorId(),!!o,[o,s]);function _(e){t&&t(e)}let v=B(e=>{l.helpFunctionVisible$.next(!e)});return o?u?K(Cn,{portal:!0,anchorRect$:g,direction:`left-center`,children:K(Di,{onClick:()=>v(!1)})},`hidden`):K(Cn,{portal:!0,onClickOutside:()=>c(),anchorRect$:g,direction:`vertical`,children:q(`div`,{className:J(`univer-m-0 univer-box-border univer-w-[250px] univer-select-none univer-list-none univer-rounded-lg univer-bg-white univer-leading-5 univer-shadow-md univer-outline-none dark:!univer-bg-gray-900`,zn),children:[q(`div`,{className:J(`univer-box-border univer-flex univer-items-center univer-justify-between univer-px-4 univer-py-3 univer-text-xs univer-font-medium univer-text-gray-900 dark:!univer-text-white`,Vn),style:{overflowWrap:`anywhere`},children:[K(ki,{prefix:o.functionName,value:o.functionParameter,active:s,onClick:_}),q(`div`,{className:`univer-flex`,children:[K(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded univer-bg-transparent univer-p-0 univer-text-xs univer-text-gray-500 univer-outline-none univer-transition-colors hover:univer-bg-gray-200 dark:hover:!univer-bg-gray-600`,style:{transform:d?`rotateZ(-90deg)`:`rotateZ(90deg)`},onClick:()=>f(!d),children:K(qn,{})}),K(`div`,{className:`univer-ml-2 univer-flex univer-size-6 univer-cursor-pointer univer-items-center univer-justify-center univer-rounded univer-bg-transparent univer-p-0 univer-text-xs univer-text-gray-600 univer-outline-none univer-transition-colors hover:univer-bg-gray-300 dark:!univer-text-gray-200 dark:hover:!univer-bg-gray-600`,onClick:()=>{v(!0),n()},children:K(Wn,{})})]})]}),K(`div`,{className:J(`univer-box-border univer-max-h-[350px] univer-overflow-y-auto univer-px-4 univer-pb-3 univer-pt-0`,Hn),style:{height:d?`unset`:0,padding:d?`revert-layer`:0},children:q(`div`,{className:`univer-mt-3`,children:[K(Oi,{title:p.t(`formula.prompt.helpExample`),value:`${o.functionName}(${o.functionParameter.map(e=>e.example).join(`,`)})`}),K(Oi,{title:p.t(`formula.prompt.helpAbstract`),value:o.description}),o&&o.functionParameter&&o.functionParameter.map((e,t)=>K(Oi,{className:s===t?`univer-text-primary-500`:``,title:e.name,value:`${e.require?m:h} ${e.detail}`},t))]})})]})},`show`):null}const Mi=e=>{let t=z(Ct);return B(n=>{if(e){t.focus(e.getEditorId());let a=[...e.getSelectionRanges()];if(ee.isDefine(n))e.setSelectionRanges([{startOffset:n,endOffset:n}]);else if(!a.length&&!e.docSelectionRenderService.isOnPointerEvent){var r,i;let t=(r=(i=e.getDocumentData().body)==null?void 0:i.dataStream)==null?`\r
|
|
2
|
+
`:r,n=Math.max(t.length-2,0);e.setSelectionRanges([{startOffset:n,endOffset:n}])}else e.setSelectionRanges(a)}})};function Ni(e){var t,n;let r=e.get(_).getCurrentUniverDocInstance();if(r!=null&&r.getBody())return{dataStream:(t=(n=r.getBody())==null?void 0:n.dataStream)==null?``:t,offset:0}}let $=function(e){return e[e.NOT_SELECT=0]=`NOT_SELECT`,e[e.NEED_ADD=1]=`NEED_ADD`,e[e.CAN_EDIT=2]=`CAN_EDIT`,e[e.EDIT_OTHER_SHEET_REFERENCE=3]=`EDIT_OTHER_SHEET_REFERENCE`,e[e.EDIT_OTHER_WORKBOOK_REFERENCE=4]=`EDIT_OTHER_WORKBOOK_REFERENCE`,e}({});function Pi(e){var t;let{editorId:n,isFocus:r,disableOnClick:i,unitId:a,subUnitId:o}=e,s=z(jt),c=z(_),l=s.getRenderById(a),u=s.getRenderById(n),d=u==null?void 0:u.with(St),f=z(On),p=z(y),[m,h]=G($.NOT_SELECT),g=z(Je),v=W(!0),b=l==null?void 0:l.with(yi),x=Ti(m),S=c.getUnit(a,A.UNIVER_SHEET),C=S==null?void 0:S.getSheetBySheetId(o),w=B(e=>{b&&b.setSkipLastEnabled(e===$.NEED_ADD||e===$.EDIT_OTHER_SHEET_REFERENCE||e===$.EDIT_OTHER_WORKBOOK_REFERENCE),x.current=e,h(e)}),T=B(()=>{var e,t;let n=c.getCurrentUnitOfType(A.UNIVER_SHEET);if(!n)return;let r=n.getActiveSheet(),i=d==null?void 0:d.getActiveTextRange(),a=i!=null&&i.collapsed?i.startOffset:-1,o=Ni(p);if(!o)return;let s=o==null||(e=o.dataStream)==null?void 0:e.slice(0,-2),l=((t=g.sequenceNodesBuilder(s))==null?[]:t).map(e=>typeof e==`object`?e.nodeType===I.REFERENCE?{...e,range:$e(e.token)}:{...e,range:void 0}:e),u=s[a-1],f=s[a],m=l.find(e=>typeof e==`object`&&e.nodeType===I.REFERENCE&&a===e.endIndex+2),h=u&&at(u)&&(!f||it(f)&&f!==ot.OPEN_BRACKET),_=!!m;if((s==null?void 0:s.substring(0,1))===`=`&&(h||_))if(_){var y;if(v.current)return;let{sheetName:e,unitId:t}=m.range,n=(y=c.getCurrentUnitOfType(A.UNIVER_SHEET))==null?void 0:y.getUnitId();t&&t!==n?w($.EDIT_OTHER_WORKBOOK_REFERENCE):!e&&r.getSheetId()===(C==null?void 0:C.getSheetId())||e===r.getName()?w($.CAN_EDIT):w($.EDIT_OTHER_SHEET_REFERENCE)}else v.current=!1,w($.NEED_ADD);else w($.NOT_SELECT)});return H(()=>{let e=f.textSelection$.pipe(_t(e=>e.unitId===n)).subscribe(()=>{T()});return()=>e.unsubscribe()},[T,f.textSelection$,n]),H(()=>{r||(w($.NOT_SELECT),v.current=!0)},[r,w]),H(()=>{var e;if(!i)return;let t=u==null||(e=u.mainComponent)==null?void 0:e.onPointerDown$.subscribeEvent(()=>{w($.NOT_SELECT),v.current=!0});return()=>t==null?void 0:t.unsubscribe()},[i,u==null||(t=u.mainComponent)==null?void 0:t.onPointerDown$,w]),H(()=>{if(!r)return;let e=S==null?void 0:S.activeSheet$.subscribe(()=>{T()}),t=c.getCurrentTypeOfUnit$(A.UNIVER_SHEET).subscribe(()=>{T()});return()=>{e==null||e.unsubscribe(),t==null||t.unsubscribe()}},[T,r,S==null?void 0:S.activeSheet$,c.getCurrentTypeOfUnit$]),{isSelecting:m,isSelectingRef:x}}const Fi=()=>{let e=z(Je);return An(t=>e.sequenceNodesBuilder(t)||[],[e])};function Ii(e,t,n){return{id:n,strokeWidth:1,stroke:t,fill:new r(t).setAlpha(.05).toRgbString(),widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:e.getColorFromTheme(`white`)}}function Li(e){var t;let{unitId:n,subUnitId:r,currentWorkbook:i,refSelections:a,editor:o,refSelectionsService:s,refSelectionsRenderService:c,sheetSkeletonManagerService:l,themeService:u,univerInstanceService:d}=e,f=i.getUnitId(),p=d.getUnit(n,A.UNIVER_SHEET),m=p==null?void 0:p.getActiveSheet(),h=[];if(!p||!m){s.setSelections(h);return}let g=m.getSheetId(),_=e=>{var t;return p==null||(t=p.getSheetBySheetName(e))==null?void 0:t.getSheetId()};if(!(!(l==null||(t=l.getWorksheetSkeleton(g))==null)&&t.skeleton))return;let v=[];for(let e=0,t=a.length;e<t;e++){let{themeColor:t,token:i,refIndex:o,endIndex:s}=a[e],{unitId:c,sheetName:l,range:d}=Qe(i),p=_(l);if(!p&&l||f!==n&&c!==f||c&&c!==f||p&&p!==g||!p&&g!==r)continue;let y=an(d,m.getRowCount(),m.getColumnCount());y.unitId=n,y.sheetId=g,h.push({range:y,primary:null,style:Ii(u,t,o.toString())}),v.push(s)}if(o){var y;let e=(y=o.getSelectionRanges())==null||(y=y[0])==null?void 0:y.startOffset,t=v.findIndex(t=>t+2===e);t===-1?c==null||c.resetActiveSelectionIndex():c==null||c.setActiveSelectionIndex(t)}return h}function Ri(e,t){let n=z(_),r=z(k),i=z(Lt),a=z(jt),o=V(U(()=>n.getCurrentTypeOfUnit$(A.UNIVER_SHEET),[n])),s=o?a.getRenderById(o.getUnitId()):null,c=s==null?void 0:s.with(yi),l=s==null?void 0:s.with(Pe),u=B((a,o)=>{let s=n.getCurrentUnitOfType(A.UNIVER_SHEET);if(!s||c!=null&&c.selectionMoving)return;let u=Li({unitId:e,subUnitId:t,currentWorkbook:s,refSelections:a,editor:o,refSelectionsService:i,refSelectionsRenderService:c,sheetSkeletonManagerService:l,themeService:r,univerInstanceService:n});u&&(((c==null?void 0:c.getSelectionControls())||[]).length===u.length?c==null||c.resetSelectionsByModelData(u):i.setSelections(u))});return H(()=>()=>{c==null||c.resetActiveSelectionIndex()},[c]),u}function zi(e=``){let t=z(on),n=Bi(),r=z(p),i=U(()=>e.length,[e]);return B((a,o,s=!0,c)=>{let l=a.getDocumentData(),u=a.getEditorId();if(!l)return[];let d=l.body;if(!d)return[];let f=d.dataStream.slice(0,d.dataStream.length-2),p={dataStream:``,...l.body};if(!f.startsWith(e))return[];if(o==null||o.length===0)return p.textRuns=[],r.syncExecuteCommand(Et.id,{unitId:u,body:ie(p,0,p.dataStream.length-2)}),[];{let{textRuns:l,refSelections:d}=Vi(t,n,o);i&&l.forEach(e=>{e.ed+=i,e.st+=i}),p.textRuns=[{st:0,ed:1,ts:{fs:11}},...l],p.dataStream=`${e}${o.reduce((e,t)=>typeof t==`string`?`${e}${t}`:`${e}${t.token}`,``)}\r\n`;let f;if(s){f=a.getSelectionRanges();let e=p.dataStream.length-2+i;f.forEach(t=>{t.startOffset=Math.max(0,Math.min(t.startOffset,e)),t.endOffset=Math.max(0,Math.min(t.endOffset,e))})}return r.syncExecuteCommand(Et.id,{unitId:u,body:ie(p,0,p.dataStream.length-2),textRanges:c==null?f:c}),d}})}function Bi(){let e=z(k);return U(()=>({formulaRefColors:[e.getColorFromTheme(`loop-color.1`),e.getColorFromTheme(`loop-color.2`),e.getColorFromTheme(`loop-color.3`),e.getColorFromTheme(`loop-color.4`),e.getColorFromTheme(`loop-color.5`),e.getColorFromTheme(`loop-color.6`),e.getColorFromTheme(`loop-color.7`),e.getColorFromTheme(`loop-color.8`),e.getColorFromTheme(`loop-color.9`),e.getColorFromTheme(`loop-color.10`),e.getColorFromTheme(`loop-color.11`),e.getColorFromTheme(`loop-color.12`)].map(t=>e.isValidThemeColor(t)?e.getColorFromTheme(t):t),numberColor:e.getColorFromTheme(`blue.700`),stringColor:e.getColorFromTheme(`jiqing.800`),plainTextColor:e.getColorFromTheme(`black`)}),[e.getCurrentTheme()])}function Vi(e,t,n){let{formulaRefColors:r,numberColor:i,stringColor:a,plainTextColor:o}=t,s=[],c=[],l=new Map,u=0;for(let t=0,d=n.length;t<d;t++){let d=n[t];if(typeof d==`string`){let e=s[s.length-1],t=e?e.ed:0,n=t+d.length;s.push({st:t,ed:n,ts:{cl:{rgb:o},fs:11}});continue}if(e.hasDefinedNameDescription(d.token.trim())){s.push({st:d.startIndex,ed:d.endIndex+1,ts:{cl:{rgb:o},fs:11}});continue}let{startIndex:f,endIndex:p,nodeType:m,token:h}=d,g=``;m===I.REFERENCE?(l.has(h)?g=l.get(h):(g=r[u%r.length],l.set(h,g),u++),c.push({refIndex:t,themeColor:g,token:h,startIndex:d.startIndex,endIndex:d.endIndex,index:c.length})):m===I.NUMBER?g=i:(m===I.STRING||m===I.ARRAY)&&(g=a),g&&g.length>0?s.push({st:f,ed:p+1,ts:{cl:{rgb:g},fs:11}}):s.push({st:f,ed:p+1,ts:{cl:{rgb:o},fs:11}})}return{textRuns:s,refSelections:c}}const Hi=(e,t,n,r)=>{let a=z(p),o=z(_n),s=W(t);s.current=t;let c=W(r);c.current=r,H(()=>{if(!n||!e)return;let t=`sheet.formula-embedding-editor.${n.getEditorId()}`,r=new d,u=(e,t)=>{if(c.current){c.current(e,t);return}let n=l.LEFT;e===L.ARROW_DOWN?n=l.DOWN:e===L.ARROW_UP?n=l.UP:e===L.ARROW_RIGHT&&(n=l.RIGHT),t===R.SHIFT?a.executeCommand(Tt.id,{direction:n}):a.executeCommand(wt.id,{direction:n})},f=(e,t)=>{let n=l.DOWN;e===L.ARROW_DOWN?n=l.DOWN:e===L.ARROW_UP?n=l.UP:e===L.ARROW_LEFT?n=l.LEFT:e===L.ARROW_RIGHT&&(n=l.RIGHT),s.current?t===R.CTRL_COMMAND?a.executeCommand(Te.id,{direction:n,jumpOver:we.moveGap,extra:`formula-editor`,fromCurrentSelection:s.current===$.NEED_ADD||s.current===$.EDIT_OTHER_SHEET_REFERENCE}):t===R.SHIFT?a.executeCommand(ye.id,{direction:n,extra:`formula-editor`}):t===(R.CTRL_COMMAND|R.SHIFT)?a.executeCommand(ye.id,{direction:n,jumpOver:we.moveGap,extra:`formula-editor`}):a.executeCommand(Te.id,{direction:n,extra:`formula-editor`,fromCurrentSelection:s.current===$.NEED_ADD||s.current===$.EDIT_OTHER_SHEET_REFERENCE}):u(e,t)};return r.add(a.registerCommand({id:t,type:i.OPERATION,handler(e,t){let{keyCode:n,metaKey:r}=t;f(n,r)}})),[{keyCode:L.ARROW_DOWN},{keyCode:L.ARROW_LEFT},{keyCode:L.ARROW_RIGHT},{keyCode:L.ARROW_UP},{keyCode:L.ARROW_DOWN,metaKey:R.SHIFT},{keyCode:L.ARROW_LEFT,metaKey:R.SHIFT},{keyCode:L.ARROW_RIGHT,metaKey:R.SHIFT},{keyCode:L.ARROW_UP,metaKey:R.SHIFT},{keyCode:L.ARROW_DOWN,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_LEFT,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_RIGHT,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_UP,metaKey:R.CTRL_COMMAND},{keyCode:L.ARROW_DOWN,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_LEFT,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_RIGHT,metaKey:R.CTRL_COMMAND|R.SHIFT},{keyCode:L.ARROW_UP,metaKey:R.CTRL_COMMAND|R.SHIFT}].map(({keyCode:e,metaKey:n})=>({id:t,binding:n?e|n:e,preconditions:()=>!0,priority:900,staticParameters:{eventType:At.Keyboard,keyCode:e,metaKey:n}})).forEach(e=>{r.add(o.registerShortcut(e))}),()=>{r.dispose()}},[a,n,e,o])},Ui=(e,t,n,r,i=!0)=>{var a;let o=z(jt),s=z(h),c=z(hn),l=z(Lt),u=z(_),d=V(U(()=>u.getCurrentTypeOfUnit$(A.UNIVER_SHEET),[u])),p=o.getRenderById((a=d==null?void 0:d.getUnitId())==null?``:a),m=p==null?void 0:p.with(yi);Mn(()=>{if(e)return s.setContextValue(f,!0),i&&c.disable(),()=>{let e=u.getCurrentUnitOfType(A.UNIVER_DOC);(e==null?void 0:e.getUnitId())===r&&s.setContextValue(f,!1),i&&c.enable(),l.clear()}},[s,e,l,i,r]),Mn(()=>{if(e&&t){let e=m==null?void 0:m.enableSelectionChanging();return s.setContextValue(Rt,!0),()=>{s.setContextValue(Rt,!1),e==null||e.dispose()}}},[s,e,m,t]),H(()=>{e&&(m==null||m.setSkipLastEnabled(!1))},[e,m])},Wi=(e,t,n)=>{let r=z(_),i=z(Yt);return An(()=>{if(e){let e=[...i.getWorkbookSelections(t).getSelectionsOfWorksheet(n)],a=r.getCurrentUnitForType(A.UNIVER_SHEET),o=a==null?void 0:a.getActiveSheet();(a==null?void 0:a.getUnitId())!==t&&r.setCurrentUnitForType(t),o&&o.getSheetId()===n&&i.setSelections(e)}},[e,i,n,t,r])},Gi=e=>e.reduce((e,t)=>typeof t==`string`?e+t.length:e+t.token.length,0),Ki=e=>e.map(e=>typeof e==`string`?e:e.token).join(``),qi=(e,t=!1,n=``,r=!1)=>!t&&!r?e.map(e=>ct(e.range)):e.map(e=>r?lt(e):e.sheetName!==``&&e.sheetName!==n?ut(e.sheetName,e.range):ct(e.range)),Ji=e=>{var t,n,r;let{editor:i,lexerTreeBuilder:a}=e,o=i==null?void 0:i.getSelectionRanges();if((o==null?void 0:o.length)!==1)return;let s=o[0].startOffset-1,c=((t=i==null||(n=i.getDocumentData().body)==null?void 0:n.dataStream)==null?`\r
|
|
3
|
+
`:t).slice(0,-2),l=(r=a.sequenceNodesBuilder(c.slice(1)))==null?[]:r,u=xi(l,s,!1);return{nodeIndex:u,updatingRefIndex:Si(l,u),sequenceNodes:l,offset:s}},Yi=(()=>{}),Xi=(e,t,n,r,i,a,o,s,c,l=Yi)=>{var u;let f=z(jt),m=z(_),h=z(p),g=z(On),v=z(k),y=z(Je),b=m.getUnit(r),x=B((e,t)=>{var n,r;return(n=(r=m.getUnit(e))==null||(r=r.getSheetBySheetId(t))==null?void 0:r.getName())==null?``:n}),S=U(()=>x(r,i),[x,i,r]),C=V(b==null?void 0:b.activeSheet$),w=Ti({activeSheet:C,sheetName:S}),T=V(U(()=>m.getCurrentTypeOfUnit$(A.UNIVER_SHEET),[m])),D=f.getRenderById((u=T==null?void 0:T.getUnitId())==null?``:u),O=D==null?void 0:D.with(yi),ee=D==null?void 0:D.with(Pe),te=z(Lt),ne=B((e,t,a)=>{let s=Ji({editor:c,lexerTreeBuilder:y});if(!s)return;let{nodeIndex:u,updatingRefIndex:d,sequenceNodes:f,offset:p}=s;if(n.current===$.NEED_ADD)if(p!==0){var m,h,g;if(u===-1&&f.length)return;let n=e[e.length-1],a=f.splice(u+1),s=(m=n.sheetId)==null?i:m,c={range:n,unitId:(h=n.unitId)==null?T.getUnitId():h,sheetName:x((g=n.unitId)==null?T.getUnitId():g,s)},d=s!==i,p=(T==null?void 0:T.getUnitId())!==r,_=qi([c],o&&(d||p),S,p);f.push({token:_[0],nodeType:I.REFERENCE}),l(Ki([...f,...a]),Gi(f),t)}else{var _,v,b;let n=e[e.length-1],a=(_=n.sheetId)==null?i:_,s={range:n,unitId:(v=n.unitId)==null?T.getUnitId():v,sheetName:x((b=n.unitId)==null?T.getUnitId():b,a)},c=a!==i,u=(T==null?void 0:T.getUnitId())!==r,d=qi([s],o&&(c||u),S,u);f.unshift({token:d[0],nodeType:I.REFERENCE}),l(Ki(f),d[0].length,t)}else if(n.current===$.EDIT_OTHER_SHEET_REFERENCE||n.current===$.EDIT_OTHER_WORKBOOK_REFERENCE){let n=e.pop();if(!n)return;let i=f[u];if(typeof i==`object`&&i.nodeType===I.REFERENCE){let e=i.token;if((T==null?void 0:T.getUnitId())!==r){var E;i.token=dt((E=T==null?void 0:T.getUnitId())==null?``:E,S,n)}else i.token=S===(C==null?void 0:C.getName())?ct(n):ut(C.getName(),n);let a=p+(i.token.length-e.length);l(tt(f),a,t)}}else{let n=[...e];if(!a&&d!==-1){let e=n.pop();e&&n.splice(d,0,e)}let s=0,c=f.map(e=>{if(typeof e==`string`)return e;if(e.nodeType===I.REFERENCE){var t,a,c;let u=Qe(e.token);if(u.sheetName||(u.sheetName=S),(u.unitId||r)!==(T==null?void 0:T.getUnitId()))return e.token;if(o){var l;if(((l=w.current.activeSheet)==null?void 0:l.getName())!==u.sheetName)return e.token}let d=n[s];if(s++,!d)return``;let f=(t=d.sheetId)==null?i:t,p={range:d,unitId:(a=d.unitId)==null?T.getUnitId():a,sheetName:x((c=d.unitId)==null?T.getUnitId():c,f)},m=(T==null?void 0:T.getUnitId())!==r;return qi([p],o&&(f!==i||m),S,m)[0]}return e.token}),p=``,m;c.forEach((e,t)=>{p+=e,t===u&&(m=p.length)});let h=[];for(let t=s;t<=e.length-1;t++){var D,O,k;let n=e[t],a=(D=n.sheetId)==null?i:D,s={range:n,unitId:(O=n.unitId)==null?T.getUnitId():O,sheetName:x((k=n.unitId)==null?T.getUnitId():k,a)},c=(T==null?void 0:T.getUnitId())!==r,l=qi([s],o&&(a!==i||c),S,c);h.push(l[0])}let g=f[f.length-1],_=g&&(typeof g==`string`?!1:g.nodeType===I.REFERENCE),v=`${p}${h.length&&_?`,`:``}${h.join(`,`)}`;l(v,!h.length&&m?m:v.length,t)}});H(()=>{if(O&&e){let e=!0,t=0,n=(n,r)=>{if(e){e=!1,t=n.length;return}let i=n.length>t;r&&(t=n.length),ne(n.map(e=>e.rangeWithCoord),r,i)},r=new d;return r.add(O.selectionMoving$.subscribe(e=>{n(e,!1)})),r.add(O.selectionMoveEnd$.subscribe(e=>{n(e,!0)})),()=>{r.dispose()}}},[e,ne,O]),H(()=>{if(t&&O&&c){let e=new d,t=()=>{e.dispose(),O.getSelectionControls().forEach((t,n)=>{e.add(t.selectionScaling$.subscribe(e=>{let t=O.getSelectionDataWithStyle().map(e=>e.rangeWithCoord),r=t[n];e.sheetId=r.sheetId,e.unitId=r.unitId,t[n]=e,ne(t,!1)})),e.add(t.selectionMoving$.subscribe(e=>{let t=O.getSelectionDataWithStyle().map(e=>e.rangeWithCoord),r=t[n];e.sheetId=r.sheetId,e.unitId=r.unitId,t[n]=e,ne(t,!0)}))})},n=yt(c.input$,te.selectionSet$,O.selectionMoveEnd$).pipe(Yn(50)).subscribe(()=>{t()});return()=>{n.unsubscribe(),e.dispose()}}},[c,t,ne,O,te.selectionSet$]),O==null||O.getSelectionDataWithStyle(),H(()=>{if(s){let e=h.onCommandExecuted(e=>{if(e.id!==Gt.id)return;let t=e.params;if(t.extra===`formula-editor`&&t.selections.length){let e=t.selections[t.selections.length-1];if(e){var r;let{range:i,primary:a}=e;(a!=null&&a.isMergedMainCell||a!=null&&a.isMerged)&&E.contains(a,i)&&(i.startRow=a.startRow,i.endRow=a.startRow,i.startColumn=a.startColumn,i.endColumn=a.startColumn),i.unitId=t.unitId,i.sheetId=t.subUnitId;let o=n.current===$.NEED_ADD,s=((r=O==null?void 0:O.getSelectionDataWithStyle())==null?[]:r).map(e=>e.rangeWithCoord);o?s.push(i):s[s.length-1]=i,ne(s,!0)}}});return()=>{e.dispose()}}},[h,c,n,y,s,ne,O]),H(()=>{if(!c)return;let e=g.textSelection$.subscribe(e=>{e.unitId===c.getEditorId()&&Li({unitId:r,subUnitId:i,refSelections:a.current,editor:c,refSelectionsService:te,refSelectionsRenderService:O,sheetSkeletonManagerService:ee,themeService:v,univerInstanceService:m,currentWorkbook:T})});return()=>e.unsubscribe()},[g.textSelection$,c,a,O,te,ee,i,v,r,m])},Zi=(e,t,n,r,i,a)=>{let o=z(p),c=z(Ct),l=z(jt).getRenderById(t),u=z(_),d=l==null?void 0:l.with(yi);H(()=>{if(e&&d)if(n){let e=()=>{let e=d.getSelectionControls().length;for(let t=1;t<=e;t++)d.clearLastSelection();return setTimeout(()=>{a()},30)},t=o.onCommandExecuted(t=>{t.id===Kt.id&&e()}),n=u.getCurrentTypeOfUnit$(A.UNIVER_SHEET).subscribe(t=>{e()});return()=>{t.dispose(),n.unsubscribe()}}else{let e=o.beforeCommandExecuted(e=>{if(e.id===Kt.id){r(!1),i(),a();let e=c.getEditor(s);e==null||e.focus()}});return()=>{e.dispose()}}},[e,d])},Qi=(e,t,n)=>{let r=z(Je),i=W(!0);H(()=>{if(e){let e=setTimeout(()=>{i.current=!1},500);return()=>{clearTimeout(e)}}},[e]),H(()=>{i.current||t&&t(r.checkIfAddBracket(n)===0&&n.startsWith(st.EQUALS),`${n}`)},[n,t])},$i=(e,t=[],n)=>{let r=z(on),[i,a]=G([]),[o,s]=G(``),c=W(-1),l=Ti({nodes:t}),u=()=>{a([]),s(``),c.current=-1};return H(()=>{if(n&&e){let e=n.input$.pipe(ht(300)).subscribe(()=>{let e=n.getSelectionRanges();if(e.length===1){let t=l.current.nodes,n=e[0];if(n.collapsed){let e=xi(t,n.startOffset-1,!1);c.current=e;let i=t[e];if(i&&typeof i!=`string`&&i.nodeType===I.FUNCTION){c.current=e;let t=i.token;a(r.getSearchListByNameFirstLetter(t)),s(t);return}}}c.current=-1,s(``),a(e=>e!=null&&e.length?[]:e)});return()=>{e.unsubscribe()}}},[n,e]),H(()=>{e||u()},[e]),{searchList:i,searchText:o,handlerFormulaReplace:(e,t)=>{let n=[...l.current.nodes];if(c.current!==-1){let r=n.splice(c.current+1),i=n.pop()||``,a=(typeof i==`string`?i.length:i.token.length)-e.length;return n.push(e),r[0]!==ot.OPEN_BRACKET&&t!==F.DefinedName&&(n.push(ot.OPEN_BRACKET),a--),{text:Ki([...n,...r]),offset:a}}},reset:u}},ea=()=>{},ta=kn(na);function na(e,t){let{isFocus:n,sequenceNodes:r,onSelect:a,editor:o,onClose:s=ea}=e,c=o.getEditorId(),l=z(_n),u=z(p),{searchList:f,searchText:m,handlerFormulaReplace:h,reset:g}=$i(n,r,o),_=U(()=>!!f.length,[f]),v=W(void 0),[y,b]=G(0),x=W(!1),[S]=wi(c,_,[m,f]),C=Ti({searchList:f,active:y}),w=(e,t)=>{let n=h(e,t);n&&(g(),a(n))};function T(e){x.current&&b(e)}function E(){x.current&&b(-1)}H(()=>{if(!f.length)return;let e=`sheet.formula-embedding-editor.search_function.${c}`,t=new d,n=e=>{let{searchList:t,active:n}=C.current;switch(e){case L.ARROW_UP:b(e=>{let t=Math.max(0,e-1);return D(t),t});break;case L.ARROW_DOWN:b(e=>{let n=Math.min(t.length-1,e+1);return D(n),n});break;case L.TAB:case L.ENTER:{let e=t[n];w(e.name,e.functionType);break}case L.ESC:g(),s();break}};return t.add(u.registerCommand({id:e,type:i.OPERATION,handler(e,t){let{keyCode:r}=t;n(r)}})),[L.ARROW_UP,L.ARROW_DOWN,L.ENTER,L.ESC,L.TAB].map(t=>({id:e,binding:t,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:At.Keyboard,keyCode:t}})).forEach(e=>{t.add(l.registerShortcut(e))}),()=>{t.dispose()}},[f]);function D(e){let t=v.current;if(!t)return;let n=t.children[e];if(!n)return;let r=t.getBoundingClientRect().top,i=t.offsetHeight,a=n.getBoundingClientRect(),o=a.top,s=a.height;if(o>=0&&o>r&&o-r+s<=i)return;let c=n.offsetTop-(i-s)/2;t.scrollTo({top:c,behavior:`smooth`})}let O=U(()=>{let e=``;return()=>{clearTimeout(e),x.current=!0,e=setTimeout(()=>{x.current=!1},300)}},[]);return f.length>0&&_&&K(Cn,{portal:!0,anchorRect$:S,direction:`vertical`,children:K(`ul`,{ref:e=>{v.current=e,t&&(t.current=e)},"data-u-comp":`sheets-formula-editor`,className:J(`univer-m-0 univer-box-border univer-max-h-[400px] univer-w-[250px] univer-list-none univer-overflow-y-auto univer-rounded-lg univer-bg-white univer-p-2 univer-leading-5 univer-shadow-md univer-outline-none dark:!univer-bg-gray-900`,zn,Hn),children:f.map((e,t)=>q(`li`,{className:J(`univer-box-border univer-cursor-pointer univer-rounded univer-px-2 univer-py-1 univer-text-gray-900 univer-transition-colors dark:!univer-text-white`,{"univer-bg-gray-200 dark:!univer-bg-gray-600":y===t}),onMouseEnter:()=>T(t),onMouseLeave:E,onMouseMove:O,onClick:()=>{w(e.name,e.functionType),o&&o.focus()},children:[q(`span`,{className:`univer-block univer-truncate univer-text-xs`,children:[K(`span`,{className:`univer-text-red-500`,children:e.name.substring(0,m.length)}),K(`span`,{children:e.name.slice(m.length)})]}),K(`span`,{className:`univer-block univer-text-xs univer-text-gray-400`,children:e.desc})]},e.name))})})}const ra=e=>e.startsWith(st.EQUALS)?e.slice(1):``,ia=()=>{},aa=kn((e,n)=>{var r,i,a,o;let{errorText:s,initValue:c,unitId:l,subUnitId:u,isFocus:d=!0,isSupportAcrossSheet:f=!1,onFocus:p=ia,onBlur:h=ia,onChange:g,onVerify:v,className:y,editorId:b,moveCursor:x=!0,onFormulaSelectingChange:S,keyboardEventConfig:C,onMoveInEditor:w,resetSelectionOnBlur:T=!0,autoScrollbar:E=!0,isSingle:D=!0,disableSelectionOnClick:O=!1,autofocus:k=!0,disableContextMenu:ee,style:te}=e,ie=z(Ct),ae=W(null),oe=B(g);jn(n,()=>({isClickOutSide:e=>ae.current?!ae.current.contains(e.target):!1}));let se=B(S),ce=W(null),le=W(void 0),j=le.current,[M,ue]=G(d),de=W(null),fe=U(()=>b==null?ne(`${_e}-${re(4)}`):b,[]),pe=U(()=>s!==void 0,[s]),me=z(_),he=me.getUnit(fe);V(he==null?void 0:he.change$);let ge=Fi(),N=t.transform.getPlainText((r=he==null||(i=he.getBody())==null?void 0:i.dataStream)==null?``:r),ve=Ti(N),ye=U(()=>ra(N),[N]),be=U(()=>ge(ye),[ye,ge]),{isSelecting:xe,isSelectingRef:Se}=Pi({unitId:l,subUnitId:u,editorId:fe,isFocus:M,disableOnClick:O}),Ce=W(``),we=z(jt).getRenderById(fe),Te=we==null?void 0:we.with(St),Ee=Te==null?void 0:Te.isFocusing,De=V(U(()=>me.getCurrentTypeOfUnit$(A.UNIVER_DOC),[me])),Oe=(De==null?void 0:De.getUnitId())===fe,ke=W([]),Ae=xe,je=(a=(o=z(m).getConfig(`sheets-formula-ui.base.config`))==null?void 0:o.functionScreenTips)==null?!0:a;Dn(()=>{oe(N)},[N,oe]);let Me=zi(`=`),Ne=Ri(l,u),Pe=B((e,t=!0,n,r)=>{if(!le.current)return;Ce.current=e;let i=e[0]===`=`?e.slice(1):``,a=ge(i),o=a.reduce((e,t)=>typeof t==`object`?`${e}${t.token}`:`${e}${t}`,``),s=Me(le.current,o===i?a:[],t,r);if(ke.current=s,n){let e=r==null?j==null?void 0:j.getSelectionRanges():r;if((e==null?void 0:e.length)!==1)return;let t=Si(a,xi(a,e[0].startOffset-1,!1));if(t>=0){let e=s.splice(t,1)[0];e&&s.push(e)}Ne(M?s:[],le.current)}});H(()=>{M&&Pe(N,!1,!0)},[M]),H(()=>{if(M){if(Ce.current===N)return;Pe(N,!1,!0)}},[N]),Qi(M,v,N);let Fe=Mi(j),Ie=Wi(M,l,u);H(()=>{var e;se(xe,(e=Te==null?void 0:Te.isFocusing)==null?!0:e)},[se,xe]),Ot(M,C,j),Mn(()=>{let e;return de.current&&(e=ie.register({autofocus:k,editorUnitId:fe,initialSnapshot:{id:fe,body:{dataStream:`${c}\r\n`,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[]},documentStyle:{}}},de.current),le.current=ie.getEditor(fe),Pe(c,!1,!0)),()=>{e==null||e.dispose()}},[]),Mn(()=>{d?(ue(d),Fe()):(T&&(j==null||j.blur(),Ie()),ue(d))},[d,j,Fe,Ie,T]);let{checkScrollBar:Le}=kt(j,D,E);Ui(M,!!(xe&&Oe),l,fe,ee),Hi(!!(M&&Ee&&x),Ae,j,w);let Re=B((e,t,n)=>{if(!Ee)return;let r=t===-1?void 0:[{startOffset:t+1,endOffset:t+1,collapsed:!0}];Pe(`=${e}`,!0,n,r),n&&(Fe(),t!==-1&&setTimeout(()=>{let e={startOffset:t+1,endOffset:t+1},n=j==null?void 0:j.render.with(xt);n==null||n.scrollToRange({...e,collapsed:!0})},50),Le())});Xi(M&&!!(xe&&Oe),M,Se,l,u,ke,f,!!Ae,j,Re),Zi(M&&!!(xe&&Oe),l,f,ue,h,()=>{Pe(ve.current,!1,!0)});let ze=e=>{if(e){let t=j==null?void 0:j.getSelectionRanges();if(t&&t.length===1){let n=t[0];if(n.collapsed){let t=e.offset;setTimeout(()=>{j==null||j.setSelectionRanges([{startOffset:n.startOffset-t,endOffset:n.endOffset-t}])},30)}}Fe(),Pe(`=${e.text}`)}},Be=()=>{ue(!0),p(),Fe()};return q(`div`,{className:y,children:[K(`div`,{ref:ae,className:J(`univer-relative univer-box-border univer-flex univer-size-full univer-items-center univer-justify-around univer-gap-2 univer-rounded-none univer-p-0 univer-ring-1`,{"univer-ring-primary-500":M,"univer-ring-red-500":pe}),children:K(`div`,{ref:de,className:`univer-relative univer-size-full`,onMouseUp:Be})}),s!==void 0&&K(`div`,{className:`univer-my-1 univer-text-xs univer-text-red-500`,children:s}),je&&j&&ye!==``&&K(ji,{editor:j,isFocus:M,formulaText:N,onClose:()=>Fe()}),je&&!!j&&K(ta,{isFocus:M,sequenceNodes:be,onSelect:ze,ref:ce,editor:j})]})});function oa(e,t,n,i){var a;let o=z(Je),s=zi(``),c=V(e==null||(a=e.getDocumentDataModel())==null?void 0:a.change$),[l,u]=G([]),f=z(Se),p=W(``),m=z(_);return H(()=>{if(!e)return;let t=e.getDocumentDataModel().getPlainText();if(p.current===t)return;p.current=t;let n=o.sequenceNodesBuilder(t);u(n==null?[]:n)},[c,e,o]),H(()=>{if(!e)return;if(!t){var n,a;let t=e.getDocumentData();e.setDocumentData({...t,body:{...t.body,dataStream:(n=(a=t.body)==null?void 0:a.dataStream)==null?``:n,textRuns:[]}});return}let o=s(e,l,!1),c=new d;return o.forEach(e=>{let t=Qe(e.token),n=m.getCurrentUnitForType(A.UNIVER_SHEET),a=n==null?void 0:n.getActiveSheet();if(!t.sheetName&&i!==(a==null?void 0:a.getSheetId())||t.sheetName&&(a==null?void 0:a.getName())!==t.sheetName)return;let o=new r(e.themeColor).toRgb(),s=f.addShape({range:t.range,style:{stroke:e.themeColor,fill:`rgba(${o.r}, ${o.g}, ${o.b}, 0.1)`,strokeDash:12},primary:null});s&&c.add(()=>f.removeShape(s))}),()=>{c.dispose()}},[e,t,s,f,l]),{sequenceNodes:l}}function sa(e){let t=z(Yt),{supportAcrossSheet:n=!1,keepSheetReference:r=!1,unitId:i,subUnitId:a,onChange:o}=e,s=z(_).getUnit(i,A.UNIVER_SHEET),c=B(o),l=B((e,t)=>{let o=s==null?void 0:s.getActiveSheet();if(!o||!n&&o.getSheetId()!==a||!(e!=null&&e.length))return;let l=r?o.getName():o.getSheetId()===a?``:o.getName();c(e.map(e=>({range:e.range,unitId:i,sheetName:l})),t)});H(()=>{let e=new d;return e.add(t.selectionMoveStart$.subscribe(e=>{l(e,!0)})),e.add(t.selectionMoving$.subscribe(e=>{l(e,!1)})),e.add(t.selectionMoveEnd$.subscribe(e=>{l(e,!1)})),()=>{e.dispose()}},[l,t.selectionMoveEnd$,t.selectionMoveStart$,t.selectionMoving$])}const ca=e=>!e.some(e=>{if(typeof e==`string`){if(e!==ot.COMMA)return!0}else if(e.nodeType!==I.REFERENCE)return!0;return!1}),la=e=>{if(e.endColumn<e.startColumn){let t=e.endColumn;e.endColumn=e.startColumn,e.startColumn=t}if(e.endRow<e.startRow){let t=e.endRow;e.endRow=e.startRow,e.startRow=t}return e};function ua(e){let{visible:t,initialValue:n,unitId:r,subUnitId:i,maxRangeCount:a=1/0,supportAcrossSheet:o,keepSheetReference:s,onConfirm:c,onClose:l,onShowBySelection:u}=e,d=z(x),f=z(Je),[p,m]=G([]),[h,g]=G(0),_=W(null);H(()=>{if(t&&n.length){let e=n.map(e=>e.sheetName?ut(e.sheetName,e.range):ct(e.range));m(e),g(e.length-1)}else m([``]),g(0)},[t]);let v=(e,t)=>{let n=[...p];n[e]=t,m(n)},y=()=>{m([...p,``]),g(p.length)},b=e=>{p.splice(e,1),m([...p])};return sa({unitId:r,subUnitId:i,supportAcrossSheet:o,keepSheetReference:s,onChange:(e,n)=>{if(!t&&u!=null&&u(e))return;let r=new Set(p),i=e.map(e=>e.sheetName?ut(e.sheetName,e.range):ct(e.range)),o=i.filter(e=>!r.has(e));if(!o.length)return;let s=[...p];if(i.length>1){n||s.splice(h,1),s.push(...o);let e=s.slice(0,a);m(e),g(e.length-1),requestAnimationFrame(()=>{var e;(e=_.current)==null||e.scrollTo({top:_.current.scrollHeight})})}else s.splice(h,1,...o),m(s.slice(0,a)),g(h+o.length-1)}}),K(Fn,{width:`328px`,open:t,title:d.t(`rangeSelector.title`),draggable:!0,mask:!1,maskClosable:!1,footer:q(`footer`,{className:`univer-flex univer-gap-2`,children:[K(Pn,{onClick:l,children:d.t(`rangeSelector.cancel`)}),K(Pn,{variant:`primary`,onClick:()=>{c(p.filter(e=>{let t=f.sequenceNodesBuilder(e);return t&&t.length===1&&typeof t[0]!=`string`&&t[0].nodeType===I.REFERENCE}).map(e=>Qe(e)).map(e=>({...e,range:la(e.range)})))},children:d.t(`rangeSelector.confirm`)})]}),onClose:l,children:q(`div`,{ref:_,className:J(`-univer-mx-6 univer-max-h-60 univer-overflow-y-auto univer-px-6`,Hn),children:[p.map((e,t)=>q(`div`,{className:`univer-mb-2 univer-flex univer-items-center univer-gap-4`,children:[K(In,{className:J(`univer-w-full`,{"univer-border-primary-600":h===t}),placeholder:d.t(`rangeSelector.placeHolder`),onFocus:()=>g(t),value:e,onChange:e=>v(t,e)}),p.length>1&&K(Gn,{className:`univer-cursor-pointer`,onClick:()=>b(t)})]},t)),p.length<a&&K(`div`,{children:q(Pn,{variant:`link`,onClick:y,children:[K(Kn,{}),K(`span`,{children:d.t(`rangeSelector.addAnotherRange`)})]})})]})})}function da(e){return e.split(ot.COMMA).filter(e=>!!e).map(e=>Qe(e))}function fa(e){return e.map(e=>e.sheetName?ut(e.sheetName,e.range):ct(e.range)).join(ot.COMMA)}function pa(e){let[t,n]=G(null),{onVerify:r,selectorRef:i,unitId:a,subUnitId:o,maxRangeCount:s,supportAcrossSheet:c,keepSheetReference:l,autoFocus:u,onChange:d,onRangeSelectorDialogVisibleChange:f,onClickOutside:m,onFocusChange:h,forceShowDialogWhenSelectionChanged:g,hideEditor:_,resetRange:v}=e,[y,b]=G(u==null?!1:u),[S,C]=G(!1),[w,T]=G([]),E=z(x),O=z(Ct),{sequenceNodes:k}=oa(t,y,a,o),ee=Ti(k),A=z(p),te=B(()=>{t==null||t.setSelectionRanges([]),t==null||t.blur(),O.blur()}),ne=B(()=>{var e,n;te(),T(da((e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e)),C(!0)});return H(()=>{i&&(i.current={get editor(){return t},focus(){O.focus(t.getEditorId())},blur:te,verify:()=>ca(ee.current),showDialog:e=>{te(),T(e),C(!0)},hideDialog:()=>{T([]),C(!1)},getValue:()=>{var e,n;return(e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e}})},[te,t,O,i,ee]),H(()=>{var e,n;r==null||r(ca(k),(e=t==null||(n=t.getDocumentDataModel())==null?void 0:n.getPlainText())==null?``:e)},[k]),H(()=>{f==null||f(S)},[S]),H(()=>{if(S&&v)return()=>{let e={unitId:a,subUnitId:o,selections:v};A.executeCommand(Gt.id,e)}},[S]),q(Nn,{children:[_?null:K(Dt,{isSingle:!0,...e,onFocusChange:(e,t)=>{b(e),h==null||h(e,t)},editorRef:n,onClickOutside:()=>{b(!1),te(),m==null||m()},icon:K(Rn,{title:E.t(`rangeSelector.buttonTooltip`),placement:`bottom`,children:K(Jn,{className:`univer-cursor-pointer dark:!univer-text-gray-300`,onClick:ne})})}),K(ua,{initialValue:w,unitId:a,subUnitId:o,visible:S,maxRangeCount:s,onConfirm:e=>{let n=fa(e),r=D.newEmptyData();r.body.dataStream=n,t==null||t.replaceText(n,!1),d==null||d(r,n),C(!1),T([]),requestAnimationFrame(()=>{te()})},onClose:()=>{C(!1),T([])},supportAcrossSheet:c,keepSheetReference:l,onShowBySelection:e=>y||g?(T(e),C(!0),!1):!0})]})}const ma=()=>{var e,t;let n=V(z(vi).currentSelector$),r=W(null);return H(()=>{if(n){var e,t;return(e=r.current)==null||e.showDialog((t=n.initialValue)==null?[]:t),()=>{var e;(e=r.current)==null||e.hideDialog()}}},[n]),K(pa,{unitId:(e=n==null?void 0:n.unitId)==null?``:e,subUnitId:(t=n==null?void 0:n.subUnitId)==null?``:t,hideEditor:!0,selectorRef:r,onChange:(e,t)=>{var r;n==null||n.callback((r=t==null?void 0:t.split(`,`).map(e=>Qe(e)))==null?[]:r)}})};let ha=class extends C{constructor(e=kr,t,n,r,i){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=r,this._uiPartsService=i;let{menu:a,...o}=M(kr,this._config);a&&this._configService.setConfig(`menu`,a,{merge:!0}),this._configService.setConfig(Or,o,{merge:!0})}onStarting(){ue(this._injector,[[rr,{useClass:ir}],[vi],[gi],[Nr],[Vr],[Ur],[Tr],[_i]]),this._initUIPart()}onReady(){[[yi]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(A.UNIVER_SHEET,e))})}onRendered(){[[Mr]].forEach(e=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(A.UNIVER_SHEET,e))}),fe(this._injector,[[gi],[Nr],[Ur],[_i]])}onSteady(){this._injector.get(Tr)}_initUIPart(){let e=this._injector.get(mn);this.disposeWithMe(e.register(ke,pa)),this.disposeWithMe(e.register(ve,aa)),this.disposeWithMe(this._uiPartsService.registerComponent(pn.GLOBAL,()=>Tn(ma,this._injector)))}};Y(ha,`pluginName`,hr),Y(ha,`packageName`,Er),Y(ha,`version`,Dr),Y(ha,`type`,A.UNIVER_SHEET),ha=tr([c(fn),X(1,v(y)),X(2,jt),X(3,m),X(4,yn)],ha);export{nr as FORMULA_PROMPT_ACTIVATED,aa as FormulaEditor,Tr as FormulaReorderController,vi as GlobalRangeSelectorService,ar as HelpFunctionOperation,Z as InsertFunctionOperation,Q as MoreFunctionsOperation,pa as RangeSelector,yi as RefSelectionsRenderService,Cr as ReferenceAbsoluteOperation,wr as SearchFunctionOperation,Xn as SheetCopyFormulaOnlyCommand,Zn as SheetOnlyPasteFormulaCommand,ha as UniverSheetsFormulaUIPlugin};
|