@univerjs/sheets-formula-ui 0.4.0-alpha.0 → 0.4.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +13 -7
- package/lib/umd/index.js +2 -2
- package/package.json +15 -25
package/lib/cjs/index.js
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q");reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a11){var key=_a11[0],value=_a11[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a11,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a11=node.children)===null||_a11===void 0)&&_a11.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$3}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$2}))});CloseSingle.displayName="CloseSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DetailsSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"details-single",ref,icon:element$1}))});DetailsSingle.displayName="DetailsSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element}))});MoreSingle.displayName="MoreSingle";function getFunctionTypeValues(enumObj,localeService){return Object.keys(enumObj).filter(key=>isNaN(Number(key))&&key!=="DefinedName").map(key=>({label:localeService.t(`formula.functionType.${key.toLocaleLowerCase()}`),value:`${enumObj[key]}`}))}__name(getFunctionTypeValues,"getFunctionTypeValues");function generateParam(param){if(!param.require&&!param.repeat)return`[${param.name}]`;if(param.require&&!param.repeat)return param.name;if(!param.require&¶m.repeat)return`[${param.name},...]`;if(param.require&¶m.repeat)return`${param.name},...`}__name(generateParam,"generateParam");const useResizeScrollObserver=__name((callback,delay=100)=>{require$$0.useEffect(()=>{let throttleTimeout=null;const throttledCallback=__name(()=>{throttleTimeout===null&&(throttleTimeout=window.setTimeout(()=>{callback(),throttleTimeout=null},delay))},"throttledCallback");return window.addEventListener("scroll",throttledCallback),window.addEventListener("resize",throttledCallback),()=>{throttleTimeout!==null&&clearTimeout(throttleTimeout),window.removeEventListener("scroll",throttledCallback),window.removeEventListener("resize",throttledCallback)}},[callback,delay])},"useResizeScrollObserver"),formulaHelpFunction="univer-formula-help-function",formulaHelpFunctionTitle="univer-formula-help-function-title",formulaHelpFunctionTitleIcons="univer-formula-help-function-title-icons",formulaHelpFunctionTitleIcon="univer-formula-help-function-title-icon",formulaHelpFunctionContent="univer-formula-help-function-content",formulaHelpFunctionContentInner="univer-formula-help-function-content-inner",formulaHelpFunctionContentParams="univer-formula-help-function-content-params",formulaHelpFunctionContentParamsTitle="univer-formula-help-function-content-params-title",formulaHelpFunctionContentParamsDetail="univer-formula-help-function-content-params-detail",formulaHelpFunctionActive="univer-formula-help-function-active",formulaHelpDecorator="univer-formula-help-decorator",formulaHelpParam="univer-formula-help-param",formulaHelpParamPrefix="univer-formula-help-param-prefix",formulaHelpParamItem="univer-formula-help-param-item",formulaHelpParamActive="univer-formula-help-param-active",styles$5={formulaHelpFunction,formulaHelpFunctionTitle,formulaHelpFunctionTitleIcons,formulaHelpFunctionTitleIcon,formulaHelpFunctionContent,formulaHelpFunctionContentInner,formulaHelpFunctionContentParams,formulaHelpFunctionContentParamsTitle,formulaHelpFunctionContentParamsDetail,formulaHelpFunctionActive,formulaHelpDecorator,formulaHelpParam,formulaHelpParamPrefix,formulaHelpParamItem,formulaHelpParamActive};function HelpFunction(){const[visible,setVisible]=require$$0.useState(!1),[contentVisible,setContentVisible]=require$$0.useState(!0),[helpVisible,setHelpVisible]=require$$0.useState(!0),[paramIndex,setParamIndex]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[decoratorPosition,setDecoratorPosition]=require$$0.useState({left:0,top:0}),[functionInfo,setFunctionInfo]=require$$0.useState(null),promptService=core.useDependency(IFormulaPromptService),localeService=core.useDependency(core.LocaleService),required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional"),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService),sidebarService=core.useDependency(ui.ISidebarService),injector=core.useInjector();useResizeScrollObserver(updatePosition),require$$0.useEffect(()=>{const subscription=promptService.help$.subscribe(params=>{const{visible:visible2,paramIndex:paramIndex2,functionInfo:functionInfo2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;functionInfo2.description===""&&functionInfo2.functionParameter.length===0||(setOffset([left,top+height]),setParamIndex(paramIndex2),setFunctionInfo(functionInfo2),setDecoratorPosition({left,top}),setVisible(visible2))}),sidebarSubscription=sidebarService.scrollEvent$.pipe(rxjs.throttleTime(100)).subscribe(updatePosition);return()=>{subscription==null||subscription.unsubscribe(),sidebarSubscription.unsubscribe()}},[]);function updatePosition(){if(!helpVisible)return;const position=getPosition();if(position==null)return;const{left,top,height}=position;setOffset([left,top+height])}__name(updatePosition,"updatePosition");function getPosition(){const documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleSwitchActive(paramIndex2){setParamIndex(paramIndex2)}__name(handleSwitchActive,"handleSwitchActive");function handleClose(){setHelpVisible(!helpVisible),injector.get(ui.ILayoutService).focus()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:helpVisible?jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:functionInfo?jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunction,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitle,children:[jsxRuntimeExports.jsx(Help,{prefix:functionInfo.functionName,value:functionInfo.functionParameter,active:paramIndex,onClick:handleSwitchActive}),jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitleIcons,children:[jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,style:{transform:contentVisible?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:__name(()=>setContentVisible(!contentVisible),"onClick"),children:jsxRuntimeExports.jsx(MoreSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContent,style:{height:contentVisible?"unset":0,padding:contentVisible?"revert-layer":0},children:jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentInner,children:[jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpAbstract"),value:functionInfo.description}),functionInfo&&functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(Params,{className:paramIndex===i?styles$5.formulaHelpFunctionActive:"",title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}):visible?jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpDecorator,onClick:__name(()=>setHelpVisible(!helpVisible),"onClick"),style:{left:decoratorPosition.left-24,top:decoratorPosition.top},children:jsxRuntimeExports.jsx(DetailsSingle,{})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})}__name(HelpFunction,"HelpFunction");const Params=__name(props=>jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$5.formulaHelpFunctionContentParamsTitle} ${props.className}`,children:props.title}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContentParamsDetail,children:props.value})]}),"Params"),Help=__name(props=>{const{prefix,value,active,onClick}=props;return jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpParam,children:[jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamPrefix,children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamItem,children:[jsxRuntimeExports.jsx("span",{className:active===i?styles$5.formulaHelpFunctionActive:styles$5.formulaHelpParamActive,onClick:__name(()=>onClick(i),"onClick"),children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})},"Help"),formulaSearchFunction="univer-formula-search-function",formulaSearchFunctionItem="univer-formula-search-function-item",formulaSearchFunctionItemName="univer-formula-search-function-item-name",formulaSearchFunctionItemNameLight="univer-formula-search-function-item-name-light",formulaSearchFunctionItemDesc="univer-formula-search-function-item-desc",formulaSearchFunctionItemActive="univer-formula-search-function-item-active",styles$4={formulaSearchFunction,formulaSearchFunctionItem,formulaSearchFunctionItemName,formulaSearchFunctionItemNameLight,formulaSearchFunctionItemDesc,formulaSearchFunctionItemActive};function SearchFunction(){const[visible,setVisible]=require$$0.useState(!1),[active,setActive]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[searchList,setSearchList]=require$$0.useState([]),[searchText,setSearchText]=require$$0.useState(""),ulRef=require$$0.useRef(null),promptService=core.useDependency(IFormulaPromptService),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService);require$$0.useEffect(()=>{let updatedSearchList=[],updatedActive=0;const subscribeSearch=promptService.search$.subscribe(params=>{const{visible:visible2,searchText:searchText2,searchList:searchList2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;setSearchText(searchText2),setSearchList(searchList2),updatedSearchList=searchList2,setOffset([left,top+height]),setVisible(visible2),setActive(0),updatedActive=0}),subscribeNavigate=promptService.navigate$.subscribe(params=>{const{direction}=params;if(direction===core.Direction.UP){let nextActive=updatedActive-1;nextActive=nextActive<0?updatedSearchList.length-1:nextActive,setActive(nextActive),updatedActive=nextActive}else if(direction===core.Direction.DOWN){let nextActive=updatedActive+1;nextActive=nextActive>=updatedSearchList.length?0:nextActive,setActive(nextActive),updatedActive=nextActive}scrollToVisible(updatedActive)}),subscribeAccept=promptService.accept$.subscribe(params=>{const functionName=updatedSearchList[updatedActive].name;promptService.acceptFormulaName(functionName)});return()=>{subscribeSearch==null||subscribeSearch.unsubscribe(),subscribeNavigate==null||subscribeNavigate.unsubscribe(),subscribeAccept==null||subscribeAccept.unsubscribe()}},[]);function getPosition(){const editorUnitId=univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleLiMouseEnter(index){setActive(index)}__name(handleLiMouseEnter,"handleLiMouseEnter");function handleLiMouseLeave(){setActive(-1)}__name(handleLiMouseLeave,"handleLiMouseLeave");function scrollToVisible(liIndex){var _a11;const liElement=(_a11=ulRef.current)==null?void 0:_a11.querySelectorAll(`.${styles$4.formulaSearchFunctionItem}`)[liIndex];if(!liElement)return;const ulElement=liElement.parentNode;if(!ulElement)return;const ulTop=ulElement.getBoundingClientRect().top,ulHeight=ulElement.offsetHeight,liRect=liElement.getBoundingClientRect(),liTop=liRect.top,liHeight=liRect.height;if(liTop>=0&&liTop>ulTop&&liTop-ulTop+liHeight<=ulHeight)return;const scrollTo=liElement.offsetTop-(ulHeight-liHeight)/2;ulElement.scrollTo({top:scrollTo,behavior:"smooth"})}return __name(scrollToVisible,"scrollToVisible"),searchList.length>0&&jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("ul",{className:styles$4.formulaSearchFunction,ref:ulRef,children:searchList.map((item,index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles$4.formulaSearchFunctionItem} ${styles$4.formulaSearchFunctionItemActive}`:styles$4.formulaSearchFunctionItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>promptService.acceptFormulaName(item.name),"onClick"),children:[jsxRuntimeExports.jsxs("span",{className:styles$4.formulaSearchFunctionItemName,children:[jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemNameLight,children:item.name.substring(0,searchText.length)}),jsxRuntimeExports.jsx("span",{children:item.name.slice(searchText.length)})]}),jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemDesc,children:item.desc})]},index))})})}__name(SearchFunction,"SearchFunction");function RenderFormulaPromptContent(){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SearchFunction,{}),jsxRuntimeExports.jsx(HelpFunction,{})]})}__name(RenderFormulaPromptContent,"RenderFormulaPromptContent");const formulaMoreFunctions="univer-formula-more-functions",formulaMoreFunctionsOperation="univer-formula-more-functions-operation",styles$3={formulaMoreFunctions,formulaMoreFunctionsOperation};function FunctionHelp(props){const{prefix,value}=props;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("span",{children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})}__name(FunctionHelp,"FunctionHelp");const formulaFunctionParams="univer-formula-function-params",formulaFunctionParamsTitle="univer-formula-function-params-title",formulaFunctionParamsDetail="univer-formula-function-params-detail",styles$2={formulaFunctionParams,formulaFunctionParamsTitle,formulaFunctionParamsDetail};function FunctionParams(props){const{className,value,title}=props;return jsxRuntimeExports.jsxs("div",{className:styles$2.formulaFunctionParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$2.formulaFunctionParamsTitle} ${className}`,children:title}),jsxRuntimeExports.jsx("div",{className:styles$2.formulaFunctionParamsDetail,children:value})]})}__name(FunctionParams,"FunctionParams");const formulaInputParamsList="univer-formula-input-params-list",formulaInputParamsListItemName="univer-formula-input-params-list-item-name",formulaInputParamsListItemSelector="univer-formula-input-params-list-item-selector",styles$1={formulaInputParamsList,formulaInputParamsListItemName,formulaInputParamsListItemSelector};function InputParams(props){const{functionInfo,onChange}=props;if(!functionInfo)return null;require$$0.useState([]);const[functionParameter,setFunctionParameter]=require$$0.useState(functionInfo.functionParameter),[activeIndex,setActiveIndex]=require$$0.useState(-1);return jsxRuntimeExports.jsxs("div",{className:styles$1.formulaInputParams,children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsList,children:functionParameter.map((item,i)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemName,children:item.name}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemSelector})]},i))}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsInfo,children:jsxRuntimeExports.jsx(FunctionParams,{title:activeIndex===-1?jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionParameter}):functionParameter[activeIndex].name,value:activeIndex===-1?functionInfo.description:functionParameter[activeIndex].detail})})]})}__name(InputParams,"InputParams");const formulaSelectFunctionSelect="univer-formula-select-function-select",formulaSelectFunctionResult="univer-formula-select-function-result",formulaSelectFunctionResultItem="univer-formula-select-function-result-item",formulaSelectFunctionResultItemNameLight="univer-formula-select-function-result-item-name-light",formulaSelectFunctionResultItemSelected="univer-formula-select-function-result-item-selected",formulaSelectFunctionResultItemActive="univer-formula-select-function-result-item-active",formulaSelectFunctionContent="univer-formula-select-function-content",styles={formulaSelectFunctionSelect,formulaSelectFunctionResult,formulaSelectFunctionResultItem,formulaSelectFunctionResultItemNameLight,formulaSelectFunctionResultItemSelected,formulaSelectFunctionResultItemActive,formulaSelectFunctionContent};function SelectFunction(props){const{onChange}=props,allTypeValue="-1",[searchText,setSearchText]=require$$0.useState(""),[selectList,setSelectList]=require$$0.useState([]),[active,setActive]=require$$0.useState(0),[typeSelected,setTypeSelected]=require$$0.useState(allTypeValue),[nameSelected,setNameSelected]=require$$0.useState(0),[functionInfo,setFunctionInfo]=require$$0.useState(null),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),localeService=core.useDependency(core.LocaleService),options=getFunctionTypeValues(engineFormula.FunctionType,localeService);options.unshift({label:localeService.t("formula.moreFunctions.allFunctions"),value:allTypeValue});const required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional");require$$0.useEffect(()=>{handleSelectChange(allTypeValue)},[]),require$$0.useEffect(()=>{setCurrentFunctionInfo(0)},[selectList]);const highlightSearchText=__name(text=>{if(searchText.trim()==="")return text;const regex=new RegExp(`(${searchText.toLocaleUpperCase()})`);return text.split(regex).filter(Boolean).map((part,index)=>part.match(regex)?jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemNameLight,children:part},index):part)},"highlightSearchText"),setCurrentFunctionInfo=__name(selectedIndex=>{if(selectList.length===0){setFunctionInfo(null);return}setNameSelected(selectedIndex);const functionInfo2=descriptionService.getFunctionInfo(selectList[selectedIndex].name);if(!functionInfo2){setFunctionInfo(null);return}setFunctionInfo(functionInfo2),onChange(functionInfo2)},"setCurrentFunctionInfo");function handleSelectChange(value){setTypeSelected(value);const selectList2=descriptionService.getSearchListByType(+value);setSelectList(selectList2)}__name(handleSelectChange,"handleSelectChange");function handleSearchInputChange(value){setSearchText(value);const selectList2=descriptionService.getSearchListByName(value);setSelectList(selectList2)}__name(handleSearchInputChange,"handleSearchInputChange");function handleSelectListKeyDown(e){if(e.stopPropagation(),e.key==="ArrowDown"){const nextActive=active+1;setActive(nextActive===selectList.length?0:nextActive)}else if(e.key==="ArrowUp"){const nextActive=active-1;setActive(nextActive===-1?selectList.length-1:nextActive)}else e.key==="Enter"&&setCurrentFunctionInfo(active)}__name(handleSelectListKeyDown,"handleSelectListKeyDown");const handleLiMouseEnter=__name(index=>{setActive(index)},"handleLiMouseEnter"),handleLiMouseLeave=__name(()=>{setActive(-1)},"handleLiMouseLeave");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionSelect,children:[jsxRuntimeExports.jsx(design.Select,{value:typeSelected,options,onChange:handleSelectChange}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:handleSelectListKeyDown,value:searchText,onChange:handleSearchInputChange,size:"large",allowClear:!0})]}),jsxRuntimeExports.jsx("ul",{className:styles.formulaSelectFunctionResult,onKeyDown:handleSelectListKeyDown,tabIndex:-1,children:selectList.map(({name},index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles.formulaSelectFunctionResultItem} ${styles.formulaSelectFunctionResultItemActive}`:styles.formulaSelectFunctionResultItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>setCurrentFunctionInfo(index),"onClick"),children:[nameSelected===index&&jsxRuntimeExports.jsx(CheckMarkSingle,{className:styles.formulaSelectFunctionResultItemSelected}),jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemName,children:highlightSearchText(name)})]},index))}),functionInfo&&jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionContent,children:[jsxRuntimeExports.jsx(FunctionParams,{title:functionInfo.functionName,value:functionInfo.description}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.moreFunctions.syntax"),value:jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionInfo.functionParameter})}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(FunctionParams,{title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})]})}__name(SelectFunction,"SelectFunction");function MoreFunctions(){const workbook=sheetsUi.useActiveWorkbook(),[selectFunction,setSelectFunction]=require$$0.useState(!0),[inputParams,setInputParams]=require$$0.useState(!1),[functionInfo,setFunctionInfo]=require$$0.useState(null),localeService=core.useDependency(core.LocaleService),editorService=core.useDependency(docsUi.IEditorService);function handleClickNextPrev(){setSelectFunction(!selectFunction),setInputParams(!inputParams)}__name(handleClickNextPrev,"handleClickNextPrev");function handleConfirm(){editorService.setFormula(`=${functionInfo==null?void 0:functionInfo.functionName}(`)}return __name(handleConfirm,"handleConfirm"),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctions,children:[selectFunction&&jsxRuntimeExports.jsx(SelectFunction,{onChange:setFunctionInfo}),inputParams&&jsxRuntimeExports.jsx(InputParams,{functionInfo,onChange:__name(()=>{},"onChange")}),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctionsOperation,children:[inputParams&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.next")}),inputParams&&jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.prev")}),selectFunction&&!!workbook&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:localeService.t("formula.moreFunctions.confirm")})]})]})}__name(MoreFunctions,"MoreFunctions");function InsertFunctionMenuItemFactory(accessor){return{id:InsertFunctionOperation.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:ui.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(InsertFunctionMenuItemFactory,"InsertFunctionMenuItemFactory");function MoreFunctionsMenuItemFactory(accessor){return{id:MoreFunctionsOperation.id,title:"formula.insert.more",type:ui.MenuItemType.BUTTON}}__name(MoreFunctionsMenuItemFactory,"MoreFunctionsMenuItemFactory");function menuClipboardDisabledObservable(injector){return injector.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook&&injector.get(ui.IClipboardInterfaceService)?new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard)):rxjs.of(!0)))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function PasteFormulaMenuItemFactory(accessor){return{id:SheetOnlyPasteFormulaCommand.id,type:ui.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteFormulaMenuItemFactory,"PasteFormulaMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[InsertFunctionOperation.id]:{order:1,menuItemFactory:InsertFunctionMenuItemFactory,[MoreFunctionsOperation.id]:{order:1,menuItemFactory:MoreFunctionsMenuItemFactory}}},[sheetsUi.PASTE_SPECIAL_MENU_ID]:{[SheetOnlyPasteFormulaCommand.id]:{order:4,menuItemFactory:PasteFormulaMenuItemFactory}}},META_KEY_CTRL_AND_SHIFT="meta_key_ctrl_And_Shift",PROMPT_SELECTION_KEYCODE_ARROW_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],PROMPT_SELECTION_KEYCODE_LIST=[...PROMPT_SELECTION_KEYCODE_ARROW_LIST,ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ESC];function promptSelectionShortcutItem(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode}});return shortcutList}__name(promptSelectionShortcutItem,"promptSelectionShortcutItem");function promptSelectionShortcutItemShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.SHIFT}});return shortcutList}__name(promptSelectionShortcutItemShift,"promptSelectionShortcutItemShift");function promptSelectionShortcutItemCtrl(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.CTRL_COMMAND}});return shortcutList}__name(promptSelectionShortcutItemCtrl,"promptSelectionShortcutItemCtrl");function promptSelectionShortcutItemCtrlAndShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:META_KEY_CTRL_AND_SHIFT}});return shortcutList}__name(promptSelectionShortcutItemCtrlAndShift,"promptSelectionShortcutItemCtrlAndShift");const ChangeRefToAbsoluteShortcut={id:ReferenceAbsoluteOperation.id,binding:ui.KeyCode.F4,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions")};function singleEditorPromptSelectionShortcutItem(){const shortcutList=[];for(const keycode of[ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP])shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorStandalone(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isSingleEditor:!0}});return shortcutList}__name(singleEditorPromptSelectionShortcutItem,"singleEditorPromptSelectionShortcutItem");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a7;let FormulaUIController=(_a7=class extends core.Disposable{constructor(_injector,_menuManagerService,_commandService,_shortcutService,_uiPartsService,_renderManagerService,_componentManager){super(),this._injector=_injector,this._menuManagerService=_menuManagerService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._uiPartsService=_uiPartsService,this._renderManagerService=_renderManagerService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(menuSchema)}_registerCommands(){[SheetOnlyPasteFormulaCommand,InsertFunctionOperation,MoreFunctionsOperation,SearchFunctionOperation,HelpFunctionOperation,SelectEditorFormulaOperation,ReferenceAbsoluteOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerShortcuts(){[...promptSelectionShortcutItem(),...promptSelectionShortcutItemShift(),...promptSelectionShortcutItemCtrl(),...promptSelectionShortcutItemCtrlAndShift(),...singleEditorPromptSelectionShortcutItem(),ChangeRefToAbsoluteShortcut].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderFormulaPromptContent,this._injector))),this._componentManager.register(MORE_FUNCTIONS_COMPONENT,MoreFunctions)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[FormulaEditorShowController]))}},__name(_a7,"FormulaUIController"),_a7);FormulaUIController=__decorateClass$3([__decorateParam$3(0,core.Inject(core.Injector)),__decorateParam$3(1,ui.IMenuManagerService),__decorateParam$3(2,core.ICommandService),__decorateParam$3(3,ui.IShortcutService),__decorateParam$3(4,ui.IUIPartsService),__decorateParam$3(5,engineRender.IRenderManagerService),__decorateParam$3(6,core.Inject(ui.ComponentManager))],FormulaUIController);function getFormulaRefSelectionStyle(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle,"getFormulaRefSelectionStyle");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a8;let RefSelectionsRenderService=(_a8=class extends sheetsUi.BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,sheetSkeletonManagerService,_refSelectionsService){super(injector,themeService,shortcutService,sheetSkeletonManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_eventDisposables");this._context=_context,this._refSelectionsService=_refSelectionsService,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(getDefaultRefSelectionStyle(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(enabled){this._remainLastEnabled=enabled}setSkipLastEnabled(enabled){this._skipLastEnabled=enabled}clearLastSelection(){const last=this._selectionControls[this._selectionControls.length-1];last&&(last.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),core.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var _a11;(_a11=this._eventDisposables)==null||_a11.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const sheetObject=this._getSheetObject(),{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context,listenerDisposables=new core.DisposableCollection;return listenerDisposables.add(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation()})),listenerDisposables.add(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=sheetsUi.getAllSelection(skeleton),selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),evt.button!==2&&state.stopPropagation()})),listenerDisposables}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_END)}))}_updateSelections(selectionDataWithStyleList,type){const sheetId=this._context.unit.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._workbookSelections.setSelections(sheetId,selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle)),type)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(selectionsWithStyles=>{this._reset();for(const selectionWithStyle of selectionsWithStyles){const selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return;const{skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==skeleton.worksheet.getSheetId()&&this._reset(),this._changeRuntime(skeleton,scene,viewportMain);const currentSelections=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(currentSelections||[])}))}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>sheetsUi.attachSelectionWithCoord(selectionWithStyle,this._skeleton));this.updateControlForCurrentByRangeData(selections)}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return sheetsUi.getSheetObject(this._context.unit,this._context)}},__name(_a8,"RefSelectionsRenderService"),_a8);RefSelectionsRenderService=__decorateClass$2([__decorateParam$2(1,core.Inject(core.Injector)),__decorateParam$2(2,core.Inject(core.ThemeService)),__decorateParam$2(3,ui.IShortcutService),__decorateParam$2(4,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$2(5,sheets.IRefSelectionsService)],RefSelectionsRenderService);function getDefaultRefSelectionStyle(themeService){const style=sheets.getNormalSelectionStyle(themeService);return style.hasAutoFill=!1,style.hasRowHeader=!1,style.hasColumnHeader=!1,style.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},style}__name(getDefaultRefSelectionStyle,"getDefaultRefSelectionStyle");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const sheetEditorUnitIds=[core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];var _a9;let PromptController=(_a9=class extends core.Disposable{constructor(_commandService,_contextService,_editorBridgeService,_formulaPromptService,_lexerTreeBuilder,_renderManagerService,_themeService,_sheetsSelectionsService,_refSelectionsService,_univerInstanceService,_descriptionService,_docSelectionManagerService,_contextMenuService,_editorService,_layoutService){super();__publicField(this,"_listenInputCache",new Set);__publicField(this,"_formulaRefColors",[]);__publicField(this,"_previousSequenceNodes");__publicField(this,"_previousRangesCount",0);__publicField(this,"_previousInsertRefStringIndex");__publicField(this,"_currentInsertRefStringIndex",-1);__publicField(this,"_arrowMoveActionState",0);__publicField(this,"_isSelectionMovingRefSelections",[]);__publicField(this,"_stringColor","");__publicField(this,"_numberColor","");__publicField(this,"_insertSelections",[]);__publicField(this,"_inputPanelState",0);__publicField(this,"_userCursorMove",!1);__publicField(this,"_previousEditorUnitId");__publicField(this,"_existsSequenceNode",!1);__publicField(this,"_currentlyWorkingRefRenderer",null);__publicField(this,"_selectionsChangeDisposables");__publicField(this,"_isSelectingMode",!1);this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._formulaPromptService=_formulaPromptService,this._lexerTreeBuilder=_lexerTreeBuilder,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._sheetsSelectionsService=_sheetsSelectionsService,this._refSelectionsService=_refSelectionsService,this._univerInstanceService=_univerInstanceService,this._descriptionService=_descriptionService,this._docSelectionManagerService=_docSelectionManagerService,this._contextMenuService=_contextMenuService,this._editorService=_editorService,this._layoutService=_layoutService,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(core.UniverInstanceType.UNIVER_SHEET).map(renderer=>renderer.with(RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const style=this._themeService.getCurrentTheme();this._formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],this._numberColor=style.hyacinth700,this._stringColor=style.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.subscribe(params=>{var _a11;if((params==null?void 0:params.unitId)==null)return;const editor=this._editorService.getEditor(params.unitId);if(!editor||editor.onlyInputContent()||editor.isSheetEditor()&&!this._isFormulaEditorActivated()||editor.params.scrollBar)return;const onlyInputRange=editor.onlyInputRange();(_a11=params==null?void 0:params.options)!=null&&_a11.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(onlyInputRange),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!onlyInputRange&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const arrows=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT,ui.KeyCode.CTRL,ui.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{var _a11;const unitId=documentDataModel==null?void 0:documentDataModel.getUnitId();if(unitId==null||this._listenInputCache.has(unitId)||this._editorService.getEditor(unitId)==null)return;const docSelectionRenderService=(_a11=this._renderManagerService.getRenderById(unitId))==null?void 0:_a11.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&this.disposeWithMe(docSelectionRenderService.onInputBefore$.subscribe(param=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const event=param==null?void 0:param.event;event&&(arrows.includes(event.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),event.which!==ui.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(unitId)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(rxjs.distinctUntilKeyChanged("visible")).subscribe(visibleParam=>{visibleParam.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(core.FORMULA_EDITOR_ACTIVATED).pipe(rxjs.distinctUntilChanged()).subscribe(activated=>{activated||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{if(documentDataModel==null)return;const editorId=documentDataModel.getUnitId();!this._editorService.isEditor(editorId)||this._previousEditorUnitId===editorId||this._editorService.isSheetEditor(editorId)||(this._closeRangePrompt(editorId),this._previousEditorUnitId=editorId)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(editorId){this._insertSelections=[],this._refSelectionsService.clear(),editorId&&this._editorService.isSheetEditor(editorId)&&this._updateEditorModel(`\r
|
|
10
|
-
`,[]),this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel()}_initSelectionsEndListener(){const d=new core.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(selections=>{if(d.dispose(),selections.length===0)return;this._allSelectionRenderServices.map(s=>s.getSelectionControls()).flat().forEach(c=>{c.disableHelperSelection(),d.add(c.selectionMoving$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionScaling$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionMoved$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange())),d.add(c.selectionScaled$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange()))})}))}_updateSelecting(selectionsWithStyles,performInsertion=!1){if(selectionsWithStyles.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(selectionsWithStyles),performInsertion)){const currentSelection=selectionsWithStyles[selectionsWithStyles.length-1];this._insertControlSelectionReplace(currentSelection)}}_enableRefSelectionsRenderService(){const d=this._selectionsChangeDisposables=new core.DisposableCollection;this._allSelectionRenderServices.forEach(renderer=>{d.add(renderer.enableSelectionChanging()),d.add(renderer.selectionMoving$.subscribe(selections=>{this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)))})),d.add(renderer.selectionMoveStart$.subscribe(selections=>{const performInsertion=this._checkClearingLastSelection(renderer);this._currentlyWorkingRefRenderer=renderer,this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)),performInsertion)}))})}_checkClearingLastSelection(renderer){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==renderer?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var _a11;(_a11=this._selectionsChangeDisposables)==null||_a11.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(selections){const currentSelection=selections[selections.length-1];if(this._resetSequenceNodes(selections.length),(selections.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(currentSelection);else{let insertNodes=this._formulaPromptService.getSequenceNodes();const char=this._getCurrentChar();insertNodes.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!engineFormula.matchRefDrawToken(char)&&this._focusIsOnlyRange(selections.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,engineFormula.matchToken.COMMA),insertNodes=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=core.Tools.deepClone(insertNodes),this._formulaPromptService.setSequenceNodes(insertNodes);const refString=this._generateRefString(currentSelection);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=selections.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(formulaString=>{const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,lastSequenceNodes=this._formulaPromptService.getSequenceNodes(),nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(startOffset-2),node=lastSequenceNodes[nodeIndex];if(node==null||typeof node=="string"){this._hideFunctionPanel();return}const difference=formulaString.length-node.token.length,newNode={...node};newNode.token=formulaString,newNode.endIndex+=difference,lastSequenceNodes[nodeIndex]=newNode;const isDefinedName=this._descriptionService.hasDefinedNameDescription(formulaString),isFormulaDefinedName=this._descriptionService.isFormulaDefinedName(formulaString),formulaStringCount=formulaString.length+1,mustAddBracket=!isDefinedName||isFormulaDefinedName;mustAddBracket&&lastSequenceNodes.splice(nodeIndex+1,0,engineFormula.matchToken.OPEN_BRACKET);for(let i=nodeIndex+2,len=lastSequenceNodes.length;i<len;i++){const node2=lastSequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=formulaStringCount,newNode2.endIndex+=formulaStringCount,lastSequenceNodes[i]=newNode2}let selectionIndex=newNode.endIndex+1;mustAddBracket&&(selectionIndex+=1),this._syncToEditor(lastSequenceNodes,selectionIndex,void 0,!0,!1)}))}_changeFunctionPanelState(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,currentSequenceNode=this._formulaPromptService.getCurrentSequenceNode(startOffset-2);if(currentSequenceNode==null){this._hideFunctionPanel();return}if(typeof currentSequenceNode!="string"&¤tSequenceNode.nodeType===engineFormula.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(currentSequenceNode.token.trim())){const token=currentSequenceNode.token.toUpperCase();if(this._inputPanelState===1){const searchList=this._descriptionService.getSearchListByNameFirstLetter(token);if(this._hideFunctionPanel(),searchList==null||searchList.length===0)return;this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!0,searchText:token,searchList})}else this._changeHelpFunctionPanelState(token,-1);return}const config=this._getCurrentBodyDataStreamAndOffset(),functionAndParameter=this._lexerTreeBuilder.getFunctionAndParameter((config==null?void 0:config.dataStream)||"",startOffset-1+((config==null?void 0:config.offset)||0));if(!functionAndParameter){this._hideFunctionPanel();return}const{functionName,paramIndex}=functionAndParameter;this._changeHelpFunctionPanelState(functionName.toUpperCase(),paramIndex)}_changeHelpFunctionPanelState(token,paramIndex){const functionInfo=this._descriptionService.getFunctionInfo(token);this._hideFunctionPanel(),functionInfo!=null&&this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!0,paramIndex,functionInfo})}_hideFunctionPanel(){this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!1,searchText:""}),this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(isOnlyInputRangeEditor=!1){if(isOnlyInputRangeEditor){this._enterSelectingMode();return}const char=this._getCurrentChar(),dataStream=this._getCurrentDataStream();(dataStream==null?void 0:dataStream.substring(0,1))==="="&&char&&engineFormula.matchRefDrawToken(char)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,config=this._getCurrentBodyDataStreamAndOffset();return config==null||startOffset==null?void 0:config.dataStream[startOffset-1+config.offset]}_getCurrentDataStream(){const config=this._getCurrentBodyDataStreamAndOffset();return config==null?void 0:config.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var _a11,_b;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!(documentModel!=null&&documentModel.getBody()))return;const unitId=documentModel.getUnitId(),editor=this._editorService.getEditor(unitId),dataStream=(_b=(_a11=documentModel.getBody())==null?void 0:_a11.dataStream)!=null?_b:"";return!editor||!editor.onlyInputRange()?{dataStream,offset:0}:{dataStream:engineFormula.compareToken.EQUALS+dataStream,offset:1}}_getFormulaAndCellEditorBody(unitIds){return unitIds.map(unitId=>{const dataModel=this._univerInstanceService.getUniverDocInstance(unitId);return dataModel==null?void 0:dataModel.getBody()})}_editorModelUnitIds(){const unitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(unitId)&&!this._editorService.isSheetEditor(unitId)?[unitId]:sheetEditorUnitIds}_contextSwitch(){const config=this._getCurrentBodyDataStreamAndOffset();if(config&&core.isFormulaString(config.dataStream)){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(config.dataStream)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes);const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange;this._currentInsertRefStringIndex=startOffset-1+config.offset;return}this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const sequenceNodes=this._formulaPromptService.getSequenceNodes(),unitIds=this._editorModelUnitIds(),bodyList=this._getFormulaAndCellEditorBody(unitIds).filter(b=>!!b);if(this._refSelectionsService.clear(),sequenceNodes==null||sequenceNodes.length===0)this._existsSequenceNode=!1,bodyList.forEach(body=>body.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);bodyList.forEach(body=>body.textRuns=textRuns),this._allSelectionRenderServices.forEach(r=>this._refreshSelectionForReference(r,refSelections))}this._refreshFormulaAndCellEditor(unitIds)}_buildTextRuns(sequenceNodes){var _a11;const textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;const offset=((_a11=this._getCurrentBodyDataStreamAndOffset())==null?void 0:_a11.offset)||0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||this._descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%this._formulaRefColors.length;themeColor=this._formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=this._numberColor:nodeType===engineFormula.sequenceNodeType.STRING?themeColor=this._stringColor:nodeType===engineFormula.sequenceNodeType.ARRAY&&(themeColor=this._stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex+1-offset,ed:endIndex+2-offset,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}_exceedCurrentRange(range,rowCount,columnCount){const{endRow,endColumn}=range;return endRow>rowCount||endColumn>columnCount}_refreshSelectionForReference(refSelectionRenderService,refSelections){const{unitId,sheetId}=this._editorBridgeService.getEditCellState(),{unitId:selfUnitId,sheetId:selfSheetId}=this._getCurrentUnitIdAndSheetId(),isSelfSheet=sheetId===selfSheetId,worksheet=this._univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId);let lastRange=null;const selectionWithStyle=[];for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,gridRange=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=gridRange,range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());if(refUnitId!=null&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(!isSelfSheet&&refSheetId!==selfSheetId||isSelfSheet&&sheetName.length!==0&&refSheetId!==sheetId||this._exceedCurrentRange(range,worksheet.getRowCount(),worksheet.getColumnCount()))continue;const lastRangeCopy=this._getPrimary(range,themeColor,refIndex);if(lastRangeCopy){lastRange=lastRangeCopy;continue}const primary=sheets.getPrimaryForRange(range,worksheet);!core.Rectangle.equals(primary,range)&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.startRow=primary.startRow,range.endRow=primary.endRow,range.startColumn=primary.startColumn,range.endColumn=primary.endColumn),selectionWithStyle.push({range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())})}lastRange&&selectionWithStyle.push(lastRange),selectionWithStyle.length&&this._refSelectionsService.addSelections(unitId,sheetId,selectionWithStyle)}_getPrimary(range,themeColor,refIndex){var _a11;const primary=(_a11=this._insertSelections.find(selection=>{const{startRow,startColumn,endRow,endColumn}=selection.range;return startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn}))==null?void 0:_a11.primary;if(primary==null)return;const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;return(isMerged||isMergedMainCell)&&mergeStartRow===range.startRow&&mergeStartColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.endRow=mergeEndRow,range.endColumn=mergeEndColumn),{range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())}}_getSheetIdByName(unitId,sheetName){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return(_a11=workbook==null?void 0:workbook.getSheetBySheetName(engineFormula.normalizeSheetName(sheetName)))==null?void 0:_a11.getSheetId()}_getSheetNameById(unitId,sheetId){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return((_a11=workbook==null?void 0:workbook.getSheetBySheetId(sheetId))==null?void 0:_a11.getName())||""}_getCurrentUnitIdAndSheetId(){var _a11,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),skeleton=(_b=(_a11=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a11.with(sheetsUi.SheetSkeletonManagerService))==null?void 0:_b.getCurrentSkeleton();return{unitId:workbook.getUnitId(),sheetId:(worksheet==null?void 0:worksheet.getSheetId())||"",skeleton}}_getEditorOpenedForSheet(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor?{openUnitId:editor.getOpenForSheetUnitId(),openSheetId:editor.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(currentSelection){let refUnitId="",refSheetName="";const{unitId,sheetId}=currentSelection.range,{openUnitId,openSheetId}=this._getEditorOpenedForSheet();unitId!==openUnitId&&unitId&&(refUnitId=unitId),sheetId!==openSheetId&&unitId&&sheetId&&(refSheetName=this._getSheetNameById(unitId,sheetId));const{range,primary}=currentSelection;let{startRow,endRow,startColumn,endColumn}=range;const{startAbsoluteRefType,endAbsoluteRefType,rangeType}=range;if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}return engineFormula.serializeRangeToRefString({sheetName:refSheetName,unitId:refUnitId,range:{startRow,endRow,startColumn,endColumn,rangeType,startAbsoluteRefType,endAbsoluteRefType}})}_syncToEditor(sequenceNodes,textSelectionOffset,editorUnitId,canUndo=!0,fromSelection=!0){let dataStream=engineFormula.generateStringWithSequence(sequenceNodes);const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);this._isSelectionMovingRefSelections=refSelections,this._allSelectionRenderServices.forEach(r=>this._updateRefSelectionStyle(r,this._isSelectionMovingRefSelections));const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;this._currentInsertRefStringIndex=textSelectionOffset,editorUnitId==null&&(editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const editor=this._editorService.getEditor(editorUnitId);editor!=null&&editor.isSingleChoice()?(dataStream=dataStream.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let formulaString=dataStream,offset=1;(!editor||!editor.onlyInputRange())&&(formulaString=`${engineFormula.compareToken.EQUALS}${dataStream}`,offset=0);const{collapsed,style}=activeRange;canUndo?(this._commandService.executeCommand(docsUi.ReplaceContentCommand.id,{unitId:editorUnitId,body:{dataStream:formulaString,textRuns},textRanges:[{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,collapsed,style}],segmentId:null,options:{fromSelection}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})):(this._updateEditorModel(`${formulaString}\r
|
|
9
|
+
*/var f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q");reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a11){var key=_a11[0],value=_a11[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a11,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a11=node.children)===null||_a11===void 0)&&_a11.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid");IconBase.displayName="UniverIcon";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$3}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$2}))});CloseSingle.displayName="CloseSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DetailsSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"details-single",ref,icon:element$1}))});DetailsSingle.displayName="DetailsSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element}))});MoreSingle.displayName="MoreSingle";function getFunctionTypeValues(enumObj,localeService){return Object.keys(enumObj).filter(key=>isNaN(Number(key))&&key!=="DefinedName").map(key=>({label:localeService.t(`formula.functionType.${key.toLocaleLowerCase()}`),value:`${enumObj[key]}`}))}__name(getFunctionTypeValues,"getFunctionTypeValues");function generateParam(param){if(!param.require&&!param.repeat)return`[${param.name}]`;if(param.require&&!param.repeat)return param.name;if(!param.require&¶m.repeat)return`[${param.name},...]`;if(param.require&¶m.repeat)return`${param.name},...`}__name(generateParam,"generateParam");const useResizeScrollObserver=__name((callback,delay=100)=>{require$$0.useEffect(()=>{let throttleTimeout=null;const throttledCallback=__name(()=>{throttleTimeout===null&&(throttleTimeout=window.setTimeout(()=>{callback(),throttleTimeout=null},delay))},"throttledCallback");return window.addEventListener("scroll",throttledCallback),window.addEventListener("resize",throttledCallback),()=>{throttleTimeout!==null&&clearTimeout(throttleTimeout),window.removeEventListener("scroll",throttledCallback),window.removeEventListener("resize",throttledCallback)}},[callback,delay])},"useResizeScrollObserver"),formulaHelpFunction="univer-formula-help-function",formulaHelpFunctionTitle="univer-formula-help-function-title",formulaHelpFunctionTitleIcons="univer-formula-help-function-title-icons",formulaHelpFunctionTitleIcon="univer-formula-help-function-title-icon",formulaHelpFunctionContent="univer-formula-help-function-content",formulaHelpFunctionContentInner="univer-formula-help-function-content-inner",formulaHelpFunctionContentParams="univer-formula-help-function-content-params",formulaHelpFunctionContentParamsTitle="univer-formula-help-function-content-params-title",formulaHelpFunctionContentParamsDetail="univer-formula-help-function-content-params-detail",formulaHelpFunctionActive="univer-formula-help-function-active",formulaHelpDecorator="univer-formula-help-decorator",formulaHelpParam="univer-formula-help-param",formulaHelpParamPrefix="univer-formula-help-param-prefix",formulaHelpParamItem="univer-formula-help-param-item",formulaHelpParamActive="univer-formula-help-param-active",styles$5={formulaHelpFunction,formulaHelpFunctionTitle,formulaHelpFunctionTitleIcons,formulaHelpFunctionTitleIcon,formulaHelpFunctionContent,formulaHelpFunctionContentInner,formulaHelpFunctionContentParams,formulaHelpFunctionContentParamsTitle,formulaHelpFunctionContentParamsDetail,formulaHelpFunctionActive,formulaHelpDecorator,formulaHelpParam,formulaHelpParamPrefix,formulaHelpParamItem,formulaHelpParamActive};function HelpFunction(){const[visible,setVisible]=require$$0.useState(!1),[contentVisible,setContentVisible]=require$$0.useState(!0),[helpVisible,setHelpVisible]=require$$0.useState(!0),[paramIndex,setParamIndex]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[decoratorPosition,setDecoratorPosition]=require$$0.useState({left:0,top:0}),[functionInfo,setFunctionInfo]=require$$0.useState(null),promptService=core.useDependency(IFormulaPromptService),localeService=core.useDependency(core.LocaleService),required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional"),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService),sidebarService=core.useDependency(ui.ISidebarService),injector=core.useInjector();useResizeScrollObserver(updatePosition),require$$0.useEffect(()=>{const subscription=promptService.help$.subscribe(params=>{const{visible:visible2,paramIndex:paramIndex2,functionInfo:functionInfo2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;functionInfo2.description===""&&functionInfo2.functionParameter.length===0||(setOffset([left,top+height]),setParamIndex(paramIndex2),setFunctionInfo(functionInfo2),setDecoratorPosition({left,top}),setVisible(visible2))}),sidebarSubscription=sidebarService.scrollEvent$.pipe(rxjs.throttleTime(100)).subscribe(updatePosition);return()=>{subscription==null||subscription.unsubscribe(),sidebarSubscription.unsubscribe()}},[]);function updatePosition(){if(!helpVisible)return;const position=getPosition();if(position==null)return;const{left,top,height}=position;setOffset([left,top+height])}__name(updatePosition,"updatePosition");function getPosition(){const documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleSwitchActive(paramIndex2){setParamIndex(paramIndex2)}__name(handleSwitchActive,"handleSwitchActive");function handleClose(){setHelpVisible(!helpVisible),injector.get(ui.ILayoutService).focus()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:helpVisible?jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:functionInfo?jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunction,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitle,children:[jsxRuntimeExports.jsx(Help,{prefix:functionInfo.functionName,value:functionInfo.functionParameter,active:paramIndex,onClick:handleSwitchActive}),jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitleIcons,children:[jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,style:{transform:contentVisible?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:__name(()=>setContentVisible(!contentVisible),"onClick"),children:jsxRuntimeExports.jsx(MoreSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContent,style:{height:contentVisible?"unset":0,padding:contentVisible?"revert-layer":0},children:jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentInner,children:[jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpAbstract"),value:functionInfo.description}),functionInfo&&functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(Params,{className:paramIndex===i?styles$5.formulaHelpFunctionActive:"",title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}):visible?jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpDecorator,onClick:__name(()=>setHelpVisible(!helpVisible),"onClick"),style:{left:decoratorPosition.left-24,top:decoratorPosition.top},children:jsxRuntimeExports.jsx(DetailsSingle,{})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})}__name(HelpFunction,"HelpFunction");const Params=__name(props=>jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$5.formulaHelpFunctionContentParamsTitle} ${props.className}`,children:props.title}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContentParamsDetail,children:props.value})]}),"Params"),Help=__name(props=>{const{prefix,value,active,onClick}=props;return jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpParam,children:[jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamPrefix,children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamItem,children:[jsxRuntimeExports.jsx("span",{className:active===i?styles$5.formulaHelpFunctionActive:styles$5.formulaHelpParamActive,onClick:__name(()=>onClick(i),"onClick"),children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})},"Help"),formulaSearchFunction="univer-formula-search-function",formulaSearchFunctionItem="univer-formula-search-function-item",formulaSearchFunctionItemName="univer-formula-search-function-item-name",formulaSearchFunctionItemNameLight="univer-formula-search-function-item-name-light",formulaSearchFunctionItemDesc="univer-formula-search-function-item-desc",formulaSearchFunctionItemActive="univer-formula-search-function-item-active",styles$4={formulaSearchFunction,formulaSearchFunctionItem,formulaSearchFunctionItemName,formulaSearchFunctionItemNameLight,formulaSearchFunctionItemDesc,formulaSearchFunctionItemActive};function SearchFunction(){const[visible,setVisible]=require$$0.useState(!1),[active,setActive]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[searchList,setSearchList]=require$$0.useState([]),[searchText,setSearchText]=require$$0.useState(""),ulRef=require$$0.useRef(null),promptService=core.useDependency(IFormulaPromptService),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService);require$$0.useEffect(()=>{let updatedSearchList=[],updatedActive=0;const subscribeSearch=promptService.search$.subscribe(params=>{const{visible:visible2,searchText:searchText2,searchList:searchList2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;setSearchText(searchText2),setSearchList(searchList2),updatedSearchList=searchList2,setOffset([left,top+height]),setVisible(visible2),setActive(0),updatedActive=0}),subscribeNavigate=promptService.navigate$.subscribe(params=>{const{direction}=params;if(direction===core.Direction.UP){let nextActive=updatedActive-1;nextActive=nextActive<0?updatedSearchList.length-1:nextActive,setActive(nextActive),updatedActive=nextActive}else if(direction===core.Direction.DOWN){let nextActive=updatedActive+1;nextActive=nextActive>=updatedSearchList.length?0:nextActive,setActive(nextActive),updatedActive=nextActive}scrollToVisible(updatedActive)}),subscribeAccept=promptService.accept$.subscribe(params=>{const functionName=updatedSearchList[updatedActive].name;promptService.acceptFormulaName(functionName)});return()=>{subscribeSearch==null||subscribeSearch.unsubscribe(),subscribeNavigate==null||subscribeNavigate.unsubscribe(),subscribeAccept==null||subscribeAccept.unsubscribe()}},[]);function getPosition(){const editorUnitId=univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleLiMouseEnter(index){setActive(index)}__name(handleLiMouseEnter,"handleLiMouseEnter");function handleLiMouseLeave(){setActive(-1)}__name(handleLiMouseLeave,"handleLiMouseLeave");function scrollToVisible(liIndex){var _a11;const liElement=(_a11=ulRef.current)==null?void 0:_a11.querySelectorAll(`.${styles$4.formulaSearchFunctionItem}`)[liIndex];if(!liElement)return;const ulElement=liElement.parentNode;if(!ulElement)return;const ulTop=ulElement.getBoundingClientRect().top,ulHeight=ulElement.offsetHeight,liRect=liElement.getBoundingClientRect(),liTop=liRect.top,liHeight=liRect.height;if(liTop>=0&&liTop>ulTop&&liTop-ulTop+liHeight<=ulHeight)return;const scrollTo=liElement.offsetTop-(ulHeight-liHeight)/2;ulElement.scrollTo({top:scrollTo,behavior:"smooth"})}return __name(scrollToVisible,"scrollToVisible"),searchList.length>0&&jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("ul",{className:styles$4.formulaSearchFunction,ref:ulRef,children:searchList.map((item,index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles$4.formulaSearchFunctionItem} ${styles$4.formulaSearchFunctionItemActive}`:styles$4.formulaSearchFunctionItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>promptService.acceptFormulaName(item.name),"onClick"),children:[jsxRuntimeExports.jsxs("span",{className:styles$4.formulaSearchFunctionItemName,children:[jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemNameLight,children:item.name.substring(0,searchText.length)}),jsxRuntimeExports.jsx("span",{children:item.name.slice(searchText.length)})]}),jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemDesc,children:item.desc})]},index))})})}__name(SearchFunction,"SearchFunction");function RenderFormulaPromptContent(){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SearchFunction,{}),jsxRuntimeExports.jsx(HelpFunction,{})]})}__name(RenderFormulaPromptContent,"RenderFormulaPromptContent");const formulaMoreFunctions="univer-formula-more-functions",formulaMoreFunctionsOperation="univer-formula-more-functions-operation",styles$3={formulaMoreFunctions,formulaMoreFunctionsOperation};function FunctionHelp(props){const{prefix,value}=props;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("span",{children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})}__name(FunctionHelp,"FunctionHelp");const formulaFunctionParams="univer-formula-function-params",formulaFunctionParamsTitle="univer-formula-function-params-title",formulaFunctionParamsDetail="univer-formula-function-params-detail",styles$2={formulaFunctionParams,formulaFunctionParamsTitle,formulaFunctionParamsDetail};function FunctionParams(props){const{className,value,title}=props;return jsxRuntimeExports.jsxs("div",{className:styles$2.formulaFunctionParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$2.formulaFunctionParamsTitle} ${className}`,children:title}),jsxRuntimeExports.jsx("div",{className:styles$2.formulaFunctionParamsDetail,children:value})]})}__name(FunctionParams,"FunctionParams");const formulaInputParamsList="univer-formula-input-params-list",formulaInputParamsListItemName="univer-formula-input-params-list-item-name",formulaInputParamsListItemSelector="univer-formula-input-params-list-item-selector",styles$1={formulaInputParamsList,formulaInputParamsListItemName,formulaInputParamsListItemSelector};function InputParams(props){const{functionInfo,onChange}=props;if(!functionInfo)return null;require$$0.useState([]);const[functionParameter,setFunctionParameter]=require$$0.useState(functionInfo.functionParameter),[activeIndex,setActiveIndex]=require$$0.useState(-1);return jsxRuntimeExports.jsxs("div",{className:styles$1.formulaInputParams,children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsList,children:functionParameter.map((item,i)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemName,children:item.name}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemSelector})]},i))}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsInfo,children:jsxRuntimeExports.jsx(FunctionParams,{title:activeIndex===-1?jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionParameter}):functionParameter[activeIndex].name,value:activeIndex===-1?functionInfo.description:functionParameter[activeIndex].detail})})]})}__name(InputParams,"InputParams");const formulaSelectFunctionSelect="univer-formula-select-function-select",formulaSelectFunctionResult="univer-formula-select-function-result",formulaSelectFunctionResultItem="univer-formula-select-function-result-item",formulaSelectFunctionResultItemNameLight="univer-formula-select-function-result-item-name-light",formulaSelectFunctionResultItemSelected="univer-formula-select-function-result-item-selected",formulaSelectFunctionResultItemActive="univer-formula-select-function-result-item-active",formulaSelectFunctionContent="univer-formula-select-function-content",styles={formulaSelectFunctionSelect,formulaSelectFunctionResult,formulaSelectFunctionResultItem,formulaSelectFunctionResultItemNameLight,formulaSelectFunctionResultItemSelected,formulaSelectFunctionResultItemActive,formulaSelectFunctionContent};function SelectFunction(props){const{onChange}=props,allTypeValue="-1",[searchText,setSearchText]=require$$0.useState(""),[selectList,setSelectList]=require$$0.useState([]),[active,setActive]=require$$0.useState(0),[typeSelected,setTypeSelected]=require$$0.useState(allTypeValue),[nameSelected,setNameSelected]=require$$0.useState(0),[functionInfo,setFunctionInfo]=require$$0.useState(null),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),localeService=core.useDependency(core.LocaleService),sidebarService=core.useDependency(ui.ISidebarService),sidebarOptions=core.useObservable(sidebarService.sidebarOptions$),options=getFunctionTypeValues(engineFormula.FunctionType,localeService);options.unshift({label:localeService.t("formula.moreFunctions.allFunctions"),value:allTypeValue});const required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional");require$$0.useEffect(()=>{handleSelectChange(allTypeValue)},[]),require$$0.useEffect(()=>{setCurrentFunctionInfo(0)},[selectList]),require$$0.useEffect(()=>{sidebarOptions!=null&&sidebarOptions.visible&&(setSearchText(""),setSelectList([]),setActive(0),setTypeSelected(allTypeValue),setNameSelected(0),setFunctionInfo(null),handleSelectChange(allTypeValue))},[sidebarOptions]);const highlightSearchText=__name(text=>{if(searchText.trim()==="")return text;const regex=new RegExp(`(${searchText.toLocaleUpperCase()})`);return text.split(regex).filter(Boolean).map((part,index)=>part.match(regex)?jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemNameLight,children:part},index):part)},"highlightSearchText"),setCurrentFunctionInfo=__name(selectedIndex=>{if(selectList.length===0){setFunctionInfo(null);return}setNameSelected(selectedIndex);const functionInfo2=descriptionService.getFunctionInfo(selectList[selectedIndex].name);if(!functionInfo2){setFunctionInfo(null);return}setFunctionInfo(functionInfo2),onChange(functionInfo2)},"setCurrentFunctionInfo");function handleSelectChange(value){setTypeSelected(value);const selectList2=descriptionService.getSearchListByType(+value);setSelectList(selectList2)}__name(handleSelectChange,"handleSelectChange");function handleSearchInputChange(value){setSearchText(value);const selectList2=descriptionService.getSearchListByName(value);setSelectList(selectList2)}__name(handleSearchInputChange,"handleSearchInputChange");function handleSelectListKeyDown(e){if(e.stopPropagation(),e.key==="ArrowDown"){const nextActive=active+1;setActive(nextActive===selectList.length?0:nextActive)}else if(e.key==="ArrowUp"){const nextActive=active-1;setActive(nextActive===-1?selectList.length-1:nextActive)}else e.key==="Enter"&&setCurrentFunctionInfo(active)}__name(handleSelectListKeyDown,"handleSelectListKeyDown");const handleLiMouseEnter=__name(index=>{setActive(index)},"handleLiMouseEnter"),handleLiMouseLeave=__name(()=>{setActive(-1)},"handleLiMouseLeave");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionSelect,children:[jsxRuntimeExports.jsx(design.Select,{value:typeSelected,options,onChange:handleSelectChange}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:handleSelectListKeyDown,value:searchText,onChange:handleSearchInputChange,size:"large",allowClear:!0})]}),jsxRuntimeExports.jsx("ul",{className:styles.formulaSelectFunctionResult,onKeyDown:handleSelectListKeyDown,tabIndex:-1,children:selectList.map(({name},index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles.formulaSelectFunctionResultItem} ${styles.formulaSelectFunctionResultItemActive}`:styles.formulaSelectFunctionResultItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>setCurrentFunctionInfo(index),"onClick"),children:[nameSelected===index&&jsxRuntimeExports.jsx(CheckMarkSingle,{className:styles.formulaSelectFunctionResultItemSelected}),jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemName,children:highlightSearchText(name)})]},index))}),functionInfo&&jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionContent,children:[jsxRuntimeExports.jsx(FunctionParams,{title:functionInfo.functionName,value:functionInfo.description}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.moreFunctions.syntax"),value:jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionInfo.functionParameter})}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(FunctionParams,{title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})]})}__name(SelectFunction,"SelectFunction");function MoreFunctions(){const workbook=sheetsUi.useActiveWorkbook(),[selectFunction,setSelectFunction]=require$$0.useState(!0),[inputParams,setInputParams]=require$$0.useState(!1),[functionInfo,setFunctionInfo]=require$$0.useState(null),localeService=core.useDependency(core.LocaleService),editorService=core.useDependency(docsUi.IEditorService);function handleClickNextPrev(){setSelectFunction(!selectFunction),setInputParams(!inputParams)}__name(handleClickNextPrev,"handleClickNextPrev");function handleConfirm(){editorService.setFormula(`=${functionInfo==null?void 0:functionInfo.functionName}(`)}return __name(handleConfirm,"handleConfirm"),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctions,children:[selectFunction&&jsxRuntimeExports.jsx(SelectFunction,{onChange:setFunctionInfo}),inputParams&&jsxRuntimeExports.jsx(InputParams,{functionInfo,onChange:__name(()=>{},"onChange")}),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctionsOperation,children:[inputParams&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.next")}),inputParams&&jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.prev")}),selectFunction&&!!workbook&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:localeService.t("formula.moreFunctions.confirm")})]})]})}__name(MoreFunctions,"MoreFunctions");function InsertFunctionMenuItemFactory(accessor){return{id:InsertFunctionOperation.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:ui.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(InsertFunctionMenuItemFactory,"InsertFunctionMenuItemFactory");function MoreFunctionsMenuItemFactory(accessor){return{id:MoreFunctionsOperation.id,title:"formula.insert.more",type:ui.MenuItemType.BUTTON}}__name(MoreFunctionsMenuItemFactory,"MoreFunctionsMenuItemFactory");function menuClipboardDisabledObservable(injector){return injector.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook&&injector.get(ui.IClipboardInterfaceService)?new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard)):rxjs.of(!0)))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function PasteFormulaMenuItemFactory(accessor){return{id:SheetOnlyPasteFormulaCommand.id,type:ui.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteFormulaMenuItemFactory,"PasteFormulaMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[InsertFunctionOperation.id]:{order:1,menuItemFactory:InsertFunctionMenuItemFactory,[MoreFunctionsOperation.id]:{order:1,menuItemFactory:MoreFunctionsMenuItemFactory}}},[sheetsUi.PASTE_SPECIAL_MENU_ID]:{[SheetOnlyPasteFormulaCommand.id]:{order:4,menuItemFactory:PasteFormulaMenuItemFactory}}},META_KEY_CTRL_AND_SHIFT="meta_key_ctrl_And_Shift",PROMPT_SELECTION_KEYCODE_ARROW_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],PROMPT_SELECTION_KEYCODE_LIST=[...PROMPT_SELECTION_KEYCODE_ARROW_LIST,ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ESC];function promptSelectionShortcutItem(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode}});return shortcutList}__name(promptSelectionShortcutItem,"promptSelectionShortcutItem");function promptSelectionShortcutItemShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.SHIFT}});return shortcutList}__name(promptSelectionShortcutItemShift,"promptSelectionShortcutItemShift");function promptSelectionShortcutItemCtrl(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.CTRL_COMMAND}});return shortcutList}__name(promptSelectionShortcutItemCtrl,"promptSelectionShortcutItemCtrl");function promptSelectionShortcutItemCtrlAndShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:META_KEY_CTRL_AND_SHIFT}});return shortcutList}__name(promptSelectionShortcutItemCtrlAndShift,"promptSelectionShortcutItemCtrlAndShift");const ChangeRefToAbsoluteShortcut={id:ReferenceAbsoluteOperation.id,binding:ui.KeyCode.F4,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions")};function singleEditorPromptSelectionShortcutItem(){const shortcutList=[];for(const keycode of[ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP])shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorStandalone(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isSingleEditor:!0}});return shortcutList}__name(singleEditorPromptSelectionShortcutItem,"singleEditorPromptSelectionShortcutItem");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3"),_a7;let FormulaUIController=(_a7=class extends core.Disposable{constructor(_injector,_menuManagerService,_commandService,_shortcutService,_uiPartsService,_renderManagerService,_componentManager){super(),this._injector=_injector,this._menuManagerService=_menuManagerService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._uiPartsService=_uiPartsService,this._renderManagerService=_renderManagerService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(menuSchema)}_registerCommands(){[SheetOnlyPasteFormulaCommand,InsertFunctionOperation,MoreFunctionsOperation,SearchFunctionOperation,HelpFunctionOperation,SelectEditorFormulaOperation,ReferenceAbsoluteOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerShortcuts(){[...promptSelectionShortcutItem(),...promptSelectionShortcutItemShift(),...promptSelectionShortcutItemCtrl(),...promptSelectionShortcutItemCtrlAndShift(),...singleEditorPromptSelectionShortcutItem(),ChangeRefToAbsoluteShortcut].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderFormulaPromptContent,this._injector))),this._componentManager.register(MORE_FUNCTIONS_COMPONENT,MoreFunctions)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[FormulaEditorShowController]))}},__name(_a7,"FormulaUIController"),_a7);FormulaUIController=__decorateClass$3([__decorateParam$3(0,core.Inject(core.Injector)),__decorateParam$3(1,ui.IMenuManagerService),__decorateParam$3(2,core.ICommandService),__decorateParam$3(3,ui.IShortcutService),__decorateParam$3(4,ui.IUIPartsService),__decorateParam$3(5,engineRender.IRenderManagerService),__decorateParam$3(6,core.Inject(ui.ComponentManager))],FormulaUIController);function getFormulaRefSelectionStyle(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle,"getFormulaRefSelectionStyle");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2"),_a8;let RefSelectionsRenderService=(_a8=class extends sheetsUi.BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,sheetSkeletonManagerService,_refSelectionsService){super(injector,themeService,shortcutService,sheetSkeletonManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_eventDisposables");this._context=_context,this._refSelectionsService=_refSelectionsService,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(getDefaultRefSelectionStyle(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(enabled){this._remainLastEnabled=enabled}setSkipLastEnabled(enabled){this._skipLastEnabled=enabled}clearLastSelection(){const last=this._selectionControls[this._selectionControls.length-1];last&&(last.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),core.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var _a11;(_a11=this._eventDisposables)==null||_a11.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const sheetObject=this._getSheetObject(),{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context,listenerDisposables=new core.DisposableCollection;return listenerDisposables.add(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation()})),listenerDisposables.add(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=sheetsUi.getAllSelection(skeleton),selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),evt.button!==2&&state.stopPropagation()})),listenerDisposables}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_END)}))}_updateSelections(selectionDataWithStyleList,type){const sheetId=this._context.unit.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._workbookSelections.setSelections(sheetId,selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle)),type)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(selectionsWithStyles=>{this._reset();for(const selectionWithStyle of selectionsWithStyles){const selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return;const{skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==skeleton.worksheet.getSheetId()&&this._reset(),this._changeRuntime(skeleton,scene,viewportMain);const currentSelections=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(currentSelections||[])}))}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>sheetsUi.attachSelectionWithCoord(selectionWithStyle,this._skeleton));this.updateControlForCurrentByRangeData(selections)}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return sheetsUi.getSheetObject(this._context.unit,this._context)}},__name(_a8,"RefSelectionsRenderService"),_a8);RefSelectionsRenderService=__decorateClass$2([__decorateParam$2(1,core.Inject(core.Injector)),__decorateParam$2(2,core.Inject(core.ThemeService)),__decorateParam$2(3,ui.IShortcutService),__decorateParam$2(4,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$2(5,sheets.IRefSelectionsService)],RefSelectionsRenderService);function getDefaultRefSelectionStyle(themeService){const style=sheets.getNormalSelectionStyle(themeService);return style.hasAutoFill=!1,style.hasRowHeader=!1,style.hasColumnHeader=!1,style.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},style}__name(getDefaultRefSelectionStyle,"getDefaultRefSelectionStyle");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const sheetEditorUnitIds=[core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];var _a9;let PromptController=(_a9=class extends core.Disposable{constructor(_commandService,_contextService,_editorBridgeService,_formulaPromptService,_lexerTreeBuilder,_renderManagerService,_themeService,_sheetsSelectionsService,_refSelectionsService,_univerInstanceService,_descriptionService,_docSelectionManagerService,_contextMenuService,_editorService,_layoutService){super();__publicField(this,"_listenInputCache",new Set);__publicField(this,"_formulaRefColors",[]);__publicField(this,"_previousSequenceNodes");__publicField(this,"_previousRangesCount",0);__publicField(this,"_previousInsertRefStringIndex");__publicField(this,"_currentInsertRefStringIndex",-1);__publicField(this,"_arrowMoveActionState",0);__publicField(this,"_isSelectionMovingRefSelections",[]);__publicField(this,"_stringColor","");__publicField(this,"_numberColor","");__publicField(this,"_insertSelections",[]);__publicField(this,"_inputPanelState",0);__publicField(this,"_userCursorMove",!1);__publicField(this,"_previousEditorUnitId");__publicField(this,"_existsSequenceNode",!1);__publicField(this,"_currentlyWorkingRefRenderer",null);__publicField(this,"_selectionsChangeDisposables");__publicField(this,"_isSelectingMode",!1);this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._formulaPromptService=_formulaPromptService,this._lexerTreeBuilder=_lexerTreeBuilder,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._sheetsSelectionsService=_sheetsSelectionsService,this._refSelectionsService=_refSelectionsService,this._univerInstanceService=_univerInstanceService,this._descriptionService=_descriptionService,this._docSelectionManagerService=_docSelectionManagerService,this._contextMenuService=_contextMenuService,this._editorService=_editorService,this._layoutService=_layoutService,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(core.UniverInstanceType.UNIVER_SHEET).map(renderer=>renderer.with(RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const style=this._themeService.getCurrentTheme();this._formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],this._numberColor=style.hyacinth700,this._stringColor=style.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.pipe(rxjs.distinctUntilChanged((prev,curr)=>(prev==null?void 0:prev.unitId)===(curr==null?void 0:curr.unitId)&&(prev==null?void 0:prev.segmentId)===(curr==null?void 0:curr.segmentId)&&!!(prev!=null&&prev.textRanges.every((t,i)=>t.startOffset===(curr==null?void 0:curr.textRanges[i].startOffset)&&t.endOffset===(curr==null?void 0:curr.textRanges[i].endOffset))))).subscribe(params=>{var _a11;if((params==null?void 0:params.unitId)==null)return;const editor=this._editorService.getEditor(params.unitId);if(!editor||editor.onlyInputContent()||editor.isSheetEditor()&&!this._isFormulaEditorActivated()||editor.params.scrollBar)return;const onlyInputRange=editor.onlyInputRange();(_a11=params==null?void 0:params.options)!=null&&_a11.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(onlyInputRange),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!onlyInputRange&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const arrows=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT,ui.KeyCode.CTRL,ui.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{var _a11;const unitId=documentDataModel==null?void 0:documentDataModel.getUnitId();if(unitId==null||this._listenInputCache.has(unitId)||this._editorService.getEditor(unitId)==null)return;const docSelectionRenderService=(_a11=this._renderManagerService.getRenderById(unitId))==null?void 0:_a11.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&this.disposeWithMe(docSelectionRenderService.onInputBefore$.subscribe(param=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const event=param==null?void 0:param.event;event&&(arrows.includes(event.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),event.which!==ui.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(unitId)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(rxjs.distinctUntilKeyChanged("visible")).subscribe(visibleParam=>{visibleParam.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(core.FORMULA_EDITOR_ACTIVATED).pipe(rxjs.distinctUntilChanged()).subscribe(activated=>{activated||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{if(documentDataModel==null)return;const editorId=documentDataModel.getUnitId();!this._editorService.isEditor(editorId)||this._previousEditorUnitId===editorId||this._editorService.isSheetEditor(editorId)||(this._closeRangePrompt(editorId),this._previousEditorUnitId=editorId)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(editorId){this._insertSelections=[],this._refSelectionsService.clear(),editorId&&this._editorService.isSheetEditor(editorId)&&this._updateEditorModel(`\r
|
|
10
|
+
`,[]),this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel()}_initSelectionsEndListener(){const d=new core.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(selections=>{if(d.dispose(),selections.length===0)return;this._allSelectionRenderServices.map(s=>s.getSelectionControls()).flat().forEach(c=>{c.disableHelperSelection(),d.add(c.selectionMoving$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionScaling$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionMoved$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange())),d.add(c.selectionScaled$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange()))})}))}_updateSelecting(selectionsWithStyles,performInsertion=!1){if(selectionsWithStyles.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(selectionsWithStyles),performInsertion)){const currentSelection=selectionsWithStyles[selectionsWithStyles.length-1];this._insertControlSelectionReplace(currentSelection)}}_enableRefSelectionsRenderService(){const d=this._selectionsChangeDisposables=new core.DisposableCollection;this._allSelectionRenderServices.forEach(renderer=>{d.add(renderer.enableSelectionChanging()),d.add(renderer.selectionMoving$.subscribe(selections=>{this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)))})),d.add(renderer.selectionMoveStart$.subscribe(selections=>{const performInsertion=this._checkClearingLastSelection(renderer);this._currentlyWorkingRefRenderer=renderer,this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)),performInsertion)}))})}_checkClearingLastSelection(renderer){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==renderer?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var _a11;(_a11=this._selectionsChangeDisposables)==null||_a11.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(selections){const currentSelection=selections[selections.length-1];if(this._resetSequenceNodes(selections.length),(selections.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(currentSelection);else{let insertNodes=this._formulaPromptService.getSequenceNodes();const char=this._getCurrentChar();insertNodes.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!engineFormula.matchRefDrawToken(char)&&this._focusIsOnlyRange(selections.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,engineFormula.matchToken.COMMA),insertNodes=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=core.Tools.deepClone(insertNodes),this._formulaPromptService.setSequenceNodes(insertNodes);const refString=this._generateRefString(currentSelection);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=selections.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(formulaString=>{const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,lastSequenceNodes=this._formulaPromptService.getSequenceNodes(),nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(startOffset-2),node=lastSequenceNodes[nodeIndex];if(node==null||typeof node=="string"){this._hideFunctionPanel();return}const difference=formulaString.length-node.token.length,newNode={...node};newNode.token=formulaString,newNode.endIndex+=difference,lastSequenceNodes[nodeIndex]=newNode;const isDefinedName=this._descriptionService.hasDefinedNameDescription(formulaString),isFormulaDefinedName=this._descriptionService.isFormulaDefinedName(formulaString),formulaStringCount=formulaString.length+1,mustAddBracket=!isDefinedName||isFormulaDefinedName;mustAddBracket&&lastSequenceNodes.splice(nodeIndex+1,0,engineFormula.matchToken.OPEN_BRACKET);for(let i=nodeIndex+2,len=lastSequenceNodes.length;i<len;i++){const node2=lastSequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=formulaStringCount,newNode2.endIndex+=formulaStringCount,lastSequenceNodes[i]=newNode2}let selectionIndex=newNode.endIndex+1;mustAddBracket&&(selectionIndex+=1),this._syncToEditor(lastSequenceNodes,selectionIndex,void 0,!0,!1)}))}_changeFunctionPanelState(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,currentSequenceNode=this._formulaPromptService.getCurrentSequenceNode(startOffset-2);if(currentSequenceNode==null){this._hideFunctionPanel();return}if(typeof currentSequenceNode!="string"&¤tSequenceNode.nodeType===engineFormula.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(currentSequenceNode.token.trim())){const token=currentSequenceNode.token.toUpperCase();if(this._inputPanelState===1){const searchList=this._descriptionService.getSearchListByNameFirstLetter(token);if(this._hideFunctionPanel(),searchList==null||searchList.length===0)return;this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!0,searchText:token,searchList})}else this._changeHelpFunctionPanelState(token,-1);return}const config=this._getCurrentBodyDataStreamAndOffset(),functionAndParameter=this._lexerTreeBuilder.getFunctionAndParameter((config==null?void 0:config.dataStream)||"",startOffset-1+((config==null?void 0:config.offset)||0));if(!functionAndParameter){this._hideFunctionPanel();return}const{functionName,paramIndex}=functionAndParameter;this._changeHelpFunctionPanelState(functionName.toUpperCase(),paramIndex)}_changeHelpFunctionPanelState(token,paramIndex){const functionInfo=this._descriptionService.getFunctionInfo(token);this._hideFunctionPanel(),functionInfo!=null&&this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!0,paramIndex,functionInfo})}_hideFunctionPanel(){this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!1,searchText:""}),this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(isOnlyInputRangeEditor=!1){if(isOnlyInputRangeEditor){this._enterSelectingMode();return}const char=this._getCurrentChar(),dataStream=this._getCurrentDataStream();(dataStream==null?void 0:dataStream.substring(0,1))==="="&&char&&engineFormula.matchRefDrawToken(char)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,config=this._getCurrentBodyDataStreamAndOffset();return config==null||startOffset==null?void 0:config.dataStream[startOffset-1+config.offset]}_getCurrentDataStream(){const config=this._getCurrentBodyDataStreamAndOffset();return config==null?void 0:config.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var _a11,_b;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!(documentModel!=null&&documentModel.getBody()))return;const unitId=documentModel.getUnitId(),editor=this._editorService.getEditor(unitId),dataStream=(_b=(_a11=documentModel.getBody())==null?void 0:_a11.dataStream)!=null?_b:"";return!editor||!editor.onlyInputRange()?{dataStream,offset:0}:{dataStream:engineFormula.compareToken.EQUALS+dataStream,offset:1}}_getFormulaAndCellEditorBody(unitIds){return unitIds.map(unitId=>{const dataModel=this._univerInstanceService.getUniverDocInstance(unitId);return dataModel==null?void 0:dataModel.getBody()})}_editorModelUnitIds(){const unitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(unitId)&&!this._editorService.isSheetEditor(unitId)?[unitId]:sheetEditorUnitIds}_contextSwitch(){const config=this._getCurrentBodyDataStreamAndOffset();if(config&&core.isFormulaString(config.dataStream)){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(config.dataStream)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes);const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange;this._currentInsertRefStringIndex=startOffset-1+config.offset;return}this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const sequenceNodes=this._formulaPromptService.getSequenceNodes(),unitIds=this._editorModelUnitIds(),bodyList=this._getFormulaAndCellEditorBody(unitIds).filter(b=>!!b);if(this._refSelectionsService.clear(),sequenceNodes==null||sequenceNodes.length===0)this._existsSequenceNode=!1,bodyList.forEach(body=>body.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);bodyList.forEach(body=>body.textRuns=textRuns),this._allSelectionRenderServices.forEach(r=>this._refreshSelectionForReference(r,refSelections))}this._refreshFormulaAndCellEditor(unitIds)}_buildTextRuns(sequenceNodes){var _a11;const textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;const offset=((_a11=this._getCurrentBodyDataStreamAndOffset())==null?void 0:_a11.offset)||0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||this._descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%this._formulaRefColors.length;themeColor=this._formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=this._numberColor:nodeType===engineFormula.sequenceNodeType.STRING?themeColor=this._stringColor:nodeType===engineFormula.sequenceNodeType.ARRAY&&(themeColor=this._stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex+1-offset,ed:endIndex+2-offset,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}_exceedCurrentRange(range,rowCount,columnCount){const{startRow,startColumn}=range;return startRow>rowCount-1||startColumn>columnCount-1}_refreshSelectionForReference(refSelectionRenderService,refSelections){const{unitId,sheetId}=this._editorBridgeService.getEditCellState(),{unitId:selfUnitId,sheetId:selfSheetId}=this._getCurrentUnitIdAndSheetId(),isSelfSheet=sheetId===selfSheetId,worksheet=this._univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId);let lastRange=null;const selectionWithStyle=[];for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,gridRange=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=gridRange,range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());if(refUnitId!=null&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(!isSelfSheet&&refSheetId!==selfSheetId||isSelfSheet&&sheetName.length!==0&&refSheetId!==sheetId||this._exceedCurrentRange(range,worksheet.getRowCount(),worksheet.getColumnCount()))continue;const lastRangeCopy=this._getPrimary(range,themeColor,refIndex);if(lastRangeCopy){lastRange=lastRangeCopy;continue}const primary=sheets.getPrimaryForRange(range,worksheet);!core.Rectangle.equals(primary,range)&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.startRow=primary.startRow,range.endRow=primary.endRow,range.startColumn=primary.startColumn,range.endColumn=primary.endColumn),selectionWithStyle.push({range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())})}lastRange&&selectionWithStyle.push(lastRange),selectionWithStyle.length&&this._refSelectionsService.addSelections(unitId,sheetId,selectionWithStyle)}_getPrimary(range,themeColor,refIndex){var _a11;const primary=(_a11=this._insertSelections.find(selection=>{const{startRow,startColumn,endRow,endColumn}=selection.range;return startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn}))==null?void 0:_a11.primary;if(primary==null)return;const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;return(isMerged||isMergedMainCell)&&mergeStartRow===range.startRow&&mergeStartColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.endRow=mergeEndRow,range.endColumn=mergeEndColumn),{range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())}}_getSheetIdByName(unitId,sheetName){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return(_a11=workbook==null?void 0:workbook.getSheetBySheetName(engineFormula.normalizeSheetName(sheetName)))==null?void 0:_a11.getSheetId()}_getSheetNameById(unitId,sheetId){var _a11;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return((_a11=workbook==null?void 0:workbook.getSheetBySheetId(sheetId))==null?void 0:_a11.getName())||""}_getCurrentUnitIdAndSheetId(){var _a11,_b;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),skeleton=(_b=(_a11=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a11.with(sheetsUi.SheetSkeletonManagerService))==null?void 0:_b.getCurrentSkeleton();return{unitId:workbook.getUnitId(),sheetId:(worksheet==null?void 0:worksheet.getSheetId())||"",skeleton}}_getEditorOpenedForSheet(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor?{openUnitId:editor.getOpenForSheetUnitId(),openSheetId:editor.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(currentSelection){let refUnitId="",refSheetName="";const{unitId,sheetId}=currentSelection.range,{openUnitId,openSheetId}=this._getEditorOpenedForSheet();unitId!==openUnitId&&unitId&&(refUnitId=unitId),sheetId!==openSheetId&&unitId&&sheetId&&(refSheetName=this._getSheetNameById(unitId,sheetId));const{range,primary}=currentSelection;let{startRow,endRow,startColumn,endColumn}=range;const{startAbsoluteRefType,endAbsoluteRefType,rangeType}=range;if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}return engineFormula.serializeRangeToRefString({sheetName:refSheetName,unitId:refUnitId,range:{startRow,endRow,startColumn,endColumn,rangeType,startAbsoluteRefType,endAbsoluteRefType}})}_syncToEditor(sequenceNodes,textSelectionOffset,editorUnitId,canUndo=!0,fromSelection=!0){let dataStream=engineFormula.generateStringWithSequence(sequenceNodes);const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);this._isSelectionMovingRefSelections=refSelections,this._allSelectionRenderServices.forEach(r=>this._updateRefSelectionStyle(r,this._isSelectionMovingRefSelections));const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;this._currentInsertRefStringIndex=textSelectionOffset,editorUnitId==null&&(editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const editor=this._editorService.getEditor(editorUnitId);editor!=null&&editor.isSingleChoice()?(dataStream=dataStream.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let formulaString=dataStream,offset=1;(!editor||!editor.onlyInputRange())&&(formulaString=`${engineFormula.compareToken.EQUALS}${dataStream}`,offset=0);const{collapsed,style}=activeRange;canUndo?(this._commandService.executeCommand(docsUi.ReplaceContentCommand.id,{unitId:editorUnitId,body:{dataStream:formulaString,textRuns},textRanges:[{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,collapsed,style}],segmentId:null,options:{fromSelection}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})):(this._updateEditorModel(`${formulaString}\r
|
|
11
11
|
`,textRuns),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})),this._layoutService.focus()}_fitEditorSize(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();this._editorService.isEditor(editorUnitId)&&!this._editorService.isSheetEditor(editorUnitId)||this._commandService.executeCommand(ui.SetEditorResizeOperation.id,{unitId:editorUnitId})}_updateEditorModel(dataStream,textRuns){var _a11;const documentDataModel=this._univerInstanceService.getCurrentUniverDocInstance(),editorUnitId=documentDataModel.getUnitId();if(!this._editorService.isEditor(editorUnitId))return;const docViewModel=(_a11=this._renderManagerService.getRenderById(editorUnitId))==null?void 0:_a11.with(docs.DocSkeletonManagerService).getViewModel();if(docViewModel==null||documentDataModel==null)return;const snapshot=documentDataModel==null?void 0:documentDataModel.getSnapshot();if(snapshot==null)return;const newBody={dataStream,textRuns};snapshot.body=newBody,docViewModel.reset(documentDataModel)}_insertControlSelectionReplace(currentSelection){this._previousSequenceNodes==null&&(this._previousSequenceNodes=this._formulaPromptService.getSequenceNodes()),this._previousInsertRefStringIndex==null&&(this._previousInsertRefStringIndex=this._currentInsertRefStringIndex);const insertNodes=core.Tools.deepClone(this._previousSequenceNodes);if(insertNodes==null)return;const refString=this._generateRefString(currentSelection);this._formulaPromptService.setSequenceNodes(insertNodes),this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._syncToEditor(insertNodes,this._previousInsertRefStringIndex+refString.length);const selectionDatas=this._selectionRenderService.getSelectionDataWithStyle();this._insertSelections=[],selectionDatas.forEach(currentSelection2=>{const range=sheets.convertSelectionDataToRange(currentSelection2);this._insertSelections.push(range)})}_focusIsOnlyRange(selectionCount){const currentEditor=this._editorService.getFocusEditor();return!currentEditor||!currentEditor.onlyInputRange()||this._existsSequenceNode||selectionCount>1||this._previousSequenceNodes!=null&&this._previousSequenceNodes.length>0?!0:(this._previousInsertRefStringIndex!=null&&(this._previousInsertRefStringIndex+=1),!1)}_resetSequenceNodes(selectionCount){const currentEditor=this._editorService.getFocusEditor();currentEditor&¤tEditor.onlyInputRange()&&(selectionCount>1||this._existsSequenceNode&&(this._formulaPromptService.clearSequenceNodes(),this._previousRangesCount=0,this._existsSequenceNode=!1))}_updateRefSelectionStyle(refSelectionRenderService,refSelections){const controls=refSelectionRenderService.getSelectionControls(),[unitId,sheetId]=refSelectionRenderService.getLocation(),matchedControls=new Set;for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{refIndex,themeColor,token}=refSelection,rangeWithSheet=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range}=rangeWithSheet;if(!refUnitId&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(refSheetId&&refSheetId!==sheetId)continue;const control=controls.find(c=>{const{startRow,startColumn,endRow,endColumn,rangeType}=c.getRange();return rangeType===core.RANGE_TYPE.COLUMN&&startColumn===range.startColumn&&endColumn===range.endColumn||rangeType===core.RANGE_TYPE.ROW&&startRow===range.startRow&&endRow===range.endRow||startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn});if(control){const style=getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString());control.updateStyle(style),matchedControls.add(control)}}}_onSelectionControlChange(toRange,selectionControl){var _a11;const{skeleton}=this._getCurrentUnitIdAndSheetId();this._formulaPromptService.enableLockedSelectionChange();const id=(_a11=selectionControl.currentStyle)==null?void 0:_a11.id;if(!id||!core.Tools.isStringNumber(id))return;let{startRow,endRow,startColumn,endColumn}=toRange;const primary=skeleton?skeleton.worksheet.getCellInfoInMergeData(startRow,startColumn):{actualRow:startRow,actualColumn:startColumn,isMergedMainCell:!1,isMerged:!1,endRow:startRow,endColumn:startColumn,startRow,startColumn};if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}const nodeIndex=Number(id),currentNode=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);let refType={startAbsoluteRefType:core.AbsoluteRefType.NONE};if(typeof currentNode!="string"){const token=currentNode.token;refType=engineFormula.getAbsoluteRefTypeWitString(token),refType.endAbsoluteRefType==null&&(refType.endAbsoluteRefType=refType.startAbsoluteRefType)}const unitId=skeleton==null?void 0:skeleton.worksheet.getUnitId(),sheetId=skeleton==null?void 0:skeleton.worksheet.getSheetId(),refString=this._generateRefString({range:{startRow:Math.min(startRow,endRow),endRow:Math.max(startRow,endRow),startColumn:Math.min(startColumn,endColumn),endColumn:Math.max(startColumn,endColumn),...refType,sheetId,unitId},primary,style:null});this._formulaPromptService.updateSequenceRef(nodeIndex,refString);const sequenceNodes=this._formulaPromptService.getSequenceNodes(),node=sequenceNodes[nodeIndex];typeof node!="string"&&(this._syncToEditor(sequenceNodes,node.endIndex+1),selectionControl.update(toRange,void 0,void 0,void 0,this._selectionRenderService.attachPrimaryWithCoord(primary)))}_refreshFormulaAndCellEditor(unitIds){var _a11;for(const unitId of unitIds){const editorObject=sheetsUi.getEditorObject(unitId,this._renderManagerService),documentComponent=editorObject==null?void 0:editorObject.document;documentComponent!=null&&((_a11=documentComponent.getSkeleton())==null||_a11.calculate(),documentComponent.makeDirty())}}_cursorStateListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._arrowMoveActionState=1,this._inputPanelState=3}))}_pressEnter(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressTab(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressEsc(params){const{keycode}=params,focusEditor=this._editorService.getFocusEditor();(!focusEditor||(focusEditor==null?void 0:focusEditor.isSheetEditor())===!0)&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressArrowKey(params){const{keycode,metaKey}=params;let direction=core.Direction.DOWN;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_LEFT?direction=core.Direction.LEFT:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),metaKey===ui.MetaKeys.CTRL_COMMAND?this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):metaKey===ui.MetaKeys.SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction}):metaKey===META_KEY_CTRL_AND_SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction})}_commandExecutedListener(){const updateCommandList=[SelectEditorFormulaOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===ReferenceAbsoluteOperation.id)this._changeRefString();else if(updateCommandList.includes(command.id)){const params=command.params,{keycode,isSingleEditor=!1}=params;if(keycode===ui.KeyCode.ENTER){this._pressEnter(params);return}if(keycode===ui.KeyCode.TAB){this._pressTab(params);return}if(keycode===ui.KeyCode.ESC){this._pressEsc(params);return}if(this._formulaPromptService.isSearching()){if(keycode===ui.KeyCode.ARROW_DOWN){this._formulaPromptService.navigate({direction:core.Direction.DOWN});return}if(keycode===ui.KeyCode.ARROW_UP){this._formulaPromptService.navigate({direction:core.Direction.UP});return}}if(isSingleEditor===!0)return;if(this._arrowMoveActionState===1){this._moveInEditor(keycode);return}if(this._arrowMoveActionState===4){this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""});return}if(this._arrowMoveActionState===2&&(this._arrowMoveActionState=3),this._refSelectionsService.getCurrentSelections().length===0){const selectionData=this._sheetsSelectionsService.getCurrentLastSelection();if(selectionData!=null){const selectionDataNew=core.Tools.deepClone(selectionData);this._refSelectionsService.addSelections([selectionDataNew])}}this._pressArrowKey(params);const selectionWithStyles=this._refSelectionsService.getCurrentSelections(),currentSelection=selectionWithStyles[selectionWithStyles.length-1];this._insertControlSelectionReplace(currentSelection),this._highlightFormula()}}))}_moveInEditor(keycode){if(keycode==null)return;let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),this._commandService.executeCommand(docsUi.MoveCursorOperation.id,{direction})}_userMouseListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent==null?void 0:documentComponent.onPointerDown$.subscribeEvent(()=>{this._userCursorMove=!0}))}_inputFormulaListener(){this.disposeWithMe(this._editorService.inputFormula$.subscribe(param=>{const{formulaString,editorUnitId}=param;if(formulaString.substring(0,1)!==engineFormula.compareToken.EQUALS)return;const{unitId}=this._getCurrentUnitIdAndSheetId();this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId});const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(formulaString)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes),this._syncToEditor(lastSequenceNodes,formulaString.length-1,editorUnitId,!0,!1)}))}_changeRefString(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,strIndex=startOffset-2,nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(strIndex),node=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);if(node==null||typeof node=="string"||node.nodeType!==engineFormula.sequenceNodeType.REFERENCE)return;const tokenArray=node.token.split("!");let token=node.token;tokenArray.length>1&&(token=tokenArray[tokenArray.length-1]);let unitIDAndSheetName="";for(let i=0,len=tokenArray.length;i<len-1;i++)unitIDAndSheetName+=tokenArray[i];let finalToken=token;if(token.indexOf(engineFormula.matchToken.COLON)>-1)if(!this._userCursorMove)finalToken=this._changeRangeRef(token);else{const refStringSplit=token.split(engineFormula.matchToken.COLON),prefix=refStringSplit[0],suffix=refStringSplit[1];strIndex-node.startIndex<=prefix.length?finalToken=this._changeSingleRef(prefix)+engineFormula.matchToken.COLON+suffix:finalToken=prefix+engineFormula.matchToken.COLON+this._changeSingleRef(suffix)}else finalToken=this._changeSingleRef(token);finalToken=unitIDAndSheetName+finalToken;const difference=finalToken.length-node.token.length;this._formulaPromptService.updateSequenceRef(nodeIndex,finalToken),this._syncToEditor(this._formulaPromptService.getSequenceNodes(),strIndex+difference+1)}_changeRangeRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range;let resultToken="";return range.startAbsoluteRefType===core.AbsoluteRefType.NONE||range.startAbsoluteRefType==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_changeSingleRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range,type=range.startAbsoluteRefType;let resultToken="";return type===core.AbsoluteRefType.NONE||type==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):type===core.AbsoluteRefType.ALL?(range.startAbsoluteRefType=core.AbsoluteRefType.ROW,range.endAbsoluteRefType=core.AbsoluteRefType.ROW):type===core.AbsoluteRefType.ROW?(range.startAbsoluteRefType=core.AbsoluteRefType.COLUMN,range.endAbsoluteRefType=core.AbsoluteRefType.COLUMN):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_getEditorObject(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor==null?void 0:editor.render}_isFormulaEditorActivated(){return this._editorBridgeService.isVisible().visible===!0||this._contextService.getContextValue(core.FORMULA_EDITOR_ACTIVATED)}_isSheetOrFormulaEditor(editor){return editor.isSheetEditor()||editor.isFormulaEditor()}},__name(_a9,"PromptController"),_a9);PromptController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,core.IContextService),__decorateParam$1(2,core.Inject(sheetsUi.IEditorBridgeService)),__decorateParam$1(3,core.Inject(IFormulaPromptService)),__decorateParam$1(4,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$1(5,engineRender.IRenderManagerService),__decorateParam$1(6,core.Inject(core.ThemeService)),__decorateParam$1(7,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(8,sheets.IRefSelectionsService),__decorateParam$1(9,core.IUniverInstanceService),__decorateParam$1(10,core.Inject(sheetsFormula.IDescriptionService)),__decorateParam$1(11,core.Inject(docs.DocSelectionManagerService)),__decorateParam$1(12,ui.IContextMenuService),__decorateParam$1(13,docsUi.IEditorService),__decorateParam$1(14,ui.ILayoutService)],PromptController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField"),_a10;exports.UniverSheetsFormulaUIPlugin=(_a10=class extends core.Plugin{constructor(_config=defaultPluginBaseConfig,_injector,_renderManagerService,_configService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY_BASE,rest)}onStarting(){const j=this._injector;[[IFormulaPromptService,{useClass:FormulaPromptService}],[FormulaUIController],[FormulaAutoFillController],[FormulaClipboardController],[FormulaEditorShowController],[FormulaRenderManagerController],[PromptController]].forEach(dependency=>j.add(dependency))}onReady(){this._injector.get(FormulaUIController)}onRendered(){[[RefSelectionsRenderService],[FormulaAlertRenderController]].forEach(dep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,dep))}),this._injector.get(FormulaClipboardController),this._injector.get(FormulaRenderManagerController)}onSteady(){this._injector.get(FormulaAutoFillController),this._injector.get(PromptController)}},__name(_a10,"UniverSheetsFormulaUIPlugin"),_a10);__publicField2(exports.UniverSheetsFormulaUIPlugin,"pluginName",FORMULA_UI_PLUGIN_NAME);__publicField2(exports.UniverSheetsFormulaUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET);exports.UniverSheetsFormulaUIPlugin=__decorateClass([core.DependentOn(engineFormula.UniverFormulaEnginePlugin,sheetsFormula.UniverSheetsFormulaPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IConfigService)],exports.UniverSheetsFormulaUIPlugin);exports.FORMULA_PROMPT_ACTIVATED=FORMULA_PROMPT_ACTIVATED;exports.HelpFunctionOperation=HelpFunctionOperation;exports.InsertFunctionOperation=InsertFunctionOperation;exports.MoreFunctionsOperation=MoreFunctionsOperation;exports.ReferenceAbsoluteOperation=ReferenceAbsoluteOperation;exports.SearchFunctionOperation=SearchFunctionOperation;exports.SelectEditorFormulaOperation=SelectEditorFormulaOperation;exports.SheetOnlyPasteFormulaCommand=SheetOnlyPasteFormulaCommand;
|
package/lib/es/index.js
CHANGED
|
@@ -2,10 +2,10 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: !0, configurable: !0, writable: !0, value }) : obj[key] = value;
|
|
3
3
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 });
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key != "symbol" ? key + "" : key, value);
|
|
5
|
-
import { CommandType, ICommandService, createIdentifier, IContextService, IUniverInstanceService, Rectangle, DEFAULT_EMPTY_DOCUMENT_VALUE, isRealNum, CellValueType, getCellValueType, isFormulaString, isFormulaId, FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, Disposable, isICellData, Inject, LocaleService, Tools, Direction, UniverInstanceType, Injector, ObjectMatrix, ThemeService, toDisposable, ColorKit, ILogService, RxDisposable, InterceptorEffectEnum, useDependency, useInjector, connectInjector, DisposableCollection, RANGE_TYPE, FORMULA_EDITOR_ACTIVATED, FOCUSING_EDITOR_INPUT_FORMULA, AbsoluteRefType, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, Plugin, DependentOn, IConfigService } from "@univerjs/core";
|
|
5
|
+
import { CommandType, ICommandService, createIdentifier, IContextService, IUniverInstanceService, Rectangle, DEFAULT_EMPTY_DOCUMENT_VALUE, isRealNum, CellValueType, getCellValueType, isFormulaString, isFormulaId, FOCUSING_DOC, FOCUSING_UNIVER_EDITOR, FOCUSING_UNIVER_EDITOR_STANDALONE_SINGLE_MODE, Disposable, isICellData, Inject, LocaleService, Tools, Direction, UniverInstanceType, Injector, ObjectMatrix, ThemeService, toDisposable, ColorKit, ILogService, RxDisposable, InterceptorEffectEnum, useDependency, useInjector, useObservable, connectInjector, DisposableCollection, RANGE_TYPE, FORMULA_EDITOR_ACTIVATED, FOCUSING_EDITOR_INPUT_FORMULA, AbsoluteRefType, DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY, DOCS_NORMAL_EDITOR_UNIT_ID_KEY, Plugin, DependentOn, IConfigService } from "@univerjs/core";
|
|
6
6
|
import { SheetPasteCommand, PREDEFINED_HOOK_NAME, CellAlertType, HoverManagerService, CellAlertManagerService, DATA_TYPE, APPLY_TYPE, IAutoFillService, COPY_TYPE, ISheetClipboardService, IEditorBridgeService, SheetSkeletonManagerService, ISheetSelectionRenderService, SelectionShape, SELECTION_SHAPE_DEPTH, useActiveWorkbook, getCurrentRangeDisable$, PASTE_SPECIAL_MENU_ID, whenFormulaEditorActivated, BaseSelectionRenderService, getCoordByOffset, checkInHeaderRanges, getAllSelection, attachSelectionWithCoord, getSheetObject, getEditorObject, MoveSelectionCommand, JumpOver, ExpandSelectionCommand } from "@univerjs/sheets-ui";
|
|
7
7
|
import { sequenceNodeType, serializeRange, ERROR_TYPE_SET, ErrorType, LexerTreeBuilder, FormulaDataModel, SetFormulaCalculationResultMutation, SetArrayFormulaDataMutation, FunctionType, matchRefDrawToken, matchToken, compareToken, deserializeRangeWithSheet, normalizeSheetName, serializeRangeToRefString, generateStringWithSequence, getAbsoluteRefTypeWitString, UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
|
|
8
|
-
import { Subject, throttleTime, combineLatestWith, map, switchMap, of, Observable,
|
|
8
|
+
import { Subject, throttleTime, combineLatestWith, map, switchMap, of, Observable, distinctUntilChanged, distinctUntilKeyChanged } from "rxjs";
|
|
9
9
|
import { IEditorService, DocSelectionRenderService, ReplaceContentCommand, MoveCursorOperation } from "@univerjs/docs-ui";
|
|
10
10
|
import { SheetsSelectionsService, getSheetCommandTarget, getCellAtRowCol, SetSelectionsOperation, SetRangeValuesMutation, SetRangeValuesUndoMutationFactory, SetWorksheetRowAutoHeightMutation, INTERCEPTOR_POINT, SheetInterceptorService, WorkbookEditablePermission, WorksheetEditPermission, WorksheetSetCellValuePermission, RangeProtectionPermissionEditPoint, SelectionMoveType, convertSelectionDataToRange, getNormalSelectionStyle, IRefSelectionsService, DISABLE_NORMAL_SELECTIONS, setEndForRange, getPrimaryForRange } from "@univerjs/sheets";
|
|
11
11
|
import { InsertFunctionCommand, IDescriptionService, UniverSheetsFormulaPlugin } from "@univerjs/sheets-formula";
|
|
@@ -1367,7 +1367,7 @@ const formulaSelectFunctionSelect = "univer-formula-select-function-select", for
|
|
|
1367
1367
|
formulaSelectFunctionContent
|
|
1368
1368
|
};
|
|
1369
1369
|
function SelectFunction(props) {
|
|
1370
|
-
const { onChange } = props, allTypeValue = "-1", [searchText, setSearchText] = useState(""), [selectList, setSelectList] = useState([]), [active, setActive] = useState(0), [typeSelected, setTypeSelected] = useState(allTypeValue), [nameSelected, setNameSelected] = useState(0), [functionInfo, setFunctionInfo] = useState(null), descriptionService = useDependency(IDescriptionService), localeService = useDependency(LocaleService), options = getFunctionTypeValues(FunctionType, localeService);
|
|
1370
|
+
const { onChange } = props, allTypeValue = "-1", [searchText, setSearchText] = useState(""), [selectList, setSelectList] = useState([]), [active, setActive] = useState(0), [typeSelected, setTypeSelected] = useState(allTypeValue), [nameSelected, setNameSelected] = useState(0), [functionInfo, setFunctionInfo] = useState(null), descriptionService = useDependency(IDescriptionService), localeService = useDependency(LocaleService), sidebarService = useDependency(ISidebarService), sidebarOptions = useObservable(sidebarService.sidebarOptions$), options = getFunctionTypeValues(FunctionType, localeService);
|
|
1371
1371
|
options.unshift({
|
|
1372
1372
|
label: localeService.t("formula.moreFunctions.allFunctions"),
|
|
1373
1373
|
value: allTypeValue
|
|
@@ -1377,7 +1377,9 @@ function SelectFunction(props) {
|
|
|
1377
1377
|
handleSelectChange(allTypeValue);
|
|
1378
1378
|
}, []), useEffect(() => {
|
|
1379
1379
|
setCurrentFunctionInfo(0);
|
|
1380
|
-
}, [selectList])
|
|
1380
|
+
}, [selectList]), useEffect(() => {
|
|
1381
|
+
sidebarOptions != null && sidebarOptions.visible && (setSearchText(""), setSelectList([]), setActive(0), setTypeSelected(allTypeValue), setNameSelected(0), setFunctionInfo(null), handleSelectChange(allTypeValue));
|
|
1382
|
+
}, [sidebarOptions]);
|
|
1381
1383
|
const highlightSearchText = /* @__PURE__ */ __name((text) => {
|
|
1382
1384
|
if (searchText.trim() === "") return text;
|
|
1383
1385
|
const regex = new RegExp(`(${searchText.toLocaleUpperCase()})`);
|
|
@@ -1936,7 +1938,11 @@ let PromptController = (_a9 = class extends Disposable {
|
|
|
1936
1938
|
}
|
|
1937
1939
|
_initialCursorSync() {
|
|
1938
1940
|
this.disposeWithMe(
|
|
1939
|
-
this._docSelectionManagerService.textSelection$.
|
|
1941
|
+
this._docSelectionManagerService.textSelection$.pipe(
|
|
1942
|
+
distinctUntilChanged(
|
|
1943
|
+
(prev, curr) => (prev == null ? void 0 : prev.unitId) === (curr == null ? void 0 : curr.unitId) && (prev == null ? void 0 : prev.segmentId) === (curr == null ? void 0 : curr.segmentId) && !!(prev != null && prev.textRanges.every((t, i) => t.startOffset === (curr == null ? void 0 : curr.textRanges[i].startOffset) && t.endOffset === (curr == null ? void 0 : curr.textRanges[i].endOffset)))
|
|
1944
|
+
)
|
|
1945
|
+
).subscribe((params) => {
|
|
1940
1946
|
var _a11;
|
|
1941
1947
|
if ((params == null ? void 0 : params.unitId) == null)
|
|
1942
1948
|
return;
|
|
@@ -2254,8 +2260,8 @@ let PromptController = (_a9 = class extends Disposable {
|
|
|
2254
2260
|
return { textRuns, refSelections };
|
|
2255
2261
|
}
|
|
2256
2262
|
_exceedCurrentRange(range, rowCount, columnCount) {
|
|
2257
|
-
const {
|
|
2258
|
-
return
|
|
2263
|
+
const { startRow, startColumn } = range;
|
|
2264
|
+
return startRow > rowCount - 1 || startColumn > columnCount - 1;
|
|
2259
2265
|
}
|
|
2260
2266
|
/**
|
|
2261
2267
|
* Draw the referenced selection text based on the style and token.
|
package/lib/umd/index.js
CHANGED
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q"),reactJsxRuntime_production_min.Fragment=l,reactJsxRuntime_production_min.jsx=q,reactJsxRuntime_production_min.jsxs=q,jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a2){var key=_a2[0],value=_a2[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a2,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a2=node.children)===null||_a2===void 0)&&_a2.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid"),IconBase.displayName="UniverIcon";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$3}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$2}))});CloseSingle.displayName="CloseSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DetailsSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"details-single",ref,icon:element$1}))});DetailsSingle.displayName="DetailsSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element}))});MoreSingle.displayName="MoreSingle";function getFunctionTypeValues(enumObj,localeService){return Object.keys(enumObj).filter(key=>isNaN(Number(key))&&key!=="DefinedName").map(key=>({label:localeService.t(`formula.functionType.${key.toLocaleLowerCase()}`),value:`${enumObj[key]}`}))}__name(getFunctionTypeValues,"getFunctionTypeValues");function generateParam(param){if(!param.require&&!param.repeat)return`[${param.name}]`;if(param.require&&!param.repeat)return param.name;if(!param.require&¶m.repeat)return`[${param.name},...]`;if(param.require&¶m.repeat)return`${param.name},...`}__name(generateParam,"generateParam");const useResizeScrollObserver=__name((callback,delay=100)=>{require$$0.useEffect(()=>{let throttleTimeout=null;const throttledCallback=__name(()=>{throttleTimeout===null&&(throttleTimeout=window.setTimeout(()=>{callback(),throttleTimeout=null},delay))},"throttledCallback");return window.addEventListener("scroll",throttledCallback),window.addEventListener("resize",throttledCallback),()=>{throttleTimeout!==null&&clearTimeout(throttleTimeout),window.removeEventListener("scroll",throttledCallback),window.removeEventListener("resize",throttledCallback)}},[callback,delay])},"useResizeScrollObserver"),styles$5={formulaHelpFunction:"univer-formula-help-function",formulaHelpFunctionTitle:"univer-formula-help-function-title",formulaHelpFunctionTitleIcons:"univer-formula-help-function-title-icons",formulaHelpFunctionTitleIcon:"univer-formula-help-function-title-icon",formulaHelpFunctionContent:"univer-formula-help-function-content",formulaHelpFunctionContentInner:"univer-formula-help-function-content-inner",formulaHelpFunctionContentParams:"univer-formula-help-function-content-params",formulaHelpFunctionContentParamsTitle:"univer-formula-help-function-content-params-title",formulaHelpFunctionContentParamsDetail:"univer-formula-help-function-content-params-detail",formulaHelpFunctionActive:"univer-formula-help-function-active",formulaHelpDecorator:"univer-formula-help-decorator",formulaHelpParam:"univer-formula-help-param",formulaHelpParamPrefix:"univer-formula-help-param-prefix",formulaHelpParamItem:"univer-formula-help-param-item",formulaHelpParamActive:"univer-formula-help-param-active"};function HelpFunction(){const[visible,setVisible]=require$$0.useState(!1),[contentVisible,setContentVisible]=require$$0.useState(!0),[helpVisible,setHelpVisible]=require$$0.useState(!0),[paramIndex,setParamIndex]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[decoratorPosition,setDecoratorPosition]=require$$0.useState({left:0,top:0}),[functionInfo,setFunctionInfo]=require$$0.useState(null),promptService=core.useDependency(IFormulaPromptService),localeService=core.useDependency(core.LocaleService),required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional"),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService),sidebarService=core.useDependency(ui.ISidebarService),injector=core.useInjector();useResizeScrollObserver(updatePosition),require$$0.useEffect(()=>{const subscription=promptService.help$.subscribe(params=>{const{visible:visible2,paramIndex:paramIndex2,functionInfo:functionInfo2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;functionInfo2.description===""&&functionInfo2.functionParameter.length===0||(setOffset([left,top+height]),setParamIndex(paramIndex2),setFunctionInfo(functionInfo2),setDecoratorPosition({left,top}),setVisible(visible2))}),sidebarSubscription=sidebarService.scrollEvent$.pipe(rxjs.throttleTime(100)).subscribe(updatePosition);return()=>{subscription==null||subscription.unsubscribe(),sidebarSubscription.unsubscribe()}},[]);function updatePosition(){if(!helpVisible)return;const position=getPosition();if(position==null)return;const{left,top,height}=position;setOffset([left,top+height])}__name(updatePosition,"updatePosition");function getPosition(){const documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleSwitchActive(paramIndex2){setParamIndex(paramIndex2)}__name(handleSwitchActive,"handleSwitchActive");function handleClose(){setHelpVisible(!helpVisible),injector.get(ui.ILayoutService).focus()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:helpVisible?jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:functionInfo?jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunction,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitle,children:[jsxRuntimeExports.jsx(Help,{prefix:functionInfo.functionName,value:functionInfo.functionParameter,active:paramIndex,onClick:handleSwitchActive}),jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitleIcons,children:[jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,style:{transform:contentVisible?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:__name(()=>setContentVisible(!contentVisible),"onClick"),children:jsxRuntimeExports.jsx(MoreSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContent,style:{height:contentVisible?"unset":0,padding:contentVisible?"revert-layer":0},children:jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentInner,children:[jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpAbstract"),value:functionInfo.description}),functionInfo&&functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(Params,{className:paramIndex===i?styles$5.formulaHelpFunctionActive:"",title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}):visible?jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpDecorator,onClick:__name(()=>setHelpVisible(!helpVisible),"onClick"),style:{left:decoratorPosition.left-24,top:decoratorPosition.top},children:jsxRuntimeExports.jsx(DetailsSingle,{})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})}__name(HelpFunction,"HelpFunction");const Params=__name(props=>jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$5.formulaHelpFunctionContentParamsTitle} ${props.className}`,children:props.title}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContentParamsDetail,children:props.value})]}),"Params"),Help=__name(props=>{const{prefix,value,active,onClick}=props;return jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpParam,children:[jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamPrefix,children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamItem,children:[jsxRuntimeExports.jsx("span",{className:active===i?styles$5.formulaHelpFunctionActive:styles$5.formulaHelpParamActive,onClick:__name(()=>onClick(i),"onClick"),children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})},"Help"),styles$4={formulaSearchFunction:"univer-formula-search-function",formulaSearchFunctionItem:"univer-formula-search-function-item",formulaSearchFunctionItemName:"univer-formula-search-function-item-name",formulaSearchFunctionItemNameLight:"univer-formula-search-function-item-name-light",formulaSearchFunctionItemDesc:"univer-formula-search-function-item-desc",formulaSearchFunctionItemActive:"univer-formula-search-function-item-active"};function SearchFunction(){const[visible,setVisible]=require$$0.useState(!1),[active,setActive]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[searchList,setSearchList]=require$$0.useState([]),[searchText,setSearchText]=require$$0.useState(""),ulRef=require$$0.useRef(null),promptService=core.useDependency(IFormulaPromptService),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService);require$$0.useEffect(()=>{let updatedSearchList=[],updatedActive=0;const subscribeSearch=promptService.search$.subscribe(params=>{const{visible:visible2,searchText:searchText2,searchList:searchList2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;setSearchText(searchText2),setSearchList(searchList2),updatedSearchList=searchList2,setOffset([left,top+height]),setVisible(visible2),setActive(0),updatedActive=0}),subscribeNavigate=promptService.navigate$.subscribe(params=>{const{direction}=params;if(direction===core.Direction.UP){let nextActive=updatedActive-1;nextActive=nextActive<0?updatedSearchList.length-1:nextActive,setActive(nextActive),updatedActive=nextActive}else if(direction===core.Direction.DOWN){let nextActive=updatedActive+1;nextActive=nextActive>=updatedSearchList.length?0:nextActive,setActive(nextActive),updatedActive=nextActive}scrollToVisible(updatedActive)}),subscribeAccept=promptService.accept$.subscribe(params=>{const functionName=updatedSearchList[updatedActive].name;promptService.acceptFormulaName(functionName)});return()=>{subscribeSearch==null||subscribeSearch.unsubscribe(),subscribeNavigate==null||subscribeNavigate.unsubscribe(),subscribeAccept==null||subscribeAccept.unsubscribe()}},[]);function getPosition(){const editorUnitId=univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleLiMouseEnter(index){setActive(index)}__name(handleLiMouseEnter,"handleLiMouseEnter");function handleLiMouseLeave(){setActive(-1)}__name(handleLiMouseLeave,"handleLiMouseLeave");function scrollToVisible(liIndex){var _a2;const liElement=(_a2=ulRef.current)==null?void 0:_a2.querySelectorAll(`.${styles$4.formulaSearchFunctionItem}`)[liIndex];if(!liElement)return;const ulElement=liElement.parentNode;if(!ulElement)return;const ulTop=ulElement.getBoundingClientRect().top,ulHeight=ulElement.offsetHeight,liRect=liElement.getBoundingClientRect(),liTop=liRect.top,liHeight=liRect.height;if(liTop>=0&&liTop>ulTop&&liTop-ulTop+liHeight<=ulHeight)return;const scrollTo=liElement.offsetTop-(ulHeight-liHeight)/2;ulElement.scrollTo({top:scrollTo,behavior:"smooth"})}return __name(scrollToVisible,"scrollToVisible"),searchList.length>0&&jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("ul",{className:styles$4.formulaSearchFunction,ref:ulRef,children:searchList.map((item,index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles$4.formulaSearchFunctionItem} ${styles$4.formulaSearchFunctionItemActive}`:styles$4.formulaSearchFunctionItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>promptService.acceptFormulaName(item.name),"onClick"),children:[jsxRuntimeExports.jsxs("span",{className:styles$4.formulaSearchFunctionItemName,children:[jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemNameLight,children:item.name.substring(0,searchText.length)}),jsxRuntimeExports.jsx("span",{children:item.name.slice(searchText.length)})]}),jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemDesc,children:item.desc})]},index))})})}__name(SearchFunction,"SearchFunction");function RenderFormulaPromptContent(){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SearchFunction,{}),jsxRuntimeExports.jsx(HelpFunction,{})]})}__name(RenderFormulaPromptContent,"RenderFormulaPromptContent");const styles$3={formulaMoreFunctions:"univer-formula-more-functions",formulaMoreFunctionsOperation:"univer-formula-more-functions-operation"};function FunctionHelp(props){const{prefix,value}=props;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("span",{children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})}__name(FunctionHelp,"FunctionHelp");const styles$2={formulaFunctionParams:"univer-formula-function-params",formulaFunctionParamsTitle:"univer-formula-function-params-title",formulaFunctionParamsDetail:"univer-formula-function-params-detail"};function FunctionParams(props){const{className,value,title}=props;return jsxRuntimeExports.jsxs("div",{className:styles$2.formulaFunctionParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$2.formulaFunctionParamsTitle} ${className}`,children:title}),jsxRuntimeExports.jsx("div",{className:styles$2.formulaFunctionParamsDetail,children:value})]})}__name(FunctionParams,"FunctionParams");const styles$1={formulaInputParamsList:"univer-formula-input-params-list",formulaInputParamsListItemName:"univer-formula-input-params-list-item-name",formulaInputParamsListItemSelector:"univer-formula-input-params-list-item-selector"};function InputParams(props){const{functionInfo,onChange}=props;if(!functionInfo)return null;require$$0.useState([]);const[functionParameter,setFunctionParameter]=require$$0.useState(functionInfo.functionParameter),[activeIndex,setActiveIndex]=require$$0.useState(-1);return jsxRuntimeExports.jsxs("div",{className:styles$1.formulaInputParams,children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsList,children:functionParameter.map((item,i)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemName,children:item.name}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemSelector})]},i))}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsInfo,children:jsxRuntimeExports.jsx(FunctionParams,{title:activeIndex===-1?jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionParameter}):functionParameter[activeIndex].name,value:activeIndex===-1?functionInfo.description:functionParameter[activeIndex].detail})})]})}__name(InputParams,"InputParams");const styles={formulaSelectFunctionSelect:"univer-formula-select-function-select",formulaSelectFunctionResult:"univer-formula-select-function-result",formulaSelectFunctionResultItem:"univer-formula-select-function-result-item",formulaSelectFunctionResultItemNameLight:"univer-formula-select-function-result-item-name-light",formulaSelectFunctionResultItemSelected:"univer-formula-select-function-result-item-selected",formulaSelectFunctionResultItemActive:"univer-formula-select-function-result-item-active",formulaSelectFunctionContent:"univer-formula-select-function-content"};function SelectFunction(props){const{onChange}=props,allTypeValue="-1",[searchText,setSearchText]=require$$0.useState(""),[selectList,setSelectList]=require$$0.useState([]),[active,setActive]=require$$0.useState(0),[typeSelected,setTypeSelected]=require$$0.useState(allTypeValue),[nameSelected,setNameSelected]=require$$0.useState(0),[functionInfo,setFunctionInfo]=require$$0.useState(null),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),localeService=core.useDependency(core.LocaleService),options=getFunctionTypeValues(engineFormula.FunctionType,localeService);options.unshift({label:localeService.t("formula.moreFunctions.allFunctions"),value:allTypeValue});const required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional");require$$0.useEffect(()=>{handleSelectChange(allTypeValue)},[]),require$$0.useEffect(()=>{setCurrentFunctionInfo(0)},[selectList]);const highlightSearchText=__name(text=>{if(searchText.trim()==="")return text;const regex=new RegExp(`(${searchText.toLocaleUpperCase()})`);return text.split(regex).filter(Boolean).map((part,index)=>part.match(regex)?jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemNameLight,children:part},index):part)},"highlightSearchText"),setCurrentFunctionInfo=__name(selectedIndex=>{if(selectList.length===0){setFunctionInfo(null);return}setNameSelected(selectedIndex);const functionInfo2=descriptionService.getFunctionInfo(selectList[selectedIndex].name);if(!functionInfo2){setFunctionInfo(null);return}setFunctionInfo(functionInfo2),onChange(functionInfo2)},"setCurrentFunctionInfo");function handleSelectChange(value){setTypeSelected(value);const selectList2=descriptionService.getSearchListByType(+value);setSelectList(selectList2)}__name(handleSelectChange,"handleSelectChange");function handleSearchInputChange(value){setSearchText(value);const selectList2=descriptionService.getSearchListByName(value);setSelectList(selectList2)}__name(handleSearchInputChange,"handleSearchInputChange");function handleSelectListKeyDown(e){if(e.stopPropagation(),e.key==="ArrowDown"){const nextActive=active+1;setActive(nextActive===selectList.length?0:nextActive)}else if(e.key==="ArrowUp"){const nextActive=active-1;setActive(nextActive===-1?selectList.length-1:nextActive)}else e.key==="Enter"&&setCurrentFunctionInfo(active)}__name(handleSelectListKeyDown,"handleSelectListKeyDown");const handleLiMouseEnter=__name(index=>{setActive(index)},"handleLiMouseEnter"),handleLiMouseLeave=__name(()=>{setActive(-1)},"handleLiMouseLeave");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionSelect,children:[jsxRuntimeExports.jsx(design.Select,{value:typeSelected,options,onChange:handleSelectChange}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:handleSelectListKeyDown,value:searchText,onChange:handleSearchInputChange,size:"large",allowClear:!0})]}),jsxRuntimeExports.jsx("ul",{className:styles.formulaSelectFunctionResult,onKeyDown:handleSelectListKeyDown,tabIndex:-1,children:selectList.map(({name},index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles.formulaSelectFunctionResultItem} ${styles.formulaSelectFunctionResultItemActive}`:styles.formulaSelectFunctionResultItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>setCurrentFunctionInfo(index),"onClick"),children:[nameSelected===index&&jsxRuntimeExports.jsx(CheckMarkSingle,{className:styles.formulaSelectFunctionResultItemSelected}),jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemName,children:highlightSearchText(name)})]},index))}),functionInfo&&jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionContent,children:[jsxRuntimeExports.jsx(FunctionParams,{title:functionInfo.functionName,value:functionInfo.description}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.moreFunctions.syntax"),value:jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionInfo.functionParameter})}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(FunctionParams,{title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})]})}__name(SelectFunction,"SelectFunction");function MoreFunctions(){const workbook=sheetsUi.useActiveWorkbook(),[selectFunction,setSelectFunction]=require$$0.useState(!0),[inputParams,setInputParams]=require$$0.useState(!1),[functionInfo,setFunctionInfo]=require$$0.useState(null),localeService=core.useDependency(core.LocaleService),editorService=core.useDependency(docsUi.IEditorService);function handleClickNextPrev(){setSelectFunction(!selectFunction),setInputParams(!inputParams)}__name(handleClickNextPrev,"handleClickNextPrev");function handleConfirm(){editorService.setFormula(`=${functionInfo==null?void 0:functionInfo.functionName}(`)}return __name(handleConfirm,"handleConfirm"),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctions,children:[selectFunction&&jsxRuntimeExports.jsx(SelectFunction,{onChange:setFunctionInfo}),inputParams&&jsxRuntimeExports.jsx(InputParams,{functionInfo,onChange:__name(()=>{},"onChange")}),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctionsOperation,children:[inputParams&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.next")}),inputParams&&jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.prev")}),selectFunction&&!!workbook&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:localeService.t("formula.moreFunctions.confirm")})]})]})}__name(MoreFunctions,"MoreFunctions");function InsertFunctionMenuItemFactory(accessor){return{id:InsertFunctionOperation.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:ui.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(InsertFunctionMenuItemFactory,"InsertFunctionMenuItemFactory");function MoreFunctionsMenuItemFactory(accessor){return{id:MoreFunctionsOperation.id,title:"formula.insert.more",type:ui.MenuItemType.BUTTON}}__name(MoreFunctionsMenuItemFactory,"MoreFunctionsMenuItemFactory");function menuClipboardDisabledObservable(injector){return injector.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook&&injector.get(ui.IClipboardInterfaceService)?new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard)):rxjs.of(!0)))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function PasteFormulaMenuItemFactory(accessor){return{id:SheetOnlyPasteFormulaCommand.id,type:ui.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteFormulaMenuItemFactory,"PasteFormulaMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[InsertFunctionOperation.id]:{order:1,menuItemFactory:InsertFunctionMenuItemFactory,[MoreFunctionsOperation.id]:{order:1,menuItemFactory:MoreFunctionsMenuItemFactory}}},[sheetsUi.PASTE_SPECIAL_MENU_ID]:{[SheetOnlyPasteFormulaCommand.id]:{order:4,menuItemFactory:PasteFormulaMenuItemFactory}}},META_KEY_CTRL_AND_SHIFT="meta_key_ctrl_And_Shift",PROMPT_SELECTION_KEYCODE_ARROW_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],PROMPT_SELECTION_KEYCODE_LIST=[...PROMPT_SELECTION_KEYCODE_ARROW_LIST,ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ESC];function promptSelectionShortcutItem(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode}});return shortcutList}__name(promptSelectionShortcutItem,"promptSelectionShortcutItem");function promptSelectionShortcutItemShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.SHIFT}});return shortcutList}__name(promptSelectionShortcutItemShift,"promptSelectionShortcutItemShift");function promptSelectionShortcutItemCtrl(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.CTRL_COMMAND}});return shortcutList}__name(promptSelectionShortcutItemCtrl,"promptSelectionShortcutItemCtrl");function promptSelectionShortcutItemCtrlAndShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:META_KEY_CTRL_AND_SHIFT}});return shortcutList}__name(promptSelectionShortcutItemCtrlAndShift,"promptSelectionShortcutItemCtrlAndShift");const ChangeRefToAbsoluteShortcut={id:ReferenceAbsoluteOperation.id,binding:ui.KeyCode.F4,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions")};function singleEditorPromptSelectionShortcutItem(){const shortcutList=[];for(const keycode of[ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP])shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorStandalone(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isSingleEditor:!0}});return shortcutList}__name(singleEditorPromptSelectionShortcutItem,"singleEditorPromptSelectionShortcutItem");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");let FormulaUIController=(_g=class extends core.Disposable{constructor(_injector,_menuManagerService,_commandService,_shortcutService,_uiPartsService,_renderManagerService,_componentManager){super(),this._injector=_injector,this._menuManagerService=_menuManagerService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._uiPartsService=_uiPartsService,this._renderManagerService=_renderManagerService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(menuSchema)}_registerCommands(){[SheetOnlyPasteFormulaCommand,InsertFunctionOperation,MoreFunctionsOperation,SearchFunctionOperation,HelpFunctionOperation,SelectEditorFormulaOperation,ReferenceAbsoluteOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerShortcuts(){[...promptSelectionShortcutItem(),...promptSelectionShortcutItemShift(),...promptSelectionShortcutItemCtrl(),...promptSelectionShortcutItemCtrlAndShift(),...singleEditorPromptSelectionShortcutItem(),ChangeRefToAbsoluteShortcut].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderFormulaPromptContent,this._injector))),this._componentManager.register(MORE_FUNCTIONS_COMPONENT,MoreFunctions)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[FormulaEditorShowController]))}},__name(_g,"FormulaUIController"),_g);FormulaUIController=__decorateClass$3([__decorateParam$3(0,core.Inject(core.Injector)),__decorateParam$3(1,ui.IMenuManagerService),__decorateParam$3(2,core.ICommandService),__decorateParam$3(3,ui.IShortcutService),__decorateParam$3(4,ui.IUIPartsService),__decorateParam$3(5,engineRender.IRenderManagerService),__decorateParam$3(6,core.Inject(ui.ComponentManager))],FormulaUIController);function getFormulaRefSelectionStyle(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle,"getFormulaRefSelectionStyle");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");let RefSelectionsRenderService=(_h=class extends sheetsUi.BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,sheetSkeletonManagerService,_refSelectionsService){super(injector,themeService,shortcutService,sheetSkeletonManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_eventDisposables");this._context=_context,this._refSelectionsService=_refSelectionsService,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(getDefaultRefSelectionStyle(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(enabled){this._remainLastEnabled=enabled}setSkipLastEnabled(enabled){this._skipLastEnabled=enabled}clearLastSelection(){const last=this._selectionControls[this._selectionControls.length-1];last&&(last.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),core.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var _a2;(_a2=this._eventDisposables)==null||_a2.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const sheetObject=this._getSheetObject(),{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context,listenerDisposables=new core.DisposableCollection;return listenerDisposables.add(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation()})),listenerDisposables.add(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=sheetsUi.getAllSelection(skeleton),selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),evt.button!==2&&state.stopPropagation()})),listenerDisposables}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_END)}))}_updateSelections(selectionDataWithStyleList,type){const sheetId=this._context.unit.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._workbookSelections.setSelections(sheetId,selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle)),type)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(selectionsWithStyles=>{this._reset();for(const selectionWithStyle of selectionsWithStyles){const selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return;const{skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==skeleton.worksheet.getSheetId()&&this._reset(),this._changeRuntime(skeleton,scene,viewportMain);const currentSelections=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(currentSelections||[])}))}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>sheetsUi.attachSelectionWithCoord(selectionWithStyle,this._skeleton));this.updateControlForCurrentByRangeData(selections)}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return sheetsUi.getSheetObject(this._context.unit,this._context)}},__name(_h,"RefSelectionsRenderService"),_h);RefSelectionsRenderService=__decorateClass$2([__decorateParam$2(1,core.Inject(core.Injector)),__decorateParam$2(2,core.Inject(core.ThemeService)),__decorateParam$2(3,ui.IShortcutService),__decorateParam$2(4,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$2(5,sheets.IRefSelectionsService)],RefSelectionsRenderService);function getDefaultRefSelectionStyle(themeService){const style=sheets.getNormalSelectionStyle(themeService);return style.hasAutoFill=!1,style.hasRowHeader=!1,style.hasColumnHeader=!1,style.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},style}__name(getDefaultRefSelectionStyle,"getDefaultRefSelectionStyle");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const sheetEditorUnitIds=[core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];let PromptController=(_i=class extends core.Disposable{constructor(_commandService,_contextService,_editorBridgeService,_formulaPromptService,_lexerTreeBuilder,_renderManagerService,_themeService,_sheetsSelectionsService,_refSelectionsService,_univerInstanceService,_descriptionService,_docSelectionManagerService,_contextMenuService,_editorService,_layoutService){super();__publicField(this,"_listenInputCache",new Set);__publicField(this,"_formulaRefColors",[]);__publicField(this,"_previousSequenceNodes");__publicField(this,"_previousRangesCount",0);__publicField(this,"_previousInsertRefStringIndex");__publicField(this,"_currentInsertRefStringIndex",-1);__publicField(this,"_arrowMoveActionState",0);__publicField(this,"_isSelectionMovingRefSelections",[]);__publicField(this,"_stringColor","");__publicField(this,"_numberColor","");__publicField(this,"_insertSelections",[]);__publicField(this,"_inputPanelState",0);__publicField(this,"_userCursorMove",!1);__publicField(this,"_previousEditorUnitId");__publicField(this,"_existsSequenceNode",!1);__publicField(this,"_currentlyWorkingRefRenderer",null);__publicField(this,"_selectionsChangeDisposables");__publicField(this,"_isSelectingMode",!1);this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._formulaPromptService=_formulaPromptService,this._lexerTreeBuilder=_lexerTreeBuilder,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._sheetsSelectionsService=_sheetsSelectionsService,this._refSelectionsService=_refSelectionsService,this._univerInstanceService=_univerInstanceService,this._descriptionService=_descriptionService,this._docSelectionManagerService=_docSelectionManagerService,this._contextMenuService=_contextMenuService,this._editorService=_editorService,this._layoutService=_layoutService,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(core.UniverInstanceType.UNIVER_SHEET).map(renderer=>renderer.with(RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const style=this._themeService.getCurrentTheme();this._formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],this._numberColor=style.hyacinth700,this._stringColor=style.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.subscribe(params=>{var _a2;if((params==null?void 0:params.unitId)==null)return;const editor=this._editorService.getEditor(params.unitId);if(!editor||editor.onlyInputContent()||editor.isSheetEditor()&&!this._isFormulaEditorActivated()||editor.params.scrollBar)return;const onlyInputRange=editor.onlyInputRange();(_a2=params==null?void 0:params.options)!=null&&_a2.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(onlyInputRange),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!onlyInputRange&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const arrows=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT,ui.KeyCode.CTRL,ui.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{var _a2;const unitId=documentDataModel==null?void 0:documentDataModel.getUnitId();if(unitId==null||this._listenInputCache.has(unitId)||this._editorService.getEditor(unitId)==null)return;const docSelectionRenderService=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&this.disposeWithMe(docSelectionRenderService.onInputBefore$.subscribe(param=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const event=param==null?void 0:param.event;event&&(arrows.includes(event.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),event.which!==ui.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(unitId)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(rxjs.distinctUntilKeyChanged("visible")).subscribe(visibleParam=>{visibleParam.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(core.FORMULA_EDITOR_ACTIVATED).pipe(rxjs.distinctUntilChanged()).subscribe(activated=>{activated||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{if(documentDataModel==null)return;const editorId=documentDataModel.getUnitId();!this._editorService.isEditor(editorId)||this._previousEditorUnitId===editorId||this._editorService.isSheetEditor(editorId)||(this._closeRangePrompt(editorId),this._previousEditorUnitId=editorId)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(editorId){this._insertSelections=[],this._refSelectionsService.clear(),editorId&&this._editorService.isSheetEditor(editorId)&&this._updateEditorModel(`\r
|
|
10
|
-
`,[]),this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel()}_initSelectionsEndListener(){const d=new core.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(selections=>{if(d.dispose(),selections.length===0)return;this._allSelectionRenderServices.map(s=>s.getSelectionControls()).flat().forEach(c=>{c.disableHelperSelection(),d.add(c.selectionMoving$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionScaling$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionMoved$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange())),d.add(c.selectionScaled$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange()))})}))}_updateSelecting(selectionsWithStyles,performInsertion=!1){if(selectionsWithStyles.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(selectionsWithStyles),performInsertion)){const currentSelection=selectionsWithStyles[selectionsWithStyles.length-1];this._insertControlSelectionReplace(currentSelection)}}_enableRefSelectionsRenderService(){const d=this._selectionsChangeDisposables=new core.DisposableCollection;this._allSelectionRenderServices.forEach(renderer=>{d.add(renderer.enableSelectionChanging()),d.add(renderer.selectionMoving$.subscribe(selections=>{this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)))})),d.add(renderer.selectionMoveStart$.subscribe(selections=>{const performInsertion=this._checkClearingLastSelection(renderer);this._currentlyWorkingRefRenderer=renderer,this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)),performInsertion)}))})}_checkClearingLastSelection(renderer){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==renderer?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var _a2;(_a2=this._selectionsChangeDisposables)==null||_a2.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(selections){const currentSelection=selections[selections.length-1];if(this._resetSequenceNodes(selections.length),(selections.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(currentSelection);else{let insertNodes=this._formulaPromptService.getSequenceNodes();const char=this._getCurrentChar();insertNodes.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!engineFormula.matchRefDrawToken(char)&&this._focusIsOnlyRange(selections.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,engineFormula.matchToken.COMMA),insertNodes=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=core.Tools.deepClone(insertNodes),this._formulaPromptService.setSequenceNodes(insertNodes);const refString=this._generateRefString(currentSelection);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=selections.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(formulaString=>{const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,lastSequenceNodes=this._formulaPromptService.getSequenceNodes(),nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(startOffset-2),node=lastSequenceNodes[nodeIndex];if(node==null||typeof node=="string"){this._hideFunctionPanel();return}const difference=formulaString.length-node.token.length,newNode={...node};newNode.token=formulaString,newNode.endIndex+=difference,lastSequenceNodes[nodeIndex]=newNode;const isDefinedName=this._descriptionService.hasDefinedNameDescription(formulaString),isFormulaDefinedName=this._descriptionService.isFormulaDefinedName(formulaString),formulaStringCount=formulaString.length+1,mustAddBracket=!isDefinedName||isFormulaDefinedName;mustAddBracket&&lastSequenceNodes.splice(nodeIndex+1,0,engineFormula.matchToken.OPEN_BRACKET);for(let i=nodeIndex+2,len=lastSequenceNodes.length;i<len;i++){const node2=lastSequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=formulaStringCount,newNode2.endIndex+=formulaStringCount,lastSequenceNodes[i]=newNode2}let selectionIndex=newNode.endIndex+1;mustAddBracket&&(selectionIndex+=1),this._syncToEditor(lastSequenceNodes,selectionIndex,void 0,!0,!1)}))}_changeFunctionPanelState(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,currentSequenceNode=this._formulaPromptService.getCurrentSequenceNode(startOffset-2);if(currentSequenceNode==null){this._hideFunctionPanel();return}if(typeof currentSequenceNode!="string"&¤tSequenceNode.nodeType===engineFormula.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(currentSequenceNode.token.trim())){const token=currentSequenceNode.token.toUpperCase();if(this._inputPanelState===1){const searchList=this._descriptionService.getSearchListByNameFirstLetter(token);if(this._hideFunctionPanel(),searchList==null||searchList.length===0)return;this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!0,searchText:token,searchList})}else this._changeHelpFunctionPanelState(token,-1);return}const config=this._getCurrentBodyDataStreamAndOffset(),functionAndParameter=this._lexerTreeBuilder.getFunctionAndParameter((config==null?void 0:config.dataStream)||"",startOffset-1+((config==null?void 0:config.offset)||0));if(!functionAndParameter){this._hideFunctionPanel();return}const{functionName,paramIndex}=functionAndParameter;this._changeHelpFunctionPanelState(functionName.toUpperCase(),paramIndex)}_changeHelpFunctionPanelState(token,paramIndex){const functionInfo=this._descriptionService.getFunctionInfo(token);this._hideFunctionPanel(),functionInfo!=null&&this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!0,paramIndex,functionInfo})}_hideFunctionPanel(){this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!1,searchText:""}),this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(isOnlyInputRangeEditor=!1){if(isOnlyInputRangeEditor){this._enterSelectingMode();return}const char=this._getCurrentChar(),dataStream=this._getCurrentDataStream();(dataStream==null?void 0:dataStream.substring(0,1))==="="&&char&&engineFormula.matchRefDrawToken(char)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,config=this._getCurrentBodyDataStreamAndOffset();return config==null||startOffset==null?void 0:config.dataStream[startOffset-1+config.offset]}_getCurrentDataStream(){const config=this._getCurrentBodyDataStreamAndOffset();return config==null?void 0:config.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var _a2,_b2;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!(documentModel!=null&&documentModel.getBody()))return;const unitId=documentModel.getUnitId(),editor=this._editorService.getEditor(unitId),dataStream=(_b2=(_a2=documentModel.getBody())==null?void 0:_a2.dataStream)!=null?_b2:"";return!editor||!editor.onlyInputRange()?{dataStream,offset:0}:{dataStream:engineFormula.compareToken.EQUALS+dataStream,offset:1}}_getFormulaAndCellEditorBody(unitIds){return unitIds.map(unitId=>{const dataModel=this._univerInstanceService.getUniverDocInstance(unitId);return dataModel==null?void 0:dataModel.getBody()})}_editorModelUnitIds(){const unitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(unitId)&&!this._editorService.isSheetEditor(unitId)?[unitId]:sheetEditorUnitIds}_contextSwitch(){const config=this._getCurrentBodyDataStreamAndOffset();if(config&&core.isFormulaString(config.dataStream)){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(config.dataStream)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes);const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange;this._currentInsertRefStringIndex=startOffset-1+config.offset;return}this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const sequenceNodes=this._formulaPromptService.getSequenceNodes(),unitIds=this._editorModelUnitIds(),bodyList=this._getFormulaAndCellEditorBody(unitIds).filter(b=>!!b);if(this._refSelectionsService.clear(),sequenceNodes==null||sequenceNodes.length===0)this._existsSequenceNode=!1,bodyList.forEach(body=>body.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);bodyList.forEach(body=>body.textRuns=textRuns),this._allSelectionRenderServices.forEach(r=>this._refreshSelectionForReference(r,refSelections))}this._refreshFormulaAndCellEditor(unitIds)}_buildTextRuns(sequenceNodes){var _a2;const textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;const offset=((_a2=this._getCurrentBodyDataStreamAndOffset())==null?void 0:_a2.offset)||0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||this._descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%this._formulaRefColors.length;themeColor=this._formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=this._numberColor:nodeType===engineFormula.sequenceNodeType.STRING?themeColor=this._stringColor:nodeType===engineFormula.sequenceNodeType.ARRAY&&(themeColor=this._stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex+1-offset,ed:endIndex+2-offset,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}_exceedCurrentRange(range,rowCount,columnCount){const{endRow,endColumn}=range;return endRow>rowCount||endColumn>columnCount}_refreshSelectionForReference(refSelectionRenderService,refSelections){const{unitId,sheetId}=this._editorBridgeService.getEditCellState(),{unitId:selfUnitId,sheetId:selfSheetId}=this._getCurrentUnitIdAndSheetId(),isSelfSheet=sheetId===selfSheetId,worksheet=this._univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId);let lastRange=null;const selectionWithStyle=[];for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,gridRange=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=gridRange,range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());if(refUnitId!=null&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(!isSelfSheet&&refSheetId!==selfSheetId||isSelfSheet&&sheetName.length!==0&&refSheetId!==sheetId||this._exceedCurrentRange(range,worksheet.getRowCount(),worksheet.getColumnCount()))continue;const lastRangeCopy=this._getPrimary(range,themeColor,refIndex);if(lastRangeCopy){lastRange=lastRangeCopy;continue}const primary=sheets.getPrimaryForRange(range,worksheet);!core.Rectangle.equals(primary,range)&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.startRow=primary.startRow,range.endRow=primary.endRow,range.startColumn=primary.startColumn,range.endColumn=primary.endColumn),selectionWithStyle.push({range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())})}lastRange&&selectionWithStyle.push(lastRange),selectionWithStyle.length&&this._refSelectionsService.addSelections(unitId,sheetId,selectionWithStyle)}_getPrimary(range,themeColor,refIndex){var _a2;const primary=(_a2=this._insertSelections.find(selection=>{const{startRow,startColumn,endRow,endColumn}=selection.range;return startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn}))==null?void 0:_a2.primary;if(primary==null)return;const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;return(isMerged||isMergedMainCell)&&mergeStartRow===range.startRow&&mergeStartColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.endRow=mergeEndRow,range.endColumn=mergeEndColumn),{range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())}}_getSheetIdByName(unitId,sheetName){var _a2;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return(_a2=workbook==null?void 0:workbook.getSheetBySheetName(engineFormula.normalizeSheetName(sheetName)))==null?void 0:_a2.getSheetId()}_getSheetNameById(unitId,sheetId){var _a2;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return((_a2=workbook==null?void 0:workbook.getSheetBySheetId(sheetId))==null?void 0:_a2.getName())||""}_getCurrentUnitIdAndSheetId(){var _a2,_b2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),skeleton=(_b2=(_a2=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a2.with(sheetsUi.SheetSkeletonManagerService))==null?void 0:_b2.getCurrentSkeleton();return{unitId:workbook.getUnitId(),sheetId:(worksheet==null?void 0:worksheet.getSheetId())||"",skeleton}}_getEditorOpenedForSheet(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor?{openUnitId:editor.getOpenForSheetUnitId(),openSheetId:editor.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(currentSelection){let refUnitId="",refSheetName="";const{unitId,sheetId}=currentSelection.range,{openUnitId,openSheetId}=this._getEditorOpenedForSheet();unitId!==openUnitId&&unitId&&(refUnitId=unitId),sheetId!==openSheetId&&unitId&&sheetId&&(refSheetName=this._getSheetNameById(unitId,sheetId));const{range,primary}=currentSelection;let{startRow,endRow,startColumn,endColumn}=range;const{startAbsoluteRefType,endAbsoluteRefType,rangeType}=range;if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}return engineFormula.serializeRangeToRefString({sheetName:refSheetName,unitId:refUnitId,range:{startRow,endRow,startColumn,endColumn,rangeType,startAbsoluteRefType,endAbsoluteRefType}})}_syncToEditor(sequenceNodes,textSelectionOffset,editorUnitId,canUndo=!0,fromSelection=!0){let dataStream=engineFormula.generateStringWithSequence(sequenceNodes);const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);this._isSelectionMovingRefSelections=refSelections,this._allSelectionRenderServices.forEach(r=>this._updateRefSelectionStyle(r,this._isSelectionMovingRefSelections));const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;this._currentInsertRefStringIndex=textSelectionOffset,editorUnitId==null&&(editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const editor=this._editorService.getEditor(editorUnitId);editor!=null&&editor.isSingleChoice()?(dataStream=dataStream.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let formulaString=dataStream,offset=1;(!editor||!editor.onlyInputRange())&&(formulaString=`${engineFormula.compareToken.EQUALS}${dataStream}`,offset=0);const{collapsed,style}=activeRange;canUndo?(this._commandService.executeCommand(docsUi.ReplaceContentCommand.id,{unitId:editorUnitId,body:{dataStream:formulaString,textRuns},textRanges:[{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,collapsed,style}],segmentId:null,options:{fromSelection}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})):(this._updateEditorModel(`${formulaString}\r
|
|
9
|
+
*/var f=require$$0,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(c,a,g){var b,d={},e=null,h=null;g!==void 0&&(e=""+g),a.key!==void 0&&(e=""+a.key),a.ref!==void 0&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)d[b]===void 0&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}__name(q,"q"),reactJsxRuntime_production_min.Fragment=l,reactJsxRuntime_production_min.jsx=q,reactJsxRuntime_production_min.jsxs=q,jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,__assign=function(){return __assign=Object.assign||function(t){for(var s,i=1,n2=arguments.length;i<n2;i++){s=arguments[i];for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&(t[p2]=s[p2])}return t},__assign.apply(this,arguments)},__rest=function(s,e){var t={};for(var p2 in s)Object.prototype.hasOwnProperty.call(s,p2)&&e.indexOf(p2)<0&&(t[p2]=s[p2]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,p2=Object.getOwnPropertySymbols(s);i<p2.length;i++)e.indexOf(p2[i])<0&&Object.prototype.propertyIsEnumerable.call(s,p2[i])&&(t[p2[i]]=s[p2[i]]);return t},IconBase=require$$0.forwardRef(function(props,ref){var icon=props.icon,id=props.id,className=props.className,extend=props.extend,restProps=__rest(props,["icon","id","className","extend"]),cls="univerjs-icon univerjs-icon-".concat(id," ").concat(className||"").trim(),idSuffix=require$$0.useRef("_".concat(generateShortUuid()));return render(icon,"".concat(id),{defIds:icon.defIds,idSuffix:idSuffix.current},__assign({ref,className:cls},restProps),extend)});function render(node,id,runtimeProps,rootProps,extend){return require$$0.createElement(node.tag,__assign(__assign({key:id},replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend)),rootProps),(replaceRuntimeIdsInDefs(node,runtimeProps).children||[]).map(function(child,index){return render(child,"".concat(id,"-").concat(node.tag,"-").concat(index),runtimeProps,void 0,extend)}))}__name(render,"render");function replaceRuntimeIdsAndExtInAttrs(node,runtimeProps,extend){var attrs=__assign({},node.attrs);extend!=null&&extend.colorChannel1&&attrs.fill==="colorChannel1"&&(attrs.fill=extend.colorChannel1);var defIds=runtimeProps.defIds;return!defIds||defIds.length===0||(node.tag==="use"&&attrs["xlink:href"]&&(attrs["xlink:href"]=attrs["xlink:href"]+runtimeProps.idSuffix),Object.entries(attrs).forEach(function(_a2){var key=_a2[0],value=_a2[1];typeof value=="string"&&(attrs[key]=value.replace(/url\(#(.*)\)/,"url(#$1".concat(runtimeProps.idSuffix,")")))})),attrs}__name(replaceRuntimeIdsAndExtInAttrs,"replaceRuntimeIdsAndExtInAttrs");function replaceRuntimeIdsInDefs(node,runtimeProps){var _a2,defIds=runtimeProps.defIds;return!defIds||defIds.length===0?node:node.tag==="defs"&&(!((_a2=node.children)===null||_a2===void 0)&&_a2.length)?__assign(__assign({},node),{children:node.children.map(function(child){return typeof child.attrs.id=="string"&&defIds&&defIds.indexOf(child.attrs.id)>-1?__assign(__assign({},child),{attrs:__assign(__assign({},child.attrs),{id:child.attrs.id+runtimeProps.idSuffix})}):child})}):node}__name(replaceRuntimeIdsInDefs,"replaceRuntimeIdsInDefs");function generateShortUuid(){return Math.random().toString(36).substring(2,8)}__name(generateShortUuid,"generateShortUuid"),IconBase.displayName="UniverIcon";var element$3={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M14.1544 3.75557C14.3887 3.98988 14.3887 4.36978 14.1544 4.6041L6.51409 12.2444C6.40157 12.3569 6.24896 12.4201 6.08983 12.4201C5.9307 12.4201 5.77808 12.3569 5.66556 12.2444L1.84541 8.42425C1.6111 8.18993 1.6111 7.81003 1.84541 7.57572C2.07973 7.34141 2.45963 7.34141 2.69394 7.57572L6.08983 10.9716L13.3059 3.75557C13.5402 3.52126 13.9201 3.52126 14.1544 3.75557Z",fillRule:"evenodd",clipRule:"evenodd"}}]},CheckMarkSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"check-mark-single",ref,icon:element$3}))});CheckMarkSingle.displayName="CheckMarkSingle";var element$2={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M3.71274 2.86421C3.47843 2.6299 3.09853 2.6299 2.86421 2.86421C2.6299 3.09853 2.6299 3.47843 2.86421 3.71274L7.15154 8.00007L2.86421 12.2874C2.6299 12.5217 2.6299 12.9016 2.86421 13.1359C3.09853 13.3702 3.47843 13.3702 3.71274 13.1359L8.00007 8.84859L12.2874 13.1359C12.5217 13.3702 12.9016 13.3702 13.1359 13.1359C13.3702 12.9016 13.3702 12.5217 13.1359 12.2874L8.84859 8.00007L13.1359 3.71274C13.3702 3.47843 13.3702 3.09853 13.1359 2.86421C12.9016 2.6299 12.5217 2.6299 12.2874 2.86421L8.00007 7.15154L3.71274 2.86421Z"}}]},CloseSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"close-single",ref,icon:element$2}))});CloseSingle.displayName="CloseSingle";var element$1={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M8.75 5.32495C8.75 5.73916 8.41421 6.07495 8 6.07495 7.58579 6.07495 7.25 5.73916 7.25 5.32495 7.25 4.91074 7.58579 4.57495 8 4.57495 8.41421 4.57495 8.75 4.91074 8.75 5.32495zM8.5999 7.52505C8.5999 7.19368 8.33127 6.92505 7.9999 6.92505 7.66853 6.92505 7.3999 7.19368 7.3999 7.52505V11.425C7.3999 11.7564 7.66853 12.025 7.9999 12.025 8.33127 12.025 8.5999 11.7564 8.5999 11.425V7.52505z"}},{tag:"path",attrs:{fill:"currentColor",d:"M0.899902 8.00002C0.899902 4.0788 4.07868 0.900024 7.9999 0.900024C11.9211 0.900024 15.0999 4.0788 15.0999 8.00002C15.0999 11.9212 11.9211 15.1 7.9999 15.1C4.07868 15.1 0.899902 11.9212 0.899902 8.00002ZM7.9999 2.10002C4.74142 2.10002 2.0999 4.74154 2.0999 8.00002C2.0999 11.2585 4.74142 13.9 7.9999 13.9C11.2584 13.9 13.8999 11.2585 13.8999 8.00002C13.8999 4.74154 11.2584 2.10002 7.9999 2.10002Z",fillRule:"evenodd",clipRule:"evenodd"}}]},DetailsSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"details-single",ref,icon:element$1}))});DetailsSingle.displayName="DetailsSingle";var element={tag:"svg",attrs:{fill:"none",viewBox:"0 0 16 16",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M5.90913 3.57564C6.14345 3.34132 6.52335 3.34132 6.75766 3.57564L10.7577 7.57564C10.992 7.80995 10.992 8.18985 10.7577 8.42417L6.75766 12.4242C6.52335 12.6585 6.14345 12.6585 5.90913 12.4242C5.67482 12.1899 5.67482 11.81 5.90913 11.5756L9.48487 7.9999L5.90913 4.42417C5.67482 4.18985 5.67482 3.80995 5.90913 3.57564Z",fillRule:"evenodd",clipRule:"evenodd"}}]},MoreSingle=require$$0.forwardRef(function(props,ref){return require$$0.createElement(IconBase,Object.assign({},props,{id:"more-single",ref,icon:element}))});MoreSingle.displayName="MoreSingle";function getFunctionTypeValues(enumObj,localeService){return Object.keys(enumObj).filter(key=>isNaN(Number(key))&&key!=="DefinedName").map(key=>({label:localeService.t(`formula.functionType.${key.toLocaleLowerCase()}`),value:`${enumObj[key]}`}))}__name(getFunctionTypeValues,"getFunctionTypeValues");function generateParam(param){if(!param.require&&!param.repeat)return`[${param.name}]`;if(param.require&&!param.repeat)return param.name;if(!param.require&¶m.repeat)return`[${param.name},...]`;if(param.require&¶m.repeat)return`${param.name},...`}__name(generateParam,"generateParam");const useResizeScrollObserver=__name((callback,delay=100)=>{require$$0.useEffect(()=>{let throttleTimeout=null;const throttledCallback=__name(()=>{throttleTimeout===null&&(throttleTimeout=window.setTimeout(()=>{callback(),throttleTimeout=null},delay))},"throttledCallback");return window.addEventListener("scroll",throttledCallback),window.addEventListener("resize",throttledCallback),()=>{throttleTimeout!==null&&clearTimeout(throttleTimeout),window.removeEventListener("scroll",throttledCallback),window.removeEventListener("resize",throttledCallback)}},[callback,delay])},"useResizeScrollObserver"),styles$5={formulaHelpFunction:"univer-formula-help-function",formulaHelpFunctionTitle:"univer-formula-help-function-title",formulaHelpFunctionTitleIcons:"univer-formula-help-function-title-icons",formulaHelpFunctionTitleIcon:"univer-formula-help-function-title-icon",formulaHelpFunctionContent:"univer-formula-help-function-content",formulaHelpFunctionContentInner:"univer-formula-help-function-content-inner",formulaHelpFunctionContentParams:"univer-formula-help-function-content-params",formulaHelpFunctionContentParamsTitle:"univer-formula-help-function-content-params-title",formulaHelpFunctionContentParamsDetail:"univer-formula-help-function-content-params-detail",formulaHelpFunctionActive:"univer-formula-help-function-active",formulaHelpDecorator:"univer-formula-help-decorator",formulaHelpParam:"univer-formula-help-param",formulaHelpParamPrefix:"univer-formula-help-param-prefix",formulaHelpParamItem:"univer-formula-help-param-item",formulaHelpParamActive:"univer-formula-help-param-active"};function HelpFunction(){const[visible,setVisible]=require$$0.useState(!1),[contentVisible,setContentVisible]=require$$0.useState(!0),[helpVisible,setHelpVisible]=require$$0.useState(!0),[paramIndex,setParamIndex]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[decoratorPosition,setDecoratorPosition]=require$$0.useState({left:0,top:0}),[functionInfo,setFunctionInfo]=require$$0.useState(null),promptService=core.useDependency(IFormulaPromptService),localeService=core.useDependency(core.LocaleService),required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional"),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService),sidebarService=core.useDependency(ui.ISidebarService),injector=core.useInjector();useResizeScrollObserver(updatePosition),require$$0.useEffect(()=>{const subscription=promptService.help$.subscribe(params=>{const{visible:visible2,paramIndex:paramIndex2,functionInfo:functionInfo2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;functionInfo2.description===""&&functionInfo2.functionParameter.length===0||(setOffset([left,top+height]),setParamIndex(paramIndex2),setFunctionInfo(functionInfo2),setDecoratorPosition({left,top}),setVisible(visible2))}),sidebarSubscription=sidebarService.scrollEvent$.pipe(rxjs.throttleTime(100)).subscribe(updatePosition);return()=>{subscription==null||subscription.unsubscribe(),sidebarSubscription.unsubscribe()}},[]);function updatePosition(){if(!helpVisible)return;const position=getPosition();if(position==null)return;const{left,top,height}=position;setOffset([left,top+height])}__name(updatePosition,"updatePosition");function getPosition(){const documentDataModel=univerInstanceService.getCurrentUniverDocInstance();if(!documentDataModel)return;const editorUnitId=documentDataModel.getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleSwitchActive(paramIndex2){setParamIndex(paramIndex2)}__name(handleSwitchActive,"handleSwitchActive");function handleClose(){setHelpVisible(!helpVisible),injector.get(ui.ILayoutService).focus()}return __name(handleClose,"handleClose"),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:helpVisible?jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:functionInfo?jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunction,children:[jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitle,children:[jsxRuntimeExports.jsx(Help,{prefix:functionInfo.functionName,value:functionInfo.functionParameter,active:paramIndex,onClick:handleSwitchActive}),jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionTitleIcons,children:[jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,style:{transform:contentVisible?"rotateZ(-90deg)":"rotateZ(90deg)"},onClick:__name(()=>setContentVisible(!contentVisible),"onClick"),children:jsxRuntimeExports.jsx(MoreSingle,{})}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionTitleIcon,onClick:handleClose,children:jsxRuntimeExports.jsx(CloseSingle,{})})]})]}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContent,style:{height:contentVisible?"unset":0,padding:contentVisible?"revert-layer":0},children:jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentInner,children:[jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),jsxRuntimeExports.jsx(Params,{title:localeService.t("formula.prompt.helpAbstract"),value:functionInfo.description}),functionInfo&&functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(Params,{className:paramIndex===i?styles$5.formulaHelpFunctionActive:"",title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})})]}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})}):visible?jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpDecorator,onClick:__name(()=>setHelpVisible(!helpVisible),"onClick"),style:{left:decoratorPosition.left-24,top:decoratorPosition.top},children:jsxRuntimeExports.jsx(DetailsSingle,{})}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{})})}__name(HelpFunction,"HelpFunction");const Params=__name(props=>jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpFunctionContentParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$5.formulaHelpFunctionContentParamsTitle} ${props.className}`,children:props.title}),jsxRuntimeExports.jsx("div",{className:styles$5.formulaHelpFunctionContentParamsDetail,children:props.value})]}),"Params"),Help=__name(props=>{const{prefix,value,active,onClick}=props;return jsxRuntimeExports.jsxs("div",{className:styles$5.formulaHelpParam,children:[jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamPrefix,children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{className:styles$5.formulaHelpParamItem,children:[jsxRuntimeExports.jsx("span",{className:active===i?styles$5.formulaHelpFunctionActive:styles$5.formulaHelpParamActive,onClick:__name(()=>onClick(i),"onClick"),children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})},"Help"),styles$4={formulaSearchFunction:"univer-formula-search-function",formulaSearchFunctionItem:"univer-formula-search-function-item",formulaSearchFunctionItemName:"univer-formula-search-function-item-name",formulaSearchFunctionItemNameLight:"univer-formula-search-function-item-name-light",formulaSearchFunctionItemDesc:"univer-formula-search-function-item-desc",formulaSearchFunctionItemActive:"univer-formula-search-function-item-active"};function SearchFunction(){const[visible,setVisible]=require$$0.useState(!1),[active,setActive]=require$$0.useState(0),[offset,setOffset]=require$$0.useState([0,0]),[searchList,setSearchList]=require$$0.useState([]),[searchText,setSearchText]=require$$0.useState(""),ulRef=require$$0.useRef(null),promptService=core.useDependency(IFormulaPromptService),univerInstanceService=core.useDependency(core.IUniverInstanceService),editorService=core.useDependency(docsUi.IEditorService);require$$0.useEffect(()=>{let updatedSearchList=[],updatedActive=0;const subscribeSearch=promptService.search$.subscribe(params=>{const{visible:visible2,searchText:searchText2,searchList:searchList2}=params;if(!visible2){setVisible(visible2);return}const position=getPosition();if(position==null)return;const{left,top,height}=position;setSearchText(searchText2),setSearchList(searchList2),updatedSearchList=searchList2,setOffset([left,top+height]),setVisible(visible2),setActive(0),updatedActive=0}),subscribeNavigate=promptService.navigate$.subscribe(params=>{const{direction}=params;if(direction===core.Direction.UP){let nextActive=updatedActive-1;nextActive=nextActive<0?updatedSearchList.length-1:nextActive,setActive(nextActive),updatedActive=nextActive}else if(direction===core.Direction.DOWN){let nextActive=updatedActive+1;nextActive=nextActive>=updatedSearchList.length?0:nextActive,setActive(nextActive),updatedActive=nextActive}scrollToVisible(updatedActive)}),subscribeAccept=promptService.accept$.subscribe(params=>{const functionName=updatedSearchList[updatedActive].name;promptService.acceptFormulaName(functionName)});return()=>{subscribeSearch==null||subscribeSearch.unsubscribe(),subscribeNavigate==null||subscribeNavigate.unsubscribe(),subscribeAccept==null||subscribeAccept.unsubscribe()}},[]);function getPosition(){const editorUnitId=univerInstanceService.getCurrentUniverDocInstance().getUnitId();if(!editorService.isEditor(editorUnitId))return;const editor=editorService.getEditor(editorUnitId);return editor==null?void 0:editor.getBoundingClientRect()}__name(getPosition,"getPosition");function handleLiMouseEnter(index){setActive(index)}__name(handleLiMouseEnter,"handleLiMouseEnter");function handleLiMouseLeave(){setActive(-1)}__name(handleLiMouseLeave,"handleLiMouseLeave");function scrollToVisible(liIndex){var _a2;const liElement=(_a2=ulRef.current)==null?void 0:_a2.querySelectorAll(`.${styles$4.formulaSearchFunctionItem}`)[liIndex];if(!liElement)return;const ulElement=liElement.parentNode;if(!ulElement)return;const ulTop=ulElement.getBoundingClientRect().top,ulHeight=ulElement.offsetHeight,liRect=liElement.getBoundingClientRect(),liTop=liRect.top,liHeight=liRect.height;if(liTop>=0&&liTop>ulTop&&liTop-ulTop+liHeight<=ulHeight)return;const scrollTo=liElement.offsetTop-(ulHeight-liHeight)/2;ulElement.scrollTo({top:scrollTo,behavior:"smooth"})}return __name(scrollToVisible,"scrollToVisible"),searchList.length>0&&jsxRuntimeExports.jsx(design.Popup,{visible,offset,children:jsxRuntimeExports.jsx("ul",{className:styles$4.formulaSearchFunction,ref:ulRef,children:searchList.map((item,index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles$4.formulaSearchFunctionItem} ${styles$4.formulaSearchFunctionItemActive}`:styles$4.formulaSearchFunctionItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>promptService.acceptFormulaName(item.name),"onClick"),children:[jsxRuntimeExports.jsxs("span",{className:styles$4.formulaSearchFunctionItemName,children:[jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemNameLight,children:item.name.substring(0,searchText.length)}),jsxRuntimeExports.jsx("span",{children:item.name.slice(searchText.length)})]}),jsxRuntimeExports.jsx("span",{className:styles$4.formulaSearchFunctionItemDesc,children:item.desc})]},index))})})}__name(SearchFunction,"SearchFunction");function RenderFormulaPromptContent(){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SearchFunction,{}),jsxRuntimeExports.jsx(HelpFunction,{})]})}__name(RenderFormulaPromptContent,"RenderFormulaPromptContent");const styles$3={formulaMoreFunctions:"univer-formula-more-functions",formulaMoreFunctionsOperation:"univer-formula-more-functions-operation"};function FunctionHelp(props){const{prefix,value}=props;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("span",{children:[prefix,"("]}),value&&value.map((item,i)=>jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{children:generateParam(item)}),i===value.length-1?"":","]},i)),")"]})}__name(FunctionHelp,"FunctionHelp");const styles$2={formulaFunctionParams:"univer-formula-function-params",formulaFunctionParamsTitle:"univer-formula-function-params-title",formulaFunctionParamsDetail:"univer-formula-function-params-detail"};function FunctionParams(props){const{className,value,title}=props;return jsxRuntimeExports.jsxs("div",{className:styles$2.formulaFunctionParams,children:[jsxRuntimeExports.jsx("div",{className:`${styles$2.formulaFunctionParamsTitle} ${className}`,children:title}),jsxRuntimeExports.jsx("div",{className:styles$2.formulaFunctionParamsDetail,children:value})]})}__name(FunctionParams,"FunctionParams");const styles$1={formulaInputParamsList:"univer-formula-input-params-list",formulaInputParamsListItemName:"univer-formula-input-params-list-item-name",formulaInputParamsListItemSelector:"univer-formula-input-params-list-item-selector"};function InputParams(props){const{functionInfo,onChange}=props;if(!functionInfo)return null;require$$0.useState([]);const[functionParameter,setFunctionParameter]=require$$0.useState(functionInfo.functionParameter),[activeIndex,setActiveIndex]=require$$0.useState(-1);return jsxRuntimeExports.jsxs("div",{className:styles$1.formulaInputParams,children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsList,children:functionParameter.map((item,i)=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemName,children:item.name}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsListItemSelector})]},i))}),jsxRuntimeExports.jsx("div",{className:styles$1.formulaInputParamsInfo,children:jsxRuntimeExports.jsx(FunctionParams,{title:activeIndex===-1?jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionParameter}):functionParameter[activeIndex].name,value:activeIndex===-1?functionInfo.description:functionParameter[activeIndex].detail})})]})}__name(InputParams,"InputParams");const styles={formulaSelectFunctionSelect:"univer-formula-select-function-select",formulaSelectFunctionResult:"univer-formula-select-function-result",formulaSelectFunctionResultItem:"univer-formula-select-function-result-item",formulaSelectFunctionResultItemNameLight:"univer-formula-select-function-result-item-name-light",formulaSelectFunctionResultItemSelected:"univer-formula-select-function-result-item-selected",formulaSelectFunctionResultItemActive:"univer-formula-select-function-result-item-active",formulaSelectFunctionContent:"univer-formula-select-function-content"};function SelectFunction(props){const{onChange}=props,allTypeValue="-1",[searchText,setSearchText]=require$$0.useState(""),[selectList,setSelectList]=require$$0.useState([]),[active,setActive]=require$$0.useState(0),[typeSelected,setTypeSelected]=require$$0.useState(allTypeValue),[nameSelected,setNameSelected]=require$$0.useState(0),[functionInfo,setFunctionInfo]=require$$0.useState(null),descriptionService=core.useDependency(sheetsFormula.IDescriptionService),localeService=core.useDependency(core.LocaleService),sidebarService=core.useDependency(ui.ISidebarService),sidebarOptions=core.useObservable(sidebarService.sidebarOptions$),options=getFunctionTypeValues(engineFormula.FunctionType,localeService);options.unshift({label:localeService.t("formula.moreFunctions.allFunctions"),value:allTypeValue});const required=localeService.t("formula.prompt.required"),optional=localeService.t("formula.prompt.optional");require$$0.useEffect(()=>{handleSelectChange(allTypeValue)},[]),require$$0.useEffect(()=>{setCurrentFunctionInfo(0)},[selectList]),require$$0.useEffect(()=>{sidebarOptions!=null&&sidebarOptions.visible&&(setSearchText(""),setSelectList([]),setActive(0),setTypeSelected(allTypeValue),setNameSelected(0),setFunctionInfo(null),handleSelectChange(allTypeValue))},[sidebarOptions]);const highlightSearchText=__name(text=>{if(searchText.trim()==="")return text;const regex=new RegExp(`(${searchText.toLocaleUpperCase()})`);return text.split(regex).filter(Boolean).map((part,index)=>part.match(regex)?jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemNameLight,children:part},index):part)},"highlightSearchText"),setCurrentFunctionInfo=__name(selectedIndex=>{if(selectList.length===0){setFunctionInfo(null);return}setNameSelected(selectedIndex);const functionInfo2=descriptionService.getFunctionInfo(selectList[selectedIndex].name);if(!functionInfo2){setFunctionInfo(null);return}setFunctionInfo(functionInfo2),onChange(functionInfo2)},"setCurrentFunctionInfo");function handleSelectChange(value){setTypeSelected(value);const selectList2=descriptionService.getSearchListByType(+value);setSelectList(selectList2)}__name(handleSelectChange,"handleSelectChange");function handleSearchInputChange(value){setSearchText(value);const selectList2=descriptionService.getSearchListByName(value);setSelectList(selectList2)}__name(handleSearchInputChange,"handleSearchInputChange");function handleSelectListKeyDown(e){if(e.stopPropagation(),e.key==="ArrowDown"){const nextActive=active+1;setActive(nextActive===selectList.length?0:nextActive)}else if(e.key==="ArrowUp"){const nextActive=active-1;setActive(nextActive===-1?selectList.length-1:nextActive)}else e.key==="Enter"&&setCurrentFunctionInfo(active)}__name(handleSelectListKeyDown,"handleSelectListKeyDown");const handleLiMouseEnter=__name(index=>{setActive(index)},"handleLiMouseEnter"),handleLiMouseLeave=__name(()=>{setActive(-1)},"handleLiMouseLeave");return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionSelect,children:[jsxRuntimeExports.jsx(design.Select,{value:typeSelected,options,onChange:handleSelectChange}),jsxRuntimeExports.jsx(design.Input,{placeholder:localeService.t("formula.moreFunctions.searchFunctionPlaceholder"),onKeyDown:handleSelectListKeyDown,value:searchText,onChange:handleSearchInputChange,size:"large",allowClear:!0})]}),jsxRuntimeExports.jsx("ul",{className:styles.formulaSelectFunctionResult,onKeyDown:handleSelectListKeyDown,tabIndex:-1,children:selectList.map(({name},index)=>jsxRuntimeExports.jsxs("li",{className:active===index?`${styles.formulaSelectFunctionResultItem} ${styles.formulaSelectFunctionResultItemActive}`:styles.formulaSelectFunctionResultItem,onMouseEnter:__name(()=>handleLiMouseEnter(index),"onMouseEnter"),onMouseLeave:handleLiMouseLeave,onClick:__name(()=>setCurrentFunctionInfo(index),"onClick"),children:[nameSelected===index&&jsxRuntimeExports.jsx(CheckMarkSingle,{className:styles.formulaSelectFunctionResultItemSelected}),jsxRuntimeExports.jsx("span",{className:styles.formulaSelectFunctionResultItemName,children:highlightSearchText(name)})]},index))}),functionInfo&&jsxRuntimeExports.jsxs("div",{className:styles.formulaSelectFunctionContent,children:[jsxRuntimeExports.jsx(FunctionParams,{title:functionInfo.functionName,value:functionInfo.description}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.moreFunctions.syntax"),value:jsxRuntimeExports.jsx(FunctionHelp,{prefix:functionInfo.functionName,value:functionInfo.functionParameter})}),jsxRuntimeExports.jsx(FunctionParams,{title:localeService.t("formula.prompt.helpExample"),value:`${functionInfo.functionName}(${functionInfo.functionParameter.map(item=>item.example).join(",")})`}),functionInfo.functionParameter&&functionInfo.functionParameter.map((item,i)=>jsxRuntimeExports.jsx(FunctionParams,{title:item.name,value:`${item.require?required:optional} ${item.detail}`},i))]})]})}__name(SelectFunction,"SelectFunction");function MoreFunctions(){const workbook=sheetsUi.useActiveWorkbook(),[selectFunction,setSelectFunction]=require$$0.useState(!0),[inputParams,setInputParams]=require$$0.useState(!1),[functionInfo,setFunctionInfo]=require$$0.useState(null),localeService=core.useDependency(core.LocaleService),editorService=core.useDependency(docsUi.IEditorService);function handleClickNextPrev(){setSelectFunction(!selectFunction),setInputParams(!inputParams)}__name(handleClickNextPrev,"handleClickNextPrev");function handleConfirm(){editorService.setFormula(`=${functionInfo==null?void 0:functionInfo.functionName}(`)}return __name(handleConfirm,"handleConfirm"),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctions,children:[selectFunction&&jsxRuntimeExports.jsx(SelectFunction,{onChange:setFunctionInfo}),inputParams&&jsxRuntimeExports.jsx(InputParams,{functionInfo,onChange:__name(()=>{},"onChange")}),jsxRuntimeExports.jsxs("div",{className:styles$3.formulaMoreFunctionsOperation,children:[inputParams&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.next")}),inputParams&&jsxRuntimeExports.jsx(design.Button,{size:"small",onClick:handleClickNextPrev,children:localeService.t("formula.moreFunctions.prev")}),selectFunction&&!!workbook&&jsxRuntimeExports.jsx(design.Button,{type:"primary",size:"small",onClick:handleConfirm,children:localeService.t("formula.moreFunctions.confirm")})]})]})}__name(MoreFunctions,"MoreFunctions");function InsertFunctionMenuItemFactory(accessor){return{id:InsertFunctionOperation.id,icon:"FunctionSingle",tooltip:"formula.insert.tooltip",type:ui.MenuItemType.SELECTOR,selections:[{label:"SUM",value:"SUM",icon:"SumSingle"},{label:"AVERAGE",value:"AVERAGE",icon:"AvgSingle"},{label:"COUNT",value:"COUNT",icon:"CntSingle"},{label:"MAX",value:"MAX",icon:"MaxSingle"},{label:"MIN",value:"MIN",icon:"MinSingle"}],hidden$:ui.getMenuHiddenObservable(accessor,core.UniverInstanceType.UNIVER_SHEET),disabled$:sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],worksheetTypes:[sheets.WorksheetEditPermission,sheets.WorksheetSetCellValuePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint]})}}__name(InsertFunctionMenuItemFactory,"InsertFunctionMenuItemFactory");function MoreFunctionsMenuItemFactory(accessor){return{id:MoreFunctionsOperation.id,title:"formula.insert.more",type:ui.MenuItemType.BUTTON}}__name(MoreFunctionsMenuItemFactory,"MoreFunctionsMenuItemFactory");function menuClipboardDisabledObservable(injector){return injector.get(core.IUniverInstanceService).getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_SHEET).pipe(rxjs.switchMap(workbook=>workbook&&injector.get(ui.IClipboardInterfaceService)?new rxjs.Observable(subscriber=>subscriber.next(!injector.get(ui.IClipboardInterfaceService).supportClipboard)):rxjs.of(!0)))}__name(menuClipboardDisabledObservable,"menuClipboardDisabledObservable");function PasteFormulaMenuItemFactory(accessor){return{id:SheetOnlyPasteFormulaCommand.id,type:ui.MenuItemType.BUTTON,title:"formula.operation.pasteFormula",disabled$:menuClipboardDisabledObservable(accessor).pipe(rxjs.combineLatestWith(sheetsUi.getCurrentRangeDisable$(accessor,{workbookTypes:[sheets.WorkbookEditablePermission],rangeTypes:[sheets.RangeProtectionPermissionEditPoint],worksheetTypes:[sheets.WorksheetSetCellValuePermission,sheets.WorksheetEditPermission]})),rxjs.map(([d1,d2])=>d1||d2))}}__name(PasteFormulaMenuItemFactory,"PasteFormulaMenuItemFactory");const menuSchema={[ui.RibbonStartGroup.FORMULAS_INSERT]:{[InsertFunctionOperation.id]:{order:1,menuItemFactory:InsertFunctionMenuItemFactory,[MoreFunctionsOperation.id]:{order:1,menuItemFactory:MoreFunctionsMenuItemFactory}}},[sheetsUi.PASTE_SPECIAL_MENU_ID]:{[SheetOnlyPasteFormulaCommand.id]:{order:4,menuItemFactory:PasteFormulaMenuItemFactory}}},META_KEY_CTRL_AND_SHIFT="meta_key_ctrl_And_Shift",PROMPT_SELECTION_KEYCODE_ARROW_LIST=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT],PROMPT_SELECTION_KEYCODE_LIST=[...PROMPT_SELECTION_KEYCODE_ARROW_LIST,ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ESC];function promptSelectionShortcutItem(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode}});return shortcutList}__name(promptSelectionShortcutItem,"promptSelectionShortcutItem");function promptSelectionShortcutItemShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.SHIFT}});return shortcutList}__name(promptSelectionShortcutItemShift,"promptSelectionShortcutItemShift");function promptSelectionShortcutItemCtrl(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:ui.MetaKeys.CTRL_COMMAND}});return shortcutList}__name(promptSelectionShortcutItemCtrl,"promptSelectionShortcutItemCtrl");function promptSelectionShortcutItemCtrlAndShift(){const shortcutList=[];for(const keycode of PROMPT_SELECTION_KEYCODE_ARROW_LIST)shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode|ui.MetaKeys.SHIFT|ui.MetaKeys.CTRL_COMMAND,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,metaKey:META_KEY_CTRL_AND_SHIFT}});return shortcutList}__name(promptSelectionShortcutItemCtrlAndShift,"promptSelectionShortcutItemCtrlAndShift");const ChangeRefToAbsoluteShortcut={id:ReferenceAbsoluteOperation.id,binding:ui.KeyCode.F4,preconditions:__name(contextService=>sheetsUi.whenFormulaEditorActivated(contextService),"preconditions")};function singleEditorPromptSelectionShortcutItem(){const shortcutList=[];for(const keycode of[ui.KeyCode.ENTER,ui.KeyCode.TAB,ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP])shortcutList.push({id:SelectEditorFormulaOperation.id,binding:keycode,preconditions:__name(contextService=>whenEditorStandalone(contextService),"preconditions"),staticParameters:{eventType:engineRender.DeviceInputEventType.Keyboard,keycode,isSingleEditor:!0}});return shortcutList}__name(singleEditorPromptSelectionShortcutItem,"singleEditorPromptSelectionShortcutItem");var __defProp$3=Object.defineProperty,__getOwnPropDesc$3=Object.getOwnPropertyDescriptor,__decorateClass$3=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$3(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$3(target,key,result),result},"__decorateClass$3"),__decorateParam$3=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$3");let FormulaUIController=(_g=class extends core.Disposable{constructor(_injector,_menuManagerService,_commandService,_shortcutService,_uiPartsService,_renderManagerService,_componentManager){super(),this._injector=_injector,this._menuManagerService=_menuManagerService,this._commandService=_commandService,this._shortcutService=_shortcutService,this._uiPartsService=_uiPartsService,this._renderManagerService=_renderManagerService,this._componentManager=_componentManager,this._initialize()}_initialize(){this._registerCommands(),this._registerMenus(),this._registerShortcuts(),this._registerComponents(),this._registerRenderModules()}_registerMenus(){this._menuManagerService.mergeMenu(menuSchema)}_registerCommands(){[SheetOnlyPasteFormulaCommand,InsertFunctionOperation,MoreFunctionsOperation,SearchFunctionOperation,HelpFunctionOperation,SelectEditorFormulaOperation,ReferenceAbsoluteOperation].forEach(command=>this.disposeWithMe(this._commandService.registerCommand(command)))}_registerShortcuts(){[...promptSelectionShortcutItem(),...promptSelectionShortcutItemShift(),...promptSelectionShortcutItemCtrl(),...promptSelectionShortcutItemCtrlAndShift(),...singleEditorPromptSelectionShortcutItem(),ChangeRefToAbsoluteShortcut].forEach(item=>{this.disposeWithMe(this._shortcutService.registerShortcut(item))})}_registerComponents(){this.disposeWithMe(this._uiPartsService.registerComponent(ui.BuiltInUIPart.CONTENT,()=>core.connectInjector(RenderFormulaPromptContent,this._injector))),this._componentManager.register(MORE_FUNCTIONS_COMPONENT,MoreFunctions)}_registerRenderModules(){this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,[FormulaEditorShowController]))}},__name(_g,"FormulaUIController"),_g);FormulaUIController=__decorateClass$3([__decorateParam$3(0,core.Inject(core.Injector)),__decorateParam$3(1,ui.IMenuManagerService),__decorateParam$3(2,core.ICommandService),__decorateParam$3(3,ui.IShortcutService),__decorateParam$3(4,ui.IUIPartsService),__decorateParam$3(5,engineRender.IRenderManagerService),__decorateParam$3(6,core.Inject(ui.ComponentManager))],FormulaUIController);function getFormulaRefSelectionStyle(themeService,refColor,id){const style=themeService.getCurrentTheme(),fill=new core.ColorKit(refColor).setAlpha(.05).toRgbString();return{id,strokeWidth:1,stroke:refColor,fill,widgets:{tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},widgetSize:6,widgetStrokeWidth:1,widgetStroke:style.colorWhite,hasAutoFill:!1,hasRowHeader:!1,hasColumnHeader:!1}}__name(getFormulaRefSelectionStyle,"getFormulaRefSelectionStyle");var __defProp$2=Object.defineProperty,__getOwnPropDesc$2=Object.getOwnPropertyDescriptor,__decorateClass$2=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$2(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$2(target,key,result),result},"__decorateClass$2"),__decorateParam$2=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$2");let RefSelectionsRenderService=(_h=class extends sheetsUi.BaseSelectionRenderService{constructor(_context,injector,themeService,shortcutService,sheetSkeletonManagerService,_refSelectionsService){super(injector,themeService,shortcutService,sheetSkeletonManagerService);__publicField(this,"_workbookSelections");__publicField(this,"_eventDisposables");this._context=_context,this._refSelectionsService=_refSelectionsService,this._workbookSelections=this._refSelectionsService.getWorkbookSelections(this._context.unitId),this._initSelectionChangeListener(),this._initSkeletonChangeListener(),this._initUserActionSyncListener(),this._setSelectionStyle(getDefaultRefSelectionStyle(this._themeService)),this._remainLastEnabled=!0}getLocation(){return this._skeleton.getLocation()}setRemainLastEnabled(enabled){this._remainLastEnabled=enabled}setSkipLastEnabled(enabled){this._skipLastEnabled=enabled}clearLastSelection(){const last=this._selectionControls[this._selectionControls.length-1];last&&(last.dispose(),this._selectionControls.pop())}enableSelectionChanging(){return this._disableSelectionChanging(),this._eventDisposables=this._initCanvasEventListeners(),core.toDisposable(()=>this._disableSelectionChanging())}_disableSelectionChanging(){var _a2;(_a2=this._eventDisposables)==null||_a2.dispose(),this._eventDisposables=null}_initCanvasEventListeners(){const sheetObject=this._getSheetObject(),{spreadsheetRowHeader,spreadsheetColumnHeader,spreadsheet,spreadsheetLeftTopPlaceholder}=sheetObject,{scene}=this._context,listenerDisposables=new core.DisposableCollection;return listenerDisposables.add(spreadsheet==null?void 0:spreadsheet.onPointerDown$.subscribeEvent((evt,state)=>{this._onPointerDown(evt,spreadsheet.zIndex+1,core.RANGE_TYPE.NORMAL,this._getActiveViewport(evt)),evt.button!==2&&state.stopPropagation()})),listenerDisposables.add(spreadsheetRowHeader==null?void 0:spreadsheetRowHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{row}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),row,core.RANGE_TYPE.ROW)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.ROW,this._getActiveViewport(evt),engineRender.ScrollTimerType.Y),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetColumnHeader==null?void 0:spreadsheetColumnHeader.onPointerDown$.subscribeEvent((evt,state)=>{const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,{column}=sheetsUi.getCoordByOffset(evt.offsetX,evt.offsetY,scene,skeleton);sheetsUi.checkInHeaderRanges(this._workbookSelections.getCurrentSelections(),column,core.RANGE_TYPE.COLUMN)||(this._onPointerDown(evt,(spreadsheet.zIndex||1)+1,core.RANGE_TYPE.COLUMN,this._getActiveViewport(evt),engineRender.ScrollTimerType.X),evt.button!==2&&state.stopPropagation())})),listenerDisposables.add(spreadsheetLeftTopPlaceholder==null?void 0:spreadsheetLeftTopPlaceholder.onPointerDown$.subscribeEvent((evt,state)=>{this._reset();const skeleton=this._sheetSkeletonManagerService.getCurrent().skeleton,selectionWithStyle=sheetsUi.getAllSelection(skeleton),selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData),this._selectionMoveStart$.next(this.getSelectionDataWithStyle()),evt.button!==2&&state.stopPropagation()})),listenerDisposables}_initUserActionSyncListener(){this.disposeWithMe(this.selectionMoveStart$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_START)})),this.disposeWithMe(this.selectionMoving$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVING)})),this.disposeWithMe(this.selectionMoveEnd$.subscribe(selectionDataWithStyle=>{this._updateSelections(selectionDataWithStyle,sheets.SelectionMoveType.MOVE_END)}))}_updateSelections(selectionDataWithStyleList,type){const sheetId=this._context.unit.getActiveSheet().getSheetId();selectionDataWithStyleList.length!==0&&this._workbookSelections.setSelections(sheetId,selectionDataWithStyleList.map(selectionDataWithStyle=>sheets.convertSelectionDataToRange(selectionDataWithStyle)),type)}_initSelectionChangeListener(){this.disposeWithMe(this._workbookSelections.selectionMoveEnd$.subscribe(selectionsWithStyles=>{this._reset();for(const selectionWithStyle of selectionsWithStyles){const selectionData=this.attachSelectionWithCoord(selectionWithStyle);this._addSelectionControlBySelectionData(selectionData)}}))}_initSkeletonChangeListener(){this.disposeWithMe(this._sheetSkeletonManagerService.currentSkeleton$.subscribe(param=>{if(!param)return;const{skeleton}=param,{scene}=this._context,viewportMain=scene.getViewport(engineRender.SHEET_VIEWPORT_KEY.VIEW_MAIN);this._skeleton&&this._skeleton.worksheet.getSheetId()!==skeleton.worksheet.getSheetId()&&this._reset(),this._changeRuntime(skeleton,scene,viewportMain);const currentSelections=this._workbookSelections.getCurrentSelections();this._refreshSelectionControl(currentSelections||[])}))}_refreshSelectionControl(selectionsData){const selections=selectionsData.map(selectionWithStyle=>sheetsUi.attachSelectionWithCoord(selectionWithStyle,this._skeleton));this.updateControlForCurrentByRangeData(selections)}_getActiveViewport(evt){const sheetObject=this._getSheetObject();return sheetObject==null?void 0:sheetObject.scene.getActiveViewportByCoord(engineRender.Vector2.FromArray([evt.offsetX,evt.offsetY]))}_getSheetObject(){return sheetsUi.getSheetObject(this._context.unit,this._context)}},__name(_h,"RefSelectionsRenderService"),_h);RefSelectionsRenderService=__decorateClass$2([__decorateParam$2(1,core.Inject(core.Injector)),__decorateParam$2(2,core.Inject(core.ThemeService)),__decorateParam$2(3,ui.IShortcutService),__decorateParam$2(4,core.Inject(sheetsUi.SheetSkeletonManagerService)),__decorateParam$2(5,sheets.IRefSelectionsService)],RefSelectionsRenderService);function getDefaultRefSelectionStyle(themeService){const style=sheets.getNormalSelectionStyle(themeService);return style.hasAutoFill=!1,style.hasRowHeader=!1,style.hasColumnHeader=!1,style.widgets={tl:!0,tc:!0,tr:!0,ml:!0,mr:!0,bl:!0,bc:!0,br:!0},style}__name(getDefaultRefSelectionStyle,"getDefaultRefSelectionStyle");var __defProp$1=Object.defineProperty,__getOwnPropDesc$1=Object.getOwnPropertyDescriptor,__decorateClass$1=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc$1(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp$1(target,key,result),result},"__decorateClass$1"),__decorateParam$1=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam$1");const sheetEditorUnitIds=[core.DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY,core.DOCS_NORMAL_EDITOR_UNIT_ID_KEY];let PromptController=(_i=class extends core.Disposable{constructor(_commandService,_contextService,_editorBridgeService,_formulaPromptService,_lexerTreeBuilder,_renderManagerService,_themeService,_sheetsSelectionsService,_refSelectionsService,_univerInstanceService,_descriptionService,_docSelectionManagerService,_contextMenuService,_editorService,_layoutService){super();__publicField(this,"_listenInputCache",new Set);__publicField(this,"_formulaRefColors",[]);__publicField(this,"_previousSequenceNodes");__publicField(this,"_previousRangesCount",0);__publicField(this,"_previousInsertRefStringIndex");__publicField(this,"_currentInsertRefStringIndex",-1);__publicField(this,"_arrowMoveActionState",0);__publicField(this,"_isSelectionMovingRefSelections",[]);__publicField(this,"_stringColor","");__publicField(this,"_numberColor","");__publicField(this,"_insertSelections",[]);__publicField(this,"_inputPanelState",0);__publicField(this,"_userCursorMove",!1);__publicField(this,"_previousEditorUnitId");__publicField(this,"_existsSequenceNode",!1);__publicField(this,"_currentlyWorkingRefRenderer",null);__publicField(this,"_selectionsChangeDisposables");__publicField(this,"_isSelectingMode",!1);this._commandService=_commandService,this._contextService=_contextService,this._editorBridgeService=_editorBridgeService,this._formulaPromptService=_formulaPromptService,this._lexerTreeBuilder=_lexerTreeBuilder,this._renderManagerService=_renderManagerService,this._themeService=_themeService,this._sheetsSelectionsService=_sheetsSelectionsService,this._refSelectionsService=_refSelectionsService,this._univerInstanceService=_univerInstanceService,this._descriptionService=_descriptionService,this._docSelectionManagerService=_docSelectionManagerService,this._contextMenuService=_contextMenuService,this._editorService=_editorService,this._layoutService=_layoutService,this._initialize()}get _selectionRenderService(){return this._renderManagerService.getRenderById(this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET).getUnitId()).with(RefSelectionsRenderService)}get _allSelectionRenderServices(){return this._renderManagerService.getAllRenderersOfType(core.UniverInstanceType.UNIVER_SHEET).map(renderer=>renderer.with(RefSelectionsRenderService))}dispose(){this._formulaRefColors=[],this._resetTemp()}_resetTemp(){this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._isSelectionMovingRefSelections=[],this._previousRangesCount=0,this._currentInsertRefStringIndex=-1}_initialize(){this._initialCursorSync(),this._initAcceptFormula(),this._initialFormulaTheme(),this._initSelectionsEndListener(),this._closeRangePromptWhenEditorInvisible(),this._initialEditorInputChange(),this._commandExecutedListener(),this._cursorStateListener(),this._inputFormulaListener(),this._userMouseListener(),this._initialChangeEditor()}_initialFormulaTheme(){const style=this._themeService.getCurrentTheme();this._formulaRefColors=[style.loopColor1,style.loopColor2,style.loopColor3,style.loopColor4,style.loopColor5,style.loopColor6,style.loopColor7,style.loopColor8,style.loopColor9,style.loopColor10,style.loopColor11,style.loopColor12],this._numberColor=style.hyacinth700,this._stringColor=style.verdancy800}_initialCursorSync(){this.disposeWithMe(this._docSelectionManagerService.textSelection$.pipe(rxjs.distinctUntilChanged((prev,curr)=>(prev==null?void 0:prev.unitId)===(curr==null?void 0:curr.unitId)&&(prev==null?void 0:prev.segmentId)===(curr==null?void 0:curr.segmentId)&&!!(prev!=null&&prev.textRanges.every((t,i)=>t.startOffset===(curr==null?void 0:curr.textRanges[i].startOffset)&&t.endOffset===(curr==null?void 0:curr.textRanges[i].endOffset))))).subscribe(params=>{var _a2;if((params==null?void 0:params.unitId)==null)return;const editor=this._editorService.getEditor(params.unitId);if(!editor||editor.onlyInputContent()||editor.isSheetEditor()&&!this._isFormulaEditorActivated()||editor.params.scrollBar)return;const onlyInputRange=editor.onlyInputRange();(_a2=params==null?void 0:params.options)!=null&&_a2.fromSelection||(this._quitSelectingMode(),this._contextSwitch(),this._checkShouldEnterSelectingMode(onlyInputRange),!this._formulaPromptService.isLockedSelectionChange()&&(this._highlightFormula(),!onlyInputRange&&this._changeFunctionPanelState()))}))}_initialEditorInputChange(){const arrows=[ui.KeyCode.ARROW_DOWN,ui.KeyCode.ARROW_UP,ui.KeyCode.ARROW_LEFT,ui.KeyCode.ARROW_RIGHT,ui.KeyCode.CTRL,ui.KeyCode.SHIFT];this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{var _a2;const unitId=documentDataModel==null?void 0:documentDataModel.getUnitId();if(unitId==null||this._listenInputCache.has(unitId)||this._editorService.getEditor(unitId)==null)return;const docSelectionRenderService=(_a2=this._renderManagerService.getRenderById(unitId))==null?void 0:_a2.with(docsUi.DocSelectionRenderService);docSelectionRenderService&&this.disposeWithMe(docSelectionRenderService.onInputBefore$.subscribe(param=>{this._previousSequenceNodes=null,this._previousInsertRefStringIndex=null,this._selectionRenderService.setSkipLastEnabled(!0);const event=param==null?void 0:param.event;event&&(arrows.includes(event.which)?this._inputPanelState=2:(this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._inputPanelState=1),event.which!==ui.KeyCode.F4&&(this._userCursorMove=!1))})),this._listenInputCache.add(unitId)})}_closeRangePromptWhenEditorInvisible(){this.disposeWithMe(this._editorBridgeService.afterVisible$.pipe(rxjs.distinctUntilKeyChanged("visible")).subscribe(visibleParam=>{visibleParam.visible||this._closeRangePrompt()})),this.disposeWithMe(this._contextService.subscribeContextValue$(core.FORMULA_EDITOR_ACTIVATED).pipe(rxjs.distinctUntilChanged()).subscribe(activated=>{activated||this._closeRangePrompt()}))}_initialChangeEditor(){this.disposeWithMe(this._univerInstanceService.getCurrentTypeOfUnit$(core.UniverInstanceType.UNIVER_DOC).subscribe(documentDataModel=>{if(documentDataModel==null)return;const editorId=documentDataModel.getUnitId();!this._editorService.isEditor(editorId)||this._previousEditorUnitId===editorId||this._editorService.isSheetEditor(editorId)||(this._closeRangePrompt(editorId),this._previousEditorUnitId=editorId)})),this.disposeWithMe(this._editorService.closeRangePrompt$.subscribe(()=>{(!this._editorService.getSpreadsheetFocusState()||!this._formulaPromptService.isLockedSelectionInsert())&&this._closeRangePrompt()}))}_closeRangePrompt(editorId){this._insertSelections=[],this._refSelectionsService.clear(),editorId&&this._editorService.isSheetEditor(editorId)&&this._updateEditorModel(`\r
|
|
10
|
+
`,[]),this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._quitSelectingMode(),this._resetTemp(),this._hideFunctionPanel()}_initSelectionsEndListener(){const d=new core.DisposableCollection;this.disposeWithMe(this._refSelectionsService.selectionMoveEnd$.subscribe(selections=>{if(d.dispose(),selections.length===0)return;this._allSelectionRenderServices.map(s=>s.getSelectionControls()).flat().forEach(c=>{c.disableHelperSelection(),d.add(c.selectionMoving$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionScaling$.subscribe(toRange=>this._onSelectionControlChange(toRange,c))),d.add(c.selectionMoved$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange())),d.add(c.selectionScaled$.subscribe(()=>this._formulaPromptService.disableLockedSelectionChange()))})}))}_updateSelecting(selectionsWithStyles,performInsertion=!1){if(selectionsWithStyles.length!==0&&!(this._editorService.selectionChangingState()&&!this._formulaPromptService.isLockedSelectionInsert())&&(this._insertControlSelections(selectionsWithStyles),performInsertion)){const currentSelection=selectionsWithStyles[selectionsWithStyles.length-1];this._insertControlSelectionReplace(currentSelection)}}_enableRefSelectionsRenderService(){const d=this._selectionsChangeDisposables=new core.DisposableCollection;this._allSelectionRenderServices.forEach(renderer=>{d.add(renderer.enableSelectionChanging()),d.add(renderer.selectionMoving$.subscribe(selections=>{this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)))})),d.add(renderer.selectionMoveStart$.subscribe(selections=>{const performInsertion=this._checkClearingLastSelection(renderer);this._currentlyWorkingRefRenderer=renderer,this._updateSelecting(selections.map(s=>sheets.convertSelectionDataToRange(s)),performInsertion)}))})}_checkClearingLastSelection(renderer){return this._currentlyWorkingRefRenderer&&this._currentlyWorkingRefRenderer!==renderer?(this._currentlyWorkingRefRenderer.clearLastSelection(),!1):!0}_disposeSelectionsChangeListeners(){var _a2;(_a2=this._selectionsChangeDisposables)==null||_a2.dispose(),this._selectionsChangeDisposables=null}_insertControlSelections(selections){const currentSelection=selections[selections.length-1];if(this._resetSequenceNodes(selections.length),(selections.length===this._previousRangesCount||this._previousRangesCount===0)&&this._previousSequenceNodes!=null)this._insertControlSelectionReplace(currentSelection);else{let insertNodes=this._formulaPromptService.getSequenceNodes();const char=this._getCurrentChar();insertNodes.length===0&&this._currentInsertRefStringIndex>0&&(this._currentInsertRefStringIndex=-1),this._previousInsertRefStringIndex=this._currentInsertRefStringIndex,!engineFormula.matchRefDrawToken(char)&&this._focusIsOnlyRange(selections.length)&&(this._formulaPromptService.insertSequenceString(this._currentInsertRefStringIndex,engineFormula.matchToken.COMMA),insertNodes=this._formulaPromptService.getSequenceNodes(),this._previousInsertRefStringIndex+=1),this._previousSequenceNodes=core.Tools.deepClone(insertNodes),this._formulaPromptService.setSequenceNodes(insertNodes);const refString=this._generateRefString(currentSelection);this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._selectionRenderService.setSkipLastEnabled(!1)}this._arrowMoveActionState=2,this._previousRangesCount=selections.length}_initAcceptFormula(){this.disposeWithMe(this._formulaPromptService.acceptFormulaName$.subscribe(formulaString=>{const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,lastSequenceNodes=this._formulaPromptService.getSequenceNodes(),nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(startOffset-2),node=lastSequenceNodes[nodeIndex];if(node==null||typeof node=="string"){this._hideFunctionPanel();return}const difference=formulaString.length-node.token.length,newNode={...node};newNode.token=formulaString,newNode.endIndex+=difference,lastSequenceNodes[nodeIndex]=newNode;const isDefinedName=this._descriptionService.hasDefinedNameDescription(formulaString),isFormulaDefinedName=this._descriptionService.isFormulaDefinedName(formulaString),formulaStringCount=formulaString.length+1,mustAddBracket=!isDefinedName||isFormulaDefinedName;mustAddBracket&&lastSequenceNodes.splice(nodeIndex+1,0,engineFormula.matchToken.OPEN_BRACKET);for(let i=nodeIndex+2,len=lastSequenceNodes.length;i<len;i++){const node2=lastSequenceNodes[i];if(typeof node2=="string")continue;const newNode2={...node2};newNode2.startIndex+=formulaStringCount,newNode2.endIndex+=formulaStringCount,lastSequenceNodes[i]=newNode2}let selectionIndex=newNode.endIndex+1;mustAddBracket&&(selectionIndex+=1),this._syncToEditor(lastSequenceNodes,selectionIndex,void 0,!0,!1)}))}_changeFunctionPanelState(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null){this._hideFunctionPanel();return}const{startOffset}=activeRange,currentSequenceNode=this._formulaPromptService.getCurrentSequenceNode(startOffset-2);if(currentSequenceNode==null){this._hideFunctionPanel();return}if(typeof currentSequenceNode!="string"&¤tSequenceNode.nodeType===engineFormula.sequenceNodeType.FUNCTION&&!this._descriptionService.hasDefinedNameDescription(currentSequenceNode.token.trim())){const token=currentSequenceNode.token.toUpperCase();if(this._inputPanelState===1){const searchList=this._descriptionService.getSearchListByNameFirstLetter(token);if(this._hideFunctionPanel(),searchList==null||searchList.length===0)return;this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!0,searchText:token,searchList})}else this._changeHelpFunctionPanelState(token,-1);return}const config=this._getCurrentBodyDataStreamAndOffset(),functionAndParameter=this._lexerTreeBuilder.getFunctionAndParameter((config==null?void 0:config.dataStream)||"",startOffset-1+((config==null?void 0:config.offset)||0));if(!functionAndParameter){this._hideFunctionPanel();return}const{functionName,paramIndex}=functionAndParameter;this._changeHelpFunctionPanelState(functionName.toUpperCase(),paramIndex)}_changeHelpFunctionPanelState(token,paramIndex){const functionInfo=this._descriptionService.getFunctionInfo(token);this._hideFunctionPanel(),functionInfo!=null&&this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!0,paramIndex,functionInfo})}_hideFunctionPanel(){this._commandService.executeCommand(SearchFunctionOperation.id,{visible:!1,searchText:""}),this._commandService.executeCommand(HelpFunctionOperation.id,{visible:!1,paramIndex:-1})}_checkShouldEnterSelectingMode(isOnlyInputRangeEditor=!1){if(isOnlyInputRangeEditor){this._enterSelectingMode();return}const char=this._getCurrentChar(),dataStream=this._getCurrentDataStream();(dataStream==null?void 0:dataStream.substring(0,1))==="="&&char&&engineFormula.matchRefDrawToken(char)?this._enterSelectingMode():this._quitSelectingMode()}_getCurrentChar(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,config=this._getCurrentBodyDataStreamAndOffset();return config==null||startOffset==null?void 0:config.dataStream[startOffset-1+config.offset]}_getCurrentDataStream(){const config=this._getCurrentBodyDataStreamAndOffset();return config==null?void 0:config.dataStream}_enterSelectingMode(){this._isSelectingMode||(this._editorBridgeService.enableForceKeepVisible(),this._contextMenuService.disable(),this._formulaPromptService.enableLockedSelectionInsert(),this._selectionRenderService.setRemainLastEnabled(!0),this._enableRefSelectionsRenderService(),this._currentlyWorkingRefRenderer=null,this._arrowMoveActionState!==1&&(this._arrowMoveActionState=2),this._isSelectingMode=!0)}_quitSelectingMode(){this._isSelectingMode&&(this._editorBridgeService.disableForceKeepVisible(),this._contextMenuService.enable(),this._formulaPromptService.disableLockedSelectionInsert(),this._currentInsertRefStringIndex=-1,this._disposeSelectionsChangeListeners(),this._arrowMoveActionState===2&&(this._arrowMoveActionState=4),this._isSelectingMode=!1)}_getCurrentBodyDataStreamAndOffset(){var _a2,_b2;const documentModel=this._univerInstanceService.getCurrentUniverDocInstance();if(!(documentModel!=null&&documentModel.getBody()))return;const unitId=documentModel.getUnitId(),editor=this._editorService.getEditor(unitId),dataStream=(_b2=(_a2=documentModel.getBody())==null?void 0:_a2.dataStream)!=null?_b2:"";return!editor||!editor.onlyInputRange()?{dataStream,offset:0}:{dataStream:engineFormula.compareToken.EQUALS+dataStream,offset:1}}_getFormulaAndCellEditorBody(unitIds){return unitIds.map(unitId=>{const dataModel=this._univerInstanceService.getUniverDocInstance(unitId);return dataModel==null?void 0:dataModel.getBody()})}_editorModelUnitIds(){const unitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();return this._editorService.isEditor(unitId)&&!this._editorService.isSheetEditor(unitId)?[unitId]:sheetEditorUnitIds}_contextSwitch(){const config=this._getCurrentBodyDataStreamAndOffset();if(config&&core.isFormulaString(config.dataStream)){this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!0),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!0),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!0);const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(config.dataStream)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes);const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange;this._currentInsertRefStringIndex=startOffset-1+config.offset;return}this._contextService.setContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA,!1),this._contextService.setContextValue(sheets.DISABLE_NORMAL_SELECTIONS,!1),this._contextService.setContextValue(ui.UNI_DISABLE_CHANGING_FOCUS_KEY,!1),this._formulaPromptService.disableLockedSelectionChange(),this._formulaPromptService.disableLockedSelectionInsert(),this._formulaPromptService.clearSequenceNodes(),this._hideFunctionPanel()}_getContextState(){return this._contextService.getContextValue(core.FOCUSING_EDITOR_INPUT_FORMULA)}_highlightFormula(){if(this._getContextState()===!1)return;const sequenceNodes=this._formulaPromptService.getSequenceNodes(),unitIds=this._editorModelUnitIds(),bodyList=this._getFormulaAndCellEditorBody(unitIds).filter(b=>!!b);if(this._refSelectionsService.clear(),sequenceNodes==null||sequenceNodes.length===0)this._existsSequenceNode=!1,bodyList.forEach(body=>body.textRuns=[]);else{this._existsSequenceNode=!0;const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);bodyList.forEach(body=>body.textRuns=textRuns),this._allSelectionRenderServices.forEach(r=>this._refreshSelectionForReference(r,refSelections))}this._refreshFormulaAndCellEditor(unitIds)}_buildTextRuns(sequenceNodes){var _a2;const textRuns=[],refSelections=[],themeColorMap=new Map;let refColorIndex=0;const offset=((_a2=this._getCurrentBodyDataStreamAndOffset())==null?void 0:_a2.offset)||0;for(let i=0,len=sequenceNodes.length;i<len;i++){const node=sequenceNodes[i];if(typeof node=="string"||this._descriptionService.hasDefinedNameDescription(node.token.trim()))continue;const{startIndex,endIndex,nodeType,token}=node;let themeColor="";if(nodeType===engineFormula.sequenceNodeType.REFERENCE){if(themeColorMap.has(token))themeColor=themeColorMap.get(token);else{const colorIndex=refColorIndex%this._formulaRefColors.length;themeColor=this._formulaRefColors[colorIndex],themeColorMap.set(token,themeColor),refColorIndex++}refSelections.push({refIndex:i,themeColor,token})}else nodeType===engineFormula.sequenceNodeType.NUMBER?themeColor=this._numberColor:nodeType===engineFormula.sequenceNodeType.STRING?themeColor=this._stringColor:nodeType===engineFormula.sequenceNodeType.ARRAY&&(themeColor=this._stringColor);themeColor&&themeColor.length>0&&textRuns.push({st:startIndex+1-offset,ed:endIndex+2-offset,ts:{cl:{rgb:themeColor}}})}return{textRuns,refSelections}}_exceedCurrentRange(range,rowCount,columnCount){const{startRow,startColumn}=range;return startRow>rowCount-1||startColumn>columnCount-1}_refreshSelectionForReference(refSelectionRenderService,refSelections){const{unitId,sheetId}=this._editorBridgeService.getEditCellState(),{unitId:selfUnitId,sheetId:selfSheetId}=this._getCurrentUnitIdAndSheetId(),isSelfSheet=sheetId===selfSheetId,worksheet=this._univerInstanceService.getUniverSheetInstance(unitId).getSheetBySheetId(sheetId);let lastRange=null;const selectionWithStyle=[];for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{themeColor,token,refIndex}=refSelection,gridRange=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range:rawRange}=gridRange,range=sheets.setEndForRange(rawRange,worksheet.getRowCount(),worksheet.getColumnCount());if(refUnitId!=null&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(!isSelfSheet&&refSheetId!==selfSheetId||isSelfSheet&&sheetName.length!==0&&refSheetId!==sheetId||this._exceedCurrentRange(range,worksheet.getRowCount(),worksheet.getColumnCount()))continue;const lastRangeCopy=this._getPrimary(range,themeColor,refIndex);if(lastRangeCopy){lastRange=lastRangeCopy;continue}const primary=sheets.getPrimaryForRange(range,worksheet);!core.Rectangle.equals(primary,range)&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.startRow=primary.startRow,range.endRow=primary.endRow,range.startColumn=primary.startColumn,range.endColumn=primary.endColumn),selectionWithStyle.push({range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())})}lastRange&&selectionWithStyle.push(lastRange),selectionWithStyle.length&&this._refSelectionsService.addSelections(unitId,sheetId,selectionWithStyle)}_getPrimary(range,themeColor,refIndex){var _a2;const primary=(_a2=this._insertSelections.find(selection=>{const{startRow,startColumn,endRow,endColumn}=selection.range;return startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn}))==null?void 0:_a2.primary;if(primary==null)return;const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;return(isMerged||isMergedMainCell)&&mergeStartRow===range.startRow&&mergeStartColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn&&(range.endRow=mergeEndRow,range.endColumn=mergeEndColumn),{range,primary,style:getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString())}}_getSheetIdByName(unitId,sheetName){var _a2;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return(_a2=workbook==null?void 0:workbook.getSheetBySheetName(engineFormula.normalizeSheetName(sheetName)))==null?void 0:_a2.getSheetId()}_getSheetNameById(unitId,sheetId){var _a2;const workbook=this._univerInstanceService.getUniverSheetInstance(unitId);return((_a2=workbook==null?void 0:workbook.getSheetBySheetId(sheetId))==null?void 0:_a2.getName())||""}_getCurrentUnitIdAndSheetId(){var _a2,_b2;const workbook=this._univerInstanceService.getCurrentUnitForType(core.UniverInstanceType.UNIVER_SHEET),worksheet=workbook.getActiveSheet(),skeleton=(_b2=(_a2=this._renderManagerService.getRenderById(workbook.getUnitId()))==null?void 0:_a2.with(sheetsUi.SheetSkeletonManagerService))==null?void 0:_b2.getCurrentSkeleton();return{unitId:workbook.getUnitId(),sheetId:(worksheet==null?void 0:worksheet.getSheetId())||"",skeleton}}_getEditorOpenedForSheet(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor?{openUnitId:editor.getOpenForSheetUnitId(),openSheetId:editor.getOpenForSheetSubUnitId()}:{openUnitId:null,openSheetId:null}}_generateRefString(currentSelection){let refUnitId="",refSheetName="";const{unitId,sheetId}=currentSelection.range,{openUnitId,openSheetId}=this._getEditorOpenedForSheet();unitId!==openUnitId&&unitId&&(refUnitId=unitId),sheetId!==openSheetId&&unitId&&sheetId&&(refSheetName=this._getSheetNameById(unitId,sheetId));const{range,primary}=currentSelection;let{startRow,endRow,startColumn,endColumn}=range;const{startAbsoluteRefType,endAbsoluteRefType,rangeType}=range;if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}return engineFormula.serializeRangeToRefString({sheetName:refSheetName,unitId:refUnitId,range:{startRow,endRow,startColumn,endColumn,rangeType,startAbsoluteRefType,endAbsoluteRefType}})}_syncToEditor(sequenceNodes,textSelectionOffset,editorUnitId,canUndo=!0,fromSelection=!0){let dataStream=engineFormula.generateStringWithSequence(sequenceNodes);const{textRuns,refSelections}=this._buildTextRuns(sequenceNodes);this._isSelectionMovingRefSelections=refSelections,this._allSelectionRenderServices.forEach(r=>this._updateRefSelectionStyle(r,this._isSelectionMovingRefSelections));const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;this._currentInsertRefStringIndex=textSelectionOffset,editorUnitId==null&&(editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId()),this._fitEditorSize();const editor=this._editorService.getEditor(editorUnitId);editor!=null&&editor.isSingleChoice()?(dataStream=dataStream.split(",")[0],this._selectionRenderService.setSingleSelectionEnabled(!0)):this._selectionRenderService.setSingleSelectionEnabled(!1);let formulaString=dataStream,offset=1;(!editor||!editor.onlyInputRange())&&(formulaString=`${engineFormula.compareToken.EQUALS}${dataStream}`,offset=0);const{collapsed,style}=activeRange;canUndo?(this._commandService.executeCommand(docsUi.ReplaceContentCommand.id,{unitId:editorUnitId,body:{dataStream:formulaString,textRuns},textRanges:[{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,collapsed,style}],segmentId:null,options:{fromSelection}}),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})):(this._updateEditorModel(`${formulaString}\r
|
|
11
11
|
`,textRuns),this._docSelectionManagerService.replaceTextRanges([{startOffset:textSelectionOffset+1-offset,endOffset:textSelectionOffset+1-offset,style}],!0,{fromSelection})),this._layoutService.focus()}_fitEditorSize(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId();this._editorService.isEditor(editorUnitId)&&!this._editorService.isSheetEditor(editorUnitId)||this._commandService.executeCommand(ui.SetEditorResizeOperation.id,{unitId:editorUnitId})}_updateEditorModel(dataStream,textRuns){var _a2;const documentDataModel=this._univerInstanceService.getCurrentUniverDocInstance(),editorUnitId=documentDataModel.getUnitId();if(!this._editorService.isEditor(editorUnitId))return;const docViewModel=(_a2=this._renderManagerService.getRenderById(editorUnitId))==null?void 0:_a2.with(docs.DocSkeletonManagerService).getViewModel();if(docViewModel==null||documentDataModel==null)return;const snapshot=documentDataModel==null?void 0:documentDataModel.getSnapshot();if(snapshot==null)return;const newBody={dataStream,textRuns};snapshot.body=newBody,docViewModel.reset(documentDataModel)}_insertControlSelectionReplace(currentSelection){this._previousSequenceNodes==null&&(this._previousSequenceNodes=this._formulaPromptService.getSequenceNodes()),this._previousInsertRefStringIndex==null&&(this._previousInsertRefStringIndex=this._currentInsertRefStringIndex);const insertNodes=core.Tools.deepClone(this._previousSequenceNodes);if(insertNodes==null)return;const refString=this._generateRefString(currentSelection);this._formulaPromptService.setSequenceNodes(insertNodes),this._formulaPromptService.insertSequenceRef(this._previousInsertRefStringIndex,refString),this._syncToEditor(insertNodes,this._previousInsertRefStringIndex+refString.length);const selectionDatas=this._selectionRenderService.getSelectionDataWithStyle();this._insertSelections=[],selectionDatas.forEach(currentSelection2=>{const range=sheets.convertSelectionDataToRange(currentSelection2);this._insertSelections.push(range)})}_focusIsOnlyRange(selectionCount){const currentEditor=this._editorService.getFocusEditor();return!currentEditor||!currentEditor.onlyInputRange()||this._existsSequenceNode||selectionCount>1||this._previousSequenceNodes!=null&&this._previousSequenceNodes.length>0?!0:(this._previousInsertRefStringIndex!=null&&(this._previousInsertRefStringIndex+=1),!1)}_resetSequenceNodes(selectionCount){const currentEditor=this._editorService.getFocusEditor();currentEditor&¤tEditor.onlyInputRange()&&(selectionCount>1||this._existsSequenceNode&&(this._formulaPromptService.clearSequenceNodes(),this._previousRangesCount=0,this._existsSequenceNode=!1))}_updateRefSelectionStyle(refSelectionRenderService,refSelections){const controls=refSelectionRenderService.getSelectionControls(),[unitId,sheetId]=refSelectionRenderService.getLocation(),matchedControls=new Set;for(let i=0,len=refSelections.length;i<len;i++){const refSelection=refSelections[i],{refIndex,themeColor,token}=refSelection,rangeWithSheet=engineFormula.deserializeRangeWithSheet(token),{unitId:refUnitId,sheetName,range}=rangeWithSheet;if(!refUnitId&&refUnitId.length>0&&unitId!==refUnitId)continue;const refSheetId=this._getSheetIdByName(unitId,sheetName.trim());if(refSheetId&&refSheetId!==sheetId)continue;const control=controls.find(c=>{const{startRow,startColumn,endRow,endColumn,rangeType}=c.getRange();return rangeType===core.RANGE_TYPE.COLUMN&&startColumn===range.startColumn&&endColumn===range.endColumn||rangeType===core.RANGE_TYPE.ROW&&startRow===range.startRow&&endRow===range.endRow||startRow===range.startRow&&startColumn===range.startColumn&&endRow===range.endRow&&endColumn===range.endColumn||startRow===range.startRow&&startColumn===range.startColumn&&range.startRow===range.endRow&&range.startColumn===range.endColumn});if(control){const style=getFormulaRefSelectionStyle(this._themeService,themeColor,refIndex.toString());control.updateStyle(style),matchedControls.add(control)}}}_onSelectionControlChange(toRange,selectionControl){var _a2;const{skeleton}=this._getCurrentUnitIdAndSheetId();this._formulaPromptService.enableLockedSelectionChange();const id=(_a2=selectionControl.currentStyle)==null?void 0:_a2.id;if(!id||!core.Tools.isStringNumber(id))return;let{startRow,endRow,startColumn,endColumn}=toRange;const primary=skeleton?skeleton.worksheet.getCellInfoInMergeData(startRow,startColumn):{actualRow:startRow,actualColumn:startColumn,isMergedMainCell:!1,isMerged:!1,endRow:startRow,endColumn:startColumn,startRow,startColumn};if(primary){const{isMerged,isMergedMainCell,startRow:mergeStartRow,endRow:mergeEndRow,startColumn:mergeStartColumn,endColumn:mergeEndColumn}=primary;(isMerged||isMergedMainCell)&&mergeStartRow===startRow&&mergeStartColumn===startColumn&&mergeEndRow===endRow&&mergeEndColumn===endColumn&&(startRow=mergeStartRow,startColumn=mergeStartColumn,endRow=mergeStartRow,endColumn=mergeStartColumn)}const nodeIndex=Number(id),currentNode=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);let refType={startAbsoluteRefType:core.AbsoluteRefType.NONE};if(typeof currentNode!="string"){const token=currentNode.token;refType=engineFormula.getAbsoluteRefTypeWitString(token),refType.endAbsoluteRefType==null&&(refType.endAbsoluteRefType=refType.startAbsoluteRefType)}const unitId=skeleton==null?void 0:skeleton.worksheet.getUnitId(),sheetId=skeleton==null?void 0:skeleton.worksheet.getSheetId(),refString=this._generateRefString({range:{startRow:Math.min(startRow,endRow),endRow:Math.max(startRow,endRow),startColumn:Math.min(startColumn,endColumn),endColumn:Math.max(startColumn,endColumn),...refType,sheetId,unitId},primary,style:null});this._formulaPromptService.updateSequenceRef(nodeIndex,refString);const sequenceNodes=this._formulaPromptService.getSequenceNodes(),node=sequenceNodes[nodeIndex];typeof node!="string"&&(this._syncToEditor(sequenceNodes,node.endIndex+1),selectionControl.update(toRange,void 0,void 0,void 0,this._selectionRenderService.attachPrimaryWithCoord(primary)))}_refreshFormulaAndCellEditor(unitIds){var _a2;for(const unitId of unitIds){const editorObject=sheetsUi.getEditorObject(unitId,this._renderManagerService),documentComponent=editorObject==null?void 0:editorObject.document;documentComponent!=null&&((_a2=documentComponent.getSkeleton())==null||_a2.calculate(),documentComponent.makeDirty())}}_cursorStateListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent.onPointerDown$.subscribeEvent(()=>{this._arrowMoveActionState=1,this._inputPanelState=3}))}_pressEnter(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressTab(params){const{keycode,isSingleEditor=!1}=params;if(this._formulaPromptService.isSearching()){this._formulaPromptService.accept(!0);return}isSingleEditor!==!0&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressEsc(params){const{keycode}=params,focusEditor=this._editorService.getFocusEditor();(!focusEditor||(focusEditor==null?void 0:focusEditor.isSheetEditor())===!0)&&this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""})}_pressArrowKey(params){const{keycode,metaKey}=params;let direction=core.Direction.DOWN;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_LEFT?direction=core.Direction.LEFT:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),metaKey===ui.MetaKeys.CTRL_COMMAND?this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):metaKey===ui.MetaKeys.SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction}):metaKey===META_KEY_CTRL_AND_SHIFT?this._commandService.executeCommand(sheetsUi.ExpandSelectionCommand.id,{direction,jumpOver:sheetsUi.JumpOver.moveGap}):this._commandService.executeCommand(sheetsUi.MoveSelectionCommand.id,{direction})}_commandExecutedListener(){const updateCommandList=[SelectEditorFormulaOperation.id];this.disposeWithMe(this._commandService.onCommandExecuted(command=>{if(command.id===ReferenceAbsoluteOperation.id)this._changeRefString();else if(updateCommandList.includes(command.id)){const params=command.params,{keycode,isSingleEditor=!1}=params;if(keycode===ui.KeyCode.ENTER){this._pressEnter(params);return}if(keycode===ui.KeyCode.TAB){this._pressTab(params);return}if(keycode===ui.KeyCode.ESC){this._pressEsc(params);return}if(this._formulaPromptService.isSearching()){if(keycode===ui.KeyCode.ARROW_DOWN){this._formulaPromptService.navigate({direction:core.Direction.DOWN});return}if(keycode===ui.KeyCode.ARROW_UP){this._formulaPromptService.navigate({direction:core.Direction.UP});return}}if(isSingleEditor===!0)return;if(this._arrowMoveActionState===1){this._moveInEditor(keycode);return}if(this._arrowMoveActionState===4){this._editorBridgeService.changeVisible({visible:!1,eventType:engineRender.DeviceInputEventType.Keyboard,keycode,unitId:""});return}if(this._arrowMoveActionState===2&&(this._arrowMoveActionState=3),this._refSelectionsService.getCurrentSelections().length===0){const selectionData=this._sheetsSelectionsService.getCurrentLastSelection();if(selectionData!=null){const selectionDataNew=core.Tools.deepClone(selectionData);this._refSelectionsService.addSelections([selectionDataNew])}}this._pressArrowKey(params);const selectionWithStyles=this._refSelectionsService.getCurrentSelections(),currentSelection=selectionWithStyles[selectionWithStyles.length-1];this._insertControlSelectionReplace(currentSelection),this._highlightFormula()}}))}_moveInEditor(keycode){if(keycode==null)return;let direction=core.Direction.LEFT;keycode===ui.KeyCode.ARROW_DOWN?direction=core.Direction.DOWN:keycode===ui.KeyCode.ARROW_UP?direction=core.Direction.UP:keycode===ui.KeyCode.ARROW_RIGHT&&(direction=core.Direction.RIGHT),this._commandService.executeCommand(docsUi.MoveCursorOperation.id,{direction})}_userMouseListener(){const editorObject=this._getEditorObject();if(editorObject==null)return;const{mainComponent:documentComponent}=editorObject;documentComponent&&this.disposeWithMe(documentComponent==null?void 0:documentComponent.onPointerDown$.subscribeEvent(()=>{this._userCursorMove=!0}))}_inputFormulaListener(){this.disposeWithMe(this._editorService.inputFormula$.subscribe(param=>{const{formulaString,editorUnitId}=param;if(formulaString.substring(0,1)!==engineFormula.compareToken.EQUALS)return;const{unitId}=this._getCurrentUnitIdAndSheetId();this._editorBridgeService.isVisible().visible===!1&&this._editorBridgeService.changeVisible({visible:!0,eventType:engineRender.DeviceInputEventType.Dblclick,unitId});const lastSequenceNodes=this._lexerTreeBuilder.sequenceNodesBuilder(formulaString)||[];this._formulaPromptService.setSequenceNodes(lastSequenceNodes),this._syncToEditor(lastSequenceNodes,formulaString.length-1,editorUnitId,!0,!1)}))}_changeRefString(){const activeRange=this._docSelectionManagerService.getActiveTextRange();if(activeRange==null)return;const{startOffset}=activeRange,strIndex=startOffset-2,nodeIndex=this._formulaPromptService.getCurrentSequenceNodeIndex(strIndex),node=this._formulaPromptService.getCurrentSequenceNodeByIndex(nodeIndex);if(node==null||typeof node=="string"||node.nodeType!==engineFormula.sequenceNodeType.REFERENCE)return;const tokenArray=node.token.split("!");let token=node.token;tokenArray.length>1&&(token=tokenArray[tokenArray.length-1]);let unitIDAndSheetName="";for(let i=0,len=tokenArray.length;i<len-1;i++)unitIDAndSheetName+=tokenArray[i];let finalToken=token;if(token.indexOf(engineFormula.matchToken.COLON)>-1)if(!this._userCursorMove)finalToken=this._changeRangeRef(token);else{const refStringSplit=token.split(engineFormula.matchToken.COLON),prefix=refStringSplit[0],suffix=refStringSplit[1];strIndex-node.startIndex<=prefix.length?finalToken=this._changeSingleRef(prefix)+engineFormula.matchToken.COLON+suffix:finalToken=prefix+engineFormula.matchToken.COLON+this._changeSingleRef(suffix)}else finalToken=this._changeSingleRef(token);finalToken=unitIDAndSheetName+finalToken;const difference=finalToken.length-node.token.length;this._formulaPromptService.updateSequenceRef(nodeIndex,finalToken),this._syncToEditor(this._formulaPromptService.getSequenceNodes(),strIndex+difference+1)}_changeRangeRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range;let resultToken="";return range.startAbsoluteRefType===core.AbsoluteRefType.NONE||range.startAbsoluteRefType==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_changeSingleRef(token){const range=engineFormula.deserializeRangeWithSheet(token).range,type=range.startAbsoluteRefType;let resultToken="";return type===core.AbsoluteRefType.NONE||type==null?(range.startAbsoluteRefType=core.AbsoluteRefType.ALL,range.endAbsoluteRefType=core.AbsoluteRefType.ALL):type===core.AbsoluteRefType.ALL?(range.startAbsoluteRefType=core.AbsoluteRefType.ROW,range.endAbsoluteRefType=core.AbsoluteRefType.ROW):type===core.AbsoluteRefType.ROW?(range.startAbsoluteRefType=core.AbsoluteRefType.COLUMN,range.endAbsoluteRefType=core.AbsoluteRefType.COLUMN):(range.startAbsoluteRefType=core.AbsoluteRefType.NONE,range.endAbsoluteRefType=core.AbsoluteRefType.NONE),resultToken=engineFormula.serializeRange(range),resultToken}_getEditorObject(){const editorUnitId=this._univerInstanceService.getCurrentUniverDocInstance().getUnitId(),editor=this._editorService.getEditor(editorUnitId);return editor==null?void 0:editor.render}_isFormulaEditorActivated(){return this._editorBridgeService.isVisible().visible===!0||this._contextService.getContextValue(core.FORMULA_EDITOR_ACTIVATED)}_isSheetOrFormulaEditor(editor){return editor.isSheetEditor()||editor.isFormulaEditor()}},__name(_i,"PromptController"),_i);PromptController=__decorateClass$1([__decorateParam$1(0,core.ICommandService),__decorateParam$1(1,core.IContextService),__decorateParam$1(2,core.Inject(sheetsUi.IEditorBridgeService)),__decorateParam$1(3,core.Inject(IFormulaPromptService)),__decorateParam$1(4,core.Inject(engineFormula.LexerTreeBuilder)),__decorateParam$1(5,engineRender.IRenderManagerService),__decorateParam$1(6,core.Inject(core.ThemeService)),__decorateParam$1(7,core.Inject(sheets.SheetsSelectionsService)),__decorateParam$1(8,sheets.IRefSelectionsService),__decorateParam$1(9,core.IUniverInstanceService),__decorateParam$1(10,core.Inject(sheetsFormula.IDescriptionService)),__decorateParam$1(11,core.Inject(docs.DocSelectionManagerService)),__decorateParam$1(12,ui.IContextMenuService),__decorateParam$1(13,docsUi.IEditorService),__decorateParam$1(14,ui.ILayoutService)],PromptController);var __defProp2=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__defNormalProp2=__name((obj,key,value)=>key in obj?__defProp2(obj,key,{enumerable:!0,configurable:!0,writable:!0,value}):obj[key]=value,"__defNormalProp"),__decorateClass=__name((decorators,target,key,kind)=>{for(var result=kind>1?void 0:kind?__getOwnPropDesc(target,key):target,i=decorators.length-1,decorator;i>=0;i--)(decorator=decorators[i])&&(result=(kind?decorator(target,key,result):decorator(result))||result);return kind&&result&&__defProp2(target,key,result),result},"__decorateClass"),__decorateParam=__name((index,decorator)=>(target,key)=>decorator(target,key,index),"__decorateParam"),__publicField2=__name((obj,key,value)=>__defNormalProp2(obj,typeof key!="symbol"?key+"":key,value),"__publicField");exports2.UniverSheetsFormulaUIPlugin=(_j=class extends core.Plugin{constructor(_config=defaultPluginBaseConfig,_injector,_renderManagerService,_configService){super(),this._config=_config,this._injector=_injector,this._renderManagerService=_renderManagerService,this._configService=_configService;const{menu,...rest}=this._config;menu&&this._configService.setConfig("menu",menu,{merge:!0}),this._configService.setConfig(PLUGIN_CONFIG_KEY_BASE,rest)}onStarting(){const j=this._injector;[[IFormulaPromptService,{useClass:FormulaPromptService}],[FormulaUIController],[FormulaAutoFillController],[FormulaClipboardController],[FormulaEditorShowController],[FormulaRenderManagerController],[PromptController]].forEach(dependency=>j.add(dependency))}onReady(){this._injector.get(FormulaUIController)}onRendered(){[[RefSelectionsRenderService],[FormulaAlertRenderController]].forEach(dep=>{this.disposeWithMe(this._renderManagerService.registerRenderModule(core.UniverInstanceType.UNIVER_SHEET,dep))}),this._injector.get(FormulaClipboardController),this._injector.get(FormulaRenderManagerController)}onSteady(){this._injector.get(FormulaAutoFillController),this._injector.get(PromptController)}},__name(_j,"UniverSheetsFormulaUIPlugin"),_j),__publicField2(exports2.UniverSheetsFormulaUIPlugin,"pluginName",FORMULA_UI_PLUGIN_NAME),__publicField2(exports2.UniverSheetsFormulaUIPlugin,"type",core.UniverInstanceType.UNIVER_SHEET),exports2.UniverSheetsFormulaUIPlugin=__decorateClass([core.DependentOn(engineFormula.UniverFormulaEnginePlugin,sheetsFormula.UniverSheetsFormulaPlugin),__decorateParam(1,core.Inject(core.Injector)),__decorateParam(2,engineRender.IRenderManagerService),__decorateParam(3,core.IConfigService)],exports2.UniverSheetsFormulaUIPlugin),exports2.FORMULA_PROMPT_ACTIVATED=FORMULA_PROMPT_ACTIVATED,exports2.HelpFunctionOperation=HelpFunctionOperation,exports2.InsertFunctionOperation=InsertFunctionOperation,exports2.MoreFunctionsOperation=MoreFunctionsOperation,exports2.ReferenceAbsoluteOperation=ReferenceAbsoluteOperation,exports2.SearchFunctionOperation=SearchFunctionOperation,exports2.SelectEditorFormulaOperation=SelectEditorFormulaOperation,exports2.SheetOnlyPasteFormulaCommand=SheetOnlyPasteFormulaCommand,Object.defineProperty(exports2,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-formula-ui",
|
|
3
|
-
"version": "0.4.0-alpha.
|
|
3
|
+
"version": "0.4.0-alpha.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "DreamNum <developer@univer.ai>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -50,31 +50,21 @@
|
|
|
50
50
|
],
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"react": "^16.9.0 || ^17.0.0 || ^18.0.0",
|
|
53
|
-
"rxjs": ">=7.0.0"
|
|
54
|
-
"@univerjs/core": "0.4.0-alpha.0",
|
|
55
|
-
"@univerjs/design": "0.4.0-alpha.0",
|
|
56
|
-
"@univerjs/docs-ui": "0.4.0-alpha.0",
|
|
57
|
-
"@univerjs/engine-formula": "0.4.0-alpha.0",
|
|
58
|
-
"@univerjs/engine-render": "0.4.0-alpha.0",
|
|
59
|
-
"@univerjs/docs": "0.4.0-alpha.0",
|
|
60
|
-
"@univerjs/sheets-formula": "0.4.0-alpha.0",
|
|
61
|
-
"@univerjs/sheets": "0.4.0-alpha.0",
|
|
62
|
-
"@univerjs/ui": "0.4.0-alpha.0",
|
|
63
|
-
"@univerjs/sheets-ui": "0.4.0-alpha.0"
|
|
53
|
+
"rxjs": ">=7.0.0"
|
|
64
54
|
},
|
|
65
55
|
"dependencies": {
|
|
66
|
-
"@univerjs/icons": "^0.1.
|
|
67
|
-
"@univerjs/
|
|
68
|
-
"@univerjs/
|
|
69
|
-
"@univerjs/docs": "0.4.0-alpha.
|
|
70
|
-
"@univerjs/
|
|
71
|
-
"@univerjs/
|
|
72
|
-
"@univerjs/
|
|
73
|
-
"@univerjs/
|
|
74
|
-
"@univerjs/sheets-numfmt": "0.4.0-alpha.
|
|
75
|
-
"@univerjs/sheets-ui": "0.4.0-alpha.
|
|
76
|
-
"@univerjs/sheets-formula": "0.4.0-alpha.
|
|
77
|
-
"@univerjs/ui": "0.4.0-alpha.
|
|
56
|
+
"@univerjs/icons": "^0.1.79",
|
|
57
|
+
"@univerjs/core": "0.4.0-alpha.1",
|
|
58
|
+
"@univerjs/docs": "0.4.0-alpha.1",
|
|
59
|
+
"@univerjs/docs-ui": "0.4.0-alpha.1",
|
|
60
|
+
"@univerjs/engine-formula": "0.4.0-alpha.1",
|
|
61
|
+
"@univerjs/sheets": "0.4.0-alpha.1",
|
|
62
|
+
"@univerjs/design": "0.4.0-alpha.1",
|
|
63
|
+
"@univerjs/engine-render": "0.4.0-alpha.1",
|
|
64
|
+
"@univerjs/sheets-numfmt": "0.4.0-alpha.1",
|
|
65
|
+
"@univerjs/sheets-ui": "0.4.0-alpha.1",
|
|
66
|
+
"@univerjs/sheets-formula": "0.4.0-alpha.1",
|
|
67
|
+
"@univerjs/ui": "0.4.0-alpha.1"
|
|
78
68
|
},
|
|
79
69
|
"devDependencies": {
|
|
80
70
|
"@types/react": "^18.3.11",
|
|
@@ -85,7 +75,7 @@
|
|
|
85
75
|
"typescript": "^5.6.3",
|
|
86
76
|
"vite": "^5.4.4",
|
|
87
77
|
"vitest": "^2.1.2",
|
|
88
|
-
"@univerjs-infra/shared": "0.4.0-alpha.
|
|
78
|
+
"@univerjs-infra/shared": "0.4.0-alpha.1"
|
|
89
79
|
},
|
|
90
80
|
"univerSpace": {
|
|
91
81
|
".": {
|