@univerjs/sheets-formula-ui 0.5.3 → 0.5.4-experimental.20250114-7c09c35
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 +26 -28
- package/lib/es/index.js +2701 -3476
- package/lib/index.css +1 -1
- package/lib/types/services/render-services/ref-selections.render-service.d.ts +1 -0
- package/lib/types/views/formula-editor/help-function/HelpFunction.d.ts +5 -5
- package/lib/types/views/formula-editor/hooks/useEditorPostion.d.ts +7 -0
- package/lib/types/views/formula-editor/hooks/useFormulaSelection.d.ts +23 -0
- package/lib/types/views/formula-editor/hooks/useSelectionAdd.d.ts +1 -2
- package/lib/types/views/formula-editor/hooks/useSheetSelectionChange.d.ts +2 -1
- package/lib/types/views/formula-editor/hooks/useStateRef.d.ts +1 -3
- package/lib/types/views/formula-editor/index.d.ts +17 -0
- package/lib/types/views/formula-editor/search-function/SearchFunction.d.ts +9 -5
- package/lib/types/views/range-selector/hooks/useFocus.d.ts +1 -1
- package/lib/types/views/range-selector/hooks/useHighlight.d.ts +26 -11
- package/lib/types/views/range-selector/hooks/useKeyboardEvent.d.ts +16 -0
- package/lib/types/views/range-selector/hooks/useLeftAndRightArrow.d.ts +3 -1
- package/lib/types/views/range-selector/hooks/useRefactorEffect.d.ts +1 -1
- package/lib/types/views/range-selector/hooks/useResetSelection.d.ts +1 -1
- package/lib/types/views/range-selector/hooks/useResize.d.ts +16 -0
- package/lib/types/views/range-selector/utils/unitRangesToText.d.ts +1 -1
- package/lib/umd/index.js +26 -28
- package/package.json +15 -14
- package/LICENSE +0 -176
- package/lib/types/controllers/prompt.controller.d.ts +0 -170
- package/lib/types/views/range-selector/hooks/useEmitChange.d.ts +0 -3
package/lib/cjs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var En=Object.defineProperty;var In=(e,n,t)=>n in e?En(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var te=(e,n,t)=>In(e,typeof n!="symbol"?n+"":n,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@univerjs/core"),$=require("@univerjs/sheets-ui"),I=require("@univerjs/engine-formula"),K=require("rxjs"),ne=require("@univerjs/docs-ui"),q=require("@univerjs/engine-render"),B=require("@univerjs/sheets"),Fe=require("@univerjs/sheets-formula"),E=require("@univerjs/ui"),f=require("react"),pe=require("@univerjs/design"),Et=require("@univerjs/docs"),Ke=require("rxjs/operators"),rt={id:"sheet.command.paste-formula",type:c.CommandType.COMMAND,handler:async e=>e.get(c.ICommandService).executeCommand($.SheetPasteCommand.id,{value:$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA})},Pe={id:"formula-ui.operation.select-editor-formula",type:c.CommandType.OPERATION,handler:(e,n)=>!0};var yn=Object.defineProperty,Tn=Object.getOwnPropertyDescriptor,bn=(e,n,t,r)=>{for(var o=r>1?void 0:r?Tn(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&yn(n,t,o),o},Nn=(e,n)=>(t,r)=>n(t,r,e);const Vt="FORMULA_PROMPT_ACTIVATED",ze=c.createIdentifier("formula-ui.prompt-service");let St=class{constructor(e){te(this,"_search$",new K.Subject);te(this,"_help$",new K.Subject);te(this,"_navigate$",new K.Subject);te(this,"_accept$",new K.Subject);te(this,"_acceptFormulaName$",new K.Subject);te(this,"search$",this._search$.asObservable());te(this,"help$",this._help$.asObservable());te(this,"navigate$",this._navigate$.asObservable());te(this,"accept$",this._accept$.asObservable());te(this,"acceptFormulaName$",this._acceptFormulaName$.asObservable());te(this,"_searching",!1);te(this,"_helping",!1);te(this,"_sequenceNodes",[]);te(this,"_isLockedOnSelectionChangeRefString",!1);te(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(Vt,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 n=0;const t=this._sequenceNodes[0];for(let r=0,o=this._sequenceNodes.length;r<o;r++){const i=this._sequenceNodes[r];if(typeof i=="string")n++;else{const{endIndex:s}=i;n=s}if(e<=n)return typeof t=="string"&&e!==0?r+1:r}return this._sequenceNodes.length}updateSequenceRef(e,n){const t=this._sequenceNodes[e];if(typeof t=="string"||t.nodeType!==I.sequenceNodeType.REFERENCE)return;const r=n.length-t.token.length,o={...t};o.token=n,o.endIndex+=r,this._sequenceNodes[e]=o;for(let i=e+1,s=this._sequenceNodes.length;i<s;i++){const a=this._sequenceNodes[i];if(typeof a=="string")continue;const l={...a};l.startIndex+=r,l.endIndex+=r,this._sequenceNodes[i]=l}}insertSequenceRef(e,n){const t=n.length,r=this.getCurrentSequenceNodeIndex(e);this._sequenceNodes.splice(r,0,{token:n,startIndex:e,endIndex:e+t-1,nodeType:I.sequenceNodeType.REFERENCE});for(let o=r+1,i=this._sequenceNodes.length;o<i;o++){const s=this._sequenceNodes[o];if(typeof s=="string")continue;const a={...s};a.startIndex+=t,a.endIndex+=t,this._sequenceNodes[o]=a}}insertSequenceString(e,n){const t=this.getCurrentSequenceNodeIndex(e),r=n.split("");this._sequenceNodes.splice(t,0,...r);const o=r.length;for(let i=t+o,s=this._sequenceNodes.length;i<s;i++){const a=this._sequenceNodes[i];if(typeof a=="string")continue;const l={...a};l.startIndex+=o,l.endIndex+=o,this._sequenceNodes[i]=l}}enableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!0}disableLockedSelectionChange(){this._isLockedOnSelectionChangeRefString=!1}isLockedSelectionChange(){return this._isLockedOnSelectionChangeRefString}enableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!0}disableLockedSelectionInsert(){this._isLockedOnSelectionInsertRefString=!1}isLockedSelectionInsert(){return this._isLockedOnSelectionInsertRefString}};St=bn([Nn(0,c.IContextService)],St);const Kt={id:"formula-ui.operation.help-function",type:c.CommandType.OPERATION,handler:async(e,n)=>(e.get(ze).help(n),!0)},ot={id:"formula-ui.operation.insert-function",type:c.CommandType.OPERATION,handler:async(e,n)=>{var C,y;const t=e.get(B.SheetsSelectionsService),r=e.get(ne.IEditorService),o=t.getCurrentSelections();if(!o||!o.length)return!1;const i=B.getSheetCommandTarget(e.get(c.IUniverInstanceService));if(!i)return!1;const{worksheet:s,unitId:a,subUnitId:l}=i,h=s.getCellMatrix(),{value:d}=n,m=e.get(c.ICommandService),g=e.get($.IEditorBridgeService),p=[];let u=null,S=0,R=0,N="";if(o.length===1&&(Fn(o[0].range)||On(o[0].range))){const{range:b,primary:O}=o[0],D=(C=O==null?void 0:O.actualRow)!=null?C:b.startRow,A=(y=O==null?void 0:O.actualColumn)!=null?y:b.startColumn;u=b,S=D,R=A;const L=Pt(h,D,A);L&&(N=I.serializeRange(L))}else o.some(b=>{var P,T;const{range:O,primary:D}=b,A=(P=D==null?void 0:D.actualRow)!=null?P:O.startRow,L=(T=D==null?void 0:D.actualColumn)!=null?T:O.startColumn,k=Pt(h,A,L);if(!k)return u=O,S=A,R=L,!0;const F=I.serializeRange(k),M=`=${d}(${F})`;return p.push({range:O,primary:{row:A,column:L},formula:M}),!1});if(u){const b=B.getCellAtRowCol(S,R,s),O={range:c.Rectangle.clone(u),primary:{startRow:b.startRow,startColumn:b.startColumn,endRow:b.endRow,endColumn:b.endColumn,actualRow:S,actualColumn:R,isMerged:b.isMerged,isMergedMainCell:b.startRow===S&&b.startColumn===R}},D={unitId:a,subUnitId:l,selections:[O]};await m.executeCommand(B.SetSelectionsOperation.id,D);const A=r.getEditor(c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),L=r.getEditor(c.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY);g.changeVisible({visible:!0,unitId:a,eventType:q.DeviceInputEventType.Dblclick});const k=`=${d}(${N}`;A==null||A.replaceText(k),L==null||L.replaceText(k,!1)}return p.length===0?!1:m.executeCommand(Fe.InsertFunctionCommand.id,{list:p})}};function Pt(e,n,t){const r=Mn(e,n,t);if(r!==n)return{startRow:r,endRow:n-1,startColumn:t,endColumn:t};const o=xn(e,n,t);return o!==t?{startRow:n,endRow:n,startColumn:o,endColumn:t-1}:null}function Mn(e,n,t){let r=!1;if(n===0)return n;for(let o=n-1;o>=0;o--){const i=e.getValue(o,t);if(Ze(i)&&!r){if(o===0)return 0;r=!0}else{if(r&&!Ze(i))return o+1;if(r&&o===0)return 0}}return n}function xn(e,n,t){let r=!1;if(t===0)return t;for(let o=t-1;o>=0;o--){const i=e.getValue(n,o);if(Ze(i)&&!r){if(o===0)return 0;r=!0}else{if(r&&!Ze(i))return o+1;if(r&&o===0)return 0}}return t}function Ze(e){if(e!=null&&e.p){const n=e==null?void 0:e.p.body;if(n==null)return!1;const t=n.dataStream,o=t.substring(t.length-2,t.length)===c.DEFAULT_EMPTY_DOCUMENT_VALUE?t.substring(0,t.length-2):t;return c.isRealNum(o)}return e&&(e.t===c.CellValueType.NUMBER||c.getCellValueType(e)===c.CellValueType.NUMBER)}function Fn(e){return e.startRow===e.endRow&&e.startColumn===e.endColumn}function On(e){return e.startRow!==e.endRow&&e.startColumn!==e.endColumn}const qt="SHEET_FORMULA_UI_PLUGIN",Yt=`${qt}_MORE_FUNCTIONS_COMPONENT`,st={id:"formula-ui.operation.more-functions",type:c.CommandType.OPERATION,handler:async e=>(e.get(E.ISidebarService).open({header:{title:"formula.insert.tooltip"},children:{label:Yt}}),!0)},It={id:"formula-ui.operation.change-ref-to-absolute",type:c.CommandType.OPERATION,handler:async e=>!0},zt={id:"formula-ui.operation.search-function",type:c.CommandType.OPERATION,handler:async(e,n)=>(e.get(ze).search(n),!0)};var lt={exports:{}},He={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -6,30 +6,28 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var yt;function En(){if(yt)return Ae;yt=1;var r=m,e=Symbol.for("react.element"),t=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,o=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function i(a,l,d){var f,h={},u=null,S=null;d!==void 0&&(u=""+d),l.key!==void 0&&(u=""+l.key),l.ref!==void 0&&(S=l.ref);for(f in l)n.call(l,f)&&!s.hasOwnProperty(f)&&(h[f]=l[f]);if(a&&a.defaultProps)for(f in l=a.defaultProps,l)h[f]===void 0&&(h[f]=l[f]);return{$$typeof:e,type:a,key:u,ref:S,props:h,_owner:o.current}}return Ae.Fragment=t,Ae.jsx=i,Ae.jsxs=i,Ae}var Tt;function yn(){return Tt||(Tt=1,st.exports=En()),st.exports}var R=yn(),ue=function(){return ue=Object.assign||function(r){for(var e,t=1,n=arguments.length;t<n;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},ue.apply(this,arguments)},Tn=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o<n.length;o++)e.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(r,n[o])&&(t[n[o]]=r[n[o]]);return t},Ee=m.forwardRef(function(r,e){var t=r.icon,n=r.id,o=r.className,s=r.extend,i=Tn(r,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(n," ").concat(o||"").trim(),l=m.useRef("_".concat(xn()));return kt(t,"".concat(n),{defIds:t.defIds,idSuffix:l.current},ue({ref:e,className:a},i),s)});function kt(r,e,t,n,o){return m.createElement(r.tag,ue(ue({key:e},bn(r,t,o)),n),(Nn(r,t).children||[]).map(function(s,i){return kt(s,"".concat(e,"-").concat(r.tag,"-").concat(i),t,void 0,o)}))}function bn(r,e,t){var n=ue({},r.attrs);t!=null&&t.colorChannel1&&n.fill==="colorChannel1"&&(n.fill=t.colorChannel1);var o=e.defIds;return!o||o.length===0||(r.tag==="use"&&n["xlink:href"]&&(n["xlink:href"]=n["xlink:href"]+e.idSuffix),Object.entries(n).forEach(function(s){var i=s[0],a=s[1];typeof a=="string"&&(n[i]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(e.idSuffix,")")))})),n}function Nn(r,e){var t,n=e.defIds;return!n||n.length===0?r:r.tag==="defs"&&(!((t=r.children)===null||t===void 0)&&t.length)?ue(ue({},r),{children:r.children.map(function(o){return typeof o.attrs.id=="string"&&n&&n.indexOf(o.attrs.id)>-1?ue(ue({},o),{attrs:ue(ue({},o.attrs),{id:o.attrs.id+e.idSuffix})}):o})}):r}function xn(){return Math.random().toString(36).substring(2,8)}Ee.displayName="UniverIcon";var Mn={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"}}]},Ut=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"check-mark-single",ref:e,icon:Mn}))});Ut.displayName="CheckMarkSingle";var Fn={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},tt=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"close-single",ref:e,icon:Fn}))});tt.displayName="CloseSingle";var On={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"}}]},$t=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"delete-single",ref:e,icon:On}))});$t.displayName="DeleteSingle";var An={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"}}]},jt=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"details-single",ref:e,icon:An}))});jt.displayName="DetailsSingle";var Dn={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"}}]},Ht=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"increase-single",ref:e,icon:Dn}))});Ht.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"}}]},gt=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"more-single",ref:e,icon:Pn}))});gt.displayName="MoreSingle";var Ln={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"}}]},Wt=m.forwardRef(function(r,e){return m.createElement(Ee,Object.assign({},r,{id:"select-range-single",ref:e,icon:Ln}))});Wt.displayName="SelectRangeSingle";function Bt(r){var e,t,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r)){var o=r.length;for(e=0;e<o;e++)r[e]&&(t=Bt(r[e]))&&(n&&(n+=" "),n+=t)}else for(t in r)r[t]&&(n&&(n+=" "),n+=t);return n}function Vt(){for(var r,e,t=0,n="",o=arguments.length;t<o;t++)(r=arguments[t])&&(e=Bt(r))&&(n&&(n+=" "),n+=e);return n}var wn=Object.defineProperty,kn=Object.getOwnPropertyDescriptor,Un=(r,e,t,n)=>{for(var o=n>1?void 0:n?kn(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&wn(e,t,o),o},Ne=(r,e)=>(t,n)=>e(t,n,r);exports.RefSelectionsRenderService=class extends P.BaseSelectionRenderService{constructor(t,n,o,s,i,a,l){super(n,o,s,i,a);V(this,"_workbookSelections");V(this,"_eventDisposables");this._context=t,this._contextService=a,this._refSelectionsService=l,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle($n(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(t){this._remainLastEnabled=t}setSkipLastEnabled(t){this._skipLastEnabled=t}clearLastSelection(){const t=this._selectionControls[this._selectionControls.length-1];t&&(t.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),c.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var t;(t=this._eventDisposables)==null||t.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const t=this._getSheetObject(),{spreadsheetRowHeader:n,spreadsheetColumnHeader:o,spreadsheet:s,spreadsheetLeftTopPlaceholder:i}=t,{scene:a}=this._context,l=new c.DisposableCollection;return l.add(s==null?void 0:s.onPointerDown$.subscribeEvent((d,f)=>{this.inRefSelectionMode()&&(this._onPointerDown(d,s.zIndex+1,c.RANGE_TYPE.NORMAL,this._getActiveViewport(d)),d.button!==2&&f.stopPropagation())})),l.add(n==null?void 0:n.onPointerDown$.subscribeEvent((d,f)=>{if(!this.inRefSelectionMode())return;const h=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:u}=P.getCoordByOffset(d.offsetX,d.offsetY,a,h);P.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),u,c.RANGE_TYPE.ROW)||(this._onPointerDown(d,(s.zIndex||1)+1,c.RANGE_TYPE.ROW,this._getActiveViewport(d),z.ScrollTimerType.Y),d.button!==2&&f.stopPropagation())})),l.add(o==null?void 0:o.onPointerDown$.subscribeEvent((d,f)=>{if(!this.inRefSelectionMode())return;const h=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:u}=P.getCoordByOffset(d.offsetX,d.offsetY,a,h);P.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),u,c.RANGE_TYPE.COLUMN)||(this._onPointerDown(d,(s.zIndex||1)+1,c.RANGE_TYPE.COLUMN,this._getActiveViewport(d),z.ScrollTimerType.X),d.button!==2&&f.stopPropagation())})),l.add(i==null?void 0:i.onPointerDown$.subscribeEvent((d,f)=>{if(this._reset(),!this.inRefSelectionMode())return;const h=this._sheetSkeletonManagerService.getCurrent().skeleton,u=P.getAllSelection(h);this._addSelectionControlByModelData(u),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const S=a.onPointerUp$.subscribeEvent(()=>{S.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});d.button!==2&&f.stopPropagation()})),l}_addSelectionControlByModelData(t){var a;const n=this._skeleton,o=(a=t.style)!=null?a:P.genNormalSelectionStyle(this._themeService),s=this._scene;return t.style=o,this.newSelectionControl(s,n,t)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(t=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(t||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(t=>{this._updateSelections(t,$.SelectionMoveType.MOVE_END)}))}_updateSelections(t,n){const s=this._context.unit.getActiveSheet().getSheetId();t.length!==0&&this._workbookSelections.setSelections(s,t.map(i=>$.convertSelectionDataToRange(i)),n)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(!t)return;const{skeleton:n}=t,{scene:o}=this._context,s=o.getViewport(z.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==n.worksheet.getSheetId()&&this._reset(),this._changeRuntime(n,o,s);const i=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(i)}))}_getActiveViewport(t){const n=this._getSheetObject();return n==null?void 0:n.scene.getActiveViewportByCoord(z.Vector2.FromArray([t.offsetX,t.offsetY]))}_getSheetObject(){return P.getSheetObject(this._context.unit,this._context)}_onPointerDown(t,n=0,o=c.RANGE_TYPE.NORMAL,s,i=z.ScrollTimerType.ALL){var D;this._rangeType=o;const a=this._skeleton,l=this._scene;if(!l||!a)return;s&&(this._activeViewport=s);const{offsetX:d,offsetY:f}=t,h=l.getViewport(z.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!h)return;const u=l.getCoordRelativeToViewport(z.Vector2.FromArray([d,f])),{x:S,y:p}=u;this._startViewportPosX=S,this._startViewportPosY=p;const C=l.getScrollXYInfoByViewport(u),{scaleX:g,scaleY:E}=l.getAncestorScale(),_=this._skeleton.getCellByOffset(S,p,g,E,C);if(!_)return;switch(o){case c.RANGE_TYPE.NORMAL:break;case c.RANGE_TYPE.ROW:_.startColumn=0,_.endColumn=this._skeleton.getColumnCount()-1;break;case c.RANGE_TYPE.COLUMN:_.startRow=0,_.endRow=this._skeleton.getRowCount()-1;break;case c.RANGE_TYPE.ALL:_.startRow=0,_.startColumn=0,_.endRow=this._skeleton.getRowCount()-1,_.endColumn=this._skeleton.getColumnCount()-1}const v={range:_,primary:_,style:null};v.range.rangeType=o;const y=P.attachSelectionWithCoord(v,this._skeleton);this._startRangeWhenPointerDown={...y.rangeWithCoord};const b={...y.rangeWithCoord,rangeType:o};let N=this.getActiveSelectionControl();const T=this.getSelectionControls();for(const k of T){if(t.button===2&&k.model.isInclude(b)){N=k;return}if(k.model.isEqual(b)){N=k;break}}this._checkClearPreviousControls(t);const M=N==null?void 0:N.model.currentCell,x=t.shiftKey&&M,w=this._remainLastEnabled&&!t.ctrlKey&&!t.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;x&&M?this._makeSelectionByTwoCells(M,b,a,o,N):w&&N?N.updateRangeBySelectionWithCoord(y):N=this.newSelectionControl(l,a,v);for(let k=0;k<this.getSelectionControls().length-1;k++)this.getSelectionControls()[k].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),l.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(D=l.getTransformer())==null||D.clearSelectedObjects(),this._setupPointerMoveListener(h,N,o,i,S,p),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=l.onPointerUp$.subscribeEvent(()=>{var k;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(k=this._escapeShortcutDisposable)==null||k.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(t,n,o){const s=this.getSelectionControls().length,{rowHeaderWidth:i,columnHeaderHeight:a}=n,l=new P.SelectionControl(t,s,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:i,columnHeaderHeight:a}),d=P.attachSelectionWithCoord(o,n);return l.updateRangeBySelectionWithCoord(d),this._selectionControls.push(l),l.setControlExtension({skeleton:n,scene:t,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),l}};exports.RefSelectionsRenderService=Un([Ne(1,c.Inject(c.Injector)),Ne(2,c.Inject(c.ThemeService)),Ne(3,F.IShortcutService),Ne(4,c.Inject(P.SheetSkeletonManagerService)),Ne(5,c.IContextService),Ne(6,$.IRefSelectionsService)],exports.RefSelectionsRenderService);function $n(r){const e=P.genNormalSelectionStyle(r);return e.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},e}const jn=(r,e,t)=>{const o=c.useDependency(z.IRenderManagerService).getRenderById(r),s=o==null?void 0:o.with(exports.RefSelectionsRenderService);m.useEffect(()=>{if(t&&s){const i=t.input$.subscribe(a=>{a.content===I.matchToken.COMMA?s.setSkipLastEnabled(!0):s.setSkipLastEnabled(!1)});return()=>{i.unsubscribe()}}},[t,s]),m.useEffect(()=>{s&&(e.endsWith(I.matchToken.COMMA)||s.setSkipLastEnabled(!1))},[e,s])},me=r=>r.map(e=>typeof e=="string"?e:e.token).join(""),qt=(r,e,t)=>{const n=m.useRef(!1);return m.useEffect(()=>{if(t){const s=t.input$.subscribe(()=>{n.current=!0});return()=>{s.unsubscribe()}}},[t]),m.useEffect(()=>{if(n.current&&r){n.current=!1;const s=me(r);e(s)}},[r]),()=>n.current=!0},nt=()=>{const r=c.useDependency(I.LexerTreeBuilder);return t=>r.sequenceNodesBuilder(t)||[]},Kt=(r,e,t,n,o,s)=>{const i=nt(),a=m.useRef(!0);m.useEffect(()=>{var l,d;if(s){if(a.current){const f=i(r);if(f.length){const h=n(s,f);t&&o(h)}else{const h=s.getDocumentData(),S={dataStream:(d=(l=h.body)==null?void 0:l.dataStream)!=null?d:`${e}\r
|
|
10
|
-
`,...
|
|
11
|
-
`,
|
|
12
|
-
`;let p;if(a){p=s.getSelectionRanges();const g=f.dataStream.length-2+n;p.forEach(E=>{E.startOffset=Math.max(0,Math.min(E.startOffset,g)),E.endOffset=Math.max(0,Math.min(E.endOffset,g))})}const C={...l,body:f};return s.setDocumentData(C,p),u}}}function Gt(){const e=c.useDependency(c.ThemeService).getCurrentTheme();return m.useMemo(()=>{const n=[e.loopColor1,e.loopColor2,e.loopColor3,e.loopColor4,e.loopColor5,e.loopColor6,e.loopColor7,e.loopColor8,e.loopColor9,e.loopColor10,e.loopColor11,e.loopColor12],o=e.hyacinth700,s=e.verdancy800;return{formulaRefColors:n,numberColor:o,stringColor:s}},[e])}function Zt(r,e,t){const{formulaRefColors:n,numberColor:o,stringColor:s}=e,i=[],a=[],l=new Map;let d=0;for(let f=0,h=t.length;f<h;f++){const u=t[f];if(typeof u=="string"){const _=i[i.length-1],v=_?_.ed:0,y=v+u.length;i.push({st:v,ed:y});continue}if(r.hasDefinedNameDescription(u.token.trim()))continue;const{startIndex:S,endIndex:p,nodeType:C,token:g}=u;let E="";if(C===I.sequenceNodeType.REFERENCE){if(l.has(g))E=l.get(g);else{const _=d%n.length;E=n[_],l.set(g,E),d++}a.push({refIndex:f,themeColor:E,token:g})}else C===I.sequenceNodeType.NUMBER?E=o:(C===I.sequenceNodeType.STRING||C===I.sequenceNodeType.ARRAY)&&(E=s);E&&E.length>0&&i.push({st:S,ed:p+1,ts:{cl:{rgb:E}}})}return{textRuns:i,refSelections:a}}const Xt=(r,e)=>{const t=c.useDependency(c.ICommandService),n=c.useDependency(F.IShortcutService);m.useEffect(()=>{if(!e||!r)return;const s=`sheet.formula-embedding-editor.${e.getEditorId()}`,i=new c.DisposableCollection,a=l=>{var f;const d=e.getSelectionRanges();if(d.length===1){const h=d[0];switch(l){case F.KeyCode.ARROW_LEFT:{const u=Math.max(h.startOffset-1,0);e.setSelectionRanges([{startOffset:u,endOffset:u}]);break}case F.KeyCode.ARROW_RIGHT:{const u=(((f=e.getDocumentData().body)==null?void 0:f.dataStream)||",,").length-2,S=Math.min(h.endOffset+1,u);e.setSelectionRanges([{startOffset:S,endOffset:S}]);break}}}};return i.add(t.registerCommand({id:s,type:c.CommandType.OPERATION,handler(l,d){const{keyCode:f}=d;a(f)}})),[F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT,F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP].map(l=>({id:s,binding:l,preconditions:()=>!0,priority:900,staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keyCode:l}})).forEach(l=>{i.add(n.registerShortcut(l))}),()=>{i.dispose()}},[e,r])},Qt=(r,e)=>{const n=c.useDependency(z.IRenderManagerService).getRenderById(r),o=n==null?void 0:n.with(exports.RefSelectionsRenderService);m.useEffect(()=>{o&&(e?o==null||o.setRemainLastEnabled(!1):o==null||o.setRemainLastEnabled(!0))},[e,o])},vt=(r,e)=>{const t=c.useDependency(z.IRenderManagerService),n=c.useDependency(c.IContextService),o=c.useDependency(F.IContextMenuService),s=c.useDependency($.IRefSelectionsService),i=t.getRenderById(e),a=i==null?void 0:i.with(exports.RefSelectionsRenderService);m.useLayoutEffect(()=>{if(r){const l=a==null?void 0:a.enableSelectionChanging();return n.setContextValue($.REF_SELECTIONS_ENABLED,!0),n.setContextValue(c.EDITOR_ACTIVATED,!0),()=>{n.setContextValue(c.EDITOR_ACTIVATED,!1),n.setContextValue($.REF_SELECTIONS_ENABLED,!1),l==null||l.dispose()}}},[r]),m.useLayoutEffect(()=>{if(r)return()=>{s.clear()}},[r]),m.useEffect(()=>{if(r)return o.disable(),()=>{o.enable()}},[r]),m.useEffect(()=>{r&&(a==null||a.setSkipLastEnabled(!1))},[r])},Jt=()=>{m.useEffect(()=>()=>{},[])},en=r=>{const e=c.useDependency(c.IUniverInstanceService),t=c.useDependency($.SheetsSelectionsService);return m.useMemo(()=>{if(r){const o=e.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),s=o==null?void 0:o.getActiveSheet(),i=[...t.getCurrentSelections()];return()=>{const a=e.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),l=a==null?void 0:a.getActiveSheet();l&&l===s&&t.setSelections(i)}}return()=>{}},[r])},tn=r=>{const e=()=>{if(r){const{scene:n,mainComponent:o}=r.render,s=r.render.with(je.DocSkeletonManagerService),{width:i,height:a}=r.getBoundingClientRect();s.getViewModel().getDataModel().updateDocumentDataPageSize(1/0),n.transformByState({width:i,height:a}),o==null||o.resize(i,a)}},t=m.useMemo(()=>c.debounce(()=>{var p;if(!r)return;const o=r.render.with(je.DocSkeletonManagerService).getSkeleton(),{scene:s,mainComponent:i}=r.render,a=s.getViewport(ee.VIEWPORT_KEY.VIEW_MAIN),{actualWidth:l}=o.getActualSize(),{width:d,height:f}=r.getBoundingClientRect();let h=a==null?void 0:a.getScrollBar();const u=Math.max(l,d),S=f;s.transformByState({width:u,height:S}),i==null||i.resize(u,S),l>d?h==null?a&&new z.ScrollBar(a,{barSize:8,enableVertical:!1}):a==null||a.resetCanvasSizeAndUpdateScroll():(h=null,a==null||a.scrollToBarPos({x:0,y:0}),(p=a==null?void 0:a.getScrollBar())==null||p.dispose())},30),[r]);return m.useEffect(()=>{if(r){const n=setTimeout(()=>{e(),t()},500);return()=>{clearTimeout(n)}}},[r]),m.useEffect(()=>{if(r){const n=r.input$.subscribe(()=>{t()});return()=>{n.unsubscribe()}}},[r]),{resize:e,checkScrollBar:t}},mt=r=>typeof r=="string"?r===I.matchToken.COMMA:!1,Hn=r=>{if(typeof r=="object")return r.nodeType===I.sequenceNodeType.REFERENCE},Wn=r=>r.filter(e=>mt(e)||Hn(e)),rt=r=>{if(r.endColumn<r.startColumn){const e=r.endColumn;r.endColumn=r.startColumn,r.startColumn=e}if(r.endRow<r.startRow){const e=r.endRow;r.endRow=r.startRow,r.startRow=e}return r};function bt(r,e,t){var n,o;return((o=(n=r.getUnit(e))==null?void 0:n.getSheetBySheetId(t))==null?void 0:o.getName())||""}const he=(r,e=!1)=>e?r.map(t=>t.sheetName!==""?I.serializeRangeWithSheet(t.sheetName,t.range):I.serializeRange(t.range)):r.map(t=>I.serializeRange(t.range)),nn=(r,e,t,n,o,s,i)=>{const a=c.useDependency(z.IRenderManagerService),l=c.useDependency(c.IUniverInstanceService),d=m.useRef(!1),f=a.getRenderById(e),h=f==null?void 0:f.with(exports.RefSelectionsRenderService),u=m.useRef([]),S=m.useMemo(()=>{const C=Wn(n),g=u.current;return C.length===g.length?(g.splice(0),g.push(...C),g):C},[n]);u.current=S;const p=m.useRef();m.useEffect(()=>{if(r&&h){let C=!0;const g=(v,y)=>{var A;if(C||d.current){C=!1;return}const b=[...v],N=l.getUnit(e),T=((A=N==null?void 0:N.getActiveSheet())==null?void 0:A.getName())||"",M=S.map((O,K)=>{if(typeof O=="string"){if(!S[K-1])return null;const U=S[K+1];return mt(O)&&(mt(U)||K===S.length-1)?null:O}else if(O.nodeType===I.sequenceNodeType.REFERENCE){const L=I.deserializeRangeWithSheet(O.token);L.unitId=L.unitId===""?e:L.unitId,L.sheetName=L.sheetName===""?T:L.sheetName;const{unitId:U,sheetName:j}=L;if(s&&(U!==e||T!==j))return null;if(U===e&&T===j){const B=b.shift();if(B&&bt(l,e,B.rangeWithCoord.sheetId||"")===j){const Z={...O};return rt(B.rangeWithCoord),o?Z.token=I.serializeRangeWithSheet(T,B.rangeWithCoord):Z.token=I.serializeRange(B.rangeWithCoord),Z}}return O}return null}).filter(O=>!!O),x=he(b.map(O=>{var K,L,U;return{range:O.rangeWithCoord,unitId:(K=O.rangeWithCoord.unitId)!=null?K:"",sheetName:bt(l,(L=O.rangeWithCoord.unitId)!=null?L:"",(U=O.rangeWithCoord.sheetId)!=null?U:"")}}),o).join(I.matchToken.COMMA),w=me(M),D=`${w}${w&&x?I.matchToken.COMMA:""}${x}`,k=d.current;i(D,k?-1:D.length,y)},E=h.selectionMoveEnd$.subscribe(v=>{if(g(v,!0),d.current=!1,p.current){const{result:y,offset:b}=p.current;i(y,b,!0),p.current=void 0}}),_=h.selectionMoving$.pipe(Ue.throttleTime(50)).subscribe(v=>{g(v,!1)});return()=>{E.unsubscribe(),_.unsubscribe()}}},[r,S,h,o,s,i]),m.useEffect(()=>{if(r&&h){const C=new c.DisposableCollection,g=(v,y)=>{var k;let b=0,N=0,T=!1;const M=l.getUnit(e),x=((k=M==null?void 0:M.getActiveSheet())==null?void 0:k.getName())||"",w=S.map(A=>{if(typeof A=="string")return T||(N+=A.length),A;if(A.nodeType===I.sequenceNodeType.REFERENCE){const O=I.deserializeRangeWithSheet(v);if(O.unitId=O.unitId===""?e:O.unitId,O.sheetName=O.sheetName===""?x:O.sheetName,b===y){T=!0;const K={...A,token:v};return o?K.token=I.serializeRangeWithSheet(O.sheetName,O.range):K.token=I.serializeRange(O.range),b++,N+=K.token.length,K}return b++,T||(N+=A.token.length),A}return A}),D=me(w);p.current={result:D,offset:N},i(D,-1,!1)};let E=0;const _=h.selectionMoveEnd$.subscribe(()=>{E=setTimeout(()=>{C.dispose(),h.getSelectionControls().forEach((y,b)=>{C.add(q.merge(y.selectionMoving$,y.selectionScaling$).pipe(q.map(N=>I.serializeRange(N)),q.distinctUntilChanged()).subscribe(N=>{d.current=!0,g(N,b)}))})},30)});return()=>{_.unsubscribe(),C.dispose(),clearTimeout(E)}}},[r,h,S,i])},_t=(r,e,t,n,o,s)=>{const i=c.useDependency(c.ICommandService),a=c.useDependency(ee.IEditorService),d=c.useDependency(z.IRenderManagerService).getRenderById(e),f=d==null?void 0:d.with(exports.RefSelectionsRenderService);m.useEffect(()=>{if(r&&f)if(t){const h=i.onCommandExecuted(u=>{if(u.id===$.SetWorksheetActiveOperation.id){const S=f.getSelectionControls().length;for(let p=1;p<=S;p++)f.clearLastSelection();setTimeout(()=>{s()},30)}});return()=>{h.dispose()}}else{const h=i.beforeCommandExecuted(u=>{if(u.id===$.SetWorksheetActiveOperation.id){n(!1),o(),s();const S=a.getEditor(c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);S==null||S.focus()}});return()=>{h.dispose()}}},[r,f])},rn=r=>!r.some(t=>{if(typeof t=="string"){if(t!==I.matchToken.COMMA)return!0}else if(t.nodeType!==I.sequenceNodeType.REFERENCE)return!0;return!1}),Bn=(r,e,t)=>{const n=m.useRef(!0);m.useEffect(()=>{if(r){const o=setTimeout(()=>{n.current=!1},500);return()=>{clearTimeout(o)}}},[r]),m.useEffect(()=>{if(!n.current&&e){const o=rn(t);e(o,me(t))}},[t,e])},Vn="univer-sheet-range-selector-text-wrap",qn="univer-sheet-range-selector-placeholder",Kn="univer-sheet-range-selector-error",zn="univer-sheet-range-selector-error-wrap",Yn="univer-sheet-range-selector-text",Gn="univer-sheet-range-selector-active",Zn="univer-sheet-range-selector-icon",Xn="univer-sheet-range-selector-dialog-item",Qn="univer-sheet-range-selector-dialog-item-delete",de={sheetRangeSelectorTextWrap:Vn,sheetRangeSelectorPlaceholder:qn,sheetRangeSelectorError:Kn,sheetRangeSelectorErrorWrap:zn,sheetRangeSelectorText:Yn,sheetRangeSelectorActive:Gn,sheetRangeSelectorIcon:Zn,sheetRangeSelectorDialogItem:Xn,sheetRangeSelectorDialogItemDelete:Qn},De=()=>{};function on(r){const{initValue:e,unitId:t,subUnitId:n,errorText:o,placeholder:s,actions:i,onChange:a=De,onVerify:l=De,onRangeSelectorDialogVisibleChange:d=De,onBlur:f=De,onFocus:h=De,isFocus:u=!0,isOnlyOneRange:S=!1,isSupportAcrossSheet:p=!1}=r,C=c.useDependency(ee.IEditorService),g=c.useDependency(c.LocaleService),E=c.useDependency(c.ICommandService),_=c.useDependency(I.LexerTreeBuilder),v=m.useRef(null),[y,b]=m.useState(!1),[N,T]=m.useState(u),M=m.useMemo(()=>c.createInternalEditorID(`${P.RANGE_SELECTOR_SYMBOLS}-${c.generateRandomId(4)}`),[]),[x,w]=m.useState(),D=m.useRef(null),k=m.useMemo(()=>!y&&N,[y,N]),[A,O]=m.useState(()=>typeof e=="string"?e:he(e,p).join(I.matchToken.COMMA));i&&(i.handleOutClick=(H,W)=>{v.current&&!y&&!v.current.contains(H.target)&&W()});const K=m.useMemo(()=>A.split(I.matchToken.COMMA).filter(H=>!!H).map(H=>I.deserializeRangeWithSheet(H)),[A]),L=m.useMemo(()=>o!==void 0,[o]),U=en(!y&&N),j=m.useMemo(()=>H=>{const W=_.sequenceNodesBuilder(H);if(W){if(rn(W)){const oe=W.map(be=>{if(typeof be=="string")return be;if(be.nodeType===I.sequenceNodeType.REFERENCE){const It={...be},Oe=I.deserializeRangeWithSheet(be.token);return Oe.range=rt(Oe.range),p||(Oe.sheetName="",Oe.unitId=""),It.token=he([Oe],p)[0],It}return be}),_e=me(oe);a(_e)}}else O("")},[p]),B=zt(x);m.useLayoutEffect(()=>{if(u){const H=setTimeout(()=>{T(u),u&&B()},30);return()=>{clearTimeout(H)}}else U(),T(u),x==null||x.blur()},[u,B]);const{checkScrollBar:Z}=tn(x),ae=nt(),le=m.useMemo(()=>ae(A),[A]),fe=Yt(),X=pt(t),ne=(H,W=!0)=>{if(!x)return;const re=ae(H),oe=fe(x,re,W);X(oe)},ce=qt(le,j,x),pe=m.useMemo(()=>(H,W,re)=>{ne(H),O(H),ce(),re&&(B(),W!==-1&&setTimeout(()=>{const oe={startOffset:W,endOffset:W};x==null||x.setSelectionRanges([oe]);const _e=x==null?void 0:x.render.with(ee.DocBackScrollRenderController);_e==null||_e.scrollToRange({...oe,collapsed:!0})},50),Z())},[x]);nn(k,t,n,le,p,S,pe),vt(k,t),Qt(t,S),jn(t,A,x),Bn(k,l,le),Xt(k,x),Jt(),_t(k,t,p,T,f,()=>{k&&ne(A)}),m.useEffect(()=>{if(x){const H=x.input$.pipe(q.throttleTime(100)).subscribe(W=>{var oe,_e;const re=((_e=(oe=W.data.body)==null?void 0:oe.dataStream)!=null?_e:"").replaceAll(/\n|\r/g,"").replaceAll(/,{2,}/g,",").replaceAll(/(^,)/g,"");ne(re,!1),O(re),ce()});return()=>{H.unsubscribe()}}},[x]),m.useEffect(()=>{const H=E.onCommandExecuted(W=>{W.id===P.SetCellEditVisibleOperation.id&&(b(!1),d(!1),T(!1),f())});return()=>{H.dispose()}},[p]),m.useLayoutEffect(()=>{let H;if(D.current){H=C.register({autofocus:!0,editorUnitId:M,isSingle:!0,initialSnapshot:{id:M,body:{dataStream:`\r
|
|
13
|
-
|
|
14
|
-
`,textRuns:[]}}),
|
|
15
|
-
${
|
|
16
|
-
${
|
|
17
|
-
`,children:r.title}),R.jsx("div",{className:te.formulaHelpFunctionContentParamsDetail,children:r.value})]}),vr=r=>{const{prefix:e,value:t,active:n,onClick:o}=r;return R.jsxs("div",{className:te.formulaHelpParam,children:[R.jsxs("span",{className:te.formulaHelpParamPrefix,children:[e,"("]}),t&&t.map((s,i)=>R.jsxs("span",{className:te.formulaHelpParamItem,children:[R.jsx("span",{className:n===i?te.formulaHelpFunctionActive:te.formulaHelpParamActive,onClick:()=>o(i),children:Ct(s)}),i===t.length-1?"":","]},i)),")"]})},Me=r=>{const e=m.useRef();return e.current=r,e},_r=(r,e,t)=>{const n=c.useDependency(ge.IDescriptionService),o=c.useDependency(I.LexerTreeBuilder),[s,i]=m.useState(),[a,l]=m.useState(-1),[d,f]=m.useState(!0),h=Me(d),u=m.useRef(e);u.current=e;const S=()=>{i(void 0),l(-1),f(!1)};return m.useEffect(()=>{if(t&&r){const p=t.selectionChange$.pipe(q.debounceTime(50)).subscribe(g=>{if(g.textRanges.length===1){const[E]=g.textRanges;if(E.collapsed&&h.current){const _=o.getFunctionAndParameter(u.current,E.startOffset-1);if(_){const{functionName:v,paramIndex:y}=_,b=n.getFunctionInfo(v);i(b),l(y);return}}}i(void 0),l(-1)}),C=t.selectionChange$.pipe(q.filter(g=>g.isEditing),q.filter(g=>g.textRanges.length===1),q.map(g=>g.textRanges[0].startOffset),q.distinctUntilChanged()).subscribe(()=>{f(!0)});return()=>{p.unsubscribe(),C.unsubscribe()}}},[t,r]),m.useEffect(()=>{r||S()},[r]),{functionInfo:s,paramIndex:a,reset:S}},Ve=(r,e,t=!0)=>{let n=-1;return r.reduce((o,s,i)=>{if(o.isFinish)return o;const a=o.currentIndex;if(typeof s!="string")o.currentIndex+=s.token.length;else{const l=s.length;o.currentIndex+=l}return(t?o.currentIndex===e:e>a&&e<=o.currentIndex)&&(n=i,o.isFinish=!0),o},{currentIndex:0,isFinish:!1}),n},Cr=(r,e=[],t)=>{const n=c.useDependency(ge.IDescriptionService),[o,s]=m.useState([]),[i,a]=m.useState(""),l=m.useRef(-1),d=Me({nodes:e}),f=()=>{s([]),a(""),l.current=-1};return m.useEffect(()=>{if(t&&r){const u=t.input$.pipe(q.debounceTime(300)).subscribe(()=>{const S=t.getSelectionRanges();if(S.length===1){const p=d.current.nodes,C=S[0];if(C.collapsed){const g=Ve(p,C.startOffset-1,!1);l.current=g;const E=p[g];if(E&&typeof E!="string"&&E.nodeType===I.sequenceNodeType.FUNCTION){l.current=g;const _=E.token,v=n.getSearchListByNameFirstLetter(_);s(v),a(_);return}}}l.current=-1,a(""),s(p=>p!=null&&p.length?[]:p)});return()=>{u.unsubscribe()}}},[t,r]),m.useEffect(()=>{r||f()},[r]),{searchList:o,searchText:i,handlerFormulaReplace:u=>{const S=[...d.current.nodes];if(l.current!==-1){const p=S.splice(l.current+1),C=S.pop()||"";let g=(typeof C=="string"?C.length:C.token.length)-u.length;return S.push(u),p[0]!==I.matchToken.OPEN_BRACKET&&(S.push(I.matchToken.OPEN_BRACKET),g--),{text:me([...S,...p]),offset:g}}},reset:f}},Rr=r=>r.reduce((e,t)=>typeof t=="string"?e+t.length:e+t.token.length,0),Ir=(r,e=300)=>{let t=r,n=0;const o=()=>t,s=a=>{clearTimeout(n),t=a};function i(){clearTimeout(n),n=setTimeout(()=>{t=r},e)}return{getValue:o,setValue:s,reset:i}},Rt=[I.compareToken.EQUALS,I.compareToken.GREATER_THAN,I.compareToken.GREATER_THAN_OR_EQUAL,I.compareToken.LESS_THAN,I.compareToken.LESS_THAN_OR_EQUAL,I.compareToken.NOT_EQUAL,I.operatorToken.CONCATENATE,I.operatorToken.DIVIDED,I.operatorToken.MINUS,I.operatorToken.MULTIPLY,I.operatorToken.PLUS,I.operatorToken.POWER,I.matchToken.COMMA],xt=[...Rt,I.matchToken.COLON,I.matchToken.OPEN_BRACKET],Er=[...Rt,I.matchToken.CLOSE_BRACKET],ct=r=>typeof r=="string"?r:r.token,yr=(r,e,t)=>{const o=c.useDependency(z.IRenderManagerService).getRenderById(r),s=o==null?void 0:o.with(exports.RefSelectionsRenderService),i=m.useRef(!1),a=Me(e),l=m.useMemo(()=>Ir(!1,300),[]),d=h=>{s&&s.setSkipLastEnabled(h),i.current=h},f=()=>i.current;return m.useEffect(()=>{if(t&&s){const h=t.input$.subscribe(S=>{const p=S.content;p.length===1&&xt.includes(p)?(d(!0),l.setValue(!0),l.reset()):(d(!1),l.setValue(!1))}),u=t.selectionChange$.pipe(q.debounceTime(100)).subscribe(S=>{if(l.getValue())return;const p=S.textRanges;if(!p.length)return;if(p.length!==1){d(!1);return}const C=p[0];if(!C.collapsed){d(!1);return}const g=a.current;if(!g.length){d(!0);return}const E=C.startOffset-1;if(E===0){const T=Ve(g,1,!1),M=g[T]||"",x=ct(M);if(Rt.includes(x)){d(!0);return}}const _=Ve(g,E,!1),v=g[_];if(!v){d(!1);return}const y=g[_+1]||"",b=ct(y),N=ct(v);xt.includes(N)&&(!y||Er.includes(b))?d(!0):d(!1)});return s.selectionMoveEnd$.subscribe(()=>{Promise.resolve().then(()=>{d(!1)})}),()=>{h.unsubscribe(),u.unsubscribe()}}},[t,s]),{setIsAddSelection:d,getIsNeedAddSelection:f,isLockSelectionEvent:l}},Tr=()=>{},br=(r,e,t,n,o,s,i=Tr)=>{const a=c.useDependency(z.IRenderManagerService),l=c.useDependency(c.IUniverInstanceService),d=Me(n),{getIsNeedAddSelection:f}=yr(e,n,s),h=l.getUnit(e),u=y=>{var b,N;return(N=(b=h==null?void 0:h.getSheetBySheetId(y))==null?void 0:b.getName())!=null?N:""},S=m.useMemo(()=>u(t),[t]),p=c.useObservable(h==null?void 0:h.activeSheet$),C=Me({activeSheet:p,sheetName:S}),g=a.getRenderById(e),E=g==null?void 0:g.with(exports.RefSelectionsRenderService),_=m.useRef(!1),v=m.useRef();m.useEffect(()=>{if(E&&r){let y=!0;const b=T=>{var k,A,O,K,L,U;if(y||_.current){y=!1;return}const M=s==null?void 0:s.getSelectionRanges();if((M==null?void 0:M.length)!==1)return;const w=M[0].startOffset-1,D=[...d.current];if(f())if(w!==0){const j=Ve(D,w,!1);if(j===-1&&D.length)return;const B=T[T.length-1],Z=D.splice(j+1),ae=(k=B.rangeWithCoord.sheetId)!=null?k:t,le={range:B.rangeWithCoord,unitId:(A=B.rangeWithCoord.unitId)!=null?A:e,sheetName:u(ae)},X=he([le],o&&ae!==t);D.push({token:X[0],nodeType:I.sequenceNodeType.REFERENCE});const ne=[...D,...Z],ce=me(ne);i(ce,Rr(D),!0)}else{const j=T[T.length-1],B=(O=j.rangeWithCoord.sheetId)!=null?O:t,Z={range:j.rangeWithCoord,unitId:(K=j.rangeWithCoord.unitId)!=null?K:e,sheetName:u(B)},le=he([Z],o&&B!==t);D.unshift({token:le[0],nodeType:I.sequenceNodeType.REFERENCE});const fe=me(D);i(fe,le[0].length,!0)}else{let j=0;const B=D.map(X=>{var ne,ce,pe;if(typeof X=="string")return X;if(X.nodeType===I.sequenceNodeType.REFERENCE){const ve=I.deserializeRangeWithSheet(X.token);if(ve.sheetName||(ve.sheetName=S),o&&((ne=C.current.activeSheet)==null?void 0:ne.getName())!==ve.sheetName)return X.token;const Y=T[j];if(j++,!Y)return"";const G=(ce=Y.rangeWithCoord.sheetId)!=null?ce:t,Q={range:Y.rangeWithCoord,unitId:(pe=Y.rangeWithCoord.unitId)!=null?pe:e,sheetName:u(G)};return he([Q],o)[0]}return X.token}).join(""),Z=[];for(let X=j;X<=T.length-1;X++){const ne=T[X],ce=(L=ne.rangeWithCoord.sheetId)!=null?L:t,pe={range:ne.rangeWithCoord,unitId:(U=ne.rangeWithCoord.unitId)!=null?U:e,sheetName:u(ce)},Y=he([pe],o&&ce!==t);Z.push(Y[0])}const ae=D[D.length-1],le=ae&&(typeof ae=="string"?!1:ae.nodeType===I.sequenceNodeType.REFERENCE),fe=`${B}${Z.length&&le?",":""}${Z.join(",")}`;i(fe,fe.length,!0)}},N=E.selectionMoveEnd$.subscribe(T=>{if(b(T),_.current=!1,v.current){const{result:M,offset:x}=v.current;i(M,x||-1,!0),v.current=void 0}});return()=>{N.unsubscribe()}}},[E,s,o,r]),m.useEffect(()=>{if(r&&E&&s){const y=new c.DisposableCollection,b=(M,x)=>{let w=0,D=0,k=!1;const{sheetName:A}=C.current,O=d.current.map(L=>{var U;if(typeof L=="string")return k||(D+=L.length),L;if(L.nodeType===I.sequenceNodeType.REFERENCE){const j=I.deserializeRangeWithSheet(L.token);if(j.unitId||(j.unitId=e),j.sheetName||(j.sheetName=A),o&&((U=C.current.activeSheet)==null?void 0:U.getName())!==j.sheetName)return k||(D+=L.token.length),L;if(w===x){k=!0;const B={...L,token:M};return o&&j.sheetName!==A?B.token=I.serializeRangeWithSheet(j.sheetName,I.deserializeRangeWithSheet(M).range):B.token=M,D+=B.token.length,w++,B}return k||(D+=L.token.length),w++,L}return k||(D+=L.token.length),L}),K=me(O);i(K,-1,!1),v.current={result:K,offset:D}},N=()=>{y.dispose(),E.getSelectionControls().forEach((x,w)=>{y.add(q.merge(x.selectionMoving$,x.selectionScaling$).pipe(Ue.map(D=>I.serializeRange(D)),Ue.distinctUntilChanged()).subscribe(D=>{_.current=!0,b(D,w)}))})},T=q.merge(s.input$,E.selectionMoveEnd$).pipe(Ue.debounceTime(50)).subscribe(()=>{N()});return()=>{T.unsubscribe(),y.dispose()}}},[r,E,s])},Nr=(r,e,t)=>{const n=c.useDependency(I.LexerTreeBuilder),o=m.useRef(!0);m.useEffect(()=>{if(r){const s=setTimeout(()=>{o.current=!1},500);return()=>{clearTimeout(s)}}},[r]),m.useEffect(()=>{if(!o.current&&e){const s=n.checkIfAddBracket(t);e(s===0&&t.startsWith(I.operatorToken.EQUALS),`${t}`)}},[t,e])},xr="univer-sheet-embedding-formula-editor-active",Mr="univer-sheet-embedding-formula-editor-wrap",Fr="univer-sheet-embedding-formula-editor-text",Or="univer-sheet-embedding-formula-editor-error-wrap",Ar="univer-sheet-embedding-formula-editor-error",xe={sheetEmbeddingFormulaEditorActive:xr,sheetEmbeddingFormulaEditorWrap:Mr,sheetEmbeddingFormulaEditorText:Fr,sheetEmbeddingFormulaEditorErrorWrap:Or,sheetEmbeddingFormulaEditorError:Ar},Dr="univer-formula-search-function",Pr="univer-formula-search-function-item",Lr="univer-formula-search-function-item-name",wr="univer-formula-search-function-item-name-light",kr="univer-formula-search-function-item-desc",Ur="univer-formula-search-function-item-active",Ce={formulaSearchFunction:Dr,formulaSearchFunctionItem:Pr,formulaSearchFunctionItemName:Lr,formulaSearchFunctionItemNameLight:wr,formulaSearchFunctionItemDesc:kr,formulaSearchFunctionItemActive:Ur},$r=()=>{},jr=m.forwardRef(Hr);function Hr(r,e){const{searchText:t,searchList:n,onSelect:o,editorId:s,onClose:i=$r}=r,a=c.useDependency(ee.IEditorService),l=c.useDependency(F.IShortcutService),d=c.useDependency(c.ICommandService),f=m.useMemo(()=>!!n.length,[n]),h=m.useRef(),[u,S]=m.useState(0),[p,C]=m.useState([0,0]),g=m.useRef(!1),E=Me({searchList:n,active:u}),_=a.getEditor(s);m.useEffect(()=>{const T=a.getEditor(s),M=T==null?void 0:T.getBoundingClientRect();if(M==null)return;const{left:x,top:w,height:D}=M;C([x,w+D]),S(0)},[t,n]);function v(T){g.current&&S(T)}function y(){g.current&&S(-1)}m.useEffect(()=>{if(!n.length)return;const T=`sheet.formula-embedding-editor.search_function.${s}`,M=new c.DisposableCollection,x=w=>{const{searchList:D,active:k}=E.current;switch(w){case F.KeyCode.ARROW_UP:{S(A=>{const O=Math.max(0,A-1);return b(O),O});break}case F.KeyCode.ARROW_DOWN:{S(A=>{const O=Math.min(D.length-1,A+1);return b(O),O});break}case F.KeyCode.TAB:case F.KeyCode.ENTER:{const A=D[k];o(A.name);break}case F.KeyCode.ESC:{o("");break}}};return M.add(d.registerCommand({id:T,type:c.CommandType.OPERATION,handler(w,D){const{keyCode:k}=D;x(k)}})),[F.KeyCode.ARROW_UP,F.KeyCode.ARROW_DOWN,F.KeyCode.ENTER,F.KeyCode.ESC,F.KeyCode.TAB].map(w=>({id:T,binding:w,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keyCode:w}})).forEach(w=>{M.add(l.registerShortcut(w))}),()=>{M.dispose()}},[n]);function b(T){var U;const M=(U=h.current)==null?void 0:U.querySelectorAll(`.${Ce.formulaSearchFunctionItem}`)[T];if(!M)return;const x=M.parentNode;if(!x)return;const D=x.getBoundingClientRect().top,k=x.offsetHeight,A=M.getBoundingClientRect(),O=A.top,K=A.height;if(O>=0&&O>D&&O-D+K<=k)return;const L=M.offsetTop-(k-K)/2;x.scrollTo({top:L,behavior:"smooth"})}const N=m.useMemo(()=>{let T="";return()=>{clearTimeout(T),g.current=!0,T=setTimeout(()=>{g.current=!1},300)}},[]);return n.length>0&&R.jsx(ie.Popup,{visible:f,offset:p,children:R.jsx("ul",{className:Ce.formulaSearchFunction,ref:T=>{h.current=T,e&&(e.current=T)},children:n.map((T,M)=>R.jsxs("li",{className:u===M?`
|
|
18
|
-
${
|
|
19
|
-
${
|
|
20
|
-
`:
|
|
21
|
-
`},documentStyle:{}}},T.current);const G=u.getEditor(M);y(G)}return()=>{Y==null||Y.dispose()}},[]);const pe=Y=>{const G=le(Y);if(G){g(`=${G.text}`);const Q=v==null?void 0:v.getSelectionRanges();if(Q&&Q.length===1){const H=Q[0];if(H.collapsed){const W=G.offset;setTimeout(()=>{v==null||v.setSelectionRanges([{startOffset:H.startOffset-W,endOffset:H.endOffset-W}])},30)}}fe(),L(),K(G.text)}},ve=()=>{setTimeout(()=>{N(!0),a(),L()},30)};return R.jsxs("div",{className:xe.sheetEmbeddingFormulaEditor,children:[R.jsxs("div",{className:Vt(xe.sheetEmbeddingFormulaEditorWrap,{[xe.sheetEmbeddingFormulaEditorActive]:b,[xe.sheetEmbeddingFormulaEditorError]:x}),ref:p,children:[R.jsx("div",{className:xe.sheetEmbeddingFormulaEditorText,ref:T,onMouseUp:ve}),e!==void 0?R.jsx("div",{className:xe.sheetEmbeddingFormulaEditorErrorWrap,children:e}):null]}),R.jsx(pr,{editorId:M,paramIndex:ne,functionInfo:X,onClose:()=>{ce(),L()}}),R.jsx(jr,{searchText:ae,editorId:M,searchList:Z,onSelect:pe,ref:_})]})}const Wr="sheets-formula-ui.base.config",Ft={};function Br(r){return r.getContextValue(c.FOCUSING_DOC)&&r.getContextValue(c.FOCUSING_UNIVER_EDITOR)&&r.getContextValue(c.FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE)}function cn(r,e=!1){return!e&&!(c.isFormulaString(r==null?void 0:r.f)||c.isFormulaId(r==null?void 0:r.si))?null:typeof(r==null?void 0:r.v)=="string"&&I.ERROR_TYPE_SET.has(r.v)?r.v:null}var Vr=Object.defineProperty,qr=Object.getOwnPropertyDescriptor,Kr=(r,e,t,n)=>{for(var o=n>1?void 0:n?qr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Vr(e,t,o),o},Pe=(r,e)=>(t,n)=>e(t,n,r);const lt="SHEET_FORMULA_ALERT",zr={[I.ErrorType.DIV_BY_ZERO]:"divByZero",[I.ErrorType.NAME]:"name",[I.ErrorType.VALUE]:"value",[I.ErrorType.NUM]:"num",[I.ErrorType.NA]:"na",[I.ErrorType.CYCLE]:"cycle",[I.ErrorType.REF]:"ref",[I.ErrorType.SPILL]:"spill",[I.ErrorType.CALC]:"calc",[I.ErrorType.ERROR]:"error",[I.ErrorType.CONNECT]:"connect",[I.ErrorType.NULL]:"null"};let St=class extends c.Disposable{constructor(r,e,t,n,o,s){super(),this._context=r,this._hoverManagerService=e,this._cellAlertManagerService=t,this._localeService=n,this._formulaDataModel=o,this._zenZoneService=s,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(q.debounceTime(100)).subscribe(r=>{var e,t,n,o,s;if(r){const a=this._context.unit.getActiveSheet();if(!a)return;const l=a.getCell(r.location.row,r.location.col),d=(o=(n=(t=(e=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:e[r.location.unitId])==null?void 0:t[r.location.subUnitId])==null?void 0:n[r.location.row])==null?void 0:o[r.location.col];if(c.isICellData(l)){const f=cn(l,!!d);if(!f){this._hideAlert();return}const h=this._cellAlertManagerService.currentAlert.get(lt),u=(s=h==null?void 0:h.alert)==null?void 0:s.location;if(u&&u.row===r.location.row&&u.col===r.location.col&&u.subUnitId===r.location.subUnitId&&u.unitId===r.location.unitId)return;this._cellAlertManagerService.showAlert({type:P.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${zr[f]}`),location:r.location,width:200,height:74,key:lt});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(r=>{r&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(lt)}};St=Kr([Pe(1,c.Inject(P.HoverManagerService)),Pe(2,c.Inject(P.CellAlertManagerService)),Pe(3,c.Inject(c.LocaleService)),Pe(4,c.Inject(I.FormulaDataModel)),Pe(5,F.IZenZoneService)],St);var Yr=Object.defineProperty,Gr=Object.getOwnPropertyDescriptor,Zr=(r,e,t,n)=>{for(var o=n>1?void 0:n?Gr(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Yr(e,t,o),o},Ot=(r,e)=>(t,n)=>e(t,n,r);let qe=class extends c.Disposable{constructor(r,e){super(),this._autoFillService=r,this._lexerTreeBuilder=e,this._registerAutoFill()}_registerAutoFill(){const r={type:P.DATA_TYPE.FORMULA,priority:1001,match:e=>c.isFormulaString(e==null?void 0:e.f)||c.isFormulaId(e==null?void 0:e.si),isContinue:(e,t)=>e.type===P.DATA_TYPE.FORMULA,applyFunctions:{[P.APPLY_TYPE.COPY]:(e,t,n,o)=>{const{data:s,index:i}=e;return this._fillCopyFormula(s,t,n,i,o)}}};this._autoFillService.registerRule(r)}_fillCopyFormula(r,e,t,n,o){var l,d;const s=Qr(o),i=[],a=new Map;for(let f=1;f<=e;f++){const h=(f-1)%r.length,u=c.Tools.deepClone(r[h]);if(u){const S=((l=r[h])==null?void 0:l.f)||"",p=((d=r[h])==null?void 0:d.si)||"",C=c.isFormulaString(S);if(c.isFormulaId(p))u.si=p,u.f=null,u.v=null,u.p=null,u.t=null,i.push(u);else if(C){let E=a.get(h);if(E)u.si=E,u.f=null,u.v=null,u.p=null,u.t=null;else{E=c.Tools.generateRandomId(6),a.set(h,E);const{offsetX:_,offsetY:v}=Xr(s,e,t),y=this._lexerTreeBuilder.moveFormulaRefOffset(S,_,v);u.si=E,u.f=y,u.v=null,u.p=null,u.t=null}i.push(u)}}}return i}};qe=Zr([Ot(0,P.IAutoFillService),Ot(1,c.Inject(I.LexerTreeBuilder))],qe);function Xr(r,e,t){let n=0,o=0;switch(t){case c.Direction.UP:o=-r*e;break;case c.Direction.RIGHT:n=r;break;case c.Direction.DOWN:o=r;break;case c.Direction.LEFT:n=-r*e;break}return{offsetX:n,offsetY:o}}function Qr(r){let e=0;for(const t in r)r[t].forEach(n=>{e+=n.data.length});return e}var Jr=Object.defineProperty,eo=Object.getOwnPropertyDescriptor,to=(r,e,t,n)=>{for(var o=n>1?void 0:n?eo(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Jr(e,t,o),o},Le=(r,e)=>(t,n)=>e(t,n,r);const no="default-paste-formula";let Ke=class extends c.Disposable{constructor(r,e,t,n,o){super(),this._currentUniverSheet=r,this._lexerTreeBuilder=e,this._sheetClipboardService=t,this._injector=n,this._formulaDataModel=o,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:(r,e,t,n)=>this._onPasteCells(r,e,t,n,!0)}}_pasteWithFormulaHook(){return{id:no,priority:10,onPasteCells:(r,e,t,n)=>this._onPasteCells(r,e,t,n,!1)}}_onPasteCells(r,e,t,n,o){var h;if([P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(n.pasteType))return{undos:[],redos:[]};const s=this._currentUniverSheet.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),i=e.unitId||s.getUnitId(),a=e.subUnitId||((h=s.getActiveSheet())==null?void 0:h.getSheetId());if(!i||!a)return{undos:[],redos:[]};const l=e.range,d=t,f={copyType:n.copyType||P.COPY_TYPE.COPY,copyRange:r==null?void 0:r.range,pasteType:n.pasteType};return this._injector.invoke(u=>ro(i,a,l,d,u,f,this._lexerTreeBuilder,this._formulaDataModel,o,r))}};Ke=to([Le(0,c.IUniverInstanceService),Le(1,c.Inject(I.LexerTreeBuilder)),Le(2,P.ISheetClipboardService),Le(3,c.Inject(c.Injector)),Le(4,c.Inject(I.FormulaDataModel))],Ke);function ro(r,e,t,n,o,s,i,a,l=!1,d){const f=[],h=[],u=oo(r,e,t,n,s,i,a,d),S={unitId:r,subUnitId:e,cellValue:u.getData()};f.push({id:$.SetRangeValuesMutation.id,params:S});const p=$.SetRangeValuesUndoMutationFactory(o,S);return h.push({id:$.SetRangeValuesMutation.id,params:p}),{undos:h,redos:f}}function oo(r,e,t,n,o,s,i,a){return a?o.pasteType===P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?io(r,e,t,n,i,a):o.pasteType===P.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?co(r,e,t,n,s,i,a):ao(r,e,t,n,s,i,a):so(r,e,t,n,i)}function so(r,e,t,n,o){const s=new c.ObjectMatrix,i=o.getSheetFormulaData(r,e);return n.forValue((a,l,d)=>{var S;const f=t.rows[a],h=t.cols[l],u={};c.isFormulaString(d.v)?(u.v=null,u.f=`${d.v}`,u.si=null,u.p=null,s.setValue(f,h,u)):(S=i==null?void 0:i[f])!=null&&S[h]&&(u.v=d.v,u.f=null,u.si=null,u.p=null,s.setValue(f,h,u))}),s}function io(r,e,t,n,o,s){var d,f;const i=new c.ObjectMatrix,a=(f=(d=o.getArrayFormulaCellData())==null?void 0:d[s.unitId])==null?void 0:f[s.subUnitId],l=o.getSheetFormulaData(r,e);return n.forValue((h,u,S)=>{var v,y;const p=s.range.rows[h%s.range.rows.length],C=s.range.cols[u%s.range.cols.length],g=t.rows[h],E=t.cols[u],_={};if(c.isFormulaString(S.f)||c.isFormulaId(S.si))_.v=S.v,_.f=null,_.si=null,_.p=null,i.setValue(g,E,_);else if((v=a==null?void 0:a[p])!=null&&v[C]){const b=a[p][C];_.v=b.v,_.f=null,_.si=null,_.p=null,i.setValue(g,E,_)}else if((y=l==null?void 0:l[g])!=null&&y[E]){if(_.v=S.v,_.f=null,_.si=null,_.p=null,S.p){const b=an(S);b&&(_.v=b)}i.setValue(g,E,_)}}),i}function co(r,e,t,n,o,s,i){const a=new c.ObjectMatrix,l=new Map;return n.forValue((d,f,h)=>{const u=t.rows[d],S=t.cols[f],p={};if(c.isFormulaId(h.si)){if(i.unitId!==r||i.subUnitId!==e){const C=s.getFormulaStringByCell(i.range.rows[d%i.range.rows.length],i.range.cols[f%i.range.cols.length],i.subUnitId,i.unitId),g=t.cols[f]-i.range.cols[f%i.range.cols.length],E=t.rows[d]-i.range.rows[d%i.range.rows.length],_=o.moveFormulaRefOffset(C||"",g,E);p.si=null,p.f=_}else p.si=h.si,p.f=null;p.v=null,p.p=null,a.setValue(u,S,p)}else if(c.isFormulaString(h.f)){const C=`${d%i.range.rows.length}_${f%i.range.cols.length}`;let g=l.get(C);if(g)p.si=g,p.f=null;else{g=c.Tools.generateRandomId(6),l.set(C,g);const E=t.cols[f]-i.range.cols[f%i.range.cols.length],_=t.rows[d]-i.range.rows[d%i.range.rows.length],v=o.moveFormulaRefOffset(h.f||"",E,_);p.si=g,p.f=v}p.v=null,p.p=null,a.setValue(u,S,p)}else{if(p.v=h.v,p.f=null,p.si=null,p.p=null,h.p){const C=an(h);C&&(p.v=C)}a.setValue(u,S,p)}}),a}function ao(r,e,t,n,o,s,i){const a=new c.ObjectMatrix,l=new Map,d=s.getSheetFormulaData(r,e);return n.forValue((f,h,u)=>{var g;const S=t.rows[f],p=t.cols[h],C={};if(c.isFormulaId(u.si)){if(i.unitId!==r||i.subUnitId!==e){const E=s.getFormulaStringByCell(i.range.rows[f%i.range.rows.length],i.range.cols[h%i.range.cols.length],i.subUnitId,i.unitId),_=t.cols[h]-i.range.cols[h%i.range.cols.length],v=t.rows[f]-i.range.rows[f%i.range.rows.length],y=o.moveFormulaRefOffset(E||"",_,v);C.si=null,C.f=y}else C.si=u.si,C.f=null;C.v=null,C.p=null,a.setValue(S,p,C)}else if(c.isFormulaString(u.f)){const E=`${f%i.range.rows.length}_${h%i.range.cols.length}`;let _=l.get(E);if(_)C.si=_,C.f=null;else{_=c.Tools.generateRandomId(6),l.set(E,_);const v=t.cols[h]-i.range.cols[h%i.range.cols.length],y=t.rows[f]-i.range.rows[f%i.range.rows.length],b=o.moveFormulaRefOffset(u.f||"",v,y);C.si=_,C.f=b}C.v=null,C.p=null,a.setValue(S,p,C)}else(g=d==null?void 0:d[S])!=null&&g[p]&&(C.v=u.v,C.f=null,C.si=null,C.p=u.p,a.setValue(S,p,C))}),a}function an(r){if(r!=null&&r.p){const e=r==null?void 0:r.p.body;if(e==null)return;const t=e.dataStream;return t.substring(t.length-2,t.length)===c.DEFAULT_EMPTY_DOCUMENT_VALUE?t.substring(0,t.length-2):t}}var lo=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,ho=(r,e,t,n)=>{for(var o=n>1?void 0:n?uo(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&lo(e,t,o),o},ye=(r,e)=>(t,n)=>e(t,n,r);let ze=class extends c.Disposable{constructor(e,t,n,o,s,i,a,l){super();V(this,"_previousShape");V(this,"_skeleton");this._context=e,this._sheetInterceptorService=t,this._formulaDataModel=n,this._themeService=o,this._renderManagerService=s,this._sheetSkeletonManagerService=i,this._commandService=a,this._logService=l,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(e=>{var t,n;if(e==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton:o}=e,s=(n=(t=this._skeleton)==null?void 0:t.worksheet)==null?void 0:n.getSheetId();if(this._changeRuntime(o),s!==o.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId:i,sheetId:a}=e;this._updateArrayFormulaRangeShape(i,a)}}}))}_changeRuntime(e){this._skeleton=e}_initInterceptorEditorStart(){this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept($.BEFORE_CELL_EDIT,{handler:(e,t,n)=>{var p,C,g,E;const{row:o,col:s,unitId:i,subUnitId:a,worksheet:l}=t,d=this._formulaDataModel.getArrayFormulaRange(),f=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),e==null)return n(e);let h=null;const u=this._formulaDataModel.getFormulaStringByCell(o,s,a,i);if(u!==null&&(h={f:u}),e.v!=null&&e.v!==""&&((g=(C=(p=f[i])==null?void 0:p[a])==null?void 0:C[o])==null?void 0:g[s])==null)return h?{...e,...h}:n(e);const S=(E=d==null?void 0:d[i])==null?void 0:E[a];return S!=null&&(h=this._displayArrayFormulaRangeShape(S,o,s,i,a,l,h)),h?{...e,...h}:n(e)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{(e.id===I.SetFormulaCalculationResultMutation.id||e.id===I.SetArrayFormulaDataMutation.id&&t&&t.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{$.SetWorksheetRowAutoHeightMutation.id===e.id&&requestIdleCallback(()=>{const t=e.params,{unitId:n,subUnitId:o,rowsAutoHeightInfo:s}=t;this._refreshArrayFormulaRangeShapeByRow(n,o,s)})}))}_displayArrayFormulaRangeShape(e,t,n,o,s,i,a){const l=this._formulaDataModel.getSheetFormulaData(o,s);return new c.ObjectMatrix(e).forValue((d,f,h)=>{var g;if(h==null)return!0;const{startRow:u,startColumn:S,endRow:p,endColumn:C}=h;if(d===t&&f===n)return this._createArrayFormulaRangeShape(h,o),!1;if(t>=u&&t<=p&&n>=S&&n<=C){const E=i.getCell(u,S);if((E==null?void 0:E.v)===I.ErrorType.SPILL)return;const _=(g=l==null?void 0:l[d])==null?void 0:g[f];return _==null||_.f==null?!0:(a==null&&(a={f:_.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(h,o),!1)}}),a}_createArrayFormulaRangeShape(e,t){const n=this._renderManagerService.getRenderById(t),o=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n||!o)return;const{scene:s}=n;if(!s)return;const i=this._themeService.getCurrentTheme(),a={range:e,primary:null,style:{strokeWidth:1,stroke:i.hyacinth700,fill:new c.ColorKit(i.colorWhite).setAlpha(0).toString(),widgets:{}}},l=P.attachSelectionWithCoord(a,o),{rowHeaderWidth:d,columnHeaderHeight:f}=o,h=new P.SelectionControl(s,P.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:d,columnHeaderHeight:f});h.updateRangeBySelectionWithCoord(l),h.setEvent(!1),this._previousShape=h}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(e,t){if(this._previousShape){const{startRow:n,endRow:o,startColumn:s,endColumn:i}=this._previousShape.getRange(),a={startRow:n,endRow:o,startColumn:s,endColumn:i};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(a,e)}}_checkCurrentSheet(e,t){const n=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!n)return!1;const o=n.worksheet;return o?o.unitId===e&&o.getSheetId()===t:!1}_updateArrayFormulaRangeShape(e,t){this._checkCurrentSheet(e,t)&&this._previousShape&&this._refreshArrayFormulaRangeShape(e)}_refreshArrayFormulaRangeShapeByRow(e,t,n){if(!this._checkCurrentSheet(e,t)||!this._previousShape)return;const{startRow:o,endRow:s,startColumn:i,endColumn:a}=this._previousShape.getRange();for(let l=0;l<n.length;l++){const{row:d}=n[l];if(o>=d){const f={startRow:o,endRow:s,startColumn:i,endColumn:a};this._refreshArrayFormulaRangeShape(e,f);break}}}};ze=ho([ye(1,c.Inject($.SheetInterceptorService)),ye(2,c.Inject(I.FormulaDataModel)),ye(3,c.Inject(c.ThemeService)),ye(4,z.IRenderManagerService),ye(5,c.Inject(P.SheetSkeletonManagerService)),ye(6,c.ICommandService),ye(7,c.ILogService)],ze);var fo=Object.defineProperty,mo=Object.getOwnPropertyDescriptor,So=(r,e,t,n)=>{for(var o=n>1?void 0:n?mo(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&fo(e,t,o),o},At=(r,e)=>(t,n)=>e(t,n,r);const go={tl:{size:6,color:"#409f11"}};let Ye=class extends c.RxDisposable{constructor(r,e){super(),this._sheetInterceptorService=r,this._formulaDataModel=e,this.disposeWithMe(this._sheetInterceptorService.intercept($.INTERCEPTOR_POINT.CELL_CONTENT,{effect:c.InterceptorEffectEnum.Style,handler:(t,n,o)=>{var a,l,d,f;const s=(f=(d=(l=(a=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:a[n.unitId])==null?void 0:l[n.subUnitId])==null?void 0:d[n.row])==null?void 0:f[n.col];return cn(t,!!s)?o({...t,markers:{...t==null?void 0:t.markers,...go}}):o(t)},priority:10}))}};Ye=So([At(0,c.Inject($.SheetInterceptorService)),At(1,c.Inject(I.FormulaDataModel))],Ye);function po(){const r=c.useDependency(ge.TriggerCalculationController),e=c.useDependency(c.ICommandService),t=c.useObservable(r.progress$),n=m.useCallback(()=>{e.executeCommand(I.SetFormulaCalculationStopMutation.id)},[e]),o=m.useCallback(()=>{r.clearProgress()},[r]);return R.jsx(F.ProgressBar,{progress:t,onTerminate:n,onClearProgress:o})}const vo=(r,e=100)=>{m.useEffect(()=>{let t=null;const n=()=>{t===null&&(t=window.setTimeout(()=>{r(),t=null},e))};return window.addEventListener("scroll",n),window.addEventListener("resize",n),()=>{t!==null&&clearTimeout(t),window.removeEventListener("scroll",n),window.removeEventListener("resize",n)}},[r,e])},_o="univer-formula-help-function",Co="univer-formula-help-function-title",Ro="univer-formula-help-function-title-icons",Io="univer-formula-help-function-title-icon",Eo="univer-formula-help-function-content",yo="univer-formula-help-function-content-inner",To="univer-formula-help-function-content-params",bo="univer-formula-help-function-content-params-title",No="univer-formula-help-function-content-params-detail",xo="univer-formula-help-function-active",Mo="univer-formula-help-decorator",Fo="univer-formula-help-param",Oo="univer-formula-help-param-prefix",Ao="univer-formula-help-param-item",Do="univer-formula-help-param-active",J={formulaHelpFunction:_o,formulaHelpFunctionTitle:Co,formulaHelpFunctionTitleIcons:Ro,formulaHelpFunctionTitleIcon:Io,formulaHelpFunctionContent:Eo,formulaHelpFunctionContentInner:yo,formulaHelpFunctionContentParams:To,formulaHelpFunctionContentParamsTitle:bo,formulaHelpFunctionContentParamsDetail:No,formulaHelpFunctionActive:xo,formulaHelpDecorator:Mo,formulaHelpParam:Fo,formulaHelpParamPrefix:Oo,formulaHelpParamItem:Ao,formulaHelpParamActive:Do};function Po(){const[r,e]=m.useState(!1),[t,n]=m.useState(!0),[o,s]=m.useState(!0),[i,a]=m.useState(0),[l,d]=m.useState([0,0]),[f,h]=m.useState({left:0,top:0}),[u,S]=m.useState(null),p=c.useDependency(Fe),C=c.useDependency(c.LocaleService),g=C.t("formula.prompt.required"),E=C.t("formula.prompt.optional"),_=c.useDependency(c.IUniverInstanceService),v=c.useDependency(ee.IEditorService),y=c.useDependency(F.ISidebarService),b=c.useInjector();vo(N),m.useEffect(()=>{const w=p.help$.subscribe(k=>{const{visible:A,paramIndex:O,functionInfo:K}=k;if(!A){e(A);return}const L=T();if(L==null)return;const{left:U,top:j,height:B}=L;K.description===""&&K.functionParameter.length===0||(d([U,j+B]),a(O),S(K),h({left:U,top:j}),e(A))}),D=y.scrollEvent$.pipe(q.throttleTime(100)).subscribe(N);return()=>{w==null||w.unsubscribe(),D.unsubscribe()}},[]);function N(){if(!o)return;const w=T();if(w==null)return;const{left:D,top:k,height:A}=w;d([D,k+A])}function T(){const w=_.getCurrentUniverDocInstance();if(!w)return;const D=w.getUnitId();if(!v.isEditor(D))return;const k=v.getEditor(D);return k==null?void 0:k.getBoundingClientRect()}function M(w){a(w)}function x(){s(!o),b.get(F.ILayoutService).focus()}return R.jsx(R.Fragment,{children:o?R.jsx(ie.Popup,{visible:r,offset:l,children:u?R.jsxs("div",{className:J.formulaHelpFunction,children:[R.jsxs("div",{className:J.formulaHelpFunctionTitle,children:[R.jsx(Lo,{prefix:u.functionName,value:u.functionParameter,active:i,onClick:M}),R.jsxs("div",{className:J.formulaHelpFunctionTitleIcons,children:[R.jsx("div",{className:J.formulaHelpFunctionTitleIcon,style:{transform:t?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>n(!t),children:R.jsx(gt,{})}),R.jsx("div",{className:J.formulaHelpFunctionTitleIcon,onClick:x,children:R.jsx(tt,{})})]})]}),R.jsx("div",{className:J.formulaHelpFunctionContent,style:{height:t?"unset":0,padding:t?"revert-layer":0},children:R.jsxs("div",{className:J.formulaHelpFunctionContentInner,children:[R.jsx(ut,{title:C.t("formula.prompt.helpExample"),value:`${u.functionName}(${u.functionParameter.map(w=>w.example).join(",")})`}),R.jsx(ut,{title:C.t("formula.prompt.helpAbstract"),value:u.description}),u&&u.functionParameter&&u.functionParameter.map((w,D)=>R.jsx(ut,{className:i===D?J.formulaHelpFunctionActive:"",title:w.name,value:`${w.require?g:E} ${w.detail}`},D))]})})]}):R.jsx(R.Fragment,{})}):r?R.jsx("div",{className:J.formulaHelpDecorator,onClick:()=>s(!o),style:{left:f.left-24,top:f.top},children:R.jsx(jt,{})}):R.jsx(R.Fragment,{})})}const ut=r=>R.jsxs("div",{className:J.formulaHelpFunctionContentParams,children:[R.jsx("div",{className:`
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
-
`,children:
|
|
25
|
-
${
|
|
26
|
-
${
|
|
27
|
-
`:
|
|
28
|
-
${
|
|
29
|
-
${
|
|
30
|
-
`,children:
|
|
31
|
-
${
|
|
32
|
-
${
|
|
33
|
-
`:Se.formulaSelectFunctionResultItem,onMouseEnter:()=>D(O),onMouseLeave:k,onClick:()=>T(O),children:[h===O&&R.jsx(Ut,{className:Se.formulaSelectFunctionResultItemSelected}),R.jsx("span",{className:Se.formulaSelectFunctionResultItemName,children:N(A)})]},O))}),S&&R.jsxs("div",{className:Se.formulaSelectFunctionContent,children:[R.jsx(ke,{title:S.functionName,value:S.description}),R.jsx(ke,{title:g.t("formula.moreFunctions.syntax"),value:R.jsx(ln,{prefix:S.functionName,value:S.functionParameter})}),R.jsx(ke,{title:g.t("formula.prompt.helpExample"),value:`${S.functionName}(${S.functionParameter.map(A=>A.example).join(",")})`}),S.functionParameter&&S.functionParameter.map((A,O)=>R.jsx(ke,{title:A.name,value:`${A.require?y:b} ${A.detail}`},O))]})]})}function cs(){const r=P.useActiveWorkbook(),[e,t]=m.useState(!0),[n,o]=m.useState(!1),[s,i]=m.useState(null),a=c.useDependency(c.LocaleService),l=c.useDependency(ee.IEditorService);function d(){t(!e),o(!n)}function f(){l.setFormula(`=${s==null?void 0:s.functionName}(`)}return R.jsxs("div",{className:Dt.formulaMoreFunctions,children:[e&&R.jsx(is,{onChange:i}),n&&R.jsx(Qo,{functionInfo:s,onChange:()=>{}}),R.jsxs("div",{className:Dt.formulaMoreFunctionsOperation,children:[n&&R.jsx(ie.Button,{type:"primary",size:"small",onClick:d,children:a.t("formula.moreFunctions.next")}),n&&R.jsx(ie.Button,{size:"small",onClick:d,children:a.t("formula.moreFunctions.prev")}),e&&!!r&&R.jsx(ie.Button,{type:"primary",size:"small",onClick:f,children:a.t("formula.moreFunctions.confirm")})]})]})}function as(r){return{id:Qe.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:F.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:F.getMenuHiddenObservable(r,c.UniverInstanceType.UNIVER_SHEET),disabled$:P.getCurrentRangeDisable$(r,{workbookTypes:[$.WorkbookEditablePermission],worksheetTypes:[$.WorksheetEditPermission,$.WorksheetSetCellValuePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint]})}}function ls(r){return{id:Je.id,title:"formula.insert.more",type:F.MenuItemType.BUTTON}}function us(r){return r.get(c.IUniverInstanceService).getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).pipe(q.switchMap(n=>n&&r.get(F.IClipboardInterfaceService)?new q.Observable(s=>s.next(!r.get(F.IClipboardInterfaceService).supportClipboard)):q.of(!0)))}function ds(r){return{id:Xe.id,type:F.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:us(r).pipe(q.combineLatestWith(P.getCurrentRangeDisable$(r,{workbookTypes:[$.WorkbookEditablePermission],rangeTypes:[$.RangeProtectionPermissionEditPoint],worksheetTypes:[$.WorksheetSetCellValuePermission,$.WorksheetEditPermission]})),q.map(([e,t])=>e||t))}}const hs={[F.RibbonStartGroup.FORMULAS_INSERT]:{[Qe.id]:{order:1,menuItemFactory:as,[Je.id]:{order:1,menuItemFactory:ls}}},[P.PASTE_SPECIAL_MENU_ID]:{[Xe.id]:{order:4,menuItemFactory:ds}}},un="meta_key_ctrl_And_Shift",ot=[F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP,F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT],fs=[...ot,F.KeyCode.ENTER,F.KeyCode.TAB,F.KeyCode.ESC];function ms(){const r=[];for(const e of fs)r.push({id:Ie.id,binding:e,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keycode:e}});return r}function Ss(){const r=[];for(const e of ot)r.push({id:Ie.id,binding:e|F.MetaKeys.SHIFT,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keycode:e,metaKey:F.MetaKeys.SHIFT}});return r}function gs(){const r=[];for(const e of ot)r.push({id:Ie.id,binding:e|F.MetaKeys.CTRL_COMMAND,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keycode:e,metaKey:F.MetaKeys.CTRL_COMMAND}});return r}function ps(){const r=[];for(const e of ot)r.push({id:Ie.id,binding:e|F.MetaKeys.SHIFT|F.MetaKeys.CTRL_COMMAND,preconditions:t=>P.whenFormulaEditorActivated(t),staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keycode:e,metaKey:un}});return r}const vs={id:et.id,binding:F.KeyCode.F4,preconditions:r=>P.whenFormulaEditorActivated(r)};function _s(){const r=[];for(const e of[F.KeyCode.ENTER,F.KeyCode.TAB,F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP])r.push({id:Ie.id,binding:e,preconditions:t=>Br(t),staticParameters:{eventType:z.DeviceInputEventType.Keyboard,keycode:e,isSingleEditor:!0}});return r}var Cs=Object.defineProperty,Rs=Object.getOwnPropertyDescriptor,Is=(r,e,t,n)=>{for(var o=n>1?void 0:n?Rs(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Cs(e,t,o),o},Te=(r,e)=>(t,n)=>e(t,n,r);let Ge=class extends c.Disposable{constructor(r,e,t,n,o,s,i){super(),this._injector=r,this._menuManagerService=e,this._commandService=t,this._shortcutService=n,this._uiPartsService=o,this._renderManagerService=s,this._componentManager=i,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(hs)}_registerCommands(){[Xe,Qe,Je,Be,He,Ie,et].forEach(r=>this.disposeWithMe(this._commandService.registerCommand(r)))}_registerShortcuts(){[...ms(),...Ss(),...gs(),...ps(),..._s(),vs].forEach(r=>{this.disposeWithMe(this._shortcutService.registerShortcut(r))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(F.BuiltInUIPart.CONTENT,()=>c.connectInjector(Bo,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent(P.SheetsUIPart.FORMULA_AUX,()=>c.connectInjector(po,this._injector))),this._componentManager.register(wt,cs)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,[ze]))}};Ge=Is([Te(0,c.Inject(c.Injector)),Te(1,F.IMenuManagerService),Te(2,c.ICommandService),Te(3,F.IShortcutService),Te(4,F.IUIPartsService),Te(5,z.IRenderManagerService),Te(6,c.Inject(F.ComponentManager))],Ge);var Es=Object.defineProperty,ys=Object.getOwnPropertyDescriptor,Ts=(r,e,t,n)=>{for(var o=n>1?void 0:n?ys(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&Es(e,t,o),o},se=(r,e)=>(t,n)=>e(t,n,r);const bs=[c.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];let Ze=class extends c.Disposable{constructor(e,t,n,o,s,i,a,l,d,f,h,u,S,p,C){super();V(this,"_listenInputCache",new Set);V(this,"_formulaRefColors",[]);V(this,"_previousSequenceNodes");V(this,"_previousRangesCount",0);V(this,"_previousInsertRefStringIndex");V(this,"_currentInsertRefStringIndex",-1);V(this,"_arrowMoveActionState",0);V(this,"_isSelectionMovingRefSelections",[]);V(this,"_stringColor","");V(this,"_numberColor","");V(this,"_insertSelections",[]);V(this,"_inputPanelState",0);V(this,"_userCursorMove",!1);V(this,"_previousEditorUnitId");V(this,"_existsSequenceNode",!1);V(this,"_currentlyWorkingRefRenderer",null);V(this,"_selectionsChangeDisposables");V(this,"_isSelectingMode",!1);this._commandService=e,this._contextService=t,this._editorBridgeService=n,this._formulaPromptService=o,this._lexerTreeBuilder=s,this._renderManagerService=i,this._themeService=a,this._sheetsSelectionsService=l,this._refSelectionsService=d,this._univerInstanceService=f,this._descriptionService=h,this._docSelectionManagerService=u,this._contextMenuService=S,this._editorService=p,this._layoutService=C,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(exports.RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(c.UniverInstanceType.UNIVER_SHEET).map(e=>e.with(exports.RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const e=this._themeService.getCurrentTheme();this._formulaRefColors=[e.loopColor1,e.loopColor2,e.loopColor3,e.loopColor4,e.loopColor5,e.loopColor6,e.loopColor7,e.loopColor8,e.loopColor9,e.loopColor10,e.loopColor11,e.loopColor12],this._numberColor=e.hyacinth700,this._stringColor=e.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.pipe(q.filter(e=>!P.isRangeSelector(e.unitId)&&!P.isEmbeddingFormulaEditor(e.unitId))).subscribe(e=>{var o;if((e==null?void 0:e.unitId)==null)return;const t=this._editorService.getEditor(e.unitId);if(!t||t.onlyInputContent()||t.isSheetEditor()&&!this._isFormulaEditorActivated()||t.params.scrollBar)return;const n=t.onlyInputRange();(o=e==null?void 0:e.options)!=null&&o.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(n),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!n&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const e=[F.KeyCode.ARROW_DOWN,F.KeyCode.ARROW_UP,F.KeyCode.ARROW_LEFT,F.KeyCode.ARROW_RIGHT,F.KeyCode.CTRL,F.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(q.filter(t=>{const n=(t==null?void 0:t.getUnitId())||"";return!P.isRangeSelector(n)&&!P.isEmbeddingFormulaEditor(n)})).subscribe(t=>{var i;const n=t==null?void 0:t.getUnitId();if(n==null||this._listenInputCache.has(n)||this._editorService.getEditor(n)==null)return;const s=(i=this._renderManagerService.getRenderById(n))==null?void 0:i.with(ee.DocSelectionRenderService);s&&this.disposeWithMe(s.onInputBefore$.subscribe(a=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const l=a==null?void 0:a.event;l&&(e.includes(l.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),l.which!==F.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(n)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(q.distinctUntilKeyChanged("visible")).subscribe(e=>{e.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(c.FORMULA_EDITOR_ACTIVATED).pipe(q.distinctUntilChanged()).subscribe(e=>{e||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC).pipe(q.filter(e=>{const t=(e==null?void 0:e.getUnitId())||"";return!P.isRangeSelector(t)&&!P.isEmbeddingFormulaEditor(t)})).subscribe(e=>{if(e==null)return;const t=e.getUnitId();!this._editorService.isEditor(t)||this._previousEditorUnitId===t||this._editorService.isSheetEditor(t)||(this._closeRangePrompt(t),this._previousEditorUnitId=t)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(e){var n;const t=e||((n=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:n.getUnitId())||"";P.isRangeSelector(t)||P.isEmbeddingFormulaEditor(t)||t===c.DOCS_ZEN_EDITOR_UNIT_ID_KEY||(this._insertSelections=[],this._refSelectionsService.clear(),e&&this._editorService.isSheetEditor(e)&&this._updateEditorModel(`\r
|
|
34
|
-
`,[]),this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue($.REF_SELECTIONS_ENABLED,!1),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel())}_initSelectionsEndListener(){const e=new c.DisposableCollection;this.disposeWithMe(q.merge(this._refSelectionsService.selectionSet$,this._refSelectionsService.selectionMoveEnd$).subscribe(t=>{var s;if(e.dispose(),!t||t.length===0)return;const n=((s=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:s.getUnitId())||"";if(P.isRangeSelector(n)||P.isEmbeddingFormulaEditor(n))return;this._allSelectionRenderServices.map(i=>i.getSelectionControls()).flat().forEach(i=>{i.disableHelperSelection(),e.add(q.merge(i.selectionMoving$,i.selectionScaling$).subscribe(a=>{var d;const l=((d=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC))==null?void 0:d.getUnitId())||"";if(P.isRangeSelector(l)||P.isEmbeddingFormulaEditor(l)){e.dispose(),this._formulaPromptService.disableLockedSelectionChange();return}this._onSelectionControlChange(a,i)})),e.add(q.merge(i.selectionMoveEnd$,i.selectionScaled$).subscribe(()=>{this._formulaPromptService.disableLockedSelectionChange()}))})}))}_updateSelecting(e,t=!1){if(e.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(e),t)){const n=e[e.length-1];this._insertControlSelectionReplace(n)}}_enableRefSelectionsRenderService(){const e=this._selectionsChangeDisposables=new c.DisposableCollection;this._allSelectionRenderServices.forEach(t=>{e.add(t.enableSelectionChanging()),e.add(t.selectionMoving$.subscribe(n=>{this._updateSelecting(n.map(o=>$.convertSelectionDataToRange(o)))})),e.add(t.selectionMoveStart$.subscribe(n=>{const o=this._checkClearingLastSelection(t);this._currentlyWorkingRefRenderer=t,this._updateSelecting(n.map(s=>$.convertSelectionDataToRange(s)),o)}))})}_checkClearingLastSelection(e){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==e?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var e;(e=this._selectionsChangeDisposables)==null||e.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(e){const t=e[e.length-1];if(this._resetSequenceNodes(e.length),(e.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(t);else{let n=this._formulaPromptService.getSequenceNodes();const o=this._getCurrentChar();n.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!I.matchRefDrawToken(o)&&this._focusIsOnlyRange(e.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,I.matchToken.COMMA),n=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=c.Tools.deepClone(n),this._formulaPromptService.setSequenceNodes(n);const s=this._generateRefString(t);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,s),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=e.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(e=>{const t=this._docSelectionManagerService.getActiveTextRange();if(t==null){this._hideFunctionPanel();return}const{startOffset:n}=t,o=this._formulaPromptService.getSequenceNodes(),s=this._formulaPromptService.getCurrentSequenceNodeIndex(n-2),i=o[s];if(i==null||typeof i=="string"){this._hideFunctionPanel();return}const a=e.length-i.token.length,l={...i};l.token=e,l.endIndex+=a,o[s]=l;const d=this._descriptionService.hasDefinedNameDescription(e),f=this._descriptionService.isFormulaDefinedName(e),h=e.length+1,u=!d||f;u&&o.splice(s+1,0,I.matchToken.OPEN_BRACKET);for(let p=s+2,C=o.length;p<C;p++){const g=o[p];if(typeof g=="string")continue;const E={...g};E.startIndex+=h,E.endIndex+=h,o[p]=E}let S=l.endIndex+1;u&&(S+=1),this._syncToEditor(o,S,void 0,!0,!1)}))}_changeFunctionPanelState(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null){this._hideFunctionPanel();return}const{startOffset:t}=e,n=this._formulaPromptService.getCurrentSequenceNode(t-2);if(n==null){this._hideFunctionPanel();return}if(typeof n!="string"&&n.nodeType===I.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(n.token.trim())){const l=n.token.toUpperCase();if(this._inputPanelState===1){const d=this._descriptionService.getSearchListByNameFirstLetter(l);if(this._hideFunctionPanel(),d==null||d.length===0)return;this._commandService.executeCommand(Be.id,{visible:!0,searchText:l,searchList:d})}else this._changeHelpFunctionPanelState(l,-1);return}const o=this._getCurrentBodyDataStreamAndOffset(),s=this._lexerTreeBuilder.getFunctionAndParameter((o==null?void 0:o.dataStream)||"",t-1+((o==null?void 0:o.offset)||0));if(!s){this._hideFunctionPanel();return}const{functionName:i,paramIndex:a}=s;this._changeHelpFunctionPanelState(i.toUpperCase(),a)}_changeHelpFunctionPanelState(e,t){const n=this._descriptionService.getFunctionInfo(e);this._hideFunctionPanel(),n!=null&&this._commandService.executeCommand(He.id,{visible:!0,paramIndex:t,functionInfo:n})}_hideFunctionPanel(){this._commandService.executeCommand(Be.id,{visible:!1,searchText:""}),this._commandService.executeCommand(He.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(e=!1){if(e){this._enterSelectingMode();return}const t=this._getCurrentChar(),n=this._getCurrentDataStream();(n==null?void 0:n.substring(0,1))==="="&&t&&I.matchRefDrawToken(t)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null)return;const{startOffset:t}=e,n=this._getCurrentBodyDataStreamAndOffset();return n==null||t==null?void 0:n.dataStream[t-1+n.offset]}_getCurrentDataStream(){const e=this._getCurrentBodyDataStreamAndOffset();return e==null?void 0:e.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var s,i;const e=this._univerInstanceService.getCurrentUniverDocInstance();if(!(e!=null&&e.getBody()))return;const t=e.getUnitId(),n=this._editorService.getEditor(t),o=(i=(s=e.getBody())==null?void 0:s.dataStream)!=null?i:"";return!n||!n.onlyInputRange()?{dataStream:o,offset:0}:{dataStream:I.compareToken.EQUALS+o,offset:1}}_getFormulaAndCellEditorBody(e){return e.map(t=>{const n=this._univerInstanceService.getUniverDocInstance(t);return n==null?void 0:n.getBody()})}_editorModelUnitIds(){const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(t)&&!this._editorService.isSheetEditor(t)?[t]:bs}_contextSwitch(){const e=this._getCurrentBodyDataStreamAndOffset();if(e&&c.isFormulaString(e.dataStream)){this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue($.REF_SELECTIONS_ENABLED,!0),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const t=this._lexerTreeBuilder.sequenceNodesBuilder(e.dataStream)||[];this._formulaPromptService.setSequenceNodes(t);const n=this._docSelectionManagerService.getActiveTextRange();if(n==null)return;const{startOffset:o}=n;this._currentInsertRefStringIndex=o-1+e.offset;return}this._contextService.setContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue($.REF_SELECTIONS_ENABLED,!1),this._contextService.setContextValue(F.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(c.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const e=this._formulaPromptService.getSequenceNodes(),t=this._editorModelUnitIds(),n=this._getFormulaAndCellEditorBody(t).filter(o=>!!o);if(e==null||e.length===0)this._existsSequenceNode=!1,n.forEach(o=>o.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns:o,refSelections:s}=this._buildTextRuns(e);n.forEach(i=>i.textRuns=o),this._allSelectionRenderServices.forEach(i=>this._refreshSelectionForReference(i,s))}this._refreshFormulaAndCellEditor(t)}_buildTextRuns(e){var a;const t=[],n=[],o=new Map;let s=0;const i=((a=this._getCurrentBodyDataStreamAndOffset())==null?void 0:a.offset)||0;for(let l=0,d=e.length;l<d;l++){const f=e[l];if(typeof f=="string"||this._descriptionService.hasDefinedNameDescription(f.token.trim()))continue;const{startIndex:h,endIndex:u,nodeType:S,token:p}=f;let C="";if(S===I.sequenceNodeType.REFERENCE){if(o.has(p))C=o.get(p);else{const g=s%this._formulaRefColors.length;C=this._formulaRefColors[g],o.set(p,C),s++}n.push({refIndex:l,themeColor:C,token:p})}else S===I.sequenceNodeType.NUMBER?C=this._numberColor:S===I.sequenceNodeType.STRING?C=this._stringColor:S===I.sequenceNodeType.ARRAY&&(C=this._stringColor);C&&C.length>0&&t.push({st:h+1-i,ed:u+2-i,ts:{cl:{rgb:C}}})}return{textRuns:t,refSelections:n}}_exceedCurrentRange(e,t,n){const{startRow:o,startColumn:s}=e;return o>t-1||s>n-1}_refreshSelectionForReference(e,t){const{unitId:n,sheetId:o}=this._editorBridgeService.getEditCellState(),{unitId:s,sheetId:i}=this._getCurrentUnitIdAndSheetId(),a=o===i,d=this._univerInstanceService.getUniverSheetInstance(n).getSheetBySheetId(o);let f=null;const h=[];for(let u=0,S=t.length;u<S;u++){const p=t[u],{themeColor:C,token:g,refIndex:E}=p,_=I.deserializeRangeWithSheet(g),{unitId:v,sheetName:y,range:b}=_,N=$.setEndForRange(b,d.getRowCount(),d.getColumnCount());if(v!=null&&v.length>0&&n!==v)continue;const T=this._getSheetIdByName(n,y.trim());if(!a&&T!==i||a&&y.length!==0&&T!==o||this._exceedCurrentRange(N,d.getRowCount(),d.getColumnCount()))continue;const M=this._getPrimary(N,C,E);if(M){f=M,h.push(f);continue}const x=$.getPrimaryForRange(N,d);!c.Rectangle.equals(x,N)&&N.startRow===N.endRow&&N.startColumn===N.endColumn&&(N.startRow=x.startRow,N.endRow=x.endRow,N.startColumn=x.startColumn,N.endColumn=x.endColumn),h.push({range:N,primary:x,style:$e(this._themeService,C,E.toString())})}h.length&&this._refSelectionsService.setSelections(n,o,h,$.SelectionMoveType.ONLY_SET)}_getPrimary(e,t,n){const o=this._insertSelections.find(h=>{const{startRow:u,startColumn:S,endRow:p,endColumn:C}=h.range;return u===e.startRow&&S===e.startColumn&&p===e.endRow&&C===e.endColumn||u===e.startRow&&S===e.startColumn&&e.startRow===e.endRow&&e.startColumn===e.endColumn});if((o==null?void 0:o.primary)==null)return;const{isMerged:s,isMergedMainCell:i,startRow:a,endRow:l,startColumn:d,endColumn:f}=o.primary;return(s||i)&&a===e.startRow&&d===e.startColumn&&e.startRow===e.endRow&&e.startColumn===e.endColumn&&(e.endRow=l,e.endColumn=f),{range:e,primary:o.primary,style:$e(this._themeService,t,n.toString())}}_getSheetIdByName(e,t){var o;const n=this._univerInstanceService.getUniverSheetInstance(e);return(o=n==null?void 0:n.getSheetBySheetName(I.normalizeSheetName(t)))==null?void 0:o.getSheetId()}_getSheetNameById(e,t){var s;const n=this._univerInstanceService.getUniverSheetInstance(e);return((s=n==null?void 0:n.getSheetBySheetId(t))==null?void 0:s.getName())||""}_getCurrentUnitIdAndSheetId(){var o,s;const e=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),t=e.getActiveSheet(),n=(s=(o=this._renderManagerService.getRenderById(e.getUnitId()))==null?void 0:o.with(P.SheetSkeletonManagerService))==null?void 0:s.getCurrentSkeleton();return{unitId:e.getUnitId(),sheetId:(t==null?void 0:t.getSheetId())||"",skeleton:n}}_getEditorOpenedForSheet(){const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),n=this._editorService.getEditor(t);return n?{openUnitId:n.getOpenForSheetUnitId(),openSheetId:n.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(e){let t="",n="";const{unitId:o,sheetId:s}=e.range,{openUnitId:i,openSheetId:a}=this._getEditorOpenedForSheet();o!==i&&o&&(t=o),s!==a&&o&&s&&(n=this._getSheetNameById(o,s));const{range:l,primary:d}=e;let{startRow:f,endRow:h,startColumn:u,endColumn:S}=l;const{startAbsoluteRefType:p,endAbsoluteRefType:C,rangeType:g}=l;if(d){const{isMerged:E,isMergedMainCell:_,startRow:v,endRow:y,startColumn:b,endColumn:N}=d;(E||_)&&v===f&&b===u&&y===h&&N===S&&(f=v,u=b,h=v,S=b)}return I.serializeRangeToRefString({sheetName:n,unitId:t,range:{startRow:f,endRow:h,startColumn:u,endColumn:S,rangeType:g,startAbsoluteRefType:p,endAbsoluteRefType:C}})}_syncToEditor(e,t,n,o=!0,s=!0){let i=I.generateStringWithSequence(e);const{textRuns:a,refSelections:l}=this._buildTextRuns(e);this._isSelectionMovingRefSelections=l,this._allSelectionRenderServices.forEach(C=>this._updateRefSelectionStyle(C,this._isSelectionMovingRefSelections));const d=this._docSelectionManagerService.getActiveTextRange();if(d==null)return;this._currentInsertRefStringIndex=t,n==null&&(n=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const f=this._editorService.getEditor(n);f!=null&&f.isSingleChoice()?(i=i.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let h=i,u=1;(!f||!f.onlyInputRange())&&(h=`${I.compareToken.EQUALS}${i}`,u=0);const{collapsed:S,style:p}=d;o?(this._commandService.executeCommand(ee.ReplaceContentCommand.id,{unitId:n,body:{dataStream:h,textRuns:a},textRanges:[{startOffset:t+1-u,endOffset:t+1-u,collapsed:S,style:p}],segmentId:null,options:{fromSelection:s}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:t+1-u,endOffset:t+1-u,style:p}],!0,{fromSelection:s})):(this._updateEditorModel(`${h}\r
|
|
35
|
-
`,a),this._docSelectionManagerService.replaceTextRanges([{startOffset:t+1-u,endOffset:t+1-u,style:p}],!0,{fromSelection:s})),this._layoutService.focus()}_fitEditorSize(){var n;const t=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!(this._editorService.isEditor(t)&&!this._editorService.isSheetEditor(t))&&(this._editorBridgeService.changeEditorDirty(!0),!!this._editorBridgeService.isVisible().visible&&t===c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY)){const o=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),s=(n=o==null?void 0:o.getUnitId())!=null?n:"",i=this._renderManagerService.getRenderById(s);if(!i)return;i.with(P.SheetCellEditorResizeService).fitTextSize()}}_updateEditorModel(e,t){var l;const n=this._univerInstanceService.getCurrentUniverDocInstance(),o=n.getUnitId();if(!this._editorService.isEditor(o))return;const s=(l=this._renderManagerService.getRenderById(o))==null?void 0:l.with(je.DocSkeletonManagerService).getViewModel();if(s==null||n==null)return;const i=n==null?void 0:n.getSnapshot();if(i==null)return;const a={dataStream:e,textRuns:t};i.body=a,s.reset(n)}_insertControlSelectionReplace(e){this._previousSequenceNodes==null&&(this._previousSequenceNodes=this._formulaPromptService.getSequenceNodes()),this._previousInsertRefStringIndex==null&&(this._previousInsertRefStringIndex=this._currentInsertRefStringIndex);const t=c.Tools.deepClone(this._previousSequenceNodes);if(t==null)return;const{skeleton:n}=this._getCurrentUnitIdAndSheetId(),o=n==null?void 0:n.worksheet.getUnitId(),s=n==null?void 0:n.worksheet.getSheetId();e.range.sheetId=s,e.range.unitId=o;const i=this._generateRefString(e);this._formulaPromptService.setSequenceNodes(t),this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,i),this._syncToEditor(t,this._previousInsertRefStringIndex+i.length);const a=this._selectionRenderService.getSelectionDataWithStyle()||[];this._insertSelections=[];const l=a[a.length-1];if(l){const d=$.convertSelectionDataToRange(l);this._insertSelections.push(d)}}_focusIsOnlyRange(e){const t=this._editorService.getFocusEditor();return!t||!t.onlyInputRange()||this._existsSequenceNode||e>1||this._previousSequenceNodes!=null&&this._previousSequenceNodes.length>0?!0:(this._previousInsertRefStringIndex!=null&&(this._previousInsertRefStringIndex+=1),!1)}_resetSequenceNodes(e){const t=this._editorService.getFocusEditor();t&&t.onlyInputRange()&&(e>1||this._existsSequenceNode&&(this._formulaPromptService.clearSequenceNodes(),this._previousRangesCount=0,this._existsSequenceNode=!1))}_updateRefSelectionStyle(e,t){const n=e.getSelectionControls(),[o,s]=e.getLocation(),i=new Set;for(let a=0,l=t.length;a<l;a++){const d=t[a],{refIndex:f,themeColor:h,token:u}=d,S=I.deserializeRangeWithSheet(u),{unitId:p,sheetName:C,range:g}=S;if(!p&&p.length>0&&o!==p)continue;const E=this._getSheetIdByName(o,C.trim());if(E&&E!==s)continue;const _=n.find(v=>{const{startRow:y,startColumn:b,endRow:N,endColumn:T,rangeType:M}=v.getRange();return M===c.RANGE_TYPE.COLUMN&&b===g.startColumn&&T===g.endColumn||M===c.RANGE_TYPE.ROW&&y===g.startRow&&N===g.endRow||y===g.startRow&&b===g.startColumn&&N===g.endRow&&T===g.endColumn||y===g.startRow&&b===g.startColumn&&g.startRow===g.endRow&&g.startColumn===g.endColumn});if(_){const v=$e(this._themeService,h,f.toString());_.updateStyle(v),i.add(_)}}}_onSelectionControlChange(e,t){var _;const{skeleton:n}=this._getCurrentUnitIdAndSheetId();if(!n)return;this._formulaPromptService.enableLockedSelectionChange();const o=(_=t.currentStyle)==null?void 0:_.id;if(!o||!c.Tools.isStringNumber(o))return;let{startRow:s,endRow:i,startColumn:a,endColumn:l}=e;const d=n?n.worksheet.getCellInfoInMergeData(s,a):{actualRow:s,actualColumn:a,isMergedMainCell:!1,isMerged:!1,endRow:s,endColumn:a,startRow:s,startColumn:a};if(d){const{isMerged:v,isMergedMainCell:y,startRow:b,endRow:N,startColumn:T,endColumn:M}=d;(v||y)&&b===s&&T===a&&N===i&&M===l&&(s=b,a=T,i=b,l=T)}const f=Number(o),h=this._formulaPromptService.getCurrentSequenceNodeByIndex(f);if(!h)return;let u={startAbsoluteRefType:c.AbsoluteRefType.NONE};if(typeof h!="string"){const v=h.token;u=I.getAbsoluteRefTypeWitString(v),u.endAbsoluteRefType==null&&(u.endAbsoluteRefType=u.startAbsoluteRefType)}const S=n==null?void 0:n.worksheet.getUnitId(),p=n==null?void 0:n.worksheet.getSheetId(),C=this._generateRefString({range:{startRow:Math.min(s,i),endRow:Math.max(s,i),startColumn:Math.min(a,l),endColumn:Math.max(a,l),...u,sheetId:p,unitId:S},primary:d,style:null});this._formulaPromptService.updateSequenceRef(f,C);const g=this._formulaPromptService.getSequenceNodes(),E=g[f];typeof E!="string"&&(this._syncToEditor(g,E.endIndex+1),t.updateRange(e,this._selectionRenderService.attachPrimaryWithCoord(d)))}_refreshFormulaAndCellEditor(e){var t;for(const n of e){const o=P.getEditorObject(n,this._renderManagerService),s=o==null?void 0:o.document;s!=null&&((t=s.getSkeleton())==null||t.calculate(),s.makeDirty())}}_cursorStateListener(){const e=this._getEditorObject();if(e==null)return;const{mainComponent:t}=e;t&&this.disposeWithMe(t.onPointerDown$.subscribeEvent(()=>{this._arrowMoveActionState=1,this._inputPanelState=3}))}_pressEnter(e){const{keycode:t,isSingleEditor:n=!1}=e;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}n!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:z.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressTab(e){const{keycode:t,isSingleEditor:n=!1}=e;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}n!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:z.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressEsc(e){const{keycode:t}=e,n=this._editorService.getFocusEditor();(!n||(n==null?void 0:n.isSheetEditor())===!0)&&this._editorBridgeService.changeVisible({visible:!1,eventType:z.DeviceInputEventType.Keyboard,keycode:t,unitId:""})}_pressArrowKey(e){const{keycode:t,metaKey:n}=e;let o=c.Direction.DOWN;t===F.KeyCode.ARROW_DOWN?o=c.Direction.DOWN:t===F.KeyCode.ARROW_UP?o=c.Direction.UP:t===F.KeyCode.ARROW_LEFT?o=c.Direction.LEFT:t===F.KeyCode.ARROW_RIGHT&&(o=c.Direction.RIGHT),n===F.MetaKeys.CTRL_COMMAND?this._commandService.executeCommand(P.MoveSelectionCommand.id,{direction:o,jumpOver:P.JumpOver.moveGap}):n===F.MetaKeys.SHIFT?this._commandService.executeCommand(P.ExpandSelectionCommand.id,{direction:o}):n===un?this._commandService.executeCommand(P.ExpandSelectionCommand.id,{direction:o,jumpOver:P.JumpOver.moveGap}):this._commandService.executeCommand(P.MoveSelectionCommand.id,{direction:o})}_commandExecutedListener(){const e=[Ie.id];this.disposeWithMe(this._commandService.onCommandExecuted(t=>{const n=this._univerInstanceService.getCurrentUnitForType(c.UniverInstanceType.UNIVER_DOC),o=(n==null?void 0:n.getUnitId())||"";if(!(P.isRangeSelector(o)||P.isEmbeddingFormulaEditor(o))){if(t.id===et.id)this._changeRefString();else if(e.includes(t.id)){const s=t.params,{keycode:i,isSingleEditor:a=!1}=s;if(i===F.KeyCode.ENTER){this._pressEnter(s);return}if(i===F.KeyCode.TAB){this._pressTab(s);return}if(i===F.KeyCode.ESC){this._pressEsc(s);return}if(this._formulaPromptService.isSearching()){if(i===F.KeyCode.ARROW_DOWN){this._formulaPromptService.navigate({direction:c.Direction.DOWN});return}if(i===F.KeyCode.ARROW_UP){this._formulaPromptService.navigate({direction:c.Direction.UP});return}}if(a===!0)return;if(this._arrowMoveActionState===1){this._moveInEditor(i);return}if(this._arrowMoveActionState===4){this._editorBridgeService.changeVisible({visible:!1,eventType:z.DeviceInputEventType.Keyboard,keycode:i,unitId:""});return}if(this._arrowMoveActionState===2&&(this._arrowMoveActionState=3),this._refSelectionsService.getCurrentSelections().length===0){const h=this._sheetsSelectionsService.getCurrentLastSelection();if(h!=null){const u=c.Tools.deepClone(h);this._refSelectionsService.setSelections([u])}}this._pressArrowKey(s);const d=this._refSelectionsService.getCurrentSelections(),f=d[d.length-1];this._insertControlSelectionReplace(f),this._highlightFormula()}}}))}_moveInEditor(e){if(e==null)return;let t=c.Direction.LEFT;e===F.KeyCode.ARROW_DOWN?t=c.Direction.DOWN:e===F.KeyCode.ARROW_UP?t=c.Direction.UP:e===F.KeyCode.ARROW_RIGHT&&(t=c.Direction.RIGHT),this._commandService.executeCommand(ee.MoveCursorOperation.id,{direction:t})}_userMouseListener(){const e=this._getEditorObject();if(e==null)return;const{mainComponent:t}=e;t&&this.disposeWithMe(t==null?void 0:t.onPointerDown$.subscribeEvent(()=>{this._userCursorMove=!0}))}_inputFormulaListener(){this.disposeWithMe(this._editorService.inputFormula$.subscribe(e=>{const{formulaString:t,editorUnitId:n}=e;if(t.substring(0,1)!==I.compareToken.EQUALS)return;const{unitId:o}=this._getCurrentUnitIdAndSheetId();this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:z.DeviceInputEventType.Dblclick,unitId:o});const i=this._lexerTreeBuilder.sequenceNodesBuilder(t)||[];this._formulaPromptService.setSequenceNodes(i),this._syncToEditor(i,t.length-1,n,!0,!1)}))}_changeRefString(){const e=this._docSelectionManagerService.getActiveTextRange();if(e==null)return;const{startOffset:t}=e,n=t-2,o=this._formulaPromptService.getCurrentSequenceNodeIndex(n),s=this._formulaPromptService.getCurrentSequenceNodeByIndex(o);if(s==null||typeof s=="string"||s.nodeType!==I.sequenceNodeType.REFERENCE)return;const i=s.token.split("!");let a=s.token;i.length>1&&(a=i[i.length-1]);let l="";for(let h=0,u=i.length;h<u-1;h++)l+=i[h];let d=a;if(a.indexOf(I.matchToken.COLON)>-1)if(!this._userCursorMove)d=this._changeRangeRef(a);else{const h=a.split(I.matchToken.COLON),u=h[0],S=h[1];n-s.startIndex<=u.length?d=this._changeSingleRef(u)+I.matchToken.COLON+S:d=u+I.matchToken.COLON+this._changeSingleRef(S)}else d=this._changeSingleRef(a);d=l+d;const f=d.length-s.token.length;this._formulaPromptService.updateSequenceRef(o,d),this._syncToEditor(this._formulaPromptService.getSequenceNodes(),n+f+1)}_changeRangeRef(e){const t=I.deserializeRangeWithSheet(e).range;let n="";return t.startAbsoluteRefType===c.AbsoluteRefType.NONE||t.startAbsoluteRefType==null?(t.startAbsoluteRefType=c.AbsoluteRefType.ALL,t.endAbsoluteRefType=c.AbsoluteRefType.ALL):(t.startAbsoluteRefType=c.AbsoluteRefType.NONE,t.endAbsoluteRefType=c.AbsoluteRefType.NONE),n=I.serializeRange(t),n}_changeSingleRef(e){const t=I.deserializeRangeWithSheet(e).range,n=t.startAbsoluteRefType;let o="";return n===c.AbsoluteRefType.NONE||n==null?(t.startAbsoluteRefType=c.AbsoluteRefType.ALL,t.endAbsoluteRefType=c.AbsoluteRefType.ALL):n===c.AbsoluteRefType.ALL?(t.startAbsoluteRefType=c.AbsoluteRefType.ROW,t.endAbsoluteRefType=c.AbsoluteRefType.ROW):n===c.AbsoluteRefType.ROW?(t.startAbsoluteRefType=c.AbsoluteRefType.COLUMN,t.endAbsoluteRefType=c.AbsoluteRefType.COLUMN):(t.startAbsoluteRefType=c.AbsoluteRefType.NONE,t.endAbsoluteRefType=c.AbsoluteRefType.NONE),o=I.serializeRange(t),o}_getEditorObject(){const e=this._univerInstanceService.getCurrentUniverDocInstance();if(!e)return;const t=e.getUnitId(),n=this._editorService.getEditor(t);return n==null?void 0:n.render}_isFormulaEditorActivated(){return this._editorBridgeService.isVisible().visible===!0||this._contextService.getContextValue(c.FORMULA_EDITOR_ACTIVATED)}_isSheetOrFormulaEditor(e){return e.isSheetEditor()||e.isFormulaEditor()}};Ze=Ts([se(0,c.ICommandService),se(1,c.IContextService),se(2,c.Inject(P.IEditorBridgeService)),se(3,c.Inject(Fe)),se(4,c.Inject(I.LexerTreeBuilder)),se(5,z.IRenderManagerService),se(6,c.Inject(c.ThemeService)),se(7,c.Inject($.SheetsSelectionsService)),se(8,$.IRefSelectionsService),se(9,c.IUniverInstanceService),se(10,c.Inject(ge.IDescriptionService)),se(11,c.Inject(je.DocSelectionManagerService)),se(12,F.IContextMenuService),se(13,ee.IEditorService),se(14,F.ILayoutService)],Ze);var dn=Object.defineProperty,Ns=Object.getOwnPropertyDescriptor,xs=(r,e,t)=>e in r?dn(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,Ms=(r,e,t,n)=>{for(var o=n>1?void 0:n?Ns(e,t):e,s=r.length-1,i;s>=0;s--)(i=r[s])&&(o=(n?i(e,t,o):i(o))||o);return n&&o&&dn(e,t,o),o},ht=(r,e)=>(t,n)=>e(t,n,r),hn=(r,e,t)=>xs(r,typeof e!="symbol"?e+"":e,t);exports.UniverSheetsFormulaUIPlugin=class extends c.Plugin{constructor(e=Ft,t,n,o){super(),this._config=e,this._injector=t,this._renderManagerService=n,this._configService=o;const{menu:s,...i}=c.merge(Ft,this._config);s&&this._configService.setConfig("menu",s,{merge:!0}),this._configService.setConfig(Wr,i)}onStarting(){const e=this._injector;[[Fe,{useClass:ft}],[Ge],[qe],[Ke],[ze],[Ye],[Ze]].forEach(n=>e.add(n))}onRendered(){[[exports.RefSelectionsRenderService],[St]].forEach(t=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,t))}),c.touchDependencies(this._injector,[[Ge],[Ke],[Ye]]);const e=this._injector.get(F.ComponentManager);e.register(P.RANGE_SELECTOR_COMPONENT_KEY,on),e.register(P.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY,sn)}onSteady(){this._injector.get(qe),this._injector.get(Ze)}};hn(exports.UniverSheetsFormulaUIPlugin,"pluginName",Lt);hn(exports.UniverSheetsFormulaUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=Ms([c.DependentOn(I.UniverFormulaEnginePlugin,ge.UniverSheetsFormulaPlugin),ht(1,c.Inject(c.Injector)),ht(2,z.IRenderManagerService),ht(3,c.IConfigService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=Pt;exports.FormulaEditor=sn;exports.HelpFunctionOperation=He;exports.InsertFunctionOperation=Qe;exports.MoreFunctionsOperation=Je;exports.RangeSelector=on;exports.ReferenceAbsoluteOperation=et;exports.SearchFunctionOperation=Be;exports.SelectEditorFormulaOperation=Ie;exports.SheetOnlyPasteFormulaCommand=Xe;
|
|
9
|
+
*/var Lt;function Dn(){if(Lt)return He;Lt=1;var e=f,n=Symbol.for("react.element"),t=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function s(a,l,h){var d,m={},g=null,p=null;h!==void 0&&(g=""+h),l.key!==void 0&&(g=""+l.key),l.ref!==void 0&&(p=l.ref);for(d in l)r.call(l,d)&&!i.hasOwnProperty(d)&&(m[d]=l[d]);if(a&&a.defaultProps)for(d in l=a.defaultProps,l)m[d]===void 0&&(m[d]=l[d]);return{$$typeof:n,type:a,key:g,ref:p,props:m,_owner:o.current}}return He.Fragment=t,He.jsx=s,He.jsxs=s,He}var kt;function An(){return kt||(kt=1,lt.exports=Dn()),lt.exports}var v=An(),Ce=function(){return Ce=Object.assign||function(e){for(var n,t=1,r=arguments.length;t<r;t++){n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},Ce.apply(this,arguments)},Pn=function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(t[r[o]]=e[r[o]]);return t},Oe=f.forwardRef(function(e,n){var t=e.icon,r=e.id,o=e.className,i=e.extend,s=Pn(e,["icon","id","className","extend"]),a="univerjs-icon univerjs-icon-".concat(r," ").concat(o||"").trim(),l=f.useRef("_".concat(wn()));return Gt(t,"".concat(r),{defIds:t.defIds,idSuffix:l.current},Ce({ref:n,className:a},s),i)});function Gt(e,n,t,r,o){return f.createElement(e.tag,Ce(Ce({key:n},Ln(e,t,o)),r),(kn(e,t).children||[]).map(function(i,s){return Gt(i,"".concat(n,"-").concat(e.tag,"-").concat(s),t,void 0,o)}))}function Ln(e,n,t){var r=Ce({},e.attrs);t!=null&&t.colorChannel1&&r.fill==="colorChannel1"&&(r.fill=t.colorChannel1);var o=n.defIds;return!o||o.length===0||(e.tag==="use"&&r["xlink:href"]&&(r["xlink:href"]=r["xlink:href"]+n.idSuffix),Object.entries(r).forEach(function(i){var s=i[0],a=i[1];typeof a=="string"&&(r[s]=a.replace(/url\(#(.*)\)/,"url(#$1".concat(n.idSuffix,")")))})),r}function kn(e,n){var t,r=n.defIds;return!r||r.length===0?e:e.tag==="defs"&&(!((t=e.children)===null||t===void 0)&&t.length)?Ce(Ce({},e),{children:e.children.map(function(o){return typeof o.attrs.id=="string"&&r&&r.indexOf(o.attrs.id)>-1?Ce(Ce({},o),{attrs:Ce(Ce({},o.attrs),{id:o.attrs.id+n.idSuffix})}):o})}):e}function wn(){return Math.random().toString(36).substring(2,8)}Oe.displayName="UniverIcon";var $n={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"}}]},Zt=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"check-mark-single",ref:n,icon:$n}))});Zt.displayName="CheckMarkSingle";var jn={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"}}]},it=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"close-single",ref:n,icon:jn}))});it.displayName="CloseSingle";var Hn={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"}}]},Xt=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"delete-single",ref:n,icon:Hn}))});Xt.displayName="DeleteSingle";var Un={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"}}]},Jt=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"details-single",ref:n,icon:Un}))});Jt.displayName="DetailsSingle";var Wn={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"}}]},Qt=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"increase-single",ref:n,icon:Wn}))});Qt.displayName="IncreaseSingle";var Bn={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"}}]},yt=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"more-single",ref:n,icon:Bn}))});yt.displayName="MoreSingle";var Vn={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"}}]},en=f.forwardRef(function(e,n){return f.createElement(Oe,Object.assign({},e,{id:"select-range-single",ref:n,icon:Vn}))});en.displayName="SelectRangeSingle";function tn(e){var n,t,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(n=0;n<o;n++)e[n]&&(t=tn(e[n]))&&(r&&(r+=" "),r+=t)}else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function vt(){for(var e,n,t=0,r="",o=arguments.length;t<o;t++)(e=arguments[t])&&(n=tn(e))&&(r&&(r+=" "),r+=n);return r}var Kn=Object.defineProperty,qn=Object.getOwnPropertyDescriptor,Yn=(e,n,t,r)=>{for(var o=r>1?void 0:r?qn(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&Kn(n,t,o),o},$e=(e,n)=>(t,r)=>n(t,r,e);exports.RefSelectionsRenderService=class extends $.BaseSelectionRenderService{constructor(t,r,o,i,s,a,l){super(r,o,i,s,a);te(this,"_workbookSelections");te(this,"_eventDisposables");this._context=t,this._contextService=a,this._refSelectionsService=l,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(zn(this._themeService)),this._remainLastEnabled=!0,this._highlightHeader=!1}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(t){this._remainLastEnabled=t}setSkipLastEnabled(t){this._skipLastEnabled=t}clearLastSelection(){const t=this._selectionControls[this._selectionControls.length-1];t&&(t.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),c.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var t;(t=this._eventDisposables)==null||t.dispose(),this._eventDisposables=null}disableSelectionChanging(){this._disableSelectionChanging()}_initCanvasEventListeners(){const t=this._getSheetObject(),{spreadsheetRowHeader:r,spreadsheetColumnHeader:o,spreadsheet:i,spreadsheetLeftTopPlaceholder:s}=t,{scene:a}=this._context,l=new c.DisposableCollection;return l.add(i==null?void 0:i.onPointerDown$.subscribeEvent((h,d)=>{this.inRefSelectionMode()&&(this._onPointerDown(h,i.zIndex+1,c.RANGE_TYPE.NORMAL,this._getActiveViewport(h)),h.button!==2&&d.stopPropagation())})),l.add(r==null?void 0:r.onPointerDown$.subscribeEvent((h,d)=>{if(!this.inRefSelectionMode())return;const m=this._sheetSkeletonManagerService.getCurrent().skeleton,{row:g}=$.getCoordByOffset(h.offsetX,h.offsetY,a,m);$.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),g,c.RANGE_TYPE.ROW)||(this._onPointerDown(h,(i.zIndex||1)+1,c.RANGE_TYPE.ROW,this._getActiveViewport(h),q.ScrollTimerType.Y),h.button!==2&&d.stopPropagation())})),l.add(o==null?void 0:o.onPointerDown$.subscribeEvent((h,d)=>{if(!this.inRefSelectionMode())return;const m=this._sheetSkeletonManagerService.getCurrent().skeleton,{column:g}=$.getCoordByOffset(h.offsetX,h.offsetY,a,m);$.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),g,c.RANGE_TYPE.COLUMN)||(this._onPointerDown(h,(i.zIndex||1)+1,c.RANGE_TYPE.COLUMN,this._getActiveViewport(h),q.ScrollTimerType.X),h.button!==2&&d.stopPropagation())})),l.add(s==null?void 0:s.onPointerDown$.subscribeEvent((h,d)=>{if(this._reset(),!this.inRefSelectionMode())return;const m=this._sheetSkeletonManagerService.getCurrent().skeleton,g=$.getAllSelection(m);this._addSelectionControlByModelData(g),this._selectionMoveStart$.next(this.getSelectionDataWithStyle());const p=a.onPointerUp$.subscribeEvent(()=>{p.unsubscribe(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())});h.button!==2&&d.stopPropagation()})),l}_addSelectionControlByModelData(t){var a;const r=this._skeleton,o=(a=t.style)!=null?a:$.genNormalSelectionStyle(this._themeService),i=this._scene;return t.style=o,this.newSelectionControl(i,r,t)}_initSelectionChangeListener(){this.disposeWithMe(this._refSelectionsService.selectionSet$.subscribe(t=>{this._reset(),this._skeleton&&this.resetSelectionsByModelData(t||[])}))}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(t=>{this._updateSelections(t,B.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(t=>{this._updateSelections(t,B.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(t=>{this._updateSelections(t,B.SelectionMoveType.MOVE_END)}))}_updateSelections(t,r){const i=this._context.unit.getActiveSheet().getSheetId();t.length!==0&&this._workbookSelections.setSelections(i,t.map(s=>B.convertSelectionDataToRange(s)),r)}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(t=>{if(!t)return;const{skeleton:r}=t,{scene:o}=this._context,i=o.getViewport(q.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==r.worksheet.getSheetId()&&this._reset(),this._changeRuntime(r,o,i);const s=this._workbookSelections.getCurrentSelections();this.resetSelectionsByModelData(s)}))}_getActiveViewport(t){const r=this._getSheetObject();return r==null?void 0:r.scene.getActiveViewportByCoord(q.Vector2.FromArray([t.offsetX,t.offsetY]))}_getSheetObject(){return $.getSheetObject(this._context.unit,this._context)}_onPointerDown(t,r=0,o=c.RANGE_TYPE.NORMAL,i,s=q.ScrollTimerType.ALL){var M;this._rangeType=o;const a=this._skeleton,l=this._scene;if(!l||!a)return;i&&(this._activeViewport=i);const{offsetX:h,offsetY:d}=t,m=l.getViewport(q.SHEET_VIEWPORT_KEY.VIEW_MAIN);if(!m)return;const g=l.getCoordRelativeToViewport(q.Vector2.FromArray([h,d])),{x:p,y:u}=g;this._startViewportPosX=p,this._startViewportPosY=u;const S=l.getScrollXYInfoByViewport(g),{scaleX:R,scaleY:N}=l.getAncestorScale(),C=this._skeleton.getCellByOffset(p,u,R,N,S);if(!C)return;switch(o){case c.RANGE_TYPE.NORMAL:break;case c.RANGE_TYPE.ROW:C.startColumn=0,C.endColumn=this._skeleton.getColumnCount()-1;break;case c.RANGE_TYPE.COLUMN:C.startRow=0,C.endRow=this._skeleton.getRowCount()-1;break;case c.RANGE_TYPE.ALL:C.startRow=0,C.startColumn=0,C.endRow=this._skeleton.getRowCount()-1,C.endColumn=this._skeleton.getColumnCount()-1}const y={range:C,primary:C,style:null};y.range.rangeType=o;const b=$.attachSelectionWithCoord(y,this._skeleton);this._startRangeWhenPointerDown={...b.rangeWithCoord};const O={...b.rangeWithCoord,rangeType:o};let D=this.getActiveSelectionControl();const A=this.getSelectionControls();for(const P of A){if(t.button===2&&P.model.isInclude(O)){D=P;return}if(P.model.isEqual(O)){D=P;break}}this._checkClearPreviousControls(t);const L=D==null?void 0:D.model.currentCell,k=t.shiftKey&&L,F=this._remainLastEnabled&&!t.ctrlKey&&!t.shiftKey&&!this._skipLastEnabled&&!this._singleSelectionEnabled;k&&L?this._makeSelectionByTwoCells(L,O,a,o,D):F&&D?D.updateRangeBySelectionWithCoord(b):D=this.newSelectionControl(l,a,y);for(let P=0;P<this.getSelectionControls().length-1;P++)this.getSelectionControls()[P].clearHighlight();this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),l.disableObjectsEvent(),this._clearUpdatingListeners(),this._addEndingListeners(),(M=l.getTransformer())==null||M.clearSelectedObjects(),this._setupPointerMoveListener(m,D,o,s,p,u),this._escapeShortcutDisposable=this._shortcutService.forceEscape(),this._scenePointerUpSub=l.onPointerUp$.subscribeEvent(()=>{var P;this._clearUpdatingListeners(),this._selectionMoveEnd$.next(this.getSelectionDataWithStyle()),(P=this._escapeShortcutDisposable)==null||P.dispose(),this._escapeShortcutDisposable=null})}newSelectionControl(t,r,o){const i=this.getSelectionControls().length,{rowHeaderWidth:s,columnHeaderHeight:a}=r,l=new $.SelectionControl(t,i,this._themeService,{highlightHeader:this._highlightHeader,enableAutoFill:!1,rowHeaderWidth:s,columnHeaderHeight:a}),h=$.attachSelectionWithCoord(o,r);return l.updateRangeBySelectionWithCoord(h),this._selectionControls.push(l),l.setControlExtension({skeleton:r,scene:t,themeService:this._themeService,injector:this._injector,selectionHooks:{selectionMoveEnd:()=>{this._selectionMoveEnd$.next(this.getSelectionDataWithStyle())}}}),l}};exports.RefSelectionsRenderService=Yn([$e(1,c.Inject(c.Injector)),$e(2,c.Inject(c.ThemeService)),$e(3,E.IShortcutService),$e(4,c.Inject($.SheetSkeletonManagerService)),$e(5,c.IContextService),$e(6,B.IRefSelectionsService)],exports.RefSelectionsRenderService);function zn(e){const n=$.genNormalSelectionStyle(e);return n.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},n}const Gn=(e,n,t)=>{const o=c.useDependency(q.IRenderManagerService).getRenderById(e),i=o==null?void 0:o.with(exports.RefSelectionsRenderService);f.useEffect(()=>{if(t&&i){const s=t.input$.subscribe(a=>{a.content===I.matchToken.COMMA?i.setSkipLastEnabled(!0):i.setSkipLastEnabled(!1)});return()=>{s.unsubscribe()}}},[t,i]),f.useEffect(()=>{i&&(n.endsWith(I.matchToken.COMMA)||i.setSkipLastEnabled(!1))},[n,i])},ct=()=>{const e=c.useDependency(I.LexerTreeBuilder);return f.useCallback(t=>e.sequenceNodesBuilder(t)||[],[e])},Zn=(e,n,t,r,o,i)=>{const s=ct(),a=f.useRef(!0);f.useEffect(()=>{var l,h;if(i){if(a.current){const d=s(e);if(d.length){const m=r(i,d);t&&o(m)}else{const m=i.getDocumentData(),p={dataStream:(h=(l=m.body)==null?void 0:l.dataStream)!=null?h:`${n}\r
|
|
10
|
+
`,...m.body};i.setDocumentData({...m,body:p})}a.current=!1}else if(t){const d=s(e),m=r(i,d);o(m)}}},[i,t])},nn=e=>E.useEvent(t=>{var r,o;if(e){e.focus();const i=[...e.getSelectionRanges()];if(c.Tools.isDefine(t))e.setSelectionRanges([{startOffset:t,endOffset:t}]);else if(!i.length&&!e.docSelectionRenderService.isOnPointerEvent){const s=(o=(r=e.getDocumentData().body)==null?void 0:r.dataStream)!=null?o:`\r
|
|
11
|
+
`,a=Math.max(s.length-2,0);e.setSelectionRanges([{startOffset:a,endOffset:a}])}}});function Xn(e,n,t){const r=e.getCurrentTheme(),o=new c.ColorKit(n).setAlpha(.05).toRgbString();return{id:t,strokeWidth:1,stroke:n,fill:o,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:r.colorWhite}}function rn(e){var N,C,y;const{unitId:n,subUnitId:t,refSelections:r,editor:o,refSelectionsService:i,refSelectionsRenderService:s,sheetSkeletonManagerService:a,themeService:l,univerInstanceService:h}=e,d=h.getUnit(n,c.UniverInstanceType.UNIVER_SHEET),m=d==null?void 0:d.getActiveSheet(),g=[];if(!d||!m){i.setSelections(g);return}const p=m.getSheetId(),u=b=>{var O;return(O=d==null?void 0:d.getSheetBySheetName(b))==null?void 0:O.getSheetId()};if(!((N=a==null?void 0:a.getWorksheetSkeleton(p))==null?void 0:N.skeleton))return;const R=[];for(let b=0,O=r.length;b<O;b++){const D=r[b],{themeColor:A,token:L,refIndex:k,endIndex:F}=D,M=I.deserializeRangeWithSheet(L),{unitId:P,sheetName:T,range:_}=M;if(P&&n!==P)continue;const x=u(T);if(x&&x!==p||!x&&p!==t)continue;const w=B.setEndForRange(_,m.getRowCount(),m.getColumnCount());g.push({range:w,primary:null,style:Xn(l,A,k.toString())}),R.push(F)}if(o){const b=(y=(C=o.getSelectionRanges())==null?void 0:C[0])==null?void 0:y.startOffset,O=R.findIndex(D=>D+2===b);O!==-1?s==null||s.setActiveSelectionIndex(O):s==null||s.resetActiveSelectionIndex()}return g}function Tt(e,n){const t=c.useDependency(c.IUniverInstanceService),r=c.useDependency(c.ThemeService),o=c.useDependency(B.IRefSelectionsService),s=c.useDependency(q.IRenderManagerService).getRenderById(e),a=s==null?void 0:s.with(exports.RefSelectionsRenderService),l=s==null?void 0:s.with($.SheetSkeletonManagerService),h=f.useCallback((d,m)=>{const g=rn({unitId:e,subUnitId:n,refSelections:d,editor:m,refSelectionsService:o,refSelectionsRenderService:a,sheetSkeletonManagerService:l,themeService:r,univerInstanceService:t});if(!g)return;((a==null?void 0:a.getSelectionControls())||[]).length===g.length?a==null||a.resetSelectionsByModelData(g):o.setSelections(g)},[a,o,l,r,e,n,t]);return f.useEffect(()=>()=>{a==null||a.resetActiveSelectionIndex()},[a]),h}function on(e=""){const n=c.useDependency(Fe.IDescriptionService),t=sn(),r=c.useDependency(c.ICommandService),o=f.useMemo(()=>e.length,[e]);return f.useCallback((s,a,l=!0,h=!0,d)=>{const m=s.getDocumentData(),g=s.getEditorId();if(!m)return[];if(!m.body)return[];const u={dataStream:"",...m.body};if(a==null||a.length===0)return h&&(u.textRuns=[],r.syncExecuteCommand(ne.ReplaceTextRunsCommand.id,{unitId:g,body:c.getBodySlice(u,0,u.dataStream.length-2)})),[];{const{textRuns:S,refSelections:R}=cn(n,t,a);o&&S.forEach(y=>{y.ed=y.ed+o,y.st=y.st+o}),u.textRuns=S;const N=a.reduce((y,b)=>typeof b=="string"?`${y}${b}`:`${y}${b.token}`,"");u.dataStream=`${e}${N}\r
|
|
12
|
+
`;let C;if(l){C=s.getSelectionRanges();const y=u.dataStream.length-2+o;C.forEach(b=>{b.startOffset=Math.max(0,Math.min(b.startOffset,y)),b.endOffset=Math.max(0,Math.min(b.endOffset,y))})}return r.syncExecuteCommand(ne.ReplaceTextRunsCommand.id,{unitId:g,body:c.getBodySlice(u,0,u.dataStream.length-2),textRanges:d!=null?d:C}),R}},[r,n,t,o,e])}function sn(){const n=c.useDependency(c.ThemeService).getCurrentTheme();return f.useMemo(()=>{const r=[n.loopColor1,n.loopColor2,n.loopColor3,n.loopColor4,n.loopColor5,n.loopColor6,n.loopColor7,n.loopColor8,n.loopColor9,n.loopColor10,n.loopColor11,n.loopColor12],o=n.hyacinth700,i=n.verdancy800,s=n.colorBlack;return{formulaRefColors:r,numberColor:o,stringColor:i,plainTextColor:s}},[n])}function cn(e,n,t){const{formulaRefColors:r,numberColor:o,stringColor:i,plainTextColor:s}=n,a=[],l=[],h=new Map;let d=0;for(let m=0,g=t.length;m<g;m++){const p=t[m];if(typeof p=="string"){const y=a[a.length-1],b=y?y.ed:0,O=b+p.length;a.push({st:b,ed:O,ts:{cl:{rgb:s}}});continue}if(e.hasDefinedNameDescription(p.token.trim())){a.push({st:p.startIndex,ed:p.endIndex+1,ts:{cl:{rgb:s}}});continue}const{startIndex:u,endIndex:S,nodeType:R,token:N}=p;let C="";if(R===I.sequenceNodeType.REFERENCE){if(h.has(N))C=h.get(N);else{const y=d%r.length;C=r[y],h.set(N,C),d++}l.push({refIndex:m,themeColor:C,token:N,startIndex:p.startIndex,endIndex:p.endIndex,index:l.length})}else R===I.sequenceNodeType.NUMBER?C=o:(R===I.sequenceNodeType.STRING||R===I.sequenceNodeType.ARRAY)&&(C=i);C&&C.length>0?a.push({st:u,ed:S+1,ts:{cl:{rgb:C}}}):a.push({st:u,ed:S+1,ts:{cl:{rgb:s}}})}return{textRuns:a,refSelections:l}}function Jn(e){var o,i;const t=e.get(c.IUniverInstanceService).getCurrentUniverDocInstance();return t!=null&&t.getBody()?{dataStream:(i=(o=t.getBody())==null?void 0:o.dataStream)!=null?i:"",offset:0}:void 0}var Ct=(e=>(e[e.NOT_SELECT=0]="NOT_SELECT",e[e.NEED_ADD=1]="NEED_ADD",e[e.CAN_EDIT=2]="CAN_EDIT",e))(Ct||{});function Qn(e,n,t){var p;const o=c.useDependency(q.IRenderManagerService).getRenderById(e),i=o==null?void 0:o.with(ne.DocSelectionRenderService),s=c.useDependency(Et.DocSelectionManagerService),a=c.useDependency(c.Injector),[l,h]=f.useState(0),d=c.useDependency(I.LexerTreeBuilder),m=f.useRef(!0),g=f.useRef(l);return g.current=l,f.useEffect(()=>{const u=s.textSelection$.pipe(K.filter(S=>S.unitId===e),K.map(()=>{const S=i==null?void 0:i.getActiveTextRange();return S!=null&&S.collapsed?S.startOffset:-1})).subscribe(S=>{var L,k;const R=Jn(a);if(!R)return;const N=(L=R==null?void 0:R.dataStream)==null?void 0:L.slice(0,-2),C=(k=d.sequenceNodesBuilder(N))!=null?k:[],y=N[S-1],b=N[S],O=C.findIndex(F=>typeof F=="object"&&F.nodeType===I.sequenceNodeType.REFERENCE&&S===F.endIndex+2),D=y&&I.matchRefDrawToken(y)&&(!b||I.isFormulaLexerToken(b)&&b!==I.matchToken.OPEN_BRACKET),A=O>-1;if((N==null?void 0:N.substring(0,1))==="="&&(D||A))if(A){if(m.current)return;h(2)}else m.current=!1,h(1);else h(0)});return()=>u.unsubscribe()},[s.textSelection$,i,e,a,d]),f.useEffect(()=>{n||(h(0),m.current=!0)},[n]),f.useEffect(()=>{var S;if(!t)return;const u=(S=o==null?void 0:o.mainComponent)==null?void 0:S.onPointerDown$.subscribeEvent(()=>{h(0),m.current=!0});return()=>u==null?void 0:u.unsubscribe()},[t,(p=o==null?void 0:o.mainComponent)==null?void 0:p.onPointerDown$]),{isSelecting:l}}const an=(e,n,t,r)=>{const o=c.useDependency(c.ICommandService),i=c.useDependency(E.IShortcutService),s=f.useRef(n);s.current=n;const a=f.useRef(r);a.current=r,f.useEffect(()=>{if(!t||!e)return;const h=`sheet.formula-embedding-editor.${t.getEditorId()}`,d=new c.DisposableCollection,m=(u,S)=>{if(a.current){a.current(u,S);return}let R=c.Direction.LEFT;u===E.KeyCode.ARROW_DOWN?R=c.Direction.DOWN:u===E.KeyCode.ARROW_UP?R=c.Direction.UP:u===E.KeyCode.ARROW_RIGHT&&(R=c.Direction.RIGHT),S===E.MetaKeys.SHIFT?o.executeCommand(ne.MoveSelectionOperation.id,{direction:R}):o.executeCommand(ne.MoveCursorOperation.id,{direction:R})},g=(u,S)=>{let R=c.Direction.DOWN;u===E.KeyCode.ARROW_DOWN?R=c.Direction.DOWN:u===E.KeyCode.ARROW_UP?R=c.Direction.UP:u===E.KeyCode.ARROW_LEFT?R=c.Direction.LEFT:u===E.KeyCode.ARROW_RIGHT&&(R=c.Direction.RIGHT),s.current?S===E.MetaKeys.CTRL_COMMAND?o.executeCommand($.MoveSelectionCommand.id,{direction:R,jumpOver:$.JumpOver.moveGap,extra:"formula-editor",fromCurrentSelection:s.current===Ct.NEED_ADD}):S===E.MetaKeys.SHIFT?o.executeCommand($.ExpandSelectionCommand.id,{direction:R,extra:"formula-editor"}):S===(E.MetaKeys.CTRL_COMMAND|E.MetaKeys.SHIFT)?o.executeCommand($.ExpandSelectionCommand.id,{direction:R,jumpOver:$.JumpOver.moveGap,extra:"formula-editor"}):o.executeCommand($.MoveSelectionCommand.id,{direction:R,extra:"formula-editor",fromCurrentSelection:s.current===Ct.NEED_ADD}):m(u,S)};return d.add(o.registerCommand({id:h,type:c.CommandType.OPERATION,handler(u,S){const{keyCode:R,metaKey:N}=S;g(R,N)}})),[{keyCode:E.KeyCode.ARROW_DOWN},{keyCode:E.KeyCode.ARROW_LEFT},{keyCode:E.KeyCode.ARROW_RIGHT},{keyCode:E.KeyCode.ARROW_UP},{keyCode:E.KeyCode.ARROW_DOWN,metaKey:E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_LEFT,metaKey:E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_RIGHT,metaKey:E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_UP,metaKey:E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_DOWN,metaKey:E.MetaKeys.CTRL_COMMAND},{keyCode:E.KeyCode.ARROW_LEFT,metaKey:E.MetaKeys.CTRL_COMMAND},{keyCode:E.KeyCode.ARROW_RIGHT,metaKey:E.MetaKeys.CTRL_COMMAND},{keyCode:E.KeyCode.ARROW_UP,metaKey:E.MetaKeys.CTRL_COMMAND},{keyCode:E.KeyCode.ARROW_DOWN,metaKey:E.MetaKeys.CTRL_COMMAND|E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_LEFT,metaKey:E.MetaKeys.CTRL_COMMAND|E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_RIGHT,metaKey:E.MetaKeys.CTRL_COMMAND|E.MetaKeys.SHIFT},{keyCode:E.KeyCode.ARROW_UP,metaKey:E.MetaKeys.CTRL_COMMAND|E.MetaKeys.SHIFT}].map(({keyCode:u,metaKey:S})=>({id:h,binding:S?u|S:u,preconditions:()=>!0,priority:900,staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keyCode:u,metaKey:S}})).forEach(u=>{d.add(i.registerShortcut(u))}),()=>{d.dispose()}},[o,t,e,i])},ln=(e,n)=>{const r=c.useDependency(q.IRenderManagerService).getRenderById(e),o=r==null?void 0:r.with(exports.RefSelectionsRenderService);f.useEffect(()=>{o&&(n?o==null||o.setRemainLastEnabled(!1):o==null||o.setRemainLastEnabled(!0))},[n,o])},bt=(e,n,t,r=!0)=>{const o=c.useDependency(q.IRenderManagerService),i=c.useDependency(c.IContextService),s=c.useDependency(E.IContextMenuService),a=c.useDependency(B.IRefSelectionsService),l=o.getRenderById(t),h=l==null?void 0:l.with(exports.RefSelectionsRenderService);f.useLayoutEffect(()=>{if(e)return i.setContextValue(c.EDITOR_ACTIVATED,!0),()=>{i.setContextValue(c.EDITOR_ACTIVATED,!1),a.clear()}},[i,e,a]),f.useLayoutEffect(()=>{if(e&&n){const d=h==null?void 0:h.enableSelectionChanging();return i.setContextValue(B.REF_SELECTIONS_ENABLED,!0),()=>{i.setContextValue(B.REF_SELECTIONS_ENABLED,!1),d==null||d.dispose()}}},[i,e,h,n]),f.useEffect(()=>{if(e)return i.setContextValue(c.EDITOR_ACTIVATED,!0),r&&s.disable(),()=>{i.setContextValue(c.EDITOR_ACTIVATED,!1),r&&s.enable()}},[s,i,e,r]),f.useEffect(()=>{e&&(h==null||h.setSkipLastEnabled(!1))},[e,h])},er=()=>{f.useEffect(()=>()=>{},[])},un=(e,n,t)=>{const r=c.useDependency(c.IUniverInstanceService),o=c.useDependency(B.SheetsSelectionsService);return f.useCallback(()=>{if(e){const s=[...o.getWorkbookSelections(n).getSelectionsOfWorksheet(t)],a=r.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),l=a==null?void 0:a.getActiveSheet();l&&l.getSheetId()===t&&o.setSelections(s)}},[e,o,t,n,r])},Rt=e=>typeof e=="string"?e===I.matchToken.COMMA:!1,tr=e=>{if(typeof e=="object")return e.nodeType===I.sequenceNodeType.REFERENCE},nr=e=>e.filter(n=>Rt(n)||tr(n)),Nt=e=>{if(e.endColumn<e.startColumn){const n=e.endColumn;e.endColumn=e.startColumn,e.startColumn=n}if(e.endRow<e.startRow){const n=e.endRow;e.endRow=e.startRow,e.startRow=n}return e},Ee=e=>e.map(n=>typeof n=="string"?n:n.token).join("");function wt(e,n,t){var r,o;return((o=(r=e.getUnit(n))==null?void 0:r.getSheetBySheetId(t))==null?void 0:o.getName())||""}const _e=(e,n=!1,t="")=>n?e.map(r=>r.sheetName!==""&&r.sheetName!==t?I.serializeRangeWithSheet(r.sheetName,r.range):I.serializeRange(r.range)):e.map(r=>I.serializeRange(r.range)),fn=(e,n,t,r,o,i,s)=>{const a=c.useDependency(q.IRenderManagerService),l=c.useDependency(c.IUniverInstanceService),h=f.useRef(!1),d=a.getRenderById(n),m=d==null?void 0:d.with(exports.RefSelectionsRenderService),g=f.useRef([]),p=f.useMemo(()=>{const S=nr(r),R=g.current;return S.length===R.length?(R.splice(0),R.push(...S),R):S},[r]);g.current=p;const u=f.useRef();f.useEffect(()=>{if(e&&m){let S=!0;const R=(y,b)=>{var T;if(S||h.current){S=!1;return}const O=[...y],D=l.getUnit(n),A=((T=D==null?void 0:D.getActiveSheet())==null?void 0:T.getName())||"",L=p.map((_,x)=>{if(typeof _=="string"){if(!p[x-1])return null;const j=p[x+1];return Rt(_)&&(Rt(j)||x===p.length-1)?null:_}else if(_.nodeType===I.sequenceNodeType.REFERENCE){const w=I.deserializeRangeWithSheet(_.token);w.unitId=w.unitId===""?n:w.unitId,w.sheetName=w.sheetName===""?A:w.sheetName;const{unitId:j,sheetName:Y}=w;if(i&&(j!==n||A!==Y))return null;if(j===n&&A===Y){const V=O.shift();if(V&&wt(l,n,V.rangeWithCoord.sheetId||"")===Y){const H={..._};return Nt(V.rangeWithCoord),o?H.token=I.serializeRangeWithSheet(A,V.rangeWithCoord):H.token=I.serializeRange(V.rangeWithCoord),H}}return _}return null}).filter(_=>!!_),k=_e(O.map(_=>{var x,w,j;return{range:_.rangeWithCoord,unitId:(x=_.rangeWithCoord.unitId)!=null?x:"",sheetName:wt(l,(w=_.rangeWithCoord.unitId)!=null?w:"",(j=_.rangeWithCoord.sheetId)!=null?j:"")}}),o).join(I.matchToken.COMMA),F=Ee(L),M=`${F}${F&&k?I.matchToken.COMMA:""}${k}`,P=h.current;s(M,P?-1:M.length,b)},N=m.selectionMoveEnd$.subscribe(y=>{if(R(y,!0),h.current=!1,u.current){const{result:b,offset:O}=u.current;s(b,O,!0),u.current=void 0}}),C=m.selectionMoving$.pipe(Ke.throttleTime(50)).subscribe(y=>{R(y,!1)});return()=>{N.unsubscribe(),C.unsubscribe()}}},[e,p,m,o,i,s,l,n]),f.useEffect(()=>{if(e&&m){const S=new c.DisposableCollection,R=(y,b)=>{var P;let O=0,D=0,A=!1;const L=l.getUnit(n),k=((P=L==null?void 0:L.getActiveSheet())==null?void 0:P.getName())||"",F=p.map(T=>{if(typeof T=="string")return A||(D+=T.length),T;if(T.nodeType===I.sequenceNodeType.REFERENCE){const _=I.deserializeRangeWithSheet(y);if(_.unitId=_.unitId===""?n:_.unitId,_.sheetName=_.sheetName===""?k:_.sheetName,O===b){A=!0;const x={...T,token:y};return o?x.token=I.serializeRangeWithSheet(_.sheetName,_.range):x.token=I.serializeRange(_.range),O++,D+=x.token.length,x}return O++,A||(D+=T.token.length),T}return T}),M=Ee(F);u.current={result:M,offset:D},s(M,-1,!1)};let N=0;const C=m.selectionMoveEnd$.subscribe(()=>{N=setTimeout(()=>{S.dispose(),m.getSelectionControls().forEach((b,O)=>{S.add(K.merge(b.selectionMoving$,b.selectionScaling$).pipe(K.map(D=>I.serializeRange(D)),K.distinctUntilChanged()).subscribe(D=>{h.current=!0,R(D,O)}))})},30)});return()=>{C.unsubscribe(),S.dispose(),clearTimeout(N)}}},[e,m,p,s,l,n,o])},Mt=(e,n,t,r,o,i)=>{const s=c.useDependency(c.ICommandService),a=c.useDependency(ne.IEditorService),h=c.useDependency(q.IRenderManagerService).getRenderById(n),d=h==null?void 0:h.with(exports.RefSelectionsRenderService);f.useEffect(()=>{if(e&&d)if(t){const m=s.onCommandExecuted(g=>{if(g.id===B.SetWorksheetActiveOperation.id){const p=d.getSelectionControls().length;for(let u=1;u<=p;u++)d.clearLastSelection();setTimeout(()=>{i()},30)}});return()=>{m.dispose()}}else{const m=s.beforeCommandExecuted(g=>{if(g.id===B.SetWorksheetActiveOperation.id){r(!1),o(),i();const p=a.getEditor(c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY);p==null||p.focus()}});return()=>{m.dispose()}}},[e,d])},dn=e=>!e.some(t=>{if(typeof t=="string"){if(t!==I.matchToken.COMMA)return!0}else if(t.nodeType!==I.sequenceNodeType.REFERENCE)return!0;return!1}),rr=(e,n,t)=>{const r=f.useRef(!0);f.useEffect(()=>{if(e){const o=setTimeout(()=>{r.current=!1},500);return()=>{clearTimeout(o)}}},[e]),f.useEffect(()=>{if(!r.current&&n){const o=dn(t);n(o,Ee(t))}},[t,n])},or="univer-sheet-range-selector-text-wrap",sr="univer-sheet-range-selector-placeholder",ir="univer-sheet-range-selector-error",cr="univer-sheet-range-selector-error-wrap",ar="univer-sheet-range-selector-text",lr="univer-sheet-range-selector-active",ur="univer-sheet-range-selector-icon",fr="univer-sheet-range-selector-dialog-item",dr="univer-sheet-range-selector-dialog-item-delete",Re={sheetRangeSelectorTextWrap:or,sheetRangeSelectorPlaceholder:sr,sheetRangeSelectorError:ir,sheetRangeSelectorErrorWrap:cr,sheetRangeSelectorText:ar,sheetRangeSelectorActive:lr,sheetRangeSelectorIcon:ur,sheetRangeSelectorDialogItem:fr,sheetRangeSelectorDialogItemDelete:dr},Ue=()=>{};function hn(e){const{initValue:n,unitId:t,subUnitId:r,errorText:o,placeholder:i,actions:s,onChange:a=Ue,onVerify:l=Ue,onRangeSelectorDialogVisibleChange:h=Ue,onBlur:d=Ue,onFocus:m=Ue,isFocus:g=!0,isOnlyOneRange:p=!1,isSupportAcrossSheet:u=!1}=e,S=E.useEvent(a),R=c.useDependency(ne.IEditorService),N=c.useDependency(c.LocaleService),C=c.useDependency(c.ICommandService),y=c.useDependency(I.LexerTreeBuilder),b=f.useRef(null),[O,D]=f.useState(!1),[A,L]=f.useState(g),k=f.useMemo(()=>c.createInternalEditorID(`${$.RANGE_SELECTOR_SYMBOLS}-${c.generateRandomId(4)}`),[]),F=f.useRef(),M=F.current,P=f.useRef(null),T=c.useDependency(c.IUniverInstanceService),_=f.useMemo(()=>!O&&A,[O,A]),[x,w]=f.useState(()=>typeof n=="string"?n:_e(n,u).join(I.matchToken.COMMA)),j=f.useMemo(()=>T.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC),[T]),Y=c.useObservable(j),V=(Y==null?void 0:Y.getUnitId())===k,H=f.useRef([]),de=E.useEvent((W,U)=>{b.current&&!O&&!b.current.contains(W.target)&&U()});s&&(s.handleOutClick=de);const Q=f.useMemo(()=>x.split(I.matchToken.COMMA).filter(W=>!!W).map(W=>I.deserializeRangeWithSheet(W)),[x]),J=f.useMemo(()=>o!==void 0,[o]),z=un(!O&&A,t,r);f.useMemo(()=>W=>{const U=y.sequenceNodesBuilder(W);if(U){if(dn(U)){const ee=U.map(ve=>{if(typeof ve=="string")return ve;if(ve.nodeType===I.sequenceNodeType.REFERENCE){const Le={...ve},Ne=I.deserializeRangeWithSheet(ve.token);return Ne.range=Nt(Ne.range),u||(Ne.sheetName="",Ne.unitId=""),Le.token=_e([Ne],u)[0],Le}return ve}),X=Ee(ee);S(X)}}else w("")},[u]);const Z=nn(M),{checkScrollBar:ie}=ne.useResize(M,!0,!0),Se=ct(),re=f.useMemo(()=>Se(x),[x]),he=on(),me=Tt(t,r),ue=E.useEvent((W,U=!0,G=!0)=>{if(!F.current)return;const ee=Se(W),X=he(F.current,ee,U);H.current=X,G&&me(X,F.current)});f.useEffect(()=>{const W=C.onCommandExecuted(U=>{var G,ee;if(U.id===Et.RichTextEditingMutation.id){const X=U.params,{unitId:ve}=X;ve===k&&S(c.BuildTextUtils.transform.getPlainText((ee=(G=M==null?void 0:M.getDocumentData().body)==null?void 0:G.dataStream)!=null?ee:""))}});return()=>W.dispose()},[C,M,k,S]);const fe=E.useEvent((W,U,G)=>{ue(W),w(W),G&&(Z(),U!==-1&&setTimeout(()=>{const ee={startOffset:U,endOffset:U};M==null||M.setSelectionRanges([ee]);const X=M==null?void 0:M.render.with(ne.DocBackScrollRenderController);X==null||X.scrollToRange({...ee,collapsed:!0})},50),ie())});fn(_,t,r,re,u,p,fe),bt(_,_&&V,t),ln(t,p),Gn(t,x,M),rr(_,l,re),an(_,0,M),er(),Mt(_,t,u,L,d,()=>{_&&ue(x)}),f.useEffect(()=>{if(M){const W=M.input$.pipe(K.throttleTime(100)).subscribe(U=>{var ee,X;const G=((X=(ee=U.data.body)==null?void 0:ee.dataStream)!=null?X:"").replaceAll(/\n|\r/g,"").replaceAll(/,{2,}/g,",").replaceAll(/(^,)/g,"");ue(G,!1),w(G)});return()=>{W.unsubscribe()}}},[M]),f.useEffect(()=>{const W=C.onCommandExecuted(U=>{U.id===$.SetCellEditVisibleOperation.id&&(D(!1),h(!1),L(!1),d())});return()=>{W.dispose()}},[u]),f.useLayoutEffect(()=>{let W;if(P.current){W=R.register({autofocus:!0,editorUnitId:k,initialSnapshot:{id:k,body:{dataStream:`${x}\r
|
|
13
|
+
`,textRuns:[]},documentStyle:{}}},P.current);const U=R.getEditor(k);F.current=U,ue(x,!1,!1)}return()=>{W==null||W.dispose()}},[]),f.useLayoutEffect(()=>{g?(L(g),Z()):(M==null||M.blur(),z(),L(g))},[g,Z]),Zn(x,"",A,he,me,M);const ge=()=>{m(),Z(),L(!0)},be=W=>{const U=_e(W,u).join(I.matchToken.COMMA);U||M==null||M.setDocumentData({...M.getDocumentData(),body:{dataStream:`\r
|
|
14
|
+
`,textRuns:[]}}),ue(U),w(U),D(!1),h(!1),setTimeout(()=>{L(!0),M==null||M.setSelectionRanges([{startOffset:U.length,endOffset:U.length}]),Z(),ie()},30)},Ie=()=>{D(!1),h(!1),setTimeout(()=>{L(!0),Z()},30)},ce=()=>{J||(Z(),setTimeout(()=>{D(!0),h(!0),L(!1)},30))};return v.jsxs("div",{className:Re.sheetRangeSelector,ref:b,children:[v.jsxs("div",{className:vt(Re.sheetRangeSelectorTextWrap,{[Re.sheetRangeSelectorActive]:A&&!J,[Re.sheetRangeSelectorError]:J}),children:[v.jsx("div",{className:Re.sheetRangeSelectorText,ref:P,onMouseUp:ge}),v.jsx(pe.Tooltip,{title:N.t("rangeSelector.buttonTooltip"),placement:"bottom",children:v.jsx(en,{className:Re.sheetRangeSelectorIcon,onClick:ce})}),o!==void 0?v.jsx("div",{className:Re.sheetRangeSelectorErrorWrap,children:o}):null,i!==void 0&&!x?v.jsx("div",{className:Re.sheetRangeSelectorPlaceholder,children:i}):null]}),O&&v.jsx(hr,{editorId:k,handleConfirm:be,handleClose:Ie,unitId:t,subUnitId:r,initValue:Q,visible:O,isOnlyOneRange:p,isSupportAcrossSheet:u})]})}function hr(e){const{handleConfirm:n,handleClose:t,visible:r,initValue:o,unitId:i,subUnitId:s,isOnlyOneRange:a,isSupportAcrossSheet:l}=e,h=c.useDependency(c.LocaleService),d=c.useDependency(Fe.IDescriptionService),m=c.useDependency(I.LexerTreeBuilder),p=c.useDependency(q.IRenderManagerService).getRenderById(i),u=p==null?void 0:p.with(exports.RefSelectionsRenderService),[S,R]=f.useState(()=>{if(a){const _=o[0];return _?_e([_],l):[""]}return _e(o,l)}),[N,C]=f.useState(()=>S.length-1),y=sn(),b=f.useMemo(()=>S.join(I.matchToken.COMMA),[S]),O=ct(),D=f.useMemo(()=>O(b),[b]),A=f.useMemo(()=>cn(d,y,D).refSelections,[D]),L=()=>{R([]),setTimeout(()=>{t()},30)},k=(_,x)=>{x?u==null||u.setSkipLastEnabled(!1):u==null||u.setSkipLastEnabled(!0),R(w=>{const j=[...w];return j[_]=x,j})},F=_=>{u==null||u.setSkipLastEnabled(!1),R(x=>{if(x.length===1)return x;const w=[];return x.forEach((j,Y)=>{_!==Y&&w.push(j)}),w})},M=()=>{u==null||u.setSkipLastEnabled(!0),R(_=>(_.push(""),C(_.length-1),[..._]))},P=E.useEvent(_=>{var w;u==null||u.setSkipLastEnabled(!1);const x=_.split(I.matchToken.COMMA).filter(j=>!!j);R(a?[(w=x[0])!=null?w:""]:x)}),T=Tt(i,s);return fn(N>=0,i,s,D,l,a,P),bt(N>=0,N>=0,i),ln(i,a),Mt(N>=0,i,l,K.noop,K.noop,()=>T(A)),f.useEffect(()=>{T(A)},[A]),f.useEffect(()=>{(S.length===0||S.length===1&&!S[0])&&(u==null||u.setSkipLastEnabled(!0))},[S]),v.jsx(pe.Dialog,{width:"328px",visible:r,title:h.t("rangeSelector.title"),draggable:!0,closeIcon:v.jsx(it,{}),footer:v.jsxs("footer",{children:[v.jsx(pe.Button,{onClick:L,children:h.t("rangeSelector.cancel")}),v.jsx(pe.Button,{style:{marginLeft:10},onClick:()=>n(S.filter(_=>{const x=m.sequenceNodesBuilder(_);return x&&x.length===1&&typeof x[0]!="string"&&x[0].nodeType===I.sequenceNodeType.REFERENCE}).map(_=>I.deserializeRangeWithSheet(_)).map(_=>({..._,range:Nt(_.range)}))),type:"primary",children:h.t("rangeSelector.confirm")})]}),onClose:L,children:v.jsxs("div",{className:Re.sheetRangeSelectorDialog,children:[S.map((_,x)=>v.jsxs("div",{className:Re.sheetRangeSelectorDialogItem,children:[v.jsx(pe.Input,{affixWrapperStyle:{width:"100%"},placeholder:h.t("rangeSelector.placeHolder"),onFocus:()=>C(x),value:_,onChange:w=>k(x,w)},`input_${x}`),S.length>1&&!a&&v.jsx(Xt,{className:Re.sheetRangeSelectorDialogItemDelete,onClick:()=>F(x)})]},`${_}_${x}`)),!a&&v.jsx("div",{children:v.jsxs(pe.Button,{type:"link",size:"small",onClick:M,children:[v.jsx(Qt,{}),v.jsx("span",{children:h.t("rangeSelector.addAnotherRange")})]})})]})})}function mr(e,n){return Object.keys(e).filter(t=>isNaN(Number(t))&&t!=="DefinedName").map(t=>({label:n.t(`formula.functionType.${t.toLocaleLowerCase()}`),value:`${e[t]}`}))}function xt(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 gr=(e,n=100)=>{f.useEffect(()=>{let t=null;const r=()=>{t===null&&(t=window.setTimeout(()=>{e(),t=null},n))};return window.addEventListener("scroll",r),window.addEventListener("resize",r),()=>{t!==null&&clearTimeout(t),window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}},[e,n])};function mn(e,n,t){const r=c.useDependency(ne.IEditorService),o=f.useMemo(()=>new K.BehaviorSubject({left:-999,top:-999,right:-999,bottom:-999}),[]),i=c.useDependency(E.ISidebarService),s=c.useDependency(c.IUniverInstanceService),a=E.useEvent(()=>{const l=r.getEditor(e);if(!l)return;const h=l.getBoundingClientRect(),{left:d,top:m,right:g,bottom:p}=h,u=o.getValue();if(!(u.left===d&&u.top===m&&u.right===g&&u.bottom===p))return o.next({left:d-1,right:g+1,top:m-1,bottom:p+1}),h});return f.useEffect(()=>{n&&a()},[e,r,s.unitAdded$,a,n,...t!=null?t:[]]),gr(a),f.useEffect(()=>{const l=i.scrollEvent$.pipe(K.throttleTime(100)).subscribe(a);return()=>{l.unsubscribe()}},[]),[o,a]}const Ye=e=>{const n=f.useRef(e);return n.current=e,n},pr=(e,n,t)=>{const r=c.useDependency(Fe.IDescriptionService),o=c.useDependency(I.LexerTreeBuilder),[i,s]=f.useState(),[a,l]=f.useState(-1),[h,d]=f.useState(!0),m=Ye(h),g=f.useRef(n);g.current=n;const p=()=>{s(void 0),l(-1),d(!1)};return f.useEffect(()=>{if(t&&e){const u=t.selectionChange$.pipe(K.debounceTime(50)).subscribe(R=>{if(R.textRanges.length===1){const[N]=R.textRanges;if(N.collapsed&&m.current){const C=o.getFunctionAndParameter(`${g.current}A`,N.startOffset-1);if(C){const{functionName:y,paramIndex:b}=C,O=r.getFunctionInfo(y);s(O),l(b);return}}}s(void 0),l(-1)}),S=t.selectionChange$.pipe(K.filter(R=>R.isEditing),K.filter(R=>R.textRanges.length===1),K.map(R=>R.textRanges[0].startOffset),K.distinctUntilChanged()).subscribe(()=>{d(!0)});return()=>{u.unsubscribe(),S.unsubscribe()}}},[t,e]),f.useEffect(()=>{e||p()},[e]),{functionInfo:i,paramIndex:a,reset:p}},Sr="univer-formula-help-function",vr="univer-formula-help-function-title",Cr="univer-formula-help-function-title-icons",Rr="univer-formula-help-function-title-icon",_r="univer-formula-help-function-content",Er="univer-formula-help-function-content-inner",Ir="univer-formula-help-function-content-params",yr="univer-formula-help-function-content-params-title",Tr="univer-formula-help-function-content-params-detail",br="univer-formula-help-function-active",Nr="univer-formula-help-decorator",Mr="univer-formula-help-param",xr="univer-formula-help-param-prefix",Fr="univer-formula-help-param-item",Or="univer-formula-help-param-active",ae={formulaHelpFunction:Sr,formulaHelpFunctionTitle:vr,formulaHelpFunctionTitleIcons:Cr,formulaHelpFunctionTitleIcon:Rr,formulaHelpFunctionContent:_r,formulaHelpFunctionContentInner:Er,formulaHelpFunctionContentParams:Ir,formulaHelpFunctionContentParamsTitle:yr,formulaHelpFunctionContentParamsDetail:Tr,formulaHelpFunctionActive:br,formulaHelpDecorator:Nr,formulaHelpParam:Mr,formulaHelpParamPrefix:xr,formulaHelpParamItem:Fr,formulaHelpParamActive:Or},ut=({className:e,title:n,value:t})=>v.jsxs("div",{className:ae.formulaHelpFunctionContentParams,children:[v.jsx("div",{className:`
|
|
15
|
+
${ae.formulaHelpFunctionContentParamsTitle}
|
|
16
|
+
${e}
|
|
17
|
+
`,children:n}),v.jsx("div",{className:ae.formulaHelpFunctionContentParamsDetail,children:t})]}),Dr=e=>{const{prefix:n,value:t,active:r,onClick:o}=e;return v.jsxs("div",{className:ae.formulaHelpParam,children:[v.jsxs("span",{className:ae.formulaHelpParamPrefix,children:[n,"("]}),t&&t.map((i,s)=>v.jsxs("span",{className:ae.formulaHelpParamItem,children:[v.jsx("span",{className:r===s?ae.formulaHelpFunctionActive:ae.formulaHelpParamActive,onClick:()=>o(s),children:xt(i)}),s===t.length-1?"":","]},i.name)),")"]})},$t=()=>{};function Ar(e){const{onParamsSwitch:n=$t,onClose:t=$t,isFocus:r,editor:o,formulaText:i}=e,{functionInfo:s,paramIndex:a,reset:l}=pr(r,i,o),h=f.useMemo(()=>!!s&&a>=0,[s,a]),[d,m]=f.useState(!0),g=c.useDependency(c.LocaleService),p=g.t("formula.prompt.required"),u=g.t("formula.prompt.optional"),S=o.getEditorId(),[R]=mn(S,h,[s,a]);function N(y){n&&n(y)}const C=()=>{l(),t()};return h&&s?v.jsx(E.RectPopup,{portal:!0,onClickOutside:()=>l(),anchorRect$:R,direction:"vertical",children:v.jsxs("div",{className:ae.formulaHelpFunction,children:[v.jsxs("div",{className:ae.formulaHelpFunctionTitle,children:[v.jsx(Dr,{prefix:s.functionName,value:s.functionParameter,active:a,onClick:N}),v.jsxs("div",{className:ae.formulaHelpFunctionTitleIcons,children:[v.jsx("div",{className:ae.formulaHelpFunctionTitleIcon,style:{transform:d?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>m(!d),children:v.jsx(yt,{})}),v.jsx("div",{className:ae.formulaHelpFunctionTitleIcon,onClick:C,children:v.jsx(it,{})})]})]}),v.jsx("div",{className:ae.formulaHelpFunctionContent,style:{height:d?"unset":0,padding:d?"revert-layer":0},children:v.jsxs("div",{className:ae.formulaHelpFunctionContentInner,children:[v.jsx(ut,{title:g.t("formula.prompt.helpExample"),value:`${s.functionName}(${s.functionParameter.map(y=>y.example).join(",")})`}),v.jsx(ut,{title:g.t("formula.prompt.helpAbstract"),value:s.description}),s&&s.functionParameter&&s.functionParameter.map((y,b)=>v.jsx(ut,{className:a===b?ae.formulaHelpFunctionActive:"",title:y.name,value:`${y.require?p:u} ${y.detail}`},b))]})})]})}):null}const Xe=(e,n,t=!0)=>{let r=-1;return e.reduce((o,i,s)=>{if(o.isFinish)return o;const a=o.currentIndex;if(typeof i!="string")o.currentIndex+=i.token.length;else{const l=i.length;o.currentIndex+=l}return(t?o.currentIndex===n:n>a&&n<=o.currentIndex)&&(r=s,o.isFinish=!0),o},{currentIndex:0,isFinish:!1}),r},Ge=e=>e.reduce((n,t)=>typeof t=="string"?n+t.length:n+t.token.length,0),Pr=(e,n=300)=>{let t=e,r=0;const o=()=>t,i=a=>{clearTimeout(r),t=a};function s(){clearTimeout(r),r=setTimeout(()=>{t=e},n)}return{getValue:o,setValue:i,reset:s}},Ft=[I.compareToken.EQUALS,I.compareToken.GREATER_THAN,I.compareToken.GREATER_THAN_OR_EQUAL,I.compareToken.LESS_THAN,I.compareToken.LESS_THAN_OR_EQUAL,I.compareToken.NOT_EQUAL,I.operatorToken.CONCATENATE,I.operatorToken.DIVIDED,I.operatorToken.MINUS,I.operatorToken.MULTIPLY,I.operatorToken.PLUS,I.operatorToken.POWER,I.matchToken.COMMA],jt=[...Ft,I.matchToken.COLON,I.matchToken.OPEN_BRACKET],Lr=[...Ft,I.matchToken.CLOSE_BRACKET],ft=e=>typeof e=="string"?e:e.token,kr=(e,n)=>{const r=c.useDependency(q.IRenderManagerService).getRenderById(e),o=r==null?void 0:r.with(exports.RefSelectionsRenderService),i=f.useRef(!1),s=c.useDependency(I.LexerTreeBuilder),a=f.useMemo(()=>Pr(!1,300),[]),l=E.useEvent(d=>{o&&o.setSkipLastEnabled(d),i.current=d}),h=E.useEvent(()=>i.current);return f.useEffect(()=>{if(n&&o){const d=n.input$.subscribe(g=>{const p=g.content;p.length===1&&jt.includes(p)?(l(!0),a.setValue(!0),a.reset()):(l(!1),a.setValue(!1))}),m=n.selectionChange$.subscribe(g=>{var A,L;if(a.getValue())return;const p=(L=(A=n.getDocumentData().body)==null?void 0:A.dataStream.slice(0,-2))!=null?L:"",u=s.sequenceNodesBuilder(p),S=g.textRanges;if(!S.length)return;if(S.length!==1){l(!1);return}const R=S[0];if(!R.collapsed){l(!1);return}if(!(u!=null&&u.length)){l(!0);return}const N=R.startOffset-1;if(N===0){const k=Xe(u,1,!1),F=u[k]||"",M=ft(F);if(Ft.includes(M)){l(!0);return}}const C=Xe(u,N,!1),y=u[C];if(!y){l(!1);return}const b=u[C+1]||"",O=ft(b),D=ft(y);jt.includes(D)&&(!b||Lr.includes(O))?l(!0):l(!1)});return o.selectionMoveEnd$.subscribe(()=>{Promise.resolve().then(()=>{l(!1)})}),()=>{d.unsubscribe(),m.unsubscribe()}}},[n,a,s,o,l]),{setIsAddSelection:l,getIsNeedAddSelection:h,isLockSelectionEvent:a}},wr=()=>{},$r=(e,n,t,r,o,i,s,a,l,h=wr)=>{const d=c.useDependency(q.IRenderManagerService),m=c.useDependency(c.IUniverInstanceService),g=c.useDependency(c.ICommandService),p=Ye(o),u=c.useDependency(Et.DocSelectionManagerService),S=c.useDependency(c.ThemeService),{getIsNeedAddSelection:R}=kr(t,l),N=m.getUnit(t),C=E.useEvent(P=>{var T,_;return(_=(T=N==null?void 0:N.getSheetBySheetId(P))==null?void 0:T.getName())!=null?_:""}),y=f.useMemo(()=>C(r),[C,r]),b=c.useObservable(N==null?void 0:N.activeSheet$),O=Ye({activeSheet:b,sheetName:y}),D=d.getRenderById(t),A=D==null?void 0:D.with(exports.RefSelectionsRenderService),L=D==null?void 0:D.with($.SheetSkeletonManagerService),k=c.useDependency(B.IRefSelectionsService),F=f.useRef(!1),M=f.useRef();f.useEffect(()=>{},[]),f.useEffect(()=>{if(A&&e){let P=!0;const T=(x,w)=>{var Q,J,z,Z,ie,Se;if(P){P=!1;return}const j=l==null?void 0:l.getSelectionRanges();if((j==null?void 0:j.length)!==1)return;const V=j[0].startOffset-1,H=[...p.current],de=Xe(H,V,!1);if(R())if(V!==0){if(de===-1&&H.length)return;const re=x[x.length-1],he=H.splice(de+1),me=(Q=re.rangeWithCoord.sheetId)!=null?Q:r,ue={range:re.rangeWithCoord,unitId:(J=re.rangeWithCoord.unitId)!=null?J:t,sheetName:C(me)},ge=_e([ue],s&&me!==r,y);H.push({token:ge[0],nodeType:I.sequenceNodeType.REFERENCE});const be=[...H,...he],Ie=Ee(be);h(Ie,Ge(H),w)}else{const re=x[x.length-1],he=(z=re.rangeWithCoord.sheetId)!=null?z:r,me={range:re.rangeWithCoord,unitId:(Z=re.rangeWithCoord.unitId)!=null?Z:t,sheetName:C(he)},fe=_e([me],s&&he!==r);H.unshift({token:fe[0],nodeType:I.sequenceNodeType.REFERENCE});const ge=Ee(H);h(ge,fe[0].length,w)}else{let re=0;const he=H.map(ce=>{var W,U,G;if(typeof ce=="string")return ce;if(ce.nodeType===I.sequenceNodeType.REFERENCE){const ee=I.deserializeRangeWithSheet(ce.token);if(ee.sheetName||(ee.sheetName=y),s&&((W=O.current.activeSheet)==null?void 0:W.getName())!==ee.sheetName)return ce.token;const X=x[re];if(re++,!X)return"";const ve=(U=X.rangeWithCoord.sheetId)!=null?U:r,Le={range:X.rangeWithCoord,unitId:(G=X.rangeWithCoord.unitId)!=null?G:t,sheetName:C(ve)};return _e([Le],s,y)[0]}return ce.token});let me="",ue;he.forEach((ce,W)=>{me+=ce,W===de&&(ue=me.length)});const fe=[];for(let ce=re;ce<=x.length-1;ce++){const W=x[ce],U=(ie=W.rangeWithCoord.sheetId)!=null?ie:r,G={range:W.rangeWithCoord,unitId:(Se=W.rangeWithCoord.unitId)!=null?Se:t,sheetName:C(U)},X=_e([G],s&&U!==r,y);fe.push(X[0])}const ge=H[H.length-1],be=ge&&(typeof ge=="string"?!1:ge.nodeType===I.sequenceNodeType.REFERENCE),Ie=`${me}${fe.length&&be?",":""}${fe.join(",")}`;h(Ie,!fe.length&&ue?ue:Ie.length,w)}},_=new c.DisposableCollection;return _.add(A.selectionMoving$.subscribe(x=>{F.current||T(x,!1)})),_.add(A.selectionMoveEnd$.subscribe(x=>{F.current||T(x,!0)})),()=>{_.dispose()}}},[A,l,s,e,p,R,r,t,C,y,h,O]),f.useEffect(()=>{if(n&&A&&l){const P=new c.DisposableCollection,T=(w,j)=>{let Y=0,V=0,H=!1;const{sheetName:de}=O.current,Q=p.current.map(z=>{var Z;if(typeof z=="string")return H||(V+=z.length),z;if(z.nodeType===I.sequenceNodeType.REFERENCE){const ie=I.deserializeRangeWithSheet(z.token);if(ie.unitId||(ie.unitId=t),ie.sheetName||(ie.sheetName=de),s&&((Z=O.current.activeSheet)==null?void 0:Z.getName())!==ie.sheetName)return H||(V+=z.token.length),z;if(Y===j){H=!0;const Se={...z,token:w};return s&&ie.sheetName!==de?Se.token=I.serializeRangeWithSheet(ie.sheetName,I.deserializeRangeWithSheet(w).range):Se.token=w,V+=Se.token.length,Y++,Se}return H||(V+=z.token.length),Y++,z}return H||(V+=z.token.length),z}),J=Ee(Q);h(J,-1,!0),M.current={result:J,offset:V}},_=()=>{P.dispose(),A.getSelectionControls().forEach((j,Y)=>{P.add(K.merge(j.selectionMoving$,j.selectionScaling$).pipe(Ke.map(V=>I.serializeRange(V)),Ke.distinctUntilChanged(),Ke.debounceTime(100)).subscribe(V=>{F.current=!0,T(V,Y)}))}),P.add(A.selectionMoveEnd$.subscribe(j=>{if(F.current=!1,M.current){const{result:Y,offset:V}=M.current;h(Y,V||-1,!0),M.current=void 0}}))},x=K.merge(l.input$,k.selectionSet$,A.selectionMoveEnd$).pipe(Ke.debounceTime(50)).subscribe(()=>{_()});return()=>{x.unsubscribe(),P.dispose()}}},[n,A,l,k.selectionSet$,O,p,h,s,t]),f.useEffect(()=>{if(a){const P=g.onCommandExecuted(T=>{if(T.id!==B.SetSelectionsOperation.id)return;const _=T.params;if(_.extra!=="formula-editor")return;const{selections:x}=_;if(x.length){const w=x[x.length-1];if(w){const j=w.range,Y=r,V={range:j,unitId:_.unitId===t?"":_.unitId,sheetName:_.subUnitId===Y?"":C(Y)},H=[...p.current],Q=_e([V],s,y)[0];let J=H[H.length-1];if(typeof J=="object"&&J.nodeType===I.sequenceNodeType.REFERENCE){J={...J},J.token=Q,J.endIndex=J.startIndex+Q.length,H[H.length-1]=J;const z=Ee(H);h(z,Ge(H),!0)}else{const z=Ge(H);H.push({nodeType:I.sequenceNodeType.REFERENCE,token:Q,startIndex:z,endIndex:z+Q.length});const Z=Ee(H);h(Z,Ge(H),!0)}}}});return()=>{P.dispose()}}},[g,C,h,s,a,p,y,r,t]),f.useEffect(()=>{if(!l)return;const P=u.textSelection$.subscribe(T=>{T.unitId===l.getEditorId()&&rn({unitId:t,subUnitId:r,refSelections:i.current,editor:l,refSelectionsService:k,refSelectionsRenderService:A,sheetSkeletonManagerService:L,themeService:S,univerInstanceService:m})});return()=>P.unsubscribe()},[u.textSelection$,l,i,A,k,p,L,r,S,t,m])},jr=(e,n,t)=>{const r=c.useDependency(I.LexerTreeBuilder),o=f.useRef(!0);f.useEffect(()=>{if(e){const i=setTimeout(()=>{o.current=!1},500);return()=>{clearTimeout(i)}}},[e]),f.useEffect(()=>{if(!o.current&&n){const i=r.checkIfAddBracket(t);n(i===0&&t.startsWith(I.operatorToken.EQUALS),`${t}`)}},[t,n])},Hr="univer-sheet-embedding-formula-editor-active",Ur="univer-sheet-embedding-formula-editor-wrap",Wr="univer-sheet-embedding-formula-editor-text",Br="univer-sheet-embedding-formula-editor-error",Vr="univer-sheet-embedding-formula-editor",Kr="univer-sheet-embedding-formula-editor-error-wrap",je={sheetEmbeddingFormulaEditorActive:Hr,sheetEmbeddingFormulaEditorWrap:Ur,sheetEmbeddingFormulaEditorText:Wr,sheetEmbeddingFormulaEditorError:Br,sheetEmbeddingFormulaEditor:Vr,sheetEmbeddingFormulaEditorErrorWrap:Kr},qr=(e,n=[],t)=>{const r=c.useDependency(Fe.IDescriptionService),[o,i]=f.useState([]),[s,a]=f.useState(""),l=f.useRef(-1),h=Ye({nodes:n}),d=()=>{i([]),a(""),l.current=-1};return f.useEffect(()=>{if(t&&e){const g=t.input$.pipe(K.debounceTime(300)).subscribe(()=>{const p=t.getSelectionRanges();if(p.length===1){const u=h.current.nodes,S=p[0];if(S.collapsed){const R=Xe(u,S.startOffset-1,!1);l.current=R;const N=u[R];if(N&&typeof N!="string"&&N.nodeType===I.sequenceNodeType.FUNCTION){l.current=R;const C=N.token,y=r.getSearchListByNameFirstLetter(C);i(y),a(C);return}}}l.current=-1,a(""),i(u=>u!=null&&u.length?[]:u)});return()=>{g.unsubscribe()}}},[t,e]),f.useEffect(()=>{e||d()},[e]),{searchList:o,searchText:s,handlerFormulaReplace:g=>{const p=[...h.current.nodes];if(l.current!==-1){const u=p.splice(l.current+1),S=p.pop()||"";let R=(typeof S=="string"?S.length:S.token.length)-g.length;return p.push(g),u[0]!==I.matchToken.OPEN_BRACKET&&(p.push(I.matchToken.OPEN_BRACKET),R--),{text:Ee([...p,...u]),offset:R}}},reset:d}},Yr="univer-formula-search-function",zr="univer-formula-search-function-item",Gr="univer-formula-search-function-item-name",Zr="univer-formula-search-function-item-name-light",Xr="univer-formula-search-function-item-desc",Jr="univer-formula-search-function-item-active",Me={formulaSearchFunction:Yr,formulaSearchFunctionItem:zr,formulaSearchFunctionItemName:Gr,formulaSearchFunctionItemNameLight:Zr,formulaSearchFunctionItemDesc:Xr,formulaSearchFunctionItemActive:Jr},Qr=()=>{},eo=f.forwardRef(to);function to(e,n){const{isFocus:t,sequenceNodes:r,onSelect:o,editor:i,onClose:s=Qr}=e,a=i.getEditorId(),l=c.useDependency(E.IShortcutService),h=c.useDependency(c.ICommandService),{searchList:d,searchText:m,handlerFormulaReplace:g,reset:p}=qr(t,r,i),u=f.useMemo(()=>!!d.length,[d]),S=f.useRef(),[R,N]=f.useState(0),C=f.useRef(!1),[y]=mn(a,u,[m,d]),b=Ye({searchList:d,active:R}),O=F=>{const M=g(F);M&&(p(),o(M))};function D(F){C.current&&N(F)}function A(){C.current&&N(-1)}f.useEffect(()=>{if(!d.length)return;const F=`sheet.formula-embedding-editor.search_function.${a}`,M=new c.DisposableCollection,P=T=>{const{searchList:_,active:x}=b.current;switch(T){case E.KeyCode.ARROW_UP:{N(w=>{const j=Math.max(0,w-1);return L(j),j});break}case E.KeyCode.ARROW_DOWN:{N(w=>{const j=Math.min(_.length-1,w+1);return L(j),j});break}case E.KeyCode.TAB:case E.KeyCode.ENTER:{const w=_[x];O(w.name);break}case E.KeyCode.ESC:{p(),s();break}}};return M.add(h.registerCommand({id:F,type:c.CommandType.OPERATION,handler(T,_){const{keyCode:x}=_;P(x)}})),[E.KeyCode.ARROW_UP,E.KeyCode.ARROW_DOWN,E.KeyCode.ENTER,E.KeyCode.ESC,E.KeyCode.TAB].map(T=>({id:F,binding:T,preconditions:()=>!0,priority:1e3,staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keyCode:T}})).forEach(T=>{M.add(l.registerShortcut(T))}),()=>{M.dispose()}},[d]);function L(F){var H;const M=(H=S.current)==null?void 0:H.querySelectorAll(`.${Me.formulaSearchFunctionItem}`)[F];if(!M)return;const P=M.parentNode;if(!P)return;const _=P.getBoundingClientRect().top,x=P.offsetHeight,w=M.getBoundingClientRect(),j=w.top,Y=w.height;if(j>=0&&j>_&&j-_+Y<=x)return;const V=M.offsetTop-(x-Y)/2;P.scrollTo({top:V,behavior:"smooth"})}const k=f.useMemo(()=>{let F="";return()=>{clearTimeout(F),C.current=!0,F=setTimeout(()=>{C.current=!1},300)}},[]);return d.length>0&&u&&v.jsx(E.RectPopup,{portal:!0,anchorRect$:y,direction:"vertical",children:v.jsx("ul",{className:Me.formulaSearchFunction,ref:F=>{S.current=F,n&&(n.current=F)},children:d.map((F,M)=>v.jsxs("li",{className:R===M?`
|
|
18
|
+
${Me.formulaSearchFunctionItem}
|
|
19
|
+
${Me.formulaSearchFunctionItemActive}
|
|
20
|
+
`:Me.formulaSearchFunctionItem,onMouseEnter:()=>D(M),onMouseLeave:A,onMouseMove:k,onClick:()=>{O(F.name),i&&i.focus()},children:[v.jsxs("span",{className:Me.formulaSearchFunctionItemName,children:[v.jsx("span",{className:Me.formulaSearchFunctionItemNameLight,children:F.name.substring(0,m.length)}),v.jsx("span",{children:F.name.slice(m.length)})]}),v.jsx("span",{className:Me.formulaSearchFunctionItemDesc,children:F.desc})]},F.name))})})}const no=e=>e.startsWith(I.operatorToken.EQUALS)?e.slice(1):"",dt=()=>{};function gn(e){var Ot,Dt;const{errorText:n,initValue:t,unitId:r,subUnitId:o,isFocus:i=!0,isSupportAcrossSheet:s=!1,onFocus:a=dt,onBlur:l=dt,onChange:h,onVerify:d,actions:m,className:g,editorId:p,moveCursor:u=!0,onFormulaSelectingChange:S,keyboradEventConfig:R,onMoveInEditor:N,resetSelectionOnBlur:C=!0,autoScrollbar:y=!0,isSingle:b=!0,disableSelectionOnClick:O=!1,disableContextMenu:D}=e,A=c.useDependency(ne.IEditorService),L=f.useRef(null),k=E.useEvent(h);m&&(m.handleOutClick=(oe,le)=>{L.current&&!L.current.contains(oe.target)&&le()});const F=E.useEvent(S),M=f.useRef(null),P=f.useRef(),T=P.current,[_,x]=f.useState(i),w=f.useRef(null),j=f.useMemo(()=>p!=null?p:c.createInternalEditorID(`${$.EMBEDDING_FORMULA_EDITOR}-${c.generateRandomId(4)}`),[]),Y=f.useMemo(()=>n!==void 0,[n]),V=c.useDependency(c.IUniverInstanceService),H=V.getUnit(j);c.useObservable(H==null?void 0:H.change$);const de=ct(),Q=c.BuildTextUtils.transform.getPlainText((Dt=(Ot=H==null?void 0:H.getBody())==null?void 0:Ot.dataStream)!=null?Dt:""),J=f.useMemo(()=>no(Q),[Q]),z=f.useMemo(()=>de(J),[J,de]),{isSelecting:Z}=Qn(j,_,O),ie=f.useRef(""),re=c.useDependency(q.IRenderManagerService).getRenderById(j),he=re==null?void 0:re.with(ne.DocSelectionRenderService),me=he==null?void 0:he.isFocusing,ue=f.useMemo(()=>V.getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_DOC),[V]),fe=c.useObservable(ue),ge=(fe==null?void 0:fe.getUnitId())===j,be=f.useRef([]),Ie=Z;E.useUpdateEffect(()=>{k(Q)},[Q,k]);const ce=on("="),W=Tt(r,o),U=E.useEvent((oe,le=!0,ye,ke)=>{if(!P.current)return;const we=ie.current;ie.current=oe;const _n=de(oe[0]==="="?oe.slice(1):""),At=ce(P.current,_n,le,we.slice(1)===oe&&we[0]==="=",ke);be.current=At,ye&&W(_?At:[],P.current)});f.useEffect(()=>{_&&U(Q,!1,!0)},[Q,_,U]),jr(_,d,Q);const G=nn(T),ee=un(_,r,o);f.useEffect(()=>{F(Z)},[F,Z]),ne.useKeyboardEvent(_,R,T),f.useLayoutEffect(()=>{let oe;if(w.current){oe=A.register({autofocus:!0,editorUnitId:j,initialSnapshot:{id:j,body:{dataStream:`${t}\r
|
|
21
|
+
`,textRuns:[],customBlocks:[],customDecorations:[],customRanges:[]},documentStyle:{}}},w.current);const le=A.getEditor(j);P.current=le,U(t,!1,!0)}return()=>{oe==null||oe.dispose()}},[]),f.useLayoutEffect(()=>{i?(x(i),G()):(C&&(T==null||T.blur(),ee()),x(i))},[i,T,G,ee,C]);const{checkScrollBar:X}=ne.useResize(T,b,y);bt(_,!!(Z&&ge),r,D),an(_&&u,Ie,T,N);const ve=E.useEvent((oe,le,ye)=>{me&&(U(`=${oe}`,!0,ye,[{startOffset:le+1,endOffset:le+1,collapsed:!0}]),ye&&(G(),le!==-1&&setTimeout(()=>{const ke={startOffset:le+1,endOffset:le+1},we=T==null?void 0:T.render.with(ne.DocBackScrollRenderController);we==null||we.scrollToRange({...ke,collapsed:!0})},50),X()))});$r(_&&!!(Z&&ge),_,r,o,z,be,s,!!Ie,T,ve),Mt(_&&!!(Z&&ge),r,s,x,l,dt);const Le=oe=>{if(oe){const le=T==null?void 0:T.getSelectionRanges();if(le&&le.length===1){const ye=le[0];if(ye.collapsed){const ke=oe.offset;setTimeout(()=>{T==null||T.setSelectionRanges([{startOffset:ye.startOffset-ke,endOffset:ye.endOffset-ke}])},30)}}G(),U(`=${oe.text}`)}},Ne=()=>{x(!0),a(),G()};return v.jsxs("div",{className:vt(je.sheetEmbeddingFormulaEditor,g),children:[v.jsx("div",{className:vt(je.sheetEmbeddingFormulaEditorWrap,{[je.sheetEmbeddingFormulaEditorActive]:_,[je.sheetEmbeddingFormulaEditorError]:Y}),ref:L,children:v.jsx("div",{className:je.sheetEmbeddingFormulaEditorText,ref:w,onMouseUp:Ne})}),n!==void 0?v.jsx("div",{className:je.sheetEmbeddingFormulaEditorErrorWrap,children:n}):null,T?v.jsx(Ar,{editor:T,isFocus:_,formulaText:Q,onClose:()=>G()}):null,T?v.jsx(eo,{isFocus:_,sequenceNodes:z,onSelect:Le,ref:M,editor:T}):null]})}const ro="sheets-formula-ui.base.config",Ht={};function oo(e){return e.getContextValue(c.FOCUSING_DOC)&&e.getContextValue(c.FOCUSING_UNIVER_EDITOR)}function pn(e,n=!1){return!n&&!(c.isFormulaString(e==null?void 0:e.f)||c.isFormulaId(e==null?void 0:e.si))?null:typeof(e==null?void 0:e.v)=="string"&&I.ERROR_TYPE_SET.has(e.v)?e.v:null}var so=Object.defineProperty,io=Object.getOwnPropertyDescriptor,co=(e,n,t,r)=>{for(var o=r>1?void 0:r?io(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&so(n,t,o),o},We=(e,n)=>(t,r)=>n(t,r,e);const ht="SHEET_FORMULA_ALERT",ao={[I.ErrorType.DIV_BY_ZERO]:"divByZero",[I.ErrorType.NAME]:"name",[I.ErrorType.VALUE]:"value",[I.ErrorType.NUM]:"num",[I.ErrorType.NA]:"na",[I.ErrorType.CYCLE]:"cycle",[I.ErrorType.REF]:"ref",[I.ErrorType.SPILL]:"spill",[I.ErrorType.CALC]:"calc",[I.ErrorType.ERROR]:"error",[I.ErrorType.CONNECT]:"connect",[I.ErrorType.NULL]:"null"};let _t=class extends c.Disposable{constructor(e,n,t,r,o,i){super(),this._context=e,this._hoverManagerService=n,this._cellAlertManagerService=t,this._localeService=r,this._formulaDataModel=o,this._zenZoneService=i,this._init()}_init(){this._initCellAlertPopup(),this._initZenService()}_initCellAlertPopup(){this.disposeWithMe(this._hoverManagerService.currentCell$.pipe(K.debounceTime(100)).subscribe(e=>{var n,t,r,o,i;if(e){const a=this._context.unit.getActiveSheet();if(!a)return;const l=a.getCell(e.location.row,e.location.col),h=(o=(r=(t=(n=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:n[e.location.unitId])==null?void 0:t[e.location.subUnitId])==null?void 0:r[e.location.row])==null?void 0:o[e.location.col];if(c.isICellData(l)){const d=pn(l,!!h);if(!d){this._hideAlert();return}const m=this._cellAlertManagerService.currentAlert.get(ht),g=(i=m==null?void 0:m.alert)==null?void 0:i.location;if(g&&g.row===e.location.row&&g.col===e.location.col&&g.subUnitId===e.location.subUnitId&&g.unitId===e.location.unitId)return;this._cellAlertManagerService.showAlert({type:$.CellAlertType.ERROR,title:this._localeService.t("formula.error.title"),message:this._localeService.t(`formula.error.${ao[d]}`),location:e.location,width:200,height:74,key:ht});return}}this._hideAlert()}))}_initZenService(){this.disposeWithMe(this._zenZoneService.visible$.subscribe(e=>{e&&this._hideAlert()}))}_hideAlert(){this._cellAlertManagerService.removeAlert(ht)}};_t=co([We(1,c.Inject($.HoverManagerService)),We(2,c.Inject($.CellAlertManagerService)),We(3,c.Inject(c.LocaleService)),We(4,c.Inject(I.FormulaDataModel)),We(5,E.IZenZoneService)],_t);var lo=Object.defineProperty,uo=Object.getOwnPropertyDescriptor,fo=(e,n,t,r)=>{for(var o=r>1?void 0:r?uo(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&lo(n,t,o),o},Ut=(e,n)=>(t,r)=>n(t,r,e);let Je=class extends c.Disposable{constructor(e,n){super(),this._autoFillService=e,this._lexerTreeBuilder=n,this._registerAutoFill()}_registerAutoFill(){const e={type:$.DATA_TYPE.FORMULA,priority:1001,match:n=>c.isFormulaString(n==null?void 0:n.f)||c.isFormulaId(n==null?void 0:n.si),isContinue:(n,t)=>n.type===$.DATA_TYPE.FORMULA,applyFunctions:{[$.APPLY_TYPE.COPY]:(n,t,r,o)=>{const{data:i,index:s}=n;return this._fillCopyFormula(i,t,r,s,o)}}};this._autoFillService.registerRule(e)}_fillCopyFormula(e,n,t,r,o){var l,h;const i=mo(o),s=[],a=new Map;for(let d=1;d<=n;d++){const m=(d-1)%e.length,g=c.Tools.deepClone(e[m]);if(g){const p=((l=e[m])==null?void 0:l.f)||"",u=((h=e[m])==null?void 0:h.si)||"",S=c.isFormulaString(p);if(c.isFormulaId(u))g.si=u,g.f=null,g.v=null,g.p=null,g.t=null,s.push(g);else if(S){let N=a.get(m);if(N)g.si=N,g.f=null,g.v=null,g.p=null,g.t=null;else{N=c.Tools.generateRandomId(6),a.set(m,N);const{offsetX:C,offsetY:y}=ho(i,n,t),b=this._lexerTreeBuilder.moveFormulaRefOffset(p,C,y);g.si=N,g.f=b,g.v=null,g.p=null,g.t=null}s.push(g)}}}return s}};Je=fo([Ut(0,$.IAutoFillService),Ut(1,c.Inject(I.LexerTreeBuilder))],Je);function ho(e,n,t){let r=0,o=0;switch(t){case c.Direction.UP:o=-e*n;break;case c.Direction.RIGHT:r=e;break;case c.Direction.DOWN:o=e;break;case c.Direction.LEFT:r=-e*n;break}return{offsetX:r,offsetY:o}}function mo(e){let n=0;for(const t in e)e[t].forEach(r=>{n+=r.data.length});return n}var go=Object.defineProperty,po=Object.getOwnPropertyDescriptor,So=(e,n,t,r)=>{for(var o=r>1?void 0:r?po(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&go(n,t,o),o},Be=(e,n)=>(t,r)=>n(t,r,e);const vo="default-paste-formula";let Qe=class extends c.Disposable{constructor(e,n,t,r,o){super(),this._currentUniverSheet=e,this._lexerTreeBuilder=n,this._sheetClipboardService=t,this._injector=r,this._formulaDataModel=o,this._initialize()}_initialize(){this._registerClipboardHook()}_registerClipboardHook(){this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteFormulaHook())),this.disposeWithMe(this._sheetClipboardService.addClipboardHook(this._pasteWithFormulaHook()))}_pasteFormulaHook(){return{id:$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA,priority:10,specialPasteInfo:{label:"specialPaste.formula"},onPasteCells:(e,n,t,r)=>this._onPasteCells(e,n,t,r,!0)}}_pasteWithFormulaHook(){return{id:vo,priority:10,onPasteCells:(e,n,t,r)=>this._onPasteCells(e,n,t,r,!1)}}_onPasteCells(e,n,t,r,o){var g;if([$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMAT,$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_COL_WIDTH].includes(r.pasteType))return{undos:[],redos:[]};const s=this._currentUniverSheet.getCurrentUnitForType(c.UniverInstanceType.UNIVER_SHEET),a=n.unitId||s.getUnitId(),l=n.subUnitId||((g=s.getActiveSheet())==null?void 0:g.getSheetId());if(!a||!l)return{undos:[],redos:[]};const h=n.range,d=t,m={copyType:r.copyType||$.COPY_TYPE.COPY,copyRange:e==null?void 0:e.range,pasteType:r.pasteType};return this._injector.invoke(p=>Co(a,l,h,d,p,m,this._lexerTreeBuilder,this._formulaDataModel,o,e))}};Qe=So([Be(0,c.IUniverInstanceService),Be(1,c.Inject(I.LexerTreeBuilder)),Be(2,$.ISheetClipboardService),Be(3,c.Inject(c.Injector)),Be(4,c.Inject(I.FormulaDataModel))],Qe);function Co(e,n,t,r,o,i,s,a,l=!1,h){const d=[],m=[],g=Ro(e,n,t,r,i,s,a,h),p={unitId:e,subUnitId:n,cellValue:g.getData()};d.push({id:B.SetRangeValuesMutation.id,params:p});const u=B.SetRangeValuesUndoMutationFactory(o,p);return m.push({id:B.SetRangeValuesMutation.id,params:u}),{undos:m,redos:d}}function Ro(e,n,t,r,o,i,s,a){return a?o.pasteType===$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_VALUE?Eo(e,n,t,r,s,a):o.pasteType===$.PREDEFINED_HOOK_NAME.SPECIAL_PASTE_FORMULA?Io(e,n,t,r,i,s,a):yo(e,n,t,r,i,s,a):_o(e,n,t,r,s)}function _o(e,n,t,r,o){const i=new c.ObjectMatrix,s=o.getSheetFormulaData(e,n);return r.forValue((a,l,h)=>{var p;const d=t.rows[a],m=t.cols[l],g={};c.isFormulaString(h.v)?(g.v=null,g.f=`${h.v}`,g.si=null,g.p=null,i.setValue(d,m,g)):(p=s==null?void 0:s[d])!=null&&p[m]&&(g.v=h.v,g.f=null,g.si=null,g.p=null,i.setValue(d,m,g))}),i}function Eo(e,n,t,r,o,i){var h,d;const s=new c.ObjectMatrix,a=(d=(h=o.getArrayFormulaCellData())==null?void 0:h[i.unitId])==null?void 0:d[i.subUnitId],l=o.getSheetFormulaData(e,n);return r.forValue((m,g,p)=>{var y,b;const u=i.range.rows[m%i.range.rows.length],S=i.range.cols[g%i.range.cols.length],R=t.rows[m],N=t.cols[g],C={};if(c.isFormulaString(p.f)||c.isFormulaId(p.si))C.v=p.v,C.f=null,C.si=null,C.p=null,s.setValue(R,N,C);else if((y=a==null?void 0:a[u])!=null&&y[S]){const O=a[u][S];C.v=O.v,C.f=null,C.si=null,C.p=null,s.setValue(R,N,C)}else if((b=l==null?void 0:l[R])!=null&&b[N]){if(C.v=p.v,C.f=null,C.si=null,C.p=null,p.p){const O=Sn(p);O&&(C.v=O)}s.setValue(R,N,C)}}),s}function Io(e,n,t,r,o,i,s){const a=new c.ObjectMatrix,l=new Map;return r.forValue((h,d,m)=>{const g=t.rows[h],p=t.cols[d],u={};if(c.isFormulaId(m.si)){if(s.unitId!==e||s.subUnitId!==n){const S=i.getFormulaStringByCell(s.range.rows[h%s.range.rows.length],s.range.cols[d%s.range.cols.length],s.subUnitId,s.unitId),R=t.cols[d]-s.range.cols[d%s.range.cols.length],N=t.rows[h]-s.range.rows[h%s.range.rows.length],C=o.moveFormulaRefOffset(S||"",R,N);u.si=null,u.f=C}else u.si=m.si,u.f=null;u.v=null,u.p=null,a.setValue(g,p,u)}else if(c.isFormulaString(m.f)){const S=`${h%s.range.rows.length}_${d%s.range.cols.length}`;let R=l.get(S);if(R)u.si=R,u.f=null;else{R=c.Tools.generateRandomId(6),l.set(S,R);const N=t.cols[d]-s.range.cols[d%s.range.cols.length],C=t.rows[h]-s.range.rows[h%s.range.rows.length],y=o.moveFormulaRefOffset(m.f||"",N,C);u.si=R,u.f=y}u.v=null,u.p=null,a.setValue(g,p,u)}else{if(u.v=m.v,u.f=null,u.si=null,u.p=null,m.p){const S=Sn(m);S&&(u.v=S)}a.setValue(g,p,u)}}),a}function yo(e,n,t,r,o,i,s){const a=new c.ObjectMatrix,l=new Map,h=i.getSheetFormulaData(e,n);return r.forValue((d,m,g)=>{var R;const p=t.rows[d],u=t.cols[m],S={};if(c.isFormulaId(g.si)){if(s.unitId!==e||s.subUnitId!==n){const N=i.getFormulaStringByCell(s.range.rows[d%s.range.rows.length],s.range.cols[m%s.range.cols.length],s.subUnitId,s.unitId),C=t.cols[m]-s.range.cols[m%s.range.cols.length],y=t.rows[d]-s.range.rows[d%s.range.rows.length],b=o.moveFormulaRefOffset(N||"",C,y);S.si=null,S.f=b}else S.si=g.si,S.f=null;S.v=null,S.p=null,a.setValue(p,u,S)}else if(c.isFormulaString(g.f)){const N=`${d%s.range.rows.length}_${m%s.range.cols.length}`;let C=l.get(N);if(C)S.si=C,S.f=null;else{C=c.Tools.generateRandomId(6),l.set(N,C);const y=t.cols[m]-s.range.cols[m%s.range.cols.length],b=t.rows[d]-s.range.rows[d%s.range.rows.length],O=o.moveFormulaRefOffset(g.f||"",y,b);S.si=C,S.f=O}S.v=null,S.p=null,a.setValue(p,u,S)}else(R=h==null?void 0:h[p])!=null&&R[u]&&(S.v=g.v,S.f=null,S.si=null,S.p=g.p,a.setValue(p,u,S))}),a}function Sn(e){if(e!=null&&e.p){const n=e==null?void 0:e.p.body;if(n==null)return;const t=n.dataStream;return t.substring(t.length-2,t.length)===c.DEFAULT_EMPTY_DOCUMENT_VALUE?t.substring(0,t.length-2):t}}var To=Object.defineProperty,bo=Object.getOwnPropertyDescriptor,No=(e,n,t,r)=>{for(var o=r>1?void 0:r?bo(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&To(n,t,o),o},De=(e,n)=>(t,r)=>n(t,r,e);let et=class extends c.Disposable{constructor(n,t,r,o,i,s,a,l){super();te(this,"_previousShape");te(this,"_skeleton");this._context=n,this._sheetInterceptorService=t,this._formulaDataModel=r,this._themeService=o,this._renderManagerService=i,this._sheetSkeletonManagerService=s,this._commandService=a,this._logService=l,this._initSkeletonChangeListener(),this._initInterceptorEditorStart(),this._commandExecutedListener()}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(n=>{var t,r;if(n==null)this._logService.debug("[FormulaEditorShowController]: should not receive currentSkeleton$ as null!");else{const{skeleton:o}=n,i=(r=(t=this._skeleton)==null?void 0:t.worksheet)==null?void 0:r.getSheetId();if(this._changeRuntime(o),i!==o.worksheet.getSheetId())this._removeArrayFormulaRangeShape();else{const{unitId:s,sheetId:a}=n;this._updateArrayFormulaRangeShape(s,a)}}}))}_changeRuntime(n){this._skeleton=n}_initInterceptorEditorStart(){this.disposeWithMe(c.toDisposable(this._sheetInterceptorService.writeCellInterceptor.intercept(B.BEFORE_CELL_EDIT,{handler:(n,t,r)=>{var u,S,R,N;const{row:o,col:i,unitId:s,subUnitId:a,worksheet:l}=t,h=this._formulaDataModel.getArrayFormulaRange(),d=this._formulaDataModel.getArrayFormulaCellData();if(this._removeArrayFormulaRangeShape(),n==null)return r(n);let m=null;const g=this._formulaDataModel.getFormulaStringByCell(o,i,a,s);if(g!==null&&(m={f:g}),n.v!=null&&n.v!==""&&((R=(S=(u=d[s])==null?void 0:u[a])==null?void 0:S[o])==null?void 0:R[i])==null)return m?{...n,...m}:r(n);const p=(N=h==null?void 0:h[s])==null?void 0:N[a];return p!=null&&(m=this._displayArrayFormulaRangeShape(p,o,i,s,a,l,m)),m?{...n,...m}:r(n)}})))}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((n,t)=>{(n.id===I.SetFormulaCalculationResultMutation.id||n.id===I.SetArrayFormulaDataMutation.id&&t&&t.remove)&&this._removeArrayFormulaRangeShape()})),this.disposeWithMe(this._commandService.beforeCommandExecuted(n=>{B.SetWorksheetRowAutoHeightMutation.id===n.id&&requestIdleCallback(()=>{const t=n.params,{unitId:r,subUnitId:o,rowsAutoHeightInfo:i}=t;this._refreshArrayFormulaRangeShapeByRow(r,o,i)})}))}_displayArrayFormulaRangeShape(n,t,r,o,i,s,a){const l=this._formulaDataModel.getSheetFormulaData(o,i);return new c.ObjectMatrix(n).forValue((h,d,m)=>{var R;if(m==null)return!0;const{startRow:g,startColumn:p,endRow:u,endColumn:S}=m;if(h===t&&d===r)return this._createArrayFormulaRangeShape(m,o),!1;if(t>=g&&t<=u&&r>=p&&r<=S){const N=s.getCell(g,p);if((N==null?void 0:N.v)===I.ErrorType.SPILL)return;const C=(R=l==null?void 0:l[h])==null?void 0:R[d];return C==null||C.f==null?!0:(a==null&&(a={f:C.f,isInArrayFormulaRange:!0}),this._createArrayFormulaRangeShape(m,o),!1)}}),a}_createArrayFormulaRangeShape(n,t){const r=this._renderManagerService.getRenderById(t),o=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!r||!o)return;const{scene:i}=r;if(!i)return;const s=this._themeService.getCurrentTheme(),a={range:n,primary:null,style:{strokeWidth:1,stroke:s.hyacinth700,fill:new c.ColorKit(s.colorWhite).setAlpha(0).toString(),widgets:{}}},l=$.attachSelectionWithCoord(a,o),{rowHeaderWidth:h,columnHeaderHeight:d}=o,m=new $.SelectionControl(i,$.SELECTION_SHAPE_DEPTH.FORMULA_EDITOR_SHOW,this._themeService,{highlightHeader:!1,rowHeaderWidth:h,columnHeaderHeight:d});m.updateRangeBySelectionWithCoord(l),m.setEvent(!1),this._previousShape=m}_removeArrayFormulaRangeShape(){this._previousShape!=null&&(this._previousShape.dispose(),this._previousShape=null)}_refreshArrayFormulaRangeShape(n,t){if(this._previousShape){const{startRow:r,endRow:o,startColumn:i,endColumn:s}=this._previousShape.getRange(),a={startRow:r,endRow:o,startColumn:i,endColumn:s};this._removeArrayFormulaRangeShape(),this._createArrayFormulaRangeShape(a,n)}}_checkCurrentSheet(n,t){const r=this._sheetSkeletonManagerService.getCurrentSkeleton();if(!r)return!1;const o=r.worksheet;return o?o.unitId===n&&o.getSheetId()===t:!1}_updateArrayFormulaRangeShape(n,t){this._checkCurrentSheet(n,t)&&this._previousShape&&this._refreshArrayFormulaRangeShape(n)}_refreshArrayFormulaRangeShapeByRow(n,t,r){if(!this._checkCurrentSheet(n,t)||!this._previousShape)return;const{startRow:o,endRow:i,startColumn:s,endColumn:a}=this._previousShape.getRange();for(let l=0;l<r.length;l++){const{row:h}=r[l];if(o>=h){const d={startRow:o,endRow:i,startColumn:s,endColumn:a};this._refreshArrayFormulaRangeShape(n,d);break}}}};et=No([De(1,c.Inject(B.SheetInterceptorService)),De(2,c.Inject(I.FormulaDataModel)),De(3,c.Inject(c.ThemeService)),De(4,q.IRenderManagerService),De(5,c.Inject($.SheetSkeletonManagerService)),De(6,c.ICommandService),De(7,c.ILogService)],et);var Mo=Object.defineProperty,xo=Object.getOwnPropertyDescriptor,Fo=(e,n,t,r)=>{for(var o=r>1?void 0:r?xo(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&Mo(n,t,o),o},Wt=(e,n)=>(t,r)=>n(t,r,e);const Oo={tl:{size:6,color:"#409f11"}};let tt=class extends c.RxDisposable{constructor(e,n){super(),this._sheetInterceptorService=e,this._formulaDataModel=n,this.disposeWithMe(this._sheetInterceptorService.intercept(B.INTERCEPTOR_POINT.CELL_CONTENT,{effect:c.InterceptorEffectEnum.Style,handler:(t,r,o)=>{var a,l,h,d;const i=(d=(h=(l=(a=this._formulaDataModel.getArrayFormulaCellData())==null?void 0:a[r.unitId])==null?void 0:l[r.subUnitId])==null?void 0:h[r.row])==null?void 0:d[r.col];return pn(t,!!i)?o({...t,markers:{...t==null?void 0:t.markers,...Oo}}):o(t)},priority:10}))}};tt=Fo([Wt(0,c.Inject(B.SheetInterceptorService)),Wt(1,c.Inject(I.FormulaDataModel))],tt);function Do(){const e=c.useDependency(Fe.TriggerCalculationController),n=c.useDependency(c.ICommandService),t=c.useObservable(e.progress$),r=f.useCallback(()=>{n.executeCommand(I.SetFormulaCalculationStopMutation.id)},[n]),o=f.useCallback(()=>{e.clearProgress()},[e]);return v.jsx(E.ProgressBar,{progress:t,onTerminate:r,onClearProgress:o})}const Ao=(e,n=100)=>{f.useEffect(()=>{let t=null;const r=()=>{t===null&&(t=window.setTimeout(()=>{e(),t=null},n))};return window.addEventListener("scroll",r),window.addEventListener("resize",r),()=>{t!==null&&clearTimeout(t),window.removeEventListener("scroll",r),window.removeEventListener("resize",r)}},[e,n])},Po="univer-formula-help-function",Lo="univer-formula-help-function-title",ko="univer-formula-help-function-title-icons",wo="univer-formula-help-function-title-icon",$o="univer-formula-help-function-content",jo="univer-formula-help-function-content-inner",Ho="univer-formula-help-function-content-params",Uo="univer-formula-help-function-content-params-title",Wo="univer-formula-help-function-content-params-detail",Bo="univer-formula-help-function-active",Vo="univer-formula-help-decorator",Ko="univer-formula-help-param",qo="univer-formula-help-param-prefix",Yo="univer-formula-help-param-item",zo="univer-formula-help-param-active",se={formulaHelpFunction:Po,formulaHelpFunctionTitle:Lo,formulaHelpFunctionTitleIcons:ko,formulaHelpFunctionTitleIcon:wo,formulaHelpFunctionContent:$o,formulaHelpFunctionContentInner:jo,formulaHelpFunctionContentParams:Ho,formulaHelpFunctionContentParamsTitle:Uo,formulaHelpFunctionContentParamsDetail:Wo,formulaHelpFunctionActive:Bo,formulaHelpDecorator:Vo,formulaHelpParam:Ko,formulaHelpParamPrefix:qo,formulaHelpParamItem:Yo,formulaHelpParamActive:zo};function Go(){const[e,n]=f.useState(!1),[t,r]=f.useState(!0),[o,i]=f.useState(!0),[s,a]=f.useState(0),[l,h]=f.useState([0,0]),[d,m]=f.useState({left:0,top:0}),[g,p]=f.useState(null),u=c.useDependency(ze),S=c.useDependency(c.LocaleService),R=S.t("formula.prompt.required"),N=S.t("formula.prompt.optional"),C=c.useDependency(c.IUniverInstanceService),y=c.useDependency(ne.IEditorService),b=c.useDependency(E.ISidebarService),O=c.useInjector();Ao(D),f.useEffect(()=>{const F=u.help$.subscribe(P=>{const{visible:T,paramIndex:_,functionInfo:x}=P;if(!T){n(T);return}const w=A();if(w==null)return;const{left:j,top:Y,height:V}=w;x.description===""&&x.functionParameter.length===0||(h([j,Y+V]),a(_),p(x),m({left:j,top:Y}),n(T))}),M=b.scrollEvent$.pipe(K.throttleTime(100)).subscribe(D);return()=>{F==null||F.unsubscribe(),M.unsubscribe()}},[]);function D(){if(!o)return;const F=A();if(F==null)return;const{left:M,top:P,height:T}=F;h([M,P+T])}function A(){const F=C.getCurrentUniverDocInstance();if(!F)return;const M=F.getUnitId();if(!y.isEditor(M))return;const P=y.getEditor(M);return P==null?void 0:P.getBoundingClientRect()}function L(F){a(F)}function k(){i(!o),O.get(E.ILayoutService).focus()}return v.jsx(v.Fragment,{children:o?v.jsx(pe.Popup,{visible:e,offset:l,children:g?v.jsxs("div",{className:se.formulaHelpFunction,children:[v.jsxs("div",{className:se.formulaHelpFunctionTitle,children:[v.jsx(Zo,{prefix:g.functionName,value:g.functionParameter,active:s,onClick:L}),v.jsxs("div",{className:se.formulaHelpFunctionTitleIcons,children:[v.jsx("div",{className:se.formulaHelpFunctionTitleIcon,style:{transform:t?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:()=>r(!t),children:v.jsx(yt,{})}),v.jsx("div",{className:se.formulaHelpFunctionTitleIcon,onClick:k,children:v.jsx(it,{})})]})]}),v.jsx("div",{className:se.formulaHelpFunctionContent,style:{height:t?"unset":0,padding:t?"revert-layer":0},children:v.jsxs("div",{className:se.formulaHelpFunctionContentInner,children:[v.jsx(mt,{title:S.t("formula.prompt.helpExample"),value:`${g.functionName}(${g.functionParameter.map(F=>F.example).join(",")})`}),v.jsx(mt,{title:S.t("formula.prompt.helpAbstract"),value:g.description}),g&&g.functionParameter&&g.functionParameter.map((F,M)=>v.jsx(mt,{className:s===M?se.formulaHelpFunctionActive:"",title:F.name,value:`${F.require?R:N} ${F.detail}`},M))]})})]}):v.jsx(v.Fragment,{})}):e?v.jsx("div",{className:se.formulaHelpDecorator,onClick:()=>i(!o),style:{left:d.left-24,top:d.top},children:v.jsx(Jt,{})}):v.jsx(v.Fragment,{})})}const mt=e=>v.jsxs("div",{className:se.formulaHelpFunctionContentParams,children:[v.jsx("div",{className:`
|
|
22
|
+
${se.formulaHelpFunctionContentParamsTitle}
|
|
23
|
+
${e.className}
|
|
24
|
+
`,children:e.title}),v.jsx("div",{className:se.formulaHelpFunctionContentParamsDetail,children:e.value})]}),Zo=e=>{const{prefix:n,value:t,active:r,onClick:o}=e;return v.jsxs("div",{className:se.formulaHelpParam,children:[v.jsxs("span",{className:se.formulaHelpParamPrefix,children:[n,"("]}),t&&t.map((i,s)=>v.jsxs("span",{className:se.formulaHelpParamItem,children:[v.jsx("span",{className:r===s?se.formulaHelpFunctionActive:se.formulaHelpParamActive,onClick:()=>o(s),children:xt(i)}),s===t.length-1?"":","]},s)),")"]})},Xo="univer-formula-search-function",Jo="univer-formula-search-function-item",Qo="univer-formula-search-function-item-name",es="univer-formula-search-function-item-name-light",ts="univer-formula-search-function-item-desc",ns="univer-formula-search-function-item-active",xe={formulaSearchFunction:Xo,formulaSearchFunctionItem:Jo,formulaSearchFunctionItemName:Qo,formulaSearchFunctionItemNameLight:es,formulaSearchFunctionItemDesc:ts,formulaSearchFunctionItemActive:ns};function rs(){const[e,n]=f.useState(!1),[t,r]=f.useState(0),[o,i]=f.useState([0,0]),[s,a]=f.useState([]),[l,h]=f.useState(""),d=f.useRef(null),m=c.useDependency(ze),g=c.useDependency(c.IUniverInstanceService),p=c.useDependency(ne.IEditorService);f.useEffect(()=>{let C=[],y=0;const b=m.search$.subscribe(A=>{const{visible:L,searchText:k,searchList:F}=A;if(!L){n(L);return}const M=u();if(M==null)return;const{left:P,top:T,height:_}=M;h(k),a(F),C=F,i([P,T+_]),n(L),r(0),y=0}),O=m.navigate$.subscribe(A=>{const{direction:L}=A;if(L===c.Direction.UP){let k=y-1;k=k<0?C.length-1:k,r(k),y=k}else if(L===c.Direction.DOWN){let k=y+1;k=k>=C.length?0:k,r(k),y=k}N(y)}),D=m.accept$.subscribe(A=>{const L=C[y].name;m.acceptFormulaName(L)});return()=>{b==null||b.unsubscribe(),O==null||O.unsubscribe(),D==null||D.unsubscribe()}},[]);function u(){const y=g.getCurrentUniverDocInstance().getUnitId();if(!p.isEditor(y))return;const b=p.getEditor(y);return b==null?void 0:b.getBoundingClientRect()}function S(C){r(C)}function R(){r(-1)}function N(C){var P;const y=(P=d.current)==null?void 0:P.querySelectorAll(`.${xe.formulaSearchFunctionItem}`)[C];if(!y)return;const b=y.parentNode;if(!b)return;const D=b.getBoundingClientRect().top,A=b.offsetHeight,L=y.getBoundingClientRect(),k=L.top,F=L.height;if(k>=0&&k>D&&k-D+F<=A)return;const M=y.offsetTop-(A-F)/2;b.scrollTo({top:M,behavior:"smooth"})}return s.length>0&&v.jsx(pe.Popup,{visible:e,offset:o,children:v.jsx("ul",{className:xe.formulaSearchFunction,ref:d,children:s.map((C,y)=>v.jsxs("li",{className:t===y?`
|
|
25
|
+
${xe.formulaSearchFunctionItem}
|
|
26
|
+
${xe.formulaSearchFunctionItemActive}
|
|
27
|
+
`:xe.formulaSearchFunctionItem,onMouseEnter:()=>S(y),onMouseLeave:R,onClick:()=>m.acceptFormulaName(C.name),children:[v.jsxs("span",{className:xe.formulaSearchFunctionItemName,children:[v.jsx("span",{className:xe.formulaSearchFunctionItemNameLight,children:C.name.substring(0,l.length)}),v.jsx("span",{children:C.name.slice(l.length)})]}),v.jsx("span",{className:xe.formulaSearchFunctionItemDesc,children:C.desc})]},y))})})}function os(){return v.jsxs(v.Fragment,{children:[v.jsx(rs,{}),v.jsx(Go,{})]})}const ss="univer-formula-more-functions",is="univer-formula-more-functions-operation",Bt={formulaMoreFunctions:ss,formulaMoreFunctionsOperation:is};function vn(e){const{prefix:n,value:t}=e;return v.jsxs("div",{children:[v.jsxs("span",{children:[n,"("]}),t&&t.map((r,o)=>v.jsxs("span",{children:[v.jsx("span",{children:xt(r)}),o===t.length-1?"":","]},o)),")"]})}const cs="univer-formula-function-params",as="univer-formula-function-params-title",ls="univer-formula-function-params-detail",gt={formulaFunctionParams:cs,formulaFunctionParamsTitle:as,formulaFunctionParamsDetail:ls};function qe(e){const{className:n,value:t,title:r}=e;return v.jsxs("div",{className:gt.formulaFunctionParams,children:[v.jsx("div",{className:`
|
|
28
|
+
${gt.formulaFunctionParamsTitle}
|
|
29
|
+
${n}
|
|
30
|
+
`,children:r}),v.jsx("div",{className:gt.formulaFunctionParamsDetail,children:t})]})}const us="univer-formula-input-params-list",fs="univer-formula-input-params-list-item-name",ds="univer-formula-input-params-list-item-selector",Ve={formulaInputParamsList:us,formulaInputParamsListItemName:fs,formulaInputParamsListItemSelector:ds};function hs(e){const{functionInfo:n,onChange:t}=e;if(!n)return null;f.useState([]);const[r,o]=f.useState(n.functionParameter),[i,s]=f.useState(-1);return v.jsxs("div",{className:Ve.formulaInputParams,children:[v.jsx("div",{className:Ve.formulaInputParamsList,children:r.map((a,l)=>v.jsxs("div",{children:[v.jsx("div",{className:Ve.formulaInputParamsListItemName,children:a.name}),v.jsx("div",{className:Ve.formulaInputParamsListItemSelector})]},l))}),v.jsx("div",{className:Ve.formulaInputParamsInfo,children:v.jsx(qe,{title:i===-1?v.jsx(vn,{prefix:n.functionName,value:r}):r[i].name,value:i===-1?n.description:r[i].detail})})]})}const ms="univer-formula-select-function-select",gs="univer-formula-select-function-result",ps="univer-formula-select-function-result-item",Ss="univer-formula-select-function-result-item-name-light",vs="univer-formula-select-function-result-item-selected",Cs="univer-formula-select-function-result-item-active",Rs="univer-formula-select-function-content",Te={formulaSelectFunctionSelect:ms,formulaSelectFunctionResult:gs,formulaSelectFunctionResultItem:ps,formulaSelectFunctionResultItemNameLight:Ss,formulaSelectFunctionResultItemSelected:vs,formulaSelectFunctionResultItemActive:Cs,formulaSelectFunctionContent:Rs};function _s(e){const{onChange:n}=e,t="-1",[r,o]=f.useState(""),[i,s]=f.useState([]),[a,l]=f.useState(0),[h,d]=f.useState(t),[m,g]=f.useState(0),[p,u]=f.useState(null),S=c.useDependency(Fe.IDescriptionService),R=c.useDependency(c.LocaleService),N=c.useDependency(E.ISidebarService),C=c.useObservable(N.sidebarOptions$),y=mr(I.FunctionType,R);y.unshift({label:R.t("formula.moreFunctions.allFunctions"),value:t});const b=R.t("formula.prompt.required"),O=R.t("formula.prompt.optional");f.useEffect(()=>{L(t)},[]),f.useEffect(()=>{A(0)},[i]),f.useEffect(()=>{C!=null&&C.visible&&(o(""),s([]),l(0),d(t),g(0),u(null),L(t))},[C]);const D=T=>{if(r.trim()==="")return T;const _=new RegExp(`(${r.toLocaleUpperCase()})`);return T.split(_).filter(Boolean).map((w,j)=>w.match(_)?v.jsx("span",{className:Te.formulaSelectFunctionResultItemNameLight,children:w},j):w)},A=T=>{if(i.length===0){u(null);return}g(T);const _=S.getFunctionInfo(i[T].name);if(!_){u(null);return}u(_),n(_)};function L(T){d(T);const _=S.getSearchListByType(+T);s(_)}function k(T){o(T);const _=S.getSearchListByName(T);s(_)}function F(T){if(T.stopPropagation(),T.key==="ArrowDown"){const _=a+1;l(_===i.length?0:_)}else if(T.key==="ArrowUp"){const _=a-1;l(_===-1?i.length-1:_)}else T.key==="Enter"&&A(a)}const M=T=>{l(T)},P=()=>{l(-1)};return v.jsxs("div",{children:[v.jsxs("div",{className:Te.formulaSelectFunctionSelect,children:[v.jsx(pe.Select,{value:h,options:y,onChange:L}),v.jsx(pe.Input,{placeholder:R.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:F,value:r,onChange:k,size:"large",allowClear:!0})]}),v.jsx("ul",{className:Te.formulaSelectFunctionResult,onKeyDown:F,tabIndex:-1,children:i.map(({name:T},_)=>v.jsxs("li",{className:a===_?`
|
|
31
|
+
${Te.formulaSelectFunctionResultItem}
|
|
32
|
+
${Te.formulaSelectFunctionResultItemActive}
|
|
33
|
+
`:Te.formulaSelectFunctionResultItem,onMouseEnter:()=>M(_),onMouseLeave:P,onClick:()=>A(_),children:[m===_&&v.jsx(Zt,{className:Te.formulaSelectFunctionResultItemSelected}),v.jsx("span",{className:Te.formulaSelectFunctionResultItemName,children:D(T)})]},_))}),p&&v.jsxs("div",{className:Te.formulaSelectFunctionContent,children:[v.jsx(qe,{title:p.functionName,value:p.description}),v.jsx(qe,{title:R.t("formula.moreFunctions.syntax"),value:v.jsx(vn,{prefix:p.functionName,value:p.functionParameter})}),v.jsx(qe,{title:R.t("formula.prompt.helpExample"),value:`${p.functionName}(${p.functionParameter.map(T=>T.example).join(",")})`}),p.functionParameter&&p.functionParameter.map((T,_)=>v.jsx(qe,{title:T.name,value:`${T.require?b:O} ${T.detail}`},_))]})]})}function Es(){const e=$.useActiveWorkbook(),[n,t]=f.useState(!0),[r,o]=f.useState(!1),[i,s]=f.useState(null),a=c.useDependency($.IEditorBridgeService),l=c.useDependency(c.LocaleService),h=c.useDependency(ne.IEditorService),d=c.useDependency(c.IUniverInstanceService);function m(){t(!n),o(!r)}function g(){const p=B.getSheetCommandTarget(d);if(!p)return;a.changeVisible({visible:!0,unitId:p.unitId,eventType:q.DeviceInputEventType.Dblclick});const u=h.getEditor(c.DOCS_NORMAL_EDITOR_UNIT_ID_KEY),S=h.getEditor(c.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY),R=`=${i==null?void 0:i.functionName}(`;u==null||u.replaceText(R),S==null||S.replaceText(R,!1)}return v.jsxs("div",{className:Bt.formulaMoreFunctions,children:[n&&v.jsx(_s,{onChange:s}),r&&v.jsx(hs,{functionInfo:i,onChange:()=>{}}),v.jsxs("div",{className:Bt.formulaMoreFunctionsOperation,children:[r&&v.jsx(pe.Button,{type:"primary",size:"small",onClick:m,children:l.t("formula.moreFunctions.next")}),r&&v.jsx(pe.Button,{size:"small",onClick:m,children:l.t("formula.moreFunctions.prev")}),n&&!!e&&v.jsx(pe.Button,{type:"primary",size:"small",onClick:g,children:l.t("formula.moreFunctions.confirm")})]})]})}function Is(e){return{id:ot.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:E.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:E.getMenuHiddenObservable(e,c.UniverInstanceType.UNIVER_SHEET),disabled$:$.getCurrentRangeDisable$(e,{workbookTypes:[B.WorkbookEditablePermission],worksheetTypes:[B.WorksheetEditPermission,B.WorksheetSetCellValuePermission],rangeTypes:[B.RangeProtectionPermissionEditPoint]})}}function ys(e){return{id:st.id,title:"formula.insert.more",type:E.MenuItemType.BUTTON}}function Ts(e){return e.get(c.IUniverInstanceService).getCurrentTypeOfUnit$(c.UniverInstanceType.UNIVER_SHEET).pipe(K.switchMap(r=>r&&e.get(E.IClipboardInterfaceService)?new K.Observable(i=>i.next(!e.get(E.IClipboardInterfaceService).supportClipboard)):K.of(!0)))}function bs(e){return{id:rt.id,type:E.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:Ts(e).pipe(K.combineLatestWith($.getCurrentRangeDisable$(e,{workbookTypes:[B.WorkbookEditablePermission],rangeTypes:[B.RangeProtectionPermissionEditPoint],worksheetTypes:[B.WorksheetSetCellValuePermission,B.WorksheetEditPermission]})),K.map(([n,t])=>n||t))}}const Ns={[E.RibbonStartGroup.FORMULAS_INSERT]:{[ot.id]:{order:1,menuItemFactory:Is,[st.id]:{order:1,menuItemFactory:ys}}},[$.PASTE_SPECIAL_MENU_ID]:{[rt.id]:{order:4,menuItemFactory:bs}}},Ms="meta_key_ctrl_And_Shift",at=[E.KeyCode.ARROW_DOWN,E.KeyCode.ARROW_UP,E.KeyCode.ARROW_LEFT,E.KeyCode.ARROW_RIGHT],xs=[...at,E.KeyCode.ENTER,E.KeyCode.TAB,E.KeyCode.ESC];function Fs(){const e=[];for(const n of xs)e.push({id:Pe.id,binding:n,preconditions:t=>$.whenFormulaEditorActivated(t),staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keycode:n}});return e}function Os(){const e=[];for(const n of at)e.push({id:Pe.id,binding:n|E.MetaKeys.SHIFT,preconditions:t=>$.whenFormulaEditorActivated(t),staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keycode:n,metaKey:E.MetaKeys.SHIFT}});return e}function Ds(){const e=[];for(const n of at)e.push({id:Pe.id,binding:n|E.MetaKeys.CTRL_COMMAND,preconditions:t=>$.whenFormulaEditorActivated(t),staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keycode:n,metaKey:E.MetaKeys.CTRL_COMMAND}});return e}function As(){const e=[];for(const n of at)e.push({id:Pe.id,binding:n|E.MetaKeys.SHIFT|E.MetaKeys.CTRL_COMMAND,preconditions:t=>$.whenFormulaEditorActivated(t),staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keycode:n,metaKey:Ms}});return e}const Ps={id:It.id,binding:E.KeyCode.F4,preconditions:e=>$.whenFormulaEditorActivated(e)};function Ls(){const e=[];for(const n of[E.KeyCode.ENTER,E.KeyCode.TAB,E.KeyCode.ARROW_DOWN,E.KeyCode.ARROW_UP])e.push({id:Pe.id,binding:n,preconditions:t=>oo(t),staticParameters:{eventType:q.DeviceInputEventType.Keyboard,keycode:n,isSingleEditor:!0}});return e}var ks=Object.defineProperty,ws=Object.getOwnPropertyDescriptor,$s=(e,n,t,r)=>{for(var o=r>1?void 0:r?ws(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&ks(n,t,o),o},Ae=(e,n)=>(t,r)=>n(t,r,e);let nt=class extends c.Disposable{constructor(e,n,t,r,o,i,s){super(),this._injector=e,this._menuManagerService=n,this._commandService=t,this._shortcutService=r,this._uiPartsService=o,this._renderManagerService=i,this._componentManager=s,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(Ns)}_registerCommands(){[rt,ot,st,zt,Kt,Pe,It].forEach(e=>this.disposeWithMe(this._commandService.registerCommand(e)))}_registerShortcuts(){[...Fs(),...Os(),...Ds(),...As(),...Ls(),Ps].forEach(e=>{this.disposeWithMe(this._shortcutService.registerShortcut(e))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(E.BuiltInUIPart.CONTENT,()=>c.connectInjector(os,this._injector))),this.disposeWithMe(this._uiPartsService.registerComponent($.SheetsUIPart.FORMULA_AUX,()=>c.connectInjector(Do,this._injector))),this._componentManager.register(Yt,Es)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,[et]))}};nt=$s([Ae(0,c.Inject(c.Injector)),Ae(1,E.IMenuManagerService),Ae(2,c.ICommandService),Ae(3,E.IShortcutService),Ae(4,E.IUIPartsService),Ae(5,q.IRenderManagerService),Ae(6,c.Inject(E.ComponentManager))],nt);var Cn=Object.defineProperty,js=Object.getOwnPropertyDescriptor,Hs=(e,n,t)=>n in e?Cn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,Us=(e,n,t,r)=>{for(var o=r>1?void 0:r?js(n,t):n,i=e.length-1,s;i>=0;i--)(s=e[i])&&(o=(r?s(n,t,o):s(o))||o);return r&&o&&Cn(n,t,o),o},pt=(e,n)=>(t,r)=>n(t,r,e),Rn=(e,n,t)=>Hs(e,typeof n!="symbol"?n+"":n,t);exports.UniverSheetsFormulaUIPlugin=class extends c.Plugin{constructor(n=Ht,t,r,o){super(),this._config=n,this._injector=t,this._renderManagerService=r,this._configService=o;const{menu:i,...s}=c.merge(Ht,this._config);i&&this._configService.setConfig("menu",i,{merge:!0}),this._configService.setConfig(ro,s)}onStarting(){const n=this._injector;[[ze,{useClass:St}],[nt],[Je],[Qe],[et],[tt]].forEach(o=>n.add(o));const r=this._injector.get(E.ComponentManager);r.register($.RANGE_SELECTOR_COMPONENT_KEY,hn),r.register($.EMBEDDING_FORMULA_EDITOR_COMPONENT_KEY,gn)}onRendered(){[[exports.RefSelectionsRenderService],[_t]].forEach(n=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(c.UniverInstanceType.UNIVER_SHEET,n))}),c.touchDependencies(this._injector,[[nt],[Qe],[tt]])}onSteady(){this._injector.get(Je)}};Rn(exports.UniverSheetsFormulaUIPlugin,"pluginName",qt);Rn(exports.UniverSheetsFormulaUIPlugin,"type",c.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=Us([c.DependentOn(I.UniverFormulaEnginePlugin,Fe.UniverSheetsFormulaPlugin),pt(1,c.Inject(c.Injector)),pt(2,q.IRenderManagerService),pt(3,c.IConfigService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=Vt;exports.FormulaEditor=gn;exports.HelpFunctionOperation=Kt;exports.InsertFunctionOperation=ot;exports.MoreFunctionsOperation=st;exports.RangeSelector=hn;exports.ReferenceAbsoluteOperation=It;exports.SearchFunctionOperation=zt;exports.SelectEditorFormulaOperation=Pe;exports.SheetOnlyPasteFormulaCommand=rt;
|