@univerjs/sheets-formula-ui 0.6.10 → 0.7.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +60 -23
- package/lib/es/index.js +2277 -2486
- package/lib/index.css +1 -1
- package/lib/index.js +2277 -2486
- package/lib/types/common/selection.d.ts +1 -1
- package/lib/types/views/formula-editor/index.d.ts +2 -1
- package/lib/umd/index.js +60 -23
- package/package.json +15 -16
- package/lib/types/views/FormulaPromptContainer.d.ts +0 -16
- package/lib/types/views/prompt/help-function/HelpFunction.d.ts +0 -16
- package/lib/types/views/prompt/resize-scroll-observer.d.ts +0 -18
- package/lib/types/views/prompt/search-function/SearchFunction.d.ts +0 -16
- /package/lib/types/views/formula-editor/help-function/{help-hidden-tip.d.ts → HelpHiddenTip.d.ts} +0 -0
package/lib/cjs/index.js
CHANGED
|
@@ -1,28 +1,65 @@
|
|
|
1
|
-
"use strict";var ln=Object.defineProperty;var un=(e,t,n)=>t in e?ln(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var K=(e,t,n)=>un(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("@univerjs/core"),k=require("@univerjs/sheets-ui"),M=require("@univerjs/engine-formula"),B=require("rxjs"),z=require("@univerjs/docs-ui"),W=require("@univerjs/engine-render"),H=require("@univerjs/sheets"),Ne=require("@univerjs/sheets-formula"),a=require("@univerjs/ui"),C=require("react/jsx-runtime"),ne=require("@univerjs/design"),S=require("react"),Pt=require("@univerjs/docs"),dn=require("rxjs/operators"),tt={id:"sheet.command.paste-formula",type:l.CommandType.COMMAND,handler:async e=>e.get(l.ICommandService).executeCommand(k.SheetPasteCommand.id,{value:k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA})},De={id:"formula-ui.operation.select-editor-formula",type:l.CommandType.OPERATION,handler:(e,t)=>!0};var fn=Object.getOwnPropertyDescriptor,hn=(e,t,n,o)=>{for(var r=o>1?void 0:o?fn(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},mn=(e,t)=>(n,o)=>t(n,o,e);const wt="FORMULA_PROMPT_ACTIVATED",Ue=l.createIdentifier("formula-ui.prompt-service");let dt=class{constructor(e){K(this,"_search$",new B.Subject);K(this,"_help$",new B.Subject);K(this,"_navigate$",new B.Subject);K(this,"_accept$",new B.Subject);K(this,"_acceptFormulaName$",new B.Subject);K(this,"search$",this._search$.asObservable());K(this,"help$",this._help$.asObservable());K(this,"navigate$",this._navigate$.asObservable());K(this,"accept$",this._accept$.asObservable());K(this,"acceptFormulaName$",this._acceptFormulaName$.asObservable());K(this,"_searching",!1);K(this,"_helping",!1);K(this,"_sequenceNodes",[]);K(this,"_isLockedOnSelectionChangeRefString",!1);K(this,"_isLockedOnSelectionInsertRefString",!1);this._contextService=e}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(e){this._contextService.setContextValue(wt,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;const n=this._sequenceNodes[0];for(let o=0,r=this._sequenceNodes.length;o<r;o++){const s=this._sequenceNodes[o];if(typeof s=="string")t++;else{const{endIndex:i}=s;t=i}if(e<=t)return typeof n=="string"&&e!==0?o+1:o}return this._sequenceNodes.length}updateSequenceRef(e,t){const n=this._sequenceNodes[e];if(typeof n=="string"||n.nodeType!==M.sequenceNodeType.REFERENCE)return;const o=t.length-n.token.length,r={...n};r.token=t,r.endIndex+=o,this._sequenceNodes[e]=r;for(let s=e+1,i=this._sequenceNodes.length;s<i;s++){const c=this._sequenceNodes[s];if(typeof c=="string")continue;const d={...c};d.startIndex+=o,d.endIndex+=o,this._sequenceNodes[s]=d}}insertSequenceRef(e,t){const n=t.length,o=this.getCurrentSequenceNodeIndex(e);this._sequenceNodes.splice(o,0,{token:t,startIndex:e,endIndex:e+n-1,nodeType:M.sequenceNodeType.REFERENCE});for(let r=o+1,s=this._sequenceNodes.length;r<s;r++){const i=this._sequenceNodes[r];if(typeof i=="string")continue;const c={...i};c.startIndex+=n,c.endIndex+=n,this._sequenceNodes[r]=c}}insertSequenceString(e,t){const n=this.getCurrentSequenceNodeIndex(e),o=t.split("");this._sequenceNodes.splice(n,0,...o);const r=o.length;for(let s=n+r,i=this._sequenceNodes.length;s<i;s++){const c=this._sequenceNodes[s];if(typeof c=="string")continue;const d={...c};d.startIndex+=r,d.endIndex+=r,this._sequenceNodes[s]=d}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};dt=hn([mn(0,l.IContextService)],dt);const Lt={id:"formula-ui.operation.help-function",type:l.CommandType.OPERATION,handler:async(e,t)=>(e.get(Ue).help(t),!0)},nt={id:"formula-ui.operation.insert-function",type:l.CommandType.OPERATION,handler:async(e,t)=>{var I,_;const n=e.get(H.SheetsSelectionsService),o=e.get(z.IEditorService),r=n.getCurrentSelections();if(!r||!r.length)return!1;const s=H.getSheetCommandTarget(e.get(l.IUniverInstanceService));if(!s)return!1;const{worksheet:i,unitId:c,subUnitId:d}=s,h=i.getCellMatrix(),{value:g}=t,p=e.get(l.ICommandService);e.get(k.IEditorBridgeService);const f=[],m=[];let u=null,R=0,v=0,E="";if(r.length===1&&(Sn(r[0].range)||vn(r[0].range)&&Tt(h,r[0].range))){const{range:y,primary:T}=r[0],F=(I=T==null?void 0:T.actualRow)!=null?I:y.startRow,O=(_=T==null?void 0:T.actualColumn)!=null?_:y.startColumn;u=y,R=F,v=O;const A=bt(h,F,O);A&&(E=M.serializeRange(A))}else r.some(y=>{var O,A;const{range:T,primary:F}=y;if(Tt(h,T)){const P=(O=F==null?void 0:F.actualRow)!=null?O:T.startRow,x=(A=F==null?void 0:F.actualColumn)!=null?A:T.startColumn,L=bt(h,P,x);if(!L)return u=T,R=P,v=x,!0;const D=M.serializeRange(L),N=`=${g}(${D})`;f.push({range:T,primary:{row:P,column:x},formula:N})}else{const{startRow:P,startColumn:x,endRow:L,endColumn:D}=T;if(P===L){const N=Cn(h,P,D,i.getColumnCount()-1),b=N===D?D-1:D,w=M.serializeRange({startRow:P,endRow:L,startColumn:x,endColumn:b}),j=`=${g}(${w})`;m.push({range:T,primary:{row:P,column:N},formula:j})}else{let N=-1;for(let w=x;w<=D;w++){const j=In(h,w,L,i.getRowCount()-1);N=Math.max(N,j)}const b=N===L?L-1:L;for(let w=x;w<=D;w++){const j=M.serializeRange({startRow:P,endRow:b,startColumn:w,endColumn:w}),$=`=${g}(${j})`;m.push({range:T,primary:{row:N,column:w},formula:$})}}}return!1});if(u){const y=H.getCellAtRowCol(R,v,i),T={range:l.Rectangle.clone(u),primary:{startRow:y.startRow,startColumn:y.startColumn,endRow:y.endRow,endColumn:y.endColumn,actualRow:R,actualColumn:v,isMerged:y.isMerged,isMergedMainCell:y.startRow===R&&y.startColumn===v}},F={unitId:c,subUnitId:d,selections:[T]};await p.executeCommand(H.SetSelectionsOperation.id,F);const O=o.getEditor(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),A=o.getEditor(l.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);p.syncExecuteCommand(k.SetCellEditVisibleOperation.id,{visible:!0,unitId:c,eventType:W.DeviceInputEventType.Dblclick});const P=`=${g}(${E}`;O==null||O.replaceText(P),A==null||A.replaceText(P,!1)}return f.length===0&&m.length===0?!1:p.executeCommand(Ne.InsertFunctionCommand.id,{list:f,listOfRangeHasNumber:m})}};function bt(e,t,n){const o=gn(e,t,n);if(o!==t)return{startRow:o,endRow:t-1,startColumn:n,endColumn:n};const r=pn(e,t,n);return r!==n?{startRow:t,endRow:t,startColumn:r,endColumn:n-1}:null}function gn(e,t,n){let o=!1;if(t===0)return t;for(let r=t-1;r>=0;r--){const s=e.getValue(r,n);if(He(s)&&!o){if(r===0)return 0;o=!0}else{if(o&&!He(s))return r+1;if(o&&r===0)return 0}}return t}function pn(e,t,n){let o=!1;if(n===0)return n;for(let r=n-1;r>=0;r--){const s=e.getValue(t,r);if(He(s)&&!o){if(r===0)return 0;o=!0}else{if(o&&!He(s))return r+1;if(o&&r===0)return 0}}return n}function He(e){if(e!=null&&e.p){const t=e==null?void 0:e.p.body;if(t==null)return!1;const n=t.dataStream,r=n.substring(n.length-2,n.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?n.substring(0,n.length-2):n;return l.isRealNum(r)}return e&&(e.t===l.CellValueType.NUMBER||l.getCellValueType(e)===l.CellValueType.NUMBER)}function Sn(e){return e.startRow===e.endRow&&e.startColumn===e.endColumn}function vn(e){return e.startRow!==e.endRow&&e.startColumn!==e.endColumn}function Tt(e,t){for(let n=t.startRow;n<=t.endRow;n++)for(let o=t.startColumn;o<=t.endColumn;o++)if(He(e.getValue(n,o)))return!1;return!0}function Cn(e,t,n,o){for(let r=n;r<=o;r++)if(!e.getValue(t,r))return r;return o}function In(e,t,n,o){for(let r=n;r<=o;r++)if(!e.getValue(r,t))return r;return o}const kt="SHEET_FORMULA_UI_PLUGIN",$t=`${kt}_MORE_FUNCTIONS_COMPONENT`,rt={id:"formula-ui.operation.more-functions",type:l.CommandType.OPERATION,handler:async e=>(e.get(a.ISidebarService).open({header:{title:"formula.insert.tooltip"},children:{label:$t}}),!0)},mt={id:"formula-ui.operation.change-ref-to-absolute",type:l.CommandType.OPERATION,handler:async e=>!0},jt={id:"formula-ui.operation.search-function",type:l.CommandType.OPERATION,handler:async(e,t)=>(e.get(Ue).search(t),!0)},gt=(e,t,n=!0)=>{let o=-1;return e.reduce((r,s,i)=>{if(r.isFinish)return r;const c=r.currentIndex;if(typeof s!="string")r.currentIndex+=s.token.length;else{const d=s.length;r.currentIndex+=d}return(n?r.currentIndex===t:t>c&&t<=r.currentIndex)&&(o=i,r.isFinish=!0),r},{currentIndex:0,isFinish:!1}),o},Ht=(e,t)=>{const n=e[t];let o=-1;if(!n||typeof n=="string"||n.nodeType!==M.sequenceNodeType.REFERENCE)return-1;for(let r=0;r<=t;r++){const s=e[r];typeof s!="string"&&s.nodeType===M.sequenceNodeType.REFERENCE&&o++}return o};var ie=function(){return ie=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},ie.apply(this,arguments)},Rn=function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]]);return n},Ee=S.forwardRef(function(e,t){var n=e.icon,o=e.id,r=e.className,s=e.extend,i=Rn(e,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(o," ").concat(r||"").trim(),d=S.useRef("_".concat(yn()));return Ut(n,"".concat(o),{defIds:n.defIds,idSuffix:d.current},ie({ref:t,className:c},i),s)});function Ut(e,t,n,o,r){return S.createElement(e.tag,ie(ie({key:t},En(e,n,r)),o),(_n(e,n).children||[]).map(function(s,i){return Ut(s,"".concat(t,"-").concat(e.tag,"-").concat(i),n,void 0,r)}))}function En(e,t,n){var o=ie({},e.attrs);n!=null&&n.colorChannel1&&o.fill==="colorChannel1"&&(o.fill=n.colorChannel1),e.tag==="mask"&&o.id&&(o.id=o.id+t.idSuffix),Object.entries(o).forEach(function(s){var i=s[0],c=s[1];i==="mask"&&typeof c=="string"&&(o[i]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&o["xlink:href"]&&(o["xlink:href"]=o["xlink:href"]+t.idSuffix),Object.entries(o).forEach(function(s){var i=s[0],c=s[1];typeof c=="string"&&(o[i]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),o}function _n(e,t){var n,o=t.defIds;return!o||o.length===0?e:e.tag==="defs"&&(!((n=e.children)===null||n===void 0)&&n.length)?ie(ie({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&o&&o.indexOf(r.attrs.id)>-1?ie(ie({},r),{attrs:ie(ie({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function yn(){return Math.random().toString(36).substring(2,8)}Ee.displayName="UniverIcon";var bn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Wt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"check-mark-single",ref:t,icon:bn}))});Wt.displayName="CheckMarkSingle";var Tn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},ot=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"close-single",ref:t,icon:Tn}))});ot.displayName="CloseSingle";var xn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Vt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"delete-single",ref:t,icon:xn}))});Vt.displayName="DeleteSingle";var Fn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Bt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"details-single",ref:t,icon:Fn}))});Bt.displayName="DetailsSingle";var Mn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},Kt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"increase-single",ref:t,icon:Mn}))});Kt.displayName="IncreaseSingle";var Nn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},pt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"more-single",ref:t,icon:Nn}))});pt.displayName="MoreSingle";var Dn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6185 12.4423C12.5907 12.2749 12.7773 12.15 12.9343 12.2308L15.4242 13.5126C15.6102 13.6084 15.5544 13.8745 15.3439 13.8955L14.2456 14.184L13.4521 15.1286C13.3495 15.2939 13.085 15.2463 13.0534 15.0568L12.6185 12.4423Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1 3.6C1 2.16406 2.16406 1 3.6 1H12.3C13.7359 1 14.9 2.16406 14.9 3.6V5.81156C14.9003 5.81881 14.9004 5.82609 14.9004 5.8334C14.9004 5.84071 14.9003 5.84799 14.9 5.85524V10.045C14.9003 10.0522 14.9004 10.0595 14.9004 10.0668C14.9004 10.3982 14.6318 10.6668 14.3004 10.6668H11.1668C10.8907 10.6668 10.6668 10.8907 10.6668 11.1668V14.3C10.6668 14.6314 10.3982 14.9 10.0668 14.9L10.05 14.8998L3.6 14.9C2.16406 14.9 1 13.7359 1 12.3V3.6ZM13.2 5.2334C13.4761 5.2334 13.7 5.00954 13.7 4.7334V3.6C13.7 2.8268 13.0732 2.2 12.3 2.2H11.1668C10.8907 2.2 10.6668 2.42386 10.6668 2.7V4.7334C10.6668 5.00954 10.8907 5.2334 11.1668 5.2334H13.2ZM10.6668 6.9334C10.6668 6.65726 10.8907 6.4334 11.1668 6.4334H13.2C13.4761 6.4334 13.7 6.65726 13.7 6.9334V8.9668C13.7 9.24294 13.4761 9.4668 13.2 9.4668H11.1668C10.8907 9.4668 10.6668 9.24294 10.6668 8.9668V6.9334ZM8.9668 5.2334C9.24294 5.2334 9.4668 5.00954 9.4668 4.7334V2.7C9.4668 2.42386 9.24294 2.2 8.9668 2.2H6.9334C6.65726 2.2 6.4334 2.42386 6.4334 2.7V4.7334C6.4334 5.00954 6.65726 5.2334 6.9334 5.2334L8.9668 5.2334ZM6.4334 6.9334C6.4334 6.65726 6.65726 6.4334 6.9334 6.4334L8.9668 6.4334C9.24294 6.4334 9.4668 6.65726 9.4668 6.9334V8.9668C9.4668 9.24294 9.24294 9.4668 8.9668 9.4668L6.9334 9.4668C6.65726 9.4668 6.4334 9.24294 6.4334 8.9668V6.9334ZM4.7334 5.2334C5.00954 5.2334 5.2334 5.00954 5.2334 4.7334V2.7C5.2334 2.42386 5.00954 2.2 4.7334 2.2H3.6C2.8268 2.2 2.2 2.8268 2.2 3.6V4.7334C2.2 5.00954 2.42386 5.2334 2.7 5.2334H4.7334ZM2.2 6.9334C2.2 6.65726 2.42386 6.4334 2.7 6.4334H4.7334C5.00954 6.4334 5.2334 6.65725 5.2334 6.9334V8.9668C5.2334 9.24294 5.00954 9.4668 4.7334 9.4668H2.7C2.42386 9.4668 2.2 9.24294 2.2 8.9668V6.9334ZM5.2334 11.1668C5.2334 10.8907 5.00954 10.6668 4.7334 10.6668H2.7C2.42386 10.6668 2.2 10.8907 2.2 11.1668V12.3C2.2 13.0732 2.8268 13.7 3.6 13.7H4.7334C5.00954 13.7 5.2334 13.4761 5.2334 13.2V11.1668ZM9.4668 11.1668C9.4668 10.8907 9.24294 10.6668 8.9668 10.6668H6.9334C6.65726 10.6668 6.4334 10.8907 6.4334 11.1668V13.2C6.4334 13.4761 6.65726 13.7 6.9334 13.7H8.9668C9.24294 13.7 9.4668 13.4761 9.4668 13.2V11.1668Z",fillRule:"evenodd",clipRule:"evenodd"}}]},qt=S.forwardRef(function(e,t){return S.createElement(Ee,Object.assign({},e,{id:"select-range-single",ref:t,icon:Dn}))});qt.displayName="SelectRangeSingle";function On(e,t){return Object.keys(e).filter(n=>isNaN(Number(n))&&n!=="DefinedName").map(n=>({label:t.t(`formula.functionType.${n.toLocaleLowerCase()}`),value:`${e[n]}`}))}function St(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},...`}const An=(e,t=100)=>{S.useEffect(()=>{let n=null;const o=()=>{n===null&&(n=window.setTimeout(()=>{e(),n=null},t))};return window.addEventListener("scroll",o),window.addEventListener("resize",o),()=>{n!==null&&clearTimeout(n),window.removeEventListener("scroll",o),window.removeEventListener("resize",o)}},[e,t])};function Yt(e,t,n){const o=a.useDependency(z.IEditorService),r=S.useMemo(()=>new B.BehaviorSubject({left:-999,top:-999,right:-999,bottom:-999}),[]),s=a.useDependency(a.ISidebarService),i=a.useDependency(l.IUniverInstanceService),c=a.useEvent(()=>{var _;const d=o.getEditor(e);if(!d)return;const h=d.getBoundingClientRect(),{marginTop:g=0,marginBottom:p=0}=d.getDocumentData().documentStyle,f=d.getSkeleton();if(!f)return;const m=(_=f.getSkeletonData())==null?void 0:_.pages[0].height;let{left:u,top:R,right:v,bottom:E}=h;R=R+g,E=m?R+m:E-p;const I=r.getValue();if(!(I.left===u&&I.top===R&&I.right===v&&I.bottom===E))return r.next({left:u-1,right:v+1,top:R-1,bottom:E+1}),h});return S.useEffect(()=>{t&&c()},[e,o,i.unitAdded$,c,t,...n!=null?n:[]]),An(c),S.useEffect(()=>{const d=s.scrollEvent$.pipe(B.throttleTime(100)).subscribe(c);return()=>{d.unsubscribe()}},[]),[r,c]}const Oe=e=>{const t=S.useRef(e);return t.current=e,t},Pn=(e,t,n)=>{const o=a.useDependency(Ne.IDescriptionService),r=a.useDependency(M.LexerTreeBuilder),[s,i]=S.useState(),[c,d]=S.useState(-1),[h,g]=S.useState(!0),p=Oe(h),f=S.useRef(t);f.current=t;const m=()=>{i(void 0),d(-1),g(!1)};return S.useEffect(()=>{if(n&&e){const u=n.selectionChange$.pipe(B.debounceTime(50)).subscribe(v=>{if(v.textRanges.length===1){const[E]=v.textRanges;if(E.collapsed&&p.current){const I=r.getFunctionAndParameter(`${f.current}A`,E.startOffset-1);if(I){const{functionName:_,paramIndex:y}=I,T=o.getFunctionInfo(_);i(T),d(y);return}}}i(void 0),d(-1)}),R=n.selectionChange$.pipe(B.filter(v=>v.isEditing),B.filter(v=>v.textRanges.length===1),B.map(v=>v.textRanges[0].startOffset),B.distinctUntilChanged()).subscribe(()=>{g(!0)});return()=>{u.unsubscribe(),R.unsubscribe()}}},[n,e]),S.useEffect(()=>{e||m()},[e]),{functionInfo:s,paramIndex:c,reset:m}},wn=({onClick:e})=>C.jsx("div",{className:`
|
|
1
|
+
"use strict";var Xt=Object.defineProperty;var Jt=(e,t,n)=>t in e?Xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var K=(e,t,n)=>Jt(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@univerjs/core"),w=require("@univerjs/sheets-ui"),T=require("@univerjs/engine-formula"),H=require("rxjs"),X=require("@univerjs/docs-ui"),B=require("@univerjs/engine-render"),$=require("@univerjs/sheets"),ye=require("@univerjs/sheets-formula"),l=require("@univerjs/ui"),y=require("react/jsx-runtime"),J=require("@univerjs/design"),p=require("react"),Rt=require("@univerjs/docs"),Qt=require("rxjs/operators"),qe={id:"sheet.command.paste-formula",type:a.CommandType.COMMAND,handler:async e=>e.get(a.ICommandService).executeCommand(w.SheetPasteCommand.id,{value:w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA})},Ie={id:"formula-ui.operation.select-editor-formula",type:a.CommandType.OPERATION,handler:(e,t)=>!0};var en=Object.getOwnPropertyDescriptor,tn=(e,t,n,s)=>{for(var r=s>1?void 0:s?en(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},nn=(e,t)=>(n,s)=>t(n,s,e);const Et="FORMULA_PROMPT_ACTIVATED",rt=a.createIdentifier("formula-ui.prompt-service");let et=class{constructor(e){K(this,"_search$",new H.Subject);K(this,"_help$",new H.Subject);K(this,"_navigate$",new H.Subject);K(this,"_accept$",new H.Subject);K(this,"_acceptFormulaName$",new H.Subject);K(this,"search$",this._search$.asObservable());K(this,"help$",this._help$.asObservable());K(this,"navigate$",this._navigate$.asObservable());K(this,"accept$",this._accept$.asObservable());K(this,"acceptFormulaName$",this._acceptFormulaName$.asObservable());K(this,"_searching",!1);K(this,"_helping",!1);K(this,"_sequenceNodes",[]);K(this,"_isLockedOnSelectionChangeRefString",!1);K(this,"_isLockedOnSelectionInsertRefString",!1);this._contextService=e}dispose(){this._search$.complete(),this._help$.complete(),this._navigate$.complete(),this._accept$.complete(),this._acceptFormulaName$.complete(),this._sequenceNodes=[]}search(e){this._contextService.setContextValue(Et,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;const n=this._sequenceNodes[0];for(let s=0,r=this._sequenceNodes.length;s<r;s++){const o=this._sequenceNodes[s];if(typeof o=="string")t++;else{const{endIndex:i}=o;t=i}if(e<=t)return typeof n=="string"&&e!==0?s+1:s}return this._sequenceNodes.length}updateSequenceRef(e,t){const n=this._sequenceNodes[e];if(typeof n=="string"||n.nodeType!==T.sequenceNodeType.REFERENCE)return;const s=t.length-n.token.length,r={...n};r.token=t,r.endIndex+=s,this._sequenceNodes[e]=r;for(let o=e+1,i=this._sequenceNodes.length;o<i;o++){const c=this._sequenceNodes[o];if(typeof c=="string")continue;const d={...c};d.startIndex+=s,d.endIndex+=s,this._sequenceNodes[o]=d}}insertSequenceRef(e,t){const n=t.length,s=this.getCurrentSequenceNodeIndex(e);this._sequenceNodes.splice(s,0,{token:t,startIndex:e,endIndex:e+n-1,nodeType:T.sequenceNodeType.REFERENCE});for(let r=s+1,o=this._sequenceNodes.length;r<o;r++){const i=this._sequenceNodes[r];if(typeof i=="string")continue;const c={...i};c.startIndex+=n,c.endIndex+=n,this._sequenceNodes[r]=c}}insertSequenceString(e,t){const n=this.getCurrentSequenceNodeIndex(e),s=t.split("");this._sequenceNodes.splice(n,0,...s);const r=s.length;for(let o=n+r,i=this._sequenceNodes.length;o<i;o++){const c=this._sequenceNodes[o];if(typeof c=="string")continue;const d={...c};d.startIndex+=r,d.endIndex+=r,this._sequenceNodes[o]=d}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};et=tn([nn(0,a.IContextService)],et);const yt={id:"formula-ui.operation.help-function",type:a.CommandType.OPERATION,handler:async(e,t)=>(e.get(rt).help(t),!0)},Ye={id:"formula-ui.operation.insert-function",type:a.CommandType.OPERATION,handler:async(e,t)=>{var R,I;const n=e.get($.SheetsSelectionsService),s=e.get(X.IEditorService),r=n.getCurrentSelections();if(!r||!r.length)return!1;const o=$.getSheetCommandTarget(e.get(a.IUniverInstanceService));if(!o)return!1;const{worksheet:i,unitId:c,subUnitId:d}=o,f=i.getCellMatrix(),{value:m}=t,S=e.get(a.ICommandService);e.get(w.IEditorBridgeService);const h=[],g=[];let u=null,_=0,v=0,C="";if(r.length===1&&(on(r[0].range)||cn(r[0].range)&>(f,r[0].range))){const{range:E,primary:b}=r[0],M=(R=b==null?void 0:b.actualRow)!=null?R:E.startRow,F=(I=b==null?void 0:b.actualColumn)!=null?I:E.startColumn;u=E,_=M,v=F;const L=ft(f,M,F);L&&(C=T.serializeRange(L))}else r.some(E=>{var F,L;const{range:b,primary:M}=E;if(gt(f,b)){const P=(F=M==null?void 0:M.actualRow)!=null?F:b.startRow,A=(L=M==null?void 0:M.actualColumn)!=null?L:b.startColumn,j=ft(f,P,A);if(!j)return u=b,_=P,v=A,!0;const D=T.serializeRange(j),O=`=${m}(${D})`;h.push({range:b,primary:{row:P,column:A},formula:O})}else{const{startRow:P,startColumn:A,endRow:j,endColumn:D}=b;if(P===j){const O=an(f,P,D,i.getColumnCount()-1),x=O===D?D-1:D,N=T.serializeRange({startRow:P,endRow:j,startColumn:A,endColumn:x}),k=`=${m}(${N})`;g.push({range:b,primary:{row:P,column:O},formula:k})}else{let O=-1;for(let N=A;N<=D;N++){const k=ln(f,N,j,i.getRowCount()-1);O=Math.max(O,k)}const x=O===j?j-1:j;for(let N=A;N<=D;N++){const k=T.serializeRange({startRow:P,endRow:x,startColumn:N,endColumn:N}),U=`=${m}(${k})`;g.push({range:b,primary:{row:O,column:N},formula:U})}}}return!1});if(u){const E=$.getCellAtRowCol(_,v,i),b={range:a.Rectangle.clone(u),primary:{startRow:E.startRow,startColumn:E.startColumn,endRow:E.endRow,endColumn:E.endColumn,actualRow:_,actualColumn:v,isMerged:E.isMerged,isMergedMainCell:E.startRow===_&&E.startColumn===v}},M={unitId:c,subUnitId:d,selections:[b]};await S.executeCommand($.SetSelectionsOperation.id,M);const F=s.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),L=s.getEditor(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);S.syncExecuteCommand(w.SetCellEditVisibleOperation.id,{visible:!0,unitId:c,eventType:B.DeviceInputEventType.Dblclick});const P=`=${m}(${C}`;F==null||F.replaceText(P),L==null||L.replaceText(P,!1)}return h.length===0&&g.length===0?!1:S.executeCommand(ye.InsertFunctionCommand.id,{list:h,listOfRangeHasNumber:g})}};function ft(e,t,n){const s=rn(e,t,n);if(s!==t)return{startRow:s,endRow:t-1,startColumn:n,endColumn:n};const r=sn(e,t,n);return r!==n?{startRow:t,endRow:t,startColumn:r,endColumn:n-1}:null}function rn(e,t,n){let s=!1;if(t===0)return t;for(let r=t-1;r>=0;r--){const o=e.getValue(r,n);if(Fe(o)&&!s){if(r===0)return 0;s=!0}else{if(s&&!Fe(o))return r+1;if(s&&r===0)return 0}}return t}function sn(e,t,n){let s=!1;if(n===0)return n;for(let r=n-1;r>=0;r--){const o=e.getValue(t,r);if(Fe(o)&&!s){if(r===0)return 0;s=!0}else{if(s&&!Fe(o))return r+1;if(s&&r===0)return 0}}return n}function Fe(e){if(e!=null&&e.p){const t=e==null?void 0:e.p.body;if(t==null)return!1;const n=t.dataStream,r=n.substring(n.length-2,n.length)===a.DEFAULT_EMPTY_DOCUMENT_VALUE?n.substring(0,n.length-2):n;return a.isRealNum(r)}return e&&(e.t===a.CellValueType.NUMBER||a.getCellValueType(e)===a.CellValueType.NUMBER)}function on(e){return e.startRow===e.endRow&&e.startColumn===e.endColumn}function cn(e){return e.startRow!==e.endRow&&e.startColumn!==e.endColumn}function gt(e,t){for(let n=t.startRow;n<=t.endRow;n++)for(let s=t.startColumn;s<=t.endColumn;s++)if(Fe(e.getValue(n,s)))return!1;return!0}function an(e,t,n,s){for(let r=n;r<=s;r++)if(!e.getValue(t,r))return r;return s}function ln(e,t,n,s){for(let r=n;r<=s;r++)if(!e.getValue(r,t))return r;return s}const It="SHEET_FORMULA_UI_PLUGIN",bt=`${It}_MORE_FUNCTIONS_COMPONENT`,ze={id:"formula-ui.operation.more-functions",type:a.CommandType.OPERATION,handler:async e=>(e.get(l.ISidebarService).open({header:{title:"formula.insert.tooltip"},children:{label:bt}}),!0)},st={id:"formula-ui.operation.change-ref-to-absolute",type:a.CommandType.OPERATION,handler:async e=>!0},Tt={id:"formula-ui.operation.search-function",type:a.CommandType.OPERATION,handler:async(e,t)=>(e.get(rt).search(t),!0)},ot=(e,t,n=!0)=>{let s=-1;return e.reduce((r,o,i)=>{if(r.isFinish)return r;const c=r.currentIndex;if(typeof o!="string")r.currentIndex+=o.token.length;else{const d=o.length;r.currentIndex+=d}return(n?r.currentIndex===t:t>c&&t<=r.currentIndex)&&(s=i,r.isFinish=!0),r},{currentIndex:0,isFinish:!1}),s},xt=(e,t)=>{const n=e[t];let s=-1;if(!n||typeof n=="string"||n.nodeType!==T.sequenceNodeType.REFERENCE)return-1;for(let r=0;r<=t;r++){const o=e[r];typeof o!="string"&&o.nodeType===T.sequenceNodeType.REFERENCE&&s++}return s};var se=function(){return se=Object.assign||function(e){for(var t,n=1,s=arguments.length;n<s;n++){t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},se.apply(this,arguments)},un=function(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(n[s[r]]=e[s[r]]);return n},be=p.forwardRef(function(e,t){var n=e.icon,s=e.id,r=e.className,o=e.extend,i=un(e,["icon","id","className","extend"]),c="univerjs-icon univerjs-icon-".concat(s," ").concat(r||"").trim(),d=p.useRef("_".concat(fn()));return Mt(n,"".concat(s),{defIds:n.defIds,idSuffix:d.current},se({ref:t,className:c},i),o)});function Mt(e,t,n,s,r){return p.createElement(e.tag,se(se({key:t},dn(e,n,r)),s),(hn(e,n).children||[]).map(function(o,i){return Mt(o,"".concat(t,"-").concat(e.tag,"-").concat(i),n,void 0,r)}))}function dn(e,t,n){var s=se({},e.attrs);n!=null&&n.colorChannel1&&s.fill==="colorChannel1"&&(s.fill=n.colorChannel1),e.tag==="mask"&&s.id&&(s.id=s.id+t.idSuffix),Object.entries(s).forEach(function(o){var i=o[0],c=o[1];i==="mask"&&typeof c=="string"&&(s[i]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))});var r=t.defIds;return!r||r.length===0||(e.tag==="use"&&s["xlink:href"]&&(s["xlink:href"]=s["xlink:href"]+t.idSuffix),Object.entries(s).forEach(function(o){var i=o[0],c=o[1];typeof c=="string"&&(s[i]=c.replace(/url\(#(.*)\)/,"url(#$1".concat(t.idSuffix,")")))})),s}function hn(e,t){var n,s=t.defIds;return!s||s.length===0?e:e.tag==="defs"&&(!((n=e.children)===null||n===void 0)&&n.length)?se(se({},e),{children:e.children.map(function(r){return typeof r.attrs.id=="string"&&s&&s.indexOf(r.attrs.id)>-1?se(se({},r),{attrs:se(se({},r.attrs),{id:r.attrs.id+t.idSuffix})}):r})}):e}function fn(){return Math.random().toString(36).substring(2,8)}be.displayName="UniverIcon";var gn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Ot=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"check-mark-single",ref:t,icon:gn}))});Ot.displayName="CheckMarkSingle";var mn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},Nt=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"close-single",ref:t,icon:mn}))});Nt.displayName="CloseSingle";var Sn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.3313 1.4667C5.3313 1.13533 5.59993.866699 5.9313.866699H10.069C10.4004.866699 10.669 1.13533 10.669 1.4667 10.669 1.79807 10.4004 2.0667 10.069 2.0667H5.9313C5.59993 2.0667 5.3313 1.79807 5.3313 1.4667zM1.09985 3.64443C1.09985 3.31306 1.36848 3.04443 1.69985 3.04443H14.2999C14.6312 3.04443 14.8999 3.31306 14.8999 3.64443 14.8999 3.9758 14.6312 4.24443 14.2999 4.24443H1.69985C1.36848 4.24443 1.09985 3.9758 1.09985 3.64443zM6.12398 8.30171C6.35829 8.0674 6.73819 8.0674 6.97251 8.30171L8.00007 9.32928 9.02764 8.30171C9.26195 8.0674 9.64185 8.0674 9.87617 8.30171 10.1105 8.53603 10.1105 8.91593 9.87617 9.15024L8.8486 10.1778 9.87617 11.2054C10.1105 11.4397 10.1105 11.8196 9.87617 12.0539 9.64185 12.2882 9.26195 12.2882 9.02764 12.0539L8.00007 11.0263 6.97251 12.0539C6.73819 12.2882 6.35829 12.2882 6.12398 12.0539 5.88966 11.8196 5.88966 11.4397 6.12398 11.2054L7.15154 10.1778 6.12398 9.15024C5.88966 8.91593 5.88966 8.53603 6.12398 8.30171z"}},{tag:"path",attrs:{fill:"currentColor",d:"M4.75332 5.22217C3.86966 5.22217 3.15332 5.93851 3.15332 6.82217V12.5331C3.15332 13.9691 4.31738 15.1332 5.75332 15.1332H10.2465C11.6825 15.1332 12.8465 13.9691 12.8465 12.5331V6.82217C12.8465 5.93851 12.1302 5.22217 11.2465 5.22217H4.75332ZM4.35332 6.82217C4.35332 6.60125 4.53241 6.42217 4.75332 6.42217H11.2465C11.4674 6.42217 11.6465 6.60125 11.6465 6.82217V12.5331C11.6465 13.3063 11.0197 13.9332 10.2465 13.9332H5.75332C4.98012 13.9332 4.35332 13.3063 4.35332 12.5331V6.82217Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Dt=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"delete-single",ref:t,icon:Sn}))});Dt.displayName="DeleteSingle";var vn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.6 1.99991C8.60001 1.66854 8.33138 1.39991 8.00001 1.3999C7.66864 1.3999 7.40001 1.66853 7.4 1.9999L7.39996 7.3999H1.9999C1.66853 7.3999 1.3999 7.66853 1.3999 7.9999C1.3999 8.33127 1.66853 8.5999 1.9999 8.5999H7.39995L7.3999 13.9999C7.3999 14.3313 7.66853 14.5999 7.9999 14.5999C8.33127 14.5999 8.5999 14.3313 8.5999 13.9999L8.59995 8.5999H13.9999C14.3313 8.5999 14.5999 8.33127 14.5999 7.9999C14.5999 7.66853 14.3313 7.3999 13.9999 7.3999H8.59996L8.6 1.99991Z"}}]},At=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"increase-single",ref:t,icon:vn}))});At.displayName="IncreaseSingle";var pn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},wt=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"more-single",ref:t,icon:pn}))});wt.displayName="MoreSingle";var Cn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12.6185 12.4423C12.5907 12.2749 12.7773 12.15 12.9343 12.2308L15.4242 13.5126C15.6102 13.6084 15.5544 13.8745 15.3439 13.8955L14.2456 14.184L13.4521 15.1286C13.3495 15.2939 13.085 15.2463 13.0534 15.0568L12.6185 12.4423Z"}},{tag:"path",attrs:{fill:"currentColor",d:"M1 3.6C1 2.16406 2.16406 1 3.6 1H12.3C13.7359 1 14.9 2.16406 14.9 3.6V5.81156C14.9003 5.81881 14.9004 5.82609 14.9004 5.8334C14.9004 5.84071 14.9003 5.84799 14.9 5.85524V10.045C14.9003 10.0522 14.9004 10.0595 14.9004 10.0668C14.9004 10.3982 14.6318 10.6668 14.3004 10.6668H11.1668C10.8907 10.6668 10.6668 10.8907 10.6668 11.1668V14.3C10.6668 14.6314 10.3982 14.9 10.0668 14.9L10.05 14.8998L3.6 14.9C2.16406 14.9 1 13.7359 1 12.3V3.6ZM13.2 5.2334C13.4761 5.2334 13.7 5.00954 13.7 4.7334V3.6C13.7 2.8268 13.0732 2.2 12.3 2.2H11.1668C10.8907 2.2 10.6668 2.42386 10.6668 2.7V4.7334C10.6668 5.00954 10.8907 5.2334 11.1668 5.2334H13.2ZM10.6668 6.9334C10.6668 6.65726 10.8907 6.4334 11.1668 6.4334H13.2C13.4761 6.4334 13.7 6.65726 13.7 6.9334V8.9668C13.7 9.24294 13.4761 9.4668 13.2 9.4668H11.1668C10.8907 9.4668 10.6668 9.24294 10.6668 8.9668V6.9334ZM8.9668 5.2334C9.24294 5.2334 9.4668 5.00954 9.4668 4.7334V2.7C9.4668 2.42386 9.24294 2.2 8.9668 2.2H6.9334C6.65726 2.2 6.4334 2.42386 6.4334 2.7V4.7334C6.4334 5.00954 6.65726 5.2334 6.9334 5.2334L8.9668 5.2334ZM6.4334 6.9334C6.4334 6.65726 6.65726 6.4334 6.9334 6.4334L8.9668 6.4334C9.24294 6.4334 9.4668 6.65726 9.4668 6.9334V8.9668C9.4668 9.24294 9.24294 9.4668 8.9668 9.4668L6.9334 9.4668C6.65726 9.4668 6.4334 9.24294 6.4334 8.9668V6.9334ZM4.7334 5.2334C5.00954 5.2334 5.2334 5.00954 5.2334 4.7334V2.7C5.2334 2.42386 5.00954 2.2 4.7334 2.2H3.6C2.8268 2.2 2.2 2.8268 2.2 3.6V4.7334C2.2 5.00954 2.42386 5.2334 2.7 5.2334H4.7334ZM2.2 6.9334C2.2 6.65726 2.42386 6.4334 2.7 6.4334H4.7334C5.00954 6.4334 5.2334 6.65725 5.2334 6.9334V8.9668C5.2334 9.24294 5.00954 9.4668 4.7334 9.4668H2.7C2.42386 9.4668 2.2 9.24294 2.2 8.9668V6.9334ZM5.2334 11.1668C5.2334 10.8907 5.00954 10.6668 4.7334 10.6668H2.7C2.42386 10.6668 2.2 10.8907 2.2 11.1668V12.3C2.2 13.0732 2.8268 13.7 3.6 13.7H4.7334C5.00954 13.7 5.2334 13.4761 5.2334 13.2V11.1668ZM9.4668 11.1668C9.4668 10.8907 9.24294 10.6668 8.9668 10.6668H6.9334C6.65726 10.6668 6.4334 10.8907 6.4334 11.1668V13.2C6.4334 13.4761 6.65726 13.7 6.9334 13.7H8.9668C9.24294 13.7 9.4668 13.4761 9.4668 13.2V11.1668Z",fillRule:"evenodd",clipRule:"evenodd"}}]},Ft=p.forwardRef(function(e,t){return p.createElement(be,Object.assign({},e,{id:"select-range-single",ref:t,icon:Cn}))});Ft.displayName="SelectRangeSingle";function _n(e,t){return Object.keys(e).filter(n=>isNaN(Number(n))&&n!=="DefinedName").map(n=>({label:t.t(`formula.functionType.${n.toLocaleLowerCase()}`),value:`${e[n]}`}))}function kt(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},...`}const Rn=(e,t=100)=>{p.useEffect(()=>{let n=null;const s=()=>{n===null&&(n=window.setTimeout(()=>{e(),n=null},t))};return window.addEventListener("scroll",s),window.addEventListener("resize",s),()=>{n!==null&&clearTimeout(n),window.removeEventListener("scroll",s),window.removeEventListener("resize",s)}},[e,t])};function Lt(e,t,n){const s=l.useDependency(X.IEditorService),r=p.useMemo(()=>new H.BehaviorSubject({left:-999,top:-999,right:-999,bottom:-999}),[]),o=l.useDependency(l.ISidebarService),i=l.useDependency(a.IUniverInstanceService),c=l.useEvent(()=>{var I;const d=s.getEditor(e);if(!d)return;const f=d.getBoundingClientRect(),{marginTop:m=0,marginBottom:S=0}=d.getDocumentData().documentStyle,h=d.getSkeleton();if(!h)return;const g=(I=h.getSkeletonData())==null?void 0:I.pages[0].height;let{left:u,top:_,right:v,bottom:C}=f;_=_+m,C=g?_+g:C-S;const R=r.getValue();if(!(R.left===u&&R.top===_&&R.right===v&&R.bottom===C))return r.next({left:u-1,right:v+1,top:_-1,bottom:C+1}),f});return p.useEffect(()=>{t&&c()},[e,s,i.unitAdded$,c,t,...n!=null?n:[]]),Rn(c),p.useEffect(()=>{const d=o.scrollEvent$.pipe(H.throttleTime(100)).subscribe(c);return()=>{d.unsubscribe()}},[]),[r,c]}const Te=e=>{const t=p.useRef(e);return t.current=e,t},En=(e,t,n)=>{const s=l.useDependency(ye.IDescriptionService),r=l.useDependency(T.LexerTreeBuilder),[o,i]=p.useState(),[c,d]=p.useState(-1),[f,m]=p.useState(!0),S=Te(f),h=p.useRef(t);h.current=t;const g=()=>{i(void 0),d(-1),m(!1)};return p.useEffect(()=>{if(n&&e){const u=n.selectionChange$.pipe(H.debounceTime(50)).subscribe(v=>{if(v.textRanges.length===1){const[C]=v.textRanges;if(C.collapsed&&S.current){const R=r.getFunctionAndParameter(`${h.current}A`,C.startOffset-1);if(R){const{functionName:I,paramIndex:E}=R,b=s.getFunctionInfo(I);i(b),d(E);return}}}i(void 0),d(-1)}),_=n.selectionChange$.pipe(H.filter(v=>v.isEditing),H.filter(v=>v.textRanges.length===1),H.map(v=>v.textRanges[0].startOffset),H.distinctUntilChanged()).subscribe(()=>{m(!0)});return()=>{u.unsubscribe(),_.unsubscribe()}}},[n,e]),p.useEffect(()=>{e||g()},[e]),{functionInfo:o,paramIndex:c,reset:g}},yn=({onClick:e})=>y.jsx("div",{className:`
|
|
2
2
|
univer-z-[15] univer-box-border univer-h-[18px] univer-cursor-pointer univer-overflow-visible
|
|
3
3
|
univer-whitespace-nowrap univer-rounded-l univer-border univer-border-r-0 univer-border-[#5790f6]
|
|
4
4
|
univer-bg-[#1a73e8] univer-p-0.5 univer-text-[11px] univer-font-bold univer-leading-[13px]
|
|
5
5
|
univer-text-white
|
|
6
|
-
`,onClick:e,children:"?"}),
|
|
7
|
-
|
|
6
|
+
`,onClick:e,children:"?"}),Je=({className:e,title:t,value:n})=>y.jsxs("div",{className:"univer-my-2",children:[y.jsx("div",{className:`
|
|
7
|
+
univer-mb-2 univer-text-[13px] univer-font-medium univer-text-gray-900
|
|
8
8
|
${e}
|
|
9
|
-
`,children:t}),
|
|
10
|
-
`,d=Math.max(c.length-2,0);e.setSelectionRanges([{startOffset:d,endOffset:d}])}else e.setSelectionRanges(i)}})};var Qn=Object.getOwnPropertyDescriptor,er=(e,t,n,o)=>{for(var r=o>1?void 0:o?Qn(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Pe=(e,t)=>(n,o)=>t(n,o,e);exports.RefSelectionsRenderService=class extends k.BaseSelectionRenderService{constructor(n,o,r,s,i,c,d){super(o,r,s,i,c);K(this,"_workbookSelections");K(this,"_eventDisposables");this._context=n,this._contextService=c,this._refSelectionsService=d,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(tr(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(n){this._remainLastEnabled=n}setSkipLastEnabled(n){this._skipLastEnabled=n}clearLastSelection(){const n=this._selectionControls[this._selectionControls.length-1];n&&(n.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),l.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var n;(n=this._eventDisposables)==null||n.dispose(),this._eventDisposables=null}disableSelectionChanging(){this._disableSelectionChanging()}_initCanvasEventListeners(){const n=this._getSheetObject(),{spreadsheetRowHeader:o,spreadsheetColumnHeader:r,spreadsheet:s,spreadsheetLeftTopPlaceholder:i}=n,{scene:c}=this._context,d=new l.DisposableCollection;return d.add(s==null?void 0:s.onPointerDown$.subscribeEvent((h,g)=>{this.inRefSelectionMode()&&(this._onPointerDown(h,s.zIndex+1,l.RANGE_TYPE.NORMAL,this._getActiveViewport(h)),h.button!==2&&g.stopPropagation())})),d.add(o==null?void 0:o.onPointerDown$.subscribeEvent((h,g)=>{if(!this.inRefSelectionMode())return;const p=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:f}=k.getCoordByOffset(h.offsetX,h.offsetY,c,p);k.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),f,l.RANGE_TYPE.ROW)||(this._onPointerDown(h,(s.zIndex||1)+1,l.RANGE_TYPE.ROW,this._getActiveViewport(h),W.ScrollTimerType.Y),h.button!==2&&g.stopPropagation())})),d.add(r==null?void 0:r.onPointerDown$.subscribeEvent((h,g)=>{if(!this.inRefSelectionMode())return;const p=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:f}=k.getCoordByOffset(h.offsetX,h.offsetY,c,p);k.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),f,l.RANGE_TYPE.COLUMN)||(this._onPointerDown(h,(s.zIndex||1)+1,l.RANGE_TYPE.COLUMN,this._getActiveViewport(h),W.ScrollTimerType.X),h.button!==2&&g.stopPropagation())})),d.add(i==null?void 0:i.onPointerDown$.subscribeEvent((h,g)=>{if(this._reset(),!this.inRefSelectionMode())return;const p=this._sheetSkeletonManagerService.getCurrent().skeleton,f=k.getAllSelection(p);this._addSelectionControlByModelData(f),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const m=c.onPointerUp$.subscribeEvent(()=>{m.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});h.button!==2&&g.stopPropagation()})),d}_addSelectionControlByModelData(n){var c;const o=this._skeleton,r=(c=n.style)!=null?c:k.genNormalSelectionStyle(this._themeService),s=this._scene;return n.style=r,this.newSelectionControl(s,o,n)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(n=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(n||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(n=>{this._updateSelections(n,H.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(n=>{this._updateSelections(n,H.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(n=>{this._updateSelections(n,H.SelectionMoveType.MOVE_END)}))}_updateSelections(n,o){const s=this._context.unit.getActiveSheet().getSheetId();n.length!==0&&this._workbookSelections.setSelections(s,n.map(i=>H.convertSelectionDataToRange(i)),o)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{if(!n)return;const{skeleton:o}=n,{scene:r}=this._context,s=r.getViewport(W.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==o.worksheet.getSheetId()&&this._reset(),this._changeRuntime(o,r,s);const i=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(i)}))}_getActiveViewport(n){const o=this._getSheetObject();return o==null?void 0:o.scene.getActiveViewportByCoord(W.Vector2.FromArray([n.offsetX,n.offsetY]))}_getSheetObject(){return k.getSheetObject(this._context.unit,this._context)}_onPointerDown(n,o=0,r=l.RANGE_TYPE.NORMAL,s,i=W.ScrollTimerType.ALL){var L;this._rangeType=r;const c=this._skeleton,d=this._scene;if(!d||!c)return;s&&(this._activeViewport=s);const{offsetX:h,offsetY:g}=n,p=d.getViewport(W.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!p)return;const f=d.getCoordRelativeToViewport(W.Vector2.FromArray([h,g])),{x:m,y:u}=f;this._startViewportPosX=m,this._startViewportPosY=u;const R=d.getScrollXYInfoByViewport(f),{scaleX:v,scaleY:E}=d.getAncestorScale(),I=this._skeleton.getCellByOffset(m,u,v,E,R);if(!I)return;switch(r){case l.RANGE_TYPE.NORMAL:break;case l.RANGE_TYPE.ROW:I.startColumn=0,I.endColumn=this._skeleton.getColumnCount()-1;break;case l.RANGE_TYPE.COLUMN:I.startRow=0,I.endRow=this._skeleton.getRowCount()-1;break;case l.RANGE_TYPE.ALL:I.startRow=0,I.startColumn=0,I.endRow=this._skeleton.getRowCount()-1,I.endColumn=this._skeleton.getColumnCount()-1}const _={range:I,primary:I,style:null};_.range.rangeType=r;const y=k.attachSelectionWithCoord(_,this._skeleton);this._startRangeWhenPointerDown={...y.rangeWithCoord};const T={...y.rangeWithCoord,rangeType:r};let F=this.getActiveSelectionControl();const O=this.getSelectionControls();for(const D of O){if(n.button===2&&l.Rectangle.contains(D.model,T)){F=D;return}if(D.model.isEqual(T)){F=D;break}}this._checkClearPreviousControls(n);const A=F==null?void 0:F.model.currentCell,P=n.shiftKey&&A,x=this._remainLastEnabled&&!n.ctrlKey&&!n.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;P&&A?this._makeSelectionByTwoCells(A,T,c,r,F):x&&F?F.updateRangeBySelectionWithCoord(y):F=this.newSelectionControl(d,c,_);for(let D=0;D<this.getSelectionControls().length-1;D++)this.getSelectionControls()[D].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),d.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(L=d.getTransformer())==null||L.clearSelectedObjects(),this._setupPointerMoveListener(p,F,r,i,m,u),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var D;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(D=this._escapeShortcutDisposable)==null||D.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(n,o,r){const s=this.getSelectionControls().length,{rowHeaderWidth:i,columnHeaderHeight:c}=o,d=new k.SelectionControl(n,s,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:i,columnHeaderHeight:c}),h=k.attachSelectionWithCoord(r,o);return d.updateRangeBySelectionWithCoord(h),this._selectionControls.push(d),d.setControlExtension({skeleton:o,scene:n,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),d}};exports.RefSelectionsRenderService=er([Pe(1,l.Inject(l.Injector)),Pe(2,l.Inject(l.ThemeService)),Pe(3,a.IShortcutService),Pe(4,l.Inject(k.SheetSkeletonManagerService)),Pe(5,l.IContextService),Pe(6,H.IRefSelectionsService)],exports.RefSelectionsRenderService);function tr(e){const t=k.genNormalSelectionStyle(e);return t.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},t}function nr(e){var r,s;const n=e.get(l.IUniverInstanceService).getCurrentUniverDocInstance();return n!=null&&n.getBody()?{dataStream:(s=(r=n.getBody())==null?void 0:r.dataStream)!=null?s:"",offset:0}:void 0}var Re=(e=>(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))(Re||{});function rr(e){var O;const{editorId:t,isFocus:n,disableOnClick:o,unitId:r,subUnitId:s}=e,i=a.useDependency(W.IRenderManagerService),c=a.useDependency(l.IUniverInstanceService),d=i.getRenderById(r),h=i.getRenderById(t),g=h==null?void 0:h.with(z.DocSelectionRenderService),p=a.useDependency(Pt.DocSelectionManagerService),f=a.useDependency(l.Injector),[m,u]=S.useState(0),R=a.useDependency(M.LexerTreeBuilder),v=S.useRef(!0),E=d==null?void 0:d.with(exports.RefSelectionsRenderService),I=Oe(m),_=c.getUnit(r,l.UniverInstanceType.UNIVER_SHEET),y=_==null?void 0:_.getSheetBySheetId(s),T=a.useEvent(A=>{E&&E.setSkipLastEnabled(A===1||A===3),I.current=A,u(A)}),F=a.useEvent(()=>{var q,G;if(!_)return;const A=_.getActiveSheet(),P=g==null?void 0:g.getActiveTextRange(),x=P!=null&&P.collapsed?P.startOffset:-1,L=nr(f);if(!L)return;const D=(q=L==null?void 0:L.dataStream)==null?void 0:q.slice(0,-2),N=((G=R.sequenceNodesBuilder(D))!=null?G:[]).map(V=>typeof V=="object"?V.nodeType===M.sequenceNodeType.REFERENCE?{...V,range:M.deserializeRangeWithSheetWithCache(V.token)}:{...V,range:void 0}:V),b=D[x-1],w=D[x],j=N.find(V=>typeof V=="object"&&V.nodeType===M.sequenceNodeType.REFERENCE&&x===V.endIndex+2),$=b&&M.matchRefDrawToken(b)&&(!w||M.isFormulaLexerToken(w)&&w!==M.matchToken.OPEN_BRACKET),U=!!j;if((D==null?void 0:D.substring(0,1))==="="&&($||U))if(U){if(v.current)return;!j.range.sheetName&&A.getSheetId()===(y==null?void 0:y.getSheetId())||j.range.sheetName===A.getName()?T(2):T(3)}else v.current=!1,T(1);else T(0)});return S.useEffect(()=>{const A=p.textSelection$.pipe(B.filter(P=>P.unitId===t)).subscribe(()=>{F()});return()=>A.unsubscribe()},[F,p.textSelection$,t]),S.useEffect(()=>{n||(T(0),v.current=!0)},[n,T]),S.useEffect(()=>{var P;if(!o)return;const A=(P=h==null?void 0:h.mainComponent)==null?void 0:P.onPointerDown$.subscribeEvent(()=>{T(0),v.current=!0});return()=>A==null?void 0:A.unsubscribe()},[o,(O=h==null?void 0:h.mainComponent)==null?void 0:O.onPointerDown$,T]),S.useEffect(()=>{if(!n)return;const A=_==null?void 0:_.activeSheet$.subscribe(()=>{F()});return()=>A==null?void 0:A.unsubscribe()},[F,n,_==null?void 0:_.activeSheet$]),{isSelecting:m,isSelectingRef:I}}const or=()=>{const e=a.useDependency(M.LexerTreeBuilder);return S.useCallback(n=>e.sequenceNodesBuilder(n)||[],[e])};function sr(e,t,n){const o=e.getCurrentTheme(),r=new l.ColorKit(t).setAlpha(.05).toRgbString();return{id:n,strokeWidth:1,stroke:t,fill:r,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:o.colorWhite}}function zt(e){var _,y,T;const{unitId:t,subUnitId:n,currentWorkbook:o,refSelections:r,editor:s,refSelectionsService:i,refSelectionsRenderService:c,sheetSkeletonManagerService:d,themeService:h,univerInstanceService:g}=e,p=o.getUnitId(),f=g.getUnit(t,l.UniverInstanceType.UNIVER_SHEET),m=f==null?void 0:f.getActiveSheet(),u=[];if(!f||!m){i.setSelections(u);return}const R=m.getSheetId(),v=F=>{var O;return(O=f==null?void 0:f.getSheetBySheetName(F))==null?void 0:O.getSheetId()};if(!((_=d==null?void 0:d.getWorksheetSkeleton(R))==null?void 0:_.skeleton))return;const I=[];for(let F=0,O=r.length;F<O;F++){const A=r[F],{themeColor:P,token:x,refIndex:L,endIndex:D}=A,N=M.deserializeRangeWithSheet(x),{unitId:b,sheetName:w,range:j}=N,$=v(w);if(p!==t&&b!==p||b&&b!==p||$&&$!==R||!$&&R!==n)continue;const U=H.setEndForRange(j,m.getRowCount(),m.getColumnCount());U.unitId=t,U.sheetId=R,u.push({range:U,primary:null,style:sr(h,P,L.toString())}),I.push(D)}if(s){const F=(T=(y=s.getSelectionRanges())==null?void 0:y[0])==null?void 0:T.startOffset,O=I.findIndex(A=>A+2===F);O!==-1?c==null||c.setActiveSelectionIndex(O):c==null||c.resetActiveSelectionIndex()}return u}function ir(e,t){const n=a.useDependency(l.IUniverInstanceService),o=a.useDependency(l.ThemeService),r=a.useDependency(H.IRefSelectionsService),i=a.useDependency(W.IRenderManagerService).getRenderById(e),c=i==null?void 0:i.with(exports.RefSelectionsRenderService),d=i==null?void 0:i.with(k.SheetSkeletonManagerService),h=a.useEvent((g,p)=>{const f=n.getCurrentUnitOfType(l.UniverInstanceType.UNIVER_SHEET);if(!f||c!=null&&c.selectionMoving)return;const m=zt({unitId:e,subUnitId:t,currentWorkbook:f,refSelections:g,editor:p,refSelectionsService:r,refSelectionsRenderService:c,sheetSkeletonManagerService:d,themeService:o,univerInstanceService:n});if(!m)return;((c==null?void 0:c.getSelectionControls())||[]).length===m.length?c==null||c.resetSelectionsByModelData(m):r.setSelections(m)});return S.useEffect(()=>()=>{c==null||c.resetActiveSelectionIndex()},[c]),h}function Gt(e=""){const t=a.useDependency(Ne.IDescriptionService),n=cr(),o=a.useDependency(l.ICommandService),r=S.useMemo(()=>e.length,[e]);return a.useEvent((i,c,d=!0,h)=>{const g=i.getDocumentData(),p=i.getEditorId();if(!g)return[];const f=g.body;if(!f)return[];const m=f.dataStream.slice(0,f.dataStream.length-2),u={dataStream:"",...g.body};if(!m.startsWith(e))return[];if(c==null||c.length===0)return u.textRuns=[],o.syncExecuteCommand(z.ReplaceTextRunsCommand.id,{unitId:p,body:l.getBodySlice(u,0,u.dataStream.length-2)}),[];{const{textRuns:R,refSelections:v}=ar(t,n,c);r&&R.forEach(_=>{_.ed=_.ed+r,_.st=_.st+r}),u.textRuns=[{st:0,ed:1,ts:{fs:11}},...R];const E=c.reduce((_,y)=>typeof y=="string"?`${_}${y}`:`${_}${y.token}`,"");u.dataStream=`${e}${E}\r
|
|
11
|
-
|
|
12
|
-
`).slice(0,-2),c=(f=n.sequenceNodesBuilder(i.slice(1)))!=null?f:[],d=gt(c,s,!1),h=Ht(c,d);return{nodeIndex:d,updatingRefIndex:h,sequenceNodes:c,offset:s}},mr=()=>{},gr=(e,t,n,o,r,s,i,c,d,h=mr)=>{var L;const g=a.useDependency(W.IRenderManagerService),p=a.useDependency(l.IUniverInstanceService),f=a.useDependency(l.ICommandService),m=a.useDependency(Pt.DocSelectionManagerService),u=a.useDependency(l.ThemeService),R=a.useDependency(M.LexerTreeBuilder),v=p.getUnit(o),E=a.useEvent(D=>{var N,b;return(b=(N=v==null?void 0:v.getSheetBySheetId(D))==null?void 0:N.getName())!=null?b:""}),I=S.useMemo(()=>E(r),[E,r]),_=a.useObservable(v==null?void 0:v.activeSheet$),y=Oe({activeSheet:_,sheetName:I}),T=a.useObservable(S.useMemo(()=>p.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET),[p])),F=g.getRenderById((L=T==null?void 0:T.getUnitId())!=null?L:""),O=F==null?void 0:F.with(exports.RefSelectionsRenderService),A=F==null?void 0:F.with(k.SheetSkeletonManagerService),P=a.useDependency(H.IRefSelectionsService),x=a.useEvent((D,N)=>{var q,G,V,Ae,re,We;const b=hr({editor:d,lexerTreeBuilder:R});if(!b)return;const{nodeIndex:w,updatingRefIndex:j,sequenceNodes:$,offset:U}=b;if(n.current===Re.NEED_ADD)if(U!==0){if(w===-1&&$.length)return;const Z=D[D.length-1],Q=$.splice(w+1),te=(q=Z.sheetId)!=null?q:r,ae={range:Z,unitId:(G=Z.unitId)!=null?G:T.getUnitId(),sheetName:E(te)},ce=te!==r,le=(T==null?void 0:T.getUnitId())!==o,de=qe([ae],i&&(ce||le),I,le);$.push({token:de[0],nodeType:M.sequenceNodeType.REFERENCE});const ue=[...$,...Q],_e=ft(ue);h(_e,fr($),N)}else{const Z=D[D.length-1],Q=(V=Z.sheetId)!=null?V:r,te={range:Z,unitId:(Ae=Z.unitId)!=null?Ae:o,sheetName:E(Q)},ce=qe([te],i&&Q!==r);$.unshift({token:ce[0],nodeType:M.sequenceNodeType.REFERENCE});const le=ft($);h(le,ce[0].length,N)}else if(n.current===Re.EDIT_OTHER_SHEET_REFERENCE){const Z=D.pop();if(!Z)return;const Q=$[w];if(typeof Q=="object"&&Q.nodeType===M.sequenceNodeType.REFERENCE){const te=Q.token;Q.token=I===(_==null?void 0:_.getName())?M.serializeRange(Z):M.serializeRangeWithSheet(_.getName(),Z);const ae=U+(Q.token.length-te.length);h(M.generateStringWithSequence($),ae,N)}}else{const Z=[...D];if(j!==-1){const X=Z.pop();X&&Z.splice(j,0,X)}let Q=0;const te=$.map(X=>{var se,fe,ye;if(typeof X=="string")return X;if(X.nodeType===M.sequenceNodeType.REFERENCE){const be=M.deserializeRangeWithSheet(X.token);if(be.sheetName||(be.sheetName=I),i&&((se=y.current.activeSheet)==null?void 0:se.getName())!==be.sheetName)return X.token;const ge=Z[Q];if(Q++,!ge)return"";const it=(fe=ge.sheetId)!=null?fe:r,pe={range:ge,unitId:(ye=ge.unitId)!=null?ye:o,sheetName:E(it)};return qe([pe],i,I)[0]}return X.token});let ae="",ce;te.forEach((X,se)=>{ae+=X,se===w&&(ce=ae.length)});const le=[];for(let X=Q;X<=D.length-1;X++){const se=D[X],fe=(re=se.sheetId)!=null?re:r,ye={range:se,unitId:(We=se.unitId)!=null?We:o,sheetName:E(fe)},ge=qe([ye],i&&fe!==r,I);le.push(ge[0])}const de=$[$.length-1],ue=de&&(typeof de=="string"?!1:de.nodeType===M.sequenceNodeType.REFERENCE),_e=`${ae}${le.length&&ue?",":""}${le.join(",")}`;h(_e,!le.length&&ce?ce:_e.length,N)}});S.useEffect(()=>{if(O&&e){let D=!0;const N=(w,j)=>{if(D){D=!1;return}x(w.map($=>$.rangeWithCoord),j)},b=new l.DisposableCollection;return b.add(O.selectionMoving$.subscribe(w=>{N(w,!1)})),b.add(O.selectionMoveEnd$.subscribe(w=>{N(w,!0)})),()=>{b.dispose()}}},[e,x,O]),S.useEffect(()=>{if(t&&O&&d){const D=new l.DisposableCollection,N=()=>{D.dispose(),O.getSelectionControls().forEach((j,$)=>{D.add(j.selectionScaling$.subscribe(U=>{const q=O.getSelectionDataWithStyle().map(V=>V.rangeWithCoord),G=q[$];U.sheetId=G.sheetId,U.unitId=G.unitId,q[$]=U,x(q,!1)})),D.add(j.selectionMoving$.subscribe(U=>{const q=O.getSelectionDataWithStyle().map(V=>V.rangeWithCoord),G=q[$];U.sheetId=G.sheetId,U.unitId=G.unitId,q[$]=U,x(q,!0)}))})},b=B.merge(d.input$,P.selectionSet$,O.selectionMoveEnd$).pipe(dn.debounceTime(50)).subscribe(()=>{N()});return()=>{b.unsubscribe(),D.dispose()}}},[d,t,x,O,P.selectionSet$]),O==null||O.getSelectionDataWithStyle(),S.useEffect(()=>{if(c){const D=f.onCommandExecuted(N=>{var w;if(N.id!==H.SetSelectionsOperation.id)return;const b=N.params;if(b.extra==="formula-editor"&&b.selections.length){const j=b.selections[b.selections.length-1];if(j){const $=n.current===Re.NEED_ADD,U=((w=O==null?void 0:O.getSelectionDataWithStyle())!=null?w:[]).map(q=>q.rangeWithCoord);$?U.push(j.range):U[U.length-1]=j.range,x(U,!0)}}});return()=>{D.dispose()}}},[f,d,n,R,c,x,O]),S.useEffect(()=>{if(!d)return;const D=m.textSelection$.subscribe(N=>{N.unitId===d.getEditorId()&&zt({unitId:o,subUnitId:r,refSelections:s.current,editor:d,refSelectionsService:P,refSelectionsRenderService:O,sheetSkeletonManagerService:A,themeService:u,univerInstanceService:p,currentWorkbook:T})});return()=>D.unsubscribe()},[m.textSelection$,d,s,O,P,A,r,u,o,p])},pr=(e,t,n,o,r,s)=>{const i=a.useDependency(l.ICommandService),c=a.useDependency(z.IEditorService),h=a.useDependency(W.IRenderManagerService).getRenderById(t),g=a.useDependency(l.IUniverInstanceService),p=h==null?void 0:h.with(exports.RefSelectionsRenderService);S.useEffect(()=>{if(e&&p)if(n){const f=()=>{const R=p.getSelectionControls().length;for(let v=1;v<=R;v++)p.clearLastSelection();return setTimeout(()=>{s()},30)},m=i.onCommandExecuted(R=>{R.id===H.SetWorksheetActiveOperation.id&&f()}),u=g.getCurrentTypeOfUnit$(l.UniverInstanceType.UNIVER_SHEET).subscribe(R=>{f()});return()=>{m.dispose(),u.unsubscribe()}}else{const f=i.beforeCommandExecuted(m=>{if(m.id===H.SetWorksheetActiveOperation.id){o(!1),r(),s();const u=c.getEditor(l.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);u==null||u.focus()}});return()=>{f.dispose()}}},[e,p])},Sr=(e,t,n)=>{const o=a.useDependency(M.LexerTreeBuilder),r=S.useRef(!0);S.useEffect(()=>{if(e){const s=setTimeout(()=>{r.current=!1},500);return()=>{clearTimeout(s)}}},[e]),S.useEffect(()=>{if(!r.current&&t){const s=o.checkIfAddBracket(n);t(s===0&&n.startsWith(M.operatorToken.EQUALS),`${n}`)}},[n,t])},vr="univer-sheet-embedding-formula-editor-active",Cr="univer-sheet-embedding-formula-editor-wrap",Ir="univer-sheet-embedding-formula-editor-text",Rr="univer-sheet-embedding-formula-editor-error",Er="univer-sheet-embedding-formula-editor",_r="univer-sheet-embedding-formula-editor-error-wrap",we={sheetEmbeddingFormulaEditorActive:vr,sheetEmbeddingFormulaEditorWrap:Cr,sheetEmbeddingFormulaEditorText:Ir,sheetEmbeddingFormulaEditorError:Rr,sheetEmbeddingFormulaEditor:Er,sheetEmbeddingFormulaEditorErrorWrap:_r},yr=(e,t=[],n)=>{const o=a.useDependency(Ne.IDescriptionService),[r,s]=S.useState([]),[i,c]=S.useState(""),d=S.useRef(-1),h=Oe({nodes:t}),g=()=>{s([]),c(""),d.current=-1};return S.useEffect(()=>{if(n&&e){const f=n.input$.pipe(B.debounceTime(300)).subscribe(()=>{const m=n.getSelectionRanges();if(m.length===1){const u=h.current.nodes,R=m[0];if(R.collapsed){const v=gt(u,R.startOffset-1,!1);d.current=v;const E=u[v];if(E&&typeof E!="string"&&E.nodeType===M.sequenceNodeType.FUNCTION){d.current=v;const I=E.token,_=o.getSearchListByNameFirstLetter(I);s(_),c(I);return}}}d.current=-1,c(""),s(u=>u!=null&&u.length?[]:u)});return()=>{f.unsubscribe()}}},[n,e]),S.useEffect(()=>{e||g()},[e]),{searchList:r,searchText:i,handlerFormulaReplace:f=>{const m=[...h.current.nodes];if(d.current!==-1){const u=m.splice(d.current+1),R=m.pop()||"";let v=(typeof R=="string"?R.length:R.token.length)-f.length;return m.push(f),u[0]!==M.matchToken.OPEN_BRACKET&&(m.push(M.matchToken.OPEN_BRACKET),v--),{text:ft([...m,...u]),offset:v}}},reset:g}},br="univer-formula-search-function",Tr="univer-formula-search-function-item",xr="univer-formula-search-function-item-name",Fr="univer-formula-search-function-item-name-light",Mr="univer-formula-search-function-item-desc",Nr="univer-formula-search-function-item-active",Ce={formulaSearchFunction:br,formulaSearchFunctionItem:Tr,formulaSearchFunctionItemName:xr,formulaSearchFunctionItemNameLight:Fr,formulaSearchFunctionItemDesc:Mr,formulaSearchFunctionItemActive:Nr},Dr=()=>{},Or=S.forwardRef(Ar);function Ar(e,t){const{isFocus:n,sequenceNodes:o,onSelect:r,editor:s,onClose:i=Dr}=e,c=s.getEditorId(),d=a.useDependency(a.IShortcutService),h=a.useDependency(l.ICommandService),{searchList:g,searchText:p,handlerFormulaReplace:f,reset:m}=yr(n,o,s),u=S.useMemo(()=>!!g.length,[g]),R=S.useRef(void 0),[v,E]=S.useState(0),I=S.useRef(!1),[_]=Yt(c,u,[p,g]),y=Oe({searchList:g,active:v}),T=x=>{const L=f(x);L&&(m(),r(L))};function F(x){I.current&&E(x)}function O(){I.current&&E(-1)}S.useEffect(()=>{if(!g.length)return;const x=`sheet.formula-embedding-editor.search_function.${c}`,L=new l.DisposableCollection,D=N=>{const{searchList:b,active:w}=y.current;switch(N){case a.KeyCode.ARROW_UP:{E(j=>{const $=Math.max(0,j-1);return A($),$});break}case a.KeyCode.ARROW_DOWN:{E(j=>{const $=Math.min(b.length-1,j+1);return A($),$});break}case a.KeyCode.TAB:case a.KeyCode.ENTER:{const j=b[w];T(j.name);break}case a.KeyCode.ESC:{m(),i();break}}};return L.add(h.registerCommand({id:x,type:l.CommandType.OPERATION,handler(N,b){const{keyCode:w}=b;D(w)}})),[a.KeyCode.ARROW_UP,a.KeyCode.ARROW_DOWN,a.KeyCode.ENTER,a.KeyCode.ESC,a.KeyCode.TAB].map(N=>({id:x,binding:N,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:W.DeviceInputEventType.Keyboard,keyCode:N}})).forEach(N=>{L.add(d.registerShortcut(N))}),()=>{L.dispose()}},[g]);function A(x){var G;const L=(G=R.current)==null?void 0:G.querySelectorAll(`.${Ce.formulaSearchFunctionItem}`)[x];if(!L)return;const D=L.parentNode;if(!D)return;const b=D.getBoundingClientRect().top,w=D.offsetHeight,j=L.getBoundingClientRect(),$=j.top,U=j.height;if($>=0&&$>b&&$-b+U<=w)return;const q=L.offsetTop-(w-U)/2;D.scrollTo({top:q,behavior:"smooth"})}const P=S.useMemo(()=>{let x="";return()=>{clearTimeout(x),I.current=!0,x=setTimeout(()=>{I.current=!1},300)}},[]);return g.length>0&&u&&C.jsx(a.RectPopup,{portal:!0,anchorRect$:_,direction:"vertical",children:C.jsx("ul",{className:Ce.formulaSearchFunction,ref:x=>{R.current=x,t&&(t.current=x)},children:g.map((x,L)=>C.jsxs("li",{className:v===L?`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[]},documentStyle:{}}},$.current);const oe=A.getEditor(U);N.current=oe,pe(o,!1,!0)}return()=>{Y==null||Y.dispose()}},[]),S.useLayoutEffect(()=>{i?(j(i),Te()):(I&&(b==null||b.blur(),It()),j(i))},[i,b,Te,It,I]);const{checkScrollBar:tn}=z.useResize(b,y,_);ur(w,!!(te&&fe),r,F),lr(!!(w&&_e&&u),be,b,E);const nn=a.useEvent((Y,oe,Se)=>{if(!_e)return;const he=oe!==-1?[{startOffset:oe+1,endOffset:oe+1,collapsed:!0}]:void 0;pe(`=${Y}`,!0,Se,he),Se&&(Te(),oe!==-1&&setTimeout(()=>{const Ve={startOffset:oe+1,endOffset:oe+1},ve=b==null?void 0:b.render.with(z.DocBackScrollRenderController);ve==null||ve.scrollToRange({...Ve,collapsed:!0})},50),tn())});gr(w&&!!(te&&fe),w,ae,r,s,ye,c,!!be,b,nn),pr(w&&!!(te&&fe),r,c,j,h,()=>{pe(We.current,!1,!0)});const rn=Y=>{if(Y){const oe=b==null?void 0:b.getSelectionRanges();if(oe&&oe.length===1){const Se=oe[0];if(Se.collapsed){const he=Y.offset;setTimeout(()=>{b==null||b.setSelectionRanges([{startOffset:Se.startOffset-he,endOffset:Se.endOffset-he}])},30)}}Te(),pe(`=${Y.text}`)}},on=()=>{j(!0),d(),Te()};return C.jsxs("div",{style:O,className:ne.clsx(we.sheetEmbeddingFormulaEditor,f),children:[C.jsx("div",{className:ne.clsx(we.sheetEmbeddingFormulaEditorWrap,{[we.sheetEmbeddingFormulaEditorActive]:w,[we.sheetEmbeddingFormulaEditorError]:q}),ref:P,children:C.jsx("div",{className:we.sheetEmbeddingFormulaEditorText,ref:$,onMouseUp:on})}),n!==void 0?C.jsx("div",{className:we.sheetEmbeddingFormulaEditorErrorWrap,children:n}):null,b?C.jsx(Xn,{editor:b,isFocus:w,formulaText:re,onClose:()=>Te()}):null,b?C.jsx(Or,{isFocus:w,sequenceNodes:Q,onSelect:rn,ref:D,editor:b}):null]})});function wr(e,t,n,o){const r=a.useDependency(M.LexerTreeBuilder),s=Gt(""),i=a.useObservable(e==null?void 0:e.getDocumentDataModel().change$),[c,d]=S.useState([]),h=a.useDependency(k.IMarkSelectionService),g=S.useRef(""),p=a.useDependency(l.IUniverInstanceService);return S.useEffect(()=>{if(!e)return;const f=e.getDocumentDataModel().getPlainText();if(g.current===f)return;g.current=f;const m=r.sequenceNodesBuilder(f);d(m!=null?m:[])},[i,e,r]),S.useEffect(()=>{var u,R;if(!e)return;if(!t){const v=e.getDocumentData();e.setDocumentData({...v,body:{...v.body,dataStream:(R=(u=v.body)==null?void 0:u.dataStream)!=null?R:"",textRuns:[]}});return}const f=s(e,c,!1),m=new l.DisposableCollection;return f.forEach(v=>{const E=M.deserializeRangeWithSheet(v.token),I=p.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),_=I==null?void 0:I.getActiveSheet();if(!E.sheetName&&o!==(_==null?void 0:_.getSheetId())||E.sheetName&&(_==null?void 0:_.getName())!==E.sheetName)return;const y=new l.ColorKit(v.themeColor).toRgb(),T=h.addShape({range:E.range,style:{stroke:v.themeColor,fill:`rgba(${y.r}, ${y.g}, ${y.b}, 0.1)`,strokeDash:12},primary:null});T&&m.add(()=>h.removeShape(T))}),()=>{m.dispose()}},[e,t,s,h,c]),{sequenceNodes:c}}function Lr(e){const t=a.useDependency(H.SheetsSelectionsService),{supportAcrossSheet:n=!1,unitId:o,subUnitId:r,onChange:s}=e,c=a.useDependency(l.IUniverInstanceService).getUnit(o,l.UniverInstanceType.UNIVER_SHEET),d=a.useEvent(s),h=a.useEvent((g,p)=>{const f=c==null?void 0:c.getActiveSheet();if(!f||!n&&f.getSheetId()!==r||!(g!=null&&g.length))return;const m=g.map(u=>({range:u.range,unitId:o,sheetName:f.getSheetId()===r?"":f.getName()}));d(m,p)});S.useEffect(()=>{const g=new l.DisposableCollection;return g.add(t.selectionMoveStart$.subscribe(p=>{h(p,!0)})),g.add(t.selectionMoving$.subscribe(p=>{h(p,!1)})),g.add(t.selectionMoveEnd$.subscribe(p=>{h(p,!1)})),()=>{g.dispose()}},[h,t.selectionMoveEnd$,t.selectionMoveStart$,t.selectionMoving$])}const kr="univer-sheet-range-selector-icon",$r="univer-sheet-range-selector-dialog",jr="univer-sheet-range-selector-dialog-item",Hr="univer-sheet-range-selector-dialog-item-delete",Ge={sheetRangeSelectorIcon:kr,sheetRangeSelectorDialog:$r,sheetRangeSelectorDialogItem:jr,sheetRangeSelectorDialogItemDelete:Hr},Mt=e=>!e.some(n=>{if(typeof n=="string"){if(n!==M.matchToken.COMMA)return!0}else if(n.nodeType!==M.sequenceNodeType.REFERENCE)return!0;return!1}),Ur=e=>{if(e.endColumn<e.startColumn){const t=e.endColumn;e.endColumn=e.startColumn,e.startColumn=t}if(e.endRow<e.startRow){const t=e.endRow;e.endRow=e.startRow,e.startRow=t}return e};function Wr(e){const{visible:t,initialValue:n,unitId:o,subUnitId:r,maxRangeCount:s=1/0,supportAcrossSheet:i,onConfirm:c,onClose:d,onShowBySelection:h}=e,g=a.useDependency(l.LocaleService),p=a.useDependency(M.LexerTreeBuilder),[f,m]=S.useState([]),[u,R]=S.useState(0),v=S.useRef(null);S.useEffect(()=>{if(t&&n.length){const y=n.map(T=>T.sheetName?M.serializeRangeWithSheet(T.sheetName,T.range):M.serializeRange(T.range));m(y),R(y.length-1)}else m([""]),R(0)},[t]);const E=(y,T)=>{const F=[...f];F[y]=T,m(F)},I=()=>{m([...f,""]),R(f.length)},_=y=>{f.splice(y,1),m([...f])};return Lr({unitId:o,subUnitId:r,supportAcrossSheet:i,onChange:(y,T)=>{if(!t&&h!=null&&h(y))return;const F=new Set(f),O=y.map(x=>x.sheetName?M.serializeRangeWithSheet(x.sheetName,x.range):M.serializeRange(x.range)),A=O.filter(x=>!F.has(x));if(!A.length)return;const P=[...f];if(O.length>1){T||P.splice(u,1),P.push(...A);const x=P.slice(0,s);m(x),R(x.length-1),requestAnimationFrame(()=>{var L;(L=v.current)==null||L.scrollTo({top:v.current.scrollHeight})})}else{P.splice(u,1,...A);const x=P.slice(0,s);m(x),R(u+A.length-1)}}}),C.jsx(ne.Dialog,{width:"328px",visible:t,title:g.t("rangeSelector.title"),draggable:!0,closeIcon:C.jsx(ot,{}),footer:C.jsxs("footer",{children:[C.jsx(ne.Button,{onClick:d,children:g.t("rangeSelector.cancel")}),C.jsx(ne.Button,{style:{marginLeft:10},variant:"primary",onClick:()=>{c(f.filter(y=>{const T=p.sequenceNodesBuilder(y);return T&&T.length===1&&typeof T[0]!="string"&&T[0].nodeType===M.sequenceNodeType.REFERENCE}).map(y=>M.deserializeRangeWithSheet(y)).map(y=>({...y,range:Ur(y.range)})))},children:g.t("rangeSelector.confirm")})]}),onClose:d,children:C.jsxs("div",{ref:v,className:Ge.sheetRangeSelectorDialog,children:[f.map((y,T)=>C.jsxs("div",{className:Ge.sheetRangeSelectorDialogItem,children:[C.jsx(ne.Input,{className:"univer-w-full",placeholder:g.t("rangeSelector.placeHolder"),onFocus:()=>R(T),value:y,onChange:F=>E(T,F),style:{borderColor:u===T?"rgb(var(--primary-color))":void 0}}),f.length>1&&C.jsx(Vt,{className:Ge.sheetRangeSelectorDialogItemDelete,onClick:()=>_(T)})]},T)),f.length<s&&C.jsx("div",{children:C.jsxs(ne.Button,{variant:"link",onClick:I,children:[C.jsx(Kt,{}),C.jsx("span",{children:g.t("rangeSelector.addAnotherRange")})]})})]})})}function Vr(e){return e.split(M.matchToken.COMMA).filter(t=>!!t).map(t=>M.deserializeRangeWithSheet(t))}function Br(e){return e.map(t=>t.sheetName?M.serializeRangeWithSheet(t.sheetName,t.range):M.serializeRange(t.range)).join(M.matchToken.COMMA)}function vt(e){const[t,n]=S.useState(null),{onVerify:o,selectorRef:r,unitId:s,subUnitId:i,maxRangeCount:c,supportAcrossSheet:d,autoFocus:h,onChange:g,onRangeSelectorDialogVisibleChange:p,onClickOutside:f,onFocusChange:m,forceShowDialogWhenSelectionChanged:u,hideEditor:R,resetRange:v}=e,[E,I]=S.useState(h!=null?h:!1),[_,y]=S.useState(!1),[T,F]=S.useState([]),O=a.useDependency(l.LocaleService),A=a.useDependency(z.IEditorService),{sequenceNodes:P}=wr(t,E,s,i),x=Oe(P),L=a.useDependency(l.ICommandService),D=a.useEvent(()=>{t==null||t.setSelectionRanges([]),t==null||t.blur(),A.blur()}),N=a.useEvent(()=>{var b;D(),F(Vr((b=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?b:"")),y(!0)});return S.useEffect(()=>{r&&(r.current={get editor(){return t},focus(){A.focus(t.getEditorId())},blur:D,verify:()=>Mt(x.current),showDialog:b=>{D(),F(b),y(!0)},hideDialog:()=>{F([]),y(!1)},getValue:()=>{var b;return(b=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?b:""}})},[D,t,A,r,x]),S.useEffect(()=>{var b;o==null||o(Mt(P),(b=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?b:"")},[P]),S.useEffect(()=>{p==null||p(_)},[_]),S.useEffect(()=>{if(_&&v)return()=>{const b={unitId:s,subUnitId:i,selections:v};L.executeCommand(H.SetSelectionsOperation.id,b)}},[_]),C.jsxs(C.Fragment,{children:[R?null:C.jsx(z.RichTextEditor,{isSingle:!0,...e,onFocusChange:(b,w)=>{I(b),m==null||m(b,w)},editorRef:n,onClickOutside:()=>{I(!1),D(),f==null||f()},icon:C.jsx(ne.Tooltip,{title:O.t("rangeSelector.buttonTooltip"),placement:"bottom",children:C.jsx(qt,{className:Ge.sheetRangeSelectorIcon,onClick:N})})}),C.jsx(Wr,{initialValue:T,unitId:s,subUnitId:i,visible:_,maxRangeCount:c,onConfirm:b=>{const w=Br(b),j=l.RichTextBuilder.newEmptyData();j.body.dataStream=w,t==null||t.replaceText(w,!1),g==null||g(j,w),y(!1),F([]),requestAnimationFrame(()=>{D()})},onClose:()=>{y(!1),F([])},supportAcrossSheet:d,onShowBySelection:b=>E||u?(F(b),y(!0),!1):!0})]})}class Ct{constructor(){K(this,"_currentSelector$",new B.BehaviorSubject(null));K(this,"currentSelector$",this._currentSelector$.asObservable())}showRangeSelectorDialog(t){const n=t.callback,o=new Promise(r=>{t.callback=s=>{r(s),n(s)}});return this._currentSelector$.next(t),o}}var Kr=Object.getOwnPropertyDescriptor,qr=(e,t,n,o)=>{for(var r=o>1?void 0:o?Kr(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Ye=(e,t)=>(n,o)=>t(n,o,e);exports.FormulaReorderController=class extends l.Disposable{constructor(t,n,o,r){super(),this._sheetInterceptorService=t,this._univerInstanceService=n,this._formulaDataModel=o,this._lexerTreeBuilder=r,this._initialize()}_initialize(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:t=>t.id===H.ReorderRangeCommand.id?this._reorderFormula(t.params):{redos:[],undos:[]}}))}_reorderFormula(t){const n=[],o=[],{unitId:r,subUnitId:s,range:i,order:c}=t,d=this._univerInstanceService.getUniverSheetInstance(r),h=d==null?void 0:d.getSheetBySheetId(s);if(!h)return{redos:n,undos:o};const g=h.getCellMatrix(),p=new l.ObjectMatrix,f=new l.ObjectMatrix;let m=!1;return l.Range.foreach(i,(u,R)=>{let v=u;c.hasOwnProperty(u)&&(v=c[u]);const E=g.getValue(v,R);if(E!=null&&E.f||E!=null&&E.si){m=!0;const I=this._formulaDataModel.getFormulaStringByCell(v,R,s,r),_=this._lexerTreeBuilder.moveFormulaRefOffset(I,0,u-v),y=l.Tools.deepClone(E);y.f=_,y.si=null,p.setValue(u,R,y)}else p.setValue(u,R,E);f.setValue(u,R,g.getValue(u,R))}),m?(n.push({id:H.SetRangeValuesMutation.id,params:{unitId:r,subUnitId:s,cellValue:p.getMatrix()}}),o.push({id:H.SetRangeValuesMutation.id,params:{unitId:r,subUnitId:s,cellValue:f.getMatrix()}}),{redos:n,undos:o}):{redos:n,undos:o}}};exports.FormulaReorderController=qr([Ye(0,l.Inject(H.SheetInterceptorService)),Ye(1,l.Inject(l.IUniverInstanceService)),Ye(2,l.Inject(M.FormulaDataModel)),Ye(3,l.Inject(M.LexerTreeBuilder))],exports.FormulaReorderController);const Yr="sheets-formula-ui.base.config",Nt={};function zr(e){return e.getContextValue(l.FOCUSING_DOC)&&e.getContextValue(l.FOCUSING_UNIVER_EDITOR)}function Xt(e,t=!1){return!t&&!(l.isFormulaString(e==null?void 0:e.f)||l.isFormulaId(e==null?void 0:e.si))?null:typeof(e==null?void 0:e.v)=="string"&&M.ERROR_TYPE_SET.has(e.v)?e.v:null}var Gr=Object.getOwnPropertyDescriptor,Zr=(e,t,n,o)=>{for(var r=o>1?void 0:o?Gr(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Le=(e,t)=>(n,o)=>t(n,o,e);const at="SHEET_FORMULA_ALERT",Xr={[M.ErrorType.DIV_BY_ZERO]:"divByZero",[M.ErrorType.NAME]:"name",[M.ErrorType.VALUE]:"value",[M.ErrorType.NUM]:"num",[M.ErrorType.NA]:"na",[M.ErrorType.CYCLE]:"cycle",[M.ErrorType.REF]:"ref",[M.ErrorType.SPILL]:"spill",[M.ErrorType.CALC]:"calc",[M.ErrorType.ERROR]:"error",[M.ErrorType.CONNECT]:"connect",[M.ErrorType.NULL]:"null"};let ht=class extends l.Disposable{constructor(e,t,n,o,r,s){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=o,this._formulaDataModel=r,this._zenZoneService=s,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(B.debounceTime(100)).subscribe(e=>{var t,n,o,r,s;if(e){const c=this._context.unit.getActiveSheet();if(!c)return;const d=c.getCell(e.location.row,e.location.col),h=(r=(o=(n=(t=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:t[e.location.unitId])==null?void 0:n[e.location.subUnitId])==null?void 0:o[e.location.row])==null?void 0:r[e.location.col];if(l.isICellData(d)){const g=Xt(d,!!h);if(!g){this._hideAlert();return}const p=this._cellAlertManagerService.currentAlert.get(at),f=(s=p==null?void 0:p.alert)==null?void 0:s.location;if(f&&f.row===e.location.row&&f.col===e.location.col&&f.subUnitId===e.location.subUnitId&&f.unitId===e.location.unitId)return;this._cellAlertManagerService.showAlert({type:k.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${Xr[g]}`),location:e.location,width:200,height:74,key:at});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(at)}};ht=Zr([Le(1,l.Inject(k.HoverManagerService)),Le(2,l.Inject(k.CellAlertManagerService)),Le(3,l.Inject(l.LocaleService)),Le(4,l.Inject(M.FormulaDataModel)),Le(5,a.IZenZoneService)],ht);var Jr=Object.getOwnPropertyDescriptor,Qr=(e,t,n,o)=>{for(var r=o>1?void 0:o?Jr(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Dt=(e,t)=>(n,o)=>t(n,o,e);let Ze=class extends l.Disposable{constructor(e,t){super(),this._autoFillService=e,this._lexerTreeBuilder=t,this._registerAutoFill()}_registerAutoFill(){const e={type:k.DATA_TYPE.FORMULA,priority:1001,match:t=>l.isFormulaString(t==null?void 0:t.f)||l.isFormulaId(t==null?void 0:t.si),isContinue:(t,n)=>t.type===k.DATA_TYPE.FORMULA,applyFunctions:{[k.APPLY_TYPE.COPY]:(t,n,o,r,s)=>{const{data:i,index:c}=t;return this._fillCopyFormula(i,n,o,c,r,s)}}};this._autoFillService.registerRule(e)}_fillCopyFormula(e,t,n,o,r,s){var h,g;const i=to(r),c=[],d=new Map;for(let p=1;p<=t;p++){const f=(p-1)%e.length,m=o[f],u=l.Tools.deepClone(e[f]);if(u){const R=((h=e[f])==null?void 0:h.f)||"",v=((g=e[f])==null?void 0:g.si)||"",E=l.isFormulaString(R);if(l.isFormulaId(v))u.si=v,u.f=null,u.v=null,u.p=null,u.t=null,c.push(u);else if(E){let _=d.get(f);if(_)u.si=_,u.f=null,u.v=null,u.p=null,u.t=null;else{_=l.Tools.generateRandomId(6),d.set(f,_);const{offsetX:y,offsetY:T}=eo(i,t,n,s,m),F=this._lexerTreeBuilder.moveFormulaRefOffset(R,y,T);u.si=_,u.f=F,u.v=null,u.p=null,u.t=null}c.push(u)}}}return c}};Ze=Qr([Dt(0,k.IAutoFillService),Dt(1,l.Inject(M.LexerTreeBuilder))],Ze);function eo(e,t,n,o,r){const{source:s,target:i}=o,{rows:c}=i,{rows:d}=s;let h=0,g=0;switch(n){case l.Direction.UP:g=c[r]-d[r];break;case l.Direction.RIGHT:h=e;break;case l.Direction.DOWN:g=c[r]-d[r];break;case l.Direction.LEFT:h=-e*t;break}return{offsetX:h,offsetY:g}}function to(e){let t=0;for(const n in e)e[n].forEach(o=>{t+=o.data.length});return t}var no=Object.getOwnPropertyDescriptor,ro=(e,t,n,o)=>{for(var r=o>1?void 0:o?no(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},ke=(e,t)=>(n,o)=>t(n,o,e);const oo="default-paste-formula";let Xe=class extends l.Disposable{constructor(e,t,n,o,r){super(),this._currentUniverSheet=e,this._lexerTreeBuilder=t,this._sheetClipboardService=n,this._injector=o,this._formulaDataModel=r,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:(e,t,n,o)=>this._onPasteCells(e,t,n,o,!0)}}_pasteWithFormulaHook(){return{id:oo,priority:10,onPasteCells:(e,t,n,o)=>this._onPasteCells(e,t,n,o,!1)}}_onPasteCells(e,t,n,o,r){var f;if([k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(o.pasteType))return{undos:[],redos:[]};const i=this._currentUniverSheet.getCurrentUnitForType(l.UniverInstanceType.UNIVER_SHEET),c=t.unitId||i.getUnitId(),d=t.subUnitId||((f=i.getActiveSheet())==null?void 0:f.getSheetId());if(!c||!d)return{undos:[],redos:[]};const h=t.range,g=n,p={copyType:o.copyType||k.COPY_TYPE.COPY,copyRange:e==null?void 0:e.range,pasteType:o.pasteType};return this._injector.invoke(m=>so(c,d,h,g,m,p,this._lexerTreeBuilder,this._formulaDataModel,r,e))}};Xe=ro([ke(0,l.IUniverInstanceService),ke(1,l.Inject(M.LexerTreeBuilder)),ke(2,k.ISheetClipboardService),ke(3,l.Inject(l.Injector)),ke(4,l.Inject(M.FormulaDataModel))],Xe);function so(e,t,n,o,r,s,i,c,d=!1,h){const g=[],p=[],f=io(e,t,n,o,s,i,c,h);if(!f.hasValue())return{undos:[],redos:[]};const m={unitId:e,subUnitId:t,cellValue:f.getData()};g.push({id:H.SetRangeValuesMutation.id,params:m});const u=H.SetRangeValuesUndoMutationFactory(r,m);return p.push({id:H.SetRangeValuesMutation.id,params:u}),{undos:p,redos:g}}function io(e,t,n,o,r,s,i,c){return c?r.pasteType===k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?ao(e,t,n,o,i,c):r.pasteType===k.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?lo(e,t,n,o,s,i,c):uo(e,t,n,o,r.copyType,s,i,c):co(e,t,n,o,i)}function co(e,t,n,o,r){const s=new l.ObjectMatrix,i=r.getSheetFormulaData(e,t);return o.forValue((c,d,h)=>{var m;const g=n.rows[c],p=n.cols[d],f={};l.isFormulaString(h.v)?(f.v=null,f.f=`${h.v}`,f.si=null,f.p=null,s.setValue(g,p,f)):(m=i==null?void 0:i[g])!=null&&m[p]&&(f.v=h.v,f.f=null,f.si=null,f.p=null,s.setValue(g,p,f))}),s}function ao(e,t,n,o,r,s){var h,g;const i=new l.ObjectMatrix,c=(g=(h=r.getArrayFormulaCellData())==null?void 0:h[s.unitId])==null?void 0:g[s.subUnitId],d=r.getSheetFormulaData(e,t);return o.forValue((p,f,m)=>{var _,y;const u=s.range.rows[p%s.range.rows.length],R=s.range.cols[f%s.range.cols.length],v=n.rows[p],E=n.cols[f],I={};if(l.isFormulaString(m.f)||l.isFormulaId(m.si))I.v=m.v,I.f=null,I.si=null,I.p=null,i.setValue(v,E,I);else if((_=c==null?void 0:c[u])!=null&&_[R]){const T=c[u][R];I.v=T.v,I.f=null,I.si=null,I.p=null,i.setValue(v,E,I)}else if((y=d==null?void 0:d[v])!=null&&y[E]){if(I.v=m.v,I.f=null,I.si=null,I.p=null,m.p){const T=Jt(m);T&&(I.v=T)}i.setValue(v,E,I)}}),i}function lo(e,t,n,o,r,s,i){const c=new l.ObjectMatrix,d=new Map;return o.forValue((h,g,p)=>{const f=n.rows[h],m=n.cols[g],u={};if(l.isFormulaId(p.si)){if(i.unitId!==e||i.subUnitId!==t){const R=s.getFormulaStringByCell(i.range.rows[h%i.range.rows.length],i.range.cols[g%i.range.cols.length],i.subUnitId,i.unitId),v=n.cols[g]-i.range.cols[g%i.range.cols.length],E=n.rows[h]-i.range.rows[h%i.range.rows.length],I=r.moveFormulaRefOffset(R||"",v,E);u.si=null,u.f=I}else u.si=p.si,u.f=null;u.v=null,u.p=null,c.setValue(f,m,u)}else if(l.isFormulaString(p.f)){const R=`${h%i.range.rows.length}_${g%i.range.cols.length}`;let v=d.get(R);if(v)u.si=v,u.f=null;else{v=l.Tools.generateRandomId(6),d.set(R,v);const E=n.cols[g]-i.range.cols[g%i.range.cols.length],I=n.rows[h]-i.range.rows[h%i.range.rows.length],_=r.moveFormulaRefOffset(p.f||"",E,I);u.si=v,u.f=_}u.v=null,u.p=null,c.setValue(f,m,u)}else{if(u.v=p.v,u.f=null,u.si=null,u.p=null,p.p){const R=Jt(p);R&&(u.v=R)}c.setValue(f,m,u)}}),c}function uo(e,t,n,o,r,s,i,c){const d=new l.ObjectMatrix,h=new Map,g=i.getSheetFormulaData(e,t),p=[];return r===k.COPY_TYPE.CUT?o.forValue((f,m,u)=>{const R=n.rows[f],v=n.cols[m],E={};if(l.isFormulaId(u.si)){if(l.isFormulaString(u.f))p.push(u.si),E.f=u.f,E.si=u.si;else if(p.includes(u.si))E.f=null,E.si=u.si;else{const I=i.getFormulaStringByCell(c.range.rows[f%c.range.rows.length],c.range.cols[m%c.range.cols.length],c.subUnitId,c.unitId);E.f=I,E.si=null}E.v=null,E.p=null,d.setValue(R,v,E)}else l.isFormulaString(u.f)&&(E.f=u.f,E.si=null,E.v=null,E.p=null,d.setValue(R,v,E))}):o.forValue((f,m,u)=>{var I;const R=n.rows[f],v=n.cols[m],E={};if(l.isFormulaId(u.si)){if(c.unitId!==e||c.subUnitId!==t){const _=i.getFormulaStringByCell(c.range.rows[f%c.range.rows.length],c.range.cols[m%c.range.cols.length],c.subUnitId,c.unitId),y=n.cols[m]-c.range.cols[m%c.range.cols.length],T=n.rows[f]-c.range.rows[f%c.range.rows.length],F=s.moveFormulaRefOffset(_||"",y,T);E.si=null,E.f=F}else E.si=u.si,E.f=null;E.v=null,E.p=null,d.setValue(R,v,E)}else if(l.isFormulaString(u.f)){const _=`${f%c.range.rows.length}_${m%c.range.cols.length}`;let y=h.get(_);if(y)E.si=y,E.f=null;else{y=l.Tools.generateRandomId(6),h.set(_,y);const T=n.cols[m]-c.range.cols[m%c.range.cols.length],F=n.rows[f]-c.range.rows[f%c.range.rows.length],O=s.moveFormulaRefOffset(u.f||"",T,F);E.si=y,E.f=O}E.v=null,E.p=null,d.setValue(R,v,E)}else(I=g==null?void 0:g[R])!=null&&I[v]&&(E.v=u.v,E.f=null,E.si=null,E.p=u.p,d.setValue(R,v,E))}),p.length>0&&new l.ObjectMatrix(g).forValue((f,m,u)=>{if(!(c.range.rows.includes(f)&&c.range.cols.includes(m))&&!(n.rows.includes(f)&&n.cols.includes(m))&&p.includes(u==null?void 0:u.si)){const R=i.getFormulaStringByCell(f,m,c.subUnitId,c.unitId);d.setValue(f,m,{f:R,si:null,v:null,p:null})}}),d}function Jt(e){if(e!=null&&e.p){const t=e==null?void 0:e.p.body;if(t==null)return;const n=t.dataStream;return n.substring(n.length-2,n.length)===l.DEFAULT_EMPTY_DOCUMENT_VALUE?n.substring(0,n.length-2):n}}var fo=Object.getOwnPropertyDescriptor,ho=(e,t,n,o)=>{for(var r=o>1?void 0:o?fo(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Fe=(e,t)=>(n,o)=>t(n,o,e);let Je=class extends l.Disposable{constructor(t,n,o,r,s,i,c,d){super();K(this,"_previousShape");K(this,"_skeleton");this._context=t,this._sheetInterceptorService=n,this._formulaDataModel=o,this._themeService=r,this._renderManagerService=s,this._sheetSkeletonManagerService=i,this._commandService=c,this._logService=d,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{var n,o;if(t==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton:r}=t,s=(o=(n=this._skeleton)==null?void 0:n.worksheet)==null?void 0:o.getSheetId();if(this._changeRuntime(r),s!==r.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId:i,sheetId:c}=t;this._updateArrayFormulaRangeShape(i,c)}}}))}_changeRuntime(t){this._skeleton=t}_initInterceptorEditorStart(){this.disposeWithMe(l.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(H.BEFORE_CELL_EDIT,{handler:(t,n,o)=>{var u,R,v,E;const{row:r,col:s,unitId:i,subUnitId:c,worksheet:d}=n,h=this._formulaDataModel.getArrayFormulaRange(),g=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),t==null)return o(t);let p=null;const f=this._formulaDataModel.getFormulaStringByCell(r,s,c,i);if(f!==null&&(p={f}),t.v!=null&&t.v!==""&&((v=(R=(u=g[i])==null?void 0:u[c])==null?void 0:R[r])==null?void 0:v[s])==null)return p?{...t,...p}:o(t);const m=(E=h==null?void 0:h[i])==null?void 0:E[c];return m!=null&&(p=this._displayArrayFormulaRangeShape(m,r,s,i,c,d,p)),p?{...t,...p}:o(t)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((t,n)=>{(t.id===M.SetFormulaCalculationResultMutation.id||t.id===M.SetArrayFormulaDataMutation.id&&n&&n.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{H.SetWorksheetRowAutoHeightMutation.id===t.id&&requestIdleCallback(()=>{const n=t.params,{unitId:o,subUnitId:r,rowsAutoHeightInfo:s}=n;this._refreshArrayFormulaRangeShapeByRow(o,r,s)})}))}_displayArrayFormulaRangeShape(t,n,o,r,s,i,c){const d=this._formulaDataModel.getSheetFormulaData(r,s);return new l.ObjectMatrix(t).forValue((h,g,p)=>{var v;if(p==null)return!0;const{startRow:f,startColumn:m,endRow:u,endColumn:R}=p;if(h===n&&g===o)return this._createArrayFormulaRangeShape(p,r),!1;if(n>=f&&n<=u&&o>=m&&o<=R){const E=i.getCell(f,m);if((E==null?void 0:E.v)===M.ErrorType.SPILL)return;const I=(v=d==null?void 0:d[h])==null?void 0:v[g];return I==null||I.f==null?!0:(c==null&&(c={f:I.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(p,r),!1)}}),c}_createArrayFormulaRangeShape(t,n){const o=this._renderManagerService.getRenderById(n),r=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!o||!r)return;const{scene:s}=o;if(!s)return;const i=this._themeService.getCurrentTheme(),c={range:t,primary:null,style:{strokeWidth:1,stroke:i.hyacinth700,fill:new l.ColorKit(i.colorWhite).setAlpha(0).toString(),widgets:{}}},d=k.attachSelectionWithCoord(c,r),{rowHeaderWidth:h,columnHeaderHeight:g}=r,p=new k.SelectionControl(s,k.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:h,columnHeaderHeight:g});p.updateRangeBySelectionWithCoord(d),p.setEvent(!1),this._previousShape=p}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(t,n){if(this._previousShape){const{startRow:o,endRow:r,startColumn:s,endColumn:i}=this._previousShape.getRange(),c={startRow:o,endRow:r,startColumn:s,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(c,t)}}_checkCurrentSheet(t,n){const o=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!o)return!1;const r=o.worksheet;return r?r.unitId===t&&r.getSheetId()===n:!1}_updateArrayFormulaRangeShape(t,n){this._checkCurrentSheet(t,n)&&this._previousShape&&this._refreshArrayFormulaRangeShape(t)}_refreshArrayFormulaRangeShapeByRow(t,n,o){if(!this._checkCurrentSheet(t,n)||!this._previousShape)return;const{startRow:r,endRow:s,startColumn:i,endColumn:c}=this._previousShape.getRange();for(let d=0;d<o.length;d++){const{row:h}=o[d];if(r>=h){const g={startRow:r,endRow:s,startColumn:i,endColumn:c};this._refreshArrayFormulaRangeShape(t,g);break}}}};Je=ho([Fe(1,l.Inject(H.SheetInterceptorService)),Fe(2,l.Inject(M.FormulaDataModel)),Fe(3,l.Inject(l.ThemeService)),Fe(4,W.IRenderManagerService),Fe(5,l.Inject(k.SheetSkeletonManagerService)),Fe(6,l.ICommandService),Fe(7,l.ILogService)],Je);var mo=Object.getOwnPropertyDescriptor,go=(e,t,n,o)=>{for(var r=o>1?void 0:o?mo(t,n):t,s=e.length-1,i;s>=0;s--)(i=e[s])&&(r=i(r)||r);return r},Ot=(e,t)=>(n,o)=>t(n,o,e);const po={tl:{size:6,color:"#409f11"}};let Qe=class extends l.RxDisposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._formulaDataModel=t,this.disposeWithMe(this._sheetInterceptorService.intercept(H.INTERCEPTOR_POINT.CELL_CONTENT,{effect:l.InterceptorEffectEnum.Style,handler:(n,o,r)=>{var c,d,h,g;const s=(g=(h=(d=(c=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:c[o.unitId])==null?void 0:d[o.subUnitId])==null?void 0:h[o.row])==null?void 0:g[o.col];return Xt(n,!!s)?r({...n,markers:{...n==null?void 0:n.markers,...po}}):r(n)},priority:10}))}};Qe=go([Ot(0,l.Inject(H.SheetInterceptorService)),Ot(1,l.Inject(M.FormulaDataModel))],Qe);function So(){const e=a.useDependency(Ne.TriggerCalculationController),t=a.useDependency(l.ICommandService),n=a.useObservable(e.progress$),o=S.useCallback(()=>{t.executeCommand(M.SetFormulaCalculationStopMutation.id)},[t]),r=S.useCallback(()=>{e.clearProgress()},[e]);return C.jsx(a.ProgressBar,{progress:n,onTerminate:o,onClearProgress:r})}const vo=(e,t=100)=>{S.useEffect(()=>{let n=null;const o=()=>{n===null&&(n=window.setTimeout(()=>{e(),n=null},t))};return window.addEventListener("scroll",o),window.addEventListener("resize",o),()=>{n!==null&&clearTimeout(n),window.removeEventListener("scroll",o),window.removeEventListener("resize",o)}},[e,t])},Co="univer-formula-help-function",Io="univer-formula-help-function-title",Ro="univer-formula-help-function-title-icons",Eo="univer-formula-help-function-title-icon",_o="univer-formula-help-function-content",yo="univer-formula-help-function-content-inner",bo="univer-formula-help-function-content-params",To="univer-formula-help-function-content-params-title",xo="univer-formula-help-function-content-params-detail",Fo="univer-formula-help-function-active",Mo="univer-formula-help-decorator",No="univer-formula-help-param",Do="univer-formula-help-param-prefix",Oo="univer-formula-help-param-item",Ao="univer-formula-help-param-active",J={formulaHelpFunction:Co,formulaHelpFunctionTitle:Io,formulaHelpFunctionTitleIcons:Ro,formulaHelpFunctionTitleIcon:Eo,formulaHelpFunctionContent:_o,formulaHelpFunctionContentInner:yo,formulaHelpFunctionContentParams:bo,formulaHelpFunctionContentParamsTitle:To,formulaHelpFunctionContentParamsDetail:xo,formulaHelpFunctionActive:Fo,formulaHelpDecorator:Mo,formulaHelpParam:No,formulaHelpParamPrefix:Do,formulaHelpParamItem:Oo,formulaHelpParamActive:Ao};function Po(){const[e,t]=S.useState(!1),[n,o]=S.useState(!0),[r,s]=S.useState(!0),[i,c]=S.useState(0),[d,h]=S.useState([0,0]),[g,p]=S.useState({left:0,top:0}),[f,m]=S.useState(null),u=a.useDependency(Ue),R=a.useDependency(l.LocaleService),v=R.t("formula.prompt.required"),E=R.t("formula.prompt.optional"),I=a.useDependency(l.IUniverInstanceService),_=a.useDependency(z.IEditorService),y=a.useDependency(a.ISidebarService),T=a.useInjector();vo(F),S.useEffect(()=>{const x=u.help$.subscribe(D=>{const{visible:N,paramIndex:b,functionInfo:w}=D;if(!N){t(N);return}const j=O();if(j==null)return;const{left:$,top:U,height:q}=j;w.description===""&&w.functionParameter.length===0||(h([$,U+q]),c(b),m(w),p({left:$,top:U}),t(N))}),L=y.scrollEvent$.pipe(B.throttleTime(100)).subscribe(F);return()=>{x==null||x.unsubscribe(),L.unsubscribe()}},[]);function F(){if(!r)return;const x=O();if(x==null)return;const{left:L,top:D,height:N}=x;h([L,D+N])}function O(){const x=I.getCurrentUniverDocInstance();if(!x)return;const L=x.getUnitId();if(!_.isEditor(L))return;const D=_.getEditor(L);return D==null?void 0:D.getBoundingClientRect()}function A(x){c(x)}function P(){s(!r),T.get(a.ILayoutService).focus()}return C.jsx(C.Fragment,{children:r?C.jsx(ne.Popup,{visible:e,offset:d,children:f?C.jsxs("div",{className:J.formulaHelpFunction,children:[C.jsxs("div",{className:J.formulaHelpFunctionTitle,children:[C.jsx(wo,{prefix:f.functionName,value:f.functionParameter,active:i,onClick:A}),C.jsxs("div",{className:J.formulaHelpFunctionTitleIcons,children:[C.jsx("div",{className:J.formulaHelpFunctionTitleIcon,style:{transform:n?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>o(!n),children:C.jsx(pt,{})}),C.jsx("div",{className:J.formulaHelpFunctionTitleIcon,onClick:P,children:C.jsx(ot,{})})]})]}),C.jsx("div",{className:J.formulaHelpFunctionContent,style:{height:n?"unset":0,padding:n?"revert-layer":0},children:C.jsxs("div",{className:J.formulaHelpFunctionContentInner,children:[C.jsx(lt,{title:R.t("formula.prompt.helpExample"),value:`${f.functionName}(${f.functionParameter.map(x=>x.example).join(",")})`}),C.jsx(lt,{title:R.t("formula.prompt.helpAbstract"),value:f.description}),f&&f.functionParameter&&f.functionParameter.map((x,L)=>C.jsx(lt,{className:i===L?J.formulaHelpFunctionActive:"",title:x.name,value:`${x.require?v:E} ${x.detail}`},L))]})})]}):C.jsx(C.Fragment,{})}):e?C.jsx("div",{className:J.formulaHelpDecorator,onClick:()=>s(!r),style:{left:g.left-24,top:g.top},children:C.jsx(Bt,{})}):C.jsx(C.Fragment,{})})}const lt=e=>C.jsxs("div",{className:J.formulaHelpFunctionContentParams,children:[C.jsx("div",{className:`
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
9
|
+
`,children:t}),y.jsx("div",{className:`
|
|
10
|
+
univer-whitespace-pre-wrap univer-break-words univer-text-xs univer-font-normal univer-text-gray-500
|
|
11
|
+
`,children:n})]}),In=e=>{const{prefix:t,value:n,active:s,onClick:r}=e;return y.jsxs("div",{children:[y.jsxs("span",{children:[t,"("]}),n&&n.map((o,i)=>y.jsxs("span",{children:[y.jsx("span",{className:s===i?"univer-text-primary-500":"",onClick:()=>r(i),children:kt(o)}),i===n.length-1?"":","]},o.name)),")"]})},mt=()=>{};function bn(e){const{onParamsSwitch:t=mt,onClose:n=mt,isFocus:s,editor:r,formulaText:o}=e,{functionInfo:i,paramIndex:c,reset:d}=En(s,o,r),f=p.useMemo(()=>!!i&&c>=0,[i,c]),m=l.useDependency(w.IEditorBridgeService),S=!l.useObservable(m.helpFunctionVisible$),[h,g]=p.useState(!0),u=l.useDependency(a.LocaleService),_=u.t("formula.prompt.required"),v=u.t("formula.prompt.optional"),C=r.getEditorId(),[R]=Lt(C,f,[i,c]);function I(M){t&&t(M)}const E=l.useEvent(M=>{m.helpFunctionVisible$.next(!M)}),b=()=>{E(!0),n()};return f&&i?S?y.jsx(l.RectPopup,{portal:!0,anchorRect$:R,direction:"left-center",children:y.jsx(yn,{onClick:()=>E(!1)})},"hidden"):y.jsx(l.RectPopup,{portal:!0,onClickOutside:()=>d(),anchorRect$:R,direction:"vertical",children:y.jsxs("div",{className:`
|
|
12
|
+
univer-m-0 univer-box-border univer-w-[250px] univer-select-none univer-list-none
|
|
13
|
+
univer-rounded-lg univer-border univer-border-solid univer-border-gray-200 univer-bg-white
|
|
14
|
+
univer-leading-5 univer-shadow-md univer-outline-none
|
|
15
|
+
`,children:[y.jsxs("div",{className:`
|
|
16
|
+
univer-box-border univer-flex univer-items-center univer-justify-between univer-border-x-0
|
|
17
|
+
univer-border-b univer-border-t-0 univer-border-solid univer-border-gray-200 univer-px-4
|
|
18
|
+
univer-py-3 univer-text-xs univer-font-medium univer-text-gray-900 univer-wrap-anywhere
|
|
19
|
+
`,children:[y.jsx(In,{prefix:i.functionName,value:i.functionParameter,active:c,onClick:I}),y.jsxs("div",{className:"univer-flex",children:[y.jsx("div",{className:`
|
|
20
|
+
univer-ml-2 univer-flex univer-h-6 univer-w-6 univer-cursor-pointer
|
|
21
|
+
univer-items-center univer-justify-center univer-rounded univer-border-0
|
|
22
|
+
univer-bg-transparent univer-p-0 univer-text-xs univer-text-gray-500
|
|
23
|
+
univer-outline-none univer-transition-colors
|
|
24
|
+
hover:univer-bg-gray-200
|
|
25
|
+
`,style:{transform:h?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>g(!h),children:y.jsx(wt,{})}),y.jsx("div",{className:`
|
|
26
|
+
univer-ml-2 univer-flex univer-h-6 univer-w-6 univer-cursor-pointer
|
|
27
|
+
univer-items-center univer-justify-center univer-rounded univer-border-0
|
|
28
|
+
univer-bg-transparent univer-p-0 univer-text-xs univer-text-gray-600
|
|
29
|
+
univer-outline-none univer-transition-colors
|
|
30
|
+
hover:univer-bg-gray-300
|
|
31
|
+
`,onClick:b,children:y.jsx(Nt,{})})]})]}),y.jsx("div",{className:`
|
|
32
|
+
univer-box-border univer-max-h-[350px] univer-overflow-y-auto univer-px-4 univer-pb-3
|
|
33
|
+
univer-pt-0
|
|
34
|
+
`,style:{height:h?"unset":0,padding:h?"revert-layer":0},children:y.jsxs("div",{className:"univer-mt-3",children:[y.jsx(Je,{title:u.t("formula.prompt.helpExample"),value:`${i.functionName}(${i.functionParameter.map(M=>M.example).join(",")})`}),y.jsx(Je,{title:u.t("formula.prompt.helpAbstract"),value:i.description}),i&&i.functionParameter&&i.functionParameter.map((M,F)=>y.jsx(Je,{className:c===F?"univer-text-primary-500":"",title:M.name,value:`${M.require?_:v} ${M.detail}`},F))]})})]})},"show"):null}const Tn=e=>{const t=l.useDependency(X.IEditorService);return l.useEvent(s=>{var r,o;if(e){t.focus(e.getEditorId());const i=[...e.getSelectionRanges()];if(a.Tools.isDefine(s))e.setSelectionRanges([{startOffset:s,endOffset:s}]);else if(!i.length&&!e.docSelectionRenderService.isOnPointerEvent){const c=(o=(r=e.getDocumentData().body)==null?void 0:r.dataStream)!=null?o:`\r
|
|
35
|
+
`,d=Math.max(c.length-2,0);e.setSelectionRanges([{startOffset:d,endOffset:d}])}else e.setSelectionRanges(i)}})};var xn=Object.getOwnPropertyDescriptor,Mn=(e,t,n,s)=>{for(var r=s>1?void 0:s?xn(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Ne=(e,t)=>(n,s)=>t(n,s,e);exports.RefSelectionsRenderService=class extends w.BaseSelectionRenderService{constructor(n,s,r,o,i,c,d){super(s,r,o,i,c);K(this,"_workbookSelections");K(this,"_eventDisposables");this._context=n,this._contextService=c,this._refSelectionsService=d,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(On(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(n){this._remainLastEnabled=n}setSkipLastEnabled(n){this._skipLastEnabled=n}clearLastSelection(){const n=this._selectionControls[this._selectionControls.length-1];n&&(n.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),a.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var n;(n=this._eventDisposables)==null||n.dispose(),this._eventDisposables=null}disableSelectionChanging(){this._disableSelectionChanging()}_initCanvasEventListeners(){const n=this._getSheetObject(),{spreadsheetRowHeader:s,spreadsheetColumnHeader:r,spreadsheet:o,spreadsheetLeftTopPlaceholder:i}=n,{scene:c}=this._context,d=new a.DisposableCollection;return d.add(o==null?void 0:o.onPointerDown$.subscribeEvent((f,m)=>{this.inRefSelectionMode()&&(this._onPointerDown(f,o.zIndex+1,a.RANGE_TYPE.NORMAL,this._getActiveViewport(f)),f.button!==2&&m.stopPropagation())})),d.add(s==null?void 0:s.onPointerDown$.subscribeEvent((f,m)=>{if(!this.inRefSelectionMode())return;const S=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:h}=w.getCoordByOffset(f.offsetX,f.offsetY,c,S);w.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),h,a.RANGE_TYPE.ROW)||(this._onPointerDown(f,(o.zIndex||1)+1,a.RANGE_TYPE.ROW,this._getActiveViewport(f),B.ScrollTimerType.Y),f.button!==2&&m.stopPropagation())})),d.add(r==null?void 0:r.onPointerDown$.subscribeEvent((f,m)=>{if(!this.inRefSelectionMode())return;const S=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:h}=w.getCoordByOffset(f.offsetX,f.offsetY,c,S);w.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),h,a.RANGE_TYPE.COLUMN)||(this._onPointerDown(f,(o.zIndex||1)+1,a.RANGE_TYPE.COLUMN,this._getActiveViewport(f),B.ScrollTimerType.X),f.button!==2&&m.stopPropagation())})),d.add(i==null?void 0:i.onPointerDown$.subscribeEvent((f,m)=>{if(this._reset(),!this.inRefSelectionMode())return;const S=this._sheetSkeletonManagerService.getCurrent().skeleton,h=w.getAllSelection(S);this._addSelectionControlByModelData(h),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const g=c.onPointerUp$.subscribeEvent(()=>{g.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});f.button!==2&&m.stopPropagation()})),d}_addSelectionControlByModelData(n){var c;const s=this._skeleton,r=(c=n.style)!=null?c:w.genNormalSelectionStyle(this._themeService),o=this._scene;return n.style=r,this.newSelectionControl(o,s,n)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(n=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(n||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(n=>{this._updateSelections(n,$.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(n=>{this._updateSelections(n,$.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(n=>{this._updateSelections(n,$.SelectionMoveType.MOVE_END)}))}_updateSelections(n,s){const o=this._context.unit.getActiveSheet().getSheetId();n.length!==0&&this._workbookSelections.setSelections(o,n.map(i=>$.convertSelectionDataToRange(i)),s)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{if(!n)return;const{skeleton:s}=n,{scene:r}=this._context,o=r.getViewport(B.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==s.worksheet.getSheetId()&&this._reset(),this._changeRuntime(s,r,o);const i=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(i)}))}_getActiveViewport(n){const s=this._getSheetObject();return s==null?void 0:s.scene.getActiveViewportByCoord(B.Vector2.FromArray([n.offsetX,n.offsetY]))}_getSheetObject(){return w.getSheetObject(this._context.unit,this._context)}_onPointerDown(n,s=0,r=a.RANGE_TYPE.NORMAL,o,i=B.ScrollTimerType.ALL){var j;this._rangeType=r;const c=this._skeleton,d=this._scene;if(!d||!c)return;o&&(this._activeViewport=o);const{offsetX:f,offsetY:m}=n,S=d.getViewport(B.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!S)return;const h=d.getCoordRelativeToViewport(B.Vector2.FromArray([f,m])),{x:g,y:u}=h;this._startViewportPosX=g,this._startViewportPosY=u;const _=d.getScrollXYInfoByViewport(h),{scaleX:v,scaleY:C}=d.getAncestorScale(),R=this._skeleton.getCellByOffset(g,u,v,C,_);if(!R)return;switch(r){case a.RANGE_TYPE.NORMAL:break;case a.RANGE_TYPE.ROW:R.startColumn=0,R.endColumn=this._skeleton.getColumnCount()-1;break;case a.RANGE_TYPE.COLUMN:R.startRow=0,R.endRow=this._skeleton.getRowCount()-1;break;case a.RANGE_TYPE.ALL:R.startRow=0,R.startColumn=0,R.endRow=this._skeleton.getRowCount()-1,R.endColumn=this._skeleton.getColumnCount()-1}const I={range:R,primary:R,style:null};I.range.rangeType=r;const E=w.attachSelectionWithCoord(I,this._skeleton);this._startRangeWhenPointerDown={...E.rangeWithCoord};const b={...E.rangeWithCoord,rangeType:r};let M=this.getActiveSelectionControl();const F=this.getSelectionControls();for(const D of F){if(n.button===2&&a.Rectangle.contains(D.model,b)){M=D;return}if(D.model.isEqual(b)){M=D;break}}this._checkClearPreviousControls(n);const L=M==null?void 0:M.model.currentCell,P=n.shiftKey&&L,A=this._remainLastEnabled&&!n.ctrlKey&&!n.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;P&&L?this._makeSelectionByTwoCells(L,b,c,r,M):A&&M?M.updateRangeBySelectionWithCoord(E):M=this.newSelectionControl(d,c,I);for(let D=0;D<this.getSelectionControls().length-1;D++)this.getSelectionControls()[D].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),d.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(j=d.getTransformer())==null||j.clearSelectedObjects(),this._setupPointerMoveListener(S,M,r,i,g,u),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=d.onPointerUp$.subscribeEvent(()=>{var D;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(D=this._escapeShortcutDisposable)==null||D.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(n,s,r){const o=this.getSelectionControls().length,{rowHeaderWidth:i,columnHeaderHeight:c}=s,d=new w.SelectionControl(n,o,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:i,columnHeaderHeight:c}),f=w.attachSelectionWithCoord(r,s);return d.updateRangeBySelectionWithCoord(f),this._selectionControls.push(d),d.setControlExtension({skeleton:s,scene:n,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),d}};exports.RefSelectionsRenderService=Mn([Ne(1,a.Inject(a.Injector)),Ne(2,a.Inject(a.ThemeService)),Ne(3,l.IShortcutService),Ne(4,a.Inject(w.SheetSkeletonManagerService)),Ne(5,a.IContextService),Ne(6,$.IRefSelectionsService)],exports.RefSelectionsRenderService);function On(e){const t=w.genNormalSelectionStyle(e);return t.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},t}function Nn(e){var r,o;const n=e.get(a.IUniverInstanceService).getCurrentUniverDocInstance();return n!=null&&n.getBody()?{dataStream:(o=(r=n.getBody())==null?void 0:r.dataStream)!=null?o:"",offset:0}:void 0}var Se=(e=>(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))(Se||{});function Dn(e){var F;const{editorId:t,isFocus:n,disableOnClick:s,unitId:r,subUnitId:o}=e,i=l.useDependency(B.IRenderManagerService),c=l.useDependency(a.IUniverInstanceService),d=i.getRenderById(r),f=i.getRenderById(t),m=f==null?void 0:f.with(X.DocSelectionRenderService),S=l.useDependency(Rt.DocSelectionManagerService),h=l.useDependency(a.Injector),[g,u]=p.useState(0),_=l.useDependency(T.LexerTreeBuilder),v=p.useRef(!0),C=d==null?void 0:d.with(exports.RefSelectionsRenderService),R=Te(g),I=c.getUnit(r,a.UniverInstanceType.UNIVER_SHEET),E=I==null?void 0:I.getSheetBySheetId(o),b=l.useEvent(L=>{C&&C.setSkipLastEnabled(L===1||L===3),R.current=L,u(L)}),M=l.useEvent(()=>{var W,ne;if(!I)return;const L=I.getActiveSheet(),P=m==null?void 0:m.getActiveTextRange(),A=P!=null&&P.collapsed?P.startOffset:-1,j=Nn(h);if(!j)return;const D=(W=j==null?void 0:j.dataStream)==null?void 0:W.slice(0,-2),O=((ne=_.sequenceNodesBuilder(D))!=null?ne:[]).map(q=>typeof q=="object"?q.nodeType===T.sequenceNodeType.REFERENCE?{...q,range:T.deserializeRangeWithSheetWithCache(q.token)}:{...q,range:void 0}:q),x=D[A-1],N=D[A],k=O.find(q=>typeof q=="object"&&q.nodeType===T.sequenceNodeType.REFERENCE&&A===q.endIndex+2),U=x&&T.matchRefDrawToken(x)&&(!N||T.isFormulaLexerToken(N)&&N!==T.matchToken.OPEN_BRACKET),V=!!k;if((D==null?void 0:D.substring(0,1))==="="&&(U||V))if(V){if(v.current)return;!k.range.sheetName&&L.getSheetId()===(E==null?void 0:E.getSheetId())||k.range.sheetName===L.getName()?b(2):b(3)}else v.current=!1,b(1);else b(0)});return p.useEffect(()=>{const L=S.textSelection$.pipe(H.filter(P=>P.unitId===t)).subscribe(()=>{M()});return()=>L.unsubscribe()},[M,S.textSelection$,t]),p.useEffect(()=>{n||(b(0),v.current=!0)},[n,b]),p.useEffect(()=>{var P;if(!s)return;const L=(P=f==null?void 0:f.mainComponent)==null?void 0:P.onPointerDown$.subscribeEvent(()=>{b(0),v.current=!0});return()=>L==null?void 0:L.unsubscribe()},[s,(F=f==null?void 0:f.mainComponent)==null?void 0:F.onPointerDown$,b]),p.useEffect(()=>{if(!n)return;const L=I==null?void 0:I.activeSheet$.subscribe(()=>{M()});return()=>L==null?void 0:L.unsubscribe()},[M,n,I==null?void 0:I.activeSheet$]),{isSelecting:g,isSelectingRef:R}}const An=()=>{const e=l.useDependency(T.LexerTreeBuilder);return p.useCallback(n=>e.sequenceNodesBuilder(n)||[],[e])};function wn(e,t,n){const s=new a.ColorKit(t).setAlpha(.05).toRgbString();return{id:n,strokeWidth:1,stroke:e.getColorFromTheme(t),fill:s,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 Pt(e){var I,E,b;const{unitId:t,subUnitId:n,currentWorkbook:s,refSelections:r,editor:o,refSelectionsService:i,refSelectionsRenderService:c,sheetSkeletonManagerService:d,themeService:f,univerInstanceService:m}=e,S=s.getUnitId(),h=m.getUnit(t,a.UniverInstanceType.UNIVER_SHEET),g=h==null?void 0:h.getActiveSheet(),u=[];if(!h||!g){i.setSelections(u);return}const _=g.getSheetId(),v=M=>{var F;return(F=h==null?void 0:h.getSheetBySheetName(M))==null?void 0:F.getSheetId()};if(!((I=d==null?void 0:d.getWorksheetSkeleton(_))==null?void 0:I.skeleton))return;const R=[];for(let M=0,F=r.length;M<F;M++){const L=r[M],{themeColor:P,token:A,refIndex:j,endIndex:D}=L,O=T.deserializeRangeWithSheet(A),{unitId:x,sheetName:N,range:k}=O,U=v(N);if(S!==t&&x!==S||x&&x!==S||U&&U!==_||!U&&_!==n)continue;const V=$.setEndForRange(k,g.getRowCount(),g.getColumnCount());V.unitId=t,V.sheetId=_,u.push({range:V,primary:null,style:wn(f,P,j.toString())}),R.push(D)}if(o){const M=(b=(E=o.getSelectionRanges())==null?void 0:E[0])==null?void 0:b.startOffset,F=R.findIndex(L=>L+2===M);F!==-1?c==null||c.setActiveSelectionIndex(F):c==null||c.resetActiveSelectionIndex()}return u}function Fn(e,t){const n=l.useDependency(a.IUniverInstanceService),s=l.useDependency(a.ThemeService),r=l.useDependency($.IRefSelectionsService),i=l.useDependency(B.IRenderManagerService).getRenderById(e),c=i==null?void 0:i.with(exports.RefSelectionsRenderService),d=i==null?void 0:i.with(w.SheetSkeletonManagerService),f=l.useEvent((m,S)=>{const h=n.getCurrentUnitOfType(a.UniverInstanceType.UNIVER_SHEET);if(!h||c!=null&&c.selectionMoving)return;const g=Pt({unitId:e,subUnitId:t,currentWorkbook:h,refSelections:m,editor:S,refSelectionsService:r,refSelectionsRenderService:c,sheetSkeletonManagerService:d,themeService:s,univerInstanceService:n});if(!g)return;((c==null?void 0:c.getSelectionControls())||[]).length===g.length?c==null||c.resetSelectionsByModelData(g):r.setSelections(g)});return p.useEffect(()=>()=>{c==null||c.resetActiveSelectionIndex()},[c]),f}function jt(e=""){const t=l.useDependency(ye.IDescriptionService),n=kn(),s=l.useDependency(a.ICommandService),r=p.useMemo(()=>e.length,[e]);return l.useEvent((i,c,d=!0,f)=>{const m=i.getDocumentData(),S=i.getEditorId();if(!m)return[];const h=m.body;if(!h)return[];const g=h.dataStream.slice(0,h.dataStream.length-2),u={dataStream:"",...m.body};if(!g.startsWith(e))return[];if(c==null||c.length===0)return u.textRuns=[],s.syncExecuteCommand(X.ReplaceTextRunsCommand.id,{unitId:S,body:a.getBodySlice(u,0,u.dataStream.length-2)}),[];{const{textRuns:_,refSelections:v}=Ln(t,n,c);r&&_.forEach(I=>{I.ed=I.ed+r,I.st=I.st+r}),u.textRuns=[{st:0,ed:1,ts:{fs:11}},..._];const C=c.reduce((I,E)=>typeof E=="string"?`${I}${E}`:`${I}${E.token}`,"");u.dataStream=`${e}${C}\r
|
|
36
|
+
`;let R;if(d){R=i.getSelectionRanges();const I=u.dataStream.length-2+r;R.forEach(E=>{E.startOffset=Math.max(0,Math.min(E.startOffset,I)),E.endOffset=Math.max(0,Math.min(E.endOffset,I))})}return s.syncExecuteCommand(X.ReplaceTextRunsCommand.id,{unitId:S,body:a.getBodySlice(u,0,u.dataStream.length-2),textRanges:f!=null?f:R}),v}})}function kn(){const e=l.useDependency(a.ThemeService),t=e.getCurrentTheme();return p.useMemo(()=>{const s=[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")],r=e.getColorFromTheme("blue.700"),o=e.getColorFromTheme("jiqing.800"),i=e.getColorFromTheme("black");return{formulaRefColors:s,numberColor:r,stringColor:o,plainTextColor:i}},[t])}function Ln(e,t,n){const{formulaRefColors:s,numberColor:r,stringColor:o,plainTextColor:i}=t,c=[],d=[],f=new Map;let m=0;for(let S=0,h=n.length;S<h;S++){const g=n[S];if(typeof g=="string"){const I=c[c.length-1],E=I?I.ed:0,b=E+g.length;c.push({st:E,ed:b,ts:{cl:{rgb:i},fs:11}});continue}if(e.hasDefinedNameDescription(g.token.trim())){c.push({st:g.startIndex,ed:g.endIndex+1,ts:{cl:{rgb:i},fs:11}});continue}const{startIndex:u,endIndex:_,nodeType:v,token:C}=g;let R="";if(v===T.sequenceNodeType.REFERENCE){if(f.has(C))R=f.get(C);else{const I=m%s.length;R=s[I],f.set(C,R),m++}d.push({refIndex:S,themeColor:R,token:C,startIndex:g.startIndex,endIndex:g.endIndex,index:d.length})}else v===T.sequenceNodeType.NUMBER?R=r:(v===T.sequenceNodeType.STRING||v===T.sequenceNodeType.ARRAY)&&(R=o);R&&R.length>0?c.push({st:u,ed:_+1,ts:{cl:{rgb:R},fs:11}}):c.push({st:u,ed:_+1,ts:{cl:{rgb:i},fs:11}})}return{textRuns:c,refSelections:d}}const Pn=(e,t,n,s)=>{const r=l.useDependency(a.ICommandService),o=l.useDependency(l.IShortcutService),i=p.useRef(t);i.current=t;const c=p.useRef(s);c.current=s,p.useEffect(()=>{if(!n||!e)return;const f=`sheet.formula-embedding-editor.${n.getEditorId()}`,m=new a.DisposableCollection,S=(u,_)=>{if(c.current){c.current(u,_);return}let v=a.Direction.LEFT;u===l.KeyCode.ARROW_DOWN?v=a.Direction.DOWN:u===l.KeyCode.ARROW_UP?v=a.Direction.UP:u===l.KeyCode.ARROW_RIGHT&&(v=a.Direction.RIGHT),_===l.MetaKeys.SHIFT?r.executeCommand(X.MoveSelectionOperation.id,{direction:v}):r.executeCommand(X.MoveCursorOperation.id,{direction:v})},h=(u,_)=>{let v=a.Direction.DOWN;u===l.KeyCode.ARROW_DOWN?v=a.Direction.DOWN:u===l.KeyCode.ARROW_UP?v=a.Direction.UP:u===l.KeyCode.ARROW_LEFT?v=a.Direction.LEFT:u===l.KeyCode.ARROW_RIGHT&&(v=a.Direction.RIGHT),i.current?_===l.MetaKeys.CTRL_COMMAND?r.executeCommand(w.MoveSelectionCommand.id,{direction:v,jumpOver:w.JumpOver.moveGap,extra:"formula-editor",fromCurrentSelection:i.current===Se.NEED_ADD||i.current===Se.EDIT_OTHER_SHEET_REFERENCE}):_===l.MetaKeys.SHIFT?r.executeCommand(w.ExpandSelectionCommand.id,{direction:v,extra:"formula-editor"}):_===(l.MetaKeys.CTRL_COMMAND|l.MetaKeys.SHIFT)?r.executeCommand(w.ExpandSelectionCommand.id,{direction:v,jumpOver:w.JumpOver.moveGap,extra:"formula-editor"}):r.executeCommand(w.MoveSelectionCommand.id,{direction:v,extra:"formula-editor",fromCurrentSelection:i.current===Se.NEED_ADD||i.current===Se.EDIT_OTHER_SHEET_REFERENCE}):S(u,_)};return m.add(r.registerCommand({id:f,type:a.CommandType.OPERATION,handler(u,_){const{keyCode:v,metaKey:C}=_;h(v,C)}})),[{keyCode:l.KeyCode.ARROW_DOWN},{keyCode:l.KeyCode.ARROW_LEFT},{keyCode:l.KeyCode.ARROW_RIGHT},{keyCode:l.KeyCode.ARROW_UP},{keyCode:l.KeyCode.ARROW_DOWN,metaKey:l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_LEFT,metaKey:l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_RIGHT,metaKey:l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_UP,metaKey:l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_DOWN,metaKey:l.MetaKeys.CTRL_COMMAND},{keyCode:l.KeyCode.ARROW_LEFT,metaKey:l.MetaKeys.CTRL_COMMAND},{keyCode:l.KeyCode.ARROW_RIGHT,metaKey:l.MetaKeys.CTRL_COMMAND},{keyCode:l.KeyCode.ARROW_UP,metaKey:l.MetaKeys.CTRL_COMMAND},{keyCode:l.KeyCode.ARROW_DOWN,metaKey:l.MetaKeys.CTRL_COMMAND|l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_LEFT,metaKey:l.MetaKeys.CTRL_COMMAND|l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_RIGHT,metaKey:l.MetaKeys.CTRL_COMMAND|l.MetaKeys.SHIFT},{keyCode:l.KeyCode.ARROW_UP,metaKey:l.MetaKeys.CTRL_COMMAND|l.MetaKeys.SHIFT}].map(({keyCode:u,metaKey:_})=>({id:f,binding:_?u|_:u,preconditions:()=>!0,priority:900,staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keyCode:u,metaKey:_}})).forEach(u=>{m.add(o.registerShortcut(u))}),()=>{m.dispose()}},[r,n,e,o])},jn=(e,t,n,s=!0)=>{var h;const r=l.useDependency(B.IRenderManagerService),o=l.useDependency(a.IContextService),i=l.useDependency(l.IContextMenuService),c=l.useDependency($.IRefSelectionsService),d=l.useDependency(a.IUniverInstanceService),f=l.useObservable(p.useMemo(()=>d.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),[d])),m=r.getRenderById((h=f==null?void 0:f.getUnitId())!=null?h:""),S=m==null?void 0:m.with(exports.RefSelectionsRenderService);p.useLayoutEffect(()=>{if(e)return o.setContextValue(a.EDITOR_ACTIVATED,!0),()=>{o.setContextValue(a.EDITOR_ACTIVATED,!1),c.clear()}},[o,e,c]),p.useLayoutEffect(()=>{if(e&&t){const g=S==null?void 0:S.enableSelectionChanging();return o.setContextValue($.REF_SELECTIONS_ENABLED,!0),()=>{o.setContextValue($.REF_SELECTIONS_ENABLED,!1),g==null||g.dispose()}}},[o,e,S,t]),p.useEffect(()=>{if(e)return o.setContextValue(a.EDITOR_ACTIVATED,!0),s&&i.disable(),()=>{o.setContextValue(a.EDITOR_ACTIVATED,!1),s&&i.enable()}},[i,o,e,s]),p.useEffect(()=>{e&&(S==null||S.setSkipLastEnabled(!1))},[e,S])},Un=(e,t,n)=>{const s=l.useDependency(a.IUniverInstanceService),r=l.useDependency($.SheetsSelectionsService);return p.useCallback(()=>{if(e){const i=[...r.getWorkbookSelections(t).getSelectionsOfWorksheet(n)],c=s.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),d=c==null?void 0:c.getActiveSheet();(c==null?void 0:c.getUnitId())!==t&&s.setCurrentUnitForType(t),d&&d.getSheetId()===n&&r.setSelections(i)}},[e,r,n,t,s])},$n=e=>e.reduce((t,n)=>typeof n=="string"?t+n.length:t+n.token.length,0),tt=e=>e.map(t=>typeof t=="string"?t:t.token).join(""),je=(e,t=!1,n="",s=!1)=>!t&&!s?e.map(r=>T.serializeRange(r.range)):e.map(r=>s?T.serializeRangeToRefString(r):r.sheetName!==""&&r.sheetName!==n?T.serializeRangeWithSheet(r.sheetName,r.range):T.serializeRange(r.range)),Vn=e=>{var m,S,h;const{editor:t,lexerTreeBuilder:n}=e,s=t==null?void 0:t.getSelectionRanges();if((s==null?void 0:s.length)!==1)return;const o=s[0].startOffset-1,i=((S=(m=t==null?void 0:t.getDocumentData().body)==null?void 0:m.dataStream)!=null?S:`\r
|
|
37
|
+
`).slice(0,-2),c=(h=n.sequenceNodesBuilder(i.slice(1)))!=null?h:[],d=ot(c,o,!1),f=xt(c,d);return{nodeIndex:d,updatingRefIndex:f,sequenceNodes:c,offset:o}},Wn=()=>{},Bn=(e,t,n,s,r,o,i,c,d,f=Wn)=>{var j;const m=l.useDependency(B.IRenderManagerService),S=l.useDependency(a.IUniverInstanceService),h=l.useDependency(a.ICommandService),g=l.useDependency(Rt.DocSelectionManagerService),u=l.useDependency(a.ThemeService),_=l.useDependency(T.LexerTreeBuilder),v=S.getUnit(s),C=l.useEvent(D=>{var O,x;return(x=(O=v==null?void 0:v.getSheetBySheetId(D))==null?void 0:O.getName())!=null?x:""}),R=p.useMemo(()=>C(r),[C,r]),I=l.useObservable(v==null?void 0:v.activeSheet$),E=Te({activeSheet:I,sheetName:R}),b=l.useObservable(p.useMemo(()=>S.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET),[S])),M=m.getRenderById((j=b==null?void 0:b.getUnitId())!=null?j:""),F=M==null?void 0:M.with(exports.RefSelectionsRenderService),L=M==null?void 0:M.with(w.SheetSkeletonManagerService),P=l.useDependency($.IRefSelectionsService),A=l.useEvent((D,O)=>{var W,ne,q,le,xe,ee;const x=Vn({editor:d,lexerTreeBuilder:_});if(!x)return;const{nodeIndex:N,updatingRefIndex:k,sequenceNodes:U,offset:V}=x;if(n.current===Se.NEED_ADD)if(V!==0){if(N===-1&&U.length)return;const G=D[D.length-1],Z=U.splice(N+1),ie=(W=G.sheetId)!=null?W:r,Q={range:G,unitId:(ne=G.unitId)!=null?ne:b.getUnitId(),sheetName:C(ie)},ce=ie!==r,re=(b==null?void 0:b.getUnitId())!==s,Me=je([Q],i&&(ce||re),R,re);U.push({token:Me[0],nodeType:T.sequenceNodeType.REFERENCE});const ve=[...U,...Z],oe=tt(ve);f(oe,$n(U),O)}else{const G=D[D.length-1],Z=(q=G.sheetId)!=null?q:r,ie={range:G,unitId:(le=G.unitId)!=null?le:s,sheetName:C(Z)},ce=je([ie],i&&Z!==r);U.unshift({token:ce[0],nodeType:T.sequenceNodeType.REFERENCE});const re=tt(U);f(re,ce[0].length,O)}else if(n.current===Se.EDIT_OTHER_SHEET_REFERENCE){const G=D.pop();if(!G)return;const Z=U[N];if(typeof Z=="object"&&Z.nodeType===T.sequenceNodeType.REFERENCE){const ie=Z.token;Z.token=R===(I==null?void 0:I.getName())?T.serializeRange(G):T.serializeRangeWithSheet(I.getName(),G);const Q=V+(Z.token.length-ie.length);f(T.generateStringWithSequence(U),Q,O)}}else{const G=[...D];if(k!==-1){const z=G.pop();z&&G.splice(k,0,z)}let Z=0;const ie=U.map(z=>{var ae,ue,fe;if(typeof z=="string")return z;if(z.nodeType===T.sequenceNodeType.REFERENCE){const pe=T.deserializeRangeWithSheet(z.token);if(pe.sheetName||(pe.sheetName=R),i&&((ae=E.current.activeSheet)==null?void 0:ae.getName())!==pe.sheetName)return z.token;const de=G[Z];if(Z++,!de)return"";const Ze=(ue=de.sheetId)!=null?ue:r,Xe={range:de,unitId:(fe=de.unitId)!=null?fe:s,sheetName:C(Ze)};return je([Xe],i,R)[0]}return z.token});let Q="",ce;ie.forEach((z,ae)=>{Q+=z,ae===N&&(ce=Q.length)});const re=[];for(let z=Z;z<=D.length-1;z++){const ae=D[z],ue=(xe=ae.sheetId)!=null?xe:r,fe={range:ae,unitId:(ee=ae.unitId)!=null?ee:s,sheetName:C(ue)},de=je([fe],i&&ue!==r,R);re.push(de[0])}const Me=U[U.length-1],ve=Me&&(typeof Me=="string"?!1:Me.nodeType===T.sequenceNodeType.REFERENCE),oe=`${Q}${re.length&&ve?",":""}${re.join(",")}`;f(oe,!re.length&&ce?ce:oe.length,O)}});p.useEffect(()=>{if(F&&e){let D=!0;const O=(N,k)=>{if(D){D=!1;return}A(N.map(U=>U.rangeWithCoord),k)},x=new a.DisposableCollection;return x.add(F.selectionMoving$.subscribe(N=>{O(N,!1)})),x.add(F.selectionMoveEnd$.subscribe(N=>{O(N,!0)})),()=>{x.dispose()}}},[e,A,F]),p.useEffect(()=>{if(t&&F&&d){const D=new a.DisposableCollection,O=()=>{D.dispose(),F.getSelectionControls().forEach((k,U)=>{D.add(k.selectionScaling$.subscribe(V=>{const W=F.getSelectionDataWithStyle().map(q=>q.rangeWithCoord),ne=W[U];V.sheetId=ne.sheetId,V.unitId=ne.unitId,W[U]=V,A(W,!1)})),D.add(k.selectionMoving$.subscribe(V=>{const W=F.getSelectionDataWithStyle().map(q=>q.rangeWithCoord),ne=W[U];V.sheetId=ne.sheetId,V.unitId=ne.unitId,W[U]=V,A(W,!0)}))})},x=H.merge(d.input$,P.selectionSet$,F.selectionMoveEnd$).pipe(Qt.debounceTime(50)).subscribe(()=>{O()});return()=>{x.unsubscribe(),D.dispose()}}},[d,t,A,F,P.selectionSet$]),F==null||F.getSelectionDataWithStyle(),p.useEffect(()=>{if(c){const D=h.onCommandExecuted(O=>{var N;if(O.id!==$.SetSelectionsOperation.id)return;const x=O.params;if(x.extra==="formula-editor"&&x.selections.length){const k=x.selections[x.selections.length-1];if(k){const U=n.current===Se.NEED_ADD,V=((N=F==null?void 0:F.getSelectionDataWithStyle())!=null?N:[]).map(W=>W.rangeWithCoord);U?V.push(k.range):V[V.length-1]=k.range,A(V,!0)}}});return()=>{D.dispose()}}},[h,d,n,_,c,A,F]),p.useEffect(()=>{if(!d)return;const D=g.textSelection$.subscribe(O=>{O.unitId===d.getEditorId()&&Pt({unitId:s,subUnitId:r,refSelections:o.current,editor:d,refSelectionsService:P,refSelectionsRenderService:F,sheetSkeletonManagerService:L,themeService:u,univerInstanceService:S,currentWorkbook:b})});return()=>D.unsubscribe()},[g.textSelection$,d,o,F,P,L,r,u,s,S])},Hn=(e,t,n,s,r,o)=>{const i=l.useDependency(a.ICommandService),c=l.useDependency(X.IEditorService),f=l.useDependency(B.IRenderManagerService).getRenderById(t),m=l.useDependency(a.IUniverInstanceService),S=f==null?void 0:f.with(exports.RefSelectionsRenderService);p.useEffect(()=>{if(e&&S)if(n){const h=()=>{const _=S.getSelectionControls().length;for(let v=1;v<=_;v++)S.clearLastSelection();return setTimeout(()=>{o()},30)},g=i.onCommandExecuted(_=>{_.id===$.SetWorksheetActiveOperation.id&&h()}),u=m.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).subscribe(_=>{h()});return()=>{g.dispose(),u.unsubscribe()}}else{const h=i.beforeCommandExecuted(g=>{if(g.id===$.SetWorksheetActiveOperation.id){s(!1),r(),o();const u=c.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);u==null||u.focus()}});return()=>{h.dispose()}}},[e,S])},Kn=(e,t,n)=>{const s=l.useDependency(T.LexerTreeBuilder),r=p.useRef(!0);p.useEffect(()=>{if(e){const o=setTimeout(()=>{r.current=!1},500);return()=>{clearTimeout(o)}}},[e]),p.useEffect(()=>{if(!r.current&&t){const o=s.checkIfAddBracket(n);t(o===0&&n.startsWith(T.operatorToken.EQUALS),`${n}`)}},[n,t])},qn=(e,t=[],n)=>{const s=l.useDependency(ye.IDescriptionService),[r,o]=p.useState([]),[i,c]=p.useState(""),d=p.useRef(-1),f=Te({nodes:t}),m=()=>{o([]),c(""),d.current=-1};return p.useEffect(()=>{if(n&&e){const h=n.input$.pipe(H.debounceTime(300)).subscribe(()=>{const g=n.getSelectionRanges();if(g.length===1){const u=f.current.nodes,_=g[0];if(_.collapsed){const v=ot(u,_.startOffset-1,!1);d.current=v;const C=u[v];if(C&&typeof C!="string"&&C.nodeType===T.sequenceNodeType.FUNCTION){d.current=v;const R=C.token,I=s.getSearchListByNameFirstLetter(R);o(I),c(R);return}}}d.current=-1,c(""),o(u=>u!=null&&u.length?[]:u)});return()=>{h.unsubscribe()}}},[n,e]),p.useEffect(()=>{e||m()},[e]),{searchList:r,searchText:i,handlerFormulaReplace:h=>{const g=[...f.current.nodes];if(d.current!==-1){const u=g.splice(d.current+1),_=g.pop()||"";let v=(typeof _=="string"?_.length:_.token.length)-h.length;return g.push(h),u[0]!==T.matchToken.OPEN_BRACKET&&(g.push(T.matchToken.OPEN_BRACKET),v--),{text:tt([...g,...u]),offset:v}}},reset:m}},Yn=()=>{},zn=p.forwardRef(Gn);function Gn(e,t){const{isFocus:n,sequenceNodes:s,onSelect:r,editor:o,onClose:i=Yn}=e,c=o.getEditorId(),d=l.useDependency(l.IShortcutService),f=l.useDependency(a.ICommandService),{searchList:m,searchText:S,handlerFormulaReplace:h,reset:g}=qn(n,s,o),u=p.useMemo(()=>!!m.length,[m]),_=p.useRef(void 0),[v,C]=p.useState(0),R=p.useRef(!1),[I]=Lt(c,u,[S,m]),E=Te({searchList:m,active:v}),b=A=>{const j=h(A);j&&(g(),r(j))};function M(A){R.current&&C(A)}function F(){R.current&&C(-1)}p.useEffect(()=>{if(!m.length)return;const A=`sheet.formula-embedding-editor.search_function.${c}`,j=new a.DisposableCollection,D=O=>{const{searchList:x,active:N}=E.current;switch(O){case l.KeyCode.ARROW_UP:{C(k=>{const U=Math.max(0,k-1);return L(U),U});break}case l.KeyCode.ARROW_DOWN:{C(k=>{const U=Math.min(x.length-1,k+1);return L(U),U});break}case l.KeyCode.TAB:case l.KeyCode.ENTER:{const k=x[N];b(k.name);break}case l.KeyCode.ESC:{g(),i();break}}};return j.add(f.registerCommand({id:A,type:a.CommandType.OPERATION,handler(O,x){const{keyCode:N}=x;D(N)}})),[l.KeyCode.ARROW_UP,l.KeyCode.ARROW_DOWN,l.KeyCode.ENTER,l.KeyCode.ESC,l.KeyCode.TAB].map(O=>({id:A,binding:O,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keyCode:O}})).forEach(O=>{j.add(d.registerShortcut(O))}),()=>{j.dispose()}},[m]);function L(A){const j=_.current;if(!j)return;const D=j.children[A];if(!D)return;const x=j.getBoundingClientRect().top,N=j.offsetHeight,k=D.getBoundingClientRect(),U=k.top,V=k.height;if(U>=0&&U>x&&U-x+V<=N)return;const W=D.offsetTop-(N-V)/2;j.scrollTo({top:W,behavior:"smooth"})}const P=p.useMemo(()=>{let A="";return()=>{clearTimeout(A),R.current=!0,A=setTimeout(()=>{R.current=!1},300)}},[]);return m.length>0&&u&&y.jsx(l.RectPopup,{portal:!0,anchorRect$:I,direction:"vertical",children:y.jsx("ul",{className:J.clsx(`
|
|
38
|
+
univer-m-0 univer-box-border univer-max-h-[400px] univer-w-[250px] univer-list-none
|
|
39
|
+
univer-overflow-y-auto univer-rounded-lg univer-border univer-border-solid univer-border-gray-200
|
|
40
|
+
univer-bg-white univer-p-2 univer-leading-5 univer-shadow-md univer-outline-none
|
|
41
|
+
`,J.scrollbarClassName),ref:A=>{_.current=A,t&&(t.current=A)},children:m.map((A,j)=>y.jsxs("li",{className:`
|
|
42
|
+
univer-box-border univer-cursor-pointer univer-rounded univer-px-2 univer-py-1
|
|
43
|
+
univer-text-gray-900 univer-transition-colors
|
|
44
|
+
${v===j?"univer-bg-gray-200":""}
|
|
45
|
+
`,onMouseEnter:()=>M(j),onMouseLeave:F,onMouseMove:P,onClick:()=>{b(A.name),o&&o.focus()},children:[y.jsxs("span",{className:"univer-text-xs",children:[y.jsx("span",{className:"univer-text-red-500",children:A.name.substring(0,S.length)}),y.jsx("span",{children:A.name.slice(S.length)})]}),y.jsx("span",{className:"univer-block univer-text-xs univer-text-gray-400",children:A.desc})]},A.name))})})}const Zn=e=>e.startsWith(T.operatorToken.EQUALS)?e.slice(1):"",St=()=>{},Ut=p.forwardRef((e,t)=>{var lt,ut;const{errorText:n,initValue:s,unitId:r,subUnitId:o,isFocus:i=!0,isSupportAcrossSheet:c=!1,onFocus:d=St,onBlur:f=St,onChange:m,onVerify:S,className:h,editorId:g,moveCursor:u=!0,onFormulaSelectingChange:_,keyboardEventConfig:v,onMoveInEditor:C,resetSelectionOnBlur:R=!0,autoScrollbar:I=!0,isSingle:E=!0,disableSelectionOnClick:b=!1,autofocus:M=!0,disableContextMenu:F,style:L}=e,P=l.useDependency(X.IEditorService),A=p.useRef(null),j=l.useEvent(m);p.useImperativeHandle(t,()=>({isClickOutSide:Y=>A.current?!A.current.contains(Y.target):!1}));const D=l.useEvent(_),O=p.useRef(null),x=p.useRef(void 0),N=x.current,[k,U]=p.useState(i),V=p.useRef(null),W=p.useMemo(()=>g!=null?g:a.createInternalEditorID(`${w.EMBEDDING_FORMULA_EDITOR}-${a.generateRandomId(4)}`),[]),ne=p.useMemo(()=>n!==void 0,[n]),q=l.useDependency(a.IUniverInstanceService),le=q.getUnit(W);l.useObservable(le==null?void 0:le.change$);const xe=An(),ee=a.BuildTextUtils.transform.getPlainText((ut=(lt=le==null?void 0:le.getBody())==null?void 0:lt.dataStream)!=null?ut:""),G=Te(ee),Z=p.useMemo(()=>Zn(ee),[ee]),ie=p.useMemo(()=>xe(Z),[Z,xe]),{isSelecting:Q,isSelectingRef:ce}=Dn({unitId:r,subUnitId:o,editorId:W,isFocus:k,disableOnClick:b}),re=p.useRef(""),ve=l.useDependency(B.IRenderManagerService).getRenderById(W),oe=ve==null?void 0:ve.with(X.DocSelectionRenderService),z=oe==null?void 0:oe.isFocusing,ae=p.useMemo(()=>q.getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_DOC),[q]),ue=l.useObservable(ae),fe=(ue==null?void 0:ue.getUnitId())===W,pe=p.useRef([]),de=Q;l.useUpdateEffect(()=>{j(ee)},[ee,j]);const Ze=jt("="),Xe=Fn(r,o),Ce=l.useEvent((Y,te=!0,ge,he)=>{if(!x.current)return;re.current=Y;const ke=Y[0]==="="?Y.slice(1):"",me=xe(ke),zt=me.reduce((_e,Pe)=>typeof Pe=="object"?`${_e}${Pe.token}`:`${_e}${Pe}`,""),Le=Ze(x.current,zt===ke?me:[],te,he);if(pe.current=Le,ge){const _e=he!=null?he:N==null?void 0:N.getSelectionRanges();if((_e==null?void 0:_e.length)!==1)return;const Gt=_e[0].startOffset-1,Zt=ot(me,Gt,!1),dt=xt(me,Zt);if(dt>=0){const ht=Le.splice(dt,1)[0];ht&&Le.push(ht)}Xe(k?Le:[],x.current)}});p.useEffect(()=>{k&&Ce(ee,!1,!0)},[k]),p.useEffect(()=>{if(k){if(re.current===ee)return;Ce(ee,!1,!0)}},[ee]),Kn(k,S,ee);const Oe=Tn(N),at=Un(k,r,o);p.useEffect(()=>{var Y;D(Q,(Y=oe==null?void 0:oe.isFocusing)!=null?Y:!0)},[D,Q]),X.useKeyboardEvent(k,v,N),p.useLayoutEffect(()=>{let Y;if(V.current){Y=P.register({autofocus:M,editorUnitId:W,initialSnapshot:{id:W,body:{dataStream:`${s}\r
|
|
46
|
+
`,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[]},documentStyle:{}}},V.current);const te=P.getEditor(W);x.current=te,Ce(s,!1,!0)}return()=>{Y==null||Y.dispose()}},[]),p.useLayoutEffect(()=>{i?(U(i),Oe()):(R&&(N==null||N.blur(),at()),U(i))},[i,N,Oe,at,R]);const{checkScrollBar:Ht}=X.useResize(N,E,I);jn(k,!!(Q&&fe),r,F),Pn(!!(k&&z&&u),de,N,C);const Kt=l.useEvent((Y,te,ge)=>{if(!z)return;const he=te!==-1?[{startOffset:te+1,endOffset:te+1,collapsed:!0}]:void 0;Ce(`=${Y}`,!0,ge,he),ge&&(Oe(),te!==-1&&setTimeout(()=>{const ke={startOffset:te+1,endOffset:te+1},me=N==null?void 0:N.render.with(X.DocBackScrollRenderController);me==null||me.scrollToRange({...ke,collapsed:!0})},50),Ht())});Bn(k&&!!(Q&&fe),k,ce,r,o,pe,c,!!de,N,Kt),Hn(k&&!!(Q&&fe),r,c,U,f,()=>{Ce(G.current,!1,!0)});const qt=Y=>{if(Y){const te=N==null?void 0:N.getSelectionRanges();if(te&&te.length===1){const ge=te[0];if(ge.collapsed){const he=Y.offset;setTimeout(()=>{N==null||N.setSelectionRanges([{startOffset:ge.startOffset-he,endOffset:ge.endOffset-he}])},30)}}Oe(),Ce(`=${Y.text}`)}},Yt=()=>{U(!0),d(),Oe()};return y.jsxs("div",{className:h,children:[y.jsx("div",{className:J.clsx(`
|
|
47
|
+
univer-relative univer-box-border univer-flex univer-h-full univer-w-full univer-items-center
|
|
48
|
+
univer-justify-around univer-gap-2 univer-rounded-none univer-p-0 univer-ring-1
|
|
49
|
+
`,{"univer-ring-primary-500":k,"univer-ring-red-500":ne}),ref:A,children:y.jsx("div",{ref:V,className:"univer-relative univer-h-full univer-w-full",onMouseUp:Yt})}),n!==void 0?y.jsx("div",{className:"univer-my-1 univer-text-xs univer-text-red-500",children:n}):null,N?y.jsx(bn,{editor:N,isFocus:k,formulaText:ee,onClose:()=>Oe()}):null,N?y.jsx(zn,{isFocus:k,sequenceNodes:ie,onSelect:qt,ref:O,editor:N}):null]})});function Xn(e,t,n,s){const r=l.useDependency(T.LexerTreeBuilder),o=jt(""),i=l.useObservable(e==null?void 0:e.getDocumentDataModel().change$),[c,d]=p.useState([]),f=l.useDependency(w.IMarkSelectionService),m=p.useRef(""),S=l.useDependency(a.IUniverInstanceService);return p.useEffect(()=>{if(!e)return;const h=e.getDocumentDataModel().getPlainText();if(m.current===h)return;m.current=h;const g=r.sequenceNodesBuilder(h);d(g!=null?g:[])},[i,e,r]),p.useEffect(()=>{var u,_;if(!e)return;if(!t){const v=e.getDocumentData();e.setDocumentData({...v,body:{...v.body,dataStream:(_=(u=v.body)==null?void 0:u.dataStream)!=null?_:"",textRuns:[]}});return}const h=o(e,c,!1),g=new a.DisposableCollection;return h.forEach(v=>{const C=T.deserializeRangeWithSheet(v.token),R=S.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),I=R==null?void 0:R.getActiveSheet();if(!C.sheetName&&s!==(I==null?void 0:I.getSheetId())||C.sheetName&&(I==null?void 0:I.getName())!==C.sheetName)return;const E=new a.ColorKit(v.themeColor).toRgb(),b=f.addShape({range:C.range,style:{stroke:v.themeColor,fill:`rgba(${E.r}, ${E.g}, ${E.b}, 0.1)`,strokeDash:12},primary:null});b&&g.add(()=>f.removeShape(b))}),()=>{g.dispose()}},[e,t,o,f,c]),{sequenceNodes:c}}function Jn(e){const t=l.useDependency($.SheetsSelectionsService),{supportAcrossSheet:n=!1,unitId:s,subUnitId:r,onChange:o}=e,c=l.useDependency(a.IUniverInstanceService).getUnit(s,a.UniverInstanceType.UNIVER_SHEET),d=l.useEvent(o),f=l.useEvent((m,S)=>{const h=c==null?void 0:c.getActiveSheet();if(!h||!n&&h.getSheetId()!==r||!(m!=null&&m.length))return;const g=m.map(u=>({range:u.range,unitId:s,sheetName:h.getSheetId()===r?"":h.getName()}));d(g,S)});p.useEffect(()=>{const m=new a.DisposableCollection;return m.add(t.selectionMoveStart$.subscribe(S=>{f(S,!0)})),m.add(t.selectionMoving$.subscribe(S=>{f(S,!1)})),m.add(t.selectionMoveEnd$.subscribe(S=>{f(S,!1)})),()=>{m.dispose()}},[f,t.selectionMoveEnd$,t.selectionMoveStart$,t.selectionMoving$])}const vt=e=>!e.some(n=>{if(typeof n=="string"){if(n!==T.matchToken.COMMA)return!0}else if(n.nodeType!==T.sequenceNodeType.REFERENCE)return!0;return!1}),Qn=e=>{if(e.endColumn<e.startColumn){const t=e.endColumn;e.endColumn=e.startColumn,e.startColumn=t}if(e.endRow<e.startRow){const t=e.endRow;e.endRow=e.startRow,e.startRow=t}return e};function er(e){const{visible:t,initialValue:n,unitId:s,subUnitId:r,maxRangeCount:o=1/0,supportAcrossSheet:i,onConfirm:c,onClose:d,onShowBySelection:f}=e,m=l.useDependency(a.LocaleService),S=l.useDependency(T.LexerTreeBuilder),[h,g]=p.useState([]),[u,_]=p.useState(0),v=p.useRef(null);p.useEffect(()=>{if(t&&n.length){const E=n.map(b=>b.sheetName?T.serializeRangeWithSheet(b.sheetName,b.range):T.serializeRange(b.range));g(E),_(E.length-1)}else g([""]),_(0)},[t]);const C=(E,b)=>{const M=[...h];M[E]=b,g(M)},R=()=>{g([...h,""]),_(h.length)},I=E=>{h.splice(E,1),g([...h])};return Jn({unitId:s,subUnitId:r,supportAcrossSheet:i,onChange:(E,b)=>{if(!t&&f!=null&&f(E))return;const M=new Set(h),F=E.map(A=>A.sheetName?T.serializeRangeWithSheet(A.sheetName,A.range):T.serializeRange(A.range)),L=F.filter(A=>!M.has(A));if(!L.length)return;const P=[...h];if(F.length>1){b||P.splice(u,1),P.push(...L);const A=P.slice(0,o);g(A),_(A.length-1),requestAnimationFrame(()=>{var j;(j=v.current)==null||j.scrollTo({top:v.current.scrollHeight})})}else{P.splice(u,1,...L);const A=P.slice(0,o);g(A),_(u+L.length-1)}}}),y.jsx(J.Dialog,{width:"328px",open:t,title:m.t("rangeSelector.title"),draggable:!0,mask:!1,maskClosable:!1,footer:y.jsxs("footer",{children:[y.jsx(J.Button,{onClick:d,children:m.t("rangeSelector.cancel")}),y.jsx(J.Button,{style:{marginLeft:10},variant:"primary",onClick:()=>{c(h.filter(E=>{const b=S.sequenceNodesBuilder(E);return b&&b.length===1&&typeof b[0]!="string"&&b[0].nodeType===T.sequenceNodeType.REFERENCE}).map(E=>T.deserializeRangeWithSheet(E)).map(E=>({...E,range:Qn(E.range)})))},children:m.t("rangeSelector.confirm")})]}),onClose:d,children:y.jsxs("div",{ref:v,className:J.clsx("-univer-mx-6 univer-max-h-60 univer-overflow-y-auto univer-px-6",J.scrollbarClassName),children:[h.map((E,b)=>y.jsxs("div",{className:"univer-mb-2 univer-flex univer-items-center univer-justify-start univer-gap-4",children:[y.jsx(J.Input,{className:"univer-w-full",placeholder:m.t("rangeSelector.placeHolder"),onFocus:()=>_(b),value:E,onChange:M=>C(b,M),style:{borderColor:u===b?"rgb(var(--primary-color))":void 0}}),h.length>1&&y.jsx(Dt,{className:"univer-cursor-pointer",onClick:()=>I(b)})]},b)),h.length<o&&y.jsx("div",{children:y.jsxs(J.Button,{variant:"link",onClick:R,children:[y.jsx(At,{}),y.jsx("span",{children:m.t("rangeSelector.addAnotherRange")})]})})]})})}function tr(e){return e.split(T.matchToken.COMMA).filter(t=>!!t).map(t=>T.deserializeRangeWithSheet(t))}function nr(e){return e.map(t=>t.sheetName?T.serializeRangeWithSheet(t.sheetName,t.range):T.serializeRange(t.range)).join(T.matchToken.COMMA)}function it(e){const[t,n]=p.useState(null),{onVerify:s,selectorRef:r,unitId:o,subUnitId:i,maxRangeCount:c,supportAcrossSheet:d,autoFocus:f,onChange:m,onRangeSelectorDialogVisibleChange:S,onClickOutside:h,onFocusChange:g,forceShowDialogWhenSelectionChanged:u,hideEditor:_,resetRange:v}=e,[C,R]=p.useState(f!=null?f:!1),[I,E]=p.useState(!1),[b,M]=p.useState([]),F=l.useDependency(a.LocaleService),L=l.useDependency(X.IEditorService),{sequenceNodes:P}=Xn(t,C,o,i),A=Te(P),j=l.useDependency(a.ICommandService),D=l.useEvent(()=>{t==null||t.setSelectionRanges([]),t==null||t.blur(),L.blur()}),O=l.useEvent(()=>{var x;D(),M(tr((x=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?x:"")),E(!0)});return p.useEffect(()=>{r&&(r.current={get editor(){return t},focus(){L.focus(t.getEditorId())},blur:D,verify:()=>vt(A.current),showDialog:x=>{D(),M(x),E(!0)},hideDialog:()=>{M([]),E(!1)},getValue:()=>{var x;return(x=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?x:""}})},[D,t,L,r,A]),p.useEffect(()=>{var x;s==null||s(vt(P),(x=t==null?void 0:t.getDocumentDataModel().getPlainText())!=null?x:"")},[P]),p.useEffect(()=>{S==null||S(I)},[I]),p.useEffect(()=>{if(I&&v)return()=>{const x={unitId:o,subUnitId:i,selections:v};j.executeCommand($.SetSelectionsOperation.id,x)}},[I]),y.jsxs(y.Fragment,{children:[_?null:y.jsx(X.RichTextEditor,{isSingle:!0,...e,onFocusChange:(x,N)=>{R(x),g==null||g(x,N)},editorRef:n,onClickOutside:()=>{R(!1),D(),h==null||h()},icon:y.jsx(J.Tooltip,{title:F.t("rangeSelector.buttonTooltip"),placement:"bottom",children:y.jsx(Ft,{className:"univer-cursor-pointer",onClick:O})})}),y.jsx(er,{initialValue:b,unitId:o,subUnitId:i,visible:I,maxRangeCount:c,onConfirm:x=>{const N=nr(x),k=a.RichTextBuilder.newEmptyData();k.body.dataStream=N,t==null||t.replaceText(N,!1),m==null||m(k,N),E(!1),M([]),requestAnimationFrame(()=>{D()})},onClose:()=>{E(!1),M([])},supportAcrossSheet:d,onShowBySelection:x=>C||u?(M(x),E(!0),!1):!0})]})}class ct{constructor(){K(this,"_currentSelector$",new H.BehaviorSubject(null));K(this,"currentSelector$",this._currentSelector$.asObservable())}showRangeSelectorDialog(t){const n=t.callback,s=new Promise(r=>{t.callback=o=>{r(o),n(o)}});return this._currentSelector$.next(t),s}}var rr=Object.getOwnPropertyDescriptor,sr=(e,t,n,s)=>{for(var r=s>1?void 0:s?rr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Ue=(e,t)=>(n,s)=>t(n,s,e);exports.FormulaReorderController=class extends a.Disposable{constructor(t,n,s,r){super(),this._sheetInterceptorService=t,this._univerInstanceService=n,this._formulaDataModel=s,this._lexerTreeBuilder=r,this._initialize()}_initialize(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:t=>t.id===$.ReorderRangeCommand.id?this._reorderFormula(t.params):{redos:[],undos:[]}}))}_reorderFormula(t){const n=[],s=[],{unitId:r,subUnitId:o,range:i,order:c}=t,d=this._univerInstanceService.getUniverSheetInstance(r),f=d==null?void 0:d.getSheetBySheetId(o);if(!f)return{redos:n,undos:s};const m=f.getCellMatrix(),S=new a.ObjectMatrix,h=new a.ObjectMatrix;let g=!1;return a.Range.foreach(i,(u,_)=>{let v=u;c.hasOwnProperty(u)&&(v=c[u]);const C=m.getValue(v,_);if(C!=null&&C.f||C!=null&&C.si){g=!0;const R=this._formulaDataModel.getFormulaStringByCell(v,_,o,r),I=this._lexerTreeBuilder.moveFormulaRefOffset(R,0,u-v),E=a.Tools.deepClone(C);E.f=I,E.si=null,S.setValue(u,_,E)}else S.setValue(u,_,C);h.setValue(u,_,m.getValue(u,_))}),g?(n.push({id:$.SetRangeValuesMutation.id,params:{unitId:r,subUnitId:o,cellValue:S.getMatrix()}}),s.push({id:$.SetRangeValuesMutation.id,params:{unitId:r,subUnitId:o,cellValue:h.getMatrix()}}),{redos:n,undos:s}):{redos:n,undos:s}}};exports.FormulaReorderController=sr([Ue(0,a.Inject($.SheetInterceptorService)),Ue(1,a.Inject(a.IUniverInstanceService)),Ue(2,a.Inject(T.FormulaDataModel)),Ue(3,a.Inject(T.LexerTreeBuilder))],exports.FormulaReorderController);const or="sheets-formula-ui.base.config",pt={};function ir(e){return e.getContextValue(a.FOCUSING_DOC)&&e.getContextValue(a.FOCUSING_UNIVER_EDITOR)}function $t(e,t=!1){return!t&&!(a.isFormulaString(e==null?void 0:e.f)||a.isFormulaId(e==null?void 0:e.si))?null:typeof(e==null?void 0:e.v)=="string"&&T.ERROR_TYPE_SET.has(e.v)?e.v:null}var cr=Object.getOwnPropertyDescriptor,ar=(e,t,n,s)=>{for(var r=s>1?void 0:s?cr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},De=(e,t)=>(n,s)=>t(n,s,e);const Qe="SHEET_FORMULA_ALERT",lr={[T.ErrorType.DIV_BY_ZERO]:"divByZero",[T.ErrorType.NAME]:"name",[T.ErrorType.VALUE]:"value",[T.ErrorType.NUM]:"num",[T.ErrorType.NA]:"na",[T.ErrorType.CYCLE]:"cycle",[T.ErrorType.REF]:"ref",[T.ErrorType.SPILL]:"spill",[T.ErrorType.CALC]:"calc",[T.ErrorType.ERROR]:"error",[T.ErrorType.CONNECT]:"connect",[T.ErrorType.NULL]:"null"};let nt=class extends a.Disposable{constructor(e,t,n,s,r,o){super(),this._context=e,this._hoverManagerService=t,this._cellAlertManagerService=n,this._localeService=s,this._formulaDataModel=r,this._zenZoneService=o,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(H.debounceTime(100)).subscribe(e=>{var t,n,s,r,o;if(e){const c=this._context.unit.getActiveSheet();if(!c)return;const d=c.getCell(e.location.row,e.location.col),f=(r=(s=(n=(t=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:t[e.location.unitId])==null?void 0:n[e.location.subUnitId])==null?void 0:s[e.location.row])==null?void 0:r[e.location.col];if(a.isICellData(d)){const m=$t(d,!!f);if(!m){this._hideAlert();return}const S=this._cellAlertManagerService.currentAlert.get(Qe),h=(o=S==null?void 0:S.alert)==null?void 0:o.location;if(h&&h.row===e.location.row&&h.col===e.location.col&&h.subUnitId===e.location.subUnitId&&h.unitId===e.location.unitId)return;this._cellAlertManagerService.showAlert({type:w.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${lr[m]}`),location:e.location,width:200,height:74,key:Qe});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(Qe)}};nt=ar([De(1,a.Inject(w.HoverManagerService)),De(2,a.Inject(w.CellAlertManagerService)),De(3,a.Inject(a.LocaleService)),De(4,a.Inject(T.FormulaDataModel)),De(5,l.IZenZoneService)],nt);var ur=Object.getOwnPropertyDescriptor,dr=(e,t,n,s)=>{for(var r=s>1?void 0:s?ur(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Ct=(e,t)=>(n,s)=>t(n,s,e);let Ve=class extends a.Disposable{constructor(e,t){super(),this._autoFillService=e,this._lexerTreeBuilder=t,this._registerAutoFill()}_registerAutoFill(){const e={type:w.DATA_TYPE.FORMULA,priority:1001,match:t=>a.isFormulaString(t==null?void 0:t.f)||a.isFormulaId(t==null?void 0:t.si),isContinue:(t,n)=>t.type===w.DATA_TYPE.FORMULA,applyFunctions:{[w.APPLY_TYPE.COPY]:(t,n,s,r,o)=>{const{data:i,index:c}=t;return this._fillCopyFormula(i,n,s,c,r,o)}}};this._autoFillService.registerRule(e)}_fillCopyFormula(e,t,n,s,r,o){var f,m;const i=fr(r),c=[],d=new Map;for(let S=1;S<=t;S++){const h=(S-1)%e.length,g=s[h],u=a.Tools.deepClone(e[h]);if(u){const _=((f=e[h])==null?void 0:f.f)||"",v=((m=e[h])==null?void 0:m.si)||"",C=a.isFormulaString(_);if(a.isFormulaId(v))u.si=v,u.f=null,u.v=null,u.p=null,u.t=null,c.push(u);else if(C){let I=d.get(h);if(I)u.si=I,u.f=null,u.v=null,u.p=null,u.t=null;else{I=a.Tools.generateRandomId(6),d.set(h,I);const{offsetX:E,offsetY:b}=hr(i,t,n,o,g),M=this._lexerTreeBuilder.moveFormulaRefOffset(_,E,b);u.si=I,u.f=M,u.v=null,u.p=null,u.t=null}c.push(u)}}}return c}};Ve=dr([Ct(0,w.IAutoFillService),Ct(1,a.Inject(T.LexerTreeBuilder))],Ve);function hr(e,t,n,s,r){const{source:o,target:i}=s,{rows:c}=i,{rows:d}=o;let f=0,m=0;switch(n){case a.Direction.UP:m=c[r]-d[r];break;case a.Direction.RIGHT:f=e;break;case a.Direction.DOWN:m=c[r]-d[r];break;case a.Direction.LEFT:f=-e*t;break}return{offsetX:f,offsetY:m}}function fr(e){let t=0;for(const n in e)e[n].forEach(s=>{t+=s.data.length});return t}var gr=Object.getOwnPropertyDescriptor,mr=(e,t,n,s)=>{for(var r=s>1?void 0:s?gr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Ae=(e,t)=>(n,s)=>t(n,s,e);const Sr="default-paste-formula";let We=class extends a.Disposable{constructor(e,t,n,s,r){super(),this._currentUniverSheet=e,this._lexerTreeBuilder=t,this._sheetClipboardService=n,this._injector=s,this._formulaDataModel=r,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:(e,t,n,s)=>this._onPasteCells(e,t,n,s,!0)}}_pasteWithFormulaHook(){return{id:Sr,priority:10,onPasteCells:(e,t,n,s)=>this._onPasteCells(e,t,n,s,!1)}}_onPasteCells(e,t,n,s,r){var h;if([w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(s.pasteType))return{undos:[],redos:[]};const i=this._currentUniverSheet.getCurrentUnitForType(a.UniverInstanceType.UNIVER_SHEET),c=t.unitId||i.getUnitId(),d=t.subUnitId||((h=i.getActiveSheet())==null?void 0:h.getSheetId());if(!c||!d)return{undos:[],redos:[]};const f=t.range,m=n,S={copyType:s.copyType||w.COPY_TYPE.COPY,copyRange:e==null?void 0:e.range,pasteType:s.pasteType};return this._injector.invoke(g=>vr(c,d,f,m,g,S,this._lexerTreeBuilder,this._formulaDataModel,r,e))}};We=mr([Ae(0,a.IUniverInstanceService),Ae(1,a.Inject(T.LexerTreeBuilder)),Ae(2,w.ISheetClipboardService),Ae(3,a.Inject(a.Injector)),Ae(4,a.Inject(T.FormulaDataModel))],We);function vr(e,t,n,s,r,o,i,c,d=!1,f){const m=[],S=[],h=pr(e,t,n,s,o,i,c,f);if(!h.hasValue())return{undos:[],redos:[]};const g={unitId:e,subUnitId:t,cellValue:h.getData()};m.push({id:$.SetRangeValuesMutation.id,params:g});const u=$.SetRangeValuesUndoMutationFactory(r,g);return S.push({id:$.SetRangeValuesMutation.id,params:u}),{undos:S,redos:m}}function pr(e,t,n,s,r,o,i,c){return c?r.pasteType===w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?_r(e,t,n,s,i,c):r.pasteType===w.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?Rr(e,t,n,s,o,i,c):Er(e,t,n,s,r.copyType,o,i,c):Cr(e,t,n,s,i)}function Cr(e,t,n,s,r){const o=new a.ObjectMatrix,i=r.getSheetFormulaData(e,t);return s.forValue((c,d,f)=>{var g;const m=n.rows[c],S=n.cols[d],h={};a.isFormulaString(f.v)?(h.v=null,h.f=`${f.v}`,h.si=null,h.p=null,o.setValue(m,S,h)):(g=i==null?void 0:i[m])!=null&&g[S]&&(h.v=f.v,h.f=null,h.si=null,h.p=null,o.setValue(m,S,h))}),o}function _r(e,t,n,s,r,o){var f,m;const i=new a.ObjectMatrix,c=(m=(f=r.getArrayFormulaCellData())==null?void 0:f[o.unitId])==null?void 0:m[o.subUnitId],d=r.getSheetFormulaData(e,t);return s.forValue((S,h,g)=>{var I,E;const u=o.range.rows[S%o.range.rows.length],_=o.range.cols[h%o.range.cols.length],v=n.rows[S],C=n.cols[h],R={};if(a.isFormulaString(g.f)||a.isFormulaId(g.si))R.v=g.v,R.f=null,R.si=null,R.p=null,i.setValue(v,C,R);else if((I=c==null?void 0:c[u])!=null&&I[_]){const b=c[u][_];R.v=b.v,R.f=null,R.si=null,R.p=null,i.setValue(v,C,R)}else if((E=d==null?void 0:d[v])!=null&&E[C]){if(R.v=g.v,R.f=null,R.si=null,R.p=null,g.p){const b=Vt(g);b&&(R.v=b)}i.setValue(v,C,R)}}),i}function Rr(e,t,n,s,r,o,i){const c=new a.ObjectMatrix,d=new Map;return s.forValue((f,m,S)=>{const h=n.rows[f],g=n.cols[m],u={};if(a.isFormulaId(S.si)){if(i.unitId!==e||i.subUnitId!==t){const _=o.getFormulaStringByCell(i.range.rows[f%i.range.rows.length],i.range.cols[m%i.range.cols.length],i.subUnitId,i.unitId),v=n.cols[m]-i.range.cols[m%i.range.cols.length],C=n.rows[f]-i.range.rows[f%i.range.rows.length],R=r.moveFormulaRefOffset(_||"",v,C);u.si=null,u.f=R}else u.si=S.si,u.f=null;u.v=null,u.p=null,c.setValue(h,g,u)}else if(a.isFormulaString(S.f)){const _=`${f%i.range.rows.length}_${m%i.range.cols.length}`;let v=d.get(_);if(v)u.si=v,u.f=null;else{v=a.Tools.generateRandomId(6),d.set(_,v);const C=n.cols[m]-i.range.cols[m%i.range.cols.length],R=n.rows[f]-i.range.rows[f%i.range.rows.length],I=r.moveFormulaRefOffset(S.f||"",C,R);u.si=v,u.f=I}u.v=null,u.p=null,c.setValue(h,g,u)}else{if(u.v=S.v,u.f=null,u.si=null,u.p=null,S.p){const _=Vt(S);_&&(u.v=_)}c.setValue(h,g,u)}}),c}function Er(e,t,n,s,r,o,i,c){const d=new a.ObjectMatrix,f=new Map,m=i.getSheetFormulaData(e,t),S=[];return r===w.COPY_TYPE.CUT?s.forValue((h,g,u)=>{const _=n.rows[h],v=n.cols[g],C={};if(a.isFormulaId(u.si)){if(a.isFormulaString(u.f))S.push(u.si),C.f=u.f,C.si=u.si;else if(S.includes(u.si))C.f=null,C.si=u.si;else{const R=i.getFormulaStringByCell(c.range.rows[h%c.range.rows.length],c.range.cols[g%c.range.cols.length],c.subUnitId,c.unitId);C.f=R,C.si=null}C.v=null,C.p=null,d.setValue(_,v,C)}else a.isFormulaString(u.f)&&(C.f=u.f,C.si=null,C.v=null,C.p=null,d.setValue(_,v,C))}):s.forValue((h,g,u)=>{var R;const _=n.rows[h],v=n.cols[g],C={};if(a.isFormulaId(u.si)){if(c.unitId!==e||c.subUnitId!==t){const I=i.getFormulaStringByCell(c.range.rows[h%c.range.rows.length],c.range.cols[g%c.range.cols.length],c.subUnitId,c.unitId),E=n.cols[g]-c.range.cols[g%c.range.cols.length],b=n.rows[h]-c.range.rows[h%c.range.rows.length],M=o.moveFormulaRefOffset(I||"",E,b);C.si=null,C.f=M}else C.si=u.si,C.f=null;C.v=null,C.p=null,d.setValue(_,v,C)}else if(a.isFormulaString(u.f)){const I=`${h%c.range.rows.length}_${g%c.range.cols.length}`;let E=f.get(I);if(E)C.si=E,C.f=null;else{E=a.Tools.generateRandomId(6),f.set(I,E);const b=n.cols[g]-c.range.cols[g%c.range.cols.length],M=n.rows[h]-c.range.rows[h%c.range.rows.length],F=o.moveFormulaRefOffset(u.f||"",b,M);C.si=E,C.f=F}C.v=null,C.p=null,d.setValue(_,v,C)}else(R=m==null?void 0:m[_])!=null&&R[v]&&(C.v=u.v,C.f=null,C.si=null,C.p=u.p,d.setValue(_,v,C))}),S.length>0&&new a.ObjectMatrix(m).forValue((h,g,u)=>{if(!(c.range.rows.includes(h)&&c.range.cols.includes(g))&&!(n.rows.includes(h)&&n.cols.includes(g))&&S.includes(u==null?void 0:u.si)){const _=i.getFormulaStringByCell(h,g,c.subUnitId,c.unitId);d.setValue(h,g,{f:_,si:null,v:null,p:null})}}),d}function Vt(e){if(e!=null&&e.p){const t=e==null?void 0:e.p.body;if(t==null)return;const n=t.dataStream;return n.substring(n.length-2,n.length)===a.DEFAULT_EMPTY_DOCUMENT_VALUE?n.substring(0,n.length-2):n}}var yr=Object.getOwnPropertyDescriptor,Ir=(e,t,n,s)=>{for(var r=s>1?void 0:s?yr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Re=(e,t)=>(n,s)=>t(n,s,e);let Be=class extends a.Disposable{constructor(t,n,s,r,o,i,c,d){super();K(this,"_previousShape");K(this,"_skeleton");this._context=t,this._sheetInterceptorService=n,this._formulaDataModel=s,this._themeService=r,this._renderManagerService=o,this._sheetSkeletonManagerService=i,this._commandService=c,this._logService=d,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{var n,s;if(t==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton:r}=t,o=(s=(n=this._skeleton)==null?void 0:n.worksheet)==null?void 0:s.getSheetId();if(this._changeRuntime(r),o!==r.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId:i,sheetId:c}=t;this._updateArrayFormulaRangeShape(i,c)}}}))}_changeRuntime(t){this._skeleton=t}_initInterceptorEditorStart(){this.disposeWithMe(a.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept($.BEFORE_CELL_EDIT,{handler:(t,n,s)=>{var u,_,v,C;const{row:r,col:o,unitId:i,subUnitId:c,worksheet:d}=n,f=this._formulaDataModel.getArrayFormulaRange(),m=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),t==null)return s(t);let S=null;const h=this._formulaDataModel.getFormulaStringByCell(r,o,c,i);if(h!==null&&(S={f:h}),t.v!=null&&t.v!==""&&((v=(_=(u=m[i])==null?void 0:u[c])==null?void 0:_[r])==null?void 0:v[o])==null)return S?{...t,...S}:s(t);const g=(C=f==null?void 0:f[i])==null?void 0:C[c];return g!=null&&(S=this._displayArrayFormulaRangeShape(g,r,o,i,c,d,S)),S?{...t,...S}:s(t)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((t,n)=>{(t.id===T.SetFormulaCalculationResultMutation.id||t.id===T.SetArrayFormulaDataMutation.id&&n&&n.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(t=>{$.SetWorksheetRowAutoHeightMutation.id===t.id&&requestIdleCallback(()=>{const n=t.params,{unitId:s,subUnitId:r,rowsAutoHeightInfo:o}=n;this._refreshArrayFormulaRangeShapeByRow(s,r,o)})}))}_displayArrayFormulaRangeShape(t,n,s,r,o,i,c){const d=this._formulaDataModel.getSheetFormulaData(r,o);return new a.ObjectMatrix(t).forValue((f,m,S)=>{var v;if(S==null)return!0;const{startRow:h,startColumn:g,endRow:u,endColumn:_}=S;if(f===n&&m===s)return this._createArrayFormulaRangeShape(S,r),!1;if(n>=h&&n<=u&&s>=g&&s<=_){const C=i.getCell(h,g);if((C==null?void 0:C.v)===T.ErrorType.SPILL)return;const R=(v=d==null?void 0:d[f])==null?void 0:v[m];return R==null||R.f==null?!0:(c==null&&(c={f:R.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(S,r),!1)}}),c}_createArrayFormulaRangeShape(t,n){const s=this._renderManagerService.getRenderById(n),r=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!s||!r)return;const{scene:o}=s;if(!o)return;const i={range:t,primary:null,style:{strokeWidth:1,stroke:this._themeService.getColorFromTheme("primary.600"),fill:new a.ColorKit(this._themeService.getColorFromTheme("white")).setAlpha(0).toString(),widgets:{}}},c=w.attachSelectionWithCoord(i,r),{rowHeaderWidth:d,columnHeaderHeight:f}=r,m=new w.SelectionControl(o,w.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:d,columnHeaderHeight:f});m.updateRangeBySelectionWithCoord(c),m.setEvent(!1),this._previousShape=m}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(t,n){if(this._previousShape){const{startRow:s,endRow:r,startColumn:o,endColumn:i}=this._previousShape.getRange(),c={startRow:s,endRow:r,startColumn:o,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(c,t)}}_checkCurrentSheet(t,n){const s=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!s)return!1;const r=s.worksheet;return r?r.unitId===t&&r.getSheetId()===n:!1}_updateArrayFormulaRangeShape(t,n){this._checkCurrentSheet(t,n)&&this._previousShape&&this._refreshArrayFormulaRangeShape(t)}_refreshArrayFormulaRangeShapeByRow(t,n,s){if(!this._checkCurrentSheet(t,n)||!this._previousShape)return;const{startRow:r,endRow:o,startColumn:i,endColumn:c}=this._previousShape.getRange();for(let d=0;d<s.length;d++){const{row:f}=s[d];if(r>=f){const m={startRow:r,endRow:o,startColumn:i,endColumn:c};this._refreshArrayFormulaRangeShape(t,m);break}}}};Be=Ir([Re(1,a.Inject($.SheetInterceptorService)),Re(2,a.Inject(T.FormulaDataModel)),Re(3,a.Inject(a.ThemeService)),Re(4,B.IRenderManagerService),Re(5,a.Inject(w.SheetSkeletonManagerService)),Re(6,a.ICommandService),Re(7,a.ILogService)],Be);var br=Object.getOwnPropertyDescriptor,Tr=(e,t,n,s)=>{for(var r=s>1?void 0:s?br(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},_t=(e,t)=>(n,s)=>t(n,s,e);const xr={tl:{size:6,color:"#409f11"}};let He=class extends a.RxDisposable{constructor(e,t){super(),this._sheetInterceptorService=e,this._formulaDataModel=t,this.disposeWithMe(this._sheetInterceptorService.intercept($.INTERCEPTOR_POINT.CELL_CONTENT,{effect:a.InterceptorEffectEnum.Style,handler:(n,s,r)=>{var c,d,f,m;const o=(m=(f=(d=(c=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:c[s.unitId])==null?void 0:d[s.subUnitId])==null?void 0:f[s.row])==null?void 0:m[s.col];return $t(n,!!o)?r({...n,markers:{...n==null?void 0:n.markers,...xr}}):r(n)},priority:10}))}};He=Tr([_t(0,a.Inject($.SheetInterceptorService)),_t(1,a.Inject(T.FormulaDataModel))],He);function Mr(){const e=l.useDependency(ye.TriggerCalculationController),t=l.useDependency(a.ICommandService),n=l.useObservable(e.progress$),s=p.useCallback(()=>{t.executeCommand(T.SetFormulaCalculationStopMutation.id)},[t]),r=p.useCallback(()=>{e.clearProgress()},[e]);return y.jsx(l.ProgressBar,{progress:n,onTerminate:s,onClearProgress:r})}function Wt(e){const{prefix:t,value:n}=e;return y.jsxs("div",{children:[y.jsxs("span",{children:[t,"("]}),n&&n.map((s,r)=>y.jsxs("span",{children:[y.jsx("span",{children:kt(s)}),r===n.length-1?"":","]},r)),")"]})}function we(e){const{className:t,value:n,title:s}=e;return y.jsxs("div",{className:"univer-mb-2 univer-text-xs",children:[y.jsx("div",{className:`
|
|
50
|
+
univer-mb-2 univer-font-medium univer-text-gray-500
|
|
51
|
+
${t}
|
|
52
|
+
`,children:s}),y.jsx("div",{className:"univer-font-normal univer-text-gray-900",children:n})]})}function Or(e){const{functionInfo:t,onChange:n}=e;if(!t)return null;const[s,r]=p.useState([]),[o,i]=p.useState(t.functionParameter),[c,d]=p.useState(-1);return y.jsxs("div",{children:[y.jsx("div",{className:"univer-h-[364px] univer-overflow-y-auto",children:o.map((f,m)=>y.jsxs("div",{children:[y.jsx("div",{className:"univer-text-sm",children:f.name}),y.jsx("div",{className:"univer-mb-2 univer-mt-1"})]},m))}),y.jsx("div",{className:"univer-flex-1 univer-border-l univer-border-solid univer-border-gray-200 univer-p-3",children:y.jsx(we,{title:c===-1?y.jsx(Wt,{prefix:t.functionName,value:o}):o[c].name,value:c===-1?t.description:o[c].detail})})]})}function Nr(e){const{onChange:t}=e,n="-1",[s,r]=p.useState(""),[o,i]=p.useState([]),[c,d]=p.useState(0),[f,m]=p.useState(n),[S,h]=p.useState(0),[g,u]=p.useState(null),_=l.useDependency(ye.IDescriptionService),v=l.useDependency(a.LocaleService),C=l.useDependency(l.ISidebarService),R=l.useObservable(C.sidebarOptions$),I=_n(T.FunctionType,v);I.unshift({label:v.t("formula.moreFunctions.allFunctions"),value:n});const E=v.t("formula.prompt.required"),b=v.t("formula.prompt.optional");p.useEffect(()=>{L(n)},[]),p.useEffect(()=>{F(0)},[o]),p.useEffect(()=>{R!=null&&R.visible&&(r(""),i([]),d(0),m(n),h(0),u(null),L(n))},[R]);const M=O=>{if(s.trim()==="")return O;const x=new RegExp(`(${s.toLocaleUpperCase()})`);return O.split(x).filter(Boolean).map((k,U)=>k.match(x)?y.jsx("span",{className:"univer-text-red-500",children:k},U):k)},F=O=>{if(o.length===0){u(null);return}h(O);const x=_.getFunctionInfo(o[O].name);if(!x){u(null);return}u(x),t(x)};function L(O){m(O);const x=_.getSearchListByType(+O);i(x)}function P(O){r(O);const x=_.getSearchListByName(O);i(x)}function A(O){if(O.stopPropagation(),O.key==="ArrowDown"){const x=c+1;d(x===o.length?0:x)}else if(O.key==="ArrowUp"){const x=c-1;d(x===-1?o.length-1:x)}else O.key==="Enter"&&F(c)}const j=O=>{d(O)},D=()=>{d(-1)};return y.jsxs("div",{children:[y.jsxs("div",{className:"univer-flex univer-items-center univer-justify-between univer-gap-[10%]",children:[y.jsx(J.Select,{value:f,options:I,onChange:L}),y.jsx(J.Input,{placeholder:v.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:A,value:s,onChange:P,size:"small",allowClear:!0})]}),y.jsx("ul",{className:`
|
|
53
|
+
univer-mx-0 univer-mb-0 univer-mt-2 univer-box-border univer-max-h-[364px] univer-w-full
|
|
54
|
+
univer-select-none univer-list-none univer-overflow-y-auto univer-rounded univer-border
|
|
55
|
+
univer-border-solid univer-border-gray-200 univer-p-3 univer-outline-none
|
|
56
|
+
`,onKeyDown:A,tabIndex:-1,children:o.map(({name:O},x)=>y.jsxs("li",{className:c===x?`
|
|
57
|
+
univer-relative univer-box-border univer-cursor-pointer univer-rounded univer-bg-gray-200
|
|
58
|
+
univer-px-7 univer-py-1 univer-text-[13px] univer-text-gray-900 univer-transition-colors
|
|
59
|
+
`:`
|
|
60
|
+
univer-relative univer-box-border univer-cursor-pointer univer-rounded univer-px-7
|
|
61
|
+
univer-py-1 univer-text-[13px] univer-text-gray-900 univer-transition-colors
|
|
62
|
+
`,onMouseEnter:()=>j(x),onMouseLeave:D,onClick:()=>F(x),children:[S===x&&y.jsx(Ot,{className:`
|
|
63
|
+
univer-absolute univer-left-1.5 univer-top-1/2 univer-inline-flex
|
|
64
|
+
univer--translate-y-1/2 univer-text-base univer-text-green-500
|
|
65
|
+
`}),y.jsx("span",{className:"univer-block",children:M(O)})]},x))}),g&&y.jsxs("div",{className:"univer-mx-0 univer-my-2 univer-max-h-[307px] univer-overflow-y-auto",children:[y.jsx(we,{title:g.functionName,value:g.description}),y.jsx(we,{title:v.t("formula.moreFunctions.syntax"),value:y.jsx(Wt,{prefix:g.functionName,value:g.functionParameter})}),y.jsx(we,{title:v.t("formula.prompt.helpExample"),value:`${g.functionName}(${g.functionParameter.map(O=>O.example).join(",")})`}),g.functionParameter&&g.functionParameter.map(O=>y.jsx(we,{title:O.name,value:`${O.require?E:b} ${O.detail}`},O.name))]})]})}function Dr(){const e=w.useActiveWorkbook(),[t,n]=p.useState(!0),[s,r]=p.useState(!1),[o,i]=p.useState(null);l.useDependency(w.IEditorBridgeService);const c=l.useDependency(a.LocaleService),d=l.useDependency(X.IEditorService),f=l.useDependency(a.IUniverInstanceService),m=l.useDependency(a.ICommandService);function S(){n(!t),r(!s)}function h(){const g=$.getSheetCommandTarget(f);if(!g)return;m.executeCommand(w.SetCellEditVisibleOperation.id,{visible:!0,unitId:g.unitId,eventType:B.DeviceInputEventType.Dblclick});const u=d.getEditor(a.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),_=d.getEditor(a.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),v=`=${o==null?void 0:o.functionName}(`;u==null||u.replaceText(v),_==null||_.replaceText(v,!1)}return y.jsxs("div",{className:"univer-flex univer-h-full univer-flex-col univer-justify-between univer-leading-5",children:[t&&y.jsx(Nr,{onChange:i}),s&&y.jsx(Or,{functionInfo:o,onChange:()=>{}}),y.jsxs("div",{className:"univer-flex univer-justify-end",children:[s&&y.jsx(J.Button,{variant:"primary",onClick:S,className:"univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0",children:c.t("formula.moreFunctions.next")}),s&&y.jsx(J.Button,{onClick:S,className:"univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0",children:c.t("formula.moreFunctions.prev")}),t&&!!e&&y.jsx(J.Button,{variant:"primary",onClick:h,className:"univer-mb-5 univer-ml-4 univer-mr-0 univer-mt-0",children:c.t("formula.moreFunctions.confirm")})]})]})}function Ar(e){return{id:Ye.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:l.MenuItemType.SELECTOR,selections:[{label:{name:"SUM",selectable:!1},value:"SUM",icon:"SumSingle"},{label:{name:"AVERAGE",selectable:!1},value:"AVERAGE",icon:"AvgSingle"},{label:{name:"COUNT",selectable:!1},value:"COUNT",icon:"CntSingle"},{label:{name:"MAX",selectable:!1},value:"MAX",icon:"MaxSingle"},{label:{name:"MIN",selectable:!1},value:"MIN",icon:"MinSingle"}],hidden$:l.getMenuHiddenObservable(e,a.UniverInstanceType.UNIVER_SHEET),disabled$:w.getCurrentRangeDisable$(e,{workbookTypes:[$.WorkbookEditablePermission],worksheetTypes:[$.WorksheetEditPermission,$.WorksheetSetCellValuePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint]})}}function wr(e){return{id:ze.id,title:"formula.insert.more",type:l.MenuItemType.BUTTON}}function Fr(e){return e.get(a.IUniverInstanceService).getCurrentTypeOfUnit$(a.UniverInstanceType.UNIVER_SHEET).pipe(H.switchMap(s=>s&&e.get(l.IClipboardInterfaceService)?new H.Observable(o=>o.next(!e.get(l.IClipboardInterfaceService).supportClipboard)):H.of(!0)))}function kr(e){return{id:qe.id,type:l.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:Fr(e).pipe(H.combineLatestWith(w.getCurrentRangeDisable$(e,{workbookTypes:[$.WorkbookEditablePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint],worksheetTypes:[$.WorksheetSetCellValuePermission,$.WorksheetEditPermission]})),H.map(([t,n])=>t||n))}}const Lr={[l.RibbonStartGroup.FORMULAS_INSERT]:{[Ye.id]:{order:1,menuItemFactory:Ar,[ze.id]:{order:1,menuItemFactory:wr}}},[w.PASTE_SPECIAL_MENU_ID]:{[qe.id]:{order:4,menuItemFactory:kr}}},Pr="meta_key_ctrl_And_Shift",Ge=[l.KeyCode.ARROW_DOWN,l.KeyCode.ARROW_UP,l.KeyCode.ARROW_LEFT,l.KeyCode.ARROW_RIGHT],jr=[...Ge,l.KeyCode.ENTER,l.KeyCode.TAB,l.KeyCode.ESC];function Ur(){const e=[];for(const t of jr)e.push({id:Ie.id,binding:t,preconditions:n=>w.whenFormulaEditorActivated(n),staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keycode:t}});return e}function $r(){const e=[];for(const t of Ge)e.push({id:Ie.id,binding:t|l.MetaKeys.SHIFT,preconditions:n=>w.whenFormulaEditorActivated(n),staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keycode:t,metaKey:l.MetaKeys.SHIFT}});return e}function Vr(){const e=[];for(const t of Ge)e.push({id:Ie.id,binding:t|l.MetaKeys.CTRL_COMMAND,preconditions:n=>w.whenFormulaEditorActivated(n),staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keycode:t,metaKey:l.MetaKeys.CTRL_COMMAND}});return e}function Wr(){const e=[];for(const t of Ge)e.push({id:Ie.id,binding:t|l.MetaKeys.SHIFT|l.MetaKeys.CTRL_COMMAND,preconditions:n=>w.whenFormulaEditorActivated(n),staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keycode:t,metaKey:Pr}});return e}const Br={id:st.id,binding:l.KeyCode.F4,preconditions:e=>w.whenFormulaEditorActivated(e)};function Hr(){const e=[];for(const t of[l.KeyCode.ENTER,l.KeyCode.TAB,l.KeyCode.ARROW_DOWN,l.KeyCode.ARROW_UP])e.push({id:Ie.id,binding:t,preconditions:n=>ir(n),staticParameters:{eventType:B.DeviceInputEventType.Keyboard,keycode:t,isSingleEditor:!0}});return e}var Kr=Object.getOwnPropertyDescriptor,qr=(e,t,n,s)=>{for(var r=s>1?void 0:s?Kr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},Ee=(e,t)=>(n,s)=>t(n,s,e);let Ke=class extends a.Disposable{constructor(e,t,n,s,r,o,i){super(),this._injector=e,this._menuManagerService=t,this._commandService=n,this._shortcutService=s,this._uiPartsService=r,this._renderManagerService=o,this._componentManager=i,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(Lr)}_registerCommands(){[qe,Ye,ze,Tt,yt,Ie,st].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerShortcuts(){[...Ur(),...$r(),...Vr(),...Wr(),...Hr(),Br].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(w.SheetsUIPart.FORMULA_AUX,()=>l.connectInjector(Mr,this._injector))),this._componentManager.register(bt,Dr)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,[Be]))}};Ke=qr([Ee(0,a.Inject(a.Injector)),Ee(1,l.IMenuManagerService),Ee(2,a.ICommandService),Ee(3,l.IShortcutService),Ee(4,l.IUIPartsService),Ee(5,B.IRenderManagerService),Ee(6,a.Inject(l.ComponentManager))],Ke);const Yr=()=>{var s,r;const e=l.useDependency(ct),t=l.useObservable(e.currentSelector$),n=p.useRef(null);return p.useEffect(()=>{var o,i;if(t)return(i=n.current)==null||i.showDialog((o=t.initialValue)!=null?o:[]),()=>{var c;(c=n.current)==null||c.hideDialog()}},[t]),y.jsx(it,{unitId:(s=t==null?void 0:t.unitId)!=null?s:"",subUnitId:(r=t==null?void 0:t.subUnitId)!=null?r:"",hideEditor:!0,selectorRef:n,onChange:(o,i)=>{var c;t==null||t.callback((c=i==null?void 0:i.split(",").map(d=>T.deserializeRangeWithSheet(d)))!=null?c:[])}})};var zr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,Zr=(e,t,n)=>t in e?zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xr=(e,t,n,s)=>{for(var r=s>1?void 0:s?Gr(t,n):t,o=e.length-1,i;o>=0;o--)(i=e[o])&&(r=i(r)||r);return r},$e=(e,t)=>(n,s)=>t(n,s,e),Bt=(e,t,n)=>Zr(e,typeof t!="symbol"?t+"":t,n);exports.UniverSheetsFormulaUIPlugin=class extends a.Plugin{constructor(t=pt,n,s,r,o){super(),this._config=t,this._injector=n,this._renderManagerService=s,this._configService=r,this._uiPartsService=o;const{menu:i,...c}=a.merge(pt,this._config);i&&this._configService.setConfig("menu",i,{merge:!0}),this._configService.setConfig(or,c,{merge:!0})}onStarting(){a.registerDependencies(this._injector,[[rt,{useClass:et}],[ct],[Ke],[Ve],[We],[Be],[He],[exports.FormulaReorderController]]),this._initUIPart()}onReady(){[[exports.RefSelectionsRenderService]].forEach(t=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,t))})}onRendered(){[[nt]].forEach(t=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(a.UniverInstanceType.UNIVER_SHEET,t))}),a.touchDependencies(this._injector,[[Ke],[We],[He]])}onSteady(){this._injector.get(Ve),this._injector.get(exports.FormulaReorderController)}_initUIPart(){const t=this._injector.get(l.ComponentManager);this.disposeWithMe(t.register(w.RANGE_SELECTOR_COMPONENT_KEY,it)),this.disposeWithMe(t.register(w.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY,Ut)),this.disposeWithMe(this._uiPartsService.registerComponent(l.BuiltInUIPart.GLOBAL,()=>l.connectInjector(Yr,this._injector)))}};Bt(exports.UniverSheetsFormulaUIPlugin,"pluginName",It);Bt(exports.UniverSheetsFormulaUIPlugin,"type",a.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=Xr([a.DependentOn(T.UniverFormulaEnginePlugin,ye.UniverSheetsFormulaPlugin),$e(1,a.Inject(a.Injector)),$e(2,B.IRenderManagerService),$e(3,a.IConfigService),$e(4,l.IUIPartsService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=Et;exports.FormulaEditor=Ut;exports.GlobalRangeSelectorService=ct;exports.HelpFunctionOperation=yt;exports.InsertFunctionOperation=Ye;exports.MoreFunctionsOperation=ze;exports.RangeSelector=it;exports.ReferenceAbsoluteOperation=st;exports.SearchFunctionOperation=Tt;exports.SelectEditorFormulaOperation=Ie;exports.SheetOnlyPasteFormulaCommand=qe;
|